  :root{
    --charcoal:#1C1E21; --charcoal-light:#26292E; --navy:#0D2943; --navy-light:#15385A;
    --gold:#C6A55A; --gold-light:#DCC48A; --steel:#90969C; --white:#FFFFFF; --off-white:#F7F6F3;
    --line: rgba(255,255,255,0.12); --line-dark: rgba(13,13,17,0.1);
    --serif:'Fraunces', Georgia, serif; --sans:'Inter', -apple-system, sans-serif;
  }
  *{margin:0;padding:0;box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{ font-family:var(--sans); background:var(--off-white); color:var(--charcoal); line-height:1.6; overflow-x:hidden; }
  @media (prefers-reduced-motion: reduce){ *{animation-duration:0.01ms !important; transition-duration:0.01ms !important; scroll-behavior:auto !important;} }
  a{ color:inherit; text-decoration:none; }
  img{ max-width:100%; display:block; }
  button{ font-family:var(--sans); }
  :focus-visible{ outline:2px solid var(--gold); outline-offset:3px; }
  ::selection{ background:var(--gold); color:var(--charcoal); }
  .wrap{ max-width:1280px; margin:0 auto; padding:0 48px; }
  @media(max-width:900px){ .wrap{ padding:0 24px; } }
  @media(max-width:480px){ .wrap{ padding:0 20px; } }
  h1,h2,h3{ font-family:var(--serif); font-weight:400; letter-spacing:-0.01em; }
  .eyebrow{ font-family:var(--sans); font-size:0.72rem; letter-spacing:0.18em; text-transform:uppercase; font-weight:600; color:var(--gold); display:flex; align-items:center; gap:12px; }
  .eyebrow::before{ content:''; width:28px; height:1px; background:var(--gold); display:inline-block; }
  .section-head{ max-width:700px; margin-bottom:52px; }
  .section-head h2{ font-size:clamp(1.7rem,3vw,2.5rem); margin-top:18px; line-height:1.22; }
  .section-head p{ margin-top:16px; font-size:1rem; font-weight:300; max-width:640px; }
  .section-light .section-head p{ color:#4b4f54; }
  .section-navy .section-head p, .section-charcoal .section-head p{ color:rgba(255,255,255,0.72); }
  .section-light{ background:var(--off-white); color:var(--charcoal); }
  .section-navy{ background:var(--navy); color:var(--white); }
  .section-charcoal{ background:var(--charcoal); color:var(--white); }
  .section-navy .eyebrow, .section-charcoal .eyebrow{ color:var(--gold); }
  section{ padding:110px 0; position:relative; }
  @media(max-width:900px){ section{ padding:72px 0; } }
  .reveal{ opacity:0; transform:translateY(24px); transition:opacity .8s ease, transform .8s ease; }
  .reveal.in{ opacity:1; transform:translateY(0); }

  .btn{ display:inline-flex; align-items:center; gap:10px; padding:15px 28px; font-size:0.8rem; letter-spacing:0.06em; text-transform:uppercase; font-weight:600; border-radius:2px; transition:all .35s ease; cursor:pointer; border:1px solid transparent; white-space:nowrap; }
  .btn-primary{ background:var(--gold); color:var(--charcoal); }
  .btn-primary:hover{ background:var(--gold-light); transform:translateY(-2px); }
  .btn-ghost{ border-color:rgba(255,255,255,0.4); color:var(--white); }
  .btn-ghost:hover{ border-color:var(--gold); color:var(--gold); }
  .btn-ghost.on-light{ border-color:rgba(28,30,33,0.3); color:var(--charcoal); }
  .btn-ghost.on-light:hover{ border-color:var(--navy); color:var(--navy); }
  .btn svg{ width:14px; height:14px; }
  .btn-text{ font-size:0.82rem; font-weight:600; color:var(--gold); border-bottom:1px solid rgba(198,165,90,0.4); padding-bottom:2px; }
  .btn-text:hover{ border-color:var(--gold); }
  
    /* ---------- HEADER ---------- */
  header{
    position:fixed; top:0; left:0; right:0; z-index:1000;
    padding:18px 0;
    background:rgba(255,255,255,0.97);
    backdrop-filter:blur(10px);
    border-bottom:1px solid rgba(13,15,17,0.07);
    transition:box-shadow .4s ease, padding .4s ease;
  }
  header.scrolled{
    padding:12px 0;
    box-shadow:0 8px 30px rgba(13,15,17,0.08);
  }
  header .wrap{ display:flex; align-items:center; justify-content:space-between; }
  .logo{ display:flex; align-items:center; }
  .logo-img{ height:52px; width:auto; display:block; transition:height .4s ease; }
  header.scrolled .logo-img{ height:44px; }

  nav.primary-nav{ display:flex; align-items:center; gap:34px; }
  nav.primary-nav a{
    font-size:0.78rem; letter-spacing:0.06em; text-transform:uppercase;
    color:var(--charcoal); font-weight:500;
    position:relative; padding:4px 0;
    white-space:nowrap;
  }
  nav.primary-nav a::after{
    content:''; position:absolute; left:0; bottom:-2px; width:0; height:1px;
    background:var(--gold); transition:width .3s ease;
  }
  nav.primary-nav a:hover{ color:var(--navy); }
  nav.primary-nav a:hover::after{ width:100%; }
  nav.primary-nav a[aria-current="page"]{ color:var(--navy); font-weight:600; }
  nav.primary-nav a[aria-current="page"]::after{ width:100%; }
  .nav-cta{ display:flex; align-items:center; gap:20px; }

  .menu-toggle{
    display:none; flex-direction:column; justify-content:center; gap:5px;
    background:none; border:none; cursor:pointer; padding:8px;
    width:38px; height:38px; position:relative; z-index:1201;
  }
  .menu-toggle span{
    width:22px; height:1.5px; background:var(--charcoal); display:block;
    transition:transform .35s ease, opacity .35s ease;
  }
  .menu-toggle.active span:nth-child(1){ transform:translateY(6.5px) rotate(45deg); }
  .menu-toggle.active span:nth-child(2){ opacity:0; }
  .menu-toggle.active span:nth-child(3){ transform:translateY(-6.5px) rotate(-45deg); }

  @media(max-width:960px){
    nav.primary-nav{ display:none; }
    .menu-toggle{ display:flex; }
    .nav-cta .btn{ display:none; }
  }

  /* ---------- MOBILE NAV PANEL ---------- */
  .mobile-nav{
    position:fixed; top:0; right:0; height:100%; width:min(320px, 84vw);
    background:#0F1113; z-index:1200;
    padding:110px 36px 40px;
    display:flex; flex-direction:column; gap:6px;
    transform:translateX(100%);
    transition:transform .45s cubic-bezier(.25,.8,.25,1);
    box-shadow:-8px 0 40px rgba(0,0,0,0.35);
  }
  .mobile-nav.open{ transform:translateX(0); }
  .mobile-nav nav{ display:flex; flex-direction:column; gap:4px; margin-bottom:36px; }
  .mobile-nav nav a{
    color:rgba(255,255,255,0.85); font-size:1rem; padding:14px 0;
    border-bottom:1px solid rgba(255,255,255,0.08);
    letter-spacing:0.03em;
  }
  .mobile-nav nav a:hover{ color:var(--gold); }
  .mobile-nav nav a[aria-current="page"]{ color:var(--gold); }
  .mobile-nav-scrim{
    position:fixed; inset:0; background:rgba(8,9,10,0.55);
    backdrop-filter:blur(2px);
    z-index:1150; opacity:0; visibility:hidden;
    transition:opacity .4s ease, visibility .4s ease;
  }
  .mobile-nav-scrim.open{ opacity:1; visibility:visible; }
  body.nav-locked{ overflow:hidden; }
  
    /* ---------- FOOTER ---------- */
  footer{ background:#0B0C0E; color:rgba(255,255,255,0.55); padding:70px 0 30px; }
  .footer-top{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:50px; padding-bottom:50px; border-bottom:1px solid rgba(255,255,255,0.08); }
  @media(max-width:900px){ .footer-top{ grid-template-columns:1fr 1fr; } }
  .footer-brand .logo-plate{
    display:inline-flex; background:var(--off-white);
    padding:12px 18px; border-radius:2px;
  }
  .footer-brand .logo-plate img{ height:46px; width:auto; display:block; }
  .footer-brand p{ font-size:0.85rem; margin-top:18px; max-width:280px; font-weight:300; }
  .footer-col h5{ font-size:0.72rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--gold); margin-bottom:20px; }
  .footer-col a{ display:block; font-size:0.86rem; margin-bottom:12px; color:rgba(255,255,255,0.6); transition:color .3s; }
  .footer-col a:hover{ color:var(--white); }
  .footer-bottom{ display:flex; justify-content:space-between; padding-top:28px; font-size:0.76rem; flex-wrap:wrap; gap:12px; }

  ::selection{ background:var(--gold); color:var(--charcoal); }