/* Eventus · Medianoche Real — color tokens
   Base: negro azulado → medianoche → azul profundo → azul real luminoso.
   Gold #D7B615 is taken from the logo. Ice/pearl for light grounds. */
:root{
  /* Logo */
  --logo-black:#000000; 
  --logo-gold:#D7B615; 
  --logo-white:#FFFFFF; 

  /* Midnight blues (dark → luminous) */
  --night-950:#03050B; 
  --night-900:#060A16; 
  --night-850:#08102A; 
  --night-800:#0B1636; 
  --night-700:#0F1F4A; 
  --deep-600:#14295F; 
  --deep-500:#1A3577; 
  --royal-400:#23468F; 
  --royal-300:#3D63AE; 
  --royal-200:#7D97C9; 

  /* Ice & pearl (light accents) */
  --ice-300:#B9C8E2; 
  --ice-200:#D3DDEE; 
  --ice-100:#E8EEF7; 
  --pearl-50:#F6F4EF; 
  --pearl-0:#FCFBF8; 

  /* Gold */
  --gold-900:#4D3F05; 
  --gold-800:#6F5B07; 
  --gold-700:#9A7F0B; 
  --gold-600:#BC9D10; 
  --gold-500:#D7B615; 
  --gold-400:#E4C93F; 
  --gold-300:#EDD873; 
  --gold-200:#F5E9AE; 
  --gold-100:#FBF5DC; 

  /* Feedback (muted, in-palette) */
  --success-500:#5E9C82; 
  --error-500:#C46A6A; 
  --error-300:#E7A9A9; 

  /* ---------- Semantic aliases ---------- */
  --surface-page:var(--night-900); 
  --surface-deep:var(--night-950); 
  --surface-section:var(--night-850); 
  --surface-raised:var(--night-800); 
  --surface-card:rgba(11,22,54,.72); 
  --surface-light:var(--pearl-50); 
  --surface-ice:var(--ice-100); 
  --surface-overlay:rgba(3,5,11,.72); 

  --text-strong:var(--pearl-0); 
  --text-body:#D9E1EF; 
  --text-muted:#9DADC9; 
  --text-on-light:var(--night-850); 
  --text-on-light-muted:#4A5878; 
  --text-accent:var(--gold-400); 
  --text-on-gold:var(--night-900); 

  --border-gold:var(--gold-500); 
  --border-gold-soft:rgba(215,182,21,.38); 
  --border-gold-faint:rgba(215,182,21,.18); 
  --border-ice:rgba(211,221,238,.22); 
  --border-input:rgba(211,221,238,.28); 
  --border-input-light:#C3CEE2; 

  --focus-ring:var(--gold-300); 
  --gem-ice:var(--ice-200); 
}

