  :root{
    --ink:#0F1115;
    --ink-raised:#15171C;
    --ink-raised-2:#1B1E24;
    --line:rgba(176,141,87,0.24);
    --line-soft:rgba(176,141,87,0.12);
    --gold:#B08D57;
    --gold-bright:#DCBB80;
    --gold-dim:#7C6239;
    --ivory:#F7F5F2;
    --ivory-dim:#EAE4D8;
    --stone:#BEB8AB;
    --stone-dim:#8B8579;
    --ink-on-ivory:#17140F;
    --ink-on-ivory-soft:#4A4438;

    --font-display: 'Cinzel', Georgia, 'Iowan Old Style', 'Palatino Linotype', 'Book Antiqua', serif;
    --font-quote: 'Lato', -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif;
    --font-body: 'Lato', -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif;

    --container: 1180px;
    --section-pad: 8rem;
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--ink);
    color:var(--stone);
    font-family:var(--font-body);
    font-size:1.05rem;
    line-height:1.7;
    -webkit-font-smoothing:antialiased;
  }
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    *{animation-duration:0.001ms !important; transition-duration:0.001ms !important;}
  }

  img,svg{max-width:100%; display:block;}
  a{color:inherit; text-decoration:none;}

  .wrap{max-width:var(--container); margin:0 auto; padding:0 2rem;}

  h1,h2,h3,h4{
    font-family:var(--font-display);
    font-weight:400;
    color:var(--ivory);
    margin:0;
    text-wrap:balance;
  }

  .eyebrow{
    font-family:var(--font-body);
    font-size:0.72rem;
    letter-spacing:0.28em;
    text-transform:uppercase;
    color:var(--gold);
    font-weight:600;
    display:inline-flex;
    align-items:center;
    gap:0.75rem;
  }
  .eyebrow::before{
    content:"";
    width:28px; height:1px;
    background:var(--gold);
    display:inline-block;
  }
  .on-ivory .eyebrow{color:var(--gold-dim);}
  .on-ivory .eyebrow::before{background:var(--gold-dim);}

  .rule{
    width:64px; height:1px;
    background:var(--gold);
    border:none;
    margin:1.75rem 0;
  }

  section{
    padding:var(--section-pad) 0;
    position:relative;
  }

  .on-ivory{
    background:var(--ivory);
    color:var(--ink-on-ivory-soft);
  }
  .on-ivory h1,.on-ivory h2,.on-ivory h3,.on-ivory h4{color:var(--ink-on-ivory);}
  .on-ivory .rule{background:var(--gold-dim);}

  .section-head{
    max-width:640px;
    margin-bottom:3.5rem;
  }
  .section-head.center{margin-left:auto; margin-right:auto; text-align:center;}
  .section-head h2{font-size:clamp(1.9rem,3vw,2.5rem); margin-top:0.9rem;}
  .lede{
    max-width:640px;
    font-size:1.05rem;
    color:var(--stone);
  }
  .on-ivory .lede{color:var(--ink-on-ivory-soft);}

  /* reveal-on-scroll */
  .reveal{opacity:0; transform:translateY(18px); transition:opacity 0.9s ease, transform 0.9s ease;}
  .reveal.in{opacity:1; transform:translateY(0);}

  /* ============ NAV ============ */
  header.site-nav{
    position:fixed; top:0; left:0; right:0; z-index:100;
    background:rgba(11,12,15,0.72);
    backdrop-filter:blur(14px) saturate(140%);
    -webkit-backdrop-filter:blur(14px) saturate(140%);
    border-bottom:1px solid var(--line-soft);
    transition:background 0.3s ease, border-color 0.3s ease;
  }
  .nav-inner{
    max-width:var(--container); margin:0 auto; padding:0 2rem;
    display:flex; align-items:center; justify-content:space-between;
    height:84px;
  }
  .brand{display:flex; align-items:center; gap:0.7rem;}
  .brand-mark{
    width:46px; height:46px;
    object-fit:contain;
    flex:none;
  }
  .brand-name{line-height:1.15;}
  .brand-name .full{
    font-family:var(--font-display);
    font-size:1.02rem;
    letter-spacing:0.04em;
    color:var(--ivory);
    display:block;
  }
  .brand-name .tag{
    font-size:0.58rem;
    letter-spacing:0.22em;
    text-transform:uppercase;
    color:var(--stone-dim);
    display:block;
    margin-top:2px;
  }

  nav.primary-links{display:flex; gap:1.7rem;}
  nav.primary-links a{
    font-size:0.8rem;
    letter-spacing:0.04em;
    color:var(--stone);
    position:relative;
    padding:0.3rem 0;
    white-space:nowrap;
  }
  nav.primary-links a::after{
    content:"";
    position:absolute; left:0; bottom:-2px;
    width:0%; height:1px;
    background:var(--gold);
    transition:width 0.3s ease;
  }
  nav.primary-links a:hover{color:var(--ivory);}
  nav.primary-links a:hover::after{width:100%;}

  .nav-actions{display:flex; align-items:center; gap:1.5rem;}

  .btn{
    display:inline-flex; align-items:center; gap:0.6rem;
    font-size:0.78rem;
    letter-spacing:0.14em;
    text-transform:uppercase;
    font-weight:600;
    padding:0.9rem 1.6rem;
    border:1px solid var(--gold);
    color:var(--gold-bright);
    background:transparent;
    cursor:pointer;
    transition:background 0.3s ease, color 0.3s ease, transform 0.2s ease;
  }
  .btn:hover{background:var(--gold); color:var(--ink);}
  .btn.solid{background:var(--gold); color:var(--ink);}
  .btn.solid:hover{background:var(--gold-bright); color:var(--ink);}
  .btn svg{width:14px; height:14px;}

  .nav-toggle{display:none;}

  /* ============ HERO ============ */
  .hero{
    position:relative;
    min-height:100vh;
    display:flex; align-items:center;
    padding-top:8rem;
    overflow:hidden;
    background:#0F1115;
  }
  .hero > .wrap{width:100%;}
  .hero-scene{
    position:absolute; inset:0;
    pointer-events:none;
  }
  .hero-photo{
    position:absolute; inset:0;
    background-image:url('assets/hero-bg.jpg');
    background-size:cover;
    background-position:63% 38%;
    filter:brightness(0.88) saturate(1.05);
  }
  .hero-network{position:absolute; inset:0; opacity:0.5;}
  .hero-vignette{
    position:absolute; inset:0;
    background:
      linear-gradient(100deg, rgba(15,17,21,0.95) 0%, rgba(15,17,21,0.82) 30%, rgba(15,17,21,0.42) 52%, rgba(15,17,21,0.05) 70%),
      linear-gradient(180deg, rgba(15,17,21,0.35) 0%, rgba(15,17,21,0) 20%, rgba(15,17,21,0.6) 80%, rgba(15,17,21,0.95) 100%);
  }

  .hero-content{position:relative; z-index:2; max-width:760px;}
  .hero h1{
    font-size:clamp(2rem, 4.6vw, 3.6rem);
    line-height:1.22;
    letter-spacing:0.015em;
    text-transform:uppercase;
  }
  .hero h1 .accent{color:var(--gold-bright);}
  .hero-sub{
    max-width:560px;
    color:var(--stone);
    margin-top:1.9rem;
    font-size:1.05rem;
  }
  .hero-cta{margin-top:2.6rem; display:flex; gap:1.25rem; flex-wrap:wrap;}

  .hero-fade-line{
    display:block;
    opacity:0; transform:translateY(22px);
    animation:riseIn 1s ease forwards;
  }
  .hero-fade-line:nth-child(1){animation-delay:0.15s;}
  .hero-fade-line:nth-child(2){animation-delay:0.35s;}
  .hero-fade-line:nth-child(3){animation-delay:0.55s;}
  .hero-sub{opacity:0; animation:riseIn 1s ease forwards; animation-delay:0.8s;}
  .hero-cta{opacity:0; animation:riseIn 1s ease forwards; animation-delay:1s;}
  @keyframes riseIn{to{opacity:1; transform:translateY(0);}}

  .scroll-cue{
    position:absolute; bottom:2.4rem; left:50%; transform:translateX(-50%);
    z-index:2;
    display:flex; flex-direction:column; align-items:center; gap:0.6rem;
    color:var(--stone-dim);
    font-size:0.65rem; letter-spacing:0.24em; text-transform:uppercase;
  }
  .scroll-cue .stem{width:1px; height:34px; background:linear-gradient(var(--gold), transparent); position:relative; overflow:hidden;}
  .scroll-cue .stem::after{
    content:""; position:absolute; left:0; top:-34px; width:100%; height:34px;
    background:linear-gradient(var(--gold-bright), transparent);
    animation:cueDrop 2.6s ease-in-out infinite;
  }
  @keyframes cueDrop{0%{top:-34px;} 100%{top:34px;}}

  /* ============ CAPABILITY STRIP ============ */
  .strip{
    position:relative; z-index:3;
    background:var(--ink-raised);
    border-top:1px solid var(--line-soft);
    border-bottom:1px solid var(--line-soft);
  }
  .strip .wrap{
    display:grid;
    grid-template-columns:repeat(5,1fr);
    padding:3.4rem 2rem;
  }
  .strip-item{
    padding:0 1.6rem;
    border-left:1px solid var(--line-soft);
    text-align:center;
  }
  .strip-item:first-child{border-left:none;}
  .strip-icon{
    width:38px; height:38px; margin:0 auto 1.1rem;
    color:var(--gold);
  }
  .strip-item h4{
    font-size:0.92rem;
    color:var(--ivory);
    letter-spacing:0.03em;
    margin-bottom:0.6rem;
  }
  .strip-item p{
    font-size:0.83rem; color:var(--stone-dim); margin:0;
  }

  /* ============ ABOUT ============ */
  .about-grid{
    display:grid;
    grid-template-columns:0.9fr 1.1fr;
    gap:4.5rem;
    align-items:start;
  }
  .about-grid .lede{max-width:none;}
  .about-lineage{
    margin-top:2rem;
    padding-left:1.5rem;
    border-left:2px solid var(--gold);
    font-family:var(--font-quote);
    font-style:italic;
    font-size:1.12rem;
    color:var(--gold-bright);
  }
  .about-stack{display:flex; flex-direction:column; gap:1.4rem;}
  .about-line{
    display:flex; align-items:flex-start; gap:1rem;
    font-family:var(--font-display);
    font-size:1.3rem;
    line-height:1.35;
    color:var(--ivory);
  }
  .about-line span.no{
    flex:none; margin-top:0.3rem;
    color:var(--gold); font-size:0.85rem; font-family:var(--font-body); letter-spacing:0.1em;
  }

  /* ============ PHILOSOPHY ============ */
  .principles{
    display:flex; flex-direction:column;
  }
  .principle{
    display:grid;
    grid-template-columns:120px 1fr;
    gap:2.5rem;
    align-items:start;
    padding:2.4rem 0;
    border-top:1px solid var(--line-soft);
  }
  .principle:last-child{border-bottom:1px solid var(--line-soft);}
  .principle .numeral{
    font-family:var(--font-display);
    font-size:2.6rem;
    color:var(--gold);
    line-height:1;
  }
  .principle h3{font-size:1.28rem; margin-bottom:0.6rem;}
  .principle p{margin:0; color:var(--stone); max-width:560px;}

  /* ============ SERVICES ============ */
  .services-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:1px;
    background:var(--line-soft);
    border:1px solid var(--line-soft);
  }
  .service-card{
    background:var(--ink);
    padding:2.6rem 2.2rem;
    display:flex; flex-direction:column;
    transition:background 0.35s ease;
  }
  .service-card:hover{background:var(--ink-raised);}
  .service-index{
    font-size:0.72rem; letter-spacing:0.2em; color:var(--gold-dim); margin-bottom:1.2rem;
  }
  .service-card h3{font-size:1.18rem; margin-bottom:1rem;}
  .service-card ul{
    list-style:none; margin:0; padding:0;
    display:flex; flex-direction:column; gap:0.55rem;
    font-size:0.88rem; color:var(--stone-dim);
  }
  .service-card ul li{position:relative; padding-left:1rem;}
  .service-card ul li::before{
    content:"–"; position:absolute; left:0; color:var(--gold-dim);
  }

  /* ============ SECTORS ============ */
  .sectors-grid{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:1px;
    background:var(--line);
    border:1px solid var(--line);
    margin-top:1rem;
  }
  .sector-card{
    background:var(--ivory);
    padding:2.6rem;
  }
  .sector-card h3{
    font-size:1.1rem;
    color:var(--ink-on-ivory);
    margin-bottom:1rem;
    display:flex; align-items:center; gap:0.7rem;
  }
  .sector-card h3::before{
    content:""; width:8px; height:8px; border-radius:50%;
    background:var(--gold-dim); flex:none;
  }
  .tag-row{display:flex; flex-wrap:wrap; gap:0.5rem;}
  .tag{
    font-size:0.75rem;
    padding:0.42rem 0.8rem;
    border:1px solid rgba(124,98,57,0.35);
    color:var(--ink-on-ivory-soft);
    letter-spacing:0.02em;
  }

  /* ============ WHY US ============ */
  .why-grid{
    display:grid;
    grid-template-columns:repeat(5,1fr);
    gap:0;
  }
  .why-item{
    padding:0 1.7rem 0 0;
    border-right:1px solid var(--line-soft);
  }
  .why-item:last-child{border-right:none; padding-right:0;}
  .why-item h3{
    font-size:1.15rem; margin-bottom:0.9rem;
    display:flex; align-items:baseline; gap:0.5rem;
  }
  .why-item h3 .dot{color:var(--gold);}
  .why-item p{font-size:0.88rem; color:var(--stone-dim); margin:0;}
  .why-regions{
    list-style:none; margin:0.7rem 0 0; padding:0;
    font-size:0.85rem; color:var(--stone-dim);
    display:flex; flex-direction:column; gap:0.3rem;
  }

  /* ============ FOCUS CHIPS ============ */
  .focus-chips{
    display:flex; flex-wrap:wrap; gap:0.8rem;
    margin-top:1rem;
  }
  .focus-chip{
    font-size:0.86rem;
    padding:0.75rem 1.2rem;
    border:1px solid var(--line);
    color:var(--stone);
    background:var(--ink-raised);
    transition:border-color 0.3s ease, color 0.3s ease;
  }
  .focus-chip:hover{border-color:var(--gold); color:var(--ivory);}

  /* ============ FAMILY OFFICE ============ */
  .fo-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:4.5rem;
    align-items:center;
  }
  .fo-list{list-style:none; margin:0; padding:0; columns:2; column-gap:2rem;}
  .fo-list li{
    font-size:0.95rem; color:var(--stone);
    padding:0.55rem 0;
    border-bottom:1px solid var(--line-soft);
    break-inside:avoid;
  }
  .fo-note{
    margin-top:2.2rem; padding:1.6rem 1.8rem;
    border-left:2px solid var(--gold);
    background:rgba(176,141,87,0.08);
    font-family:var(--font-quote); font-style:italic;
    color:var(--gold-bright);
    font-size:1.05rem;
  }

  /* ============ QUOTE ============ */
  .quote-section{
    text-align:center;
    background:
      radial-gradient(ellipse 60% 100% at 50% 0%, rgba(176,141,87,0.1), transparent 70%),
      var(--ink);
    padding:7rem 0;
  }
  .quote-mark{
    font-family:var(--font-display);
    font-size:5rem; color:var(--gold-dim); line-height:1; height:2.2rem;
  }
  blockquote{
    margin:0 auto; max-width:760px;
    font-family:var(--font-quote); font-style:italic;
    font-size:clamp(1.5rem,3vw,2.3rem);
    color:var(--ivory);
    line-height:1.4;
  }
  .quote-attr{
    margin-top:1.6rem;
    font-size:0.78rem; letter-spacing:0.2em; text-transform:uppercase;
    color:var(--gold);
  }

  /* ============ CLOSING ============ */
  .closing{text-align:center;}
  .closing .wrap{max-width:760px;}
  .closing p{font-size:1.08rem; margin:0.4rem 0;}
  .closing .lead{
    font-family:var(--font-display); font-size:1.5rem; color:var(--ivory); margin-bottom:1.6rem;
  }

  /* ============ CTA BAND ============ */
  .cta-band{
    background:var(--ink-raised);
    border-top:1px solid var(--line-soft);
    border-bottom:1px solid var(--line-soft);
    text-align:center;
  }
  .cta-band h2{font-size:clamp(1.8rem,3vw,2.4rem); margin-bottom:1.2rem;}
  .cta-band p{max-width:520px; margin:0 auto 2.2rem;}
  .cta-buttons{display:flex; gap:1.2rem; justify-content:center; flex-wrap:wrap;}

  /* ============ FOOTER ============ */
  footer{
    background:#08090B;
    padding:5rem 0 2rem;
    border-top:1px solid var(--line-soft);
  }
  .footer-grid{
    display:grid;
    grid-template-columns:1.4fr repeat(4,1fr);
    gap:2.5rem;
    padding-bottom:3.5rem;
  }
  .footer-brand .brand-name .full{color:var(--ivory);}
  .footer-brand p{
    margin-top:1.2rem; font-size:0.88rem; color:var(--stone-dim); max-width:260px;
  }
  .footer-col h5{
    font-size:0.72rem; letter-spacing:0.2em; text-transform:uppercase;
    color:var(--gold); margin:0 0 1.2rem;
    font-family:var(--font-body); font-weight:600;
  }
  .footer-col ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:0.65rem;}
  .footer-col ul li a{font-size:0.87rem; color:var(--stone-dim); transition:color 0.25s ease;}
  .footer-col ul li a:hover{color:var(--gold-bright);}
  .footer-bottom{
    border-top:1px solid var(--line-soft);
    padding-top:2rem;
    display:flex; justify-content:space-between; align-items:center;
    flex-wrap:wrap; gap:1rem;
  }
  .footer-bottom .legal{font-size:0.78rem; color:var(--stone-dim);}
  .footer-bottom .motto{
    font-size:0.72rem; letter-spacing:0.16em; text-transform:uppercase; color:var(--gold-dim);
  }

  /* ============ RESPONSIVE ============ */
  @media (max-width:1000px){
    :root{--section-pad:5.5rem;}
    nav.primary-links{display:none;}
    .strip .wrap{grid-template-columns:repeat(3,1fr); row-gap:2.5rem;}
    .strip-item:nth-child(3n+1){border-left:none;}
    .about-grid, .fo-grid{grid-template-columns:1fr; gap:2.5rem;}
    .services-grid{grid-template-columns:repeat(2,1fr);}
    .sectors-grid{grid-template-columns:1fr;}
    .why-grid{grid-template-columns:repeat(2,1fr); row-gap:2.5rem;}
    .why-item{border-right:none; padding-right:0;}
    .footer-grid{grid-template-columns:repeat(2,1fr);}
  }
  @media (max-width:640px){
    .strip .wrap{grid-template-columns:repeat(2,1fr);}
    .strip-item:nth-child(3n+1){border-left:1px solid var(--line-soft);}
    .strip-item:nth-child(2n+1){border-left:none;}
    .services-grid{grid-template-columns:1fr;}
    .why-grid{grid-template-columns:1fr;}
    .principle{grid-template-columns:60px 1fr; gap:1.4rem;}
    .principle .numeral{font-size:1.8rem;}
    .fo-list{columns:1;}
    .footer-grid{grid-template-columns:1fr; gap:2.2rem;}
    .hero{padding-top:7rem;}
    .hero-photo{background-position:78% 38%;}
    .hero-vignette{
      background:
        linear-gradient(180deg, rgba(15,17,21,0.4) 0%, rgba(15,17,21,0.15) 22%, rgba(15,17,21,0.7) 62%, rgba(15,17,21,0.96) 100%),
        linear-gradient(100deg, rgba(15,17,21,0.9) 0%, rgba(15,17,21,0.55) 60%, rgba(15,17,21,0.15) 85%);
    }
  }

  /* ============ COOKIE BANNER ============ */
  .cookie-banner{
    position:fixed; left:1.5rem; right:1.5rem; bottom:1.5rem; z-index:200;
    max-width:640px;
    margin:0 auto;
    background:#08090B;
    border:1px solid var(--line);
    box-shadow:0 20px 50px rgba(0,0,0,0.45);
    padding:1.6rem 1.8rem;
    display:flex; flex-wrap:wrap; align-items:center; gap:1.2rem 1.6rem;
    transform:translateY(140%);
    transition:transform 0.6s cubic-bezier(.16,.84,.44,1);
  }
  .cookie-banner.in{transform:translateY(0);}
  .cookie-banner p{
    margin:0; flex:1 1 260px;
    font-size:0.85rem; line-height:1.6; color:var(--stone);
  }
  .cookie-banner p a{color:var(--gold-bright); text-decoration:underline; text-underline-offset:2px;}
  .cookie-banner .cookie-actions{display:flex; gap:0.8rem; flex:none;}
  .cookie-banner .btn{padding:0.7rem 1.3rem; font-size:0.72rem;}
  @media (max-width:640px){
    .cookie-banner{left:1rem; right:1rem; bottom:1rem; padding:1.4rem;}
    .cookie-banner .cookie-actions{width:100%;}
    .cookie-banner .cookie-actions .btn{flex:1;}
  }

  /* ============ LEGAL PAGE ============ */
  .legal-hero{
    padding:11rem 0 4rem;
    background:var(--ink);
    border-bottom:1px solid var(--line-soft);
  }
  .legal-hero h1{
    font-size:clamp(2rem,4vw,2.8rem);
    margin-top:0.9rem;
  }
  .legal-hero .updated{
    display:block; margin-top:1.2rem;
    font-size:0.85rem; color:var(--stone-dim);
  }
  .legal-body{padding:4.5rem 0 6rem;}
  .legal-body .wrap{max-width:800px;}
  .legal-body h2{
    font-size:1.35rem;
    margin-top:3rem;
    padding-top:2rem;
    border-top:1px solid var(--line-soft);
  }
  .legal-body h2:first-child{margin-top:0; padding-top:0; border-top:none;}
  .legal-body p{color:var(--stone); margin:1rem 0 0;}
  .legal-body ul{margin:1rem 0 0; padding-left:1.2rem; color:var(--stone);}
  .legal-body ul li{margin-bottom:0.5rem;}
  .legal-body ul li::marker{color:var(--gold);}
  .legal-body a{color:var(--gold-bright); text-decoration:underline; text-underline-offset:2px;}
  .legal-body table{
    width:100%; border-collapse:collapse; margin-top:1.2rem;
    font-size:0.9rem;
  }
  .legal-body th, .legal-body td{
    text-align:left; padding:0.7rem 1rem;
    border-bottom:1px solid var(--line-soft);
    color:var(--stone);
  }
  .legal-body th{color:var(--ivory); font-weight:600; letter-spacing:0.03em;}
