/* styles.css */
:root{--ink:#0b1832;--muted:#566781;--accent:#0866ff;--paper:#fff;--soft:#f3f7ff;--line:#dce5f3;--radius:18px;--max:1240px;font-family:'Arial',sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:108px}body{margin:0;font-size:16px;line-height:1.6}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,textarea,select,summary{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #0787e8;outline-offset:5px}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.1;letter-spacing:-.045em}h2{font-size:clamp(2.25rem,4.15vw,3.6rem);font-weight:650;margin-bottom:0}h3{font-weight:600}p{color:var(--muted)}svg{display:block}.container{width:min(var(--max),calc(100% - 104px));margin-inline:auto}.section{padding-block:106px}.eyebrow{font-size:12px;letter-spacing:.11em;font-weight:700;color:var(--ink);margin:0 0 27px;display:flex;align-items:center;gap:10px;line-height:1.5}.small-star{font-size:24px;line-height:1}.button{display:inline-flex;align-items:center;justify-content:center;gap:30px;padding:16px 23px;border-radius:8px;border:1px solid transparent;font-size:14px;line-height:1.4;font-weight:600;transition:transform .2s,background .2s}.button:hover{transform:translateY(-3px)}.button span[aria-hidden]{font-size:20px;line-height:1}.button-dark{background:var(--ink);color:white}.button-dark:hover{background:#0755d5}.button-accent{background:var(--accent);color:var(--ink)}.text-link{display:inline-flex;align-items:center;gap:14px;font-size:14px;font-weight:600;border-bottom:1px solid currentColor;padding-block:3px}.text-link:hover{color:#0659d9}.skip-link{position:fixed;top:8px;left:8px;background:var(--accent);padding:12px;z-index:10;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.site-header{background:rgba(255,255,255,.97);position:sticky;top:0;z-index:5;border-bottom:1px solid var(--line)}.nav-wrap{display:flex;align-items:center;justify-content:space-between;gap:32px;min-height:92px}.brand{font-size:29px;letter-spacing:-1.4px;font-weight:750;display:inline-flex;align-items:center;white-space:nowrap;line-height:1}#main-nav{display:flex;align-items:center;gap:28px}#main-nav a{font-size:13px;white-space:nowrap;transition:color .2s}#main-nav a:hover{color:#23b7ed}.menu-toggle{display:none}
.hero{display:grid;grid-template-columns:1.09fr 1fr;gap:50px;padding-block:78px 82px;align-items:center}.hero .eyebrow{font-size:12px;margin-bottom:28px}.hero h1{font-size:clamp(3.6rem,5.8vw,5.2rem);font-weight:650;line-height:1.035;letter-spacing:-.065em;margin-bottom:27px;position:relative}.highlight{position:relative;z-index:0;white-space:nowrap}.highlight:before{content:'';position:absolute;z-index:-1;inset:14% -4% 0;background:var(--accent);transform:rotate(-2deg);border-radius:2px}.hero-star{display:inline-block;font-size:.78em;font-weight:400;margin-left:26px;vertical-align:middle;transform:rotate(12deg)}.hero-description{font-size:16px;line-height:1.8;max-width:435px;margin-bottom:30px}.hero-actions{display:flex;align-items:center;gap:25px;flex-wrap:wrap}.hero-actions .button{gap:20px}.hero-actions .text-link{border:0;font-size:13px}.hero-note{font-size:12px;color:var(--muted);margin-top:23px;display:flex;align-items:center;gap:8px}.check-icon{display:inline-flex;justify-content:center;align-items:center;width:16px;height:16px;border-radius:50%;border:1px solid #698bb3;font-size:12px;color:var(--ink)}
.hero-visual{position:relative;background:#e9f2ff;border:1px solid #d3e3f9;border-radius:22px;padding:23px 26px 21px;min-height:485px;overflow:hidden;background-image:radial-gradient(#9eb9dc 1px,transparent 1px);background-size:20px 20px}.search-card{background:white;border:1px solid #d3e1f3;border-radius:12px;box-shadow:0 15px 35px #0a398112;width:92%;margin:0 auto;padding:0 21px 21px;transform:rotate(-3deg)}.browser-bar{display:flex;justify-content:space-between;align-items:center;gap:14px;font-size:12px;padding:13px 0;border-bottom:1px solid #eee;color:#586e8c;margin-bottom:16px}.browser-dots{display:flex;gap:4px}.browser-dots i{width:5px;height:5px;background:#d0dff3;border-radius:50%}.browser-dots i:first-child{background:#4acdf3}.search-input{border:1px solid #dce6f5;border-radius:6px;padding:10px 12px;display:flex;align-items:center;gap:10px;font-size:12px;color:#486080;margin-bottom:20px}.search-input svg{width:16px;height:16px;stroke:currentColor;stroke-width:1.5}.typing-cursor{height:14px;width:1px;background:#0866ff;margin-left:3px}.result-label{display:flex;align-items:center;gap:8px;font-size:12px;letter-spacing:.06em;color:#5a7090}.result-label small{font-size:12px;letter-spacing:0;color:#6b809f}.mini-mark{background:var(--accent);width:26px;height:26px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:16px;color:var(--ink)}.result-title{font-size:19px;font-weight:600;letter-spacing:-.035em;line-height:1.25;margin:11px 0 7px;color:#164b92}.search-card>p{font-size:12px;line-height:1.7;margin-bottom:12px}.result-tags{display:flex;gap:6px}.result-tags span{background:var(--soft);border-radius:4px;padding:4px 8px;font-size:12px;color:#536d90}.strategy-card{position:relative;z-index:1;margin:-10px -5px 0 auto;background:var(--accent);border:1px solid #278bf5;border-radius:10px;box-shadow:0 7px 15px #07399b14;max-width:285px;display:flex;align-items:center;gap:12px;padding:15px;transform:rotate(3deg)}.strategy-icon{border:1px solid #73bcff;border-radius:8px;width:34px;height:34px;display:flex;justify-content:center;align-items:center;font-size:30px;line-height:1}.strategy-card strong{display:block;font-size:12px;letter-spacing:-.02em}.strategy-card div>span{font-size:12px}.journey-card{position:relative;margin-top:26px;background:var(--ink);color:white;padding:19px 23px;border-radius:11px;transform:rotate(-1deg)}.journey-title{display:flex;justify-content:space-between;align-items:center;font-size:12px;letter-spacing:.08em;color:#c7dcf8}.journey-title span:last-child{color:var(--accent);font-size:20px}.journey-steps{display:flex;justify-content:space-between;align-items:center;margin-top:12px}.journey-steps>div{display:flex;align-items:center;gap:8px}.journey-number{border:1px solid #315981;border-radius:50%;width:26px;height:26px;display:flex;justify-content:center;align-items:center;font-size:12px;color:var(--accent)}.journey-steps strong{font-size:12px;font-weight:500}.journey-steps i{color:#6087b5;font-style:normal}.visual-footnote{text-align:center;font-size:12px;letter-spacing:.06em;margin-top:15px;color:#5e7a9d}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:50px;margin-bottom:43px}.section-heading>p{max-width:350px;font-size:15px;margin-bottom:5px;line-height:1.85}.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.service-card{border:1px solid var(--line);border-radius:var(--radius);padding:27px 27px 22px;display:flex;flex-direction:column;transition:border-color .2s,transform .2s}.service-card:hover{transform:translateY(-4px);border-color:#63a0ff}.service-card-accent{background:var(--accent);border-color:var(--accent)}.service-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:29px}.service-icon{display:flex;justify-content:center;align-items:center;width:46px;height:46px;border-radius:12px;background:#e9f2ff}.service-card-accent .service-icon{background:#409aff}.service-icon svg{height:28px;width:28px;fill:none;stroke:var(--ink);stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round}.card-number{font-size:12px;color:#627d9f}.service-card h3{font-size:23px;margin-bottom:14px;letter-spacing:-.04em}.service-card p{font-size:14px;line-height:1.8;margin-bottom:19px;max-width:290px;flex:1}.service-tags{font-size:12px;color:#5a7495;margin-bottom:21px}.service-card-accent p,.service-card-accent .service-tags{color:#e2eeff}.service-link{padding-top:16px;border-top:1px solid var(--line);font-size:12px;font-weight:600;display:flex;align-items:center;justify-content:space-between;gap:14px}.service-link span{font-size:21px}.service-card-accent .service-link{border-color:#6bafff}
.approach{background:var(--ink);color:white}.approach .eyebrow{color:#b5d3f5}.approach-intro{display:flex;justify-content:space-between;align-items:flex-end;gap:50px}.approach-intro h2{font-size:clamp(2.2rem,3.8vw,3.35rem)}.approach-intro h2 span{color:var(--accent)}.approach-intro>p{color:#bacce2;max-width:290px;font-size:14px;line-height:1.9;margin-bottom:3px}.process-grid{display:grid;grid-template-columns:repeat(4,1fr);margin-top:58px;gap:28px}.process-grid article{position:relative;border-top:1px solid #2b4061;padding-top:23px}.step-number{color:var(--accent);font-size:13px;font-family:monospace;display:block;margin-bottom:24px}.process-grid h3{font-size:21px;margin-bottom:14px;letter-spacing:-.03em}.process-grid p{color:#b9cde5;font-size:13px;line-height:1.9;margin-bottom:20px}.step-output{font-size:12px;color:#92b4dc;letter-spacing:.06em}.approach-bottom{border-top:1px solid #2b4061;display:flex;gap:20px;align-items:center;margin-top:48px;padding-top:31px}.approach-bottom .small-star{color:var(--accent);font-size:39px}.approach-bottom p{font-size:13px;color:#bdcfe7;margin:0;line-height:1.75}.approach-bottom strong{color:#fff;font-weight:500}.approach-bottom .button{margin-left:auto}
.locations-section{display:grid;grid-template-columns:1fr 1.05fr;gap:90px;align-items:center}.location-copy h2{margin-bottom:25px}.location-copy>p:not(.eyebrow){max-width:370px;font-size:15px}.location-copy>.muted{font-size:13px!important;line-height:1.8}.location-copy .text-link{margin-top:10px}.locations-panel{border:1px solid var(--line);border-radius:20px;padding:29px;background:var(--soft)}.location-home{display:flex;align-items:center;gap:15px;padding-bottom:29px;border-bottom:1px solid #d3e1f3;flex-wrap:wrap}.pin-icon{font-size:39px;line-height:1;background:var(--accent);width:57px;height:57px;display:flex;align-items:center;justify-content:center;border-radius:50%;flex-shrink:0}.location-home div>span{font-size:12px;letter-spacing:.08em;color:var(--muted)}.location-home h3{font-size:24px;margin:5px 0 0}.home-tag{font-size:12px;margin-left:auto;color:#416b99;max-width:72px}.locations-label{font-size:12px;letter-spacing:.08em;margin:29px 0 16px}.city-list{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.city-list>span{background:white;border:1px solid #d4e3f5;border-radius:7px;padding:13px 7px;font-size:12px;text-align:center;white-space:nowrap}.city-list>span:last-child{background:var(--accent);border-color:var(--accent)}.locations-note{display:flex;align-items:center;gap:12px;font-size:12px;color:#557397;margin-top:22px}.locations-note>span{font-size:21px}
.faq-section{background:var(--soft);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.faq-layout{display:grid;grid-template-columns:.86fr 1.2fr;gap:80px}.faq-layout>div:first-child>p:last-child{margin-top:26px;font-size:14px;line-height:1.9}.faq-layout .text-link{margin-top:7px}.faq-list details{border-bottom:1px solid #d4dfef}.faq-list details:first-child{border-top:1px solid #d4dfef}.faq-list summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:15px;line-height:1.5;font-weight:500;padding:23px 0;cursor:pointer}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary>span{flex-shrink:0;width:22px;height:22px;position:relative}.faq-list summary>span:before,.faq-list summary>span:after{content:'';height:1px;width:12px;background:var(--ink);position:absolute;left:5px;top:10px}.faq-list summary>span:after{transform:rotate(90deg);transition:transform .2s}.faq-list details[open] summary>span:after{transform:rotate(0)}.faq-list details>p{font-size:13px;line-height:1.9;margin:0 30px 24px 0}
.contact-section{background:var(--accent)}.contact-layout{display:grid;grid-template-columns:.9fr 1.15fr;gap:82px;align-items:center}.contact-copy h2{font-size:clamp(2.8rem,5vw,4.25rem);margin-bottom:25px;letter-spacing:-.055em}.contact-copy h2>span{color:#00c8f5}.contact-copy>p:not(.eyebrow){color:#bfcee3;font-size:15px;max-width:340px;line-height:1.85}.contact-note{display:flex;align-items:center;gap:20px;margin-top:34px}.contact-note>span{width:45px;height:45px;border-radius:50%;border:1px solid #32649b;display:flex;align-items:center;justify-content:center;font-size:24px}.contact-note p{font-size:12px;margin:0;color:#c6dcf6}.contact-form{background:white;border-radius:18px;padding:32px;box-shadow:0 5px 0 #003c8508;position:relative}.contact-form h3{font-size:23px;margin-bottom:9px}.form-intro{font-size:12px;margin-bottom:24px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field{display:flex;flex-direction:column;gap:7px;margin-bottom:17px}.field label{font-size:12px;font-weight:600}.optional{font-weight:400;color:#64758d}.field input,.field select,.field textarea{width:100%;border:1px solid #cbd9ec;border-radius:6px;background:#fff;color:var(--ink);padding:12px 11px;font-size:12px;line-height:1.5;min-width:0}.field input::placeholder,.field textarea::placeholder{color:#687d98}.field textarea{resize:vertical;min-height:90px}.field input:focus,.field select:focus,.field textarea:focus{border-color:#1683f7;outline-offset:2px;outline-width:2px}.consent{display:flex;align-items:flex-start;gap:9px;font-size:12px;color:#516680;line-height:1.6;margin-bottom:19px;cursor:pointer}.consent input{accent-color:var(--ink);width:14px;height:14px;margin:1px 0 0;flex-shrink:0}.form-submit{width:100%;justify-content:space-between;font-size:13px;padding-block:14px}.form-submit:disabled{opacity:.6;cursor:wait;transform:none}.form-status{font-size:12px;line-height:1.65;margin:0}.form-status:not(:empty){margin-top:15px;padding:12px;border-radius:6px;background:#eaf5ff;color:#124e87}.form-status.error{background:#fff1ed;color:#9b3527}.honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.footer{background:white;padding-top:45px}.footer-bottom{border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;font-size:12px;color:#6781a3;padding-block:22px}.footer-bottom>span:nth-child(2){color:var(--ink)}
@media(min-width:1500px){.hero{padding-block:95px}.hero h1{font-size:84px}}
@media(max-width:1150px){.container{width:calc(100% - 64px)}.hero{gap:28px}.hero h1{font-size:64px}.hero-star{margin-left:14px}.hero-visual{padding:20px;min-height:auto}.hero-actions{gap:15px}.hero-actions .button{font-size:12px;padding-inline:17px}#main-nav{gap:18px}.nav-wrap{gap:20px}.locations-section,.contact-layout{gap:50px}.location-home{gap:10px}.home-tag{display:none}.service-card{padding:24px}.faq-layout{gap:50px}}
@media(max-width:950px){.brand{font-size:25px}#main-nav{gap:16px}#main-nav a{font-size:12px}.hero{gap:28px}.hero h1{font-size:53px}.hero .eyebrow{font-size:12px}.hero-star{font-size:.62em}.hero-description{font-size:14px}.hero-note{font-size:12px}.hero-visual{padding:20px 15px}.search-card{padding-inline:14px;width:97%}.strategy-card{max-width:248px}.journey-card{padding:16px}.journey-steps strong{font-size:12px}.journey-number{width:22px;height:22px;font-size:12px}.journey-steps>div{gap:4px}.section{padding-block:80px}.services-grid{gap:14px}.service-card{padding:23px 20px}.service-card h3{font-size:20px}.service-card p{font-size:13px}.service-tags{font-size:12px}.service-link{font-size:12px}.process-grid{gap:22px}.process-grid h3{font-size:18px}.process-grid p{font-size:12px}.contact-layout{gap:30px}.contact-form{padding:25px}.city-list{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.container{width:calc(100% - 40px)}.nav-wrap{min-height:75px}.menu-toggle{position:absolute;right:20px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:36px;height:40px;border:0;background:none}.menu-toggle span{width:21px;height:1.5px;background:var(--ink);transition:transform .2s}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(3.25px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-3.25px) rotate(-45deg)}#main-nav{display:none;position:absolute;top:75px;left:0;right:0;background:white;padding:12px 24px 23px;border-bottom:1px solid var(--line);box-shadow:0 15px 25px #001e540d}#main-nav.is-open{display:flex;align-items:stretch;flex-direction:column;gap:0}#main-nav a{padding:13px 0;font-size:15px}.hero{grid-template-columns:1fr;padding-block:48px 43px;gap:38px}.hero h1{font-size:clamp(3.4rem,9.4vw,4.6rem);max-width:590px}.hero-star{font-size:.8em;margin-left:28px}.hero .eyebrow{font-size:12px;max-width:330px}.hero-description{max-width:480px;font-size:16px}.hero-note{font-size:12px}.hero-actions{gap:22px}.hero-actions .button{font-size:13px;padding:15px 18px}.hero-visual{padding:23px 28px;max-width:530px;width:100%;justify-self:center}.search-card{width:90%;padding:0 22px 21px}.search-input{font-size:13px}.result-title{font-size:22px}.search-card>p{font-size:12px}.strategy-card{max-width:290px;margin-right:0}.journey-card{padding:18px 22px}.journey-steps strong{font-size:12px}.journey-number{width:28px;height:28px;font-size:12px}.journey-steps>div{gap:8px}.visual-footnote{font-size:12px}.section{padding-block:64px}.eyebrow{font-size:12px;margin-bottom:20px}.section-heading{display:block;margin-bottom:30px}.section-heading>p{max-width:480px;margin-top:22px;font-size:14px}.services-grid{grid-template-columns:repeat(2,1fr)}.service-card{padding:23px}.service-card h3{font-size:21px}.service-card p{font-size:13px}.service-top{margin-bottom:22px}.service-tags{line-height:1.7}.service-link{font-size:12px}.approach-intro{display:block}.approach-intro>p{max-width:440px;margin-top:23px;font-size:14px}.process-grid{grid-template-columns:repeat(2,1fr);gap:32px;margin-top:35px}.process-grid h3{font-size:22px}.process-grid p{font-size:13px}.approach-bottom{flex-wrap:wrap;gap:16px}.approach-bottom .button{margin-left:0;width:100%;margin-top:8px}.locations-section{grid-template-columns:1fr;gap:34px}.location-copy>p:not(.eyebrow){max-width:480px}.location-copy h2 br:nth-of-type(2){display:none}.locations-panel{padding:25px}.city-list{grid-template-columns:repeat(3,1fr)}.home-tag{display:block;max-width:90px}.faq-layout{grid-template-columns:1fr;gap:28px}.faq-layout>div:first-child>p:last-child{margin-bottom:0}.faq-list summary{font-size:15px}.faq-list details>p{font-size:14px}.contact-layout{grid-template-columns:1fr;gap:35px}.contact-copy h2{font-size:52px}.contact-copy h2 br:nth-of-type(2){display:none}.contact-copy>p:not(.eyebrow){max-width:450px}.contact-note{display:none}.contact-form{padding:28px}.field label{font-size:12px}.field input,.field textarea,.field select{font-size:16px}.form-intro{font-size:13px}.consent{font-size:12px}.consent input{width:16px;height:16px}.footer-bottom{flex-wrap:wrap;font-size:12px}.footer-bottom>a{margin-left:auto}}
@media(max-width:420px){.brand{font-size:24px}.hero h1{font-size:52px}.hero-star{margin-left:19px}.hero-actions{gap:16px}.hero-actions .button{font-size:12px;padding:15px}.hero-actions .text-link{font-size:12px}.hero-visual{padding:20px 16px}.search-card{width:95%;padding-inline:17px}.result-title{font-size:20px}.strategy-card{max-width:265px;padding:12px}.journey-card{padding:16px}.journey-title{font-size:12px}.journey-steps strong{font-size:12px}.journey-number{width:23px;height:23px;font-size:12px}.services-grid{grid-template-columns:1fr}.service-card{padding:25px}.service-card h3{font-size:24px}.service-card p{font-size:15px;max-width:none}.service-tags{font-size:12px}.service-link{font-size:13px}.process-grid{gap:22px}.process-grid h3{font-size:19px}.step-output{font-size:12px}.contact-copy h2{font-size:46px}.contact-form{padding:23px}.form-row{grid-template-columns:1fr;gap:0}.city-list{gap:8px}.city-list>span{font-size:12px}.home-tag{font-size:12px;max-width:66px}.location-home h3{font-size:22px}.pin-icon{width:47px;height:47px;font-size:32px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}

/* Readable body text and controls at every breakpoint. */
#main-nav a,.button,.text-link,.service-link{font-size:14px}
.hero-description,.section-heading>p,.service-card p,.process-grid p,.approach-intro>p,.location-copy>p:not(.eyebrow),.faq-list details>p,.contact-copy>p:not(.eyebrow){font-size:16px;line-height:1.8}
.field label,.consent,.form-intro,.form-status{font-size:14px}
.field input,.field select,.field textarea{font-size:16px}
.result-label{letter-spacing:0}.result-label small{font-size:12px}.browser-bar{font-size:12px;gap:8px}.journey-title{font-size:12px}.strategy-card{max-width:320px}.strategy-card div>span{font-size:12px}.strategy-card strong{font-size:14px}.strategy-icon{flex-shrink:0}.home-tag{max-width:100px}.city-list>span{font-size:14px}.location-copy>.muted{font-size:16px!important}.contact-note p{font-size:14px}
@media(max-width:950px) and (min-width:761px){.nav-wrap{gap:14px}#main-nav{gap:12px}#main-nav a{font-size:13px}.journey-steps{gap:7px;flex-wrap:wrap}.journey-steps>i{display:none}.hero-visual{padding-inline:15px}.journey-card{padding:16px 12px}.journey-title{font-size:12px}}
@media(max-width:760px){.hero .eyebrow{max-width:360px}.hero-actions .button,.hero-actions .text-link{font-size:14px}.hero h1{font-size:clamp(3rem,8.8vw,4.3rem)}.hero-star{margin-left:16px}.journey-steps>div{gap:5px}.journey-steps>i{display:none}.hero-visual{padding-inline:20px}.search-card{width:96%}.city-list{grid-template-columns:repeat(3,minmax(0,1fr))}.city-list>span{font-size:12px}.home-tag{max-width:90px}}
@media(max-width:380px){.brand{font-size:22px}.hero h1{font-size:46px}.hero-star{font-size:.65em;margin-left:12px}.journey-number{display:none}.hero-visual{padding-inline:14px}.city-list{grid-template-columns:repeat(2,minmax(0,1fr))}.home-tag{display:none}.process-grid{grid-template-columns:1fr}.form-row{grid-template-columns:1fr}}@media(max-width:760px){.nav-wrap{gap:12px}}

/* brand.css */
/* BLOG MATRIX — palette inspired by the supplied, unaltered logo.
   Midnight #02051c | Electric blue #0866ff | Cyan #00c8f5 | White #ffffff */
:root {
  --brand-midnight: #02051c;
  --brand-navy: #07122e;
  --brand-blue: #0866ff;
  --brand-cyan: #00c8f5;
  --ink: #0b1832;
  --muted: #566781;
  --accent: #0866ff;
  --paper: #ffffff;
  --soft: #f3f7ff;
  --line: #dce5f3;
}
::selection { background: #a2ecff; color: var(--brand-midnight); }
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible { outline-color: #00b9e8; }
.site-header { background: #02051cf5; color: #fff; border-color: #1b2846; backdrop-filter: blur(16px); }
.brand { gap: 11px; color: #fff; letter-spacing: .065em; font-size: 19px; font-weight: 750; }
.brand-logo { display:block; width: 56px; height:56px; object-fit:contain; border-radius:50%; flex-shrink:0; }
.brand-wordmark { display:flex; gap:6px; align-items:baseline; }
.brand-wordmark span { color: #51d4ff; }
#main-nav a { color:#d4dded; }
#main-nav a:hover { color: #55dcff; }
.button-dark { background: var(--brand-blue); color:#fff; border-color: #3b84ff; box-shadow:0 5px 24px #065cff1c; }
.button-dark:hover { background:#0755d5; border-color:#4396ff; }
.button-accent { background:#00c8f5; color:#04152d; border-color:#54e1ff; }
.button-accent:hover { background:#56e1ff; }
.text-link:hover { color:#0659d9; }
.skip-link { background:#b7f1ff; color:#07122e; }
.hero-shell { background:radial-gradient(ellipse at 84% 30%,#092b693f,transparent 58%),var(--brand-midnight); color:#fff; overflow:hidden; }
.hero { padding-top:77px; padding-bottom:85px; }
.hero .eyebrow { color:#b2d4ee; }
.hero .small-star,.hero-star { color:var(--brand-cyan); }
.hero-description,.hero-note { color:#bbc8df; }
.hero .text-link { color:#d4e6ff; }
.hero .text-link:hover { color:#65e1ff; }
.highlight { color:#3cdcff; }
.highlight:before { background:linear-gradient(90deg,#0969ff33,#00c8f514); border-bottom:2px solid #17b9f0; transform:rotate(-1deg); inset:14% -4% -1%; }
.check-icon { color:#62d7ff; border-color:#35628c; }
.hero-visual { background-color:#07122e; border-color:#1c3c6c; background-image:radial-gradient(#21528c7a 1px,transparent 1px); box-shadow:0 0 75px #0866ff18,inset 0 0 55px #0655d511; }
.visual-brand { display:flex; align-items:center; gap:12px; margin-bottom:26px; }
.visual-brand img { width:49px; height:49px; object-fit:contain; border-radius:50%; }
.visual-brand strong { display:block; font-size:13px; letter-spacing:.13em; color:#fff; }
.visual-brand p { color:#9dbad9; font-size:12px; margin:2px 0 0; letter-spacing:.02em; }
.visual-brand > span { color:#40d2ff; margin-left:auto; font-size:23px; }
.search-card { border-color:#b7d4f2; box-shadow:0 20px 50px #000b; color:var(--ink); }
.browser-bar { color:#526d8f; border-color:#dce5f3; }
.browser-dots i { background:#c2d9f4; }
.browser-dots i:first-child { background:#00bbed; }
.search-input { border-color:#d8e4f4; color:#4b6283; background:#f7faff; }
.typing-cursor { background:#0866ff; }
.result-label,.result-label small { color:#5a7290; }
.result-title { color:#0756c7; }
.mini-mark { background:#e0f5ff; color:#0873dc; }
.result-tags span { color:#295b9d; background:#edf5ff; }
.strategy-card { background:linear-gradient(125deg,#0754cf,#095cbf); border-color:#41bfff; color:white; box-shadow:0 12px 30px #00174e5c; }
.strategy-icon { border-color:#7ecaff; color:#fff; }
.strategy-card div>span { color:#e2f2ff; }
.journey-card { background:#020920; border:1px solid #1c4878; }
.journey-title { color:#c4ddf5; }
.journey-title span:last-child { color:#49dfff; }
.journey-number { color:#44d8ff; border-color:#275381; }
.journey-steps i { color:#419ae2; }
.visual-footnote { color:#a1bad7; }
.eyebrow { color:#2160a5; }
.service-card { background:white; }
.service-card:hover { border-color:#599aff; box-shadow:0 12px 30px #0b3a7910; }
.service-icon { background:#edf5ff; color:#0866ff; }
.service-icon svg { stroke:#0866ff; }
.card-number,.service-tags { color:#596f8e; }
.service-card-accent { background:linear-gradient(145deg,#064fd5,#0861d5); border-color:#0866ff; color:#fff; }
.service-card-accent p,.service-card-accent .service-tags,.service-card-accent .card-number { color:#e1edff; }
.service-card-accent .service-icon { background:#ffffff1c; }
.service-card-accent .service-icon svg { stroke:#c7f5ff; }
.service-card-accent .service-link { border-color:#ffffff40; }
.service-link:hover { color:#0866ff; }
.service-card-accent .service-link:hover { color:#bcf4ff; }
.approach { background:linear-gradient(120deg,#02051c,#071a3b); }
.approach .eyebrow { color:#81cfff; }
.approach-intro h2 span { color:#48d6ff; }
.approach-intro>p,.process-grid p,.approach-bottom p { color:#bfcee3; }
.process-grid article,.approach-bottom { border-color:#2b4061; }
.step-number,.approach-bottom .small-star { color:#3ad7ff; }
.step-output { color:#8eafd6; }
.approach-bottom strong { color:#fff; }
.locations-panel { background:#f3f7ff; border-color:#d2e1f4; }
.location-home { border-color:#d2e1f4; }
.pin-icon { background:#e2f1ff; color:#0866ff; border:1px solid #c2e1ff; }
.home-tag,.locations-note { color:#345e8c; }
.city-list>span { border-color:#d5e3f5; color:#304d75; }
.city-list>span:last-child { background:#0866ff; border-color:#0866ff; color:#fff; }
.faq-section { background:#f4f7fd; }
.faq-list details,.faq-list details:first-child { border-color:#d4dfef; }
.faq-list summary>span:before,.faq-list summary>span:after { background:#0866ff; }
.contact-section { background:linear-gradient(118deg,#03102d 10%,#06285c 100%); color:white; }
.contact-section .eyebrow { color:#72d7ff; }
.contact-copy h2>span { color:#00c8f5; }
.contact-copy>p:not(.eyebrow) { color:#bfcee3; }
.contact-note>span { color:#5adfff; border-color:#32649b; }
.contact-note p { color:#c6dcf6; }
.contact-form { color:var(--ink); box-shadow:0 15px 60px #0004; border:1px solid #c7e0fa; }
.field input,.field select,.field textarea { border-color:#cbd9ec; background:#fbfdff; }
.field input:focus,.field select:focus,.field textarea:focus { border-color:#1683f7; }
.field input::placeholder,.field textarea::placeholder,.optional { color:#64758d; }
.consent { color:#516680; }
.consent input { accent-color:#0866ff; }
.form-status:not(:empty) { background:#eaf5ff; color:#124e87; }
.form-status.error { background:#fff1ed; color:#9b3527; }
.footer { background:#02051c; color:#e6eeff; border-top:1px solid #1c3150; }
.footer-bottom { color:#aabdd6; border-color:#243550; }
.footer-bottom>span:nth-child(2) { color:#d5eaff; }
@media(max-width:1050px) and (min-width:761px) {
  .brand { gap:8px; font-size:16px; letter-spacing:.025em; }
  .brand-logo { width:44px; height:44px; }
  .brand-wordmark { gap:4px; }
  .nav-wrap { gap:15px; }
  #main-nav { gap:16px; }
  #main-nav a { font-size:13px; }
}
@media(max-width:760px) {
  .brand { gap:8px; font-size:15px; letter-spacing:.04em; }
  .brand-logo { width:42px; height:42px; }
  .brand-wordmark { display:block; line-height:1.15; }
  .brand-wordmark span { display:block; }
  .hero { padding-block:48px; }
  #main-nav { background:#07122e; border-color:#203651; box-shadow:0 15px 25px #0005; }
  .menu-toggle span { background:#d6f2ff; }
  .footer .brand { font-size:19px; }
  .footer .brand-logo { width:55px; height:55px; }
  .footer .brand-wordmark { display:flex; gap:6px; }
}
@media(max-width:380px) {
  .brand { font-size:13px; gap:6px; }
  .brand-logo { width:35px; height:35px; }
  .visual-brand { gap:8px; }
  .visual-brand p { font-size:12px; letter-spacing:0; }
}

/* components.css */
/* Navigation, controls and three-column footer. */
.arrow-icon { width:19px; height:19px; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; flex-shrink:0; transition:transform .2s; }
.button { border-radius:999px; min-height:54px; padding:9px 9px 9px 23px; gap:22px; font-weight:600; letter-spacing:.005em; transition:background .2s,box-shadow .2s,border-color .2s; }
.button:hover { transform:none; box-shadow:0 8px 25px #0866ff26; }
.button > span[aria-hidden] { display:flex; align-items:center; justify-content:center; width:35px; height:35px; border-radius:50%; background:#ffffff20; flex-shrink:0; }
.button:hover .arrow-icon { transform:translateX(2px); }
.button-dark { background:linear-gradient(105deg,#0866ff,#0756d5); border-color:#4a96ff; }
.button-dark:hover { background:#064fcd; border-color:#70b5ff; }
.button-accent > span[aria-hidden] { background:#001f3520; }
.text-link { padding-block:7px; gap:12px; border:0; }
.text-link > span[aria-hidden] { display:flex; width:31px; height:31px; justify-content:center; align-items:center; border:1px solid #bfd4ef; border-radius:50%; color:#0866ff; transition:background .2s,border-color .2s; }
.text-link:hover > span[aria-hidden] { background:#e3f1ff; border-color:#6aaaff; }
.hero .text-link > span[aria-hidden] { border-color:#36577d; color:#69dfff; }
.hero .text-link:hover > span[aria-hidden] { background:#123253; }
.service-link { font-size:14px; gap:12px; padding-top:20px; }
.service-link > span[aria-hidden] { border:1px solid #d4e3f6; background:#f2f7ff; color:#0866ff; display:flex; justify-content:center; align-items:center; width:34px; height:34px; flex-shrink:0; border-radius:50%; transition:background .2s,color .2s; }
.service-link:hover > span[aria-hidden] { background:#0866ff; color:#fff; border-color:#0866ff; }
.service-card-accent .service-link > span[aria-hidden] { background:#ffffff14; color:#fff; border-color:#ffffff50; }
.service-card-accent .service-link:hover > span[aria-hidden] { background:#fff; color:#085bcf; }
.form-submit { padding:9px 9px 9px 23px; }
.nav-wrap { min-height:86px; gap:35px; }
#main-nav { margin-left:auto; }
.nav-list { display:flex; align-items:center; gap:30px; list-style:none; margin:0; padding:0; }
#main-nav .nav-list a { display:block; padding:12px 0; color:#d7e1ef; font-size:14px; font-weight:500; line-height:1.5; text-transform:uppercase; border-bottom:2px solid transparent; transition:color .15s,border-color .15s; }
#main-nav .nav-list a:hover,#main-nav .nav-list a:focus-visible { color:#fff; border-bottom-color:#5bafff; }
.menu-toggle { display:none; }

.industry-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.industry-card { position:relative; border:1px solid #dce5f3; border-radius:16px; padding:25px; display:flex; flex-direction:column; align-items:flex-start; gap:20px; transition:background .2s,border-color .2s; }
.industry-card:hover { background:#f3f8ff; border-color:#76abef; }
.industry-symbol { display:flex; align-items:center; justify-content:center; width:38px; height:38px; border:1px solid #d9e8f9; border-radius:11px; color:#0866ff; background:#f2f7ff; font-size:12px; font-family:monospace; }
.industry-card h3 { font-size:22px; line-height:1.2; margin-bottom:12px; letter-spacing:-.025em; }
.industry-card p { font-size:16px; line-height:1.8; margin:0; }
.industry-arrow { position:absolute; right:24px; top:30px; color:#3074bd; }
.case-section { background:#eef4fd; border-block:1px solid #dce5f3; padding:75px 0; }
.case-layout { display:grid; grid-template-columns:1fr 1fr; gap:90px; align-items:center; }
.case-layout > div > p:not(.eyebrow) { font-size:16px; line-height:1.85; max-width:435px; margin:24px 0; }
.case-framework { background:#fff; border:1px solid #d8e5f5; border-radius:19px; padding:30px; }
.case-caption { font-size:12px; font-weight:600; letter-spacing:.08em; color:#526b8e; margin-bottom:22px; }
.case-framework > div { display:flex; gap:18px; align-items:flex-start; padding:19px 0; border-top:1px solid #e0e9f4; }
.case-framework > div:last-child { padding-bottom:0; }
.case-framework > div > span { display:flex; align-items:center; justify-content:center; flex-shrink:0; width:33px; height:33px; color:#0961ce; font:12px monospace; background:#eef5ff; border-radius:50%; }
.case-framework p { margin-bottom:0; font-size:14px; line-height:1.8; }
.case-framework strong { display:block; color:#152c4f; font-size:16px; margin-bottom:4px; font-weight:600; }

.footer { position:relative; background:radial-gradient(ellipse at 0 0,#0b2e603b,transparent 55%),#02051c; padding:0; border-top:1px solid #24415f; }
.footer-invitation { display:flex; align-items:center; justify-content:space-between; gap:40px; padding:56px 0 44px; border-bottom:1px solid #243550; }
.footer-invitation .eyebrow { color:#81d5ff; margin-bottom:16px; }
.footer-invitation h2 { font-size:clamp(2rem,3.3vw,2.8rem); color:white; letter-spacing:-.04em; line-height:1.15; }
.footer-cta { background:#f7fbff; color:#0c2240; border:1px solid #fff; }
.footer-cta > span[aria-hidden] { background:#0866ff; color:white; }
.footer-cta:hover { background:#dceeff; border-color:#b0d5ff; }
.footer-columns { display:grid; grid-template-columns:1.35fr .75fr 1fr; gap:80px; padding:52px 0 50px; }
.footer .brand { font-size:20px; gap:12px; }
.footer .brand-logo { width:59px; height:59px; }
.footer .brand-wordmark { display:flex; gap:6px; }
.footer-brand-column > p { color:#a9bedb; font-size:15px; line-height:1.9; margin:22px 0; }
.footer-location { display:flex; align-items:center; gap:13px; margin:26px 0; }
.footer-location svg { width:25px; height:25px; stroke:#50cfff; stroke-width:1.45; flex-shrink:0; }
.footer-location strong { display:block; font-size:14px; font-weight:500; color:#e1edff; }
.footer-location div > span { display:block; margin-top:2px; color:#93adce; font-size:13px; }
.footer-contact-link { display:inline-flex; align-items:center; gap:15px; color:#71dfff; font-size:14px; border-bottom:1px solid #275178; padding-bottom:8px; }
.footer-contact-link:hover { border-color:#71dfff; color:#c6f5ff; }
.footer-nav-column { display:flex; flex-direction:column; align-items:flex-start; gap:13px; padding-top:13px; }
.footer-nav-column h3 { display:flex; align-items:center; gap:11px; font-size:16px; font-weight:600; color:#fff; letter-spacing:0; margin-bottom:11px; line-height:1.5; }
.footer-nav-column h3 svg { width:20px; height:20px; stroke:#5bcfff; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.footer-nav-column > a { color:#a9bedb; font-size:14px; padding:2px 0; line-height:1.5; transition:color .2s,transform .2s; }
.footer-nav-column > a:hover { color:#76dfff; transform:translateX(4px); }
.footer-bottom { align-items:center; padding:23px 0; font-size:12px; }
.footer-signoff { color:#a9bedb!important; }
.back-top { display:flex; align-items:center; gap:12px; color:#d4e9ff; }
.back-top > span { display:flex; align-items:center; justify-content:center; width:32px; height:32px; border:1px solid #32547c; border-radius:50%; font-size:17px; }
.back-top:hover > span { background:#0866ff; border-color:#0866ff; color:white; }

@media(max-width:1100px) {
  .nav-wrap { min-height:82px; }
  .site-header .brand { font-size:18px; gap:10px; }
  .site-header .brand-logo { width:49px; height:49px; }
  .site-header .brand-wordmark { display:flex; gap:6px; line-height:1; }
  .menu-toggle { display:flex; position:relative; right:auto; margin-left:auto; flex-shrink:0; flex-direction:column; align-items:center; justify-content:center; gap:5px; width:44px; height:44px; border:1px solid #344663; border-radius:4px; background:transparent; }
  .menu-toggle:hover { border-color:#7188a7; background:#ffffff08; }
  .menu-toggle span { display:block; width:20px; height:2px; border-radius:0; background:#e1eaf6; transition:transform .15s,opacity .15s; }
  .menu-toggle[aria-expanded=true] span:first-child { transform:translateY(7px) rotate(45deg); }
  .menu-toggle[aria-expanded=true] span:nth-child(2) { opacity:0; }
  .menu-toggle[aria-expanded=true] span:last-child { transform:translateY(-7px) rotate(-45deg); }
  #main-nav { display:none; position:absolute; top:100%; left:auto; right:32px; width:300px; margin:0; padding:8px 20px; border:1px solid #283b58; border-top:0; border-radius:0 0 5px 5px; background:#08132a; box-shadow:0 12px 24px #0003; }
  #main-nav.is-open { display:block; }
  .nav-list { display:block; }
  .nav-list li + li { border-top:1px solid #24334c; }
  #main-nav .nav-list a { padding:15px 4px; font-size:15px; line-height:1.5; border:0; }
  #main-nav .nav-list a:hover,#main-nav .nav-list a:focus-visible { color:#a7d4ff; background:#ffffff04; }
  .footer-columns { gap:45px; }
}
@media(max-width:760px) {
  .nav-wrap { min-height:76px; }
  .site-header .brand { font-size:17px; gap:9px; }
  .site-header .brand-logo { width:44px; height:44px; }
  #main-nav { left:20px; right:20px; width:auto; padding:6px 18px; }
  .hero-actions .button { padding:9px 9px 9px 19px; font-size:14px; }
  .hero-actions { gap:18px; }
  .industry-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
  .industry-card { padding:20px; }
  .industry-card h3 { font-size:20px; }
  .industry-arrow { right:19px; top:25px; }
  .case-layout { grid-template-columns:1fr; gap:32px; }
  .case-section { padding:60px 0; }
  .case-framework { padding:25px; }
  .footer-invitation { padding:40px 0; flex-direction:column; align-items:flex-start; gap:27px; }
  .footer-invitation h2 { font-size:34px; }
  .footer-columns { grid-template-columns:1fr 1fr; gap:28px; padding:35px 0; }
  .footer-brand-column { grid-column:1/-1; border-bottom:1px solid #243550; padding-bottom:30px; }
  .footer-brand-column > p { margin:16px 0; }
  .footer .brand { font-size:20px; }
  .footer-location { margin:20px 0; }
  .footer-nav-column { padding-top:0; gap:12px; }
  .footer-nav-column h3 { font-size:15px; gap:8px; }
  .footer-bottom { gap:17px; }
  .footer-bottom > span:first-child { flex-basis:100%; }
  .footer-signoff { font-size:12px; }
  .back-top { margin-left:auto; }
}
@media(max-width:420px) {
  .industry-grid { grid-template-columns:1fr; }
  .industry-card { flex-direction:row; gap:15px; padding:23px; }
  .industry-card h3 { padding-right:18px; }
  .industry-card p { font-size:15px; }
  .industry-symbol { flex-shrink:0; width:32px; height:32px; }
  .industry-arrow { right:19px; top:23px; }
  .footer-columns { gap:22px; }
  .footer-nav-column h3 { font-size:14px; }
  .footer-nav-column > a { font-size:14px; }
  .footer-nav-column h3 svg { width:17px; height:17px; }
  .footer-invitation h2 { font-size:31px; }
  .button { gap:15px; }
}
@media(prefers-reduced-motion:reduce) { .arrow-icon,.footer-nav-column>a,.menu-toggle span { transition:none; } }

/* pages.css */
/* Interior page layouts and homepage improvements. */
#main-nav .nav-list a[aria-current="page"] { color:#fff; border-bottom-color:#5bafff; }
.page-hero { background:linear-gradient(110deg,#02051c,#08214b); color:white; padding:30px 0 70px; }
.breadcrumbs { display:flex; align-items:center; gap:12px; font-size:13px; color:#a7bedc; margin-bottom:45px; }
.breadcrumbs a:hover { color:#74dfff; }
.breadcrumbs > span:last-child { color:#dbeaff; }
.page-hero .eyebrow { color:#83d4ff; margin-bottom:24px; }
.page-hero h1 { font-size:clamp(2.8rem,5.2vw,4.7rem); line-height:1.08; letter-spacing:-.045em; font-weight:650; margin-bottom:26px; }
.page-hero h1 > span { color:#62d8ff; }
.page-lead { color:#bdcfe6; max-width:700px; font-size:18px; line-height:1.8; margin-bottom:29px; }
.page-hero-link { margin-left:28px; display:inline-block; color:#c7e7ff; font-size:14px; padding-block:13px; }
.page-hero-link:hover { color:#75e2ff; }
.principle-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:35px; }
.principle-grid article { border-top:2px solid #c4dcfa; padding-top:23px; }
.principle-grid h3 { font-size:22px; letter-spacing:-.025em; margin:16px 0 13px; }
.principle-grid p { font-size:16px; line-height:1.85; margin-bottom:0; }
.principle-number { font:13px monospace; color:#1765c5; }
.why-section > .text-link { margin-top:33px; }
.directory-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.directory-card { display:flex; flex-direction:column; align-items:flex-start; padding:28px; border:1px solid #d6e4f5; border-radius:12px; transition:border-color .2s,background .2s; }
.directory-card:hover { background:#f5f9ff; border-color:#659dec; }
.directory-number { font:13px monospace; color:#4778b6; margin-bottom:28px; }
.directory-card h3 { font-size:25px; margin-bottom:14px; }
.directory-card p { font-size:16px; line-height:1.8; margin-bottom:23px; flex:1; }
.directory-link { display:flex; align-items:center; gap:14px; font-size:14px; color:#0a5ac5; }
.directory-link > span { display:flex; }
.service-detail { padding:82px 0; border-top:1px solid #dce5f3; scroll-margin-top:95px; }
.service-detail:nth-child(odd) { background:#f4f8fe; }
.service-detail-grid { display:grid; grid-template-columns:1fr 1fr; gap:75px; align-items:start; }
.service-detail h2 { font-size:42px; }
.detail-tagline { color:#14345a; font-size:21px; line-height:1.5; margin:20px 0; }
.service-detail p { line-height:1.9; }
.audience-note { border-left:3px solid #6babf7; padding:0 0 0 19px; margin:25px 0 30px; }
.audience-note strong { font-size:14px; color:#1b5087; }
.audience-note p { margin:6px 0 0; font-size:15px; }
.scope-panel { border:1px solid #cbdff5; border-radius:13px; background:white; padding:30px; }
.scope-panel h3 { font-size:24px; margin-bottom:20px; }
.scope-list { list-style:none; padding:0; margin:0; }
.scope-list li { position:relative; padding:13px 0 13px 22px; border-bottom:1px solid #e1eaf6; font-size:15px; line-height:1.8; color:#405c7d; }
.scope-list li:before { content:''; width:5px; height:5px; border-radius:50%; background:#0866ff; position:absolute; left:1px; top:24px; }
.scope-list li:last-child { border-bottom:0; }
.scope-output { padding:19px; background:#edf5ff; border-radius:7px; margin-top:20px; }
.scope-output strong { font-size:14px; color:#185697; }
.scope-output p { font-size:15px; margin:7px 0 0; }
.discovery-question { margin:19px 0 0; font-size:14px; }
.discovery-question strong { color:#29496e; }
.soft-section,.page-faq { background:#f4f7fd; border-top:1px solid #dce5f3; }
.narrow { max-width:850px; }
.page-faq h2 { margin-bottom:35px; }
.page-cta { background:#07152f; padding:63px 0; color:white; }
.page-cta > .container { display:flex; justify-content:space-between; align-items:center; gap:40px; }
.page-cta .eyebrow { color:#7dd8ff; margin-bottom:15px; }
.page-cta h2 { font-size:36px; }
.page-cta p { color:#b7cae4; margin:17px 0 0; max-width:650px; font-size:16px; }
.page-cta .button { flex-shrink:0; }
.location-principles { display:grid; grid-template-columns:.9fr 1.1fr; gap:80px; align-items:center; }
.home-base-card { border:1px solid #bad9fa; background:linear-gradient(130deg,#edf7ff,#e4eeff); padding:42px; border-radius:14px; }
.home-base-card h2 { font-size:42px; }
.home-base-card > p:not(.eyebrow) { margin-top:24px; font-size:16px; line-height:1.85; }
.home-base-card .small-note { font-size:13px!important; color:#446388; border-top:1px solid #bcd2ec; padding-top:18px; }
.location-principles .scope-list { margin-top:25px; }
.coverage-section { background:#f4f8fe; border-block:1px solid #dce5f3; }
.directory-search { border:1px solid #cbdcf0; background:white; border-radius:10px; padding:23px; margin-bottom:35px; max-width:720px; }
.directory-search label { display:block; color:#203c5d; font-size:14px; font-weight:600; margin-bottom:10px; }
.directory-search input { padding:13px 15px; font:inherit; width:100%; border:1px solid #afc8e5; border-radius:5px; background:#fbfdff; color:#173556; }
.directory-search p { font-size:13px; margin:10px 0 0; }
.region-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; align-items:start; }
.region-block { border:1px solid #d6e3f3; border-radius:10px; background:white; padding:25px; }
.region-block h3 { font-size:22px; line-height:1.2; padding-bottom:18px; border-bottom:1px solid #dde7f4; margin-bottom:9px; }
.region-block ul { list-style:none; margin:0; padding:0; }
.city-item a { display:block; padding:7px 0; font-size:15px; line-height:1.7; color:#35597e; }
.city-item a:hover { color:#075ad4; text-decoration:underline; text-underline-offset:4px; }
.city-item span { font-size:13px; color:#6c7e96; }
.empty-search { padding:25px; background:#e8f1ff; border:1px solid #bcd5f4; border-radius:7px; }
.empty-search a { color:#0754bd; text-decoration:underline; }
[hidden] { display:none!important; }
.sector-jump { display:flex; gap:10px 23px; flex-wrap:wrap; border-block:1px solid #dce6f2; padding:23px 0; margin-bottom:40px; }
.sector-jump a { color:#1a569a; font-size:14px; padding:5px 0; }
.sector-jump a:hover { text-decoration:underline; text-underline-offset:4px; }
.sector-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:25px; }
.sector-card { border:1px solid #cfdff2; padding:32px; border-radius:12px; display:flex; flex-direction:column; align-items:flex-start; scroll-margin-top:112px; }
.sector-number { font:13px monospace; color:#4477b4; }
.sector-audience { font-size:13px; color:#667c98; min-height:42px; margin:17px 0; }
.sector-card h2 { font-size:29px; line-height:1.2; margin-bottom:19px; }
.sector-card > p:not(.sector-audience) { font-size:16px; line-height:1.85; flex:1; }
.sector-card h3 { font-size:16px; margin:10px 0 5px; letter-spacing:0; }
.sector-card .scope-list { width:100%; margin-bottom:25px; }
.sector-card .text-link { align-items:center; line-height:1.6; }
.related-service { display:block; margin-top:10px; font-size:13px; color:#52729a; }
.related-service:hover { color:#0866ff; text-decoration:underline; }
.evidence-status { background:#f5f8fd; border:1px solid #ccdef4; border-radius:14px; padding:55px; text-align:center; max-width:930px; margin:auto; }
.document-symbol { display:flex; justify-content:center; margin-bottom:23px; }
.document-symbol svg { width:55px; height:55px; stroke:#3077c3; stroke-width:1.5; stroke-linejoin:round; }
.evidence-status .eyebrow { justify-content:center; }
.evidence-status h2 { font-size:42px; }
.evidence-status > p:not(.eyebrow) { max-width:610px; margin:23px auto 28px; font-size:16px; line-height:1.85; }
.measurement-table { overflow-x:auto; border:1px solid #cfdff2; border-radius:10px; }
.measurement-table table { width:100%; border-collapse:collapse; min-width:620px; text-align:left; }
.measurement-table caption { text-align:left; padding:20px; font-size:14px; color:#486481; background:#f4f8ff; }
.measurement-table th,.measurement-table td { padding:20px; border-top:1px solid #d7e3f2; font-size:15px; line-height:1.8; vertical-align:top; }
.measurement-table thead th { color:#194879; background:#edf4ff; font-weight:600; }
.measurement-table tbody th { color:#203d60; font-weight:500; }
.measurement-table td { color:#546c88; }
.contact-page-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:80px; align-items:start; }
.contact-page-grid > div > p { font-size:16px; line-height:1.85; margin-top:23px; }
.contact-page-grid .contact-form { box-shadow:0 10px 35px #0c36600d; padding:32px; }
.contact-fact { display:flex; flex-direction:column; padding:19px 0; border-bottom:1px solid #dce5f3; }
.contact-fact strong { font-size:16px; font-weight:600; margin-bottom:6px; }
.contact-fact span { font-size:15px; color:#59708e; line-height:1.8; }
.before-contact { background:#f0f6ff; border-radius:9px; padding:25px; margin-top:28px; }
.before-contact h3 { font-size:20px; margin-bottom:15px; }
.before-contact ul { padding-left:19px; margin:0; font-size:15px; color:#526c8a; line-height:2; }
.contact-data-note { font-size:13px!important; margin-top:16px!important; color:#687c95; }
.next-steps { margin-top:37px; }
@media(max-width:1100px) {
  #main-nav .nav-list a[aria-current="page"] { color:#9bd2ff; font-weight:600; }
  .service-detail-grid,.location-principles,.contact-page-grid { gap:40px; }
  .page-cta > .container { align-items:flex-start; flex-direction:column; gap:28px; }
  .directory-card { padding:24px; }
}
@media(max-width:760px) {
  .page-hero { padding:22px 0 47px; }
  .breadcrumbs { margin-bottom:32px; }
  .page-hero h1 { font-size:clamp(2.4rem,8vw,3.5rem); }
  .page-lead { font-size:16px; }
  .page-hero-link { margin-left:0; margin-top:14px; display:block; }
  .principle-grid { grid-template-columns:1fr; gap:28px; }
  .directory-grid,.region-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:15px; }
  .directory-card h3 { font-size:22px; }
  .service-detail { padding:55px 0; }
  .service-detail-grid,.location-principles,.contact-page-grid,.sector-grid { grid-template-columns:1fr; gap:30px; }
  .service-detail h2 { font-size:34px; }
  .scope-panel,.home-base-card,.sector-card { padding:25px; }
  .page-cta { padding:45px 0; }
  .page-cta h2 { font-size:31px; }
  .page-cta .button { max-width:100%; }
  .home-base-card h2 { font-size:36px; }
  .region-block { padding:22px; }
  .region-block h3 { font-size:21px; }
  .sector-audience { min-height:0; }
  .sector-jump { gap:8px 19px; }
  .evidence-status { padding:30px 22px; }
  .evidence-status h2 { font-size:33px; }
  .evidence-status .button { line-height:1.7; text-align:left; }
  .contact-page-grid .contact-form { padding:25px; }
}
@media(max-width:420px) {
  .directory-grid,.region-grid { grid-template-columns:1fr; }
  .directory-card { padding:26px; }
  .directory-number { margin-bottom:19px; }
  .service-detail h2 { font-size:30px; }
  .sector-card h2 { font-size:26px; }
  .contact-page-grid .contact-form { padding:21px; }
}

/* navigation.css */
/* Shared dropdown navigation and mobile drawer. */
.site-header { z-index:30; background:#02051c; backdrop-filter:none; }
.nav-wrap { min-height:88px; gap:24px; }
#main-nav { margin-left:auto; position:static; }
#main-nav .nav-list { display:flex; gap:22px; align-items:center; }
.nav-item { position:relative; list-style:none; }
.nav-row { display:flex; align-items:center; gap:3px; }
#main-nav .nav-list a { text-transform:uppercase; letter-spacing:.045em; font-size:13px; font-weight:600; border:0; }
#main-nav .nav-list .nav-primary-link { padding:17px 0; position:relative; }
#main-nav .nav-list .nav-primary-link[aria-current="page"] { color:#75ddff; }
#main-nav .nav-list .nav-primary-link[aria-current="page"]:after { content:''; position:absolute; height:2px; bottom:7px; left:0; width:23px; background:#00c8f5; }
.submenu-toggle { display:flex; align-items:center; justify-content:center; width:30px; height:44px; padding:0; background:transparent; border:0; color:#9db7d8; border-radius:5px; cursor:pointer; }
.submenu-toggle svg { width:17px; height:17px; stroke:currentColor; stroke-width:1.6; transition:transform .18s; }
.submenu-toggle[aria-expanded="true"] svg { transform:rotate(180deg); }
.submenu-toggle:hover,.submenu-toggle[aria-expanded="true"] { color:#70dfff; background:#ffffff0a; }
#main-nav .nav-list .nav-contact { background:#0866ff; color:white; border:1px solid #438bfa; padding:13px 19px; border-radius:6px; }
#main-nav .nav-list .nav-contact:hover { background:#0755d8; }
#main-nav .nav-list .nav-contact[aria-current="page"]:after { display:none; }
#main-nav .nav-dropdown { position:absolute; top:calc(100% + 12px); left:-20px; width:290px; max-height:calc(100dvh - 125px); overflow:auto; margin:0; padding:10px; list-style:none; background:#fff; border:1px solid #d8e4f3; border-top:3px solid #00bde9; border-radius:0 0 8px 8px; box-shadow:0 18px 45px #0004; }
#main-nav .nav-dropdown li { border:0; }
#main-nav .nav-dropdown li:first-child { border-bottom:1px solid #dce6f2; margin-bottom:5px; padding-bottom:5px; }
#main-nav .nav-dropdown a { color:#26405e; padding:12px 13px; font-size:12px; line-height:1.6; white-space:normal; border-radius:4px; }
#main-nav .nav-dropdown a:hover,#main-nav .nav-dropdown a:focus-visible { background:#edf5ff; color:#075ccc; }
#main-nav .nav-dropdown li:first-child a { color:#075ccc; }
.drawer-heading,.drawer-note,.nav-backdrop { display:none; }
.nav-row:has(a[aria-current="page"]) .submenu-toggle { color:#75ddff; }
#main-nav a:focus-visible,.submenu-toggle:focus-visible,.drawer-close:focus-visible,.menu-toggle:focus-visible { outline:2px solid #00c8f5; outline-offset:4px; }
@media(min-width:1101px) and (max-width:1250px) {
  #main-nav .nav-list { gap:13px; }
  .nav-wrap { gap:16px; }
  .site-header .brand { font-size:20px; gap:9px; }
  .site-header .brand-logo { width:46px; height:46px; }
}
@media(max-width:1100px) {
  .nav-wrap { min-height:78px; }
  .menu-toggle { width:46px; height:46px; border-radius:6px; }
  body.menu-open { overflow:hidden; }
  #main-nav { display:flex; flex-direction:column; align-items:stretch; gap:0; position:fixed; inset:0 0 0 auto; width:min(420px,92vw); height:100dvh; max-height:100dvh; margin:0; padding:0 24px; background:#07122e; border:0; border-left:1px solid #294363; border-radius:0; box-shadow:-12px 0 50px #0004; z-index:42; overflow-y:auto; overscroll-behavior:contain; visibility:hidden; transform:translateX(100%); transition:transform .22s ease,visibility .22s; }
  #main-nav.is-open { display:flex; visibility:visible; transform:translateX(0); }
  .nav-backdrop:not([hidden]) { display:block; position:fixed; inset:0; height:100dvh; background:#010616a6; z-index:41; }
  .drawer-heading { display:flex; align-items:center; justify-content:space-between; gap:10px; min-height:88px; border-bottom:1px solid #2b3d59; flex-shrink:0; position:sticky; top:0; background:#07122e; z-index:1; }
  .drawer-heading > span { font-size:11px; font-weight:600; letter-spacing:.12em; color:#91afcf; }
  .drawer-close { width:46px; height:46px; display:flex; align-items:center; justify-content:center; flex-shrink:0; background:transparent; border:1px solid #39506e; border-radius:6px; color:white; cursor:pointer; }
  .drawer-close svg { width:21px; height:21px; stroke:currentColor; stroke-width:1.7; }
  #main-nav .nav-list { display:block; padding:15px 0 25px; }
  #main-nav .nav-item { border:0; border-bottom:1px solid #283a54; }
  #main-nav .nav-row { gap:10px; }
  #main-nav .nav-list .nav-primary-link { flex:1; padding:19px 0; font-size:14px; line-height:1.5; }
  #main-nav .nav-list .nav-primary-link[aria-current="page"]:after { display:none; }
  .submenu-toggle { width:46px; height:46px; flex-shrink:0; border:1px solid #2e4464; border-radius:6px; }
  #main-nav .nav-dropdown { position:static; width:100%; max-height:none; overflow:visible; box-shadow:none; border:0; border-left:2px solid #2264a9; border-radius:0; background:#0b1c38; padding:6px 8px; margin:0 0 18px; }
  #main-nav .nav-dropdown a { color:#bed1e8; padding:13px 12px; font-size:12px; min-height:44px; display:flex; align-items:center; }
  #main-nav .nav-dropdown li:first-child { border-color:#2b4261; }
  #main-nav .nav-dropdown li:first-child a { color:#75ddff; }
  #main-nav .nav-dropdown a:hover,#main-nav .nav-dropdown a:focus-visible { background:#173353; color:#fff; }
  #main-nav .nav-item:last-child { border:0; margin-top:24px; }
  #main-nav .nav-list .nav-contact { padding:16px 20px; text-align:center; color:#fff; }
  .drawer-note { display:block; margin-top:auto; padding:0 0 max(28px,env(safe-area-inset-bottom)); font-size:13px; line-height:1.9; color:#86a4c7; }
}
@media(prefers-reduced-motion:reduce) { #main-nav,.submenu-toggle svg { transition:none; } }

/* The Locations dropdown is deliberately capped at the home cluster and the two
   largest markets. Every city page is listed on the Locations hub instead, so
   this list stays short no matter how many cities exist. */
@media(min-width:1101px) {
  #main-nav #nav-locations li:last-child { border-top:1px solid #dce6f2; margin-top:5px; padding-top:5px; }
  #main-nav #nav-locations li:last-child a { color:#075ccc; }
}

/* launch.css */
@font-face { font-family:Manrope; font-style:normal; font-weight:400 800; font-display:swap; src:url('/assets/fonts/manrope-latin-variable.woff2') format('woff2'); }
body { font-family:Manrope,Arial,sans-serif; -webkit-font-smoothing:antialiased; }
button,input,select,textarea { font-family:inherit; }
h1,h2,h3 { font-family:Manrope,Arial,sans-serif; font-weight:700; }
h1,h2 { text-wrap:balance; }
#main-nav .nav-primary-link[data-current-section="true"] { color:#75ddff; }
.hero h1 { font-size:clamp(48px,5.3vw,76px); line-height:1.07; letter-spacing:-.055em; }
.hero-description { font-size:16px; line-height:1.9; max-width:570px; }
.hero .eyebrow { font-size:10px; letter-spacing:.13em; }
.page-hero { position:relative; overflow:clip; }
.page-hero:after { content:''; pointer-events:none; position:absolute; width:460px; height:460px; border:1px solid #44c7ff20; border-radius:50%; right:-140px; top:-120px; box-shadow:0 0 0 60px #44c7ff04,0 0 0 120px #44c7ff03; }
.page-hero > .container { position:relative; z-index:1; }
.page-hero h1 { max-width:1000px; font-size:clamp(36px,4.4vw,65px); line-height:1.15; }
.reading-layout { max-width:850px; padding-block:70px; }
.prose-section { margin-bottom:44px; }
.prose-section h2 { font-size:30px; line-height:1.35; letter-spacing:-.035em; margin-bottom:20px; }
.prose-section p,:is(.reading-layout,.reading-main) > p { font-size:16px; line-height:1.95; color:#4c617c; margin-bottom:17px; }
.reading-main a:not(.button) { color:#075acb; text-decoration:underline; text-underline-offset:4px; }
:is(.reading-layout,.reading-main) > .scope-list { margin:-20px 0 45px; }
.article-byline { font-size:12px!important; color:#607896!important; border-bottom:1px solid #dce7f5; padding-bottom:22px; margin-bottom:38px!important; }
.directory-card h2 { font-size:26px; line-height:1.3; margin-bottom:20px; }
.directory-card .scope-list { margin-bottom:25px; }
.service-detail-grid > div > p:not(.eyebrow) { line-height:1.9; }
.breadcrumbs { flex-wrap:wrap; row-gap:4px; }
.direct-contact { display:flex; flex-wrap:wrap; gap:12px; margin-top:25px; }
.direct-contact a { display:inline-flex; align-items:center; min-height:46px; padding:11px 16px; border:1px solid #aacced; border-radius:7px; color:#164976; font-size:13px; overflow-wrap:anywhere; }
.direct-contact a:hover { background:#eaf4ff; }
.page-hero .direct-contact a { color:#caf1ff; border-color:#32557c; }
.page-hero .direct-contact a:hover { background:#153658; }
.footer-utility { display:flex; flex-wrap:wrap; gap:14px 24px; padding:23px 0; border-top:1px solid #253650; font-size:12px; color:#b3cae5; }
.footer-utility a:hover { color:#69dfff; }
.contact-data-note a,.form-privacy a { text-decoration:underline; color:#1762b8; }
.form-privacy { font-size:12px; line-height:1.8; color:#59708e; margin-top:18px; }
.launch-links { border-block:1px solid #dce6f3; }
.directory-footnote { margin:34px 0 0; }
.location-detail-link { font-size:14px; color:#075acb; display:inline-block; margin-top:20px; margin-right:22px; text-decoration:underline; text-underline-offset:4px; }
@media(max-width:760px) {
  .hero h1 { font-size:clamp(43px,10vw,65px); }
  .reading-layout { padding-block:48px; }
  .prose-section h2 { font-size:25px; }
  .prose-section { margin-bottom:33px; }
  .page-hero h1 { font-size:clamp(34px,8vw,48px); }
  .hero .eyebrow { line-height:1.8; }
  .page-hero:after { right:-300px; }
  .direct-contact { gap:10px; }
}

/* Touch targets: footer and directory links were 19-32px tall on phones.
   WCAG 2.5.8 wants 24px minimum; 44px matches platform guidance. */
@media(max-width:760px) {
  .footer-nav-column { gap:0; }
  .footer-nav-column > a { min-height:44px; display:flex; align-items:center; padding:0; }
  .footer-utility { row-gap:0; padding:12px 0; }
  .footer-utility a { min-height:44px; display:inline-flex; align-items:center; }
  .footer-contact-link { min-height:44px; padding-bottom:0; }
  .back-top { min-height:44px; }
  .location-detail-link { min-height:44px; display:inline-flex; align-items:center; }
  .city-item a { padding:10px 0; }
  .breadcrumbs a, .breadcrumbs > span:last-child { min-height:44px; display:inline-flex; align-items:center; }
}

/* Every city page, listed on the Locations hub so the nav dropdown can stay short. */
.city-page-list,.page-index { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); gap:2px 22px; }
.city-page-list a,.page-index a { display:flex; align-items:center; min-height:46px; font-size:15px; color:#35597e; border-bottom:1px solid #e1eaf6; }
.city-page-list a:hover,.page-index a:hover { color:#075ad4; text-decoration:underline; text-underline-offset:4px; }
.city-page-list span,.page-index span { font-size:13px; color:#6c7e96; margin-left:6px; }

/* Long-form pages were an unbroken column of uniform paragraphs. These give
   them the same rhythm the rest of the site already has: the monospace
   numerals used by .principle-number and .sector-number, a lead paragraph
   with slightly more weight, and question lists presented as an object
   rather than floating text. Applies to all 64 prose pages. */
.reading-layout { counter-reset:prose-section; }
.prose-section { counter-increment:prose-section; margin-bottom:52px; }
.prose-section h2::before {
  content:counter(prose-section,decimal-leading-zero);
  display:block; font:13px/1 ui-monospace,SFMono-Regular,Menlo,monospace;
  letter-spacing:.1em; color:#1765c5; margin-bottom:15px;
}
.prose-section > p:first-of-type { font-size:17px; line-height:1.85; color:#3d5470; }
:is(.reading-layout,.reading-main) > .scope-list {
  margin:-6px 0 46px; padding:8px 26px;
  background:#f4f8fe; border:1px solid #dce6f3; border-radius:12px;
}
:is(.reading-layout,.reading-main) > .scope-list li:last-child { border-bottom:0; }
:is(.reading-layout,.reading-main) > p:last-child { margin-top:6px; }
@media(max-width:760px) {
  .prose-section { margin-bottom:38px; }
  .prose-section h2::before { margin-bottom:11px; }
  .prose-section > p:first-of-type { font-size:16px; }
  :is(.reading-layout,.reading-main) > .scope-list { padding:6px 18px; }
}

/* Section rhythm. The site has five pale blues within six units of each other,
   so where two tinted sections touched the 1px border was the only seam: the
   home page ran 3,612px of continuous tint (case studies > launch links > FAQ)
   and the locations hub 4,352px (coverage > FAQ). Returning the middle band to
   white restores the alternation. .launch-links loses its tint above. */
.coverage-section + .page-faq,.soft-section + .page-faq { background:#fff; }

/* Horizontal scroll. Three things created scrollable regions on phones:
   the measurement table, 620px wide inside a 334px column with two of its
   three columns off-screen behind a scrollbar; the decorative circle bleeding
   off .page-hero; and the 1px spam honeypot holding 196px of content.
   overflow:clip crops the last two without making a scroll container, and
   below the width where three columns can hold readable text each table row
   becomes a card with its column headings moved onto the cells. */
.honeypot { overflow:clip; }
@media(max-width:760px) {
  .measurement-table { overflow-x:visible; border:0; border-radius:0; }
  .measurement-table table { display:block; min-width:0; }
  .measurement-table caption { display:block; border:1px solid #cfdff2; border-radius:10px; margin-bottom:14px; }
  .measurement-table thead { position:absolute; width:1px; height:1px; overflow:clip; clip-path:inset(50%); white-space:nowrap; }
  .measurement-table tbody,.measurement-table tr,.measurement-table tbody th,.measurement-table td { display:block; }
  .measurement-table tr { border:1px solid #cfdff2; border-radius:10px; padding-bottom:7px; }
  .measurement-table tr + tr { margin-top:12px; }
  .measurement-table tbody th { border-top:0; font-size:18px; padding:18px 18px 2px; }
  .measurement-table td { border-top:0; padding:11px 18px 5px; }
  .measurement-table td::before {
    content:attr(data-label); display:block;
    font:12px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;
    letter-spacing:.08em; color:#5d7594; margin-bottom:4px;
  }
}

/* One section is not a sequence, so it gets no numeral. */
.prose-section:only-of-type h2::before { content:none; }

/* FAQ answers had no link styling at all, so links were indistinguishable
   from body text. Same treatment as prose links. */
.faq-list details a { color:#075acb; text-decoration:underline; text-underline-offset:4px; }
.faq-list details a:hover { color:#0546a0; }

/* Service blocks gained a second action beside the contact button. */
.detail-actions { display:flex; flex-wrap:wrap; align-items:center; gap:18px 26px; }
@media(max-width:760px) { .detail-actions { gap:14px 20px; } }

/* Links in a hero lead sit on the dark panel and had no styling at all, so
   they were indistinguishable from the sentence around them. */
.page-lead a { color:#8fd8ff; text-decoration:underline; text-underline-offset:4px; }
.page-lead a:hover { color:#c9edff; }

/* Sidebar on service, industry and city pages. Those three are the pages a
   stranger lands on from a search result, and each is a long read ending in a
   decision, so the ways of reaching us and the next page to try belong beside
   the text rather than only under it. Two columns only above 1150px, where
   the reading column still holds a comfortable measure; below that the
   sidebar simply follows the article. Not sticky: the card stack is taller
   than a laptop viewport, and a sticky element that tall hides its own
   bottom. */
.reading-layout.with-aside { max-width:850px; }
.page-aside { display:flex; flex-direction:column; gap:16px; margin-top:56px; }
@media(min-width:1151px) {
  .reading-layout.with-aside { max-width:1160px; display:grid; grid-template-columns:minmax(0,1fr) 320px; column-gap:64px; align-items:start; }
  .page-aside { margin-top:6px; }
}
.aside-card { border:1px solid #d6e4f5; border-radius:13px; background:#fff; padding:23px 24px 25px; }
.aside-title { font-size:12px; font-weight:700; letter-spacing:.11em; text-transform:uppercase; color:#2a4f7d; margin:0 0 6px; }
.aside-list { list-style:none; margin:0; padding:0; }
.aside-list li,.aside-toc li { border-top:1px solid #e6eefa; }
.aside-list li:first-child,.aside-toc li:first-child { border-top:0; }
.aside-list a { display:block; padding:12px 0; font-size:15px; line-height:1.6; color:#14355f; }
.aside-list a:hover,.aside-toc a:hover { color:#0755d5; }

.aside-toc ol { counter-reset:aside-toc; list-style:none; margin:0; padding:0; }
.aside-toc li { counter-increment:aside-toc; }
.aside-toc a { display:grid; grid-template-columns:auto minmax(0,1fr); gap:13px; padding:12px 0; font-size:15px; line-height:1.55; color:#14355f; }
.aside-toc a::before { content:counter(aside-toc,decimal-leading-zero); font:12px/1.9 ui-monospace,SFMono-Regular,Menlo,monospace; color:#5b7ca6; }

.aside-contact { background:linear-gradient(140deg,#f1f7ff,#e6f0ff); border-color:#bcd8f8; }
.aside-contact .eyebrow { font-size:11px; color:#1b5087; margin-bottom:15px; }
.aside-contact h2 { font-size:23px; line-height:1.3; letter-spacing:-.025em; margin:0 0 13px; }
.aside-copy { font-size:15px; line-height:1.75; color:#44607f; margin:0 0 21px; }
.page-aside .button { width:100%; gap:14px; }
.aside-contact .direct-contact { flex-direction:column; align-items:stretch; gap:8px; margin-top:15px; }
.aside-contact .direct-contact a { background:#fff; }
.aside-note { font-size:13px; line-height:1.7; color:#48607f; border-top:1px solid #c5dbf5; margin:18px 0 0; padding-top:15px; }
@media(max-width:420px) { .aside-card { padding:21px 19px 23px; } }

/* SVG icons, replacing text characters. 1em square so each one takes the
   font-size its container already set for the character it replaced. */
.icon { display:inline-block; width:1em; height:1em; flex-shrink:0; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; vertical-align:-.14em; }
.arrow-icon { fill:none; }
/* Badges were sized for a glyph that filled about 60% of its em box. */
.pin-icon .icon,.strategy-icon .icon { width:.62em; height:.62em; }
.mini-mark .icon,.check-icon .icon { width:.9em; height:.9em; stroke-width:2.2; }
.hero-star .icon { stroke-width:1.5; }
.back-top > span .icon { width:16px; height:16px; }
.location-detail-link,.page-hero-link { display:inline-flex; align-items:center; gap:10px; }
@media(max-width:760px) { .page-hero-link { display:flex; width:fit-content; } }
.page-hero-link .arrow-icon { width:16px; height:16px; }
.journey-steps > i { display:flex; align-items:center; }
.direct-contact a { gap:10px; }
.direct-contact a .icon { width:17px; height:17px; }
.direct-contact a .icon-trailing { width:14px; height:14px; margin-left:auto; opacity:.7; }

/* Menu: dropdown items carry a line of context on desktop. The phone drawer
   keeps names only, because a long drawer is slower to scan than a short one. */
#main-nav .nav-dropdown a { display:block; }
.nav-desc { display:block; margin-top:3px; font-size:12.5px; font-weight:400; line-height:1.45; letter-spacing:0; text-transform:none; color:#5b7392; }
#main-nav .nav-dropdown a:hover .nav-desc,#main-nav .nav-dropdown a:focus-visible .nav-desc { color:#3f5f86; }
@media(min-width:1101px) { #main-nav #nav-services,#main-nav #nav-seo,#main-nav #nav-industries,#main-nav #nav-about { width:330px; } }
@media(max-width:1100px) { .nav-desc { display:none; } }

/* Official profiles in the footer brand column. */
.footer-social { display:flex; gap:10px; margin:22px 0 4px; }
.footer-social a { display:flex; align-items:center; justify-content:center; width:44px; height:44px; border:1px solid #2c4468; border-radius:50%; color:#bfe6ff; transition:background .2s,border-color .2s; }
.footer-social a:hover,.footer-social a:focus-visible { background:#0866ff; border-color:#0866ff; color:#fff; }
.footer-social .icon { width:19px; height:19px; }

/* The current page's link is white, which suits the dark header, but on
   desktop the dropdowns are white panels, so the current page's own entry
   was white on white. It is now the panel's link blue on a light tint. The
   phone drawer is dark and keeps the white. */
@media(min-width:1101px) {
  #main-nav .nav-dropdown a[aria-current="page"] { color:#075acb; background:#edf5ff; box-shadow:inset 3px 0 0 #0866ff; }
}

/* Two small-text greys measured 4.28:1 on white, under the 4.5:1 WCAG AA
   minimum. Same hue, a few percent darker; the contact note is set to pass on
   the tinted section too. */
.sector-audience { color:#617690; }
.contact-data-note { color:#5f7188; }
/* These links were 21px tall, under the 24px minimum touch target. */
.related-service { padding-block:4px; margin-top:6px; }
/* The whole label toggles the consent box, but the box is what a thumb aims
   for, and 16px is small for that. */
.consent input { width:20px; height:20px; margin-top:0; }
/* City name aliases, e.g. "(Gurugram)", measured 4.15:1. */
.city-item span,.city-page-list span,.page-index span { color:#5f6f84; }
/* Menu descriptions measured 4.43:1 on the current page's tint. */
.nav-desc,#main-nav .nav-dropdown a:hover .nav-desc,#main-nav .nav-dropdown a:focus-visible .nav-desc { color:#58708e; }
/* Breadcrumb and footer utility links were 19-21px tall on desktop, under
   the 24px minimum target. Padding widens the hit area, not the look. */
.breadcrumbs a { padding-block:3px; }
.footer-utility a { padding-block:4px; }
/* On /contact/ the current-page cyan landed on the blue Contact button:
   3.11:1. The button keeps its white label on its own page. */
#main-nav .nav-list .nav-contact[aria-current="page"] { color:#fff; }
/* Industry card numbers measured 4.48:1 on their own tile. */
.industry-symbol { color:#0864fa; }

/* Service pages carried over from the previous site. */
.hero-points { list-style:none; margin:26px 0 0; padding:0; display:grid; gap:9px; }
.hero-points li { position:relative; padding-left:26px; color:#bdcfe6; font-size:15px; line-height:1.6; }
.hero-points li::before { content:''; position:absolute; left:1px; top:.5em; width:11px; height:6px; border-left:2px solid #62d8ff; border-bottom:2px solid #62d8ff; transform:rotate(-45deg); }
.tool-line { font-size:15px; line-height:1.8; color:#4c617c; }
.more-services > .text-link { margin-top:30px; }

/* Published prices: on the pricing page, and beside every service. */
.price-card .price { flex:0; font-size:22px; font-weight:700; letter-spacing:-.02em; color:#0b1832; margin:-4px 0 12px; }
.aside-price { font-size:15px; font-weight:700; color:#0b1832; margin:-8px 0 16px; }
.aside-audit { display:block; margin-top:12px; font-size:14px; font-weight:600; color:#075acb; text-decoration:underline; text-underline-offset:4px; }
.aside-audit:hover { color:#0546a0; }

/* The team, with the photos from the live site. */
.team-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.team-card { border:1px solid #d6e4f5; border-radius:14px; padding:18px 18px 22px; background:#fff; }
.team-card img { display:block; width:100%; height:auto; aspect-ratio:1; object-fit:cover; border-radius:10px; margin-bottom:16px; background:#eef4fc; }
.team-card h3 { font-size:19px; margin:0 0 4px; }
.team-role { font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:#1b5087; margin:0 0 10px; }
.team-card p:last-child { font-size:15px; line-height:1.7; color:#4c617c; margin:0; }
@media(max-width:950px) { .team-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:560px) { .team-grid { grid-template-columns:1fr; } }
/* Card labels are paragraphs, and every paragraph in a card stretches to fill
   spare height, so labels floated to different heights across a row. */
.directory-card > .eyebrow { flex:0 0 auto; }
/* Links inside the panel's output box looked like plain text. */
.scope-output a { color:#075acb; text-decoration:underline; text-underline-offset:4px; }
.scope-output a:hover { color:#0546a0; }
/* A plain paragraph straight after a detail heading had no breathing room. */
.service-detail-grid h2 + p { margin-top:16px; }

/* Premium pass. */
.card-icon { margin-bottom:22px; flex:0 0 auto; }
.footer-columns { grid-template-columns:1.25fr .7fr .9fr 1fr; gap:56px; }
@media(max-width:1100px) { .footer-columns { grid-template-columns:1fr 1fr; gap:36px 28px; } }
.tool-line { margin-bottom:12px !important; }
.tool-chips { list-style:none; display:flex; flex-wrap:wrap; gap:8px; margin:0 0 8px; padding:0; }
.tool-chips li { padding:7px 13px; border:1px solid #d6e4f5; border-radius:999px; background:#f7faff; font-size:13px; font-weight:600; color:#26405e; }
/* Linked cards lift a little under the pointer. */
a.directory-card { transition:border-color .2s, background .2s, transform .2s, box-shadow .2s; }
a.directory-card:hover { transform:translateY(-3px); box-shadow:0 18px 34px -22px #0b2a5c55; }
@media(prefers-reduced-motion:reduce) { a.directory-card, a.directory-card:hover { transition:none; transform:none; } }