/* Gradients are CSS only — never images. */
:root{
  /* Metallic gold for primary buttons, rules, ornaments */
  --gold-metal:linear-gradient(135deg,#8C7309 0%,#C9A812 22%,#EFDB7A 46%,#D7B615 60%,#A4880C 82%,#E4C93F 100%); 
  --gold-metal-h:linear-gradient(90deg,#9A7F0B 0%,#D7B615 25%,#F5E9AE 50%,#D7B615 75%,#9A7F0B 100%); 
  --gold-rule:linear-gradient(90deg,rgba(215,182,21,0) 0%,#D7B615 20%,#F5E9AE 50%,#D7B615 80%,rgba(215,182,21,0) 100%); 
  --gold-sheen:linear-gradient(105deg,rgba(255,255,255,0) 30%,rgba(255,250,225,.75) 50%,rgba(255,255,255,0) 70%); 

  /* Midnight sky — page/hero backgrounds */
  --sky-midnight:radial-gradient(120% 80% at 50% 100%,#1A3577 0%,#0F1F4A 32%,#08102A 62%,#03050B 100%); 
  --sky-vertical:linear-gradient(180deg,#03050B 0%,#08102A 45%,#0F1F4A 100%); 
  --sky-section:linear-gradient(180deg,#060A16 0%,#0B1636 100%); 

  /* Arch fill (concentric arcs, cf. reference image) */
  --arch-fill:linear-gradient(180deg,#23468F 0%,#14295F 38%,#08102A 78%,rgba(3,5,11,0) 100%); 

  /* Photo protection (text over photo) */
  --photo-scrim:linear-gradient(180deg,rgba(3,5,11,0) 40%,rgba(3,5,11,.85) 100%); 
  --photo-scrim-left:linear-gradient(90deg,rgba(3,5,11,.92) 0%,rgba(3,5,11,.55) 45%,rgba(3,5,11,0) 75%); 

  /* Light pearl section */
  --pearl-wash:linear-gradient(180deg,#FCFBF8 0%,#E8EEF7 100%); 
}

/* Four voices: script (short highlighted titles), serif (dress names, subheads),
   small-caps (eyebrows, buttons, menu), sans (body, forms). */
:root{
  --font-script:"Great Vibes","Snell Roundhand",cursive; 
  --font-serif:"Cormorant Garamond","Cormorant",Garamond,"Times New Roman",serif; 
  --font-caps:"Cinzel","Trajan Pro",serif; 
  --font-sans:"Jost","Futura","Century Gothic",system-ui,sans-serif; 

  /* Fluid scale (mobile → desktop) */
  --fs-script-xl:clamp(3.25rem,2.2rem + 5vw,6.5rem); 
  --fs-script-lg:clamp(2.6rem,1.9rem + 3vw,4.5rem); 
  --fs-script-md:clamp(2.1rem,1.7rem + 1.6vw,3rem); 
  --fs-serif-xl:clamp(2.1rem,1.6rem + 2.2vw,3.5rem); 
  --fs-serif-lg:clamp(1.65rem,1.4rem + 1vw,2.25rem); 
  --fs-serif-md:clamp(1.3rem,1.2rem + .5vw,1.6rem); 
  --fs-serif-sm:1.125rem; 
  --fs-caps-md:.875rem; 
  --fs-caps-sm:.75rem; 
  --fs-caps-xs:.6875rem; 
  --fs-body-lg:1.125rem; 
  --fs-body:1rem; 
  --fs-body-sm:.875rem; 
  --fs-micro:.75rem; 

  --lh-tight:1.05; 
  --lh-snug:1.2; 
  --lh-normal:1.45; 
  --lh-body:1.65; 

  --tracking-caps:.18em; 
  --tracking-caps-wide:.28em; 
  --tracking-body:.01em; 

  --fw-light:300; 
  --fw-regular:400; 
  --fw-medium:500; 
  --fw-semibold:600; 

  /* Semantic roles */
  --type-display-script:var(--fw-regular) var(--fs-script-xl)/1 var(--font-script); 
  --type-title-script:var(--fw-regular) var(--fs-script-lg)/1.05 var(--font-script); 
  --type-title-serif:var(--fw-medium) var(--fs-serif-xl)/var(--lh-snug) var(--font-serif); 
  --type-dress-name:var(--fw-medium) var(--fs-serif-md)/var(--lh-snug) var(--font-serif); 
  --type-lede:italic var(--fw-regular) var(--fs-serif-md)/var(--lh-normal) var(--font-serif); 
  --type-eyebrow:var(--fw-regular) var(--fs-caps-sm)/1.4 var(--font-caps); 
  --type-button:var(--fw-semibold) var(--fs-caps-sm)/1 var(--font-caps); 
  --type-body:var(--fw-regular) var(--fs-body)/var(--lh-body) var(--font-sans); 
  --type-small:var(--fw-regular) var(--fs-body-sm)/1.55 var(--font-sans); 
}

:root{
  --space-1:4px; 
  --space-2:8px; 
  --space-3:12px; 
  --space-4:16px; 
  --space-5:24px; 
  --space-6:32px; 
  --space-7:48px; 
  --space-8:64px; 
  --space-9:96px; 
  --space-10:128px; 

  --section-y:clamp(64px,8vw,128px); 
  --gutter:clamp(20px,4vw,48px); 
  --container:1200px; 
  --container-narrow:760px; 

  /* Radii — buttons/chips are ALWAYS pills; forms may be square-ish */
  --radius-pill:999px; 
  --radius-arch:999px 999px 0 0;      /* castle-arch photo frame: round top, flat bottom */
  --radius-card:4px; 
  --radius-input:2px; 
  --radius-sm:2px; 

  /* Rules & frames */
  --rule-hair:1px; 
  --frame-gap:6px;                    /* gap between the two gold rules of a double frame */
  --ring-gap:4px;                     /* primary button outer ring offset */

  --tap-min:48px; 
  --header-h:72px; 
  --header-h-mobile:60px; 
}

:root{
  /* Shadows: soft, blue-black, never grey */
  --shadow-sm:0 2px 8px rgba(1,3,10,.35); 
  --shadow-md:0 10px 30px -8px rgba(1,3,10,.6); 
  --shadow-lg:0 30px 60px -20px rgba(1,3,10,.75); 
  --glow-gold:0 0 0 1px rgba(215,182,21,.35),0 8px 28px -6px rgba(215,182,21,.35); 
  --glow-gold-strong:0 0 0 1px rgba(237,216,115,.6),0 14px 36px -8px rgba(215,182,21,.55); 
  --glow-ice:0 0 18px rgba(211,221,238,.55); 
  --inner-gold:inset 0 1px 0 rgba(255,248,214,.65),inset 0 -1px 0 rgba(77,63,5,.45); 

  --blur-glass:blur(14px) saturate(120%); 
  --castle-dim:brightness(.32) saturate(.6) blur(3px);    /* castle backdrops only */

  /* Motion — slow, soft, fairy-tale */
  --ease-soft:cubic-bezier(.22,.61,.36,1); 
  --ease-gentle:cubic-bezier(.4,0,.2,1); 
  --ease-door:cubic-bezier(.65,0,.35,1); 
  --dur-fast:180ms; 
  --dur-base:320ms; 
  --dur-slow:700ms; 
  --dur-sheen:900ms; 
  --dur-arch:1400ms; 
  --dur-doors:1600ms; 
  --lift:-2px; 
}
/* Reduced motion handled globally in tokens/base.css */

@font-face{font-family:"Cinzel";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/Cinzel-0.woff2") format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:"Cinzel";font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/Cinzel-0.woff2") format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:"Cinzel";font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/Cinzel-0.woff2") format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:"Cormorant Garamond";font-style:italic;font-weight:400;font-display:swap;src:url("../fonts/CormorantGaramond-Italic-1.woff2") format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:"Cormorant Garamond";font-style:italic;font-weight:500;font-display:swap;src:url("../fonts/CormorantGaramond-Italic-1.woff2") format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/CormorantGaramond-2.woff2") format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/CormorantGaramond-2.woff2") format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/CormorantGaramond-2.woff2") format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:"Great Vibes";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/GreatVibes-3.woff2") format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:"Jost";font-style:normal;font-weight:300;font-display:swap;src:url("../fonts/Jost-4.woff2") format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:"Jost";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/Jost-4.woff2") format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:"Jost";font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/Jost-4.woff2") format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}

/* Minimal element defaults + brand keyframes used by components */
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--surface-page);color:var(--text-body);font:var(--type-body);letter-spacing:var(--tracking-body);-webkit-font-smoothing:antialiased}
a{color:var(--gold-400);text-decoration:none}
a:hover{color:var(--gold-200)}
::selection{background:rgba(215,182,21,.35);color:var(--pearl-0)}
:focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px}
img{max-width:100%;display:block}
@keyframes ev-sheen{from{transform:translateX(-120%) skewX(-18deg)}to{transform:translateX(220%) skewX(-18deg)}}
@keyframes ev-arch-in{from{opacity:0;transform:translateY(24px) scale(.96)}to{opacity:1;transform:none}}
@keyframes ev-twinkle{0%,100%{opacity:.25;transform:scale(.8)}50%{opacity:1;transform:scale(1)}}
@keyframes ev-fade-up{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:0ms!important;animation-iteration-count:1!important;transition-duration:0ms!important}}

/* Eventus component styles — consumed by components/* via className. Tokens only. */

/* ---------- Buttons ---------- */
.ev-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:52px;padding:0 32px;border-radius:var(--radius-pill);font:var(--type-button);letter-spacing:var(--tracking-caps);text-transform:uppercase;text-decoration:none;white-space:nowrap;cursor:pointer;border:0;isolation:isolate;transition:transform var(--dur-base) var(--ease-soft),box-shadow var(--dur-base) var(--ease-soft),background-color var(--dur-base) var(--ease-soft),color var(--dur-base) var(--ease-soft);-webkit-tap-highlight-color:transparent}
.ev-btn:hover{transform:translateY(var(--lift))}
.ev-btn:active{transform:translateY(0) scale(.985)}
.ev-btn[disabled],.ev-btn[aria-disabled="true"]{opacity:.45;cursor:not-allowed;transform:none}
.ev-btn__label{position:relative;z-index:2;display:inline-flex;align-items:center;gap:10px}
.ev-btn__icon{width:18px;height:18px;flex:none}
.ev-btn--lg{min-height:58px;padding:0 40px;font-size:var(--fs-caps-md)}
.ev-btn--sm{min-height:44px;padding:0 22px;font-size:var(--fs-caps-xs)}

