/* Eventus · sitio 15 años — layout. Tokens vienen de base.css */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:84px}
body{overflow-x:hidden}
.wrap{max-width:var(--container);margin:0 auto;padding:0 var(--gutter)}
.skip{position:absolute;left:-9999px;top:8px;z-index:200;background:var(--gold-500);color:var(--night-900);padding:10px 16px;border-radius:999px}
.skip:focus{left:12px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* Header */
.hdr{position:sticky;top:0;z-index:50;height:var(--header-h);display:flex;align-items:center;background:rgba(6,10,22,.82);backdrop-filter:var(--blur-glass);-webkit-backdrop-filter:var(--blur-glass);box-shadow:0 1px 0 var(--border-gold-faint)}
.hdr .wrap{display:flex;align-items:center;justify-content:space-between;width:100%;gap:24px}
.hdr__logo img{height:54px;width:54px}
.nav{display:flex;align-items:center;gap:28px}
.nav a{font:var(--type-button);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--text-body);padding:8px 0;box-shadow:inset 0 -1px 0 transparent;transition:color var(--dur-base),box-shadow var(--dur-base)}
.nav a:hover,.nav a[aria-current="page"]{color:var(--gold-300);box-shadow:inset 0 -1px 0 var(--gold-500)}
.nav .ev-btn{color:var(--text-on-gold);box-shadow:var(--inner-gold),var(--glow-gold);padding:0 20px}
.burger{display:none;background:none;border:0;color:var(--gold-300);width:48px;height:48px;cursor:pointer;align-items:center;justify-content:center}
.burger svg{width:26px;height:26px}
@media (max-width:1100px){
  .hdr{height:var(--header-h-mobile)}
  .hdr__logo img{height:44px;width:44px}
  .burger{display:flex}
  .nav{position:fixed;inset:var(--header-h-mobile) 0 auto 0;height:calc(100dvh - var(--header-h-mobile));flex-direction:column;justify-content:center;gap:30px;background:var(--sky-vertical);transform:translateY(-110%);visibility:hidden;transition:transform var(--dur-slow) var(--ease-soft),visibility 0s linear var(--dur-slow)}
  .nav.is-open{transform:none;visibility:visible;transition:transform var(--dur-slow) var(--ease-soft)}
  .nav a{font-size:1rem;letter-spacing:var(--tracking-caps-wide)}
}

/* Hero — el único momento orquestado del sitio */
.hero{position:relative;overflow:hidden;background:var(--sky-midnight);min-height:min(94vh,900px);display:flex;align-items:center;isolation:isolate}
.hero__rings{position:absolute;left:50%;bottom:-2px;width:min(1320px,170%);transform:translateX(-50%);z-index:-1;will-change:transform}
.hero__rings svg{display:block;width:100%;height:auto}
.hero__rings .arc{opacity:0;transform-box:fill-box;transform-origin:50% 100%;animation:ev-arch-in var(--dur-arch) var(--ease-soft) forwards}
.hero>.wrap{width:100%}
.hero__grid{position:relative;display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:center;padding-block:72px 96px}
.hero__copy{display:flex;flex-direction:column;align-items:flex-start;gap:22px}
.hero h1{margin:0;display:flex;flex-direction:column;gap:14px}
.hero__kw{font:var(--type-eyebrow);letter-spacing:var(--tracking-caps-wide);text-transform:uppercase;color:var(--gold-400)}
.hero__title{font:var(--type-display-script);color:var(--gold-300);text-shadow:0 4px 30px rgba(3,5,11,.6);padding-bottom:.08em}
.hero__lede{margin:0;max-width:32ch;font:var(--type-lede);color:var(--text-strong)}
.hero__ctas{display:flex;flex-wrap:wrap;gap:22px;align-items:flex-end;margin-top:8px}
.hero__photo{width:100%;max-width:410px;justify-self:center}
.hero__addr{margin:4px 0 0;font:var(--type-small);color:var(--text-muted)}
.hero__addr a{color:var(--text-body);background:linear-gradient(var(--border-gold-soft),var(--border-gold-soft)) 0 100%/100% 1px no-repeat}

