@import url('https://fonts.googleapis.com/css2?family=Libre+Baskerville:wght@400;700&family=DM+Sans:wght@400;500;600&display=swap');

@layer reset, tokens, layout, components, utilities;

@layer reset {
  *,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
  html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;overflow-x:hidden;}
  body{min-height:100vh;font-family:'DM Sans',sans-serif;overflow-x:hidden;}
  img{max-width:100%;display:block;}
  a{color:inherit;text-decoration:none;}
  button{font:inherit;cursor:pointer;border:none;background:none;color:inherit;}
  ul{list-style:none;}
  input,textarea,select{font:inherit;width:100%;}
  h1,h2,h3,h4{font-family:'Libre Baskerville',serif;font-weight:700;line-height:1.2;}
  p{line-height:1.7;}
}

@layer tokens {
  :root{
    --clr-bg: #0f0d1a;
    --clr-bg-2: #171327;
    --clr-surface-dark: #1d1830;
    --clr-surface-dark-2: #241f3d;
    --clr-bg-light: #faf7f1;
    --clr-bg-light-2: #f1ecdf;
    --clr-ink: #241f38;
    --clr-ink-soft: #5b5570;
    --clr-paper: #f6f2ea;
    --clr-paper-soft: #c7c1dc;

    --clr-gold: #e3b158;
    --clr-gold-soft: #f0cd8c;
    --clr-violet: #8a6df5;
    --clr-violet-soft: #b2a0ff;
    --clr-teal: #3fd0bd;

    --sh-gold: 0 10px 40px -10px rgba(227,177,88,.45), 0 2px 10px rgba(227,177,88,.2);
    --sh-violet: 0 10px 40px -10px rgba(138,109,245,.45), 0 2px 10px rgba(138,109,245,.2);
    --sh-teal: 0 10px 40px -10px rgba(63,208,189,.4), 0 2px 10px rgba(63,208,189,.2);
    --sh-dark: 0 24px 60px -24px rgba(0,0,0,.65), 0 6px 18px rgba(0,0,0,.35);
    --sh-light: 0 18px 44px -16px rgba(36,31,56,.16), 0 4px 14px rgba(36,31,56,.08);

    --r-sm: 10px;
    --r-md: 18px;
    --r-lg: 26px;
    --r-xl: 34px;
    --r-pill: 999px;

    --sec-pad: clamp(4rem, 7vw, 7.5rem);
    --gap: clamp(1.5rem, 3vw, 3rem);
    --container: 1240px;

    --fs-hero: clamp(2.6rem, 4vw + 1.3rem, 5.2rem);
    --fs-h2: clamp(1.9rem, 1.6vw + 1.3rem, 2.9rem);
    --fs-h3: clamp(1.2rem, 0.6vw + 1rem, 1.5rem);

    --ease: cubic-bezier(.25,.9,.3,1);
  }
}

@layer layout {
  .sec-inner, .hero-inner, .page-hero-inner, .ftr-inner, .hdr-inner{
    max-width: var(--container);
    margin: 0 auto;
    padding-inline: clamp(1.25rem, 4vw, 2.5rem);
  }
  .sec{padding-block: var(--sec-pad); position:relative;}
  .sec--dark{background:var(--clr-bg); color: var(--clr-paper);}
  .sec--light{background:var(--clr-bg-light); color: var(--clr-ink);}
  .sec--cta{background:var(--clr-bg-2); padding-block: clamp(3rem,6vw,6rem);}
  .sec-split{display:grid; grid-template-columns: 1fr 1fr; gap: var(--gap); align-items:center;}
  .sec-split--rev .sec-media{order:2;}
  .sec-split--rev .sec-txt{order:1;}
  .sec-narrow{max-width:800px; margin-inline:auto;}
  @media (max-width: 860px){
    .sec-split{grid-template-columns:1fr;}
    .sec-split--rev .sec-media{order:1;}
    .sec-split--rev .sec-txt{order:2;}
  }
}