/* Primary — metallic gold pill + separate hairline ring 4px out */
.ev-btn--primary{background:var(--gold-metal);color:var(--text-on-gold);box-shadow:var(--inner-gold),var(--glow-gold)}
.ev-btn--primary::before{content:"";position:absolute;inset:calc(-1 * (var(--ring-gap) + 1px));border:1px solid var(--border-gold-soft);border-radius:inherit;pointer-events:none;transition:border-color var(--dur-base) var(--ease-soft)}
.ev-btn--primary:hover{box-shadow:var(--inner-gold),var(--glow-gold-strong)}
.ev-btn--primary:hover::before{border-color:var(--gold-300)}
.ev-btn__sheen{position:absolute;inset:0;border-radius:inherit;overflow:hidden;z-index:1;pointer-events:none}
.ev-btn__sheen::after{content:"";position:absolute;top:0;bottom:0;left:0;width:45%;background:var(--gold-sheen);transform:translateX(-120%) skewX(-18deg)}
.ev-btn--primary:hover .ev-btn__sheen::after,.ev-btn--primary:focus-visible .ev-btn__sheen::after{animation:ev-sheen var(--dur-sheen) var(--ease-gentle) 1}

/* Primary + tiara (hero only, once per site) */
.ev-btn-tiara{position:relative;display:inline-flex;flex-direction:column;align-items:center;padding-top:40px}
.ev-btn-tiara__crown{position:absolute;top:0;left:50%;width:118px;height:auto;transform:translateX(-50%);z-index:3;pointer-events:none;filter:drop-shadow(0 2px 6px rgba(1,3,10,.6));transition:transform var(--dur-base) var(--ease-soft)}
.ev-btn-tiara:hover .ev-btn-tiara__crown{transform:translateX(-50%) translateY(var(--lift))}