/* Arch frame */
.arch{position:relative;margin:0}
.arch__outer{position:relative;border-radius:var(--radius-arch);padding:var(--frame-gap);box-shadow:inset 0 0 0 1px var(--border-gold)}
.arch__inner{position:relative;border-radius:var(--radius-arch);overflow:hidden;box-shadow:0 0 0 1px var(--gold-300);background:var(--night-800);aspect-ratio:2/3}
.arch__inner img{width:100%;height:100%;object-fit:cover;object-position:50% 30%;transition:transform 1.6s var(--ease-soft)}
.arch__key{position:absolute;top:-6px;left:50%;width:12px;height:12px;transform:translateX(-50%) rotate(45deg);background:var(--gold-metal);box-shadow:0 0 0 3px var(--night-900)}
.on-light .arch__key{box-shadow:0 0 0 3px var(--pearl-50)}

/* Section scaffolding */
.sec{position:relative;padding-block:var(--section-y)}
.sec--deep{background:var(--sky-section)}
.sec--night{background:var(--night-950)}
.sec--light{background:var(--pearl-wash);color:var(--text-on-light)}
.head{display:flex;flex-direction:column;gap:14px;max-width:var(--container-narrow);margin:0 auto;text-align:center;align-items:center}
.head--left{margin:0;text-align:left;align-items:flex-start}
.kw{margin:0;font:var(--type-eyebrow);letter-spacing:var(--tracking-caps-wide);text-transform:uppercase;color:var(--gold-400);text-wrap:balance}
.t-script{margin:0;font:var(--type-title-script);color:var(--gold-300);text-wrap:balance}
.t-serif{margin:0;font:var(--type-title-serif);color:var(--text-strong);text-wrap:balance}
.lede{margin:0;font:var(--type-lede);color:var(--text-muted);text-wrap:pretty;max-width:46ch}
.on-light .kw{color:var(--gold-800)}
.on-light .t-script{color:var(--gold-800)}
.on-light .t-serif{color:var(--text-on-light)}
.on-light .lede{color:var(--text-on-light-muted)}
.prose{max-width:62ch;font:var(--type-body)}
.prose p{margin:0 0 1em}
.prose a{color:var(--gold-300);background:linear-gradient(var(--border-gold-soft),var(--border-gold-soft)) 0 100%/100% 1px no-repeat}
.on-light .prose a{color:var(--gold-800);background-image:linear-gradient(rgba(154,127,11,.45),rgba(154,127,11,.45))}
.orn{display:flex;align-items:center;gap:18px;width:100%;max-width:420px;margin:0 auto}
.orn::before,.orn::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,rgba(215,182,21,0),var(--gold-500))}
.orn::after{background:linear-gradient(270deg,rgba(215,182,21,0),var(--gold-500))}
.orn img{width:132px;height:auto}
.center{text-align:center}
.mt-l{margin-top:56px}.mt-m{margin-top:36px}

/* Filigree halves for secondary buttons (mask so it inherits color) */
.ev-btn__filigree{display:inline-block;width:28px;height:16px;background:currentColor;-webkit-mask:var(--fil) center/contain no-repeat;mask:var(--fil) center/contain no-repeat}
.fil-l{--fil:url(../img/filigrana-mitad-izquierda.svg)}
.fil-r{--fil:url(../img/filigrana-mitad-derecha.svg)}

/* Dresses */
.dresses{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:48px 36px;margin-top:56px}
.dress{display:flex;flex-direction:column;gap:18px;text-align:center;align-items:center}
.dress__btn{all:unset;display:block;width:100%;cursor:pointer;border-radius:999px 999px 0 0}
.dress__btn:focus-visible{outline:2px solid var(--focus-ring);outline-offset:6px}
.dress__btn:hover img{transform:scale(1.035)}
.dress__badge{position:absolute;top:20%;left:50%;transform:translateX(-50%);z-index:2}
.dress h3{margin:0;font:var(--type-dress-name);color:var(--text-strong)}
.dress p{margin:-8px 0 0;font:italic 400 1.0625rem/1.45 var(--font-serif);color:var(--text-muted)}
.dress.is-hidden{display:none}
.filters{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:36px}

/* Fiesta completa (light) */
.split{display:grid;grid-template-columns:.85fr 1.15fr;gap:72px;align-items:center}
.split--rev{grid-template-columns:1.15fr .85fr}
.split--rev .split__media{order:2}
.split__media{max-width:420px;width:100%;justify-self:center}
.incl{list-style:none;margin:28px 0 32px;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 28px}
.incl li{display:flex;gap:12px;align-items:baseline;font:var(--fw-medium) var(--fs-serif-md)/1.3 var(--font-serif)}
.incl li::before{content:"";flex:none;width:8px;height:8px;transform:rotate(45deg) translateY(-2px);background:var(--gold-metal)}
.on-light .incl li{color:var(--text-on-light)}

