/* MUESTRA DE INVITACIÓN · ROMANCE FLORAL · 2026 */
:root{
  --navy:#3C487C;--blue:#797EBA;--lavender:#A7A0C9;--peach:#F8D4C4;--rose:#E5B1B9;
  --cream:#FFF9F5;--paper:#FFFEFC;--blush:#FBEDEF;--indigo:#29365F;--ink:#354163;
  --gold:#CDA980;--sage:#8A9C90;--coral:#C87578;--line:#E8DDE5;
  --text-muted:#77738B;--shadow:rgba(53,48,89,.11)
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);font-family:"DM Sans",sans-serif;color:var(--ink);-webkit-font-smoothing:antialiased}
body.invitation-locked{overflow:hidden}
a{text-decoration:none;color:inherit}button{font:inherit}
img{max-width:100%;display:block}
[hidden]{display:none!important}
a:focus-visible,button:focus-visible{outline:2px solid var(--coral);outline-offset:5px}
.site-shell{overflow:hidden}
.section{position:relative;isolation:isolate;padding:114px max(25px,6vw)}
.eyebrow{display:block;font-size:10px;letter-spacing:.3em;font-weight:700;color:#9183A2}
.handwriting{font-family:"Great Vibes",cursive;font-weight:400}
.floral{position:absolute;pointer-events:none;user-select:none;z-index:-1}
.section-heading{text-align:center;max-width:710px;margin:0 auto 57px}
.section-heading h2,.gift-content h2,.rsvp-content h2{
  font-family:"Cormorant Garamond",Georgia,serif;font-size:clamp(48px,5.8vw,75px);
  font-weight:500;line-height:1.08;letter-spacing:-.032em;margin:15px 0 18px
}
.section-heading h2 em,.gift-content h2 em,.rsvp-content h2 em{font-weight:400;color:var(--coral)}
.section-heading>p:not(.eyebrow){max-width:555px;margin:12px auto;line-height:1.9;color:var(--text-muted)}
.section-ornament{display:block;color:var(--coral);font-size:35px}

/* Menú ligero */
.topbar{z-index:5;position:absolute;left:0;right:0;top:0;display:flex;align-items:center;justify-content:space-between;padding:28px 6vw}
.monogram-small{font-family:"Cormorant Garamond",Georgia,serif;letter-spacing:.075em;font-weight:600;font-size:29px;color:var(--navy)}
.monogram-small i,.footer i{font-family:"Great Vibes",cursive;color:var(--coral);font-weight:400}
.top-date{color:#8883A0;letter-spacing:.23em;font-size:10px}
.music-toggle{border:1px solid #D6C7DC;background:#FFFFFFC9;border-radius:30px;padding:11px 16px;display:flex;align-items:center;gap:9px;color:var(--navy);font-size:11px;cursor:pointer;box-shadow:0 5px 20px #30376C0A}
.music-toggle:disabled{opacity:.57;cursor:default}
.music-toggle.playing>span:first-child{animation:iconFloat 1.1s infinite alternate}

/* Primera página */
.hero{display:flex;align-items:center;justify-content:center;min-height:790px;min-height:100svh;overflow:hidden;text-align:center;background:radial-gradient(ellipse at 49% 43%,#FFFDF9 8%,#FDF1EF 48%,#EBE8F6 100%)}
.hero:before{content:"";position:absolute;inset:24px;border:1px solid #D9C7D780;pointer-events:none;border-radius:4px}
.hero:after{content:"";position:absolute;width:560px;height:560px;border:1px solid #E2CFD4A6;border-radius:50%;top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none}
.hero-content{max-width:785px;width:100%;padding:70px 15px 30px;position:relative;z-index:1}
.hero-floral-left{width:clamp(280px,39vw,510px);bottom:-155px;left:-130px;opacity:.85;transform:rotate(-15deg);animation:swayLeft 9s ease-in-out infinite alternate}
.hero-floral-right{width:clamp(295px,37vw,490px);right:-120px;top:-170px;opacity:.85;transform:scaleX(-1) rotate(-12deg);animation:swayRight 11s ease-in-out infinite alternate}
.hero-script{font-size:clamp(42px,6vw,71px);color:#B77384;margin:31px auto 17px}
.hero h1{font-family:"Cormorant Garamond",Georgia,serif;font-weight:400;font-size:clamp(76px,11.8vw,153px);line-height:.83;color:var(--navy);letter-spacing:-.055em;margin:8px auto 29px}
.hero h1 span{display:block}
.hero h1 em{display:block;font:400 .46em/1.08 "Great Vibes",cursive;letter-spacing:0;color:var(--coral);margin:5px 0 8px}
.flourish{display:flex;align-items:center;justify-content:center;gap:16px;color:var(--coral);font-size:27px}
.flourish span{height:1px;width:59px;background:#DFC4BF}
.hero-message{font-family:"Cormorant Garamond",Georgia,serif;font-size:clamp(22px,2.7vw,29px);line-height:1.52;font-style:italic;color:#736883;max-width:540px;margin:20px auto}
.hero-date{letter-spacing:.23em;font-size:11px;font-weight:700;margin:28px auto;color:var(--navy)}
.scroll-link{display:inline-flex;flex-direction:column;gap:9px;align-items:center;letter-spacing:.22em;color:#8C7796;font-size:10px;margin-top:14px}
.scroll-link span{font-size:25px;animation:guideBob 2s ease-in-out infinite}

/* Fecha editorial */
.date-section{background:var(--paper);text-align:center;overflow:hidden}
.date-section:before,.date-section:after{content:"";position:absolute;width:230px;height:300px;background:url("assets/floral-vivo.svg") center/contain no-repeat;pointer-events:none;opacity:.21}
.date-section:before{left:-109px;top:-128px;transform:rotate(-25deg)}
.date-section:after{right:-117px;bottom:-120px;transform:scaleX(-1) rotate(-25deg)}
.date-display{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;margin:28px auto 34px}
.date-month,.date-year{display:block;font-size:12px;letter-spacing:.35em;line-height:1.45;font-weight:700;color:#8C819E}
.date-number{display:block;font-family:"Cormorant Garamond",Georgia,serif;font-weight:400;color:var(--navy);font-size:clamp(116px,15vw,180px);line-height:1.32;letter-spacing:-.025em;margin:0;padding:0 0 12px}
.date-year{margin-top:12px}
.intro-paragraph{max-width:510px;line-height:1.95;color:#827C8C;margin:30px auto 0;font-size:14px}

/* Countdown oscuro celestial */
.count-section{background:linear-gradient(129deg,#354472 0%,#6876AF 75%,#8E91C6 100%);text-align:center;color:var(--paper)}
.count-section:after{content:"";position:absolute;inset:0;opacity:.16;pointer-events:none;background-image:radial-gradient(#fff 1px,transparent 1px);background-size:40px 40px}
.count-section .section-heading .eyebrow{color:#EED1D2}
.count-section .section-heading h2{color:#FFFDF8}
.count-section .section-heading h2 em{color:var(--peach)}
.countdown{display:flex;justify-content:center;align-items:center;gap:clamp(8px,3vw,46px);position:relative;z-index:1}
.count-item{min-width:68px}
.count-item strong{font-family:"Cormorant Garamond",Georgia,serif;font-weight:400;font-variant-numeric:tabular-nums;font-size:clamp(57px,8.6vw,110px);line-height:1.1;display:block;color:#FFFDF9}
.count-item small{display:block;font-size:10px;letter-spacing:.2em;color:#E5D8EA;margin-top:12px}
.count-sep{font:400 38px Georgia,serif;color:#E4A9B3;padding-bottom:18px}
.finished-msg{font:400 51px "Great Vibes",cursive}

/* Ceremonia y recepción */
.places-section{background:linear-gradient(#FFF9F5,#FFFDFB)}
.venue-grid{max-width:1100px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;margin:auto}
.venue-card{min-width:0;background:var(--paper);border:1px solid #EADBE0;border-radius:17px;box-shadow:0 24px 60px var(--shadow);padding:32px;position:relative;text-align:center;overflow:hidden;transition:translate .3s,box-shadow .3s}
.venue-card:hover{translate:0 -5px;box-shadow:0 29px 70px #50527827}
.venue-card:before{content:"";position:absolute;top:0;left:0;right:0;height:8px;background:linear-gradient(90deg,var(--lavender),var(--rose),var(--peach))}
.venue-card:after{content:"";width:120px;height:125px;position:absolute;right:-52px;top:-50px;background:url("assets/floral-vivo.svg") center/contain no-repeat;opacity:.29;pointer-events:none}
.venue-head{min-height:275px}
.venue-number{font-weight:700;font-size:10px;letter-spacing:.23em;color:#9C8BA8}
.venue-art{display:block;font-size:38px;color:var(--coral);margin:15px auto 10px}
.venue-head h3{font:500 clamp(34px,3.5vw,46px)/1.05 "Cormorant Garamond",Georgia,serif;margin:6px auto 14px}
.venue-hour{font:400 47px "Cormorant Garamond",serif;margin:6px auto 12px;color:var(--navy)}
.venue-name{font-size:14px;margin:12px auto 5px;color:#615D7C}
.venue-address{font-size:12px;color:#9C91A3;margin:8px auto 20px}
.map-box{height:217px;overflow:hidden;margin:10px 0 25px;border:1px solid #DEDCE7;border-radius:9px;background:#ECEEF4}
.map-box iframe{width:100%;height:100%;border:0}
.map-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;position:relative;height:100%;background:repeating-linear-gradient(35deg,transparent 0 33px,#DDE1EE 34px 37px,transparent 38px 74px),repeating-linear-gradient(-50deg,#F2F3F8 0 37px,#E2E5ED 38px 42px,#F2F3F8 43px 84px)}
.map-placeholder:before{content:"";position:absolute;inset:0;background:#F7F5FA9E}
.map-placeholder>*{position:relative;z-index:1}
.map-pin{font-size:44px;color:var(--coral);animation:iconFloat 3s ease-in-out infinite alternate}
.map-placeholder strong{font:500 24px "Cormorant Garamond",serif;color:var(--navy)}
.map-placeholder small{color:#8F8D9F;font-size:11px}
.outline-btn,.primary-btn{display:inline-flex;justify-content:center;align-items:center;max-width:100%;text-align:center;padding:17px 24px;min-height:48px;border-radius:30px;font-size:10px;letter-spacing:.15em;font-weight:700;transition:background .2s,transform .2s,color .2s}
.outline-btn{border:1px solid #AAA0C7;color:var(--navy)}
.outline-btn:not(.disabled-btn):hover{background:var(--navy);color:#FFF}
.primary-btn{background:var(--navy);border:1px solid var(--navy);color:#FFF;box-shadow:0 10px 28px #313E6A20}
.primary-btn:not(.disabled-btn):hover{background:#59669A;transform:translateY(-2px)}
.disabled-btn{opacity:.51;cursor:default;box-shadow:none;user-select:none}

/* Cronograma */
.timeline-section{background:#F2ECF5}
.timeline{max-width:665px;position:relative;margin:auto;padding:11px 0}
.timeline:before{content:"";position:absolute;top:18px;bottom:18px;left:161px;border-left:1px dashed #C7B3C8}
.timeline-item{display:grid;grid-template-columns:132px 54px minmax(0,1fr);min-height:85px;align-items:center}
.timeline-item time{font:400 34px "Cormorant Garamond",serif;text-align:right;color:var(--navy);padding-right:6px}
.timeline-dot{display:block;position:relative;z-index:1;background:var(--rose);width:19px;height:19px;border:4px solid #F2ECF5;border-radius:50%;margin:auto;box-shadow:0 0 0 1px #B4A2C3;transition:transform .3s}
.timeline-item:nth-child(even) .timeline-dot{background:var(--blue)}
.timeline-item:hover .timeline-dot{transform:scale(1.4)}
.timeline-item p{font:500 clamp(29px,3.6vw,40px) "Cormorant Garamond",serif;margin:0 0 0 8px;color:#574F79}
.timeline-item:nth-child(2n) p{color:#956C8E}

/* Galería */
.gallery-section{background:var(--paper)}
.gallery-grid{max-width:1100px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px;margin:0 auto 28px}
.gallery-frame{min-width:0;margin:0;border:1px solid #E9D9DB;padding:12px 12px 25px;background:#FFF;box-shadow:0 20px 55px var(--shadow);border-radius:6px;overflow:hidden;transition:transform .35s}
.gallery-frame:nth-child(1){transform:rotate(-2deg)}.gallery-frame:nth-child(2){transform:translateY(28px)}.gallery-frame:nth-child(3){transform:rotate(2deg)}
.gallery-frame:hover{transform:translateY(-9px) rotate(0deg)}
.gallery-frame img{object-fit:cover;width:100%;aspect-ratio:3/4;background:#D8D4E9}
.gallery-frame figcaption{text-align:center;color:#9D859E;font-size:9px;letter-spacing:.16em;margin-top:18px}

/* Regalos */
.gift-section{background:linear-gradient(128deg,#FBE8EA,#FCECE7 50%,#F5E5EF);overflow:hidden;text-align:center}
.gift-floral-left{left:-130px;bottom:-125px;width:370px;opacity:.66;transform:rotate(-10deg)}
.gift-content{max-width:670px;margin:auto;position:relative;z-index:1}
.gift-content>p:not(.eyebrow):not(.mini-hint){max-width:535px;font-size:15px;line-height:1.95;color:#797184;margin:19px auto 32px}
.gift-qr{background:white;border:10px solid white;outline:1px solid #E2C9D6;border-radius:14px;box-shadow:0 19px 55px #A9769433;width:min(285px,100%);margin:27px auto 20px}
.gift-qr img{width:100%;aspect-ratio:1;object-fit:contain}
.mini-hint{color:#98788C;letter-spacing:.17em;font-size:10px}

/* Transmisión */
.zoom-section{background:linear-gradient(140deg,#DCE4F1,#E9E8F3 55%,#F4EAF2)}
.zoom-card{position:relative;text-align:center;max-width:720px;margin:auto;padding:59px 45px;background:#FFFEFC;border-radius:19px;border:1px solid #E2DCE9;box-shadow:0 25px 70px #535D8921}
.zoom-card:before{content:"";height:6px;position:absolute;left:28px;right:28px;top:0;border-radius:0 0 12px 12px;background:linear-gradient(90deg,var(--blue),var(--rose),var(--peach))}
.zoom-art{display:block;color:var(--lavender);font-size:77px;line-height:1}
.zoom-time-label,.zoom-data small{color:#9891A6;font-size:10px;letter-spacing:.23em;display:block}
.zoom-time{font:400 43px "Cormorant Garamond",serif;color:var(--navy);margin:14px auto 34px}
.zoom-data{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;border-top:1px solid #EBE4EC;margin-bottom:33px;padding-top:26px}
.zoom-data strong{font:500 25px "Cormorant Garamond",serif;display:block;margin-top:9px;overflow-wrap:anywhere}

/* Confirmación */
.rsvp-section{background:linear-gradient(120deg,#3C487C,#646DA1);color:white;overflow:hidden;text-align:center}
.rsvp-section .eyebrow{color:#F2CCD6}
.rsvp-content{max-width:630px;margin:auto;z-index:1;position:relative}
.rsvp-content h2 em{color:var(--peach)}
.rsvp-content>p:not(.eyebrow){line-height:1.9;max-width:500px;margin:23px auto 32px;color:#F0E9F4}
.rsvp-floral{bottom:-157px;right:-111px;transform:scaleX(-1) rotate(-16deg);width:385px;opacity:.64}
.rsvp-section .primary-btn{background:#FCE6DD;color:var(--navy);border-color:#FCE6DD}
.rsvp-section .disabled-btn{border:1px solid #F1CBDD;color:#EDE6F0;background:#FFFFFF10}

/* Final */
.closing-section{text-align:center;background:#FFFEFC}
.closing-frame{position:relative;background:#FFF9F7;max-width:860px;margin:auto;padding:85px 35px 74px;outline:1px solid #E5CDD4;outline-offset:-16px;border:1px solid #E8D7DB;box-shadow:0 15px 55px #765B8210;overflow:hidden}
.closing-frame:before,.closing-frame:after{content:"";position:absolute;width:180px;height:210px;background:url("assets/floral-vivo.svg") center/contain no-repeat;opacity:.4;pointer-events:none}
.closing-frame:before{left:-68px;bottom:-91px}.closing-frame:after{right:-71px;top:-100px;transform:scaleX(-1)}
.closing-ornament{display:block;font-size:36px;color:var(--coral)}
.closing-script{font:400 clamp(38px,5vw,59px) "Great Vibes",cursive;color:#AE768E;margin:20px auto}
.closing-frame p:not(.closing-script){line-height:1.9;color:#82778A;max-width:485px;margin:18px auto}
.closing-names{font:500 clamp(41px,5.6vw,69px) "Cormorant Garamond",serif;display:block;margin:34px auto 11px;color:var(--navy)}
.closing-names i{font-family:"Great Vibes",cursive;font-weight:400;color:var(--coral)}
.closing-date{font-size:10px;letter-spacing:.27em;color:#9C859D}
.footer{text-align:center;background:var(--indigo);color:#fff;padding:45px 18px}
.footer>span{font:400 32px "Cormorant Garamond",serif}
.footer p{font-size:9px;letter-spacing:.27em;color:#D5CFE3}

/* La invitación antes de abrir: tarjeta sobre fondo azul profundo */
.envelope-screen{
 position:fixed;z-index:20;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;
 background:radial-gradient(ellipse at 50% 25%,#6974A6 0%,#35416F 65%,#232F59 100%);overflow:hidden;
 transition:opacity .9s ease .6s,visibility .9s ease .6s
}
.envelope-screen:before{
 content:"";position:absolute;inset:clamp(15px,5vw,48px);border-radius:15px;
 background:linear-gradient(150deg,#FFFEFC,#FFF8F5 56%,#FAF0F4);
 border:1px solid #FFFFFFA5;box-shadow:0 35px 130px #141A383F
}
.envelope-screen.is-open{opacity:0;visibility:hidden;pointer-events:none}
.intro-floral{z-index:1;opacity:.92;width:clamp(235px,30vw,360px);filter:drop-shadow(0 8px 10px #74678214)}
.intro-floral-left{left:max(0px,calc(50% - 400px));bottom:6vh;transform:rotate(-17deg)}
.intro-floral-right{right:max(0px,calc(50% - 400px));top:3vh;transform:scaleX(-1) rotate(-17deg)}
.intro-copy{position:absolute;z-index:3;text-align:center;top:clamp(78px,12vh,132px);width:min(84%,580px)}
.intro-copy .eyebrow{color:#9487A0}
.intro-names{font:400 clamp(36px,5.5vw,63px)/1 "Cormorant Garamond",serif;color:var(--navy);margin:20px auto 0}
.intro-subtitle{font:400 clamp(25px,3.1vw,37px)/1.1 "Great Vibes",cursive;color:#BE7D8C;margin:9px auto 0}
.intro-ornament{font-size:15px;letter-spacing:.25em;color:#CFA48F;display:block;margin-top:10px}
.envelope-scene{width:min(430px,72vw);height:310px;perspective:1100px;display:grid;place-items:center;position:relative;margin-top:clamp(46px,10vh,105px);z-index:3}
.envelope-shadow{position:absolute;bottom:19px;height:23px;width:83%;background:#35305835;filter:blur(19px);border-radius:50%}
.envelope{position:relative;isolation:isolate;transform-style:preserve-3d;width:100%;height:250px;filter:drop-shadow(0 16px 25px #48405A35)}
.envelope-back{position:absolute;inset:0;background:#B5A2C8}
.envelope-back:after{content:"";position:absolute;inset:0;background:#F0E0E6;clip-path:polygon(0 0,50% 56%,100% 0)}
.envelope-letter{position:absolute;z-index:2;top:17px;left:11%;width:78%;height:208px;background:#FFFDFA;box-shadow:0 6px 19px #3B375434;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;transition:transform 1.15s cubic-bezier(.16,.83,.15,1) .15s}
.letter-flourish{font-size:26px;color:#BC859E}.letter-initials{font:400 45px "Cormorant Garamond",serif;color:var(--navy)}.letter-caption{font-size:9px;letter-spacing:.24em;color:#9B90A6}
.envelope-flap{position:absolute;z-index:5;top:0;left:0;width:100%;height:66%;clip-path:polygon(0 0,100% 0,50% 100%);background:linear-gradient(160deg,#C3B0D3,#A694C3);transform-origin:top center;transition:transform .95s ease;backface-visibility:hidden}
.envelope-front{position:absolute;inset:0;z-index:4;background:linear-gradient(140deg,#A9A1C9,#8C8FC3);clip-path:polygon(0 0,50% 55%,100% 0,100% 100%,0 100%)}
.envelope-front:after{content:"";position:absolute;inset:0;background:linear-gradient(140deg,#AF9FC8,#9296C5);clip-path:polygon(0 100%,50% 48%,100% 100%)}
.wax-seal{
 z-index:7;position:absolute;top:41%;left:50%;width:82px;height:82px;border-radius:50%;
 border:5px double #DCB49F;display:grid;place-items:center;cursor:pointer;
 background:radial-gradient(circle at 31% 24%,#E4A8A6,#BC667E 70%,#9D5F7B);
 box-shadow:0 5px 18px #4934564D,0 0 0 4px #C47F91;color:#FFF8F2;
 transform:translate(-50%,-50%);animation:sealWiggle 3s ease-in-out infinite;transition:opacity .35s
}
.wax-seal span{font-family:"Cormorant Garamond",serif;font-size:25px}
.wax-seal i{font-style:normal;font-family:"Great Vibes",cursive}
.seal-halo{z-index:6;pointer-events:none;position:absolute;left:50%;top:41%;width:92px;height:92px;border:2px solid #E2A6B0;border-radius:50%;transform:translate(-50%,-50%);animation:haloPulse 2.7s ease-out infinite;opacity:.7}
.intro-hint{position:absolute;z-index:4;bottom:clamp(62px,11vh,125px);display:flex;flex-direction:column;align-items:center;gap:9px;text-align:center;color:var(--navy)}
.hint-arrow{font-size:29px;color:var(--coral);line-height:1;animation:guideUp 1.6s ease-in-out infinite}
.intro-hint strong{font-size:12px;letter-spacing:.2em}
.intro-hint small{font-size:12px;color:#8D8092}
.is-open .envelope-flap{transform:rotateX(180deg);z-index:1}
.is-open .envelope-letter{transform:translateY(-125px)}
.is-open .wax-seal{animation:none;opacity:0;pointer-events:none}
.is-open .seal-halo{opacity:0;animation:none}
.petal-layer{pointer-events:none;position:absolute;inset:0;z-index:12;overflow:hidden}
.flying-petal{position:absolute;top:50%;left:50%;width:var(--petal-width,12px);height:var(--petal-height,20px);
 border-radius:90% 10% 70% 25%;background:var(--petal-color,#E5B1B9);
 opacity:0;transform:translate(-50%,-50%) rotate(0deg);
 animation:petalBurst var(--petal-duration,1500ms) cubic-bezier(.15,.62,.32,1) forwards}

/* Movimientos sutiles */
.animate-icon{display:inline-block;transform-origin:center;animation:iconFloat 4s ease-in-out infinite alternate}
.venue-card:hover .venue-art{animation:iconTwirl .75s ease}
.reveal{opacity:0;translate:0 25px;transition:opacity .75s ease,translate .75s ease}.reveal.visible{opacity:1;translate:0 0}
@keyframes iconFloat{from{transform:translateY(0) rotate(-5deg)}to{transform:translateY(-6px) rotate(5deg)}}
@keyframes iconTwirl{to{transform:rotate(12deg) scale(1.18)}}
@keyframes guideBob{50%{transform:translateY(8px)}}
@keyframes guideUp{50%{transform:translateY(-8px)}}
@keyframes sealWiggle{0%,100%{transform:translate(-50%,-50%) rotate(-4deg) scale(1)}45%{transform:translate(-50%,-54%) rotate(4deg) scale(1.055)}70%{transform:translate(-50%,-52%) rotate(-2deg) scale(1.02)}}
@keyframes haloPulse{0%{opacity:.6;transform:translate(-50%,-50%) scale(.86)}78%,100%{opacity:0;transform:translate(-50%,-50%) scale(1.9)}}
@keyframes swayLeft{to{transform:rotate(-10deg) translateY(-11px)}}
@keyframes swayRight{to{transform:scaleX(-1) rotate(-7deg) translateY(-9px)}}
@keyframes petalBurst{
  0%{opacity:0;transform:translate(-50%,-50%) scale(.35) rotate(0)}
  12%{opacity:.98}
  100%{opacity:0;transform:translate(calc(-50% + var(--petal-x)),calc(-50% + var(--petal-y))) rotate(var(--petal-rotate)) scale(.9)}
}
@media(max-width:760px){
.section{padding:82px 23px}.topbar{padding:19px 22px}.top-date{display:none}.music-toggle{font-size:10px;padding:9px 11px}
.hero{min-height:720px;min-height:100svh;padding:93px 11px 70px}.hero:before{inset:13px}.hero:after{width:390px;height:390px;opacity:.65}
.hero-content{padding:20px 0}.hero h1{font-size:clamp(78px,16vw,118px)}.hero-script{font-size:44px;margin-top:24px}
.hero-message{font-size:22px;line-height:1.42;max-width:365px}.hero-date{font-size:9px;letter-spacing:.14em}.scroll-link{font-size:9px}
.hero-floral-left{width:275px;left:-179px;bottom:-127px;opacity:.66}.hero-floral-right{width:275px;right:-180px;top:-128px;opacity:.7}
.section-heading{margin-bottom:41px}.date-number{font-size:clamp(114px,22vw,148px);line-height:1.35;padding-bottom:14px}.date-display{gap:14px}.date-year{margin-top:14px}
.countdown{gap:9px}.count-item{min-width:42px}.count-item strong{font-size:clamp(46px,10vw,76px)}.count-item small{font-size:8px;letter-spacing:.07em}.count-sep{font-size:24px;padding-bottom:18px}
.venue-grid{grid-template-columns:1fr;max-width:520px}.venue-card{padding:27px 22px}.venue-head{min-height:261px}.map-box{height:190px}
.timeline:before{left:118px}.timeline-item{grid-template-columns:90px 54px minmax(0,1fr);min-height:83px}.timeline-item time{font-size:29px}.timeline-item p{font-size:29px}
.gallery-grid{gap:9px}.gallery-frame{padding:7px 7px 16px}.gallery-frame:nth-child(2){transform:translateY(17px)}.gallery-frame figcaption{font-size:7px;letter-spacing:.06em;margin-top:13px}
.gift-floral-left{width:235px;left:-147px;bottom:-108px;opacity:.46}.gift-qr{width:min(260px,100%)}.zoom-card{padding:51px 23px}.zoom-data{gap:13px}.zoom-data strong{font-size:22px}
.rsvp-floral{width:240px;right:-147px;bottom:-115px;opacity:.45}.closing-frame{padding:70px 25px}
.envelope-screen:before{inset:17px 14px;border-radius:11px}
.intro-copy{top:clamp(67px,13vh,130px);width:86%}.intro-copy .eyebrow{font-size:9px;letter-spacing:.2em}
.intro-names{font-size:clamp(36px,9vw,52px);margin-top:14px}.intro-subtitle{font-size:28px}.intro-ornament{margin-top:9px}
.intro-floral{width:215px;opacity:.69}.intro-floral-left{left:-100px;bottom:10vh}.intro-floral-right{right:-100px;top:4vh}
.envelope-scene{width:min(350px,78vw);height:272px;margin-top:80px}.envelope{height:215px}.envelope-letter{height:174px}.wax-seal{width:72px;height:72px}.seal-halo{height:82px;width:82px}
.intro-hint{bottom:clamp(52px,10vh,110px);gap:8px}.intro-hint strong{font-size:10px;letter-spacing:.14em}.intro-hint small{font-size:11px}
}
@media(max-height:650px){.intro-copy{top:35px}.envelope-scene{margin-top:70px;scale:.85}.intro-hint{bottom:24px}.intro-floral{opacity:.38}}
@media(max-width:380px){.hero h1{font-size:76px}.hero-message{font-size:20px}.count-item strong{font-size:42px}.count-sep{font-size:18px}.count-item{min-width:39px}.timeline:before{left:105px}.timeline-item{grid-template-columns:80px 49px minmax(0,1fr)}.timeline-item p{font-size:26px}.zoom-data{grid-template-columns:1fr}.intro-subtitle{font-size:24px}.intro-names{font-size:34px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.reveal{opacity:1;translate:0 0}}


/* AJUSTES DE LA MUESTRA: portada fotográfica, nombres legibles y cronograma ilustrado. */
.hero-photo-frame{
  position:relative;width:214px;max-width:65vw;margin:20px auto 16px;
  padding:8px 8px 13px;background:#fffaf7;border:1px solid #e6cfd6;
  border-radius:112px 112px 13px 13px;box-shadow:0 11px 36px #6b567d30;
  transform:rotate(-1.3deg)
}
.hero-photo-frame:after{
  content:"";position:absolute;inset:4px;z-index:-1;
  border:1px solid #d6a5b0;border-radius:112px 112px 12px 12px;
  pointer-events:none
}
.hero-photo-frame img{
  display:block;width:100%;height:160px;object-fit:cover;object-position:center 36%;
  border-radius:102px 102px 5px 5px;background:#f7e6ed
}
.hero-photo-flourish{
  position:absolute;z-index:2;top:-16px;left:50%;transform:translateX(-50%);
  color:#c78392;font:400 29px "Cormorant Garamond",serif;
  text-shadow:0 2px 4px #fff
}
.hero-photo-frame figcaption{
  font:400 21px "Great Vibes",cursive;text-align:center;color:#a6708c;
  margin:8px auto -2px;white-space:nowrap
}
.hero-content .hero-script{margin-top:14px;margin-bottom:7px}
.hero-content h1{font-size:clamp(68px,10.2vw,132px);margin-bottom:18px}
.hero-content .hero-message{margin-top:13px;margin-bottom:14px}
.hero-content .hero-date{margin-top:16px;margin-bottom:13px}
.hero-content .scroll-link{margin-top:8px}

/* Las flores se mantienen en los bordes de la tarjeta, no sobre el título. */
@media(min-width:761px){
  .intro-floral-left{left:clamp(-48px,3vw,75px);bottom:3vh;width:clamp(225px,25vw,350px)}
  .intro-floral-right{right:clamp(-48px,3vw,75px);top:3vh;width:clamp(225px,25vw,350px)}
  .intro-copy{left:50%;transform:translateX(-50%);max-width:590px;width:calc(100% - 490px);min-width:340px}
  .intro-copy .intro-names{font-size:clamp(38px,4vw,59px)}
}
@media(min-width:761px) and (max-width:1040px){
  .intro-floral-left,.intro-floral-right{width:215px;opacity:.67}
  .intro-floral-left{left:-60px;bottom:1vh}
  .intro-floral-right{right:-65px;top:-43px}
  .intro-copy{width:calc(100% - 250px);min-width:0}
}
.intro-copy{isolation:isolate}
.intro-copy .intro-names,.intro-copy .intro-subtitle,.intro-copy .eyebrow{
  position:relative;z-index:2;text-shadow:0 1px 3px #fff8f4
}

.timeline-detail{display:flex;align-items:center;gap:17px;min-width:0}
.timeline-event-icon{
  display:grid;place-items:center;flex:none;width:46px;height:46px;
  border:1px solid #d9c8e0;border-radius:50%;background:#fff9f7;
  color:#b9758a;box-shadow:0 5px 16px #735b9020;
  animation:timelineIconFloat 3.8s ease-in-out infinite alternate;
  animation-delay:calc(var(--event-index,0) * -.45s);
  transition:transform .25s,background .25s,color .25s
}
.timeline-event-icon svg{width:26px;height:26px}
.timeline-item:nth-child(even) .timeline-event-icon{color:#697caf;background:#f4f4fb}
.timeline-detail p{margin:0;flex:1}
.timeline-item:hover .timeline-event-icon{transform:scale(1.13) rotate(7deg);color:var(--navy)}
@keyframes timelineIconFloat{
  0%{translate:0 2px;rotate:-5deg}
  100%{translate:0 -4px;rotate:5deg}
}
@media(max-width:760px){
  .intro-floral-right{right:-137px;top:-98px;width:192px;opacity:.48}
  .intro-floral-left{left:-116px;bottom:-50px;width:185px;opacity:.52}
  .intro-copy{z-index:5}
  .hero-content{padding:52px 0 35px}
  .hero-photo-frame{width:164px;margin:14px auto 11px;padding:6px 6px 9px}
  .hero-photo-frame img{height:125px}
  .hero-photo-frame figcaption{font-size:19px;margin-top:6px}
  .hero-photo-flourish{font-size:23px;top:-13px}
  .hero-content .hero-script{margin:12px auto 3px}
  .hero-content h1{font-size:clamp(70px,14.4vw,102px);margin:5px auto 13px}
  .hero-content .hero-message{font-size:20px;line-height:1.36;max-width:360px;margin:9px auto}
  .hero-content .hero-date{margin:12px auto}
  .timeline-detail{gap:10px}
  .timeline-event-icon{width:38px;height:38px}
  .timeline-event-icon svg{width:22px;height:22px}
  .timeline-detail p{font-size:clamp(23px,5.8vw,32px)}
}
@media(max-width:380px){
  .hero-photo-frame{width:142px;margin-top:11px}
  .hero-photo-frame img{height:112px}
  .hero-content h1{font-size:66px}
  .hero-content .hero-script{font-size:38px}
  .timeline-event-icon{width:33px;height:33px}
  .timeline-event-icon svg{width:18px;height:18px}
  .timeline-detail{gap:7px}
  .timeline-detail p{font-size:21px}
}
@media(prefers-reduced-motion:reduce){
  .timeline-event-icon{animation:none!important;translate:0!important;rotate:0!important}
}


/* Botón RSVP: icono reconocible de WhatsApp, respetando el estilo floral. */
.rsvp-section .whatsapp-rsvp-btn {
  display:inline-flex;align-items:center;justify-content:center;gap:11px;
  padding:12px 21px 12px 14px;min-height:58px;max-width:min(100%,480px);
  white-space:normal;line-height:1.4;box-shadow:0 12px 30px #131c4d2e;
}
.rsvp-section .whatsapp-rsvp-btn .wa-icon {
  display:grid;place-items:center;flex:none;width:36px;height:36px;
  border-radius:50%;background:#25D366;color:#fff;
  box-shadow:0 3px 8px #0c77342c;transition:transform .3s ease;
}
.rsvp-section .whatsapp-rsvp-btn .wa-icon svg{display:block;width:21px;height:21px}
.rsvp-section .whatsapp-rsvp-btn:not(.disabled-btn):hover .wa-icon{transform:rotate(-9deg) scale(1.1)}
.rsvp-section .whatsapp-rsvp-btn .wa-arrow{font-size:15px;flex:none}
.rsvp-section .whatsapp-rsvp-btn.disabled-btn{box-shadow:none}
.rsvp-section .whatsapp-rsvp-btn.disabled-btn .wa-icon{opacity:.85}
@media(max-width:400px){
  .rsvp-section .whatsapp-rsvp-btn{gap:8px;padding:11px 13px 11px 10px;font-size:9px;letter-spacing:.08em}
  .rsvp-section .whatsapp-rsvp-btn .wa-icon{width:32px;height:32px}
  .rsvp-section .whatsapp-rsvp-btn .wa-icon svg{width:19px;height:19px}
}
@media(prefers-reduced-motion:reduce){
  .rsvp-section .whatsapp-rsvp-btn .wa-icon{transition:none}
}


/* NUEVAS SECCIONES · PADRES Y VESTIMENTA */

/* Padres: papelería romántica inspirada en el resto de la invitación. */
.parents-section{
  overflow:hidden;
  background:linear-gradient(130deg,#FFFDFB 3%,#FBF1F1 52%,#F6F0F8 100%);
}
.parents-floral{
  width:310px;left:-132px;bottom:-125px;opacity:.37;
  transform:rotate(-23deg);
}
.parents-grid{
  max-width:1010px;margin:0 auto;display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));gap:27px;
}
.parents-card{
  position:relative;text-align:center;
  border:1px solid #E8D5DB;border-radius:16px;
  background:#FFFEFCEB;padding:45px 24px 49px;
  box-shadow:0 20px 50px rgba(65,62,105,.075);
}
.parents-card:before{
  content:"";position:absolute;inset:11px;pointer-events:none;
  border:1px solid #EADDE4;border-radius:10px;
}
.parents-card-icon{
  display:block;font:400 35px Georgia,serif;
  color:#C78D9E;margin-bottom:15px;
  animation:iconFloat 5s ease-in-out infinite alternate;
}
.parents-card-label{
  position:relative;font-size:10px;letter-spacing:.23em;
  color:#8F83A1;font-weight:700;margin:0 0 21px;
}
.parent-person{
  position:relative;margin:0 auto;
  font:500 clamp(27px,3vw,38px)/1.2 "Cormorant Garamond",Georgia,serif;
  color:#48547F;overflow-wrap:anywhere;
}
.parents-join{
  position:relative;display:block;
  font:400 31px/1 "Great Vibes",cursive;
  color:#BC859A;margin:11px auto;
}
.parents-card:nth-child(2) .parents-card-icon{animation-delay:-2s}

/* Vestimenta: dos tarjetas ilustradas con recomendaciones distintas. */
.dress-section{
  overflow:hidden;
  background:linear-gradient(130deg,#EDECF6,#F9EEF1 65%,#FEF6F1);
}
.dress-section:before{
  content:"";position:absolute;right:-128px;top:-130px;
  background:url("assets/floral-vivo.svg") center/contain no-repeat;
  width:310px;height:365px;opacity:.21;pointer-events:none;
  transform:scaleX(-1) rotate(-15deg);
}
.dress-section .section-heading{margin-bottom:39px}
.dress-type{
  display:inline-block!important;margin:6px auto 0!important;
  font-size:11px!important;letter-spacing:.3em!important;
  font-weight:700;color:#4E5A88!important;
  border:1px solid #C8BED8;padding:10px 24px;border-radius:24px;
  background:#FFFAF9;
}
.dress-grid{
  max-width:1010px;margin:0 auto;display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));gap:27px;
}
.dress-card{
  display:flex;flex-direction:column;align-items:center;
  text-align:center;padding:39px 28px 43px;
  border:1px solid #E6D9E7;border-radius:16px;
  background:#FFFFFFE8;box-shadow:0 20px 47px rgba(62,58,103,.09);
}
.dress-illustration{
  display:grid;place-items:center;
  width:133px;height:144px;color:#AC798E;margin-bottom:18px;
  background:radial-gradient(circle at 50% 45%,#FBE6E4,#F8F0F4 68%,transparent 72%);
}
.dress-card:nth-child(2) .dress-illustration{
  color:#6F78AB;
  background:radial-gradient(circle at 50% 45%,#E9E9F5,#F3F0F9 68%,transparent 72%);
}
.dress-illustration svg{
  width:100px;height:113px;
  animation:dressFloat 4.8s ease-in-out infinite alternate;
}
.dress-card:nth-child(2) .dress-illustration svg{animation-delay:-2s}
.dress-card .eyebrow{font-size:10px}
.dress-card h3{
  font:500 43px/1.1 "Cormorant Garamond",Georgia,serif;
  color:#45517F;margin:12px 0 13px;
}
.dress-card>p:last-child{
  max-width:305px;font-size:14px;line-height:1.8;
  color:#7D7487;margin:0;
}
.dress-note{
  max-width:650px;text-align:center;font-size:13px;
  line-height:1.85;color:#7B758A;margin:30px auto 0;
}
@keyframes dressFloat{
  0%{transform:translateY(3px) rotate(-2deg)}
  100%{transform:translateY(-5px) rotate(2deg)}
}

/* Control accesible: flotante y visible mientras se desplaza la página. */
.topbar .music-toggle{
  position:fixed;z-index:15;
  right:max(18px,env(safe-area-inset-right));
  bottom:max(20px,env(safe-area-inset-bottom));
  top:auto;left:auto;
  min-width:200px;min-height:66px;
  display:flex;align-items:center;justify-content:flex-start;gap:12px;
  text-align:left;border:2px solid #5D6695;border-radius:45px;
  padding:10px 20px 10px 11px;
  color:#334373;background:#FFFDF9;
  box-shadow:0 12px 35px rgba(38,43,93,.3);
  cursor:pointer;transition:transform .2s,box-shadow .2s,background .2s;
}
.topbar .music-toggle:not(:disabled):hover{
  transform:translateY(-3px);
  box-shadow:0 16px 43px rgba(38,43,93,.36);
}
.topbar .music-toggle:focus-visible{
  outline:3px solid #C47790;outline-offset:3px;
}
.topbar .music-control-icon{
  width:44px;height:44px;flex:none;display:grid;place-items:center;
  border-radius:50%;color:#FFF;background:var(--navy);
}
.topbar .music-control-icon svg{width:25px;height:25px;display:block;grid-area:1/1}
.topbar .music-pause-symbol{display:none!important}
.topbar .music-toggle.playing .music-play-symbol{display:none!important}
.topbar .music-toggle.playing .music-pause-symbol{display:block!important}
.topbar .music-toggle.playing .music-control-icon{background:#B96B88}
.topbar .music-control-copy{display:flex;flex-direction:column;gap:4px;min-width:0}
.topbar .music-control-copy strong{
  font:700 14px/1.15 "DM Sans",Arial,sans-serif;
  color:#344273;white-space:nowrap;
}
.topbar .music-control-copy small{
  font:500 11px/1.2 "DM Sans",Arial,sans-serif;
  color:#72718B;white-space:nowrap;
}
.topbar .music-toggle:disabled{opacity:.7;cursor:default}
@media(max-width:760px){
  .parents-section,.dress-section{padding:78px 22px}
  .parents-grid,.dress-grid{grid-template-columns:1fr;gap:20px;max-width:490px}
  .parents-card{padding:34px 20px 39px}
  .parent-person{font-size:32px}
  .parents-floral{width:210px;left:-135px;bottom:-80px;opacity:.26}
  .dress-card{padding:29px 20px 34px}
  .dress-illustration{width:113px;height:115px;margin-bottom:9px}
  .dress-illustration svg{width:86px;height:102px}
  .dress-card h3{font-size:37px}
  .dress-section:before{opacity:.11;width:215px;right:-128px;top:-120px}
  .topbar .music-toggle{
    right:calc(12px + env(safe-area-inset-right));
    bottom:calc(12px + env(safe-area-inset-bottom));
    min-width:188px;min-height:62px;
    padding:9px 17px 9px 9px;gap:10px;
  }
  .topbar .music-control-icon{width:41px;height:41px}
  .topbar .music-control-copy strong{font-size:14px}
  .topbar .music-control-copy small{font-size:10px}
}
@media(prefers-reduced-motion:reduce){
  .parents-card-icon,.dress-illustration svg{animation:none!important}
  .topbar .music-toggle{transition:none!important}
}


/* REDISEÑO EDITORIAL DE PORTADA Y CALENDARIO — 2026-10-29 */

/* Foto protagonista: nombre y foto forman una sola composición. */
.hero .hero-content{
  width:100%;
  max-width:900px;
  padding:95px 16px 79px;
}
.hero .hero-eyebrow{
  position:relative;
  z-index:3;
  margin:0 auto 13px;
}
.hero .hero-script{
  position:relative;
  z-index:3;
  color:#B76E88;
  font-size:clamp(49px,6.4vw,77px);
  line-height:1.15;
  margin:0 auto -19px;
  text-shadow:0 3px 8px #FFF9F5,0 1px 2px #FFF9F5;
}
.hero .hero-photo-frame{
  position:relative;
  isolation:isolate;
  width:min(660px,calc(100% - 18px));
  max-width:none;
  height:clamp(460px,61svh,615px);
  padding:0;
  margin:0 auto 24px;
  border:5px solid #FFFDFC;
  border-radius:285px 285px 19px 19px;
  background:#AAA8CE;
  box-shadow:0 21px 54px rgba(43,45,84,.22),0 0 0 1px #EAD4D8;
  transform:none;
  overflow:hidden;
}
.hero .hero-photo-frame img{
  width:100%;height:100%;
  display:block;
  object-fit:cover;
  object-position:center 35%;
  border-radius:0;
  background:linear-gradient(120deg,#E5B1B9,#797EBA);
}
.hero .hero-photo-frame:after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  border:none;
  border-radius:inherit;
  pointer-events:none;
  background:linear-gradient(to bottom,
    rgba(19,24,49,0) 28%,
    rgba(26,30,59,.12) 46%,
    rgba(27,31,64,.65) 70%,
    rgba(24,28,56,.96) 100%
  );
}
.hero .hero-photo-overlay{
  position:absolute;
  z-index:2;
  inset:auto 15px 22px;
  margin:0;
  width:auto;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-end;
  gap:1px;
  padding:14px 10px 0;
  color:#FFFDF9;
  text-align:center;
}
.hero .hero-photo-kicker{
  display:block;
  margin:0 0 10px;
  font:600 10px/1.4 "DM Sans",Arial,sans-serif;
  letter-spacing:.28em;
  color:#F6D5D5;
  text-shadow:0 2px 4px #1C254BAA;
}
.hero .hero-photo-overlay h1{
  font-family:"Cormorant Garamond",Georgia,serif;
  font-size:clamp(59px,7.3vw,90px);
  font-weight:500;
  line-height:.82;
  letter-spacing:-.04em;
  color:#FFFDF9;
  max-width:100%;
  overflow-wrap:anywhere;
  text-shadow:0 3px 14px #111634A8;
  margin:0;
}
.hero .hero-photo-overlay h1 span{
  display:block;
  padding:.06em 0;
}
.hero .hero-photo-overlay h1 em{
  color:#F7D1CA;
  display:block;
  font:400 .54em/.95 "Great Vibes",cursive;
  text-shadow:0 3px 7px #12173378;
  margin:0 auto 1px;
  letter-spacing:0;
}
.hero .hero-photo-ornament{
  display:block;
  color:#F9D7D2;
  font-size:15px;
  letter-spacing:.15em;
  text-shadow:0 2px 6px #111633C0;
  margin-top:8px;
}
.hero .hero-message{
  font-size:clamp(21px,2.6vw,28px);
  margin:14px auto 10px;
  max-width:615px;
}
.hero .hero-date{
  margin:14px auto 14px;
}
.hero .scroll-link{margin:8px auto 0}

/* Calendario con semana real y día del evento señalado. */
.date-section .section-heading{max-width:760px}
.wedding-calendar{
  --calendar-ink:#46527F;
  width:min(510px,100%);
  margin:34px auto 31px;
  border-radius:20px;
  overflow:hidden;
  background:#FFFCFB;
  border:1px solid #E4D6DE;
  box-shadow:0 22px 53px rgba(57,48,89,.13);
  text-align:center;
}
.calendar-header{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:5px;
  min-height:133px;
  background:linear-gradient(130deg,#435186,#7A7DB8);
  padding:21px 15px 19px;
  color:#FFFAF6;
}
.calendar-overline{
  font:600 10px/1.4 "DM Sans",Arial,sans-serif;
  letter-spacing:.28em;color:#F5D3DC;
}
.calendar-month{
  display:block;
  color:#FFFAF6;
  font:500 clamp(37px,6vw,51px)/1 "Cormorant Garamond",Georgia,serif;
  letter-spacing:.045em;
}
.calendar-year{
  display:block;
  font:600 11px/1.3 "DM Sans",Arial,sans-serif;
  letter-spacing:.28em;color:#F5E6EB;
}
.calendar-weekdays,.calendar-grid{
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  align-items:center;
  justify-items:stretch;
  gap:5px;
  margin:0 22px;
}
.calendar-weekdays{margin-top:23px;margin-bottom:13px}
.calendar-weekdays span{
  display:grid;place-items:center;
  color:#8E829E;font:700 11px/1 "DM Sans",Arial,sans-serif;
  letter-spacing:.08em;
}
.calendar-grid{
  padding-bottom:21px;
}
.calendar-day,.calendar-empty{
  min-width:0;
  aspect-ratio:1/1;
  display:grid;
  place-items:center;
  position:relative;
}
.calendar-day{
  border-radius:50%;
  font:500 clamp(14px,2.5vw,19px)/1 "Cormorant Garamond",Georgia,serif;
  color:#5B597A;
}
.calendar-day span{position:relative;z-index:2}
.calendar-day.is-wedding{
  color:#FFFEFD;
  font-weight:700;
  background:linear-gradient(135deg,#C97692,#9A668F);
  box-shadow:0 5px 13px rgba(155,98,144,.26);
}
.calendar-day.is-wedding:after{
  position:absolute;
  right:3px;top:1px;
  content:"♥";
  font:700 8px/1 Arial,sans-serif;
  color:#FFE4D8;
}
.calendar-foot{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  min-height:85px;
  padding:15px 10px 18px;
  border-top:1px solid #F0E6EB;
  background:linear-gradient(90deg,#FFF6F1,#FFF9FC);
}
.calendar-foot-label{
  font:700 10px/1.35 "DM Sans",Arial,sans-serif;
  letter-spacing:.13em;
  color:#8D7C9B;
}
.calendar-big-day{
  font:500 43px/1 "Cormorant Garamond",serif;
  color:var(--navy);
}
.calendar-weekday{
  font:700 11px/1.35 "DM Sans",Arial,sans-serif;
  letter-spacing:.14em;
  color:#AE708E;
}
@media(max-width:760px){
  .hero .hero-content{
    width:100%;
    padding:97px 6px 58px;
  }
  .hero .hero-script{
    margin:9px auto -15px;
    font-size:clamp(50px,11vw,66px);
  }
  .hero .hero-photo-frame{
    width:min(445px,calc(100% - 12px));
    height:clamp(399px,58svh,560px);
    margin:0 auto 19px;
    border-width:4px;
    border-radius:220px 220px 17px 17px;
  }
  .hero .hero-photo-overlay{
    inset:auto 10px 18px;
    padding:0 7px;
    gap:0;
  }
  .hero .hero-photo-kicker{
    font-size:8px;
    letter-spacing:.18em;
    margin-bottom:9px;
  }
  .hero .hero-photo-overlay h1{
    font-size:clamp(51px,12.8vw,73px);
  }
  .hero .hero-photo-overlay h1 em{
    font-size:.55em;
    margin:1px auto;
  }
  .hero .hero-photo-ornament{margin-top:6px}
  .hero .hero-message{
    font-size:21px;
    line-height:1.43;
    margin:10px auto 9px;
  }
  .hero .hero-date{margin:13px auto 12px}
  .wedding-calendar{
    width:min(420px,100%);
    margin:25px auto 28px;
  }
  .calendar-header{min-height:124px;padding:17px 12px}
  .calendar-weekdays,.calendar-grid{gap:3px;margin-left:13px;margin-right:13px}
  .calendar-day{font-size:17px}
  .calendar-foot{gap:11px}
}
@media(max-width:390px){
  .hero .hero-content{padding-top:88px}
  .hero .hero-photo-frame{height:clamp(380px,54svh,485px)}
  .hero .hero-photo-overlay h1{font-size:clamp(48px,12vw,59px)}
  .hero .hero-photo-kicker{font-size:7px;letter-spacing:.12em}
  .calendar-grid,.calendar-weekdays{margin-left:9px;margin-right:9px;gap:2px}
  .calendar-day{font-size:16px}
  .calendar-foot{gap:8px}
  .calendar-foot-label,.calendar-weekday{font-size:9px}
}
