/* Desktop Products navigation stays visible; the details block is mobile-only. */
.desktop-products-link{display:inline-block}
@media(max-width:800px){.desktop-products-link{display:none}}
.mobile-group{display:none}
@media(max-width:800px){.mobile-group{display:block}}
/* Shared service pages extend the established stimulation page design. */
.skip-link{position:fixed;top:-80px;left:20px;z-index:9999;padding:12px 20px;background:#fff;color:#101114}.skip-link:focus{top:12px}
a.acard{display:block;color:inherit;text-decoration:none}.service-card-link{display:block;margin-top:24px;font-size:12px;font-weight:600}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid #345cbe;outline-offset:5px}
.service-page .hero-meta p:first-child{max-width:38ch}.service-page .hero-meta{grid-template-columns:1.6fr 1fr}
.service-page [data-r]{opacity:1;transform:none}
.service-page section[id], .service-page footer[id] { scroll-margin-top: 86px; }
.service-breadcrumb{display:flex;flex-wrap:wrap;gap:12px;padding:16px 0 24px;font-size:12px;color:var(--ink-2)}.service-breadcrumb a{text-decoration:underline;text-underline-offset:4px}
.service-caption{margin-left:auto;font-size:10px;letter-spacing:.12em;color:var(--ink-2)}
.service-section{padding:clamp(48px,7vw,100px) 0}.service-tint{background:#efefea;border-top:1px solid #deded6;border-bottom:1px solid #deded6}
.service-section h2{font-family:var(--font-d);font-size:clamp(30px,3.7vw,60px);font-weight:500;line-height:1.08;letter-spacing:-.04em;max-width:23ch;margin:18px 0 30px}
.service-section h3{font-size:21px;line-height:1.25;font-weight:500;letter-spacing:-.025em;margin:18px 0 12px}
.service-section p,.service-section li{font-size:15px;line-height:1.8;color:var(--ink-2)}.service-section p{max-width:60ch}
.service-overview,.service-intake{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,6vw,100px);align-items:center}
.service-overview figure img{width:100%;height:400px;object-fit:cover;border-radius:12px;filter:saturate(.7)}.service-overview figcaption{font-size:11px;color:var(--ink-2);margin-top:12px}
.service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;margin-top:40px}.service-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.service-grid article{border-top:1px solid #bdbdb5;padding-top:22px}
.service-text-link{display:inline-block;margin-top:24px;text-decoration:underline;text-underline-offset:5px;font-size:13px}.service-intake .btn-pill{margin:24px 18px 0 0}.service-intake ul{padding-left:20px}.service-intake li{padding:12px 0;border-bottom:1px solid #d5d5cd}
.service-directory{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:48px;margin-top:40px}.service-directory a{display:flex;align-items:center;gap:18px;padding:18px 0;border-bottom:1px solid #d5d5cd;font-size:16px}.service-directory a span{font-size:11px;color:var(--ink-2)}.service-directory a b{margin-left:auto;font-weight:400}.service-directory a:hover,.service-directory a[aria-current]{color:#345cbe}
.service-page .mmenu:not([inert]){visibility:visible}.service-page .mmenu[inert]{visibility:hidden}
@media(max-width:900px){.service-overview,.service-intake{grid-template-columns:1fr}.service-grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}.service-overview figure img{height:300px}.service-page .hero-meta{grid-template-columns:1.6fr 1fr}.service-caption{width:100%;margin:14px 0 0}}
@media(max-width:600px){.service-grid,.service-grid.four,.service-directory{grid-template-columns:1fr}.service-page .hero.statement h1{font-size:clamp(38px,10vw,58px);overflow-wrap:anywhere}.service-page .hero-media.bare{height:240px}.service-page .hero-meta{gap:20px}.service-directory a{font-size:15px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{animation:none!important;transition:none!important}}

/* Image-led sections inherit the Stimulation page's spacing, type, and rules. */
.site-dropdown{display:flex;align-items:center;gap:2px}
.dropdown-toggle{display:inline-flex;align-items:center;justify-content:center;align-self:center;width:28px;height:36px;flex:0 0 28px;border:0;background:transparent;color:inherit;cursor:pointer;padding:0;line-height:1}
.dropdown-toggle svg{display:block;transition:transform .18s ease}
.dropdown-toggle[aria-expanded="true"] svg{transform:rotate(180deg)}
#hd .site-dropdown .drop{visibility:hidden;opacity:0;pointer-events:none}
#hd .site-dropdown.is-open .drop{visibility:visible;opacity:1;pointer-events:auto;transform:none;transition:opacity .2s}
#hd .site-dropdown .drop{max-height:calc(100dvh - 110px);overflow-y:auto}
#hd .nav-item:has(.all-service-links) .drop>.wrap{grid-template-columns:minmax(300px,1.2fr) minmax(0,2fr);gap:38px}
.all-service-links{display:grid;grid-template-columns:1fr 1fr;column-gap:20px}.all-service-links a{font-size:12px!important;padding:6px 0!important;line-height:1.4}
.mobile-group{border-bottom:1px solid var(--hair)}.mobile-group>summary{display:flex;align-items:baseline;justify-content:space-between;width:100%;box-sizing:border-box;font-family:var(--font-d);font-size:clamp(24px,4.2vh,36px);font-weight:500;letter-spacing:-.035em;line-height:inherit;padding:clamp(7px,1.2vh,11px) 0;border:0;color:var(--ink);cursor:pointer;list-style:none;-webkit-tap-highlight-color:transparent;transform:translateY(16px);opacity:0;transition:transform .55s cubic-bezier(.22,1,.36,1),opacity .4s ease,color .25s ease,padding-left .3s ease}.mobile-group>summary::-webkit-details-marker{display:none}.mobile-group>summary:hover{color:var(--navy);padding-left:8px}body.menu-open .mobile-group>summary{transform:none;opacity:1}body.menu-open .mmenu-in>.mobile-group:first-child>summary{transition-delay:.05s}body.menu-open .mmenu-in>.mobile-group:nth-child(2)>summary{transition-delay:.09s}.mobile-group>summary::after{content:'+';font-family:var(--font,BDOGrotesk,sans-serif);font-size:clamp(20px,3.5vh,28px);font-weight:300;line-height:1;color:var(--ink-3);margin-left:auto;padding-left:12px;align-self:center;transition:color .25s ease,transform .25s ease}.mobile-group>summary:hover::after{color:var(--navy)}.mobile-group[open]>summary{color:var(--navy)}.mobile-group[open]>summary::after{content:'−';color:var(--navy)}
.mobile-group>div{display:grid;grid-template-columns:1fr 1fr;gap:3px 16px;padding:8px 0 18px}.mmenu .mobile-group a{font-size:14px;line-height:1.4;padding:8px 0;letter-spacing:0;opacity:1;transform:none}
@media(max-width:800px){.mmenu .mmenu-in>a,.mmenu .mobile-group>summary{font-size:clamp(21px,3.8vh,30px);padding-block:clamp(7px,1.2vh,11px)}.mmenu .mobile-group>div{padding-top:8px;padding-bottom:18px}}
.service-page .mmenu{overflow-y:auto}.service-page .mmenu-in{flex-shrink:0}.service-page .mmenu-foot{flex-shrink:0}
@media(max-width:800px){.site-dropdown>.dropdown-toggle{display:none}}
.service-jumps{display:flex;flex-wrap:wrap;gap:12px 30px;padding-top:22px;padding-bottom:22px;border-top:1px solid #d3d3cd;border-bottom:1px solid #d3d3cd}
.service-jumps a{font-size:12px;font-weight:600;color:var(--ink-2);text-underline-offset:6px}.service-jumps a:hover{text-decoration:underline;color:var(--ink)}
.service-heading{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:clamp(28px,7vw,110px);align-items:end;margin-bottom:42px}
.service-heading h2{margin-bottom:0;max-width:24ch}.service-heading>p{max-width:47ch;margin-bottom:4px;font-size:14px}
.service-panorama{position:relative;border-radius:12px;overflow:hidden;background:#d9dcde;margin:0}
.service-panorama>img{display:block;width:100%;height:clamp(330px,39vw,560px);object-fit:cover;object-position:50% 52%;filter:saturate(.88)}
.service-panorama::after{content:"";position:absolute;inset:55% 0 0;background:linear-gradient(transparent,rgba(8,18,30,.63));pointer-events:none}
.service-panorama figcaption{position:absolute;z-index:1;bottom:25px;left:30px;right:30px;display:flex;justify-content:space-between;color:#fff;font-size:12px;letter-spacing:.025em}
.service-panorama figcaption span:last-child{font-size:10px;opacity:.8}
.service-facts.fact-strip{margin:30px 0 0;gap:24px}.service-facts.fact-strip strong{font-size:clamp(18px,1.8vw,28px);line-height:1.2;letter-spacing:-.025em}.service-facts.fact-strip span{font-size:12px}
.service-cap-section{background:#eeeeea;border-top:1px solid #d8d8d1;border-bottom:1px solid #d8d8d1}
.service-cap-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(30px,7vw,110px);align-items:start}
.service-capability{border-top:1px solid #c9cbc5}.service-capability:last-child{border-bottom:1px solid #c9cbc5}
.service-capability summary{display:flex;gap:20px;align-items:center;padding:24px 0;cursor:pointer;list-style:none}.service-capability summary::-webkit-details-marker{display:none}
.service-capability summary h3{margin:0;font-size:clamp(20px,1.7vw,28px);line-height:1.25;font-weight:500}.cap-number{font-size:11px;color:#71766f;min-width:20px}.cap-toggle{font-size:25px;margin-left:auto;font-weight:300;transition:transform .25s}.service-capability[open] .cap-toggle{transform:rotate(45deg)}
.cap-body{padding:0 30px 26px 40px}.cap-body p{font-size:14px;line-height:1.8}.cap-tag{display:inline-block;margin-top:18px;font-size:11px;color:#414d58;padding:7px 12px;border:1px solid #c7cdc9;border-radius:30px}
.service-cap-media{position:sticky;top:100px;padding-bottom:36px}.cap-image-stack{position:relative;height:clamp(300px,29vw,460px);border-radius:12px;overflow:hidden;background:#d9ddde}
.cap-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .4s;filter:saturate(.88)}.cap-photo.is-active{opacity:1}
.cap-note{position:relative;z-index:1;max-width:75%;margin:-44px 0 0 auto;padding:24px 28px;background:#102940;color:#fff;border-radius:10px 0 10px 10px;box-shadow:0 12px 25px #0d1b281a}
.cap-note .lbl{font-size:10px;color:#bbcad6}.cap-note strong{display:block;font-size:23px;line-height:1.2;font-weight:500;margin:12px 0}.cap-note>span:last-child{font-size:11px;color:#c1cbd1}
.service-step-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px}.service-step{min-width:0}.step-photo{overflow:hidden;border-radius:10px;background:#d9dcde}.step-photo img{width:100%;height:clamp(200px,20vw,290px);object-fit:cover;display:block;transition:transform .6s}.service-step:hover .step-photo img{transform:scale(1.025)}
.step-top{display:flex;align-items:center;justify-content:space-between;margin-top:22px;padding-bottom:14px;border-bottom:1px solid #cfd0c9}.step-top .lbl{font-size:10px}.step-top>span:last-child{font-size:19px}.service-step h3{font-size:25px;margin-top:20px}.service-step p{font-size:14px;line-height:1.8;max-width:42ch}
.service-project{padding-top:12px}.project-panel{display:grid;grid-template-columns:1fr 1fr;border-radius:14px;overflow:hidden;background:#112c44;color:#fff}
.project-visual{min-height:590px;position:relative;display:flex;align-items:flex-end}.project-visual>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.65}.project-visual::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,28,42,.02),rgba(10,28,42,.85))}.project-visual>div{position:relative;z-index:1;padding:clamp(28px,4vw,60px)}
.project-visual .lbl{color:#d1dce3}.project-visual h2{font-size:clamp(32px,3.6vw,54px);margin:20px 0;color:#fff}.project-visual p{color:#d6e0e7;font-size:14px;max-width:37ch}
.project-brief{padding:clamp(28px,4vw,60px)}.project-brief>.lbl{color:#aabfce}.project-brief h3{font-size:clamp(24px,2.1vw,34px);margin:18px 0 24px;max-width:22ch;color:#fff}.project-brief ul{list-style:none;padding:0;margin:0 0 28px}.project-brief li{display:flex;gap:20px;padding:16px 0;border-top:1px solid #ffffff29;color:#dce5eb;font-size:14px;line-height:1.65}.project-brief li span{font-size:10px;color:#a7bdcd;padding-top:4px}.project-brief .btn-pill{background:#fff;color:#122c43}.project-phone{display:block;margin-top:20px;font-size:13px;color:#cad9e3;text-decoration:underline;text-underline-offset:5px}
.related-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px}.related-card{display:block;min-width:0}.related-card>div{border-radius:10px;overflow:hidden;margin-bottom:22px}.related-card img{width:100%;height:220px;display:block;object-fit:cover;transition:transform .5s}.related-card:hover img{transform:scale(1.035)}.related-card>.lbl{font-size:10px}.related-card h3{display:flex;justify-content:space-between;gap:15px;font-size:23px}.related-card h3 span{font-size:20px}.related-card p{font-size:13px;max-width:36ch}
.all-service-disclosure{border-top:1px solid #cfd0c9;border-bottom:1px solid #cfd0c9;margin-top:50px}.all-service-disclosure>summary{display:flex;align-items:center;justify-content:space-between;padding:24px 0;cursor:pointer;font-size:14px;font-weight:600;list-style:none}.all-service-disclosure>summary::-webkit-details-marker{display:none}.all-service-disclosure>summary span{font-size:24px;font-weight:300}.all-service-disclosure[open]>summary span{transform:rotate(45deg)}.all-service-disclosure .service-directory{margin:0 0 25px}.service-section .image-disclosure{font-size:10px;line-height:1.6;color:#767b7b;margin-top:24px;max-width:none}
@media(max-width:900px){.service-heading{gap:28px;grid-template-columns:1fr}.service-heading>p{max-width:62ch}.service-cap-grid{gap:35px;grid-template-columns:1fr 1fr}.service-cap-media{top:90px}.cap-note{max-width:90%;padding:20px}.cap-note strong{font-size:20px}.service-step-grid,.related-grid{gap:20px}.service-step h3,.related-card h3{font-size:21px}.project-visual{min-height:560px}.related-card img{height:170px}}
@media(max-width:650px){.service-section{padding:48px 0}.service-jumps{gap:12px 22px;padding-top:18px;padding-bottom:18px}.service-jumps a{font-size:11px}.service-heading{margin-bottom:28px}.service-heading h2{font-size:34px}.service-panorama>img{height:300px}.service-panorama figcaption{left:18px;right:18px;bottom:18px;gap:20px;font-size:11px}.service-panorama figcaption span:last-child{max-width:12ch;text-align:right}.service-facts.fact-strip{display:grid;grid-template-columns:1fr 1fr;gap:24px 18px}.service-facts.fact-strip strong{font-size:20px}.service-cap-grid{grid-template-columns:1fr}.service-cap-media{position:relative;top:auto;padding-bottom:0}.cap-image-stack{height:300px}.cap-note{max-width:80%}.service-capability summary{padding:20px 0}.service-step-grid,.related-grid{grid-template-columns:1fr;gap:36px}.step-photo img{height:240px}.service-step h3{font-size:25px}.service-step p{max-width:none}.project-panel{grid-template-columns:1fr}.project-visual{min-height:340px}.project-visual h2{font-size:36px}.project-brief{padding:30px}.related-card img{height:240px}.related-card h3{font-size:25px}.related-card p{max-width:none}.all-service-disclosure{margin-top:36px}}

/* Pointer and keyboard dismissal share one state, including after anchor scrolling. */
#hd .nav-dropdown-managed .drop{visibility:hidden;opacity:0;pointer-events:none}
#hd .nav-dropdown-managed.is-open .drop{visibility:visible;opacity:1;pointer-events:auto;transform:none;transition:opacity .2s}

/* Utility-bar content shares the main header edges in every layout. */
body .topbar > .wrap { width:min(1280px,calc(100% - 2 * clamp(20px,4vw,64px))); }
body .topbar { min-height:38px; }
body .topbar .wrap { height:38px; }
body .topbar .tb-l { display:flex; align-items:center; gap:20px; }
body .topbar .tb-l a:first-child { display:inline-flex; }
body .topbar .tb-r { width:auto; justify-content:flex-end; gap:16px; }
body .topbar .site-theme-tools { display:flex; align-items:center; gap:16px; }
body .topbar .hero-opts { display:none; }
body.index-v4 .topbar .wrap { height:38px; }
body.index-v4 .topbar .tb-l { display:flex; }
body.index-v4 .topbar .tb-r { width:auto; justify-content:flex-end; gap:16px; }
@media(max-width:1000px) {
 body .topbar .tb-l a:nth-child(3) { display:none; }
}

/* A larger Products hover target without moving the neighbouring links. */
@media(min-width:901px) {
 #hd .nav-products > a { position:relative; }
 #hd .nav-products > a::before,
 #hd .nav-products.site-dropdown > .dropdown-toggle::before { content:""; position:absolute; top:0; bottom:0; left:100%; width:18px; }
 #hd .nav-products.site-dropdown > a::before { display:none; }
 #hd .nav-products.site-dropdown > .dropdown-toggle { position:relative; }
}

/* Every Services menu contains the complete catalogue, including compact viewports. */
#hd .nav-item:has(.all-service-links) .drop{max-height:calc(100dvh - 110px);overflow-y:auto}
#hd .all-service-links a{min-width:0;justify-content:space-between;gap:12px}
#hd .all-service-links a::after{flex-shrink:0;margin-left:auto}
.mmenu .mobile-service-links a{min-height:44px;align-items:center}
.mmenu .mobile-services-overview{font-weight:600;gap:12px;border-bottom:0;padding:4px 0 20px}
/* Mobile menu alignment and spacing. */
@media(max-width:760px){
  body .topbar .wrap { justify-content:space-between; }
  body .topbar .tb-l { display:flex; flex:0 1 auto; gap:12px; min-width:0; }
  body .topbar .tb-r { flex:0 0 auto; width:auto; justify-content:flex-end; gap:10px; }
  body .topbar .site-theme-tools { gap:10px; }
  body .topbar .tb-l a:first-child { display:inline-flex; font-size:0; white-space:nowrap; }
  body .topbar .tb-l a:first-child::after { content:'Get in touch with our experts'; font-size:11px; }
  body .topbar .tb-l a:nth-child(2) { font-size:11px; white-space:nowrap; }
  body.index-v4 .topbar .wrap { height:38px; }
  body.index-v4 .topbar .tb-l { display:flex; width:auto; }
  body.index-v4 .topbar .tb-r { width:auto; justify-content:flex-end; }
  .mobile-group>summary{font-family:var(--font-d);font-size:clamp(24px,4.2vh,36px);letter-spacing:-.035em;font-weight:500;padding:clamp(7px,1.2vh,11px) 0;}
  .mobile-group.mobile-products-group>div{padding-bottom:16px;}
  .mmenu .mobile-group .mobile-services-overview{padding-top:8px;padding-bottom:18px;}
  .mobile-service-links a:nth-last-child(-n+2){border-bottom:0;}
}

/* Product and service dropdown headings stay compact on desktop. */
#hd .d-left h5{font-size:14px;line-height:1.4;font-weight:600;letter-spacing:0}

/* ── Mobile-only UX refinements ─────────────────────────────── */
@media(max-width:760px){
  /* 1. Hide the 01/02/03 hero switcher buttons on mobile */
  .hero-opts{display:none!important;}

  /* 2. Show the phone number in the topbar on mobile, underlined */
  body .topbar .tb-l a:nth-child(2){
    display:inline-flex!important;
    text-decoration:underline;
    text-underline-offset:3px;
    text-decoration-thickness:1px;
    color:rgba(255,255,255,.82);
  }
  body .topbar .tb-l a:nth-child(2):hover{color:#fff;}

  /* 3. Section vertical spacing — tighten on phones */
  .state{padding:clamp(28px,5vh,54px) 0 clamp(36px,6.5vh,72px);}
  .feat{padding:clamp(28px,5vh,54px) 0;}
  .front{padding:clamp(32px,5vh,60px) 0 0;}
  .words{padding:clamp(20px,4vh,44px) 0 clamp(4px,1vh,10px);}
  #why{padding-bottom:clamp(16px,3vh,36px);}
  .certs{padding:clamp(4px,1vh,12px) 0 clamp(32px,6vh,72px);}
  .fac-map{padding-bottom:clamp(36px,6vh,72px);}
  #services{padding-bottom:clamp(28px,5vh,54px);}
}

/* 4. "On this page" bottom navigator — pill buttons on ALL pages (mobile) */
@media(max-width:1279px){
  .page-toc .pt-list a{
    flex:0 0 auto;
    padding:8px 16px;
    border:1px solid var(--hair);
    border-radius:999px;
    font-size:12px;
    font-weight:600;
    color:var(--ink-2);
    white-space:nowrap;
    line-height:1;
    transition:color .25s ease,background .25s ease,border-color .25s ease;
  }
  .page-toc .pt-list a.on{color:#fff;background:var(--ink);border-color:var(--ink);}
  .page-toc .pt-list a.on::before{display:none;}
  body.navy-mode .page-toc .pt-list a.on{background:var(--navy);border-color:var(--navy);}
  /* Trigger button on service pages */
  .page-toc-trigger{
    all:unset;cursor:pointer;
    display:inline-flex;align-items:center;gap:8px;
    position:fixed;bottom:max(18px,env(safe-area-inset-bottom));right:max(18px,env(safe-area-inset-right));
    z-index:94;
    background:var(--ink);color:#fff;
    padding:10px 18px;border-radius:999px;
    font-size:12px;font-weight:600;
    box-shadow:0 4px 18px rgba(16,17,20,.2);
    transition:background .25s ease,opacity .25s ease;
  }
  .page-toc-trigger:hover{background:#2c2f34;}
  body.navy-mode .page-toc-trigger{background:var(--navy);}
  body.navy-mode .page-toc-trigger:hover{background:#173b82;}
  body:is(.menu-open,.paper-open,.search-open) .page-toc-trigger{opacity:0;pointer-events:none;}
}

/* ── Mobile hamburger menu fixes ─────────────────────────────── */

/* Suppress the right-indent that can stick after a touch interaction.
      On desktop the slide-right hover is intentional; on touch it sticks and
      looks broken, so we cancel padding-left for hover AND for the transition. */
@media(max-width:800px){
  .mmenu-in a:hover,
  .mmenu-in a:focus{padding-left:0;}
  .mobile-group>summary:hover,
  .mobile-group>summary:focus{padding-left:0;}
  /* Also remove the padding-left transition so there's no animation flash on tap */
  .mmenu-in a{transition:transform .55s cubic-bezier(.22,1,.36,1),opacity .4s ease,color .25s ease;}
  .mobile-group>summary{transition:transform .55s cubic-bezier(.22,1,.36,1),opacity .4s ease,color .25s ease;}
}

/* Keep the desktop Products link out of the hamburger menu; the disclosure
   below it is the single mobile entry. */
.mmenu .desktop-products-link{display:none!important;}

/* Switch the site header to the shared mobile menu below the tablet-wide layout. */
@media(max-width:800px) {
  #hd nav { display:none!important; }
  #hd .menu-btn { display:inline-flex!important; }
  .mobile-group { display:block; }
  .mmenu-in a:hover,
  .mmenu-in a:focus,
  .mobile-group>summary:hover,
  .mobile-group>summary:focus { padding-left:0; }
  .mmenu-in a { transition:transform .55s cubic-bezier(.22,1,.36,1),opacity .4s ease,color .25s ease; }
  .mobile-group>summary { transition:transform .55s cubic-bezier(.22,1,.36,1),opacity .4s ease,color .25s ease; }
}

/* Keep the section navigator available as a bottom rail on compact screens. */
@media(max-width:1679px) {
  #pageToc.page-toc,
  #pageToc.page-toc.hide,
  #pageToc.page-toc[data-page-nav],
  #pageToc.page-toc[data-page-nav].hide {
    display:block;
    position:fixed;
    inset:auto 0 0;
    width:auto;
    max-width:none;
    max-height:none;
    box-sizing:border-box;
    padding:16px 0 calc(16px + env(safe-area-inset-bottom));
    overflow:visible;
    transform:none;
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    z-index:95;
    background:rgba(255,255,255,.94);
    border:0;
    border-top:1px solid var(--hair);
    border-radius:0;
    box-shadow:none;
    -webkit-backdrop-filter:blur(14px) saturate(1.15);
    backdrop-filter:blur(14px) saturate(1.15);
  }
  #pageToc .pt-card { width:min(1280px, calc(100% - 2 * var(--pad, 20px))); min-width:0; box-sizing:border-box; margin-inline:auto; padding:0; background:transparent; border:0; box-shadow:none; }
  #pageToc .pt-card > strong { display:none; }
  #pageToc .pt-list {
    display:flex;
    width:100%;
    min-width:0;
    box-sizing:border-box;
    align-items:center;
    gap:7px;
    overflow-x:auto;
    overflow-y:hidden;
    overscroll-behavior-x:contain;
    scroll-behavior:auto!important;
    scroll-snap-type:none;
    cursor:grab;
    touch-action:pan-x;
    user-select:none;
    border:0;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
  }
  #pageToc .pt-list.is-dragging { cursor:grabbing; }
  #pageToc .pt-list::-webkit-scrollbar { display:none; }
  #pageToc .pt-list:has(a[href="#project"]) > a[href="#footer"] { display:none; }
  #pageToc .pt-list a {
    display:inline-flex;
    flex:0 0 auto;
    align-items:center;
    justify-content:center;
    box-sizing:border-box;
    min-height:40px;
    padding:12px 14px;
    border:1px solid var(--hair);
    border-radius:999px;
    background:transparent;
    color:var(--ink-2);
    font-size:12px;
    font-weight:600;
    line-height:1;
    white-space:nowrap;
    transition:none!important;
  }
  #pageToc .pt-list a.on {
    color:#fff;
    background:#101114;
    border-color:#101114;
  }
  #pageToc .pt-list a.on::before { display:none; }
  #pageToc.lit { background:rgba(255,255,255,.94); border-top-color:var(--hair); }
  #pageToc.lit .pt-list a { color:var(--ink-2); border-color:var(--hair); }
  #pageToc.lit .pt-list a.on { color:#fff; background:#101114; border-color:#101114; }
  #pageToc[data-page-nav] ~ .page-toc-trigger { display:none!important; }
  #pageToc .pt-close { display:none!important; }
  body.navy-mode #pageToc .pt-list a.on { color:#fff; background:#101114; border-color:#101114; }
}

@media(max-width:760px) {
  #hd .mx-logo { width:160px; }
}

#hd > .wrap { height:64px; gap:48px; }
#hd .mx-logo { width:156px; }
#hd nav { gap:24px; font-size:13.5px; }
#hd .right { gap:18px; }
#footer .ft-cols {
  grid-template-columns:minmax(0,1.5fr) minmax(0,1.5fr) minmax(0,1fr) minmax(0,1fr);
}
#footer .ft-cols > div:nth-child(2) {
  display:block;
}
#footer .ft-cols > div:nth-child(2) h5 { grid-column:1 / -1; }
#footer .ft-capability-links {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:20px;
}
#footer .ft-capability-list { min-width:0; }
#footer .ft-capability-desktop { display:none; }
#footer .ft-desktop-contact { display:block; }
#footer .ft-mobile-contact { display:none; }
#footer .ft-brand p { max-width:30ch; }
#footer .ft-base > span:last-child { text-align:right; }
#footer .ft-base .ft-base-mobile-left,
#footer .ft-base .ft-base-mobile-right { display:none; }
#footer .ft-base .ft-base-desktop-left,
#footer .ft-base .ft-base-desktop-right { display:block; }
#footer .ft-cols h5 { margin-bottom:10px; }
@media(min-width:901px) {
  #footer .ft-cols {
    grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1fr);
  }
  #footer .ft-capability-links { display:none; }
  #footer .ft-capability-desktop { display:block; }
}
@media(max-width:900px) {
  #footer .ft-cols { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:760px) {
  #hd > .wrap { height:64px; gap:16px; }
  #hd .mx-logo { width:160px; }
  #hd .right { gap:12px; }
  #footer .ft-capability-list a {
    font-size:clamp(9.5px,3vw,12px);
    line-height:20.625px;
    white-space:nowrap;
  }
  #footer .ft-cols > div:nth-child(2) { grid-column:1 / -1; }
  #footer .ft-cols > div:nth-child(3) { grid-column:1; }
  #footer .ft-cols > div:nth-child(4) { grid-column:2; }
  #footer .ft-brand p { display:none; }
  #footer .ft-base,
  #footer.v3-clean-footer .ft-base.ft-base {
    flex-direction:row;
    flex-wrap:nowrap;
    align-items:flex-start;
    gap:10px;
    font-size:clamp(9px,2.7vw,10.5px);
  }
  #footer .ft-base > span { white-space:nowrap; }
  #footer .ft-base > span:last-child { margin-left:auto; }
  #footer .ft-base .ft-base-mobile-left,
  #footer .ft-base .ft-base-mobile-right { display:block; }
  #footer .ft-base .ft-base-desktop-left,
  #footer .ft-base .ft-base-desktop-right { display:none; }
  #footer .ft-desktop-contact { display:none; }
  #footer .ft-mobile-contact { display:block; }
  .mmenu-foot { flex-direction:column; align-items:flex-start; gap:8px; padding-top:14px; }
  .mmenu-foot .mmenu-contact {
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    column-gap:0;
    row-gap:2px;
    width:100%;
  }
  .mmenu-foot .mmenu-contact a {
    display:block;
    flex:0 0 auto;
    width:auto;
    font-family:var(--font-d);
    font-size:14px;
    font-weight:500;
    letter-spacing:0;
    line-height:1.4;
    color:var(--ink);
    text-align:left;
    padding:2px 0;
  }
  .mmenu-foot .mmenu-contact .mmenu-address { flex:0 0 100%; width:auto; max-width:none; }
  .mmenu-contact-separator { flex:0 0 3px; width:3px; height:3px; margin-inline:10px; font-size:0; line-height:0; }
  .mmenu-contact-separator::before { content:""; display:block; width:3px; height:3px; border-radius:50%; background:var(--ink-3); }
  .mmenu-actions {
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:10px 14px;
    width:100%;
    margin-top:4px;
  }
  .mmenu-actions > .btn-pill {
    align-self:flex-start;
    display:inline-flex;
    align-items:center;
    gap:10px;
    width:auto;
    min-height:46px;
    justify-content:center;
    padding:12px 22px;
  }
  .mmenu-actions .mmenu-overview {
    display:inline-flex;
    align-items:center;
    gap:10px;
    padding:10px 0;
    color:var(--ink);
    font-family:var(--font-d);
    font-size:13px;
    font-weight:600;
    line-height:1.4;
    white-space:nowrap;
  }
  .mmenu-actions .mmenu-overview:hover { color:var(--navy); }
  .mmenu-actions [aria-hidden="true"] { font-size:16px; line-height:1; }
}
@media(max-width:380px) {
  #footer .ft-capability-links { column-gap:12px; }
}
@media(max-width:760px) {
  body .topbar .wrap {
    display:flex;
    align-items:center;
    justify-content:space-between;
    height:38px;
  }
  body .topbar .tb-l {
    display:flex;
    flex:0 1 auto;
    align-items:center;
    gap:12px;
    min-width:0;
  }
  body .topbar .tb-l a:first-child {
    display:inline-flex;
    flex:0 0 auto;
    font-size:0;
    white-space:nowrap;
  }
  body .topbar .tb-l a:first-child::after {
    content:'Get in touch with our experts';
    font-size:11px;
  }
  body .topbar .tb-l a:nth-child(2) {
    display:inline-flex!important;
    flex:0 0 auto;
    font-size:11px;
    white-space:nowrap;
    text-decoration:underline;
    text-underline-offset:3px;
    text-decoration-thickness:1px;
    color:rgba(255,255,255,.82);
  }
  body .topbar .tb-r {
    display:flex;
    flex:0 0 auto;
    align-items:center;
    justify-content:flex-end;
    gap:8px;
  }
  body .topbar .site-theme-tools { gap:10px; }
}
@media(max-width:360px) {
  body .topbar .tb-l { gap:8px; }
  body .topbar .tb-l a:first-child::after { content:'Get in touch'; }
}