/* Gallery */
.gal{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin-top:52px}
.gal button{all:unset;display:block;cursor:zoom-in;border-radius:2px;overflow:hidden;box-shadow:0 0 0 1px var(--border-gold-faint);aspect-ratio:3/4;background:var(--night-850)}
.gal button:nth-child(1),.gal button:nth-child(5),.gal button:nth-child(8){border-radius:999px 999px 2px 2px}
.gal button:focus-visible{outline:2px solid var(--focus-ring);outline-offset:4px}
.gal img{width:100%;height:100%;object-fit:cover;object-position:50% 30%;transition:filter var(--dur-base),transform 1.2s var(--ease-soft)}
.gal button:hover img{filter:brightness(1.1);transform:scale(1.03)}
@media (max-width:900px){.gal{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:640px){.gal{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}}

/* Steps — es una secuencia real, por eso va numerada */
.steps{list-style:none;margin:56px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;counter-reset:s}
.steps li{counter-increment:s;position:relative;padding:44px 26px 30px;text-align:center;border-radius:180px 180px var(--radius-card) var(--radius-card);box-shadow:inset 0 0 0 1px var(--border-gold-soft);background:rgba(11,22,54,.45)}
.steps li::before{content:counter(s);position:absolute;top:-22px;left:50%;transform:translateX(-50%);width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:var(--night-900);box-shadow:inset 0 0 0 1px var(--gold-500);font:400 1.6rem/1 var(--font-serif);color:var(--gold-300)}
.steps h3{margin:6px 0 10px;font:var(--type-dress-name);color:var(--text-strong)}
.steps p{margin:0;font:var(--type-small);color:var(--text-muted)}

/* Other services */
.also{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:40px}
.also div{padding:26px 22px;border-radius:var(--radius-card);background:var(--pearl-0);box-shadow:inset 0 0 0 1px rgba(154,127,11,.28),var(--shadow-sm);text-align:center}
.also h3{margin:0 0 6px;font:var(--type-dress-name);color:var(--text-on-light)}
.also p{margin:0;font:var(--type-small);color:var(--text-on-light-muted)}

/* FAQ */
.faq{max-width:780px;margin:48px auto 0;display:flex;flex-direction:column;gap:12px}
.faq details{border-radius:var(--radius-card);box-shadow:inset 0 0 0 1px var(--border-gold-faint);background:rgba(11,22,54,.4)}
.faq summary{list-style:none;cursor:pointer;padding:20px 56px 20px 22px;position:relative;font:var(--fw-medium) var(--fs-serif-md)/1.3 var(--font-serif);color:var(--text-strong)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";position:absolute;right:24px;top:50%;width:9px;height:9px;border-right:1px solid var(--gold-400);border-bottom:1px solid var(--gold-400);transform:translateY(-70%) rotate(45deg);transition:transform var(--dur-base) var(--ease-soft)}
.faq details[open] summary::after{transform:translateY(-30%) rotate(-135deg)}
.faq details p{margin:0;padding:0 22px 22px;color:var(--text-body);max-width:66ch}
.faq details[open]{box-shadow:inset 0 0 0 1px var(--border-gold-soft)}

/* Contact / closing */
.closing{position:relative;overflow:hidden;background:var(--sky-midnight);isolation:isolate}
.sec:has(+ .closing){padding-bottom:clamp(32px,4vw,56px)}
.closing__edge{display:block;width:100%;height:clamp(48px,8vw,120px)}
.contact{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start;margin-top:52px}
.info{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:24px}
.info li{display:flex;gap:16px;align-items:flex-start}
.info svg{flex:none;width:22px;height:22px;color:var(--gold-400);margin-top:3px}
.info b{display:block;font:var(--type-eyebrow);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--gold-300);margin-bottom:4px}
.info span,.info a{color:var(--text-body)}
.ctabox{display:flex;flex-direction:column;align-items:center;gap:22px;text-align:center;padding:80px 28px 40px;border-radius:260px 260px var(--radius-card) var(--radius-card);box-shadow:inset 0 0 0 1px var(--border-gold-soft);background:rgba(3,5,11,.35);position:relative}
.ctabox::after{content:"";position:absolute;inset:var(--frame-gap);border:1px solid var(--border-gold-faint);border-radius:inherit;pointer-events:none}
.ctabox p{margin:0;font:var(--type-lede);color:var(--text-strong);max-width:28ch}

/* Footer */
.ftr{background:var(--night-950);padding:56px 0 110px;text-align:center}
.ftr .wrap{display:flex;flex-direction:column;align-items:center;gap:18px}
.ftr img{width:84px;height:84px}
.ftr p{margin:0;font:var(--type-small);color:var(--text-muted)}
.ftr nav{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 22px}
.ftr nav a{font:var(--type-small);color:var(--text-body)}
.ftr nav a:hover{color:var(--gold-300)}
.social{display:flex;gap:12px}
.social a{width:46px;height:46px;border-radius:999px;display:grid;place-items:center;box-shadow:inset 0 0 0 1px var(--border-gold-soft);color:var(--gold-300)}
.social svg{width:20px;height:20px}
.ftr .slogan{font:italic 400 1.25rem/1.4 var(--font-serif);color:var(--gold-300)}

/* Page hero (subpages) */
.phero{position:relative;overflow:hidden;background:var(--sky-midnight);padding:72px 0 40px;isolation:isolate}
.phero .hero__rings{width:min(1200px,150%);opacity:.75}
.crumbs{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:0 0 22px;padding:0;list-style:none;font:var(--type-small);color:var(--text-muted)}
.crumbs li+li::before{content:"/";margin-right:8px;color:var(--gold-700)}
.crumbs a{color:var(--text-body)}

/* Dialog (lightbox & dress) */
dialog.lb{border:0;padding:0;background:transparent;max-width:min(920px,94vw);max-height:92vh;color:var(--text-body)}
dialog.lb::backdrop{background:rgba(3,5,11,.86);backdrop-filter:blur(8px)}
.lb__box{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:36px;padding:36px;background:var(--sky-section);border-radius:var(--radius-card);box-shadow:inset 0 0 0 1px var(--border-gold-soft),var(--shadow-lg);max-height:92vh;overflow:auto}
.lb__box--img{display:block;padding:10px}
.lb__box--img img{max-height:84vh;width:auto;margin:0 auto;border-radius:2px}
.lb__close{position:absolute;top:8px;right:8px;z-index:3;width:46px;height:46px;border-radius:999px;border:0;background:rgba(3,5,11,.6);color:var(--gold-300);cursor:pointer;display:grid;place-items:center}
.lb__close svg{width:22px;height:22px}
.lb__body{display:flex;flex-direction:column;gap:16px;justify-content:center;align-items:flex-start}
.lb__body h2{margin:0;font:var(--type-title-serif);color:var(--text-strong)}
.lb__body p{margin:0}
.lb__body .lede{color:var(--text-body)}

/* Intro: telón de vidrio que se abre de abajo hacia arriba soltando estrellas (solo primera visita) */
.ev-zip{display:none;position:fixed;inset:0;z-index:100;pointer-events:none}
.ev-intro .ev-zip{display:block;animation:ev-zip-safe 0s 5s forwards}
@keyframes ev-zip-safe{to{visibility:hidden}}
.ev-zip__l,.ev-zip__r{position:absolute;inset:0;background:rgba(10,18,48,.45);-webkit-backdrop-filter:blur(8px) brightness(.8);backdrop-filter:blur(8px) brightness(.8)}
.ev-zip__l{clip-path:polygon(0 0,50% 0,50% 100%,0 100%)}
.ev-zip__r{clip-path:polygon(50% 0,100% 0,100% 100%,50% 100%)}
.ev-zip canvas{position:absolute;inset:0;width:100%;height:100%}
.ev-zip__skip{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);pointer-events:auto;background:rgba(6,10,22,.5);border:1px solid rgba(215,182,21,.35);border-radius:999px;color:var(--gold-300);font:var(--fw-regular) var(--fs-caps-xs)/1 var(--font-caps);letter-spacing:var(--tracking-caps-wide);text-transform:uppercase;padding:12px 18px;cursor:pointer}
.ev-zip__skip{transition:opacity .3s ease}.ev-zip__skip.is-off{opacity:0;pointer-events:none}
.ev-zip--out{opacity:0;transition:opacity .35s ease}

