/* Cada papel y adorno usa un PNG independiente; el texto queda fuera de la imagen.
   Composición de 760 px dentro de un lienzo de 840 px, con aire lateral.
   Los márgenes alfa de cada pieza se compensan en CSS. */
body{background-size:calc(840px * var(--design-scale,1)) auto}
.invitation{width:840px;padding-inline:40px}
.occasion-stationery,.gifts-stationery,.lodging-stationery{color:#454735;font-family:'Times New Roman',Times,serif;font-weight:400}
.stationery-piece,.gift-envelope-piece{position:absolute;isolation:isolate}
.source-art{position:absolute;max-width:none;pointer-events:none;user-select:none;z-index:0;filter:drop-shadow(0 7px 5px #11190e55)}
.stationery-copy{position:absolute;z-index:1;text-align:center;text-shadow:none}
.stationery-copy p,.stationery-copy h2,.stationery-copy h3{font-weight:400;text-shadow:none}
.stationery-kicker{font:400 18px/1.4 'Times New Roman',Times,serif;text-transform:uppercase;letter-spacing:.08em;margin:0}
.stationery-divider{position:relative;width:118px;height:15px;margin:13px auto;color:#aa9d77;display:flex;align-items:center;justify-content:center}
.stationery-divider:before,.stationery-divider:after{content:'';height:1px;width:calc(50% - 10px);background:linear-gradient(90deg,transparent,#b6aa89)}
.stationery-divider:after{transform:rotate(180deg)}
.stationery-divider span{font:400 14px/1 'Times New Roman',Times,serif;width:20px;background:transparent}
.stationery-divider.short{width:60px}.stationery-divider.quiet{height:1px;background:linear-gradient(90deg,transparent,#c3b89b,transparent)}
.stationery-divider.quiet:before,.stationery-divider.quiet:after{display:none}

.occasion-stationery{height:1120px}
.dress-botanical-backing{position:absolute;left:389px;top:122px;width:372px;height:870px;background:linear-gradient(#e8e2d0a8,#e8e2d0a8),url('assets/fondo-botanico-original.webp') 70% 25%/760px auto;box-shadow:0 9px 12px #131b1255}
.occasion-orchid{position:absolute;top:0;right:-24px;width:306px;height:auto;z-index:2;pointer-events:none;filter:drop-shadow(0 8px 5px #111a1455)}
.schedule-piece{left:26px;top:110px;width:345px;height:820px}
.schedule-art{left:-16.374%;top:-2.153%;width:132.341%;height:104.892%}
.schedule-copy{top:144px;left:27px;right:27px}
.schedule-copy .stationery-kicker{font-size:17px;letter-spacing:.025em;white-space:nowrap}
.schedule-copy>.stationery-divider{margin:12px auto 8px}
.schedule-copy h2{font:400 47px/1.1 var(--script);margin:0 0 16px}
.wedding-schedule{list-style:none;padding:0;margin:0}
.wedding-schedule li{height:78px;position:relative;text-align:center}
.wedding-schedule time{display:block;font-size:23px;line-height:1.12;letter-spacing:.025em}
.wedding-schedule li>span{display:block;font-size:20px;line-height:1.25;font-style:italic;margin-top:4px}
.wedding-schedule li:not(:last-child):after{content:'✧';position:absolute;left:calc(50% - 6px);bottom:5px;color:#aa9d77;font-size:15px;line-height:1;background:transparent}
.wedding-schedule li:not(:last-child):before{content:'';position:absolute;width:1px;height:19px;left:50%;bottom:3px;background:linear-gradient(#b7aa87,transparent)}
.attire-piece{left:384px;top:183px;width:382px;height:840px;scroll-margin-top:30px}
.attire-art{left:-10.696%;top:-.425%;width:121.263%;height:101.395%}
.attire-copy{top:112px;left:50px;right:50px}
.attire-copy>.stationery-kicker{font-size:16px;line-height:1.35;letter-spacing:.035em}
.attire-copy h2{font:400 43px/1.15 var(--script);white-space:nowrap;margin:0 0 28px}
.attire-group h3,.attire-palette h3{font:400 19px/1.2 'Times New Roman',Times,serif;text-transform:uppercase;letter-spacing:.025em;margin:0 0 4px}
.attire-group p{font-size:21px;line-height:1.25;font-style:italic;margin:0}
.attire-copy>.stationery-divider{margin:14px auto}
.attire-palette{text-align:center}
.attire-palette h3{white-space:nowrap}
.stationery-swatches{display:flex;justify-content:center;align-items:center;width:max-content;gap:9px;margin:15px auto 2px}
.stationery-swatches i{display:block;flex:0 0 31px;width:31px;height:31px;border-radius:50%;background:var(--swatch);box-shadow:inset 0 0 0 1px #9d977a66}
.attire-note{font-size:18px;line-height:1.3;font-style:italic;margin:0;white-space:nowrap}

.gifts-stationery{height:1100px;scroll-margin-top:30px}
.gifts-heading{position:absolute;top:12px;left:20px;right:20px;text-align:center;color:#f5efdf;text-shadow:0 2px 3px #11190f66;z-index:2}
.gifts-heading>.stationery-kicker{font-size:17px;letter-spacing:.12em;margin:0 0 14px}
.gifts-heading h2{font:400 78px/1.12 var(--script);margin:0}
.gifts-heading>.stationery-divider{width:195px;margin-top:15px;color:#c4b590}
.gift-envelope-piece{top:278px;left:30px;width:365px;height:350px;transform:rotate(-4deg)}
.envelope-art{left:-8.563%;top:-21.865%;width:117.126%;height:141.693%}
.cash-gift-piece{left:88px;top:200px;width:292px;height:500px;z-index:2}
.cash-gift-art{left:-8.675%;top:-8.705%;width:117.108%;height:114.579%}
.cash-gift-copy{top:103px;left:19px;right:19px}
.cash-gift-copy>.stationery-kicker{font-size:22px;letter-spacing:.1em;line-height:1.45}
.cash-gift-copy h3{font:400 41px/1.2 var(--script);margin:12px -10px 14px}
.cash-gift-copy p:not(.stationery-kicker){font-size:18px;font-style:italic;line-height:1.35;margin:18px -7px 0}
.cash-gift-copy>.stationery-divider{margin:15px auto}
.registry-piece{right:28px;top:330px;width:310px;height:410px;transform:rotate(3deg);z-index:3}
.registry-art{left:-4.016%;top:-4.741%;width:107.43%;height:108.889%}
.registry-copy{top:93px;left:31px;right:31px}
.registry-copy>.stationery-kicker{font-size:17px;letter-spacing:.055em;white-space:nowrap}
.registry-copy>.stationery-divider{margin:10px auto 13px}
.registry-copy h3{font:400 40px/1.18 var(--script);margin:0 -10px 20px}
.registry-copy p:not(.stationery-kicker){font-size:17px;line-height:1.3;font-style:italic;white-space:nowrap;margin:0 -12px 24px}
.registry-copy a{font:400 17px/1.3 'Times New Roman',Times,serif;letter-spacing:.065em;border-bottom:1px solid #b3a581;padding:5px 4px}
.gifts-orchid{position:absolute;top:135px;right:8px;width:205px;height:auto;z-index:4;pointer-events:none;filter:drop-shadow(0 8px 5px #111a1455)}
.transfer-piece{left:179px;top:782px;width:410px;height:230px;z-index:2}
.transfer-art{left:-4.293%;top:-11.923%;width:108.124%;height:123.077%}
.transfer-copy{top:45px;left:54px;right:54px}
.transfer-copy>.stationery-kicker{font-size:19px;letter-spacing:.1em}
.transfer-copy>.stationery-divider{width:105px;height:9px;margin:4px auto 8px}
.transfer-copy p:not(.stationery-kicker){font-size:18px;line-height:1.25;font-style:italic;margin:0 0 10px}
.transfer-account{display:block;font-size:18px;line-height:1.25;letter-spacing:.025em}

.lodging-stationery{height:auto;padding:10px 0 130px;scroll-margin-top:35px}
.lodging-piece{position:relative;width:620px;margin:0 auto;padding:48px 55px 45px;background:#f4f0e7;border:1px solid #fbf8f0;border-radius:3px;box-shadow:0 0 0 1px #d9d2c0,0 10px 13px #11190e66}
.lodging-piece:after{content:'';position:absolute;inset:13px;border:1px solid #b2a991;border-radius:1px;pointer-events:none}
.lodging-copy{position:relative;inset:auto}
.lodging-copy>.stationery-kicker{font-size:16px;letter-spacing:.1em}
.lodging-hairline{width:118px;height:1px;margin:18px auto 20px;background:linear-gradient(90deg,transparent,#b6aa89,transparent)}
.lodging-copy h2{font:400 53px/1.15 var(--script);margin:0 0 20px}
.hotel-list{list-style:none;margin:0;padding:0}
.hotel-entry+ .hotel-entry{margin-top:27px;padding-top:27px;border-top:1px solid #c9c1af}
.hotel-entry h3{font:400 23px/1.3 'Times New Roman',Times,serif;margin:0 0 8px;overflow-wrap:anywhere}
.hotel-entry p{font-size:20px;line-height:1.35;font-style:italic;margin:0 0 8px;overflow-wrap:anywhere}
.lodging-copy a{font:400 17px/1.3 'Times New Roman',Times,serif;letter-spacing:.07em;margin-top:8px;padding:5px 6px;border-bottom:1px solid #b3a581}