/* Secondary — fine gold outline, transparent, filigree each side */
.ev-btn--secondary{background:transparent;color:var(--gold-300);box-shadow:inset 0 0 0 1px var(--border-gold);padding:0 22px}
.ev-btn--secondary:hover{background:rgba(215,182,21,.08);color:var(--gold-200);box-shadow:inset 0 0 0 1px var(--gold-300),0 8px 24px -10px rgba(215,182,21,.4)}
.ev-btn__filigree{width:28px;height:auto;flex:none;color:var(--gold-500);opacity:.95}
.ev-btn--secondary.ev-btn--on-light{color:var(--gold-800);box-shadow:inset 0 0 0 1px var(--gold-600)}
.ev-btn--secondary.ev-btn--on-light .ev-btn__filigree{color:var(--gold-700)}
.ev-btn--secondary.ev-btn--on-light:hover{background:rgba(215,182,21,.1);color:var(--gold-900)}

@media (max-width:640px){
  .ev-btn--block-mobile{display:flex;width:100%}
  .ev-btn-tiara.ev-btn--block-mobile{width:100%}
  .ev-btn-tiara.ev-btn--block-mobile .ev-btn{width:100%}
}

/* ---------- Text link ---------- */
.ev-link{position:relative;display:inline-flex;align-items:center;gap:8px;font:var(--fw-regular) var(--fs-caps-sm)/1.6 var(--font-caps);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--gold-400);text-decoration:none;padding:4px 0;background:linear-gradient(currentColor,currentColor) 0 100%/100% 1px no-repeat;transition:color var(--dur-base) var(--ease-soft),background-size var(--dur-slow) var(--ease-soft)}
.ev-link:hover{color:var(--gold-200);background-size:100% 1px}
.ev-link__spark{width:10px;height:10px;flex:none;color:var(--gold-300);transition:transform var(--dur-slow) var(--ease-soft),opacity var(--dur-base)}
.ev-link:hover .ev-link__spark{transform:rotate(45deg) scale(1.25)}
.ev-link--on-light{color:var(--gold-800)}
.ev-link--on-light .ev-link__spark{color:var(--gold-700)}
.ev-link--on-light:hover{color:var(--gold-900)}