/* Floating WhatsApp: escritorio aparece tras el hero */
.ev-fab{opacity:0;transform:translateY(16px);pointer-events:none;transition:opacity var(--dur-slow) var(--ease-soft),transform var(--dur-slow) var(--ease-soft)}
.ev-fab.is-on{opacity:1;transform:none;pointer-events:auto}
.ev-fab svg{flex:none}

@media (max-width:900px){
  .hero__grid,.split,.split--rev,.contact,.lb__box{grid-template-columns:1fr}
  .split--rev .split__media{order:-1}
  .hero__grid{gap:36px;padding-block:40px 72px}
  .hero__photo{max-width:300px;order:-1}
  .dresses{grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 18px}
  .steps,.also{grid-template-columns:1fr}
  .steps{gap:44px}
  .split__media{max-width:320px}
}
@media (max-width:640px){
  .hero__copy{align-items:stretch;text-align:center}
  .hero__lede{margin-inline:auto}
  .hero__ctas{flex-direction:column;align-items:stretch;gap:18px}
  .hero__ctas .ev-btn-tiara,.hero__ctas .ev-btn-tiara .ev-btn,.hero__ctas>.ev-btn{width:100%}
  .ev-btn{white-space:normal;text-align:center;line-height:1.3}
  .ev-btn--lg{padding:0 24px}
  .incl{grid-template-columns:1fr}
  .dress p{font-size:1rem}
  .lb__box{padding:22px;gap:20px}
  .cta-row .ev-btn{width:100%}
  .head--left{text-align:center;align-items:center;margin-inline:auto}
}
@media (max-width:420px){.dresses{grid-template-columns:1fr;max-width:300px;margin-inline:auto}}
.cta-row{display:flex;flex-wrap:wrap;gap:18px;align-items:center}
.center .cta-row{justify-content:center}
@media (prefers-reduced-motion:reduce){.hero__rings .arc{opacity:1}}
canvas.stars{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}
.hero>.wrap,.phero>.wrap,.closing>.wrap{position:relative;z-index:1}
@media (max-width:640px){
  .hero__ctas .ev-btn--lg{font-size:.7rem;letter-spacing:.1em;padding:0 18px;min-height:60px;white-space:nowrap}
  .ev-btn-tiara{padding-top:40px}
}
@media (min-width:901px){.hero__rings{width:118vw}.phero .hero__rings{width:118vw;opacity:.5}}
.hero__rings svg{-webkit-mask-image:radial-gradient(75% 100% at 50% 100%,#000 55%,transparent 100%);mask-image:radial-gradient(75% 100% at 50% 100%,#000 55%,transparent 100%)}
.nav a{white-space:nowrap}
/* Galerías de 6 fotos: 3 columnas (2 en celular) para que no queden huecos */
.gal--6{grid-template-columns:repeat(3,minmax(0,1fr));max-width:900px;margin-left:auto;margin-right:auto}
.gal--6 button:nth-child(5),.gal--6 button:nth-child(8){border-radius:2px}
.gal--6 button:nth-child(3){border-radius:999px 999px 2px 2px}
@media (max-width:640px){.gal--6{grid-template-columns:repeat(2,minmax(0,1fr))}.gal--6 button:nth-child(3){border-radius:2px}.gal--6 button:nth-child(4){border-radius:999px 999px 2px 2px}}

/* Etiqueta de imágenes generadas con IA (hasta tener fotos reales) */
.arch__inner{position:relative}
.ilus-tag{position:absolute;right:14px;bottom:12px;z-index:2;font:var(--fs-micro,11px)/1 var(--font-sans);letter-spacing:.06em;color:rgba(232,238,247,.85);background:rgba(3,5,11,.45);padding:5px 8px;border-radius:999px}
.ilus-note{margin:18px 0 0;text-align:center;font:var(--fs-micro,12px)/1.4 var(--font-sans);letter-spacing:.06em;color:var(--text-muted)}
/* Catálogo: nota de stock y última tarjeta centrada si queda sola */
.stock-note{margin:56px auto 0;max-width:620px;text-align:center;font:italic 400 1.125rem/1.5 var(--font-serif);color:var(--text-body)}
.stock-note strong{color:var(--gold-300);font-weight:400}
.stock-note a{display:inline-block;margin-top:6px;color:var(--gold-300)}
@media (min-width:901px){.dresses .dress:last-child:nth-child(3n+1){grid-column:2}}
/* Galería de 8 fotos: 4 columnas en escritorio, 2 en celular */
@media (min-width:901px){.gal--8{grid-template-columns:repeat(4,minmax(0,1fr));max-width:1100px}}
/* Auditoría nov. 2026: títulos-enlace legibles sobre tarjeta marfil (dorado oscuro del sistema, 6,4:1) */
.also h3 a{color:var(--gold-800)}
.also h3 a:hover{color:var(--gold-900)}
/* Auditoría nov. 2026: enlaces del pie, migas e Instagram con área táctil de 24 px o más */
.ftr nav a,.crumbs a,.info a{display:inline-block;padding:5px 0}
.crumbs{align-items:center}
