
  :root{
    --ink:#0F1B33;
    --navy:#16264A;
    --navy-mid:#24365F;
    --navy-soft:#3A4E80;
    --gold:#C9972B;
    --gold-light:#E4C67A;
    --gold-pale:#F1E4C3;
    --cream:#F8F5EE;
    --paper:#FFFFFF;
    --charcoal:#3A3A3A;
    --line:#E4DECE;
    --max:1180px;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--cream);
    color:var(--charcoal);
    font-family:'Inter',sans-serif;
    font-size:16px;
    line-height:1.65;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,h4{
    font-family:'Fraunces',serif;
    color:var(--ink);
    margin:0;
    line-height:1.08;
    font-weight:600;
  }
  p{margin:0;}
  a{color:inherit;text-decoration:none;}
  img{max-width:100%;display:block;}
  .wrap{max-width:var(--max);margin:0 auto;padding:0 32px;}
  .eyebrow{
    font-family:'Inter',sans-serif;
    font-size:12.5px;
    font-weight:700;
    letter-spacing:0.22em;
    text-transform:uppercase;
    color:var(--gold);
    display:flex;
    align-items:center;
    gap:12px;
  }
  .eyebrow::before{
    content:"";
    width:26px;
    height:1px;
    background:var(--gold);
    display:inline-block;
  }
  :focus-visible{outline:2px solid var(--gold);outline-offset:3px;}

  /* ---------- NAV ---------- */
  header.site{
    position:sticky;top:0;z-index:50;
    background:rgba(248,245,238,0.92);
    backdrop-filter:blur(8px);
    border-bottom:1px solid var(--line);
  }
  .nav{
    display:flex;align-items:center;justify-content:space-between;
    padding:14px 32px;max-width:var(--max);margin:0 auto;
  }
  .nav .brand{display:flex;align-items:center;gap:12px;}
  .nav .brand img{height:44px;width:auto;}
  .nav-links{display:flex;align-items:center;gap:34px;}
  .nav-links a{
    font-size:14px;font-weight:600;color:var(--navy);
    position:relative;padding:4px 0;
  }
  .nav-links a::after{
    content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;
    background:var(--gold);transition:width .25s ease;
  }
  .nav-links a:hover::after{width:100%;}
  .btn{
    display:inline-flex;align-items:center;gap:8px;
    padding:12px 24px;border-radius:2px;
    font-size:14px;font-weight:700;letter-spacing:0.02em;
    border:1.5px solid transparent;cursor:pointer;
    transition:transform .2s ease, background .2s ease, color .2s ease, border-color .2s ease;
    white-space:nowrap;
  }
  .btn-gold{background:var(--gold);color:var(--ink);}
  .btn-gold:hover{background:var(--gold-light);transform:translateY(-1px);}
  .btn-outline{border-color:var(--navy);color:var(--navy);}
  .btn-outline:hover{background:var(--navy);color:#fff;}
  .btn-ghost-light{border-color:rgba(255,255,255,.5);color:#fff;}
  .btn-ghost-light:hover{background:#fff;color:var(--navy);}
  .nav-cta{display:none;}
  @media(min-width:880px){.nav-cta{display:inline-flex;}}
  .menu-btn{display:none;background:none;border:none;font-size:26px;color:var(--navy);cursor:pointer;}
  @media(max-width:879px){
    .nav-links{
      position:fixed;inset:64px 0 0 0;background:var(--cream);
      flex-direction:column;justify-content:flex-start;padding:40px 32px;gap:28px;
      transform:translateX(100%);transition:transform .3s ease;
    }
    .nav-links.open{transform:translateX(0);}
    .menu-btn{display:block;}
  }

  /* ---------- HERO ---------- */
  .hero{position:relative;overflow:hidden;padding:96px 0 60px;}
  .hero-grid{
    display:grid;grid-template-columns:1.1fr 0.9fr;gap:56px;align-items:center;
  }
  @media(max-width:900px){.hero-grid{grid-template-columns:1fr;}}
  .hero h1{font-size:clamp(2.4rem,4.6vw,3.6rem);margin:22px 0 22px;}
  .hero h1 em{font-style:italic;color:var(--navy-mid);font-weight:500;}
  .hero p.lead{font-size:18px;color:var(--charcoal);max-width:520px;margin-bottom:34px;}
  .hero-actions{display:flex;gap:16px;flex-wrap:wrap;}
  .hero-visual{position:relative;height:420px;}
  .ascent-svg{width:100%;height:100%;}
  .ascent-path{
    fill:none;stroke:var(--gold);stroke-width:3;stroke-linecap:round;
    stroke-dasharray:900;stroke-dashoffset:900;
    animation:draw 2.2s ease forwards .3s;
  }
  .ascent-dot{opacity:0;animation:fadeIn .6s ease forwards;}
  .ascent-dot:nth-of-type(1){animation-delay:.6s;}
  .ascent-dot:nth-of-type(2){animation-delay:1.1s;}
  .ascent-dot:nth-of-type(3){animation-delay:1.6s;}
  .ascent-dot:nth-of-type(4){animation-delay:2.1s;}
  @keyframes draw{to{stroke-dashoffset:0;}}
  @keyframes fadeIn{to{opacity:1;}}
  @media(prefers-reduced-motion:reduce){
    .ascent-path{animation:none;stroke-dashoffset:0;}
    .ascent-dot{animation:none;opacity:1;}
  }
  .hero-tag{
    position:absolute;background:var(--paper);border:1px solid var(--line);
    padding:12px 16px;border-radius:3px;box-shadow:0 12px 30px -14px rgba(15,27,51,.25);
    font-size:13px;font-weight:600;color:var(--navy);
  }

  /* ---------- STATS ---------- */
  .stats{background:var(--navy);color:#fff;padding:38px 0;}
  .stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:24px;text-align:center;}
  .stats-grid .num{font-family:'Fraunces',serif;font-size:2.1rem;color:var(--gold-light);font-weight:700;}
  .stats-grid .label{font-size:13px;letter-spacing:.05em;color:#C9D2E4;margin-top:4px;}

  /* ---------- SECTION SHARED ---------- */
  section{padding:96px 0;}
  .section-head{max-width:640px;margin-bottom:56px;}
  .section-head h2{font-size:clamp(1.9rem,3.2vw,2.5rem);margin-top:16px;}
  .section-head p{margin-top:16px;color:var(--charcoal);font-size:16.5px;}
  .center{text-align:center;margin-left:auto;margin-right:auto;}

  /* ---------- ABOUT ---------- */
  .about{background:var(--paper);}
  .about-grid{display:grid;grid-template-columns:0.8fr 1.2fr;gap:64px;align-items:center;}
  @media(max-width:860px){.about-grid{grid-template-columns:1fr;}}
  .about-photo{
    aspect-ratio:4/5;border-radius:4px;
    background:linear-gradient(155deg,var(--navy) 0%,var(--navy-mid) 55%,var(--navy-soft) 100%);
    display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;
  }
  .about-photo .monogram{font-family:'Fraunces',serif;font-size:6.5rem;color:rgba(255,255,255,.92);font-weight:600;}
  .about-photo .ring{position:absolute;border:1.5px solid rgba(228,198,122,.5);border-radius:4px;inset:18px;}
  .about-photo .note{
    position:absolute;bottom:16px;left:16px;right:16px;
    font-size:11.5px;color:rgba(255,255,255,.6);letter-spacing:.03em;
  }
  .about-copy h3{font-size:1.9rem;margin-bottom:18px;}
  .about-copy p{margin-bottom:16px;color:var(--charcoal);}
  .credentials{list-style:none;padding:0;margin:26px 0 0;display:grid;gap:12px;}
  .credentials li{display:flex;gap:12px;font-size:14.5px;color:var(--navy);font-weight:600;}
  .credentials li::before{content:"";width:6px;height:6px;background:var(--gold);margin-top:7px;border-radius:1px;flex-shrink:0;}

  /* ---------- PROCESS (ascent) ---------- */
  .process{background:var(--cream);position:relative;}
  .process-line{
    position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:28px;margin-top:20px;
  }
  .process-line::before{
    content:"";position:absolute;top:26px;left:6%;right:6%;height:1px;
    background-image:linear-gradient(to right, var(--gold) 40%, transparent 0%);
    background-size:14px 1px;background-repeat:repeat-x;
  }
  @media(max-width:860px){
    .process-line{grid-template-columns:1fr;gap:36px;}
    .process-line::before{display:none;}
  }
  .step{position:relative;}
  .step .marker{
    width:52px;height:52px;border-radius:50%;background:var(--navy);color:var(--gold-light);
    display:flex;align-items:center;justify-content:center;font-family:'Fraunces',serif;
    font-size:20px;font-weight:700;margin-bottom:20px;position:relative;z-index:1;
    border:3px solid var(--cream);
  }
  .step h4{font-size:1.15rem;margin-bottom:10px;}
  .step p{font-size:14.5px;color:var(--charcoal);}

  /* ---------- SERVICES ---------- */
  .services{background:var(--paper);}
  .service-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:26px;}
  @media(max-width:760px){.service-grid{grid-template-columns:1fr;}}
  .service-card{
    border:1px solid var(--line);padding:36px;border-radius:4px;
    background:var(--cream);transition:border-color .2s ease, transform .2s ease;
  }
  .service-card:hover{border-color:var(--gold);transform:translateY(-3px);}
  .service-card .tag{
    font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);
  }
  .service-card h3{font-size:1.4rem;margin:14px 0 12px;}
  .service-card p{color:var(--charcoal);font-size:14.5px;margin-bottom:18px;}
  .service-card .meta{
    display:flex;justify-content:space-between;font-size:13px;color:var(--navy);
    font-weight:600;border-top:1px solid var(--line);padding-top:14px;
  }

  /* ---------- TESTIMONIALS ---------- */
  .testimonials{background:var(--navy);color:#fff;}
  .testimonials .section-head h2, .testimonials .eyebrow{color:#fff;}
  .testimonials .eyebrow{color:var(--gold-light);}
  .testimonials .eyebrow::before{background:var(--gold-light);}
  .testimonials .section-head p{color:#C9D2E4;}
  .t-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
  @media(max-width:900px){.t-grid{grid-template-columns:1fr;}}
  .t-card{
    background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);
    padding:30px;border-radius:4px;
  }
  .t-card .quote{font-family:'Fraunces',serif;font-style:italic;font-size:17px;line-height:1.5;color:#F1EEE4;margin-bottom:20px;}
  .t-card .who{font-size:13.5px;font-weight:700;color:var(--gold-light);}
  .t-card .role{font-size:12.5px;color:#A9B4CC;margin-top:2px;}

  /* ---------- CTA BAND ---------- */
  .cta-band{
    background:linear-gradient(120deg,var(--gold) 0%,var(--gold-light) 100%);
    padding:64px 0;text-align:center;
  }
  .cta-band h2{font-size:clamp(1.7rem,3vw,2.3rem);color:var(--ink);margin-bottom:20px;}
  .cta-band .btn-outline{border-color:var(--ink);color:var(--ink);}
  .cta-band .btn-outline:hover{background:var(--ink);color:var(--gold-light);}

  /* ---------- CONTACT ---------- */
  .contact{background:var(--cream);}
  .contact-grid{display:grid;grid-template-columns:0.9fr 1.1fr;gap:60px;}
  @media(max-width:900px){.contact-grid{grid-template-columns:1fr;}}
  .contact-info h3{font-size:1.5rem;margin-bottom:18px;}
  .contact-info p{color:var(--charcoal);margin-bottom:26px;}
  .info-row{display:flex;gap:14px;margin-bottom:20px;align-items:flex-start;}
  .info-row .ic{
    width:38px;height:38px;border-radius:50%;background:var(--navy);color:var(--gold-light);
    display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:15px;
  }
  .info-row .label{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--navy);font-weight:700;}
  .info-row .val{font-size:15px;color:var(--charcoal);margin-top:2px;}
  .social-row{display:flex;gap:12px;margin-top:12px;}
  .social-row a{
    width:38px;height:38px;border:1.5px solid var(--navy);border-radius:50%;
    display:flex;align-items:center;justify-content:center;font-size:14px;color:var(--navy);font-weight:700;
    transition:background .2s, color .2s;
  }
  .social-row a:hover{background:var(--navy);color:#fff;}

  form.contact-form{
    background:var(--paper);border:1px solid var(--line);border-radius:4px;padding:36px;
  }
  .form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px;}
  @media(max-width:520px){.form-row{grid-template-columns:1fr;}}
  .field{display:flex;flex-direction:column;gap:6px;}
  .field.full{grid-column:1/-1;}
  .field label{font-size:12.5px;font-weight:700;letter-spacing:.04em;color:var(--navy);text-transform:uppercase;}
  .field input, .field select, .field textarea{
    border:1.5px solid var(--line);border-radius:3px;padding:12px 14px;font-family:'Inter',sans-serif;
    font-size:14.5px;background:var(--cream);color:var(--ink);resize:vertical;
  }
  .field input:focus, .field select:focus, .field textarea:focus{border-color:var(--gold);outline:none;}
  .contact-form .btn-gold{width:100%;justify-content:center;margin-top:6px;padding:14px;}
  .form-note{font-size:12.5px;color:#8a8375;margin-top:12px;text-align:center;}

  /* ---------- FOOTER ---------- */
  footer{background:var(--ink);color:#C9D2E4;padding:52px 0 26px;}
  .footer-grid{display:flex;flex-wrap:wrap;justify-content:space-between;gap:36px;padding-bottom:36px;border-bottom:1px solid rgba(255,255,255,.12);}
  .footer-brand{display:flex;align-items:center;gap:12px;}
  .footer-brand img{height:38px;filter:brightness(0) invert(1);opacity:.9;}
  .footer-links{display:flex;gap:32px;flex-wrap:wrap;}
  .footer-links a{font-size:14px;color:#C9D2E4;}
  .footer-links a:hover{color:var(--gold-light);}
  .footer-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;padding-top:22px;font-size:12.5px;color:#7C89A6;}

  .placeholder-flag{
    display:inline-block;font-size:10.5px;background:var(--gold-pale);color:#8a6d1c;
    padding:2px 8px;border-radius:10px;margin-left:8px;font-weight:700;letter-spacing:.03em;
    vertical-align:middle;
  }
