/* ============================================================
   Aivanta Global — combined stylesheet
   ============================================================ */

/* ---------- SHARED BASE (from index.css) ---------- */

/* ---------- ACCESSIBILITY: focus visibility & skip link ---------- */
a:focus-visible,
button:focus-visible,
.btn:focus-visible,
.nav-toggle:focus-visible,
.filter-chip:focus-visible,
.industry-chip:focus-visible{
  outline:2px solid var(--teal);
  outline-offset:3px;
  border-radius:2px;
}
.skip-link{
  position:absolute;
  left:16px; top:-60px;
  background:var(--ink);
  color:#fff;
  padding:12px 20px;
  font-family:'Inter', sans-serif;
  font-size:14px;
  font-weight:600;
  border-radius:2px;
  z-index:1000;
  transition:top .2s ease;
}
.skip-link:focus{
  top:16px;
  outline:2px solid var(--teal);
  outline-offset:2px;
}
:root{
    --ink:#0D1B2A;
    --ink-2:#16283D;
    --ink-3:#1E3550;
    --paper:#FFFFFF;
    --mist:#F1F5F4;
    --mist-2:#E7ECEA;
    --teal:#6D3CE0;
    --teal-dark:#5A2FC2;
    --gold:#7BA8FF;
    --slate:#4A5A68;
    --slate-light:#5A6B76;
    --line:#D9DFDD;
    --max:1180px;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{
    font-family:'Inter', sans-serif;
    color:var(--ink);
    background:var(--paper);
    line-height:1.5;
    -webkit-font-smoothing:antialiased;
  }
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    *{animation-duration:0.01ms !important; transition-duration:0.01ms !important;}
  }
  a{color:inherit; text-decoration:none;}
  img,svg{display:block;}
  .wrap{max-width:var(--max); margin:0 auto; padding:0 32px;}
  h1,h2,h3,h4{
    font-family:'Poppins', sans-serif;
    font-weight:600;
    letter-spacing:-0.01em;
    line-height:1.08;
  }
  em{font-style:italic; font-weight:500; color:var(--gold);}
  .eyebrow{
    font-family:'IBM Plex Mono', monospace;
    font-size:12px;
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:var(--teal-dark);
    display:flex;
    align-items:center;
    gap:10px;
  }
  .eyebrow::before{
    content:"";
    width:7px; height:7px;
    background:var(--teal);
    transform:rotate(45deg);
    display:inline-block;
    flex-shrink:0;
  }
  .eyebrow.on-dark{color:#FFC9AE;}
  .eyebrow.on-dark::before{background:var(--gold);}

  /* ---------- NAV ---------- */
  header{
    position:sticky; top:0; z-index:100;
    background:rgba(255,255,255,0.88);
    -webkit-backdrop-filter:blur(10px);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line);
  }
  nav{
    display:flex; align-items:center; justify-content:space-between;
    height:76px;
  }
  .logo{
    display:flex; align-items:center;
  }
  .logo-img{
    height:56px;
    width:auto;
    display:block;
    transition:transform .2s ease, filter .2s ease;
  }
  .logo:hover .logo-img,
  .logo:focus-visible .logo-img{
    transform:scale(1.08);
    filter:drop-shadow(0 4px 14px rgba(109,60,224,0.45));
  }
  .footer-brand .logo-img{height:58px;}
  .navlinks{
    display:flex; gap:34px;
    font-size:14.5px; font-weight:500;
  }
  .navlinks a{
    position:relative; padding:6px 0; color:var(--ink);
  }
  .navlinks a::after{
    content:""; position:absolute; left:0; bottom:0;
    width:0; height:2px; background:var(--teal);
    transition:width .25s ease;
  }
  .navlinks a:hover::after{width:100%;}
  .navcta{display:flex; align-items:center; gap:18px;}
  .nav-toggle{
    display:none;
    flex-direction:column; justify-content:center; gap:5px;
    width:32px; height:32px; padding:0;
    background:none; border:none; cursor:pointer;
    flex-shrink:0;
  }
  .nav-toggle span{
    width:100%; height:2px; background:var(--ink);
    transition:transform .25s ease, opacity .25s ease;
  }
  .nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;}
  .nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
  .btn{
    display:inline-flex; align-items:center; gap:8px;
    font-size:14px; font-weight:600;
    padding:11px 20px;
    border-radius:2px;
    border:1px solid transparent;
    cursor:pointer;
    transition:all .2s ease;
  }
  .btn-primary{background:var(--ink); color:#fff;}
  .btn-primary:hover{background:var(--teal-dark);}
  .btn-ghost{border-color:var(--ink); color:var(--ink);}
  .btn-ghost:hover{background:var(--ink); color:#fff;}
  .btn-onlight{border-color:rgba(255,255,255,0.4); color:#fff;}
  .btn-onlight:hover{background:#fff; color:var(--ink); border-color:#fff;}
  @media (max-width:900px){
    .nav-toggle{display:flex;}
    .navlinks{
      display:none;
      position:absolute; top:76px; left:0; right:0;
      flex-direction:column; gap:0;
      background:#fff;
      border-bottom:1px solid var(--line);
      box-shadow:0 12px 24px rgba(13,27,42,0.08);
      padding:6px 32px 18px;
    }
    .navlinks.open{display:flex;}
    .navlinks a{padding:14px 0; border-bottom:1px solid var(--line);}
    .navlinks a:last-child{border-bottom:none;}
  }


  /* ---------- HERO ---------- */
  .hero{
    position:relative;
    background:linear-gradient(180deg, var(--ink) 0%, var(--ink) 62%, var(--ink-2) 100%);
    color:#fff;
    overflow:hidden;
    padding-top:96px;
  }
  .hero-grid{
    display:grid; grid-template-columns:1.1fr 0.9fr; gap:40px;
    align-items:end;
    padding-bottom:64px;
  }
  .hero h1{
    font-size:clamp(40px, 5.4vw, 68px);
    color:#fff;
    margin:22px 0 26px;
  }
  .hero p.lede{
    font-size:18px; color:#B9C6CF; max-width:44ch; margin-bottom:34px;
  }
  .hero-actions{display:flex; gap:16px; flex-wrap:wrap;}
  .hero-visual{
    position:relative;
    height:100%;
    min-height:260px;
    display:flex;
    align-items:flex-end;
  }
  .horizon-instrument{
    width:100%;
    position:relative;
    padding-bottom:8px;
  }
  .horizon-instrument svg{width:100%; height:auto;}

  .ai-node{
    filter:drop-shadow(0 0 6px rgba(123,168,255,0.55));
    animation:aiPulse 3.2s ease-in-out infinite;
    transform-origin:center;
    transform-box:fill-box;
  }
  @keyframes aiPulse{
    0%, 100%{ opacity:0.75; transform:scale(1); }
    50%{ opacity:1; transform:scale(1.35); }
  }
  .pulse-line{
    stroke-dasharray:10 190;
    stroke-linecap:round;
    animation:aiFlow 3s linear infinite;
    opacity:0.9;
  }
  @keyframes aiFlow{
    0%{ stroke-dashoffset:200; opacity:0; }
    10%{ opacity:1; }
    90%{ opacity:1; }
    100%{ stroke-dashoffset:0; opacity:0; }
  }

  /* horizon line motif under hero, sits at "sea level" */
  .horizon-band{
    position:relative;
    height:1px;
    background:linear-gradient(90deg, transparent, rgba(255,255,255,0.35) 20%, rgba(255,255,255,0.35) 80%, transparent);
    margin-top:6px;
  }
  .horizon-band::before{
    content:"";
    position:absolute; left:50%; top:50%;
    width:9px; height:9px;
    background:var(--gold);
    transform:translate(-50%,-50%) rotate(45deg);
  }

  @media (max-width:860px){
    .hero-grid{grid-template-columns:1fr;}
  }

  /* ---------- SECTION HELPERS ---------- */
  section{padding:96px 0;}
  .section-head{
    display:grid; grid-template-columns:1fr 1fr; gap:40px;
    align-items:end;
    margin-bottom:56px;
  }
  .section-head h2{font-size:clamp(28px,3.4vw,42px);}
  .section-head .desc{color:var(--slate); font-size:16px; max-width:46ch;}
  @media (max-width:760px){ .section-head{grid-template-columns:1fr;} }

  .on-mist{background:var(--mist);}

  /* ---------- MISSION STRIP ---------- */
  .mission{
    display:grid; grid-template-columns:0.9fr 1.4fr; gap:60px;
    align-items:start;
  }
  .mission blockquote{
    font-family:'Poppins', sans-serif;
    font-style:italic;
    font-size:clamp(22px,2.6vw,30px);
    line-height:1.35;
    font-weight:500;
    color:var(--ink);
  }
  .mission-points{display:flex; flex-direction:column; gap:22px;}
  .mission-point{
    display:flex; gap:16px; padding-bottom:22px;
    border-bottom:1px solid var(--line);
  }
  .mission-point:last-child{border-bottom:none;}
  .mission-point .idx{
    font-family:'IBM Plex Mono', monospace;
    color:var(--teal-dark); font-size:13px; padding-top:3px;
  }
  .mission-point h4{font-size:17px; font-weight:600; margin-bottom:6px;}
  .mission-point p{font-size:14.5px; color:var(--slate);}
  @media (max-width:820px){ .mission{grid-template-columns:1fr;} }

  /* ---------- SERVICES ---------- */
  .services-grid{
    display:grid; grid-template-columns:repeat(3,1fr); gap:1px;
    background:var(--line);
    border:1px solid var(--line);
  }
  .service-card{
    background:#fff;
    padding:34px 30px;
    display:flex; flex-direction:column; gap:16px;
    transition:background .2s ease;
  }
  .service-card:hover{background:var(--mist);}
  .service-card .icon{
    width:38px; height:38px;
    display:flex; align-items:center; justify-content:center;
  }
  .service-card h3{font-size:19px;}
  .service-card p{font-size:14.5px; color:var(--slate); flex-grow:1;}
  .service-card .go{
    font-size:13.5px; font-weight:600; color:var(--teal-dark);
    display:flex; align-items:center; gap:6px;
  }
  .service-card .go svg{transition:transform .2s ease;}
  .service-card:hover .go svg{transform:translateX(4px);}
  @media (max-width:900px){ .services-grid{grid-template-columns:repeat(2,1fr);} }
  @media (max-width:620px){ .services-grid{grid-template-columns:1fr;} }

  /* ---------- VANTAGE LINE (signature) ---------- */
  .vantage{
    background:var(--ink);
    color:#fff;
    padding:88px 0;
    position:relative;
  }
  .vantage-head{
    display:flex; justify-content:space-between; align-items:flex-end;
    flex-wrap:wrap; gap:20px;
    margin-bottom:56px;
  }
  .vantage-head h2{color:#fff; font-size:clamp(26px,3vw,36px); max-width:16ch;}
  .vantage-head p{color:#93A4AF; max-width:38ch; font-size:15px;}
  .vantage-track{
    position:relative;
    border-top:1px solid rgba(255,255,255,0.18);
    border-bottom:1px solid rgba(255,255,255,0.18);
    display:grid; grid-template-columns:repeat(4,1fr);
  }
  .vantage-track::before{
    content:"";
    position:absolute; left:0; right:0; top:50%;
    height:1px; background:rgba(255,255,255,0.08);
  }
  .vantage-item{
    padding:36px 24px;
    border-left:1px solid rgba(255,255,255,0.12);
    position:relative;
  }
  .vantage-item:first-child{border-left:none;}
  .vantage-item .mark{
    width:8px; height:8px; background:var(--teal);
    transform:rotate(45deg); margin-bottom:18px;
  }
  .vantage-item:nth-child(2) .mark{background:var(--gold);}
  .vantage-item:nth-child(4) .mark{background:var(--gold);}
  .vantage-item .num{
    font-family:'IBM Plex Mono', monospace;
    font-size:clamp(30px,3.6vw,44px);
    font-weight:500;
  }
  .vantage-item .num .suffix{color:var(--teal); font-size:0.55em; margin-left:3px;}
  .vantage-item .cap{font-size:13.5px; color:#8FA0AB; margin-top:10px;}
  @media (max-width:820px){ .vantage-track{grid-template-columns:repeat(2,1fr);} .vantage-item:nth-child(3){border-left:none;} }

  /* ---------- INDUSTRIES ---------- */
  .industry-row{
    display:flex; flex-wrap:wrap;
    border-top:1px solid var(--line);
  }
  .industry-chip{
    flex:1 1 auto;
    min-width:150px;
    padding:22px 26px;
    border-right:1px solid var(--line);
    border-bottom:1px solid var(--line);
    font-size:15px; font-weight:600;
    display:flex; align-items:center; gap:10px;
    transition:color .2s ease;
  }
  .industry-chip:hover{color:var(--teal-dark);}
  .industry-chip::before{
    content:""; width:6px; height:6px; background:var(--slate-light);
    transform:rotate(45deg); flex-shrink:0;
  }
  .industry-chip:hover::before{background:var(--teal);}

  /* ---------- PROOF ---------- */
  .proof{
    display:grid; grid-template-columns:1fr 1fr; gap:0;
    border:1px solid var(--line);
  }
  .proof-copy{padding:56px; display:flex; flex-direction:column; justify-content:center; gap:22px;}
  .proof-copy blockquote{
    font-family:'Poppins', sans-serif; font-size:24px; font-style:italic; line-height:1.4;
  }
  .proof-copy .attrib{font-size:13.5px; color:var(--slate); font-family:'IBM Plex Mono', monospace;}
  .proof-panel{
    background:var(--ink-2);
    color:#fff;
    padding:56px;
    display:flex; flex-direction:column; justify-content:center; gap:26px;
    border-left:1px solid var(--line);
  }
  .proof-stat{display:flex; justify-content:space-between; align-items:baseline; border-bottom:1px solid rgba(255,255,255,0.14); padding-bottom:16px;}
  .proof-stat:last-child{border-bottom:none;}
  .proof-stat .k{font-size:14px; color:#93A4AF;}
  .proof-stat .v{font-family:'IBM Plex Mono', monospace; font-size:20px; color:var(--teal);}
  @media (max-width:860px){ .proof{grid-template-columns:1fr;} .proof-panel{border-left:none; border-top:1px solid var(--line);} }

  /* ---------- AI SHOWCASE (index) ---------- */
  .ai-showcase{
    background:linear-gradient(180deg, var(--ink) 0%, var(--ink-2) 100%);
    color:#fff;
    padding:96px 0;
    overflow:hidden;
  }
  .ai-showcase-grid{
    display:grid; grid-template-columns:1.05fr 0.95fr; gap:56px;
    align-items:center;
  }
  .ai-copy h2{color:#fff; font-size:clamp(28px,3.4vw,40px); margin:18px 0 18px; max-width:14ch;}
  .ai-lede{color:#B9C6CF; font-size:16px; max-width:50ch; margin-bottom:32px;}
  .ai-points{list-style:none; display:flex; flex-direction:column; gap:22px; margin-bottom:36px;}
  .ai-points li{display:flex; gap:16px;}
  .ai-num{
    font-family:'IBM Plex Mono', monospace; font-size:13px; color:var(--gold);
    padding-top:3px; flex-shrink:0;
  }
  .ai-points h4{color:#fff; font-size:16.5px; margin-bottom:6px;}
  .ai-points p{color:#93A4AF; font-size:14px;}
  .ai-visual{display:flex; align-items:center; justify-content:center;}
  .ai-orbit{width:100%; max-width:420px; height:auto;}
  .orbit-ring{transform-origin:210px 210px; animation:orbitSpin linear infinite;}
  .orbit-ring-1{animation-duration:14s;}
  .orbit-ring-2{animation-duration:20s; animation-direction:reverse;}
  .orbit-ring-3{animation-duration:9s;}
  @keyframes orbitSpin{ from{transform:rotate(0deg);} to{transform:rotate(360deg);} }
  .core-pulse{
    animation:corePulse 2.4s ease-in-out infinite;
    transform-origin:210px 210px;
  }
  @keyframes corePulse{
    0%, 100%{ r:40; opacity:0.3; }
    50%{ r:52; opacity:0; }
  }
  @media (max-width:900px){
    .ai-showcase-grid{grid-template-columns:1fr; gap:44px;}
    .ai-visual{order:-1;}
    .ai-orbit{max-width:280px;}
  }

  /* ---------- CTA BANNER ---------- */
  .cta-banner{
    background:linear-gradient(120deg, var(--teal-dark), var(--ink));
    color:#fff;
    padding:80px 0;
    text-align:center;
  }
  .cta-banner h2{color:#fff; font-size:clamp(28px,3.6vw,40px); margin-bottom:18px;}
  .cta-banner p{color:#CFEFE8; max-width:50ch; margin:0 auto 34px; font-size:16px;}

  /* ---------- FOOTER ---------- */
  footer{background:var(--ink); color:#93A4AF; padding-top:72px;}
  .footer-grid{
    display:grid; grid-template-columns:1.4fr repeat(3,1fr); gap:32px;
    padding-bottom:56px;
    border-bottom:1px solid rgba(255,255,255,0.12);
  }
    .footer-brand p{font-size:14px; margin-top:16px; max-width:32ch; color:#7C8B96;}
  .social-row{
    display:flex; align-items:center; gap:22px;
    margin-top:20px;
  }
  .social-link{
    display:inline-flex; align-items:center; gap:8px;
    font-size:13.5px; font-weight:600; color:#B9C6CF;
    transition:color .2s ease;
  }
  .social-link:hover{color:#fff;}
  .social-link svg{
    width:18px; height:18px;
    fill:currentColor;
    flex-shrink:0;
  }
  .footer-col h5{
    font-family:'IBM Plex Mono', monospace; font-size:12px;
    letter-spacing:0.1em; text-transform:uppercase; color:#8695A0; margin-bottom:18px;
  }
  .footer-col a{display:block; font-size:14px; color:#B9C6CF; margin-bottom:12px;}
  .footer-col .social-row{margin-top:8px;}
  .footer-col .social-link{display:inline-flex; margin-bottom:0;}
  .footer-col a:hover{color:#fff;}
  .footer-bottom{
    display:flex; justify-content:space-between; align-items:center;
    padding:28px 0; font-size:13px; color:#8695A0; flex-wrap:wrap; gap:12px;
  }
  @media (max-width:900px){ .footer-grid{grid-template-columns:1fr 1fr;} }
  @media (max-width:560px){ .footer-grid{grid-template-columns:1fr;} }

/* ---------- SERVICES PAGE ---------- */
:root{
    --ink:#0D1B2A;
    --ink-2:#16283D;
    --ink-3:#1E3550;
    --paper:#FFFFFF;
    --mist:#F1F5F4;
    --mist-2:#E7ECEA;
    --teal:#6D3CE0;
    --teal-dark:#5A2FC2;
    --gold:#7BA8FF;
    --slate:#4A5A68;
    --slate-light:#5A6B76;
    --line:#D9DFDD;
    --max:1180px;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{
    font-family:'Inter', sans-serif;
    color:var(--ink);
    background:var(--paper);
    line-height:1.5;
    -webkit-font-smoothing:antialiased;
  }
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    *{animation-duration:0.01ms !important; transition-duration:0.01ms !important;}
  }
  a{color:inherit; text-decoration:none;}
  img,svg{display:block;}
  .wrap{max-width:var(--max); margin:0 auto; padding:0 32px;}
  h1,h2,h3,h4{
    font-family:'Poppins', sans-serif;
    font-weight:600;
    letter-spacing:-0.01em;
    line-height:1.08;
  }
  em{font-style:italic; font-weight:500; color:var(--gold);}
  .eyebrow{
    font-family:'IBM Plex Mono', monospace;
    font-size:12px;
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:var(--teal-dark);
    display:flex;
    align-items:center;
    gap:10px;
  }
  .eyebrow::before{
    content:"";
    width:7px; height:7px;
    background:var(--teal);
    transform:rotate(45deg);
    display:inline-block;
    flex-shrink:0;
  }
  .eyebrow.on-dark{color:#FFC9AE;}
  .eyebrow.on-dark::before{background:var(--gold);}

  /* ---------- NAV ---------- */
  header{
    position:sticky; top:0; z-index:100;
    background:rgba(255,255,255,0.88);
    -webkit-backdrop-filter:blur(10px);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line);
  }
  nav{
    display:flex; align-items:center; justify-content:space-between;
    height:76px;
  }
  .logo{
    display:flex; align-items:center;
  }
  .logo-img{
    height:56px;
    width:auto;
    display:block;
  }
  .footer-brand .logo-img{height:58px;}
  .navlinks{
    display:flex; gap:34px;
    font-size:14.5px; font-weight:500;
  }
  .navlinks a{
    position:relative; padding:6px 0; color:var(--ink);
  }
  .navlinks a.current{color:var(--teal-dark);}
  .navlinks a::after{
    content:""; position:absolute; left:0; bottom:0;
    width:0; height:2px; background:var(--teal);
    transition:width .25s ease;
  }
  .navlinks a:hover::after, .navlinks a.current::after{width:100%;}
  .navcta{display:flex; align-items:center; gap:18px;}
  .nav-toggle{
    display:none;
    flex-direction:column; justify-content:center; gap:5px;
    width:32px; height:32px; padding:0;
    background:none; border:none; cursor:pointer;
    flex-shrink:0;
  }
  .nav-toggle span{
    width:100%; height:2px; background:var(--ink);
    transition:transform .25s ease, opacity .25s ease;
  }
  .nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;}
  .nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
  .btn{
    display:inline-flex; align-items:center; gap:8px;
    font-size:14px; font-weight:600;
    padding:11px 20px;
    border-radius:2px;
    border:1px solid transparent;
    cursor:pointer;
    transition:all .2s ease;
  }
  .btn-primary{background:var(--ink); color:#fff;}
  .btn-primary:hover{background:var(--teal-dark);}
  .btn-ghost{border-color:var(--ink); color:var(--ink);}
  .btn-ghost:hover{background:var(--ink); color:#fff;}
  .btn-onlight{border-color:rgba(255,255,255,0.4); color:#fff;}
  .btn-onlight:hover{background:#fff; color:var(--ink); border-color:#fff;}
  @media (max-width:900px){
    .nav-toggle{display:flex;}
    .navlinks{
      display:none;
      position:absolute; top:76px; left:0; right:0;
      flex-direction:column; gap:0;
      background:#fff;
      border-bottom:1px solid var(--line);
      box-shadow:0 12px 24px rgba(13,27,42,0.08);
      padding:6px 32px 18px;
    }
    .navlinks.open{display:flex;}
    .navlinks a{padding:14px 0; border-bottom:1px solid var(--line);}
    .navlinks a:last-child{border-bottom:none;}
  }


  /* ---------- PAGE HERO (simpler than home) ---------- */
  .page-hero{
    background:linear-gradient(180deg, var(--ink) 0%, var(--ink-2) 100%);
    color:#fff;
    padding:88px 0 72px;
  }
  .page-hero h1{
    font-size:clamp(36px,5vw,58px);
    color:#fff;
    margin:20px 0 20px;
    max-width:14ch;
  }
  .page-hero p{
    font-size:17px; color:#B9C6CF; max-width:52ch;
  }
  .page-hero .horizon-band{
    position:relative; height:1px; margin-top:56px;
    background:linear-gradient(90deg, transparent, rgba(255,255,255,0.35) 20%, rgba(255,255,255,0.35) 80%, transparent);
  }
  .page-hero .horizon-band::before{
    content:""; position:absolute; left:50%; top:50%;
    width:9px; height:9px; background:var(--gold);
    transform:translate(-50%,-50%) rotate(45deg);
  }

  section{padding:0;}

  /* ---------- SERVICE INDEX STRIP ---------- */
  .service-nav{
    display:flex; flex-wrap:wrap;
    border-bottom:1px solid var(--line);
    background:var(--mist);
    position:sticky; top:76px; z-index:90;
  }
  .service-nav a{
    font-family:'IBM Plex Mono', monospace;
    font-size:12.5px;
    padding:16px 22px;
    border-right:1px solid var(--line);
    color:var(--slate);
    white-space:nowrap;
  }
  .service-nav a:hover{color:var(--teal-dark); background:#fff;}

  /* ---------- SERVICE DETAIL ROWS ---------- */
  .service-detail{
    display:grid; grid-template-columns:0.85fr 1.15fr; gap:64px;
    align-items:center;
    padding:92px 0;
    border-bottom:1px solid var(--line);
  }
  .service-detail:nth-of-type(even){
    grid-template-columns:1.15fr 0.85fr;
  }
  .service-detail:nth-of-type(even) .sd-visual{order:2;}
  .service-detail:nth-of-type(even) .sd-copy{order:1;}
  .sd-index{
    font-family:'IBM Plex Mono', monospace;
    font-size:13px; color:var(--teal-dark); margin-bottom:14px; display:block;
  }
  .sd-copy h2{font-size:clamp(26px,3vw,36px); margin-bottom:16px;}
  .sd-copy p.desc{color:var(--slate); font-size:16px; max-width:48ch; margin-bottom:28px;}
  .cap-list{display:flex; flex-direction:column; gap:14px;}
  .cap-list li{
    list-style:none; display:flex; gap:12px; font-size:14.5px; color:var(--ink);
  }
  .cap-list li::before{
    content:""; width:6px; height:6px; background:var(--teal);
    transform:rotate(45deg); margin-top:7px; flex-shrink:0;
  }
  .sd-visual{
    background:var(--ink);
    aspect-ratio:4/3;
    display:flex; align-items:center; justify-content:center;
    position:relative;
    overflow:hidden;
  }
  .sd-visual svg{width:62%; height:62%;}
  .sd-visual::after{
    content:"";
    position:absolute; inset:0;
    background:radial-gradient(circle at 30% 20%, rgba(14,168,148,0.18), transparent 60%);
  }
  @media (max-width:820px){
    .service-detail, .service-detail:nth-of-type(even){grid-template-columns:1fr; gap:32px;}
    .service-detail:nth-of-type(even) .sd-visual{order:1;}
    .service-detail:nth-of-type(even) .sd-copy{order:2;}
  }

  /* ---------- CTA BANNER ---------- */
  .cta-banner{
    background:linear-gradient(120deg, var(--teal-dark), var(--ink));
    color:#fff;
    padding:80px 0;
    text-align:center;
  }
  .cta-banner h2{color:#fff; font-size:clamp(28px,3.6vw,40px); margin-bottom:18px;}
  .cta-banner p{color:#CFEFE8; max-width:50ch; margin:0 auto 34px; font-size:16px;}

  /* ---------- FOOTER ---------- */
  footer{background:var(--ink); color:#93A4AF; padding-top:72px;}
  .footer-grid{
    display:grid; grid-template-columns:1.4fr repeat(3,1fr); gap:32px;
    padding-bottom:56px;
    border-bottom:1px solid rgba(255,255,255,0.12);
  }
    .footer-brand p{font-size:14px; margin-top:16px; max-width:32ch; color:#7C8B96;}
  .footer-col h5{
    font-family:'IBM Plex Mono', monospace; font-size:12px;
    letter-spacing:0.1em; text-transform:uppercase; color:#8695A0; margin-bottom:18px;
  }
  .footer-col a{display:block; font-size:14px; color:#B9C6CF; margin-bottom:12px;}
  .footer-col .social-row{margin-top:8px;}
  .footer-col .social-link{display:inline-flex; margin-bottom:0;}
  .footer-col a:hover{color:#fff;}
  .footer-bottom{
    display:flex; justify-content:space-between; align-items:center;
    padding:28px 0; font-size:13px; color:#8695A0; flex-wrap:wrap; gap:12px;
  }
  @media (max-width:900px){ .footer-grid{grid-template-columns:1fr 1fr;} }
  @media (max-width:560px){ .footer-grid{grid-template-columns:1fr;} }

/* ---------- INDUSTRIES PAGE ---------- */
:root{
    --ink:#0D1B2A;
    --ink-2:#16283D;
    --ink-3:#1E3550;
    --paper:#FFFFFF;
    --mist:#F1F5F4;
    --mist-2:#E7ECEA;
    --teal:#6D3CE0;
    --teal-dark:#5A2FC2;
    --gold:#7BA8FF;
    --slate:#4A5A68;
    --slate-light:#5A6B76;
    --line:#D9DFDD;
    --max:1180px;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{
    font-family:'Inter', sans-serif;
    color:var(--ink);
    background:var(--paper);
    line-height:1.5;
    -webkit-font-smoothing:antialiased;
  }
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    *{animation-duration:0.01ms !important; transition-duration:0.01ms !important;}
  }
  a{color:inherit; text-decoration:none;}
  img,svg{display:block;}
  .wrap{max-width:var(--max); margin:0 auto; padding:0 32px;}
  h1,h2,h3,h4{
    font-family:'Poppins', sans-serif;
    font-weight:600;
    letter-spacing:-0.01em;
    line-height:1.08;
  }
  em{font-style:italic; font-weight:500; color:var(--gold);}
  .eyebrow{
    font-family:'IBM Plex Mono', monospace;
    font-size:12px;
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:var(--teal-dark);
    display:flex;
    align-items:center;
    gap:10px;
  }
  .eyebrow::before{
    content:"";
    width:7px; height:7px;
    background:var(--teal);
    transform:rotate(45deg);
    display:inline-block;
    flex-shrink:0;
  }
  .eyebrow.on-dark{color:#FFC9AE;}
  .eyebrow.on-dark::before{background:var(--gold);}

  /* ---------- NAV ---------- */
  header{
    position:sticky; top:0; z-index:100;
    background:rgba(255,255,255,0.88);
    -webkit-backdrop-filter:blur(10px);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line);
  }
  nav{
    display:flex; align-items:center; justify-content:space-between;
    height:76px;
  }
  .logo{
    display:flex; align-items:center;
  }
  .logo-img{
    height:56px;
    width:auto;
    display:block;
  }
  .footer-brand .logo-img{height:58px;}
  .navlinks{
    display:flex; gap:34px;
    font-size:14.5px; font-weight:500;
  }
  .navlinks a{
    position:relative; padding:6px 0; color:var(--ink);
  }
  .navlinks a.current{color:var(--teal-dark);}
  .navlinks a::after{
    content:""; position:absolute; left:0; bottom:0;
    width:0; height:2px; background:var(--teal);
    transition:width .25s ease;
  }
  .navlinks a:hover::after, .navlinks a.current::after{width:100%;}
  .navcta{display:flex; align-items:center; gap:18px;}
  .nav-toggle{
    display:none;
    flex-direction:column; justify-content:center; gap:5px;
    width:32px; height:32px; padding:0;
    background:none; border:none; cursor:pointer;
    flex-shrink:0;
  }
  .nav-toggle span{
    width:100%; height:2px; background:var(--ink);
    transition:transform .25s ease, opacity .25s ease;
  }
  .nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;}
  .nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
  .btn{
    display:inline-flex; align-items:center; gap:8px;
    font-size:14px; font-weight:600;
    padding:11px 20px;
    border-radius:2px;
    border:1px solid transparent;
    cursor:pointer;
    transition:all .2s ease;
  }
  .btn-primary{background:var(--ink); color:#fff;}
  .btn-primary:hover{background:var(--teal-dark);}
  .btn-ghost{border-color:var(--ink); color:var(--ink);}
  .btn-ghost:hover{background:var(--ink); color:#fff;}
  .btn-onlight{border-color:rgba(255,255,255,0.4); color:#fff;}
  .btn-onlight:hover{background:#fff; color:var(--ink); border-color:#fff;}
  @media (max-width:900px){
    .nav-toggle{display:flex;}
    .navlinks{
      display:none;
      position:absolute; top:76px; left:0; right:0;
      flex-direction:column; gap:0;
      background:#fff;
      border-bottom:1px solid var(--line);
      box-shadow:0 12px 24px rgba(13,27,42,0.08);
      padding:6px 32px 18px;
    }
    .navlinks.open{display:flex;}
    .navlinks a{padding:14px 0; border-bottom:1px solid var(--line);}
    .navlinks a:last-child{border-bottom:none;}
  }


  /* ---------- PAGE HERO ---------- */
  .page-hero{
    background:linear-gradient(180deg, var(--ink) 0%, var(--ink-2) 100%);
    color:#fff;
    padding:88px 0 72px;
  }
  .page-hero h1{
    font-size:clamp(36px,5vw,58px);
    color:#fff;
    margin:20px 0 20px;
    max-width:15ch;
  }
  .page-hero p{
    font-size:17px; color:#B9C6CF; max-width:56ch;
  }
  .horizon-band{
    position:relative; height:1px; margin-top:56px;
    background:linear-gradient(90deg, transparent, rgba(255,255,255,0.35) 20%, rgba(255,255,255,0.35) 80%, transparent);
  }
  .horizon-band::before{
    content:""; position:absolute; left:50%; top:50%;
    width:9px; height:9px; background:var(--gold);
    transform:translate(-50%,-50%) rotate(45deg);
  }

  section{padding:0;}
  .on-mist{background:var(--mist);}

  .section-head{
    display:grid; grid-template-columns:1fr 1fr; gap:40px;
    align-items:end;
    margin-bottom:56px;
  }
  .section-head h2{font-size:clamp(28px,3.4vw,42px);}
  .section-head .desc{color:var(--slate); font-size:16px; max-width:46ch;}
  @media (max-width:760px){ .section-head{grid-template-columns:1fr;} }

  /* ---------- INDUSTRY INDEX STRIP (mirrors service-nav) ---------- */
  .industry-nav{
    display:flex; flex-wrap:wrap;
    border-bottom:1px solid var(--line);
    background:var(--mist);
    position:sticky; top:76px; z-index:90;
  }
  .industry-nav a{
    font-family:'IBM Plex Mono', monospace;
    font-size:12.5px;
    padding:16px 22px;
    border-right:1px solid var(--line);
    color:var(--slate);
    white-space:nowrap;
  }
  .industry-nav a:hover{color:var(--teal-dark); background:#fff;}

  /* ---------- INDUSTRY DETAIL ROWS ---------- */
  .ind-detail{
    display:grid; grid-template-columns:0.85fr 1.15fr; gap:64px;
    align-items:center;
    padding:92px 0;
    border-bottom:1px solid var(--line);
    max-width:var(--max); margin:0 auto; padding-left:32px; padding-right:32px;
  }
  .ind-detail:nth-of-type(even){
    grid-template-columns:1.15fr 0.85fr;
  }
  .ind-detail:nth-of-type(even) .id-visual{order:2;}
  .ind-detail:nth-of-type(even) .id-copy{order:1;}
  .id-index{
    font-family:'IBM Plex Mono', monospace;
    font-size:13px; color:var(--teal-dark); margin-bottom:14px; display:block;
  }
  .id-copy h2{font-size:clamp(26px,3vw,36px); margin-bottom:16px;}
  .id-copy p.desc{color:var(--slate); font-size:16px; max-width:48ch; margin-bottom:28px;}
  .cap-list{display:flex; flex-direction:column; gap:14px;}
  .cap-list li{
    list-style:none; display:flex; gap:12px; font-size:14.5px; color:var(--ink);
  }
  .cap-list li::before{
    content:""; width:6px; height:6px; background:var(--teal);
    transform:rotate(45deg); margin-top:7px; flex-shrink:0;
  }
  .id-visual{
    background:var(--ink);
    aspect-ratio:4/3;
    display:flex; align-items:center; justify-content:center;
    position:relative;
    overflow:hidden;
  }
  .id-visual svg{width:62%; height:62%;}
  .id-visual::after{
    content:"";
    position:absolute; inset:0;
    background:radial-gradient(circle at 30% 20%, rgba(14,168,148,0.18), transparent 60%);
  }
  @media (max-width:820px){
    .ind-detail, .ind-detail:nth-of-type(even){grid-template-columns:1fr; gap:32px;}
    .ind-detail:nth-of-type(even) .id-visual{order:1;}
    .ind-detail:nth-of-type(even) .id-copy{order:2;}
  }

  /* ---------- CTA BANNER ---------- */
  .cta-banner{
    background:linear-gradient(120deg, var(--teal-dark), var(--ink));
    color:#fff;
    padding:80px 0;
    text-align:center;
  }
  .cta-banner h2{color:#fff; font-size:clamp(28px,3.6vw,40px); margin-bottom:18px;}
  .cta-banner p{color:#CFEFE8; max-width:50ch; margin:0 auto 34px; font-size:16px;}

  /* ---------- FOOTER ---------- */
  footer{background:var(--ink); color:#93A4AF; padding-top:72px;}
  .footer-grid{
    display:grid; grid-template-columns:1.4fr repeat(3,1fr); gap:32px;
    padding-bottom:56px;
    border-bottom:1px solid rgba(255,255,255,0.12);
    max-width:var(--max); margin:0 auto; padding-left:32px; padding-right:32px;
  }
    .footer-brand p{font-size:14px; margin-top:16px; max-width:32ch; color:#7C8B96;}
  .footer-col h5{
    font-family:'IBM Plex Mono', monospace; font-size:12px;
    letter-spacing:0.1em; text-transform:uppercase; color:#8695A0; margin-bottom:18px;
  }
  .footer-col a{display:block; font-size:14px; color:#B9C6CF; margin-bottom:12px;}
  .footer-col .social-row{margin-top:8px;}
  .footer-col .social-link{display:inline-flex; margin-bottom:0;}
  .footer-col a:hover{color:#fff;}
  .footer-bottom{
    display:flex; justify-content:space-between; align-items:center;
    padding:28px 0; font-size:13px; color:#8695A0; flex-wrap:wrap; gap:12px;
    max-width:var(--max); margin:0 auto; padding-left:32px; padding-right:32px;
  }
  @media (max-width:900px){ .footer-grid{grid-template-columns:1fr 1fr;} }
  @media (max-width:560px){ .footer-grid{grid-template-columns:1fr;} }

/* ---------- ABOUT PAGE ---------- */
:root{
    --ink:#0D1B2A;
    --ink-2:#16283D;
    --ink-3:#1E3550;
    --paper:#FFFFFF;
    --mist:#F1F5F4;
    --mist-2:#E7ECEA;
    --teal:#6D3CE0;
    --teal-dark:#5A2FC2;
    --gold:#7BA8FF;
    --slate:#4A5A68;
    --slate-light:#5A6B76;
    --line:#D9DFDD;
    --max:1180px;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{
    font-family:'Inter', sans-serif;
    color:var(--ink);
    background:var(--paper);
    line-height:1.5;
    -webkit-font-smoothing:antialiased;
  }
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    *{animation-duration:0.01ms !important; transition-duration:0.01ms !important;}
  }
  a{color:inherit; text-decoration:none;}
  img,svg{display:block;}
  .wrap{max-width:var(--max); margin:0 auto; padding:0 32px;}
  h1,h2,h3,h4{
    font-family:'Poppins', sans-serif;
    font-weight:600;
    letter-spacing:-0.01em;
    line-height:1.08;
  }
  em{font-style:italic; font-weight:500; color:var(--gold);}
  .eyebrow{
    font-family:'IBM Plex Mono', monospace;
    font-size:12px;
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:var(--teal-dark);
    display:flex;
    align-items:center;
    gap:10px;
  }
  .eyebrow::before{
    content:"";
    width:7px; height:7px;
    background:var(--teal);
    transform:rotate(45deg);
    display:inline-block;
    flex-shrink:0;
  }
  .eyebrow.on-dark{color:#FFC9AE;}
  .eyebrow.on-dark::before{background:var(--gold);}

  /* ---------- NAV ---------- */
  header{
    position:sticky; top:0; z-index:100;
    background:rgba(255,255,255,0.88);
    -webkit-backdrop-filter:blur(10px);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line);
  }
  nav{
    display:flex; align-items:center; justify-content:space-between;
    height:76px;
  }
  .logo{
    display:flex; align-items:center;
  }
  .logo-img{
    height:56px;
    width:auto;
    display:block;
  }
  .footer-brand .logo-img{height:58px;}
  .navlinks{
    display:flex; gap:34px;
    font-size:14.5px; font-weight:500;
  }
  .navlinks a{
    position:relative; padding:6px 0; color:var(--ink);
  }
  .navlinks a.current{color:var(--teal-dark);}
  .navlinks a::after{
    content:""; position:absolute; left:0; bottom:0;
    width:0; height:2px; background:var(--teal);
    transition:width .25s ease;
  }
  .navlinks a:hover::after, .navlinks a.current::after{width:100%;}
  .navcta{display:flex; align-items:center; gap:18px;}
  .nav-toggle{
    display:none;
    flex-direction:column; justify-content:center; gap:5px;
    width:32px; height:32px; padding:0;
    background:none; border:none; cursor:pointer;
    flex-shrink:0;
  }
  .nav-toggle span{
    width:100%; height:2px; background:var(--ink);
    transition:transform .25s ease, opacity .25s ease;
  }
  .nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;}
  .nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
  .btn{
    display:inline-flex; align-items:center; gap:8px;
    font-size:14px; font-weight:600;
    padding:11px 20px;
    border-radius:2px;
    border:1px solid transparent;
    cursor:pointer;
    transition:all .2s ease;
  }
  .btn-primary{background:var(--ink); color:#fff;}
  .btn-primary:hover{background:var(--teal-dark);}
  .btn-ghost{border-color:var(--ink); color:var(--ink);}
  .btn-ghost:hover{background:var(--ink); color:#fff;}
  .btn-onlight{border-color:rgba(255,255,255,0.4); color:#fff;}
  .btn-onlight:hover{background:#fff; color:var(--ink); border-color:#fff;}
  @media (max-width:900px){
    .nav-toggle{display:flex;}
    .navlinks{
      display:none;
      position:absolute; top:76px; left:0; right:0;
      flex-direction:column; gap:0;
      background:#fff;
      border-bottom:1px solid var(--line);
      box-shadow:0 12px 24px rgba(13,27,42,0.08);
      padding:6px 32px 18px;
    }
    .navlinks.open{display:flex;}
    .navlinks a{padding:14px 0; border-bottom:1px solid var(--line);}
    .navlinks a:last-child{border-bottom:none;}
  }


  /* ---------- PAGE HERO ---------- */
  .page-hero{
    background:linear-gradient(180deg, var(--ink) 0%, var(--ink-2) 100%);
    color:#fff;
    padding:88px 0 72px;
  }
  .page-hero h1{
    font-size:clamp(36px,5vw,58px);
    color:#fff;
    margin:20px 0 20px;
    max-width:15ch;
  }
  .page-hero p{
    font-size:17px; color:#B9C6CF; max-width:56ch;
  }
  .horizon-band{
    position:relative; height:1px; margin-top:56px;
    background:linear-gradient(90deg, transparent, rgba(255,255,255,0.35) 20%, rgba(255,255,255,0.35) 80%, transparent);
  }
  .horizon-band::before{
    content:""; position:absolute; left:50%; top:50%;
    width:9px; height:9px; background:var(--gold);
    transform:translate(-50%,-50%) rotate(45deg);
  }

  section{padding:96px 0;}
  .on-mist{background:var(--mist);}

  .section-head{
    display:grid; grid-template-columns:1fr 1fr; gap:40px;
    align-items:end;
    margin-bottom:56px;
  }
  .section-head h2{font-size:clamp(28px,3.4vw,42px);}
  .section-head .desc{color:var(--slate); font-size:16px; max-width:46ch;}
  @media (max-width:760px){ .section-head{grid-template-columns:1fr;} }

  /* ---------- ORIGIN STORY ---------- */
  .origin{
    display:grid; grid-template-columns:0.9fr 1.4fr; gap:60px;
    align-items:start;
  }
  .origin blockquote{
    font-family:'Poppins', sans-serif;
    font-style:italic;
    font-size:clamp(22px,2.6vw,28px);
    line-height:1.35;
    font-weight:500;
    color:var(--ink);
  }
  .origin-body p{font-size:15.5px; color:var(--slate); margin-bottom:18px;}
  .origin-body p:last-child{margin-bottom:0;}
  @media (max-width:820px){ .origin{grid-template-columns:1fr;} }

  /* ---------- TIMELINE ---------- */
  .timeline{
    border-top:1px solid var(--line);
  }
  .timeline-row{
    display:grid; grid-template-columns:120px 1fr;
    gap:32px;
    padding:30px 0;
    border-bottom:1px solid var(--line);
  }
  .timeline-row .yr{
    font-family:'IBM Plex Mono', monospace;
    font-size:15px; color:var(--teal-dark); font-weight:500;
    padding-top:2px;
  }
  .timeline-row h4{font-size:17px; font-weight:600; margin-bottom:6px;}
  .timeline-row p{font-size:14.5px; color:var(--slate); max-width:60ch;}
  @media (max-width:600px){ .timeline-row{grid-template-columns:1fr; gap:8px;} }

  /* ---------- VALUES ---------- */
  .values-grid{
    display:grid; grid-template-columns:repeat(4,1fr); gap:1px;
    background:var(--line); border:1px solid var(--line);
  }
  .value-card{
    background:#fff; padding:32px 26px;
    display:flex; flex-direction:column; gap:14px;
  }
  .value-card .idx{
    font-family:'IBM Plex Mono', monospace; font-size:12.5px; color:var(--teal-dark);
  }
  .value-card h4{font-size:17px;}
  .value-card p{font-size:14px; color:var(--slate);}
  @media (max-width:900px){ .values-grid{grid-template-columns:repeat(2,1fr);} }
  @media (max-width:560px){ .values-grid{grid-template-columns:1fr;} }
  .pair-grid{
    display:grid; grid-template-columns:1fr 1fr; gap:1px;
    background:var(--line); border:1px solid var(--line);
    margin-top:1px;
  }
  @media (max-width:700px){ .pair-grid{grid-template-columns:1fr;} }

  /* ---------- LEADERSHIP ---------- */
  .leaders-grid{
    display:grid; grid-template-columns:repeat(4,1fr); gap:28px;
  }
  .leader-card{
    border-top:2px solid var(--ink);
    padding-top:20px;
  }
  .leader-photo{
    aspect-ratio:4/5;
    background:linear-gradient(160deg, var(--ink-2), var(--ink-3));
    margin-bottom:18px;
    position:relative;
    overflow:hidden;
  }
  .leader-photo::after{
    content:"";
    position:absolute; inset:0;
    background:radial-gradient(circle at 70% 20%, rgba(14,168,148,0.25), transparent 60%);
  }
  .leader-photo svg{position:absolute; bottom:14px; left:14px; width:34px; height:34px;}
  .leader-card h4{font-size:16.5px; margin-bottom:3px;}
  .leader-card .role{font-size:13px; color:var(--teal-dark); font-family:'IBM Plex Mono', monospace; margin-bottom:10px;}
  .leader-card p{font-size:13.5px; color:var(--slate);}
  @media (max-width:900px){ .leaders-grid{grid-template-columns:repeat(2,1fr);} }
  @media (max-width:560px){ .leaders-grid{grid-template-columns:1fr;} }

  /* ---------- LOCATIONS STRIP ---------- */
  .locations{
    display:grid; grid-template-columns:repeat(5,1fr);
    border-top:1px solid rgba(255,255,255,0.14);
    border-bottom:1px solid rgba(255,255,255,0.14);
  }
  .loc-item{
    padding:28px 22px;
    border-left:1px solid rgba(255,255,255,0.14);
  }
  .loc-item:first-child{border-left:none;}
  .loc-item .city{font-family:'Poppins', sans-serif; font-size:19px; color:#fff; margin-bottom:6px;}
  .loc-item .region{font-size:12.5px; color:#8FA0AB; font-family:'IBM Plex Mono', monospace;}
  @media (max-width:900px){ .locations{grid-template-columns:repeat(2,1fr);} .loc-item:nth-child(3){border-left:none;} }

  /* ---------- CTA BANNER ---------- */
  .cta-banner{
    background:linear-gradient(120deg, var(--teal-dark), var(--ink));
    color:#fff;
    padding:80px 0;
    text-align:center;
  }
  .cta-banner h2{color:#fff; font-size:clamp(28px,3.6vw,40px); margin-bottom:18px;}
  .cta-banner p{color:#CFEFE8; max-width:50ch; margin:0 auto 34px; font-size:16px;}

  /* ---------- FOOTER ---------- */
  footer{background:var(--ink); color:#93A4AF; padding-top:72px;}
  .footer-grid{
    display:grid; grid-template-columns:1.4fr repeat(3,1fr); gap:32px;
    padding-bottom:56px;
    border-bottom:1px solid rgba(255,255,255,0.12);
  }
    .footer-brand p{font-size:14px; margin-top:16px; max-width:32ch; color:#7C8B96;}
  .footer-col h5{
    font-family:'IBM Plex Mono', monospace; font-size:12px;
    letter-spacing:0.1em; text-transform:uppercase; color:#8695A0; margin-bottom:18px;
  }
  .footer-col a{display:block; font-size:14px; color:#B9C6CF; margin-bottom:12px;}
  .footer-col .social-row{margin-top:8px;}
  .footer-col .social-link{display:inline-flex; margin-bottom:0;}
  .footer-col a:hover{color:#fff;}
  .footer-bottom{
    display:flex; justify-content:space-between; align-items:center;
    padding:28px 0; font-size:13px; color:#8695A0; flex-wrap:wrap; gap:12px;
  }
  @media (max-width:900px){ .footer-grid{grid-template-columns:1fr 1fr;} }
  @media (max-width:560px){ .footer-grid{grid-template-columns:1fr;} }

/* ---------- INSIGHTS PAGE ---------- */
:root{
    --ink:#0D1B2A;
    --ink-2:#16283D;
    --ink-3:#1E3550;
    --paper:#FFFFFF;
    --mist:#F1F5F4;
    --mist-2:#E7ECEA;
    --teal:#6D3CE0;
    --teal-dark:#5A2FC2;
    --gold:#7BA8FF;
    --slate:#4A5A68;
    --slate-light:#5A6B76;
    --line:#D9DFDD;
    --max:1180px;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{
    font-family:'Inter', sans-serif;
    color:var(--ink);
    background:var(--paper);
    line-height:1.5;
    -webkit-font-smoothing:antialiased;
  }
  a{color:inherit; text-decoration:none;}
  img,svg{display:block;}
  .wrap{max-width:var(--max); margin:0 auto; padding:0 32px;}
  h1,h2,h3,h4{
    font-family:'Poppins', sans-serif;
    font-weight:600;
    letter-spacing:-0.01em;
    line-height:1.08;
  }
  .eyebrow{
    font-family:'IBM Plex Mono', monospace;
    font-size:12px;
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:var(--teal-dark);
    display:flex;
    align-items:center;
    gap:10px;
  }
  .eyebrow::before{
    content:"";
    width:7px; height:7px;
    background:var(--teal);
    transform:rotate(45deg);
    display:inline-block;
    flex-shrink:0;
  }
  .eyebrow.on-dark{color:#FFC9AE;}
  .eyebrow.on-dark::before{background:var(--gold);}

  /* ---------- NAV ---------- */
  header{
    position:sticky; top:0; z-index:100;
    background:rgba(255,255,255,0.88);
    -webkit-backdrop-filter:blur(10px);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line);
  }
  nav{
    display:flex; align-items:center; justify-content:space-between;
    height:76px;
  }
  .logo{
    display:flex; align-items:center;
  }
  .logo-img{
    height:56px;
    width:auto;
    display:block;
  }
  .footer-brand .logo-img{height:58px;}
  .navlinks{
    display:flex; gap:34px;
    font-size:14.5px; font-weight:500;
  }
  .navlinks a{
    position:relative; padding:6px 0; color:var(--ink);
  }
  .navlinks a.current{color:var(--teal-dark);}
  .navlinks a::after{
    content:""; position:absolute; left:0; bottom:0;
    width:0; height:2px; background:var(--teal);
    transition:width .25s ease;
  }
  .navlinks a:hover::after, .navlinks a.current::after{width:100%;}
  .navcta{display:flex; align-items:center; gap:18px;}
  .nav-toggle{
    display:none;
    flex-direction:column; justify-content:center; gap:5px;
    width:32px; height:32px; padding:0;
    background:none; border:none; cursor:pointer;
    flex-shrink:0;
  }
  .nav-toggle span{
    width:100%; height:2px; background:var(--ink);
    transition:transform .25s ease, opacity .25s ease;
  }
  .nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;}
  .nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
  .btn{
    display:inline-flex; align-items:center; gap:8px;
    font-size:14px; font-weight:600;
    padding:11px 20px;
    border-radius:2px;
    border:1px solid transparent;
    cursor:pointer;
    transition:all .2s ease;
  }
  .btn-primary{background:var(--ink); color:#fff;}
  .btn-primary:hover{background:var(--teal-dark);}
  .btn-ghost{border-color:var(--ink); color:var(--ink);}
  .btn-ghost:hover{background:var(--ink); color:#fff;}
  .btn-onlight{border-color:rgba(255,255,255,0.4); color:#fff; background:transparent;}
  .btn-onlight:hover{background:#fff; color:var(--ink); border-color:#fff;}
  @media (max-width:900px){
    .nav-toggle{display:flex;}
    .navlinks{
      display:none;
      position:absolute; top:76px; left:0; right:0;
      flex-direction:column; gap:0;
      background:#fff;
      border-bottom:1px solid var(--line);
      box-shadow:0 12px 24px rgba(13,27,42,0.08);
      padding:6px 32px 18px;
    }
    .navlinks.open{display:flex;}
    .navlinks a{padding:14px 0; border-bottom:1px solid var(--line);}
    .navlinks a:last-child{border-bottom:none;}
  }


  /* ---------- PAGE HERO ---------- */
  .page-hero{
    background:linear-gradient(180deg, var(--ink) 0%, var(--ink-2) 100%);
    color:#fff;
    padding:88px 0 72px;
  }
  .page-hero h1{
    font-size:clamp(36px,5vw,58px);
    color:#fff;
    margin:20px 0 20px;
    max-width:16ch;
  }
  .page-hero p{
    font-size:17px; color:#B9C6CF; max-width:54ch;
  }
  .horizon-band{
    position:relative; height:1px; margin-top:56px;
    background:linear-gradient(90deg, transparent, rgba(255,255,255,0.35) 20%, rgba(255,255,255,0.35) 80%, transparent);
  }
  .horizon-band::before{
    content:""; position:absolute; left:50%; top:50%;
    width:9px; height:9px; background:var(--gold);
    transform:translate(-50%,-50%) rotate(45deg);
  }

  section{padding:96px 0;}
  .on-mist{background:var(--mist);}

  .section-head{
    display:grid; grid-template-columns:1fr 1fr; gap:40px;
    align-items:end;
    margin-bottom:56px;
  }
  .section-head h2{font-size:clamp(28px,3.4vw,42px);}
  .section-head .desc{color:var(--slate); font-size:16px; max-width:46ch;}
  @media (max-width:760px){ .section-head{grid-template-columns:1fr;} }

  /* ---------- FILTER STRIP ---------- */
  .filter-strip{
    display:flex; flex-wrap:wrap; gap:10px;
    padding-bottom:44px;
  }
  .filter-chip{
    font-family:'IBM Plex Mono', monospace;
    font-size:12.5px;
    padding:9px 16px;
    border:1px solid var(--line);
    color:var(--slate);
    border-radius:20px;
    transition:all .2s ease;
  }
  .filter-chip.active{background:var(--ink); color:#fff; border-color:var(--ink);}
  .filter-chip:hover{border-color:var(--teal); color:var(--teal-dark);}

  /* ---------- FEATURED ---------- */
  .featured{
    display:grid; grid-template-columns:1.1fr 0.9fr; gap:0;
    border:1px solid var(--line);
    margin-bottom:64px;
  }
  .featured-visual{
    background:var(--ink);
    position:relative;
    overflow:hidden;
    min-height:320px;
    display:flex; align-items:center; justify-content:center;
  }
  .featured-visual::after{
    content:"";
    position:absolute; inset:0;
    background:radial-gradient(circle at 25% 20%, rgba(14,168,148,0.22), transparent 60%);
  }
  .featured-visual svg{width:56%; height:56%; position:relative; z-index:1;}
  .featured-copy{
    padding:48px 44px;
    display:flex; flex-direction:column; justify-content:center; gap:16px;
  }
  .featured-copy .tag{
    font-family:'IBM Plex Mono', monospace; font-size:11.5px; color:var(--teal-dark);
    text-transform:uppercase; letter-spacing:0.08em;
  }
  .featured-copy h2{font-size:clamp(24px,2.8vw,32px);}
  .featured-copy p{font-size:15px; color:var(--slate); max-width:46ch;}
  .featured-copy .meta{font-size:13px; color:var(--slate-light); font-family:'IBM Plex Mono', monospace;}
  @media (max-width:860px){ .featured{grid-template-columns:1fr;} }

  /* ---------- ARTICLE GRID ---------- */
  .article-grid{
    display:grid; grid-template-columns:repeat(3,1fr); gap:1px;
    background:var(--line); border:1px solid var(--line);
  }
  .article-card{
    background:#fff;
    display:flex; flex-direction:column;
  }
  .article-thumb{
    aspect-ratio:16/10;
    background:var(--ink-2);
    position:relative;
    overflow:hidden;
    display:flex; align-items:center; justify-content:center;
  }
  .article-thumb::after{
    content:"";
    position:absolute; inset:0;
    background:radial-gradient(circle at 70% 15%, rgba(226,169,74,0.18), transparent 55%);
  }
  .article-thumb svg{width:38%; height:38%; position:relative; z-index:1;}
  .article-body{padding:26px 24px; display:flex; flex-direction:column; gap:12px; flex-grow:1;}
  .article-body .tag{
    font-family:'IBM Plex Mono', monospace; font-size:11px; color:var(--teal-dark);
    text-transform:uppercase; letter-spacing:0.07em;
  }
  .article-body h3{font-size:18px; line-height:1.3;}
  .article-body p{font-size:14px; color:var(--slate); flex-grow:1;}
  .article-body .meta{font-size:12.5px; color:var(--slate-light); font-family:'IBM Plex Mono', monospace; padding-top:6px; border-top:1px solid var(--line);}
  @media (max-width:900px){ .article-grid{grid-template-columns:repeat(2,1fr);} }
  @media (max-width:620px){ .article-grid{grid-template-columns:1fr;} }

  /* ---------- CASE STUDY STRIP ---------- */
  .case-strip{border-top:1px solid var(--line);}
  .case-row{
    display:grid; grid-template-columns:100px 1.4fr 1fr 0.7fr;
    gap:24px;
    padding:26px 0;
    border-bottom:1px solid var(--line);
    align-items:center;
  }
  .case-row .idx{font-family:'IBM Plex Mono', monospace; font-size:13px; color:var(--teal-dark);}
  .case-row h4{font-size:16.5px; font-weight:600;}
  .case-row .industry{font-size:13.5px; color:var(--slate);}
  .case-row .result{
    font-family:'IBM Plex Mono', monospace; font-size:14px; color:var(--ink);
    text-align:right;
  }
  @media (max-width:700px){
    .case-row{grid-template-columns:1fr; gap:6px; padding:22px 0;}
    .case-row .result{text-align:left;}
  }

  /* ---------- CTA BANNER ---------- */
  .cta-banner{
    background:linear-gradient(120deg, var(--teal-dark), var(--ink));
    color:#fff;
    padding:80px 0;
    text-align:center;
  }
  .cta-banner h2{color:#fff; font-size:clamp(28px,3.6vw,40px); margin-bottom:18px;}
  .cta-banner p{color:#CFEFE8; max-width:50ch; margin:0 auto 34px; font-size:16px;}

  /* ---------- FOOTER ---------- */
  footer{background:var(--ink); color:#93A4AF; padding-top:72px;}
  .footer-grid{
    display:grid; grid-template-columns:1.4fr repeat(3,1fr); gap:32px;
    padding-bottom:56px;
    border-bottom:1px solid rgba(255,255,255,0.12);
  }
    .footer-brand p{font-size:14px; margin-top:16px; max-width:32ch; color:#7C8B96;}
  .footer-col h5{
    font-family:'IBM Plex Mono', monospace; font-size:12px;
    letter-spacing:0.1em; text-transform:uppercase; color:#8695A0; margin-bottom:18px;
  }
  .footer-col a{display:block; font-size:14px; color:#B9C6CF; margin-bottom:12px;}
  .footer-col .social-row{margin-top:8px;}
  .footer-col .social-link{display:inline-flex; margin-bottom:0;}
  .footer-col a:hover{color:#fff;}
  .footer-bottom{
    display:flex; justify-content:space-between; align-items:center;
    padding:28px 0; font-size:13px; color:#8695A0; flex-wrap:wrap; gap:12px;
  }
  @media (max-width:900px){ .footer-grid{grid-template-columns:1fr 1fr;} }
  @media (max-width:560px){ .footer-grid{grid-template-columns:1fr;} }

/* ---------- CONTACT PAGE ---------- */
:root{
    --ink:#0D1B2A;
    --ink-2:#16283D;
    --ink-3:#1E3550;
    --paper:#FFFFFF;
    --mist:#F1F5F4;
    --mist-2:#E7ECEA;
    --teal:#6D3CE0;
    --teal-dark:#5A2FC2;
    --gold:#7BA8FF;
    --slate:#4A5A68;
    --slate-light:#5A6B76;
    --line:#D9DFDD;
    --max:1180px;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{
    font-family:'Inter', sans-serif;
    color:var(--ink);
    background:var(--paper);
    line-height:1.5;
    -webkit-font-smoothing:antialiased;
  }
  a{color:inherit; text-decoration:none;}
  img,svg{display:block;}
  .wrap{max-width:var(--max); margin:0 auto; padding:0 32px;}
  h1,h2,h3,h4{
    font-family:'Poppins', sans-serif;
    font-weight:600;
    letter-spacing:-0.01em;
    line-height:1.08;
  }
  .eyebrow{
    font-family:'IBM Plex Mono', monospace;
    font-size:12px;
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:var(--teal-dark);
    display:flex;
    align-items:center;
    gap:10px;
  }
  .eyebrow::before{
    content:"";
    width:7px; height:7px;
    background:var(--teal);
    transform:rotate(45deg);
    display:inline-block;
    flex-shrink:0;
  }
  .eyebrow.on-dark{color:#FFC9AE;}
  .eyebrow.on-dark::before{background:var(--gold);}

  /* ---------- NAV ---------- */
  header{
    position:sticky; top:0; z-index:100;
    background:rgba(255,255,255,0.88);
    -webkit-backdrop-filter:blur(10px);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line);
  }
  nav{
    display:flex; align-items:center; justify-content:space-between;
    height:76px;
  }
  .logo{
    display:flex; align-items:center;
  }
  .logo-img{
    height:56px;
    width:auto;
    display:block;
  }
  .footer-brand .logo-img{height:58px;}
  .navlinks{
    display:flex; gap:34px;
    font-size:14.5px; font-weight:500;
  }
  .navlinks a{
    position:relative; padding:6px 0; color:var(--ink);
  }
  .navlinks a.current{color:var(--teal-dark);}
  .navlinks a::after{
    content:""; position:absolute; left:0; bottom:0;
    width:0; height:2px; background:var(--teal);
    transition:width .25s ease;
  }
  .navlinks a:hover::after, .navlinks a.current::after{width:100%;}
  .navcta{display:flex; align-items:center; gap:18px;}
  .nav-toggle{
    display:none;
    flex-direction:column; justify-content:center; gap:5px;
    width:32px; height:32px; padding:0;
    background:none; border:none; cursor:pointer;
    flex-shrink:0;
  }
  .nav-toggle span{
    width:100%; height:2px; background:var(--ink);
    transition:transform .25s ease, opacity .25s ease;
  }
  .nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;}
  .nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
  .btn{
    display:inline-flex; align-items:center; gap:8px;
    font-size:14px; font-weight:600;
    padding:11px 20px;
    border-radius:2px;
    border:1px solid transparent;
    cursor:pointer;
    transition:all .2s ease;
  }
  .btn-primary{background:var(--ink); color:#fff;}
  .btn-primary:hover{background:var(--teal-dark);}
  .btn-onlight{border-color:rgba(255,255,255,0.4); color:#fff; background:transparent;}
  .btn-onlight:hover{background:#fff; color:var(--ink); border-color:#fff;}
  @media (max-width:900px){
    .nav-toggle{display:flex;}
    .navlinks{
      display:none;
      position:absolute; top:76px; left:0; right:0;
      flex-direction:column; gap:0;
      background:#fff;
      border-bottom:1px solid var(--line);
      box-shadow:0 12px 24px rgba(13,27,42,0.08);
      padding:6px 32px 18px;
    }
    .navlinks.open{display:flex;}
    .navlinks a{padding:14px 0; border-bottom:1px solid var(--line);}
    .navlinks a:last-child{border-bottom:none;}
  }


  /* ---------- PAGE HERO ---------- */
  .page-hero{
    background:linear-gradient(180deg, var(--ink) 0%, var(--ink-2) 100%);
    color:#fff;
    padding:88px 0 72px;
  }
  .page-hero h1{
    font-size:clamp(36px,5vw,58px);
    color:#fff;
    margin:20px 0 20px;
    max-width:15ch;
  }
  .page-hero p{
    font-size:17px; color:#B9C6CF; max-width:52ch;
  }
  .horizon-band{
    position:relative; height:1px; margin-top:56px;
    background:linear-gradient(90deg, transparent, rgba(255,255,255,0.35) 20%, rgba(255,255,255,0.35) 80%, transparent);
  }
  .horizon-band::before{
    content:""; position:absolute; left:50%; top:50%;
    width:9px; height:9px; background:var(--gold);
    transform:translate(-50%,-50%) rotate(45deg);
  }

  /* ---------- CONTACT SPLIT ---------- */
  .contact-section{padding:92px 0;}
  .contact-grid{
    display:grid; grid-template-columns:0.95fr 1.05fr; gap:0;
    border:1px solid var(--line);
  }
  .contact-info{
    background:var(--ink);
    color:#fff;
    padding:52px 46px;
    display:flex; flex-direction:column; justify-content:space-between;
  }
  .contact-info h3{color:#fff; font-size:24px; margin-bottom:16px; text-align:center;}
  .contact-info > p{color:#B9C6CF; font-size:15px; max-width:36ch; margin-bottom:36px;}
  .contact-channels{display:flex; flex-direction:column; gap:22px; margin-bottom:44px;}
  .channel{border-top:1px solid rgba(255,255,255,0.14); padding-top:18px;}
  .channel .k{font-family:'IBM Plex Mono', monospace; font-size:12px; color:#8FA0AB; text-transform:uppercase; letter-spacing:0.08em; margin-bottom:6px;}
  .channel .v{font-size:15.5px; font-weight:500;}
  .channel .v a:hover{color:var(--teal);}
  .response-note{
    font-size:13px; color:#7C8B96;
    border-top:1px solid rgba(255,255,255,0.14);
    padding-top:18px;
  }

  .contact-form{
    background:#fff;
    padding:52px 46px;
    display:flex; flex-direction:column; gap:22px;
  }
  .form-row{display:grid; grid-template-columns:1fr 1fr; gap:18px;}
  .field{display:flex; flex-direction:column; gap:8px;}
  .field label{
    font-family:'IBM Plex Mono', monospace;
    font-size:11.5px; letter-spacing:0.06em; text-transform:uppercase; color:var(--slate);
  }
  .field input, .field select, .field textarea{
    font-family:'Inter', sans-serif;
    font-size:15px;
    padding:12px 14px;
    border:1px solid var(--line);
    background:var(--mist);
    color:var(--ink);
    border-radius:2px;
    transition:border-color .2s ease, background .2s ease, box-shadow .2s ease;
  }
  .field input:focus, .field select:focus, .field textarea:focus{
    border-color:var(--teal);
    background:#fff;
    outline:none;
    box-shadow:0 0 0 3px rgba(232,38,28,0.18);
  }
  .field input:focus-visible, .field select:focus-visible, .field textarea:focus-visible{
    outline:2px solid var(--teal);
    outline-offset:1px;
  }
  .field textarea{resize:vertical; min-height:110px; font-family:'Inter', sans-serif;}
  .submit-row{display:flex; align-items:center; gap:18px; margin-top:6px;}
  .form-note{font-size:12.5px; color:var(--slate-light);}
  .btn-submit{
    background:var(--teal-dark); color:#fff; border:none;
    font-family:'Inter', sans-serif; font-size:14.5px; font-weight:600;
    padding:13px 26px; border-radius:2px; cursor:pointer;
    transition:background .2s ease;
  }
  .btn-submit:hover{background:var(--ink);}
  .confirm-msg{
    display:none;
    background:var(--mist);
    border:1px solid var(--teal);
    padding:20px 22px;
    font-size:14.5px;
    color:var(--ink);
  }
  .confirm-msg.show{display:block;}

  @media (max-width:900px){
    .contact-grid{grid-template-columns:1fr;}
    .form-row{grid-template-columns:1fr;}
  }

  /* ---------- OFFICES STRIP ---------- */
  .offices{background:var(--mist); padding:80px 0;}
  .offices .section-head{
    display:block; text-align:center;
    max-width:640px; margin:0 auto 56px;
  }
  .section-head{
    display:grid; grid-template-columns:1fr 1fr; gap:40px;
    align-items:end;
    margin-bottom:48px;
  }
  .section-head h2{font-size:clamp(26px,3.2vw,36px);}
  .section-head .desc{color:var(--slate); font-size:15.5px; max-width:44ch;}
  @media (max-width:760px){ .section-head{grid-template-columns:1fr;} }
  .offices-grid{
    display:grid; grid-template-columns:repeat(4,1fr); gap:1px;
    background:var(--line); border:1px solid var(--line);
  }
  .map-panel{
    display:grid; grid-template-columns:0.8fr 1.2fr; gap:1px;
    background:var(--line); border:1px solid var(--line);
  }
  .map-panel .office-card{display:flex; flex-direction:column; justify-content:center;}
  .map-embed{
    background:var(--line);
    min-height:320px;
  }
  .map-embed iframe{display:block; width:100%; height:100%; min-height:320px;}
  @media (max-width:760px){
    .map-panel{grid-template-columns:1fr;}
    .map-embed{min-height:280px;}
  }
  .office-card{background:#fff; padding:26px 24px;}
  .office-card .city{font-family:'Poppins', sans-serif; font-size:19px; margin-bottom:8px;}
  .office-card .addr{font-size:13.5px; color:var(--slate); line-height:1.6;}
  .office-card .tag{
    font-family:'IBM Plex Mono', monospace; font-size:11px; color:var(--teal-dark);
    text-transform:uppercase; letter-spacing:0.06em; margin-bottom:10px; display:block;
  }
  @media (max-width:900px){ .offices-grid{grid-template-columns:repeat(2,1fr);} }
  @media (max-width:560px){ .offices-grid{grid-template-columns:1fr;} }

  /* ---------- FOOTER ---------- */
  footer{background:var(--ink); color:#93A4AF; padding-top:72px;}
  .footer-grid{
    display:grid; grid-template-columns:1.4fr repeat(3,1fr); gap:32px;
    padding-bottom:56px;
    border-bottom:1px solid rgba(255,255,255,0.12);
  }
    .footer-brand p{font-size:14px; margin-top:16px; max-width:32ch; color:#7C8B96;}
  .footer-col h5{
    font-family:'IBM Plex Mono', monospace; font-size:12px;
    letter-spacing:0.1em; text-transform:uppercase; color:#8695A0; margin-bottom:18px;
  }
  .footer-col a{display:block; font-size:14px; color:#B9C6CF; margin-bottom:12px;}
  .footer-col .social-row{margin-top:8px;}
  .footer-col .social-link{display:inline-flex; margin-bottom:0;}
  .footer-col a:hover{color:#fff;}
  .footer-bottom{
    display:flex; justify-content:space-between; align-items:center;
    padding:28px 0; font-size:13px; color:#8695A0; flex-wrap:wrap; gap:12px;
  }
  @media (max-width:900px){ .footer-grid{grid-template-columns:1fr 1fr;} }
  @media (max-width:560px){ .footer-grid{grid-template-columns:1fr;} }

/* ---------- SCROLL TO TOP BUTTON ---------- */
.scroll-top-btn{
  position:fixed;
  right:24px; bottom:24px;
  width:52px; height:52px;
  border-radius:50%;
  background:#fff;
  border:1px solid var(--line);
  box-shadow:0 8px 24px rgba(13,27,42,0.18);
  display:flex; align-items:center; justify-content:center;
  padding:10px;
  cursor:pointer;
  opacity:0;
  visibility:hidden;
  transform:translateY(12px);
  transition:opacity .25s ease, transform .25s ease, visibility .25s ease, box-shadow .2s ease;
  z-index:200;
}
.scroll-top-btn.visible{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}
.scroll-top-btn:hover{
  box-shadow:0 10px 28px rgba(109,60,224,0.32);
  transform:translateY(-3px);
}
.scroll-top-btn:focus-visible{
  outline:2px solid var(--teal);
  outline-offset:3px;
}
.scroll-top-btn img{
  width:100%; height:100%;
  object-fit:contain;
  display:block;
}
@media (max-width:600px){
  .scroll-top-btn{
    right:16px; bottom:16px;
    width:46px; height:46px;
    padding:9px;
  }
}

/* ---------- ACCESSIBILITY: high-contrast preference (placed last so it wins the cascade) ---------- */
@media (prefers-contrast: more){
  :root{
    --slate:#2B3742;
    --line:#9AA6AC;
    --slate-light:#3D4A54;
  }
}
