  /* ============ TOKENS ============
     This is a fixed-identity brand page (like the eventual live marketing
     site) — colors are not adapted to viewer OS theme, they ARE the brand,
     same as stancroftconsultancy.com would look identical regardless of a
     visitor's dark-mode setting. Painted explicitly, single visual world. */
  :root{
    --navy-950:#101f38;
    --navy-900:#213a5e;   /* brand navy — sampled from Referance Doc logo.png + live site header (rgb(35,56,87)) */
    --navy-700:#2f4d7a;
    --navy-500:#44608f;
    --gold-600:#9c8158;
    --gold-500:#c1a971;   /* brand gold — sampled from the live production logo file on stancroftconsultancy.com */
    --gold-300:#ddc79d;
    --cream-50:#f3f0e8;   /* matches SOW doc table shading E9E7DD, warmed */
    --cream-100:#ece7da;
    --paper:#fbfaf6;
    --ink-900:#141c28;
    --ink-600:#3d4956;
    --slate-500:#6b7684;
    --line:#d8d2c0;
    --radius-sm:2px;
    --radius-md:4px;
    --maxw:1240px;
  }

  *{box-sizing:border-box}
  /* Section-to-section motion is driven entirely by JS (custom eased
     scrollTo) below — deliberately no CSS scroll-behavior/scroll-snap
     here, since native smooth-scroll fighting a JS rAF loop is what
     caused the jerky double-animation. */
  body{
    margin:0;
    background:var(--paper);
    color:var(--ink-900);
    font-family:"IBM Plex Sans", ui-sans-serif, system-ui, sans-serif;
    font-size:16px;
    line-height:1.55;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,h4{
    font-family:"Newsreader", ui-serif, Georgia, serif;
    font-weight:600;
    line-height:1.12;
    letter-spacing:-0.01em;
    text-wrap:balance;
    margin:0;
    color:var(--navy-900);
  }
  p{margin:0}
  a{color:inherit;text-decoration:none}
  img,svg{display:block;max-width:100%}
  .mono{
    font-family:"IBM Plex Mono", ui-monospace, monospace;
    font-variant-numeric:tabular-nums;
  }
  .eyebrow{
    font-family:"IBM Plex Mono", ui-monospace, monospace;
    font-size:0.72rem;
    font-weight:500;
    letter-spacing:0.14em;
    text-transform:uppercase;
  }
  .wrap{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 32px;box-sizing:border-box}
  @media (max-width:760px){.wrap{padding:0 20px}}

  .btn{
    display:inline-flex;
    align-items:center;
    gap:8px;
    font-family:"IBM Plex Sans", sans-serif;
    font-weight:600;
    font-size:0.92rem;
    padding:13px 24px;
    border-radius:6px;
    border:1px solid transparent;
    cursor:pointer;
    white-space:nowrap;
  }
  .btn svg{width:15px;height:15px}
  .btn-gold{background:var(--gold-500);color:var(--navy-950)}
  .btn-gold:hover{background:var(--gold-300)}
  .btn-line{border-color:rgba(255,255,255,0.4);color:#fff}
  .btn-line:hover{border-color:var(--gold-500);color:var(--gold-300)}
  .btn-line-dark{border-color:var(--navy-900);color:var(--navy-900)}
  .btn-line-dark:hover{border-color:var(--gold-600);color:var(--gold-600)}

  /* ---------- section dot-nav ---------- */
  .section-dots{
    position:fixed;
    right:22px;
    top:50%;
    transform:translateY(-50%);
    z-index:40;
    display:flex;
    flex-direction:column;
    gap:12px;
    align-items:center;
    padding:14px 9px;
    border-radius:999px;
    background:rgba(16,31,56,0.5);
    backdrop-filter:blur(6px);
    -webkit-backdrop-filter:blur(6px);
  }
  .section-dots a{
    width:7px;height:7px;
    border-radius:50%;
    background:rgba(255,255,255,0.4);
    display:block;
    transition:background .25s ease, width .25s ease, height .25s ease, box-shadow .25s ease;
  }
  .section-dots a:hover{background:var(--gold-300)}
  .section-dots a.active{
    background:var(--gold-500);
    width:9px;height:9px;
    box-shadow:0 0 0 3px rgba(193,169,113,0.28);
  }
  @media (max-width:900px){
    .section-dots{display:none}
  }

  /* ---------- full-height sections (sized to fill viewport; the actual
     one-scroll-per-section motion is handled by JS, not CSS snap) ---------- */
  #s-hero,#s-trust,#s-about,#s-services,#s-work,#s-experience,#s-sectors,
  #s-claims,#s-leadership,#s-clients,#s-insights,#s-faq,#s-contact{
    min-height:100vh;
    min-height:100dvh;
    display:flex;
    flex-direction:column;
    justify-content:center;
  }
  #s-hero{justify-content:flex-start}
  #s-hero > .wrap{flex:1;display:flex;flex-direction:column;justify-content:center}
  @media (max-width:760px){
    #s-hero,#s-trust,#s-about,#s-services,#s-work,#s-experience,#s-sectors,
    #s-claims,#s-leadership,#s-clients,#s-insights,#s-faq,#s-contact{
      min-height:0;
    }
  }

  /* ---------- scroll reveal ---------- */
  .reveal{
    opacity:0;
    transform:translateY(28px);
    transition:opacity .7s ease, transform .7s ease;
  }
  .reveal.in-view{opacity:1;transform:translateY(0)}
  @media (prefers-reduced-motion:reduce){
    .reveal{opacity:1;transform:none;transition:none}
  }

  /* ---------- staggered grid reveal: give each direct .reveal child of a
     .stagger container an increasing transition-delay, so a row of cards
     fades in one after another instead of all at once ---------- */
  .stagger > .reveal:nth-child(1){transition-delay:0s}
  .stagger > .reveal:nth-child(2){transition-delay:.07s}
  .stagger > .reveal:nth-child(3){transition-delay:.14s}
  .stagger > .reveal:nth-child(4){transition-delay:.21s}
  .stagger > .reveal:nth-child(5){transition-delay:.28s}
  .stagger > .reveal:nth-child(6){transition-delay:.35s}
  .stagger > .reveal:nth-child(7){transition-delay:.42s}
  .stagger > .reveal:nth-child(8){transition-delay:.49s}
  @media (prefers-reduced-motion:reduce){
    .stagger > .reveal{transition-delay:0s}
  }

  /* ---------- header ---------- */
  header{
    position:fixed;
    top:0;left:0;right:0;
    z-index:100;
    background:transparent;
    padding:26px 0;
    transition:background .3s ease, padding .3s ease, box-shadow .3s ease;
  }
  header.scrolled{
    background:var(--navy-950);
    padding:16px 0;
    box-shadow:0 4px 24px rgba(0,0,0,0.28);
  }
  .nav-inner{display:flex;align-items:center;justify-content:space-between;gap:32px}
  .logo{display:flex;align-items:center;gap:14px}
  .logo-img{height:46px;width:auto;display:block}
  .logo .monogram{
    width:46px;height:46px;
    border:1.5px solid var(--gold-500);
    border-radius:6px;
    display:flex;align-items:center;justify-content:center;
    font-family:"Newsreader",serif;
    font-weight:600;
    font-size:1.1rem;
    color:var(--gold-400,var(--gold-300));
    flex:none;
  }
  .logo .wordmark{display:flex;flex-direction:column;line-height:1.15}
  .logo .mark{
    font-family:"Newsreader",serif;
    font-weight:600;
    font-size:1.5rem;
    color:#fff;
  }
  .logo .sub{
    font-family:"IBM Plex Sans",sans-serif;
    font-size:0.66rem;
    font-weight:500;
    letter-spacing:0.2em;
    color:var(--gold-300);
    text-transform:uppercase;
    margin-top:3px;
  }
  nav.primary{display:flex;gap:38px}
  nav.primary li{list-style:none;margin:0;padding:0}
  nav.primary a{
    font-size:0.92rem;
    font-weight:500;
    color:#c9d3de;
    padding-bottom:6px;
    border-bottom:2px solid transparent;
  }
  nav.primary a:hover{color:#fff}
  nav.primary a.active,nav.primary li.current-menu-item>a,nav.primary li.current_page_item>a{color:var(--gold-300);border-bottom-color:var(--gold-500)}
  .nav-cta{display:flex;align-items:center;gap:20px}

  /* ---------- mobile nav: hamburger toggle + slide-in panel ---------- */
  .nav-toggle{
    display:none;flex-direction:column;justify-content:center;gap:5px;
    width:34px;height:34px;padding:0;background:none;border:0;cursor:pointer;flex:none;
  }
  .nav-toggle span{display:block;width:24px;height:2px;background:#fff;transition:transform .25s ease, opacity .25s ease}
  .nav-toggle.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .nav-toggle.open span:nth-child(2){opacity:0}
  .nav-toggle.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .nav-scrim{position:fixed;inset:0;background:rgba(16,31,56,0.5);z-index:98;opacity:0;pointer-events:none;transition:opacity .3s ease}
  .nav-scrim.open{opacity:1;pointer-events:auto}
  .mobile-nav{
    position:fixed;top:0;right:0;bottom:0;z-index:99;
    width:min(320px,84vw);background:var(--navy-950);
    padding:96px 32px 32px;display:flex;flex-direction:column;
    transform:translateX(100%);transition:transform .3s ease;overflow-y:auto;
  }
  .mobile-nav.open{transform:translateX(0)}
  .mobile-nav li{list-style:none;margin:0;padding:0}
  .mobile-nav a{font-size:1.05rem;font-weight:500;color:#fff;padding:14px 0;border-bottom:1px solid rgba(255,255,255,0.1);display:block}
  .mobile-nav a.active,.mobile-nav li.current-menu-item>a,.mobile-nav li.current_page_item>a{color:var(--gold-300)}
  .mobile-nav .btn{margin-top:24px;width:100%;justify-content:center}
  @media (max-width:980px){
    nav.primary{display:none}
    .nav-cta{display:none}
    .nav-toggle{display:flex}
  }
  @media (min-width:981px){.mobile-nav,.nav-scrim{display:none}}
  @media (max-width:480px){.logo-img{height:34px}}

  /* ---------- hero ---------- */
  .hero{
    position:relative;
    padding:0;
    background:var(--navy-950);
    color:#fff;
    overflow:hidden;
  }
  .hero-bg{position:absolute;inset:0;overflow:hidden}
  .hero-bg-img{
    position:absolute;inset:0;
    background:url(assets/images/hero.jpg) 52% 60% / cover no-repeat;
    transform-origin:60% 45%;
    opacity:0;
    transition:opacity 1.8s ease;
    will-change:transform, opacity;
  }
  .hero-bg-img.in{
    opacity:1;
    animation:heroKenBurns 28s ease-in-out infinite alternate;
  }
  @keyframes heroKenBurns{from{transform:scale(1)}to{transform:scale(1.12)}}
  @media (prefers-reduced-motion:reduce){
    .hero-bg-img{transition:none;opacity:1}
    .hero-bg-img.in{animation:none}
  }
  .hero::after{
    content:"";
    position:absolute;inset:0;
    background:linear-gradient(90deg, rgba(16,31,56,.97) 0%, rgba(16,31,56,.92) 34%, rgba(16,31,56,.68) 66%, rgba(16,31,56,.4) 100%);
  }
  .blueprint-grid{
    position:absolute;inset:0;
    background-image:
      linear-gradient(rgba(255,255,255,0.055) 1px, transparent 1px),
      linear-gradient(90deg, rgba(255,255,255,0.055) 1px, transparent 1px);
    background-size:64px 64px;
    -webkit-mask-image:radial-gradient(ellipse 80% 70% at 60% 30%, #000 40%, transparent 85%);
    mask-image:radial-gradient(ellipse 80% 70% at 60% 30%, #000 40%, transparent 85%);
  }
  .hero .wrap{max-width:1400px;margin:0;padding-left:64px;padding-right:32px}
  .hero-inner{position:relative;z-index:2;max-width:640px;padding:72px 0 96px}
  @media (max-width:900px){
    .hero .wrap{padding-left:24px;padding-right:24px}
  }

  /* ---------- hero text entrance: staggered slide-up + fade, timed to
     the splash wipe (or to page load if the splash is skipped) ---------- */
  .hero-inner > *{opacity:0;transform:translateY(26px);transition:opacity .8s ease, transform .8s ease}
  .hero-inner.in > *:nth-child(1){transition-delay:.05s}
  .hero-inner.in > *:nth-child(2){transition-delay:.16s}
  .hero-inner.in > *:nth-child(3){transition-delay:.32s}
  .hero-inner.in > *:nth-child(4){transition-delay:.46s}
  .hero-inner.in > *{opacity:1;transform:translateY(0)}
  @media (prefers-reduced-motion:reduce){
    .hero-inner > *{opacity:1;transform:none;transition:none}
  }
  .hero .eyebrow-pill{
    display:inline-flex;
    align-items:center;
    gap:9px;
    border:1px solid rgba(201,162,77,0.5);
    color:var(--gold-300);
    padding:7px 16px;
    border-radius:999px;
    margin-bottom:26px;
  }
  .hero .eyebrow-pill .dot{width:6px;height:6px;border-radius:50%;background:var(--gold-500)}
  .hero .eyebrow-pill img{height:24px;width:auto;display:block}
  .hero h1{
    font-size:clamp(2.4rem, 4.6vw, 3.6rem);
    color:#fff;
  }
  .hero h1 em{color:var(--gold-400, var(--gold-300));font-style:normal}
  .hero p.lede{
    margin-top:22px;
    font-size:1.08rem;
    color:#c3cbd6;
    max-width:52ch;
  }
  .hero .cta-row{display:flex;gap:16px;margin-top:36px;flex-wrap:wrap}

  /* ---------- scroll cue: a pulsing line, not a static arrow ---------- */
  .scroll-cue{
    position:absolute;left:50%;bottom:28px;z-index:3;
    transform:translateX(-50%);
    display:flex;flex-direction:column;align-items:center;gap:8px;
    background:none;border:0;padding:4px;cursor:pointer;
  }
  .scroll-cue-line{
    width:1px;height:40px;
    background:linear-gradient(var(--gold-500), rgba(193,169,113,0));
    animation:scrollCuePulse 1.8s ease-in-out infinite;
  }
  .scroll-cue-label{
    font-family:"IBM Plex Mono",monospace;
    font-size:0.66rem;letter-spacing:0.22em;text-transform:uppercase;
    color:rgba(255,255,255,0.6);
  }
  .scroll-cue:hover .scroll-cue-label{color:var(--gold-300)}
  @keyframes scrollCuePulse{
    0%,100%{transform:scaleY(1);opacity:1}
    50%{transform:scaleY(0.6);opacity:0.4}
  }
  @media (prefers-reduced-motion:reduce){.scroll-cue-line{animation:none}}
  @media (max-width:760px){.scroll-cue{display:none}}

  @media (max-width:760px){
    .hero-inner{max-width:100%}
  }

  /* ---------- section scaffolding ---------- */
  section{padding:96px 0}
  .section-head{
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    gap:24px;
    margin-bottom:48px;
    flex-wrap:wrap;
  }
  .section-head .eyebrow{color:var(--gold-600);margin-bottom:10px}
  .section-head h2{font-size:clamp(1.7rem,2.6vw,2.3rem)}
  .section-head .view-all{
    font-size:0.86rem;
    font-weight:600;
    color:var(--navy-900);
    border-bottom:1px solid var(--gold-500);
    padding-bottom:2px;
    white-space:nowrap;
  }
  .section-head .view-all:hover{color:var(--gold-600)}
  .dark-section{
    position:relative;
    background:var(--navy-950) url(assets/images/bridge2.jpg) center 30% / cover no-repeat;
    color:#fff;
    overflow:hidden;
  }
  .dark-section::before{
    content:"";
    position:absolute;inset:0;
    background:linear-gradient(180deg, rgba(16,31,56,.8) 0%, rgba(16,31,56,.55) 100%);
  }
  .dark-section .wrap{position:relative;z-index:2}
  .dark-section h2{color:#fff}
  .dark-section .eyebrow{color:var(--gold-300)}
  .cream-section{background:var(--cream-50);position:relative}
  .cream-section .wrap{position:relative;z-index:2}
  #s-about{background:url(assets/images/facade.jpg) center/cover no-repeat}
  #s-about::before{
    content:"";
    position:absolute;inset:0;
    background:rgba(243,240,232,0.55);
  }
  #s-leadership,#s-insights{position:relative}
  #s-leadership > .wrap,#s-insights > .wrap{position:relative;z-index:2}
  #s-leadership{background:url(assets/images/plaza.jpg) center/cover no-repeat}
  #s-insights{background:url(assets/images/facade.jpg) center/cover no-repeat}
  #s-leadership::before,#s-insights::before{
    content:"";
    position:absolute;inset:0;
    background:rgba(251,250,246,0.82);
  }

  /* ---------- about ---------- */
  .about-grid{
    display:grid;
    grid-template-columns:1.1fr 0.9fr;
    gap:72px;
    align-items:center;
  }
  .about-copy .eyebrow{color:var(--gold-600);display:block;margin-bottom:14px}
  .about-copy h2{font-size:clamp(1.8rem,2.8vw,2.5rem);margin-bottom:20px}
  .about-copy p{color:var(--ink-600);font-size:1.02rem;max-width:56ch}
  .about-copy p + p{margin-top:14px}
  .pillars{
    margin-top:36px;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:24px 32px;
  }
  .pillar b{display:block;font-size:0.95rem;color:var(--navy-900);margin-bottom:4px}
  .pillar span{font-size:0.86rem;color:var(--slate-500)}
  .about-figure{
    position:relative;
    aspect-ratio:4/5;
    background:url(assets/images/bridge2.jpg) center/cover no-repeat;
    clip-path:polygon(0 0,100% 0,100% 82%,78% 100%,0 100%);
  }
  .about-figure::before{
    content:"";
    position:absolute;inset:0;
    background:linear-gradient(200deg, rgba(16,31,56,0) 45%, rgba(16,31,56,.55) 100%);
  }
  .about-figure .tag{
    position:absolute;left:24px;bottom:24px;
    background:var(--gold-500);
    color:var(--navy-950);
    font-family:"IBM Plex Mono",monospace;
    font-size:0.7rem;
    letter-spacing:0.06em;
    padding:6px 12px;
    text-transform:uppercase;
    display:inline-flex;
    align-items:center;
    gap:8px;
  }
  .about-figure .tag img{height:13px;width:auto;display:block}
  .about-figure .tag.tag-rics{padding:9px 16px}
  .about-figure .tag.tag-rics img{height:24px}
  @media (max-width:860px){
    .about-grid{grid-template-columns:1fr;gap:40px}
    .pillars{grid-template-columns:1fr}
  }

  /* ---------- trust strip ---------- */
  .stat-band{
    position:relative;
    background:var(--navy-950);
    color:#fff;
    overflow:hidden;
    padding:0;
  }
  .hero .blueprint-grid{
    opacity:0.5;
    -webkit-mask-image:radial-gradient(ellipse 75% 65% at 40% 55%, #000 35%, transparent 85%);
    mask-image:radial-gradient(ellipse 75% 65% at 40% 55%, #000 35%, transparent 85%);
  }
  .stat-band-inner{
    position:relative;z-index:2;
    padding:0;
  }
  .stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(255,255,255,0.14)}
  .stat-cell{background:var(--navy-950);padding:40px 28px}
  .stat-cell .num{font-family:"IBM Plex Mono",monospace;font-size:clamp(2.2rem,4.2vw,3.2rem);color:var(--gold-300);font-weight:700;line-height:1}
  .stat-cell .num img{height:clamp(36px,5vw,48px);width:auto;display:block}
  .stat-cell .lbl{font-size:0.84rem;color:#c3cbd6;margin-top:10px}
  @media (max-width:860px){
    .stat-grid{grid-template-columns:1fr 1fr}
  }
  @media (max-width:520px){
    .stat-grid{grid-template-columns:1fr}
  }

  /* ---------- stat band ticker: a second marquee, scoped to this
     section only (the site-wide top ticker was removed) ---------- */
  .stat-ticker{
    position:relative;
    overflow:hidden;
    border-top:1px solid rgba(255,255,255,0.12);
    padding:22px 0;
    mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
    -webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
  }
  .stat-ticker-track{
    display:flex;align-items:center;gap:40px;
    white-space:nowrap;
    width:max-content;
    animation:ticker 26s linear infinite;
  }
  .stat-ticker-track span{font-size:clamp(1.3rem,2.2vw,1.8rem);font-weight:700;color:#fff}
  .stat-ticker-track .dot{color:var(--gold-500);font-size:0.9rem}
  @media (prefers-reduced-motion:reduce){.stat-ticker-track{animation:none}}

  /* ---------- service cards ---------- */
  .card-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:40px;
    flex:1;
    min-height:0;
  }
  .service-card{
    position:relative;
    overflow:hidden;
    min-height:340px;
    background-size:cover;
    background-position:center;
    transition:transform .35s ease, background-size .5s ease;
    cursor:pointer;
  }
  .service-card::before{
    content:"";
    position:absolute;inset:0;
    background:linear-gradient(0deg, rgba(16,31,56,.88) 0%, rgba(16,31,56,.15) 55%, rgba(16,31,56,0) 75%);
  }
  .service-card:hover{transform:translateY(-4px);background-size:114%}
  .service-card .card-body{
    position:absolute;left:0;right:0;bottom:0;
    padding:24px 22px;
    z-index:2;
  }
  .service-card h3{font-size:1.3rem;color:#fff;margin-bottom:6px;line-height:1.22}
  .service-card p{font-size:0.86rem;color:#dfe4ea}
  @media (max-width:900px){.card-grid{grid-template-columns:1fr;gap:24px}.service-card{min-height:260px}}
  #services-anchor{display:flex;flex-direction:column;flex:1;min-height:0;padding-top:32px}

  /* ---------- featured projects ("our work") ---------- */
  .work-section{background:var(--navy-950);color:#fff}
  .work-section .eyebrow{display:flex;align-items:center;gap:10px;color:var(--gold-300)}
  .work-section .eyebrow::before{content:"";width:24px;height:1px;background:var(--gold-500);flex:none}
  .work-section h2{color:#fff}
  .work-section .view-all{color:var(--gold-300);border-bottom-color:var(--gold-500)}
  .work-section .view-all:hover{color:var(--gold-500)}
  .work-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
  .work-card{background:var(--navy-900);border:1px solid rgba(255,255,255,0.08);border-radius:6px;overflow:hidden;cursor:pointer}
  .work-photo{position:relative;aspect-ratio:4/3;background-size:cover;background-position:center;transition:background-size .5s ease}
  .work-card:hover .work-photo{background-size:114%}
  .work-tag{
    position:absolute;top:16px;left:16px;
    background:var(--gold-500);color:var(--navy-950);
    font-size:0.76rem;font-weight:600;
    padding:6px 14px;border-radius:999px;
  }
  .work-info{padding:20px 22px}
  .work-info-top{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
  .work-info-top h3{font-size:1.05rem;color:#fff;line-height:1.2}
  .work-value{color:var(--gold-300);font-weight:700;font-size:1.05rem;white-space:nowrap}
  .work-loc{display:flex;align-items:center;gap:6px;margin-top:12px;font-size:0.86rem;color:#9fabb9}
  .work-loc svg{width:14px;height:14px;flex:none}
  @media (max-width:900px){.work-grid{grid-template-columns:1fr}}

  .work-info .work-desc{margin-top:10px;font-size:0.84rem;color:#9fabb9;line-height:1.5}

  /* ---------- FAQ ---------- */
  .faq-section{background:var(--navy-950);color:#fff}
  .faq-grid{display:grid;grid-template-columns:0.85fr 1.15fr;gap:64px;align-items:start}
  .faq-intro h2{color:#fff;font-size:clamp(1.8rem,3vw,2.4rem)}
  .faq-intro p{margin-top:16px;color:#9fabb9;font-size:1rem;max-width:38ch}
  .faq-intro .btn{margin-top:32px}
  .faq-list{display:flex;flex-direction:column;gap:16px}
  .faq-item{border:1px solid rgba(255,255,255,0.12);border-radius:6px;overflow:hidden}
  .faq-q{
    width:100%;display:flex;align-items:center;justify-content:space-between;gap:20px;
    padding:22px 24px;background:none;border:0;text-align:left;cursor:pointer;
    font-family:"IBM Plex Sans",sans-serif;font-size:1.02rem;font-weight:600;color:#fff;
  }
  .faq-item.open .faq-q{color:var(--gold-300)}
  .faq-toggle{
    width:32px;height:32px;border-radius:50%;flex:none;
    display:flex;align-items:center;justify-content:center;
    border:1px solid rgba(255,255,255,0.25);color:#fff;
    transition:background .2s ease,border-color .2s ease,color .2s ease;
  }
  .faq-toggle::before{content:"+";font-size:1.2rem;line-height:1}
  .faq-item.open .faq-toggle{background:var(--gold-500);border-color:var(--gold-500);color:var(--navy-950)}
  .faq-item.open .faq-toggle::before{content:"\2212"}
  .faq-a{max-height:0;overflow:hidden;transition:max-height .35s ease}
  .faq-a p{padding:0 24px 22px;font-size:0.92rem;color:#9fabb9;line-height:1.6;max-width:64ch}
  .faq-item.open .faq-a{max-height:220px}
  @media (max-width:860px){.faq-grid{grid-template-columns:1fr;gap:32px}}

  /* ---------- claims spotlight ---------- */
  .spotlight{
    background:var(--navy-950) url(assets/images/plaza.jpg) 30% center / cover no-repeat;
    color:#fff;
    position:relative;
    overflow:hidden;
  }
  .spotlight::before{
    content:"";
    position:absolute;inset:0;
    background:linear-gradient(100deg, rgba(16,31,56,.85) 0%, rgba(16,31,56,.6) 55%, rgba(16,31,56,.35) 100%);
  }
  .spotlight-inner{
    position:relative;z-index:2;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:56px;
    align-items:center;
  }
  .spotlight h2{color:#fff;font-size:clamp(1.7rem,2.8vw,2.3rem)}
  .spotlight p{color:#b7c0cc;margin-top:18px;font-size:1rem;max-width:48ch}
  .spotlight ul{list-style:none;margin:28px 0 0;padding:0;display:grid;gap:14px}
  .spotlight li{display:flex;gap:12px;font-size:0.92rem;color:#dfe4ea}
  .spotlight li svg{flex:none;width:16px;height:16px;margin-top:3px;color:var(--gold-500)}
  @media (max-width:860px){.spotlight-inner{grid-template-columns:1fr}}

  /* ---------- sectors ---------- */
  .sector-photo-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
  .sector-photo{
    position:relative;overflow:hidden;border-radius:4px;
    aspect-ratio:1/1;background-size:cover;background-position:center;
    transition:transform .35s ease, background-size .5s ease;
    cursor:pointer;
  }
  .sector-photo:hover{transform:translateY(-4px);background-size:114%}
  .sector-photo::before{
    content:"";position:absolute;inset:0;
    background:linear-gradient(0deg, rgba(16,31,56,.85) 0%, rgba(16,31,56,.1) 55%, rgba(16,31,56,0) 75%);
  }
  .sector-photo span{position:absolute;left:16px;bottom:14px;z-index:2;color:#fff;font-weight:600;font-size:1.05rem}
  @media (max-width:980px){.sector-photo-grid{grid-template-columns:repeat(3,1fr)}}
  @media (max-width:760px){.sector-photo-grid{grid-template-columns:repeat(2,1fr)}}
  @media (max-width:480px){.sector-photo-grid{grid-template-columns:1fr}}

  /* ---------- leadership ---------- */
  .lead-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:40px;max-width:820px}
  .lead-card{text-align:left;display:grid;grid-template-columns:160px 1fr;gap:20px}
  .lead-photo{
    aspect-ratio:3/3.4;
    background:linear-gradient(165deg,var(--cream-100),var(--cream-50));
    border:1px solid var(--line);
    position:relative;
    overflow:hidden;
  }
  .lead-photo img{width:100%;height:100%;object-fit:cover}
  .lead-card h3{font-size:1.1rem;color:var(--navy-900)}
  .lead-card .role{font-size:0.8rem;color:var(--gold-600);margin-top:2px;font-weight:600}
  .lead-card .creds{font-size:0.74rem;color:var(--ink-600);margin-top:2px;letter-spacing:0.02em}
  .lead-card .bio{font-size:0.84rem;color:var(--ink-600);margin-top:10px}
  @media (max-width:760px){.lead-grid{grid-template-columns:1fr}}
  @media (max-width:480px){.lead-card{grid-template-columns:110px 1fr}}

  /* ---------- clients marquee ---------- */
  .clients-band{background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:56px 0}
  .logo-rows{display:flex;flex-direction:column;gap:22px}
  .logo-track-wrap{overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
  .logo-track{display:flex;gap:56px;align-items:center;animation:ticker 32s linear infinite}
  .logo-track.rev{animation-direction:reverse}
  .logo-item{
    flex:none;
    height:42px;
    display:flex;align-items:center;justify-content:center;
  }
  .logo-item img{height:100%;width:auto;max-width:150px;object-fit:contain;display:block}
  @keyframes ticker{from{transform:translateX(0)}to{transform:translateX(-50%)}}
  @media (prefers-reduced-motion:reduce){.logo-track{animation:none}}

  /* ---------- insights ---------- */
  .insight-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
  .insight-card{border-top:2px solid var(--navy-900)}
  .insight-card .meta{
    display:flex;gap:10px;align-items:center;
    padding-top:16px;
    font-family:"IBM Plex Mono",monospace;
    font-size:0.7rem;
    letter-spacing:0.05em;
    color:var(--gold-600);
    text-transform:uppercase;
  }
  .insight-card h3{font-size:1.08rem;margin-top:12px;line-height:1.32}
  .insight-card p{font-size:0.86rem;color:var(--ink-600);margin-top:10px}
  .insight-card .read{
    display:inline-block;margin-top:16px;
    font-size:0.82rem;font-weight:600;color:var(--navy-900);
    border-bottom:1px solid var(--gold-500);
  }
  @media (max-width:860px){.insight-grid{grid-template-columns:1fr}}

  /* ---------- final cta ---------- */
  .final-cta{
    background:var(--navy-950) url(assets/images/rooftop.jpg) center/cover no-repeat;
    color:#fff;
    position:relative;
    overflow:hidden;
    text-align:center;
    padding:120px 0 160px;
  }
  .final-cta::before{
    content:"";
    position:absolute;inset:0;
    background:linear-gradient(180deg, rgba(16,31,56,.4) 0%, rgba(16,31,56,.55) 60%, var(--navy-950) 100%);
  }
  .final-cta-inner{position:relative;z-index:2;max-width:640px;margin:0 auto}
  .final-cta h2{color:#fff;font-size:clamp(1.8rem,3.4vw,2.6rem)}
  .final-cta p{margin-top:16px;color:#dfe4ea;font-size:1.02rem}
  .final-cta .cta-row{display:flex;justify-content:center;gap:16px;margin-top:32px;flex-wrap:wrap}
  .btn-navy{background:var(--navy-950);color:#fff}
  .btn-navy:hover{background:var(--navy-700)}

  /* ---------- footer: floating rounded card on a dark backdrop ---------- */
  footer{
    background:var(--navy-950);
    padding:0 32px 40px;
    position:relative;z-index:3;margin-top:-96px;
  }
  .footer-card{
    max-width:1400px;
    margin:0 auto;
    background:var(--navy-900);
    border-radius:28px;
    padding:52px 48px 28px;
  }
  .footer-grid{
    display:grid;
    grid-template-columns:1.5fr 1fr 1fr 1.2fr;
    gap:32px;
    padding-bottom:40px;
  }
  .footer-brand .mark{font-family:"Newsreader",serif;font-size:1.4rem;color:#fff;font-weight:600}
  .footer-brand p{font-size:0.86rem;color:#aab4c0;margin-top:14px;max-width:34ch}
  .footer-rics{margin-top:18px}
  .footer-rics img{height:34px;width:auto;display:block}
  .footer-rics a, .tag-rics a, .stat-cell .num a, .eyebrow-pill a{display:inline-block;line-height:0}
  .footer-social{display:flex;gap:10px;margin-top:20px;flex-wrap:wrap}
  .footer-social a,.footer-social span{
    width:36px;height:36px;
    display:flex;align-items:center;justify-content:center;
    background:rgba(255,255,255,0.06);
    border:1px solid rgba(255,255,255,0.14);
    border-radius:6px;color:#fff;
    transition:background .15s ease,border-color .15s ease,color .15s ease;
  }
  .footer-social a:hover{background:var(--gold-500);border-color:var(--gold-500);color:var(--navy-950)}
  .footer-social span{opacity:.5;cursor:default}
  .footer-social svg{width:15px;height:15px}
  .footer-col h4{
    color:#fff;font-family:"IBM Plex Sans",sans-serif;font-size:0.8rem;
    letter-spacing:0.06em;text-transform:uppercase;font-weight:600;margin-bottom:18px;
  }
  .footer-col ul{list-style:none;margin:0;padding:0;display:grid;gap:11px}
  .footer-col a,.footer-col li span{font-size:0.86rem;color:#aab4c0}
  .footer-col a:hover{color:var(--gold-300)}
  .footer-contact{display:grid;gap:14px}
  .footer-contact-row{display:flex;align-items:flex-start;gap:10px;font-size:0.86rem;color:#aab4c0;line-height:1.5}
  .footer-contact-row svg{width:15px;height:15px;color:var(--gold-500);flex:none;margin-top:2px}
  .footer-contact-row a:hover{color:var(--gold-300)}
  .footer-bottom{
    display:flex;justify-content:space-between;align-items:center;
    padding-top:22px;border-top:1px solid rgba(255,255,255,0.1);
    font-size:0.78rem;color:#7c8794;flex-wrap:wrap;gap:12px;
  }
  .footer-bottom a{color:#7c8794}
  .footer-bottom a:hover{color:var(--gold-300)}
  @media (max-width:980px){.footer-grid{grid-template-columns:1fr 1fr}.footer-card{padding:40px 28px 24px}}
  @media (max-width:560px){.footer-grid{grid-template-columns:1fr}}

  /* ---------- splash / preloader ----------
     A plumb bob dropping to rest and a "calculating" counter — both
     literal nods to what a quantity surveyor does (finding true
     vertical, measuring value) rather than a generic spinner. Shown
     once per browser session (see the JS below), skipped entirely
     under prefers-reduced-motion. */
  body.splash-lock{overflow:hidden}
  #splash{
    position:fixed;inset:0;z-index:500;
    background:var(--navy-950);
    display:flex;align-items:center;justify-content:center;
    overflow:hidden;
  }
  #splash .splash-grid{
    position:absolute;inset:0;
    background-image:
      linear-gradient(rgba(255,255,255,0.05) 1px, transparent 1px),
      linear-gradient(90deg, rgba(255,255,255,0.05) 1px, transparent 1px);
    background-size:56px 56px;
    -webkit-mask-image:radial-gradient(ellipse 70% 60% at 50% 45%, #000 30%, transparent 80%);
    mask-image:radial-gradient(ellipse 70% 60% at 50% 45%, #000 30%, transparent 80%);
    opacity:0;
    animation:splashGridIn 1.3s ease forwards;
  }
  @keyframes splashGridIn{to{opacity:1}}
  .splash-inner{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;text-align:center}
  .splash-plumb{overflow:visible}
  .plumb-grid line{stroke:rgba(193,169,113,0.45)}
  .plumb-line{
    stroke:var(--gold-500);stroke-width:1.5;
    stroke-dasharray:96;stroke-dashoffset:96;
    animation:plumbDrop 1.1s cubic-bezier(.22,1,.36,1) .15s forwards;
  }
  .plumb-bob{
    fill:var(--gold-500);opacity:0;transform-origin:30px 96px;
    animation:bobSettle 1.1s cubic-bezier(.34,1.56,.64,1) .15s forwards;
  }
  @keyframes plumbDrop{to{stroke-dashoffset:0}}
  @keyframes bobSettle{
    0%{opacity:0;transform:translateY(-40px) rotate(-5deg)}
    55%{opacity:1;transform:translateY(0) rotate(3deg)}
    75%{transform:translateY(0) rotate(-1.5deg)}
    100%{opacity:1;transform:translateY(0) rotate(0)}
  }
  .splash-word{margin-top:22px;opacity:0;transform:translateY(10px);animation:splashFade .7s ease 1.05s forwards}
  .splash-mark{display:block;font-family:"Newsreader",serif;font-weight:600;font-size:2rem;color:#fff}
  .splash-mark em{color:var(--gold-300);font-style:normal}
  .splash-sub{display:block;margin-top:6px;font-size:0.66rem;letter-spacing:0.32em;color:var(--gold-300);text-transform:uppercase}
  .splash-meter{margin-top:36px;opacity:0;animation:splashFade .6s ease 1.3s forwards;display:flex;flex-direction:column;align-items:center;gap:11px}
  .splash-count-row{font-family:"IBM Plex Mono",monospace;color:var(--gold-300);font-size:0.9rem;font-variant-numeric:tabular-nums}
  .splash-bar{width:180px;height:1px;background:rgba(255,255,255,0.15);position:relative}
  .splash-bar-fill{position:absolute;left:0;top:0;height:100%;width:0%;background:var(--gold-500);transition:width 1.5s cubic-bezier(.65,0,.35,1)}
  .splash-label{font-family:"IBM Plex Mono",monospace;font-size:0.62rem;letter-spacing:0.16em;color:#7c8794;text-transform:uppercase}
  @keyframes splashFade{to{opacity:1;transform:translateY(0)}}
  #splash.done{animation:splashOut .7s cubic-bezier(.65,0,.35,1) forwards;pointer-events:none}
  @keyframes splashOut{to{opacity:0;transform:translateY(-28px)}}
  #splash.skip{display:none}
  @media (prefers-reduced-motion:reduce){#splash{display:none}}