@layer components {

  
  .cke-bar{
    display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:1rem;
    background: var(--clr-surface-dark); color: var(--clr-paper-soft);
    padding: .75rem clamp(1rem,4vw,2rem);
    font-size:.85rem;
    max-height:200px; overflow:hidden;
    transition: max-height .5s var(--ease), padding .5s var(--ease), opacity .4s ease;
  }
  .cke-bar.cke-hidden{max-height:0; padding-block:0; opacity:0; pointer-events:none;}
  .cke-bar a{color:var(--clr-gold-soft); text-decoration:underline;}
  .cke-actions{display:flex; gap:.6rem; flex-shrink:0;}
  .cke-btn{padding:.5rem 1.1rem; border-radius: var(--r-sm); font-size:.8rem; font-weight:600; transition:all .3s var(--ease);}
  .cke-btn--accept{background:var(--clr-gold); color:#241a05;}
  .cke-btn--accept:hover{background:var(--clr-gold-soft); box-shadow: var(--sh-gold); transform:translateY(-2px);}
  .cke-btn--reject{background:transparent; border:1px solid rgba(246,242,234,.3); color:var(--clr-paper-soft);}
  .cke-btn--reject:hover{border-color:var(--clr-paper-soft); background:rgba(246,242,234,.06);}

  
  .hdr{
    position: sticky; top:0; z-index:100;
    background: transparent;
    transition: transform .5s var(--ease), background .35s ease, box-shadow .35s ease, opacity .35s ease;
  }
  .hdr-inner{display:flex; align-items:center; gap:1.5rem; padding-block:1.1rem;}
  .hdr.is-solid{background: rgba(15,13,26,.92); backdrop-filter: blur(10px); box-shadow: 0 4px 30px rgba(0,0,0,.35);}
  .hdr.is-hidden{transform: translateY(-110%); opacity:0; pointer-events:none;}
  .hdr-logo{display:flex; align-items:center; gap:.6rem; font-family:'Libre Baskerville',serif; font-weight:700; font-size:1.15rem; color:var(--clr-paper);}
  .hdr-logo img{width:36px; height:36px;}
  .hdr-nav{display:flex; gap:1.9rem; margin-inline:auto;}
  .hdr-nav a{position:relative; font-size:.95rem; font-weight:500; color:var(--clr-ink); padding:.3rem 0; transition:color .3s ease;}
  .hdr-nav a::after{content:''; position:absolute; left:0; bottom:-2px; width:0; height:2px; background: var(--clr-gold); transition: width .35s var(--ease);}
  .hdr-nav a:hover, .hdr-nav a.is-active{color:var(--clr-ink);}
  .hdr-nav a:hover::after, .hdr-nav a.is-active::after{width:100%;}
  .hdr-cta{
    background: var(--clr-gold); color:#241a05; padding:.7rem 1.4rem; border-radius: var(--r-pill);
    font-weight:600; font-size:.9rem; white-space:nowrap; box-shadow: var(--sh-gold);
    transition: transform .3s var(--ease), box-shadow .3s var(--ease), background .3s ease;
  }
  .hdr-cta:hover{transform: translateY(-2px) scale(1.02); background:var(--clr-gold-soft);}
  .hdr-burger{display:none; font-size:1.3rem; color:var(--clr-paper); width:44px; height:44px; align-items:center; justify-content:center;}

  @media (max-width: 900px){
    .hdr-nav{display:none;}
    .hdr-cta{display:none;}
    .hdr-burger{display:flex;}
  }

  
  .nav-pill{
    position: fixed; top:1.2rem; left:50%; transform: translateX(-50%) translateY(-140%);
    z-index:120; background: var(--clr-gold); border-radius: var(--r-pill);
    box-shadow: var(--sh-gold), var(--sh-dark);
    opacity:0; transition: transform .45s var(--ease), opacity .4s ease;
  }
  .nav-pill.is-visible{transform: translateX(-50%) translateY(0); opacity:1;}
  .nav-pill button{width:52px; height:52px; display:flex; align-items:center; justify-content:center; font-size:1.2rem; color:#241a05; border-radius:var(--r-pill); transition: background .3s ease;}
  .nav-pill button:hover{background: rgba(0,0,0,.08);}

  
  .offcanvas{position:fixed; inset:0; z-index:200; visibility:hidden; pointer-events:none;}
  .offcanvas.is-open{visibility:visible; pointer-events:auto;}
  .offcanvas-overlay{position:absolute; inset:0; background: rgba(10,8,18,.55); opacity:0; transition:opacity .4s ease;}
  .offcanvas.is-open .offcanvas-overlay{opacity:1;}
  .offcanvas-panel{
    position:absolute; top:0; left:0; height:100%; width:80%; max-width:360px;
    background: var(--clr-surface-dark); box-shadow: 20px 0 60px rgba(0,0,0,.5);
    transform: translateX(-100%); transition: transform .5s var(--ease);
    padding: 2rem 1.75rem; display:flex; flex-direction:column;
  }
  .offcanvas.is-open .offcanvas-panel{transform: translateX(0);}
  .offcanvas-close{align-self:flex-end; font-size:1.3rem; color:var(--clr-paper); width:44px; height:44px; display:flex; align-items:center; justify-content:center;}
  .offcanvas-nav{display:flex; flex-direction:column; gap:.4rem; margin-top:1.5rem;}
  .offcanvas-nav a{
    color: var(--clr-paper-soft); font-size:1.15rem; padding:.8rem .4rem; border-radius: var(--r-sm);
    opacity:0; transform: translateX(-24px); transition: opacity .4s ease, color .3s ease, background .3s ease;
  }
  .offcanvas.is-open .offcanvas-nav a{
    animation: slideIn .5s var(--ease) forwards; animation-delay: calc(var(--d) * 80ms + 120ms);
  }
  @keyframes slideIn{ to{ opacity:1; transform:translateX(0); } }
  .offcanvas-nav a:hover{color:var(--clr-gold-soft); background: rgba(227,177,88,.08);}
  .offcanvas-cta{
    margin-top:auto; text-align:center; background:var(--clr-gold); color:#241a05; padding:.9rem;
    border-radius: var(--r-pill); font-weight:600; box-shadow: var(--sh-gold);
  }

  
  .hero{padding-block: clamp(3rem, 8vw, 6rem) clamp(2rem,5vw,3rem); background: linear-gradient(180deg, var(--clr-bg) 0%, var(--clr-bg-2) 100%); color: var(--clr-paper); position:relative; overflow:hidden;}
  .hero::before{
    content:''; position:absolute; top:-20%; right:-10%; width:600px; height:600px; border-radius:50%;
    background: radial-gradient(circle, rgba(138,109,245,.25), transparent 70%); filter: blur(20px);
  }
  .hero-h{font-size: var(--fs-hero); max-width: 62%; letter-spacing:-.01em;}
  .hero-h em{font-style:italic; color: var(--clr-gold-soft);}
  .hero-side{display:flex; justify-content:flex-end; gap:2rem; margin-top: 3rem; flex-wrap:wrap;}
  .hero-img-card{
    width: 280px; border-radius: var(--r-lg); overflow:hidden; box-shadow: var(--sh-violet), var(--sh-dark);
    border: 1px solid rgba(178,160,255,.25);
  }
  .hero-img-card img{aspect-ratio: 4/5; object-fit:cover; transition: transform .6s var(--ease);}
  .hero-img-card:hover img{transform: scale(1.06);}
  .hero-copy{max-width:340px; display:flex; flex-direction:column; justify-content:flex-end; gap:1.5rem;}
  .hero-copy p{color: var(--clr-paper-soft); font-size:1.02rem;}
  .hero-cta{display:flex; flex-direction:column; gap:.9rem;}
  @media (max-width: 900px){
    .hero-h{max-width:100%;}
    .hero-side{justify-content:flex-start;}
  }

  
  .btn{
    display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
    padding: .9rem 1.7rem; border-radius: var(--r-pill); font-weight:600; font-size:.95rem;
    transition: transform .35s var(--ease), box-shadow .35s var(--ease), background .3s ease, color .3s ease;
    min-height:48px;
  }
  .btn--gold{background: var(--clr-gold); color:#241a05; box-shadow: var(--sh-gold);}
  .btn--gold:hover{transform: translateY(-3px); background: var(--clr-gold-soft); box-shadow: 0 16px 50px -12px rgba(227,177,88,.6);}
  .btn--gold-lg{background: var(--clr-gold); color:#241a05; box-shadow: var(--sh-gold); padding:1rem 2.2rem;}
  .btn--gold-lg:hover{transform: translateY(-3px); background: var(--clr-gold-soft); box-shadow: 0 18px 55px -12px rgba(227,177,88,.6);}
  .btn--ghost-dark{background:transparent; border:1.5px solid rgba(246,242,234,.35); color: var(--clr-paper);}
  .btn--ghost-dark:hover{border-color: var(--clr-gold-soft); color: var(--clr-gold-soft); background: rgba(227,177,88,.06);}
  .btn--ghost-light{background:transparent; border:1.5px solid rgba(36,31,56,.3); color: var(--clr-ink);}
  .btn--ghost-light:hover{border-color: var(--clr-ink); background: rgba(36,31,56,.06);}
  .btn--outline-white{background:transparent; border:2px solid #fff; color:#fff;}
  .btn--outline-white:hover{background:#fff; color: var(--clr-bg); transform: translateY(-3px);}

  
  .strip{height:10px; background: repeating-linear-gradient(115deg, var(--clr-gold) 0 18px, var(--clr-violet) 18px 36px, var(--clr-teal) 36px 54px);}
  .strip--alt{background: repeating-linear-gradient(115deg, var(--clr-teal) 0 18px, var(--clr-gold) 18px 36px, var(--clr-violet) 36px 54px);}

  
  .eyebrow{display:inline-block; text-transform:uppercase; letter-spacing:.14em; font-size:.78rem; font-weight:600; color: var(--clr-gold-soft); margin-bottom:.9rem;}
  .eyebrow--dark{color:#a3762e;}
  .sec-title{font-size: var(--fs-h2); margin-bottom:1.2rem; color: var(--clr-paper);}
  .sec-title--dark{color: var(--clr-ink);}
  .sec-lead{max-width:680px; color: var(--clr-ink-soft); font-size:1.05rem; margin-bottom:2.5rem;}
  .sec-txt p{color: var(--clr-paper-soft); margin-bottom:1rem;}
  .sec--light .sec-txt p{color: var(--clr-ink-soft);}
  .sec-media img{border-radius: var(--r-lg); box-shadow: var(--sh-dark); aspect-ratio: 4/3; object-fit:cover;}

  
  .masonry{columns: 3 260px; column-gap: var(--gap); margin-top:1rem;}
  .crd{
    break-inside: avoid; margin-bottom: var(--gap); padding: 2rem 1.7rem; border-radius: var(--r-lg);
    background: #fff; position:relative; box-shadow: var(--sh-light);
    border: 1px solid rgba(36,31,56,.06);
    transition: transform .4s var(--ease), box-shadow .4s var(--ease);
  }
  .crd:hover{transform: translateY(-6px);}
  .crd--gold:hover{box-shadow: var(--sh-gold), var(--sh-light);}
  .crd--violet:hover{box-shadow: var(--sh-violet), var(--sh-light);}
  .crd--teal:hover{box-shadow: var(--sh-teal), var(--sh-light);}
  .crd-ico{width:52px; height:52px; border-radius: var(--r-md); display:flex; align-items:center; justify-content:center; font-size:1.25rem; margin-bottom:1.2rem;}
  .crd--gold .crd-ico{background: rgba(227,177,88,.14); color:#a3762e;}
  .crd--violet .crd-ico{background: rgba(138,109,245,.14); color:#5c3fd6;}
  .crd--teal .crd-ico{background: rgba(63,208,189,.14); color:#1a8f7d;}
  .crd-title{font-size:1.2rem; margin-bottom:.7rem; color: var(--clr-ink);}
  .crd-txt{color: var(--clr-ink-soft); font-size:.96rem;}
  @media (max-width: 700px){ .masonry{columns:1;} }

  
  .steps{display:grid; grid-template-columns: repeat(4,1fr); gap: var(--gap); margin-top:2.5rem;}
  .step{
    background: var(--clr-surface-dark); padding: 2rem 1.6rem; border-radius: var(--r-lg);
    border: 1px solid rgba(178,160,255,.12); box-shadow: var(--sh-dark);
    transition: transform .4s var(--ease), box-shadow .4s var(--ease), border-color .4s ease;
  }
  .step:hover{transform: translateY(-6px); box-shadow: var(--sh-violet), var(--sh-dark); border-color: rgba(178,160,255,.35);}
  .step-num{display:block; font-family:'Libre Baskerville',serif; font-size:2rem; color: var(--clr-gold-soft); margin-bottom:.8rem;}
  .step h3{font-size:1.1rem; margin-bottom:.6rem; color: var(--clr-paper);}
  .step p{color: var(--clr-paper-soft); font-size:.94rem;}
  @media (max-width: 950px){ .steps{grid-template-columns:1fr 1fr;} }
  @media (max-width: 560px){ .steps{grid-template-columns:1fr;} }

  
  .mini-cards{display:grid; grid-template-columns:1fr 1fr; gap:1.1rem; margin-top:1.6rem;}
  .mini-card{
    background:#fff; padding:1.4rem; border-radius: var(--r-md); box-shadow: var(--sh-light);
    display:flex; flex-direction:column; gap:.7rem; transition: transform .35s var(--ease), box-shadow .35s var(--ease);
  }
  .mini-card:hover{transform: translateY(-4px); box-shadow: var(--sh-teal), var(--sh-light);}
  .mini-card i{color: var(--clr-teal); font-size:1.3rem;}
  .mini-card p{font-size:.92rem; color: var(--clr-ink-soft);}
  @media (max-width:560px){ .mini-cards{grid-template-columns:1fr;} }

  
  .faq{display:flex; flex-direction:column; gap:1rem;}
  .faq-item{background: var(--clr-surface-dark); border-radius: var(--r-md); overflow:hidden; border:1px solid rgba(227,177,88,.1);}
  .faq-q{width:100%; display:flex; justify-content:space-between; align-items:center; padding:1.2rem 1.5rem; color: var(--clr-paper); font-weight:600; font-size:1rem; text-align:left;}
  .faq-q i{transition: transform .35s var(--ease); color: var(--clr-gold-soft);}
  .faq-item.is-open .faq-q i{transform: rotate(180deg);}
  .faq-a{max-height:0; overflow:hidden; transition: max-height .4s var(--ease);}
  .faq-a p{padding: 0 1.5rem 1.3rem; color: var(--clr-paper-soft); font-size:.95rem;}
  .faq-item.is-open .faq-a{max-height:300px;}
  .faq-item:hover{border-color: rgba(227,177,88,.35);}

  
  .cta-card{
    background: linear-gradient(145deg, var(--clr-surface-dark), var(--clr-surface-dark-2));
    border-radius: var(--r-xl); padding: clamp(2.5rem, 5vw, 4rem); text-align:center;
    box-shadow: var(--sh-gold), var(--sh-dark); border: 1px solid rgba(227,177,88,.2);
    max-width: 780px; margin-inline:auto;
  }
  .cta-card h2{color: var(--clr-paper); font-size: var(--fs-h2); margin-bottom:1rem;}
  .cta-card p{color: var(--clr-paper-soft); margin-bottom:1.8rem;}
  .cta-card-img{width:120px; height:120px; object-fit:cover; border-radius:var(--r-lg); margin: 0 auto 1.5rem; box-shadow: var(--sh-violet);}
  .cta-actions{display:flex; gap:1rem; justify-content:center; flex-wrap:wrap;}

  
  .page-hero{background: var(--clr-bg); color: var(--clr-paper); padding-block: clamp(4.5rem, 9vw, 7rem) clamp(3rem,6vw,4.5rem);}
  .page-hero h1{font-size: clamp(2.2rem, 3.4vw + 1rem, 3.6rem); margin: .6rem 0 1.2rem;}
  .page-hero p{max-width:640px; color: var(--clr-paper-soft); font-size:1.05rem;}
  .legal-hero{background: var(--clr-bg-light-2); padding-block: clamp(3.5rem,6vw,5rem) 2.5rem;}
  .legal-hero h1{color: var(--clr-ink); font-size: clamp(2rem, 2.6vw + 1rem, 3rem); margin:.6rem 0;}
  .legal-hero p{color: var(--clr-ink-soft);}

  
  .module-list{display:flex; flex-direction:column; gap:1.6rem;}
  .module{
    display:flex; gap:1.8rem; background:#fff; padding: 1.8rem 2rem; border-radius: var(--r-lg);
    box-shadow: var(--sh-light); transition: transform .4s var(--ease), box-shadow .4s var(--ease);
  }
  .module:hover{transform: translateY(-4px); box-shadow: var(--sh-gold), var(--sh-light);}
  .module-num{font-family:'Libre Baskerville',serif; font-size:2.4rem; color: var(--clr-gold-soft); background: var(--clr-ink); width:70px; height:70px; border-radius: var(--r-md); display:flex; align-items:center; justify-content:center; flex-shrink:0;}
  .module-body h2{font-size:1.25rem; margin-bottom:.6rem; color: var(--clr-ink);}
  .module-body p{color: var(--clr-ink-soft); font-size:.96rem; margin-bottom:.8rem;}
  .module-tag{display:inline-flex; align-items:center; gap:.4rem; font-size:.8rem; font-weight:600; color:#a3762e; background: rgba(227,177,88,.14); padding:.35rem .8rem; border-radius: var(--r-pill);}
  @media (max-width:600px){ .module{flex-direction:column;} .module-num{width:56px; height:56px; font-size:1.8rem;} }

  
  .tag-num{display:inline-block; font-family:'Libre Baskerville',serif; font-size:2.8rem; color: rgba(36,31,56,.15); margin-bottom:.4rem;}
  .tag-num--light{color: rgba(246,242,234,.15);}

  
  .mirror-list{display:flex; flex-direction:column; gap:1.2rem; margin-top:2rem;}
  .mirror-item{
    display:flex; gap:1.4rem; align-items:flex-start; background: var(--clr-surface-dark); padding:1.5rem 1.8rem;
    border-radius: var(--r-md); border:1px solid rgba(63,208,189,.15);
    transition: transform .35s var(--ease), box-shadow .35s var(--ease);
  }
  .mirror-item:hover{transform: translateX(6px); box-shadow: var(--sh-teal);}
  .mirror-num{font-family:'Libre Baskerville',serif; font-size:1.6rem; color: var(--clr-teal); flex-shrink:0;}
  .mirror-item p{color: var(--clr-paper-soft);}

  
  .contact-grid{display:grid; grid-template-columns: 0.9fr 1.1fr; gap: var(--gap);}
  .contact-info{display:flex; flex-direction:column; gap:1.3rem;}
  .info-crd{
    display:flex; gap:1.1rem; align-items:flex-start; background:#fff; padding:1.4rem 1.6rem;
    border-radius: var(--r-md); box-shadow: var(--sh-light);
  }
  .info-crd i{font-size:1.3rem; color: var(--clr-gold); margin-top:.2rem;}
  .info-crd h3{font-size:1rem; margin-bottom:.3rem; color: var(--clr-ink);}
  .info-crd p a{color: var(--clr-ink-soft); border-bottom:1px solid transparent; transition: border-color .3s ease, color .3s ease;}
  .info-crd p a:hover{color: var(--clr-ink); border-color: var(--clr-ink);}
  .mission-quote{
    font-family:'Libre Baskerville',serif; font-style:italic; font-size:1.05rem; color: var(--clr-ink);
    border-left: 3px solid var(--clr-gold); padding: .3rem 0 .3rem 1.3rem; line-height:1.6;
  }
  .map-wrap{border-radius: var(--r-lg); overflow:hidden; box-shadow: var(--sh-light); aspect-ratio:4/3;}
  .map-wrap iframe{width:100%; height:100%; border:0;}
  .contact-form-wrap{background:#fff; padding: clamp(1.8rem,4vw,2.6rem); border-radius: var(--r-xl); box-shadow: var(--sh-violet), var(--sh-light);}
  .contact-form-wrap h2{font-size:1.4rem; margin-bottom:1.5rem; color: var(--clr-ink);}
  .frm-row{margin-bottom:1.2rem; display:flex; flex-direction:column; gap:.4rem;}
  .frm-row label{font-size:.88rem; font-weight:600; color: var(--clr-ink-soft);}
  .frm-row input, .frm-row select, .frm-row textarea{
    padding:.8rem 1rem; border-radius: var(--r-sm); border: 1.5px solid rgba(36,31,56,.15);
    background: var(--clr-bg-light); color: var(--clr-ink); transition: border-color .3s ease, box-shadow .3s ease;
  }
  .frm-row input:focus, .frm-row select:focus, .frm-row textarea:focus{
    outline:none; border-color: var(--clr-gold); box-shadow: 0 0 0 4px rgba(227,177,88,.16);
  }
  .frm-check{flex-direction:row; align-items:flex-start; gap:.7rem;}
  .frm-check input{width:20px; height:20px; flex-shrink:0; accent-color: var(--clr-gold); margin-top:.2rem;}
  .frm-check label{font-size:.85rem; font-weight:400;}
  .frm-check label a{text-decoration:underline;}
  .frm-submit{width:100%; margin-top:.5rem;}
  @media (max-width:900px){ .contact-grid{grid-template-columns:1fr;} }

  
  .legal-doc{max-width:880px; margin-inline:auto;}
  .legal-doc h2{font-size:1.35rem; margin: 2.2rem 0 .9rem; color: var(--clr-ink);}
  .legal-doc h2:first-child{margin-top:0;}
  .legal-doc p{color: var(--clr-ink-soft); margin-bottom:1rem;}
  .legal-table{width:100%; border-collapse:collapse; margin:1.2rem 0 1.8rem; box-shadow: var(--sh-light); border-radius: var(--r-md); overflow:hidden;}
  .legal-table th, .legal-table td{padding:.9rem 1.1rem; text-align:left; font-size:.9rem; border-bottom:1px solid rgba(36,31,56,.08);}
  .legal-table th{background: var(--clr-ink); color: var(--clr-paper); font-weight:600;}
  .legal-table tbody tr:nth-child(even){background: rgba(36,31,56,.03);}
  .legal-dl{margin: 1rem 0 1.8rem;}
  .legal-dl dt{font-weight:700; font-family:'Libre Baskerville',serif; color: var(--clr-ink); margin-top:1rem;}
  .legal-dl dd{color: var(--clr-ink-soft); margin-left:1rem; margin-top:.2rem;}

  
  .thanks-hero{
    min-height:70vh; display:flex; align-items:center; justify-content:center; text-align:center;
    background: radial-gradient(circle at 30% 20%, #3a2d6b, var(--clr-bg) 60%);
    color:#fff; padding: 4rem 1.5rem;
  }
  .thanks-inner{max-width:560px;}
  .thanks-ico{font-size:3rem; color: var(--clr-gold-soft); margin-bottom:1.2rem;}
  .thanks-hero h1{font-size: clamp(2.4rem, 4vw + 1rem, 4rem); margin-bottom:1.2rem;}
  .thanks-hero p{color: rgba(255,255,255,.85); margin-bottom:2rem; font-size:1.1rem;}

  
  .ftr{background: var(--clr-bg); color: var(--clr-paper-soft); margin-top:auto;}
  .ftr-inner{display:grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap: var(--gap); padding-block: clamp(3rem,6vw,4.5rem) 2.5rem;}
  .ftr-col h4{color: var(--clr-paper); font-size:1rem; margin-bottom:1rem; font-family:'Libre Baskerville',serif;}
  .ftr-col a{display:block; margin-bottom:.6rem; font-size:.92rem; transition: color .3s ease, padding-left .3s ease;}
  .ftr-col a:hover{color: var(--clr-gold-soft); padding-left:4px;}
  .ftr-logo{width:40px; height:40px; margin-bottom:1rem;}
  .ftr-brand p{font-size:.9rem; max-width:280px;}
  .ftr-col p{font-size:.9rem; margin-bottom:.6rem;}
  .ftr-bottom{border-top:1px solid rgba(246,242,234,.08); text-align:center; padding: 1.4rem; font-size:.82rem;}
  @media (max-width:900px){ .ftr-inner{grid-template-columns:1fr 1fr;} }
  @media (max-width:560px){ .ftr-inner{grid-template-columns:1fr;} }

  
  .back-top{
    position:fixed; bottom:1.6rem; right:1.6rem; width:52px; height:52px; border-radius:50%;
    background: var(--clr-gold); color:#241a05; display:flex; align-items:center; justify-content:center;
    box-shadow: var(--sh-gold), var(--sh-dark); font-size:1.1rem; z-index:90;
    opacity:0; transform: translateY(20px) scale(.8); pointer-events:none;
    transition: opacity .4s var(--ease), transform .4s var(--ease), background .3s ease;
  }
  .back-top.is-visible{opacity:1; transform: translateY(0) scale(1); pointer-events:auto;}
  .back-top:hover{background: var(--clr-gold-soft);}
}

@layer utilities {
  .text-center{text-align:center;}
  .mt-0{margin-top:0;}
}