:root{--ink:#191318;--black:#130f12;--burgundy:#632638;--burgundy-deep:#3f1927;--gold:#ddbf84;--gold-dark:#a8834d;--ivory:#f8f2eb;--cream:#ede2d7;--muted:#72686b;--line:rgba(122,91,66,.25);--heading:'Cormorant Garamond',Georgia,serif;--body:'DM Sans',Arial,sans-serif}
*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ivory);color:var(--ink);font-family:var(--body);-webkit-font-smoothing:antialiased}img{max-width:100%;display:block}button,input,select,textarea{font:inherit}a{color:inherit;text-decoration:none}button{cursor:pointer}.container{width:min(1120px,calc(100% - 48px));margin-inline:auto}.section{padding:110px 0}.section--ivory{background-color:var(--ivory)}h1,h2,h3,p{margin-top:0}h2{font:500 clamp(3.4rem,6.6vw,6rem)/.96 var(--heading);letter-spacing:-.028em;margin-bottom:22px}h2 em{font-weight:400;color:var(--burgundy)}.eyebrow{font-size:.7rem;line-height:1.8;letter-spacing:.26em;font-weight:700;color:var(--gold-dark)}.eyebrow--light{color:var(--gold)}.button{min-height:51px;padding:15px 27px;border:1px solid transparent;display:inline-flex;align-items:center;justify-content:center;gap:24px;font-size:.73rem;letter-spacing:.11em;text-transform:uppercase;font-weight:700;transition:transform .25s,background-color .25s,color .25s,box-shadow .25s}.button:hover{transform:translateY(-3px)}.button:focus-visible,.text-button:focus-visible,.gallery-controls button:focus-visible,.copy-btn:focus-visible,.nav a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #bf9150;outline-offset:3px}.button--gold{color:#211519;background:var(--gold)}.button--gold:hover{background:#f2dba8;box-shadow:0 8px 25px #0003}.button--wine{background:var(--burgundy);color:#fff}.button--wine:hover{background:#7d3147}.button--outline{border-color:#a68966;color:var(--burgundy);background:transparent}.button--outline:hover{background:var(--burgundy);border-color:var(--burgundy);color:#fff}.button--full{width:100%}.skip-link{position:absolute;top:-80px;left:20px;background:#fff;color:#111;padding:10px;z-index:100}.skip-link:focus{top:15px}
/* Hero */
.hero{min-height:780px;min-height:100svh;background:var(--black);color:var(--ivory);position:relative;isolation:isolate;overflow:hidden;display:flex;flex-direction:column}.hero__background{position:absolute;inset:0;background:linear-gradient(90deg,rgba(13,10,13,.93) 0%,rgba(20,13,17,.82) 48%,rgba(20,13,17,.75) 100%),linear-gradient(0deg,#130f12 0%,transparent 35%),url('../img/portada-luces.webp') center 41%/cover;filter:saturate(.65);z-index:-1;transform:scale(1.02)}.hero:before,.footer:before{content:'';position:absolute;inset:14px;border:1px solid rgba(221,191,132,.18);pointer-events:none}.nav{height:90px;display:flex;align-items:center;justify-content:space-between;position:relative;z-index:2}.brand{display:inline-flex;align-items:center;gap:5px;font:500 31px var(--heading);letter-spacing:-.04em;color:var(--gold)}.brand__star{font:400 11px var(--body);transform:translateY(-5px)}.nav__link{font-size:.73rem;text-transform:uppercase;letter-spacing:.13em;color:#f8e7d2}.nav__link span{margin-left:7px;color:var(--gold)}.hero__body{flex:1;display:grid;grid-template-columns:1.15fr .85fr;align-items:center;gap:60px;padding-top:34px;padding-bottom:95px}.hero__copy{position:relative;z-index:2}.hero__copy>.eyebrow{margin-bottom:27px;letter-spacing:.19em}.dot{color:var(--gold);padding:0 9px}.hero__flourish{font-size:13px;color:var(--gold);letter-spacing:8px;opacity:.8;margin:0 0 13px}.hero h1{font-family:var(--heading);font-size:clamp(5rem,9.6vw,10.4rem);font-weight:400;line-height:.82;letter-spacing:-.052em;margin-bottom:29px}.hero h1 span{display:block}.hero h1 span:first-child{font-style:italic;font-size:.67em;line-height:1.12;margin-left:12px}.hero h1 span:last-child{color:var(--gold)}.hero__name{font:500 clamp(2.7rem,4vw,4.4rem)/.95 var(--heading);letter-spacing:.02em;margin:0}.hero__surname{font-size:.8rem;text-transform:uppercase;letter-spacing:.27em;margin:11px 0 22px;color:#e1c6b9}.hero__invitation{font:400 17px/1.7 var(--heading);color:#d9ced0;max-width:380px;margin-bottom:32px}.hero__portrait{position:relative;margin-left:auto;max-width:385px;width:100%;padding:14px;border:1px solid rgba(221,191,132,.53);transform:rotate(2deg)}.hero__portrait:before{content:'';position:absolute;inset:-21px 25px 30px -18px;border:1px solid rgba(221,191,132,.23);z-index:-1}.hero__portrait-frame{aspect-ratio:3/4;overflow:hidden;background:#43333b}.hero__portrait img{width:100%;height:100%;object-fit:cover;object-position:center 27%;filter:saturate(.77) contrast(1.02)}.hero__portrait-accent{position:absolute;right:-34px;top:-40px;color:var(--gold);font-size:43px}.hero__portrait-caption{position:absolute;bottom:-43px;left:0;right:0;text-align:center;color:#e4d1bc;font:italic 20px var(--heading);transform:rotate(-2deg)}.scroll-cue{position:absolute;bottom:29px;left:50%;transform:translateX(-50%);color:#e0c6a6;display:flex;gap:12px;align-items:center;font-size:.61rem;letter-spacing:.18em;white-space:nowrap}.scroll-cue span{font-size:20px}
/* Intro */
.intro{position:relative;overflow:hidden;text-align:center}.intro:before{content:'XV';font:500 400px/1 var(--heading);position:absolute;right:-45px;top:0;color:rgba(99,38,56,.03);pointer-events:none}.intro__inner{max-width:800px;position:relative}.small-star{font-size:31px;color:var(--gold-dark);margin:4px 0 23px}.intro h2{margin-bottom:34px}.intro__text{font:400 clamp(1.38rem,2.5vw,1.78rem)/1.65 var(--heading);color:#4f4546;max-width:720px;margin:0 auto 36px}.signature{color:var(--burgundy);font-size:.8rem;letter-spacing:.11em}.signature em{font:italic 36px var(--heading);letter-spacing:0;padding-left:7px}.signature span{color:var(--gold-dark);padding-left:10px}
/* Countdown */
.countdown-section{background:radial-gradient(ellipse at 50% 0%,#763245 0%,#451c2b 52%,#311923 100%);color:var(--ivory);text-align:center;position:relative;overflow:hidden}.countdown-section:before{content:'✧';position:absolute;top:-100px;left:-1%;font:400 390px var(--heading);color:#ffffff05}.countdown-section h2{margin:0 0 42px}.countdown-section h2 em,.guest-section h2 em,.footer h2 em{color:var(--gold)}.countdown{display:flex;justify-content:center;gap:24px;align-items:start}.countdown__item{min-width:114px;display:flex;flex-direction:column;gap:10px}.countdown__item strong{font:400 clamp(3.3rem,6.2vw,6.3rem)/1 var(--heading);font-variant-numeric:tabular-nums;color:var(--gold)}.countdown__item span{letter-spacing:.22em;font-size:.67rem}.countdown__separator{font:500 4rem/1 var(--heading);color:#bc987b}.countdown-section__note{color:#ddc8c8;font-size:.78rem;letter-spacing:.08em;margin:37px 0 0}
/* Events */
.section-heading{text-align:center;max-width:700px;margin:0 auto 47px}.section-heading>p:last-child{color:var(--muted);line-height:1.7;margin:0}.events-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px}.event-card{background:#fffbf7;border:1px solid var(--line);text-align:center;padding:39px 40px 42px;position:relative;box-shadow:0 18px 45px #4a27280a}.event-card:before{content:'';position:absolute;inset:8px;border:1px solid #d4bda380;pointer-events:none}.event-card__symbol{color:var(--gold-dark);font-size:31px;margin-bottom:23px}.event-card .eyebrow{margin-bottom:11px}.event-card h3{font:500 clamp(2.1rem,3vw,3.1rem)/1.1 var(--heading);margin-bottom:18px;color:var(--burgundy)}.event-card__time{font:500 58px/1 var(--heading);color:var(--ink);margin-bottom:17px}.event-card__time small{font:500 17px var(--heading)}.event-card__rule{height:1px;width:62px;background:var(--gold-dark);margin:22px auto}.event-card__place{font-weight:700;font-size:.89rem;line-height:1.7;max-width:290px;margin:0 auto 9px}.event-card__address{font-size:.78rem;line-height:1.8;color:#776d6c;min-height:75px;max-width:320px;margin:0 auto 21px}.calendar-cta{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:39px;color:var(--muted)}.calendar-cta>span{color:var(--gold-dark)}.calendar-cta p{font-size:.83rem;margin:0}.text-button{background:none;border:0;border-bottom:1px solid var(--burgundy);color:var(--burgundy);padding:6px 0;font-size:.8rem;font-weight:700}
/* Gallery */
.gallery-section{background:#1c141a;color:var(--ivory);overflow:hidden}.gallery-header{display:flex;justify-content:space-between;align-items:end;gap:25px;margin-bottom:38px}.gallery-section h2 em{color:var(--gold)}.gallery-section .section-heading{margin:0;max-width:670px}.gallery-section .section-heading>p:last-child{color:#b9a8ad}.gallery-controls{display:flex;gap:8px;flex-shrink:0}.gallery-controls button{width:47px;height:47px;border:1px solid #b99c7b85;color:var(--gold);background:transparent;font-size:22px;transition:.2s}.gallery-controls button:hover{background:var(--gold);color:var(--black)}.gallery-track{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:max(24px,calc((100vw - 1120px)/2));padding:4px max(24px,calc((100vw - 1120px)/2)) 18px;scrollbar-color:#d8bf8b #3c2b32}.gallery-card{scroll-snap-align:start;position:relative;flex:0 0 clamp(240px,26vw,320px);height:425px;margin:0;overflow:hidden;background:#36262c}.gallery-card img{width:100%;height:100%;object-fit:cover;transition:transform .45s,filter .45s;filter:saturate(.85)}.gallery-card:hover img{transform:scale(1.06);filter:saturate(1)}.gallery-card:after{content:'';position:absolute;inset:50% 0 0;background:linear-gradient(transparent,#130b10bb);pointer-events:none}.gallery-card figcaption{position:absolute;bottom:24px;left:22px;right:22px;z-index:1;font:italic 26px var(--heading);text-shadow:0 2px 8px #000}.gallery-hint{text-align:center;color:#c6aa98;letter-spacing:.06em;font-size:.75rem;margin:22px 0 0}.gallery-card{border-radius:28px;cursor:pointer;transition:transform .35s ease,opacity .35s ease,box-shadow .35s ease}.gallery-card figcaption{transition:transform .35s ease,opacity .35s ease}.gallery-track:hover .gallery-card:not(.is-active){opacity:.84}.gallery-card.is-active{transform:translateY(-10px) scale(1.04);box-shadow:0 24px 40px rgba(0,0,0,.28);z-index:2}.gallery-card.is-active img{transform:scale(1.08);filter:saturate(1)}.gallery-card.is-active figcaption{transform:translateY(-4px)}.gallery-lightbox{position:fixed;inset:0;background:rgba(10,7,10,.82);backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;gap:18px;padding:24px;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .25s ease,visibility .25s ease;z-index:2000}.gallery-lightbox.is-open{opacity:1;visibility:visible;pointer-events:auto}.gallery-lightbox__figure{margin:0;max-width:min(90vw,980px);max-height:86vh;display:flex;flex-direction:column;align-items:center;gap:14px}.gallery-lightbox__image{max-width:100%;max-height:min(72vh,920px);width:auto;height:auto;border-radius:26px;box-shadow:0 30px 60px rgba(0,0,0,.35)}.gallery-lightbox__caption{color:var(--ivory);font:italic 1.4rem/1.3 var(--heading);text-align:center;max-width: min(85vw,700px)}.gallery-lightbox__close,.gallery-lightbox__nav{border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.08);color:var(--ivory);width:52px;height:52px;border-radius:50%;display:grid;place-items:center;font-size:1.7rem;transition:transform .2s ease,background-color .2s ease,border-color .2s ease}.gallery-lightbox__close:hover,.gallery-lightbox__nav:hover{transform:translateY(-2px);background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.45)}.gallery-lightbox__close{position:absolute;top:20px;right:20px;font-size:2rem}.gallery-lightbox__nav{flex-shrink:0}
/* Family */
.family-layout{display:grid;grid-template-columns:1.1fr .9fr;gap:80px;align-items:center}.family-layout__title>p:not(.eyebrow){font-size:.89rem;line-height:1.8;color:var(--muted);max-width:390px}.family-layout__ornament{color:var(--gold-dark);font-size:32px}.family-list{border-left:1px solid #c5a785;padding-left:70px}.family-list__group h3{font:500 clamp(1.9rem,3vw,2.8rem)/1.25 var(--heading);color:var(--burgundy);margin:13px 0 0}.family-list__line{height:1px;max-width:100px;background:#d2b995;margin:29px 0}.family-list__group .eyebrow{margin:0}
/* Guest info */
.guest-section{background:#2c1721}.guest-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.guest-card{border:1px solid #a47d6a6e;color:#f7eee5;padding:55px 45px;background:linear-gradient(145deg,#5c2938,#401c2a);min-height:440px}.guest-card--gifts{background:linear-gradient(145deg,#35262c,#20161b)}.guest-card__icon{font-size:35px;color:var(--gold);display:block;margin-bottom:24px}.guest-card h2{font-size:clamp(2.8rem,4.4vw,4.4rem)}.guest-card>p:not(.eyebrow){font-size:.87rem;line-height:1.9;color:#e3cdd0}.guest-card>strong{display:block;margin-top:25px;font:italic 22px var(--heading);color:var(--gold)}.gift-item{display:flex;align-items:center;gap:10px;border-bottom:1px solid #b7a19854;padding:11px 0}.gift-item span{font-size:.88rem;min-width:77px}.gift-item strong{font-size:.92rem;letter-spacing:.04em;margin-left:auto;font-weight:500;color:var(--gold)}.copy-btn{background:transparent;color:#f2d8b6;font-size:.7rem;padding:5px;border:0;text-decoration:underline}.copy-note{min-height:20px;font-size:.75rem!important}
/* RSVP */
.rsvp-layout{display:grid;grid-template-columns:.95fr 1.05fr;gap:90px;align-items:start}.rsvp-intro{padding-top:60px}.rsvp-intro>p:not(.eyebrow){max-width:380px;line-height:1.85;color:var(--muted);font-size:.9rem}.rsvp-intro__decor{margin-top:70px;color:#be986b;opacity:.28;font:400 110px var(--heading)}.rsvp-intro__decor span{font:26px var(--body);vertical-align:22px}.rsvp-form{background:#fffdfa;border:1px solid #e6d6c8;box-shadow:0 30px 65px #452f2d0d;padding:36px 42px}.rsvp-form h3{font:500 39px/1.1 var(--heading);color:var(--burgundy);margin:0}.rsvp-form__subtitle{color:var(--gold-dark);font-size:.8rem;letter-spacing:.1em;padding:9px 0 20px;border-bottom:1px solid #e8d9ce;margin-bottom:24px}.rsvp-form label:not(.radio-option):not(.consent),.rsvp-form legend{display:block;font-size:.8rem;font-weight:700;color:#56464b;margin:17px 0 8px}.rsvp-form input:not([type=radio]):not([type=checkbox]),.rsvp-form select,.rsvp-form textarea{width:100%;background:#fff;border:1px solid #dfcfc4;border-radius:0;color:var(--ink);padding:13px 13px;min-height:47px;transition:border-color .2s}.rsvp-form textarea{resize:vertical}.rsvp-form input:focus,.rsvp-form textarea:focus,.rsvp-form select:focus{border-color:var(--burgundy)}.required{color:#952f46}.optional{color:#91858a;font-weight:400}.attendance-fieldset{padding:0;border:0;margin:0}.radio-option{display:inline-flex;align-items:center;gap:8px;padding:10px 15px;margin:0 10px 5px 0;border:1px solid #e4d5cb;background:#fefaf6;font-size:.79rem;cursor:pointer}.radio-option:has(input:checked){background:#f1e3e6;border-color:#9f6779}.radio-option input{accent-color:var(--burgundy)}.field-hint{display:block;color:#8c7d7e;font-size:.69rem;line-height:1.7;margin-top:5px}.honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}.consent{display:flex;align-items:flex-start;gap:12px;line-height:1.65;color:#665d5d;font-size:.73rem;margin:23px 0}.consent input{margin:3px 0 0;accent-color:var(--burgundy)}.rsvp-feedback{font-size:.79rem;margin:13px 0 0;line-height:1.6;min-height:2px}.rsvp-feedback--error{color:#a0303d}.rsvp-feedback--success{color:#276f49}.rsvp-feedback--info{color:#7c5431}.rsvp-form__small{color:#8e8585;font-size:.69rem;line-height:1.6;margin:13px 0 0;text-align:center}
/* Footer */
.footer{background:var(--black);color:#fff;text-align:center;padding:110px 0;position:relative;isolation:isolate;overflow:hidden}.footer__bg{position:absolute;inset:0;background:linear-gradient(#1a1116ed,#1a1116db),url('../img/atardecer.webp') center 43%/cover;z-index:-1}.footer__star{font-size:46px;color:var(--gold);margin-bottom:17px}.footer h2 em{display:block}.footer__name{font:italic 39px var(--heading);color:var(--gold);margin:18px 0 7px}.footer__date{font-size:.76rem;letter-spacing:.23em;color:#d6b797}.footer__back{display:inline-block;margin-top:35px;padding-bottom:8px;border-bottom:1px solid #d4bc9588;font-size:.69rem;letter-spacing:.12em;text-transform:uppercase}
/* Animations */
.reveal{opacity:1}.js .reveal{opacity:0;transform:translateY(23px);transition:opacity .8s ease,transform .8s ease}.js .reveal.is-visible{opacity:1;transform:translateY(0)}.js .hero__portrait.reveal{transform:translateY(20px) rotate(2deg)}.js .hero__portrait.reveal.is-visible{transform:translateY(0) rotate(2deg)}
@media(max-width:950px){.hero__body{gap:34px}.hero h1{font-size:clamp(5rem,11vw,8rem)}.hero__portrait{max-width:325px}.rsvp-layout{gap:40px}.family-layout{gap:40px}.family-list{padding-left:35px}.guest-card{padding:42px 30px}.guest-card h2{font-size:3rem}}
@media(max-width:700px){.container{width:min(100% - 38px,540px)}.section{padding:75px 0}.hero{min-height:850px}.hero__background{background:linear-gradient(0deg,#130f12 0%,#130f12d9 35%,#130f12a6 100%),url('../img/portada-luces.webp') center/cover}.hero:before,.footer:before{inset:9px}.nav{height:72px}.nav__link{font-size:.64rem}.hero__body{display:flex;flex-direction:column;justify-content:flex-start;gap:29px;text-align:center;padding-top:26px;padding-bottom:90px}.hero__copy{order:2}.hero__portrait{order:1;width:205px;max-width:unset;padding:7px;transform:none!important}.hero__portrait:before{inset:-10px 12px 11px -8px}.hero__portrait-frame{aspect-ratio:4/4.35}.hero__portrait-accent{font-size:26px;right:-18px;top:-20px}.hero__portrait-caption{display:none}.hero__copy>.eyebrow{margin:0 0 13px;font-size:.62rem}.hero__flourish{display:none}.hero h1{font-size:clamp(5rem,15.7vw,7rem);margin-bottom:14px}.hero h1 span:first-child{font-size:.6em;margin:0}.hero__name{font-size:clamp(2.5rem,9vw,3.7rem)}.hero__surname{margin:7px 0 14px;font-size:.69rem}.hero__invitation{margin:0 auto 18px;font-size:17px;max-width:290px}.hero__copy .button{min-height:46px;padding:12px 20px}.scroll-cue{bottom:25px;font-size:.54rem}.intro__text{font-size:1.38rem}.countdown{gap:6px}.countdown__item{min-width:unset;flex:1;gap:9px}.countdown__item strong{font-size:clamp(2.5rem,10vw,4.5rem)}.countdown__item span{font-size:.53rem;letter-spacing:.1em}.countdown__separator{font-size:2.4rem}.events-grid,.guest-grid,.family-layout,.rsvp-layout{grid-template-columns:1fr}.event-card{padding:36px 24px 38px}.event-card__address{min-height:0}.calendar-cta{flex-wrap:wrap;gap:10px;text-align:center}.gallery-header{align-items:end}.gallery-controls button{width:39px;height:39px}.gallery-track{padding-left:19px;padding-right:19px;scroll-padding-left:19px}.gallery-card{flex-basis:74vw;height:400px}.gallery-card.is-active{transform:translateY(-6px) scale(1.025)}.gallery-lightbox{padding:18px 14px 26px;gap:10px}.gallery-lightbox__figure{max-width:100%;width:100%}.gallery-lightbox__image{max-height:66vh;border-radius:20px}.gallery-lightbox__caption{font-size:1.15rem}.gallery-lightbox__nav,.gallery-lightbox__close{width:44px;height:44px;font-size:1.4rem}.family-list{border-left:0;border-top:1px solid #c5a785;padding:28px 0 0}.family-layout__title h2{margin-bottom:20px}.family-layout__ornament{display:none}.guest-card{min-height:unset;padding:35px 29px}.rsvp-intro{padding-top:0}.rsvp-intro__decor{display:none}.rsvp-form{padding:29px 22px}.footer{padding:88px 0}}
@media(max-width:380px){.hero{min-height:820px}.hero__portrait{width:170px}.hero h1{font-size:4.7rem}.hero__name{font-size:2.6rem}.gallery-card{flex-basis:82vw}.nav__link{letter-spacing:.06em}.dot{padding:0 4px}.radio-option{padding:10px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}.reveal,.hero__portrait.reveal{opacity:1;transform:none!important}}

/* ====================================
   V2 — Sello ornamental y mapas
   ==================================== */
.brand { display: inline-flex; align-items: center; padding: 0; width: 105px; height: 86px; line-height: 1; }
.brand__logo { display:block; width:100%; height:100%; object-fit: contain; filter:drop-shadow(0 4px 8px rgba(0,0,0,.3)); }
.nav { height:112px; }
.hero__copy-top { margin-bottom: 0; }
.hero__copy-bottom { position:relative; }
.event-location { display:flex; flex-direction:column; min-width:0; }
.event-location .event-card { flex:1; }
.event-map { background:#fffdfa; border:1px solid var(--line); border-top:0; padding:13px 13px 15px; box-shadow:0 18px 45px rgba(74,39,40,.04); position:relative; }
.event-map iframe { width:100%; display:block; height:255px; min-height:220px; border:0; background:#e7e3dc; }
.event-map__caption { color:#7a6962; text-align:center; font-size:.7rem; margin:10px 0 0; letter-spacing:.035em; }
.rsvp-intro__decor { opacity:.65; width:220px; margin-top:35px; }
.rsvp-intro__decor img { width:100%; height:auto; }
@media (min-width:701px) {
  .hero__copy-top.reveal, .hero__copy-bottom.reveal { opacity:1; transform:none; }
  .hero__copy { max-width:650px; }
}
@media (max-width:700px) {
  .nav { height:82px; }
  .brand { width:76px; height:78px; margin-left:-3px; }
  .nav__link { font-size:.58rem; letter-spacing:.08em; }
  .hero { min-height: 100svh; }
  .hero__background { background:linear-gradient(180deg,rgba(17,13,17,.94),rgba(28,15,22,.82) 45%,rgba(15,10,14,.96)),url('../img/portada-luces.webp') center/cover; }
  .hero__body { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:0; padding-top:10px; padding-bottom:69px; }
  .hero__copy { display:contents; }
  .hero__copy-top { order:1; position:relative; z-index:2; width:100%; text-align:center; margin:0 auto 19px; }
  .hero__copy-bottom { order:3; text-align:center; margin:19px 0 0; width:100%; }
  .hero__portrait { order:2; width:min(76vw,310px); max-width:310px; margin:0 auto; padding:8px; border:1px solid rgba(221,191,132,.68); transform:none; }
  .js .hero__portrait.reveal, .js .hero__portrait.reveal.is-visible { transform:none!important; }
  .hero__portrait-frame { aspect-ratio: 4/4.55; }
  .hero__portrait img { object-position:50% 36%; }
  .hero__portrait:before { inset:-11px 16px 17px -13px; }
  .hero__portrait-accent { right:-14px; top:-23px; font-size:28px; }
  .hero__copy-top>.eyebrow { font-size:.59rem; margin:0 auto 12px; letter-spacing:.17em; }
  .hero__flourish { display:block; font-size:.55rem; opacity:.78; letter-spacing:5px; margin:0 0 10px; }
  .hero h1 { font-size:clamp(3.8rem,14.2vw,6.1rem); line-height:.8; margin:0 0 12px; }
  .hero h1 span:first-child { font-size:.55em; }
  .hero__name { font-size:clamp(2.25rem,9.4vw,3.25rem); }
  .hero__surname { font-size:.58rem; letter-spacing:.27em; margin:7px 0 0; }
  .hero__invitation { font-size:1.08rem; margin:0 auto 14px; }
  .hero__copy-bottom .button { padding:12px 20px; min-height:44px; }
  .scroll-cue { bottom:17px; }
  .events-grid { gap:25px; }
  .event-map { padding:9px 9px 13px; }
  .event-map iframe { height:245px; }
  .rsvp-intro__decor { display:none; }
}
@media(max-width:390px) {
  .nav { height:74px; }
  .brand { width:65px; height:70px; }
  .hero__body { padding-top:4px; }
  .hero h1 { font-size:clamp(3.6rem,14.3vw,4.5rem); }
  .hero__portrait { width:min(73vw,270px); }
  .hero__portrait-frame { aspect-ratio:4/4.45; }
  .hero__copy-top { margin-bottom:13px; }
  .hero__copy-bottom { margin-top:17px; }
  .hero__invitation { font-size:1rem; }
}
@media(max-height:730px) and (max-width:700px) {
  .hero__body { justify-content:flex-start; }
  .scroll-cue { display:none; }
}

.intro__monogram { display:block; width:168px; height:auto; margin:-18px auto 18px; filter:drop-shadow(0 10px 20px rgba(34, 16, 24, .14)); }
.intro__inner .intro__monogram { background:none; border-radius:0; padding:0; }
.brand__logo, .rsvp-intro__decor img, .footer__monogram { filter:drop-shadow(0 10px 24px rgba(0,0,0,.22)); }
.footer__monogram { display:block; width:175px; max-width:38vw; height:auto; margin:0 auto 10px; }
@media(max-width:700px){ .intro__monogram{width:146px; margin-top:-6px;}.footer__monogram{width:150px;} }

@media(max-width:700px){.gallery-lightbox{align-items:flex-end}.gallery-lightbox__figure{margin-bottom:16px}.gallery-lightbox__nav{position:absolute;bottom:18px}.gallery-lightbox__nav--prev{left:calc(50% - 58px)}.gallery-lightbox__nav--next{right:calc(50% - 58px)}.gallery-lightbox__close{top:14px;right:14px}}


/* --------------------------------------------------------------------------
   PORTADA EDITORIAL V7: el retrato se disuelve en el fondo, no termina en corte.
   No modificar las demás secciones de la V3.
   -------------------------------------------------------------------------- */
.hero--editorial{
  background:#130d13;
  min-height:max(760px, 100svh);
  overflow:hidden;
  isolation:isolate;
  position:relative;
}
.hero--editorial .hero__background{
  position:absolute;inset:0;
  background:
    radial-gradient(ellipse 45% 55% at 78% 38%, rgba(125,63,71,.32), transparent 80%),
    radial-gradient(ellipse 42% 55% at 87% 65%, rgba(168,130,85,.08), transparent 85%),
    linear-gradient(102deg, #110d12 0%,#21131e 52%, #1c1219 100%);
  filter:none;
  transform:none;
  z-index:-1;
}
.hero--editorial::after{
  content:"";position:absolute;inset:auto 0 0;height:22%;
  background:linear-gradient(180deg,transparent,rgba(15,11,15,.42) 63%,#130f12 100%);
  pointer-events:none;z-index:1;
}
.hero--editorial .nav{position:relative;z-index:6}
.hero--editorial .hero__body{
  display:flex; position:relative; flex:1; align-items:center;
  padding-top:30px; padding-bottom:135px; gap:0;
}
.hero--editorial .hero__copy{
  display:block;position:relative;z-index:5;flex:0 0 61%;max-width:670px;
}
.hero--editorial .hero__copy-top,
.hero--editorial .hero__copy-bottom{position:relative;z-index:5}
.hero--editorial h1{font-size:clamp(5.2rem,9vw,9.2rem);margin-bottom:23px}
.hero--editorial .hero__portrait--editorial{
  display:block;
  position:absolute;
  width:min(60vw,850px);max-width:none;
  right:max(-92px,calc((1120px - 100vw)/4));
  bottom:-104px;
  margin:0;padding:0;border:0;background:none;
  isolation:isolate;
  transform:none!important;
  pointer-events:none;
  z-index:2;
}
.hero--editorial .hero__portrait--editorial::before{display:none}
.hero--editorial .hero__halo{
  position:absolute;
  left:51%;top:41%;width:78%;aspect-ratio:1;
  transform:translate(-50%,-50%);
  background:radial-gradient(circle at center,rgba(235,193,130,.21),rgba(116,36,67,.12) 43%,transparent 74%);
  filter:blur(12px);z-index:0;
}
.hero--editorial .hero__portrait-image{
  display:block;position:relative;z-index:1;
  height:auto;width:100%;max-width:none;
  object-fit:contain;
  filter:drop-shadow(0 16px 34px rgba(0,0,0,.25));
}
.hero--editorial .scroll-cue{z-index:8}
.hero--editorial .hero__flourish{display:block}
.hero--editorial .hero__copy-top.reveal,
.hero--editorial .hero__copy-bottom.reveal{opacity:1;transform:none}
.hero--editorial .hero__portrait--editorial.reveal,
.js .hero--editorial .hero__portrait--editorial.reveal,
.js .hero--editorial .hero__portrait--editorial.reveal.is-visible{opacity:1;transform:none!important}

@media (min-width:1250px){
  .hero--editorial .hero__portrait--editorial{
    width:min(61vw,910px);bottom:-136px;right:max(-120px,calc((1120px - 100vw)/4));
  }
}
@media (min-width:901px) and (max-width:1050px){
  .hero--editorial .hero__copy{flex-basis:62%;max-width:610px}
  .hero--editorial h1{font-size:clamp(5rem,9.5vw,7.6rem)}
  .hero--editorial .hero__portrait--editorial{width:65vw;bottom:-60px;right:-120px}
}
@media (max-width:900px){
  .hero--editorial{min-height:100svh}
  .hero--editorial .nav{height:74px}
  .hero--editorial .hero__body{
    display:flex;flex-direction:column;justify-content:flex-start;align-items:center;
    padding-top:7px;padding-bottom:76px;gap:0;
  }
  .hero--editorial .hero__copy{display:contents}
  .hero--editorial .hero__copy-top{
    width:100%;order:1;margin:0;text-align:center;z-index:5;
  }
  .hero--editorial .hero__copy-bottom{
    width:100%;order:3;margin:-8px 0 0;text-align:center;z-index:5;
  }
  .hero--editorial .hero__copy-top>.eyebrow{margin:0 auto 10px;font-size:.58rem}
  .hero--editorial .hero__flourish{font-size:.54rem;margin:0 0 9px;letter-spacing:4px}
  .hero--editorial h1{font-size:clamp(3.9rem,14vw,6.3rem);margin:0 0 12px}
  .hero--editorial .hero__name{font-size:clamp(2.2rem,8.7vw,3.3rem);margin:0}
  .hero--editorial .hero__surname{margin:5px 0 0;font-size:.59rem}
  .hero--editorial .hero__portrait--editorial{
    order:2;position:relative;width:min(108vw,480px);max-width:none;
    left:auto;right:auto;bottom:auto;top:auto;
    margin:0 auto;
  }
  .hero--editorial .hero__portrait-image{height:auto;max-height:52svh;width:auto;max-width:100%;margin:0 auto}
  .hero--editorial .hero__halo{top:42%;left:50%;width:86%;filter:blur(8px)}
  .hero--editorial .hero__invitation{font-size:1.05rem;line-height:1.45;margin:0 auto 13px;max-width:300px}
  .hero--editorial .hero__copy-bottom .button{min-height:46px;padding:12px 20px}
  .hero--editorial .scroll-cue{bottom:12px}
}
@media(max-width:420px){
  .hero--editorial .hero__body{padding-top:3px;padding-bottom:72px}
  .hero--editorial .hero__portrait--editorial{width:min(112vw,445px)}
  .hero--editorial .hero__portrait-image{max-height:47svh}
  .hero--editorial .hero__copy-bottom{margin:-12px 0 0}
  .hero--editorial h1{font-size:clamp(3.6rem,14vw,5.2rem)}
}
@media(max-width:380px){
  .hero--editorial .hero__portrait--editorial{width:min(112vw,400px)}
  .hero--editorial .hero__portrait-image{max-height:44svh}
  .hero--editorial .scroll-cue{display:none}
}
@media(max-width:900px) and (max-height:740px){
  .hero--editorial .hero__portrait-image{max-height:39svh}
  .hero--editorial .hero__body{padding-bottom:32px}
  .hero--editorial .scroll-cue{display:none}
}
@media (prefers-reduced-motion:reduce){
  .hero--editorial .hero__portrait--editorial{opacity:1!important;transform:none!important}
}


/* V8 — ajuste editorial exclusivamente para escritorio.
   Se conserva intacta la experiencia móvil de V7 (hasta 900px). */
@media (min-width:901px) {
  .hero--editorial {
    height:clamp(750px, 88svh, 830px);
    min-height:0;
  }
  .hero--editorial .nav {height:100px;}
  .hero--editorial .hero__body {
    padding-top:0;
    padding-bottom:78px;
    align-items:center;
  }
  .hero--editorial .hero__copy {transform:translateY(-12px);}
  .hero--editorial .hero__portrait--editorial {
    width:min(61vw,915px);
    bottom:-196px;
    right:max(-180px,calc((1120px - 100vw)/4));
  }
  .hero--editorial .scroll-cue {bottom:18px;}
}
@media (min-width:901px) and (max-width:1350px) {
  .hero--editorial .hero__portrait--editorial {
    width:min(65vw,885px);
    bottom:-172px;
    right:-115px;
  }
}
@media (min-width:901px) and (max-width:1100px) {
  .hero--editorial .hero__portrait--editorial {
    width:70vw;
    bottom:-112px;
    right:-110px;
  }
  .hero--editorial h1 {font-size:clamp(4.6rem,8.8vw,7.2rem);}
}
@media (min-width:901px) {
  /* Segundo desvanecido que evita una línea fotográfica al llegar a la sección marfil. */
  .hero--editorial .hero__portrait-image {
    -webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 53%,rgba(0,0,0,.93) 60%,transparent 79%);
    mask-image:linear-gradient(to bottom,#000 0%,#000 53%,rgba(0,0,0,.93) 60%,transparent 79%);
  }
  .hero--editorial .scroll-cue {left:calc(50% - 330px);}
}
@media (min-width:901px) and (max-width:1150px) {
  .hero--editorial .scroll-cue {left:calc(50% - 240px);}
}


/* V9 · RSVP: plegado elegante después de confirmación real del servidor. */
.rsvp-form {
  transition: height .56s cubic-bezier(.45,0,.2,1),
              opacity .32s ease,
              padding-top .56s cubic-bezier(.45,0,.2,1),
              padding-bottom .56s cubic-bezier(.45,0,.2,1),
              border-width .56s ease,
              transform .32s ease;
}
.rsvp-form.rsvp-form--closing {
  height:0 !important;
  min-height:0 !important;
  padding-top:0 !important;
  padding-bottom:0 !important;
  border-top-width:0 !important;
  border-bottom-width:0 !important;
  opacity:0 !important;
  transform:translateY(-10px) !important;
  overflow:hidden;
  pointer-events:none;
}
.rsvp-form[hidden],.rsvp-thanks[hidden]{display:none!important}
.rsvp-thanks {
  grid-column:2;
  background:#fffdfa;
  border:1px solid #e6d6c8;
  box-shadow:0 30px 65px #452f2d0d;
  padding:clamp(35px,5vw,63px) clamp(24px,4vw,54px);
  text-align:center;
  opacity:0;
  transform:translateY(18px);
  transition:opacity .48s ease,transform .48s ease;
  position:relative;
  overflow:hidden;
}
.rsvp-thanks::before{content:'';position:absolute;inset:10px;border:1px solid rgba(168,131,77,.23);pointer-events:none}
.rsvp-thanks.is-visible{opacity:1;transform:translateY(0)}
.rsvp-thanks__symbol{display:block;color:var(--gold-dark);font:400 44px/1 var(--heading);margin:0 0 23px}
.rsvp-thanks .eyebrow{margin-bottom:13px}
.rsvp-thanks h3{font:500 clamp(2.4rem,4vw,3.4rem)/1.12 var(--heading);color:var(--burgundy);margin:0 auto 18px;outline-offset:7px}
.rsvp-thanks__divider{height:1px;background:var(--gold-dark);width:58px;margin:22px auto}
.rsvp-thanks p:not(.eyebrow){max-width:345px;color:#665b60;font-size:.92rem;line-height:1.85;margin:0 auto 25px}
.rsvp-thanks__closing{font:italic 25px var(--heading);color:var(--burgundy)}
@media(max-width:700px){.rsvp-thanks{grid-column:1;padding:41px 26px}}
@media(prefers-reduced-motion:reduce){.rsvp-form,.rsvp-thanks{transition:none!important}}
