

@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600;700&family=Manrope:wght@400;500;600&display=swap');

:root{
  --void-0:#070910;
  --void-1:#0d1119;
  --void-2:#131a2c;
  --void-3:#1a2238;
  --surface-border: rgba(150,163,209,.14);
  --surface-border-strong: rgba(150,163,209,.26);

  --text-primary:#eef1fa;
  --text-secondary:#b7c0d8;
  --text-muted:#818ca8;

  --gold:#f2c265;
  --gold-soft:#f8dc9d;
  --nebula-blue:#5f8bf0;
  --nebula-blue-soft:#93b3f7;
  --nebula-purple:#a172ec;
  --nebula-magenta:#d873c4;

  --gradient-hero: radial-gradient(ellipse 120% 80% at 50% -10%, rgba(95,139,240,.22), transparent 60%), radial-gradient(ellipse 80% 60% at 85% 100%, rgba(161,114,236,.18), transparent 60%), linear-gradient(180deg, var(--void-1), var(--void-0));
  --gradient-accent: linear-gradient(120deg, var(--nebula-blue), var(--nebula-purple));
  --gradient-warm: linear-gradient(120deg, var(--gold), var(--nebula-magenta));

  --sp-1:.5rem; --sp-2:.75rem; --sp-3:1.25rem; --sp-4:2rem; --sp-5:3rem; --sp-6:4.5rem; --sp-7:7rem; --sp-8:10rem;

  --r-sm:10px; --r-md:16px; --r-lg:24px; --r-xl:32px; --r-pill:999px;

  --shadow-sm: 0 1px 2px rgba(0,0,0,.5);
  --shadow-md: 0 10px 26px -12px rgba(0,0,0,.6), 0 2px 8px rgba(0,0,0,.4);
  --shadow-lg: 0 30px 70px -24px rgba(0,0,0,.65), 0 10px 30px -12px rgba(95,139,240,.14);
  --glow-gold: 0 0 0 1px rgba(242,194,101,.28), 0 0 26px rgba(242,194,101,.22);
  --glow-blue: 0 0 0 1px rgba(95,139,240,.32), 0 0 32px rgba(95,139,240,.24);

  --ease: cubic-bezier(.2,.8,.2,1);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; overflow-x: hidden; }