/* ---------- Pills: chips, sizes, badges ---------- */
.ev-pill{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:32px;padding:0 14px;border-radius:var(--radius-pill);font:var(--fw-regular) var(--fs-caps-xs)/1 var(--font-caps);letter-spacing:.14em;text-transform:uppercase;color:var(--text-body);background:transparent;box-shadow:inset 0 0 0 1px var(--border-gold-soft);border:0;white-space:nowrap;transition:all var(--dur-base) var(--ease-soft)}
button.ev-pill{cursor:pointer}
button.ev-pill:hover{box-shadow:inset 0 0 0 1px var(--gold-400);color:var(--gold-200)}
.ev-pill--selected{background:var(--gold-metal);color:var(--text-on-gold);box-shadow:var(--inner-gold)}
button.ev-pill--selected:hover{color:var(--text-on-gold)}
.ev-pill--size{min-width:48px;min-height:44px;padding:0 12px;font-family:var(--font-serif);font-size:1.0625rem;letter-spacing:.04em;text-transform:none}
.ev-pill--badge{min-height:24px;padding:0 10px;font-size:10px;letter-spacing:.16em;background:rgba(11,22,54,.78);box-shadow:inset 0 0 0 1px var(--border-gold-soft);color:var(--gold-300);backdrop-filter:var(--blur-glass)}
.ev-pill--ice{background:var(--ice-100);color:var(--night-850);box-shadow:none}
.ev-pill[disabled]{opacity:.35;text-decoration:line-through;cursor:not-allowed}
.ev-pill--on-light{color:var(--text-on-light);box-shadow:inset 0 0 0 1px var(--gold-600)}

/* ---------- Arch photo frame (double gold rule) ---------- */
.ev-arch{position:relative;margin:0;display:flex;flex-direction:column;gap:14px}
.ev-arch__outer{position:relative;border-radius:var(--radius-arch);padding:var(--frame-gap);box-shadow:inset 0 0 0 1px var(--border-gold)}
.ev-arch__inner{position:relative;border-radius:var(--radius-arch);overflow:hidden;box-shadow:0 0 0 1px var(--gold-300);background:var(--night-800)}
.ev-arch__img{width:100%;height:100%;object-fit:cover;transition:transform 1.6s var(--ease-soft)}
.ev-arch:hover .ev-arch__img{transform:scale(1.03)}
.ev-arch__keystone{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(--surface-page)}
.ev-arch__caption{font:var(--type-lede);color:var(--text-muted);text-align:center}

/* ---------- Forms ---------- */
.ev-field{display:flex;flex-direction:column;gap:8px}
.ev-field__label{font:var(--fw-regular) var(--fs-caps-xs)/1.3 var(--font-caps);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--gold-300)}
.ev-field__control{width:100%;box-sizing:border-box;min-height:50px;padding:12px 14px;border-radius:var(--radius-input);border:1px solid var(--border-input);background:rgba(3,5,11,.35);color:var(--text-strong);font:var(--fw-regular) 1rem/1.5 var(--font-sans);transition:border-color var(--dur-base),box-shadow var(--dur-base),background var(--dur-base);appearance:none;-webkit-appearance:none}
.ev-field__control::placeholder{color:#7584A3}
.ev-field__control:hover{border-color:rgba(211,221,238,.45)}
.ev-field__control:focus{outline:none;border-color:var(--gold-500);box-shadow:0 0 0 3px rgba(215,182,21,.18);background:rgba(3,5,11,.55)}
textarea.ev-field__control{min-height:120px;resize:vertical}
select.ev-field__control{padding-right:40px;background-image:linear-gradient(45deg,transparent 50%,var(--gold-400) 50%),linear-gradient(135deg,var(--gold-400) 50%,transparent 50%);background-position:calc(100% - 20px) 50%,calc(100% - 15px) 50%;background-size:5px 5px;background-repeat:no-repeat}
.ev-field__hint{font:var(--type-small);color:var(--text-muted)}
.ev-field--error .ev-field__control{border-color:var(--error-500)}
.ev-field--error .ev-field__hint{color:var(--error-300)}
.ev-field--light .ev-field__label{color:var(--gold-800)}
.ev-field--light .ev-field__control{background:var(--pearl-0);border-color:var(--border-input-light);color:var(--text-on-light)}
.ev-field--light .ev-field__control:focus{border-color:var(--gold-600);background:#fff}
.ev-field--light .ev-field__hint{color:var(--text-on-light-muted)}

/* ---------- Floating WhatsApp ---------- */
.ev-fab{position:fixed;right:18px;bottom:18px;z-index:40;display:inline-flex;align-items:center;gap:10px;height:56px;min-width:56px;padding:0 20px 0 16px;border-radius:var(--radius-pill);background:var(--gold-metal);color:var(--text-on-gold);box-shadow:var(--inner-gold),var(--shadow-md),0 0 0 4px rgba(6,10,22,.9),0 0 0 5px var(--border-gold-soft);font:var(--type-button);letter-spacing:var(--tracking-caps);text-transform:uppercase;text-decoration:none;transition:transform var(--dur-base) var(--ease-soft)}
.ev-fab:hover{transform:translateY(var(--lift));color:var(--text-on-gold)}
.ev-fab svg{width:24px;height:24px}
@media (max-width:640px){.ev-fab__text{display:none}.ev-fab{padding:0;justify-content:center}}

/* ---------- Castle doors intro ---------- */
.ev-doors{position:fixed;inset:0;z-index:100;display:flex;perspective:1600px;pointer-events:auto}
.ev-doors__leaf{position:relative;flex:1;background:var(--sky-vertical);overflow:hidden;transition:transform var(--ev-doors-dur,1600ms) var(--ease-door);will-change:transform}
.ev-doors__leaf--l{transform-origin:left center;box-shadow:inset -1px 0 0 var(--border-gold)}
.ev-doors__leaf--r{transform-origin:right center;box-shadow:inset 1px 0 0 var(--border-gold)}
.ev-doors__panel{position:absolute;inset:9vh 7vw 7vh;border:1px solid var(--border-gold-soft)}
.ev-doors__panel::after{content:"";position:absolute;inset:var(--frame-gap);border:1px solid var(--border-gold-faint)}
.ev-doors__leaf--l .ev-doors__panel{left:auto;right:0;width:min(34vw,320px);border-right:0;border-radius:100% 0 0 0/26% 0 0 0}
.ev-doors__leaf--r .ev-doors__panel{left:0;width:min(34vw,320px);border-left:0;border-radius:0 100% 0 0/0 26% 0 0}
.ev-doors__leaf--l .ev-doors__panel::after{border-right:0;border-radius:100% 0 0 0/26% 0 0 0}
.ev-doors__leaf--r .ev-doors__panel::after{border-left:0;border-radius:0 100% 0 0/0 26% 0 0}
.ev-doors__seal{position:absolute;top:50%;left:50%;z-index:2;width:min(46vw,220px);transform:translate(-50%,-50%);transition:opacity 500ms var(--ease-soft)}
.ev-doors__skip{position:absolute;bottom:22px;left:50%;z-index:3;transform:translateX(-50%);background:transparent;border:0;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:14px 18px;cursor:pointer}
.ev-doors--open{pointer-events:none}
.ev-doors--open .ev-doors__leaf--l{transform:rotateY(78deg) translateX(-12%)}
.ev-doors--open .ev-doors__leaf--r{transform:rotateY(-78deg) translateX(12%)}
.ev-doors--open .ev-doors__seal,.ev-doors--open .ev-doors__skip{opacity:0}
.ev-doors--fade{opacity:0;transition:opacity 400ms var(--ease-soft)}

/* ---------- Arch rings ---------- */
.ev-rings{display:block;width:100%;height:auto;pointer-events:none}
.ev-rings__arc{transform-box:fill-box;transform-origin:50% 100%}
.ev-rings--animate .ev-rings__arc{opacity:0;animation:ev-arch-in var(--dur-arch) var(--ease-soft) forwards}

/* ---------- Section heading ---------- */
.ev-heading{display:flex;flex-direction:column;gap:14px;max-width:var(--container-narrow)}
.ev-heading--center{align-items:center;text-align:center;margin-inline:auto}
.ev-heading--left{align-items:flex-start;text-align:left}
.ev-heading__eyebrow{margin:0;font:var(--type-eyebrow);letter-spacing:var(--tracking-caps-wide);text-transform:uppercase;color:var(--gold-400);text-wrap:balance}
.ev-heading__title{margin:0;color:var(--text-strong);text-wrap:balance}
.ev-heading__title--script{font:var(--type-title-script);color:var(--gold-300)}
.ev-heading__title--serif{font:var(--type-title-serif)}
.ev-heading__ornament{margin-top:-2px}
.ev-heading__lede{margin:0;font:var(--type-lede);color:var(--text-muted);text-wrap:pretty}
.ev-heading--light .ev-heading__eyebrow{color:var(--gold-800)}
.ev-heading--light .ev-heading__title{color:var(--text-on-light)}
.ev-heading--light .ev-heading__title--script{color:var(--gold-800)}
.ev-heading--light .ev-heading__lede{color:var(--text-on-light-muted)}

/* ---------- Dress card ---------- */
.ev-dress{display:flex;flex-direction:column;gap:18px}
.ev-dress__media{cursor:pointer;border-radius:var(--radius-arch)}
.ev-dress__badge{position:absolute;top:22%;left:50%;transform:translateX(-50%)}
.ev-dress__body{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center}
.ev-dress__name{margin:0;font:var(--type-dress-name);color:var(--text-strong)}
.ev-dress__note{margin:-6px 0 0;font:italic var(--fw-regular) 1.0625rem/1.4 var(--font-serif);color:var(--text-muted)}
.ev-dress__sizes{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin-bottom:4px}

/* ---------- Testimonial ---------- */
.ev-quote{position:relative;margin:0;padding:40px 28px 28px;border-radius:var(--radius-card);background:var(--surface-card);box-shadow:inset 0 0 0 1px var(--border-gold-faint);display:flex;flex-direction:column;gap:14px;text-align:center;align-items:center}
.ev-quote::after{content:"";position:absolute;inset:var(--frame-gap);border:1px solid var(--border-gold-faint);border-radius:2px;pointer-events:none}
.ev-quote__sample{position:absolute;top:-11px;left:50%;transform:translateX(-50%);padding:4px 12px;border-radius:var(--radius-pill);background:var(--night-900);box-shadow:inset 0 0 0 1px var(--border-gold-soft);font:var(--fw-regular) 10px/1.2 var(--font-caps);letter-spacing:.16em;text-transform:uppercase;color:var(--gold-300);white-space:nowrap}
.ev-quote__mark{font:400 64px/0.6 var(--font-serif);color:var(--gold-500);height:28px}
.ev-quote__text{margin:0;font:italic var(--fw-regular) var(--fs-serif-md)/1.45 var(--font-serif);color:var(--text-strong);text-wrap:pretty}
.ev-quote__who{display:flex;flex-direction:column;gap:2px}
.ev-quote__name{font:var(--fw-regular) var(--fs-caps-sm)/1.4 var(--font-caps);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--gold-400)}
.ev-quote__detail{font:var(--type-small);color:var(--text-muted)}
.ev-quote--light{background:var(--pearl-0);box-shadow:inset 0 0 0 1px rgba(154,127,11,.3),var(--shadow-sm)}
.ev-quote--light .ev-quote__text{color:var(--text-on-light)}
.ev-quote--light .ev-quote__name{color:var(--gold-800)}
.ev-quote--light .ev-quote__detail{color:var(--text-on-light-muted)}
.ev-quote--light .ev-quote__sample{background:var(--pearl-0);color:var(--gold-800)}