body{
  margin:0;
  font-family:'Manrope',sans-serif;
  background:var(--void-0);
  color:var(--text-secondary);
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
h1,h2,h3,h4{ font-family:'Cormorant Garamond',serif; color:var(--text-primary); margin:0 0 .6em; font-weight:700; }
p{ margin:0 0 1em; }
ul{ margin:0; padding:0; list-style:none; }
button{ font-family:inherit; }
.canvas{ position:relative; }

.container{ max-width:1240px; margin:0 auto; padding:0 var(--sp-4); }
.container-narrow{ max-width:820px; }
.text-center{ text-align:center; }

.eyebrow{ text-transform:uppercase; letter-spacing:.16em; font-size:.78rem; font-weight:600; color:var(--gold-soft); margin-bottom:var(--sp-2); }
.eyebrow-center{ text-align:center; }

.display-1{ font-size:clamp(2.6rem,6.4vw,5.4rem); line-height:1.06; letter-spacing:-.01em; }
.display-2{ font-size:clamp(2rem,4.2vw,3.1rem); line-height:1.14; }
.body-lede{ font-size:clamp(1.02rem,1.4vw,1.2rem); color:var(--text-secondary); max-width:700px; margin-left:auto; margin-right:auto; }
.stage-lede{ font-size:clamp(1.02rem,1.4vw,1.2rem); color:var(--text-secondary); max-width:600px; margin:0 auto var(--sp-4); }


.btn{ display:inline-flex; align-items:center; gap:.6rem; padding:.95rem 1.9rem; border-radius:var(--r-pill); font-weight:600; font-size:.95rem; border:1px solid transparent; cursor:pointer; transition:transform .35s var(--ease), box-shadow .35s var(--ease), background .35s var(--ease), color .35s var(--ease), border-color .35s var(--ease); min-height:44px; }
.btn-primary{ background:var(--gradient-accent); color:#fff; box-shadow:var(--glow-blue); }
.btn-primary:hover{ transform:translateY(-3px); box-shadow:0 22px 44px -14px rgba(95,139,240,.5); }
.btn-outline{ border-color:var(--surface-border-strong); color:var(--text-primary); background:rgba(255,255,255,.02); }
.btn-outline:hover{ border-color:var(--nebula-blue-soft); background:rgba(95,139,240,.1); transform:translateY(-3px); }
.btn-ghost{ background:transparent; color:var(--text-secondary); }
.btn-ghost:hover{ color:var(--text-primary); }
.btn-sm{ padding:.6rem 1.25rem; font-size:.82rem; min-height:38px; }


.nav{ position:fixed; top:0; left:0; right:0; z-index:100; padding:var(--sp-3) 0; transition:background .4s var(--ease), box-shadow .4s var(--ease), backdrop-filter .4s var(--ease); }
.nav-inner{ max-width:1240px; margin:0 auto; padding:0 var(--sp-4); display:flex; align-items:center; justify-content:space-between; }
.nav.nav-solid{ background:rgba(10,13,22,.86); backdrop-filter:blur(16px); box-shadow:0 8px 30px -14px rgba(0,0,0,.6); border-bottom:1px solid var(--surface-border); }
.nav-logo{ display:flex; align-items:center; gap:.6rem; }
.nav-logo-img{ width:36px; height:36px; }
.nav-logo-text{ font-family:'Cormorant Garamond',serif; font-weight:700; font-size:1.3rem; color:var(--text-primary); letter-spacing:.01em; }
.nav-links{ display:flex; align-items:center; gap:var(--sp-4); }
.nav-link{ position:relative; font-size:.95rem; font-weight:500; color:var(--text-secondary); padding-bottom:8px; transition:color .3s var(--ease); }
.nav-link::after{ content:''; position:absolute; left:0; bottom:0; height:3px; width:0; border-radius:var(--r-pill); background:var(--gradient-warm); transition:width .35s var(--ease); }
.nav-link:hover{ color:var(--text-primary); }
.nav-link:hover::after{ width:100%; }
.nav-link.is-active{ color:var(--text-primary); }
.nav-link.is-active::after{ width:100%; }
.nav-toggle{ display:none; background:none; border:none; color:var(--text-primary); font-size:1.4rem; cursor:pointer; min-width:44px; min-height:44px; align-items:center; justify-content:center; transition:color .3s var(--ease); }
.nav-toggle:hover{ color:var(--gold-soft); }


.drawer{ position:fixed; inset:0; z-index:200; display:flex; flex-direction:column; padding:var(--sp-4); background:linear-gradient(160deg, var(--void-2), var(--void-0) 70%); transform:translateY(-100%); opacity:0; visibility:hidden; transition:transform .5s var(--ease), opacity .5s var(--ease), visibility .5s; }
.drawer.drawer-open{ transform:translateY(0); opacity:1; visibility:visible; }
.drawer-top{ display:flex; align-items:center; justify-content:space-between; padding:var(--sp-2) 0; }
.drawer-logo{ width:40px; height:40px; }
.drawer-close{ background:rgba(255,255,255,.06); border:1px solid var(--surface-border); color:var(--text-primary); width:44px; height:44px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:1.2rem; cursor:pointer; transition:background .3s var(--ease), transform .3s var(--ease); }
.drawer-close:hover{ background:rgba(255,255,255,.12); transform:rotate(90deg); }
.drawer-grid{ flex:1; display:grid; grid-template-columns:repeat(2,1fr); gap:var(--sp-3); align-content:center; margin-top:var(--sp-4); }
.drawer-item{ display:flex; flex-direction:column; align-items:center; justify-content:center; gap:var(--sp-2); padding:var(--sp-5) var(--sp-2); background:rgba(255,255,255,.03); border:1px solid var(--surface-border); border-radius:var(--r-lg); color:var(--text-primary); font-weight:600; font-size:1rem; transition:background .3s var(--ease), border-color .3s var(--ease), transform .3s var(--ease); min-height:44px; }
.drawer-item i{ font-size:1.7rem; color:var(--gold-soft); }
.drawer-item:hover{ background:rgba(95,139,240,.12); border-color:var(--nebula-blue-soft); transform:translateY(-4px); }


.stage{ position:relative; min-height:92vh; display:flex; align-items:center; justify-content:center; overflow:hidden; background:var(--gradient-hero); padding:var(--sp-8) var(--sp-4) var(--sp-6); }
.stage-inner{ min-height:62vh; padding-top:calc(var(--sp-8) + 2rem); }
.stage-contact{ min-height:56vh; }
.stage-legal{ min-height:42vh; }
.stage-icon-grid{ position:absolute; inset:0; display:grid; grid-template-columns:repeat(10,1fr); pointer-events:none; }
.stage-icon-grid i{ display:flex; align-items:center; justify-content:center; font-size:clamp(1rem,3vw,2.1rem); color:var(--nebula-blue-soft); opacity:.1; }
.stage-icon-grid i:nth-child(3n){ color:var(--gold); opacity:.09; }
.stage-icon-grid i:nth-child(5n){ color:var(--nebula-magenta); opacity:.08; }
.stage-curtain{ position:absolute; inset:0; background:radial-gradient(ellipse 70% 60% at 50% 30%, rgba(7,9,16,0), rgba(7,9,16,.75) 80%); pointer-events:none; }
.stage-card{ position:relative; z-index:2; max-width:920px; margin:0 auto; padding:var(--sp-6) var(--sp-5); text-align:center; background:linear-gradient(180deg, rgba(26,34,56,.55), rgba(13,17,25,.85)); border:1px solid var(--surface-border); border-radius:var(--r-xl); backdrop-filter:blur(20px); box-shadow:var(--shadow-lg); }
.stage-actions{ display:flex; flex-wrap:wrap; gap:var(--sp-3); justify-content:center; margin-top:var(--sp-4); }
.stage-tags{ display:flex; flex-wrap:wrap; gap:.6rem; justify-content:center; margin-top:var(--sp-5); }
.stage-tags span{ font-size:.78rem; font-weight:600; letter-spacing:.04em; padding:.5rem 1rem; border-radius:var(--r-pill); border:1px solid var(--surface-border); color:var(--text-muted); }

.stage-thanks{ min-height:56vh; background:var(--gradient-accent); }
.stage-thanks .stage-curtain{ background:radial-gradient(ellipse 80% 70% at 50% 30%, rgba(0,0,0,0), rgba(0,0,0,.28)); }
.stage-card-thanks{ background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.25); }
.stage-card-thanks h1, .stage-card-thanks p, .stage-card-thanks .eyebrow{ color:#fff; }


.gallery{ padding:var(--sp-7) 0; position:relative; }
.gallery-intro{ padding-top:var(--sp-6); padding-bottom:var(--sp-6); }
.gallery-cta{ position:relative; background:var(--gradient-accent); overflow:hidden; padding:var(--sp-6) 0; }
.gallery-cta .stage-curtain{ background:radial-gradient(ellipse 90% 70% at 50% 0%, rgba(255,255,255,.14), transparent 60%); }
.cta-inner{ position:relative; z-index:2; text-align:center; }
.cta-inner h2, .cta-inner p{ color:#fff; }
.cta-inner .body-lede{ color:rgba(255,255,255,.86); }


.shelf{ display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:var(--sp-4); margin-top:var(--sp-5); }
.shelf-card-wrap{ container-type:inline-size; container-name:card; }
.shelf-card{ height:100%; display:flex; flex-direction:column; gap:var(--sp-2); padding:var(--sp-4); background:linear-gradient(160deg, var(--void-2), var(--void-1)); border:1px solid var(--surface-border); border-radius:var(--r-lg); box-shadow:var(--shadow-md); transition:transform .4s var(--ease), box-shadow .4s var(--ease), border-color .4s var(--ease); }
.shelf-card:hover{ transform:translateY(-8px); border-color:var(--surface-border-strong); box-shadow:var(--shadow-lg); }
.shelf-icon{ width:56px; height:56px; border-radius:var(--r-md); display:flex; align-items:center; justify-content:center; font-size:1.5rem; color:var(--nebula-blue-soft); background:rgba(95,139,240,.1); border:1px solid rgba(95,139,240,.2); flex:0 0 auto; }
.shelf-icon-gold{ color:var(--gold-soft); background:rgba(242,194,101,.1); border-color:rgba(242,194,101,.25); }
.shelf-body h3{ font-size:1.35rem; margin-bottom:.4em; }
.shelf-body p{ font-size:.95rem; margin-bottom:0; }
.shelf-link{ display:inline-flex; align-items:center; gap:.4rem; margin-top:.8rem; color:var(--gold-soft); font-weight:600; font-size:.88rem; transition:gap .3s var(--ease), color .3s var(--ease); }
.shelf-link:hover{ gap:.7rem; color:var(--gold); }

@container card (min-width: 380px){
  .shelf-card{ flex-direction:row; align-items:flex-start; }
}

.shelf-formats .shelf-card, .shelf-values .shelf-card, .shelf-levels .shelf-card, .shelf-contact-cards .shelf-card{ }


.gallery-zigzag{ padding-top:var(--sp-6); }
.zigzag-row{ display:flex; align-items:center; gap:var(--sp-6); max-width:1240px; margin:0 auto var(--sp-7); padding:0 var(--sp-4); }
.zigzag-row:last-child{ margin-bottom:0; }
.zigzag-reverse{ flex-direction:row-reverse; }
.zigzag-media{ flex:1 1 46%; border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--shadow-lg); border:1px solid var(--surface-border); }
.zigzag-media img{ width:100%; height:100%; object-fit:cover; aspect-ratio:4/3; }
.zigzag-text{ flex:1 1 46%; }
.zigzag-text h3{ font-size:clamp(1.5rem,2.6vw,2.1rem); margin-bottom:.5em; }


.benefits-layout{ display:flex; align-items:center; gap:var(--sp-6); }
.benefits-layout-reverse{ flex-direction:row-reverse; }
.benefits-media{ flex:1 1 44%; border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--shadow-lg); border:1px solid var(--surface-border); }
.benefits-media img{ width:100%; height:100%; object-fit:cover; aspect-ratio:4/3; }
.benefits-content{ flex:1 1 50%; }
.check-list{ display:flex; flex-direction:column; gap:var(--sp-3); margin-top:var(--sp-4); }
.check-list li{ display:flex; align-items:flex-start; gap:.9rem; }
.check-list i{ color:var(--gold-soft); font-size:1.2rem; margin-top:.2rem; flex:0 0 auto; }


.legal-copy h2{ font-size:1.6rem; margin-top:1.6em; }
.legal-copy p{ font-size:1rem; }


.spotlight{ margin:0; padding:var(--sp-5); border-left:3px solid var(--gold-soft); background:rgba(242,194,101,.06); border-radius:var(--r-md); }
.spotlight p{ font-family:'Cormorant Garamond',serif; font-size:clamp(1.3rem,2vw,1.7rem); font-style:italic; color:var(--text-primary); margin-bottom:.6em; }
.spotlight cite{ font-size:.85rem; color:var(--text-muted); font-style:normal; }


.form-compact{ margin-top:var(--sp-5); background:linear-gradient(160deg, var(--void-2), var(--void-1)); border:1px solid var(--surface-border); border-radius:var(--r-lg); padding:var(--sp-4); box-shadow:var(--shadow-md); }
.form-row{ display:flex; gap:var(--sp-3); align-items:flex-start; }
.form-field{ flex:1; display:flex; flex-direction:column; gap:.4rem; }
.form-field-message{ flex:1.6; }
label{ font-size:.85rem; font-weight:600; color:var(--text-secondary); }
input[type=text], input[type=email], textarea{ background:rgba(255,255,255,.03); border:1px solid var(--surface-border); border-radius:var(--r-sm); padding:.75rem .9rem; color:var(--text-primary); font-family:inherit; font-size:.95rem; transition:border-color .3s var(--ease), box-shadow .3s var(--ease); min-height:44px; }
textarea{ resize:vertical; min-height:44px; }
input:focus, textarea:focus{ outline:none; border-color:var(--nebula-blue-soft); box-shadow:0 0 0 3px rgba(95,139,240,.18); }
.form-row-submit{ margin-top:var(--sp-3); align-items:center; justify-content:space-between; flex-wrap:wrap; gap:var(--sp-3); }
.form-checkbox{ display:flex; align-items:flex-start; gap:.6rem; font-size:.85rem; color:var(--text-muted); font-weight:400; max-width:520px; }
.form-checkbox input{ margin-top:.25rem; width:18px; height:18px; flex:0 0 auto; accent-color:var(--nebula-blue); }
.form-checkbox a{ color:var(--gold-soft); text-decoration:underline; }


.map-frame{ width:100%; height:400px; border-radius:var(--r-lg); overflow:hidden; border:1px solid var(--surface-border); box-shadow:var(--shadow-lg); }


.canvas-footer{ background:var(--void-1); border-top:1px solid var(--surface-border); padding-top:var(--sp-6); margin-top:auto; }
.footer-top{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:var(--sp-5); padding-bottom:var(--sp-5); }
.footer-logo{ width:38px; height:38px; margin-bottom:.6rem; }
.footer-tagline{ font-family:'Cormorant Garamond',serif; font-weight:700; font-size:1.2rem; color:var(--text-primary); margin-bottom:.5rem; }
.footer-desc{ font-size:.9rem; }
.footer-links h4, .footer-contact h4{ color:var(--text-primary); font-family:'Manrope',sans-serif; font-size:.9rem; text-transform:uppercase; letter-spacing:.1em; margin-bottom:var(--sp-2); }
.footer-links a{ display:block; font-size:.92rem; color:var(--text-secondary); padding:.35rem 0; transition:color .3s var(--ease); }
.footer-links a:hover{ color:var(--gold-soft); }
.footer-contact p{ font-size:.9rem; display:flex; gap:.5rem; align-items:flex-start; margin-bottom:.6em; }
.footer-contact i{ color:var(--nebula-blue-soft); margin-top:.2rem; }
.footer-bottom{ border-top:1px solid var(--surface-border); padding:var(--sp-3) var(--sp-4); text-align:center; }
.footer-bottom p{ font-size:.8rem; color:var(--text-muted); margin:0; }


.drawer-cookie{ position:fixed; left:0; right:0; bottom:0; z-index:300; background:rgba(10,13,22,.97); border-top:1px solid var(--surface-border-strong); backdrop-filter:blur(18px); box-shadow:0 -14px 40px -18px rgba(0,0,0,.7); padding:var(--sp-3) var(--sp-4); transition:transform .4s var(--ease); }
.drawer-cookie-row{ display:flex; align-items:center; justify-content:space-between; gap:var(--sp-4); flex-wrap:wrap; }
.drawer-cookie-text{ font-size:.85rem; color:var(--text-secondary); margin:0; max-width:640px; }
.drawer-cookie-text a{ color:var(--gold-soft); text-decoration:underline; }
.drawer-cookie-actions{ display:flex; gap:.7rem; flex-wrap:wrap; }
.drawer-cookie-panel{ max-height:0; overflow:hidden; display:flex; align-items:center; gap:var(--sp-4); flex-wrap:wrap; transition:max-height .4s var(--ease), padding .4s var(--ease); }
.drawer-cookie.banner-expanded .drawer-cookie-panel{ max-height:200px; padding-top:var(--sp-3); border-top:1px solid var(--surface-border); margin-top:var(--sp-3); }
.cookie-toggle{ display:flex; align-items:center; gap:.5rem; font-size:.85rem; color:var(--text-secondary); font-weight:500; }
.cookie-toggle input{ width:18px; height:18px; accent-color:var(--nebula-blue); }


@media (max-width: 980px){
  .nav-links{ display:none; }
  .nav-toggle{ display:flex; }
  .footer-top{ grid-template-columns:1fr 1fr; }
  .zigzag-row, .zigzag-reverse{ flex-direction:column; }
  .benefits-layout, .benefits-layout-reverse{ flex-direction:column; }
  .form-row{ flex-direction:column; }
  .form-field-message{ flex:1; width:100%; }
}

@media (max-width: 640px){
  .footer-top{ grid-template-columns:1fr; }
  .drawer-cookie-row{ flex-direction:column; align-items:flex-start; }
  .drawer-cookie-actions{ width:100%; }
  .drawer-cookie-actions .btn{ flex:1; justify-content:center; }
  .stage-card{ padding:var(--sp-5) var(--sp-3); }
  .drawer-grid{ grid-template-columns:1fr 1fr; gap:var(--sp-2); }
  .form-row-submit{ flex-direction:column; align-items:flex-start; }
  .map-frame{ height:280px; }
}

@media (max-width: 420px){
  .stage-tags span{ font-size:.7rem; }
}