/* One visual rhythm across the homepage, company profile and quotation form. */
:root{--max:1440px;--gutter:clamp(24px,5vw,88px);--brand-blue:#4051cd;--deep-blue:#202e65;--soft-border:#dfe5f3}
body{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
h1,h2,h3{text-wrap:balance}
p{text-wrap:pretty}
.section-space{padding-block:clamp(76px,8vw,128px)}
.eyebrow{font-size:.875rem;line-height:1.6;font-weight:600;letter-spacing:.12em}
.site-header{background:#ffffffeb;box-shadow:0 2px 16px #17255204;transition:box-shadow .3s,background .3s}
.site-header.is-scrolled{background:#fffffff2;box-shadow:0 8px 30px #1725520a}
.site-header .header-inner{min-height:84px}
.main-nav a:not(.nav-contact){position:relative;padding-block:12px}
.main-nav a:not(.nav-contact):after{content:"";position:absolute;bottom:6px;left:0;width:100%;height:2px;background:var(--brand-blue);transform:scaleX(0);transform-origin:left;transition:transform .25s}
.main-nav a:hover:after,.main-nav a:focus-visible:after,.main-nav a[aria-current="page"]:after{transform:scaleX(1)}
.main-nav .nav-contact,.quote-submit{background:linear-gradient(130deg,#5162df,#3342b6);border:1px solid #5e6ce0;box-shadow:inset 0 1px 0 #ffffff40,0 5px 14px #3542b61a;transition:background .25s,box-shadow .25s,translate .25s}
.round-icon{background:linear-gradient(135deg,#5c6ce5,#3543b8);box-shadow:inset 0 1px 0 #ffffff50,0 6px 15px #3542b623}

/* The opening is a single, spacious scene. */
.hero.hero--hand .hero-inner{display:flex;flex-direction:column;justify-content:center;min-height:clamp(600px,82svh,840px);padding-top:64px;padding-bottom:28px}
.hero.hero--hand .hero-copy{display:grid;grid-template-columns:minmax(0,610px);grid-template-rows:auto auto auto;gap:20px;margin:0;padding:0;width:100%}
.hero.hero--hand h1.hero-brand-heading{font-size:clamp(6rem,10.3vw,9.4rem);margin:0;line-height:1.08;letter-spacing:-.035em}
.hero-brand-name{letter-spacing:-.035em;text-shadow:0 1px 0 #dfe7fc,0 2px 0 #becae8,0 3px 0 #96a8d0,0 4px 0 #768cba,0 5px 0 #526c9e,0 6px 0 #314a7c,0 16px 24px #24397124}
.hero.hero--hand .hero-brand-promise{font-size:clamp(2.25rem,3.7vw,3.45rem);margin-top:24px;line-height:1.16}
.hero.hero--hand .hero-tagline{line-height:1.2}
.hero.hero--hand .hero-lead{max-width:43ch;margin-top:10px;line-height:1.85}
.hero.hero--hand .hero-bottom{width:100%;padding-top:20px;margin-top:64px;border-color:#c7d3e678;font-size:.875rem}
.hero.hero--panoramic>.hero-hand:after{background:linear-gradient(90deg,#fffffff5 0%,#ffffffde 25%,#ffffff70 45%,#ffffff05 68%,transparent 100%)}
.scroll-link{gap:18px}
.scroll-link>span{transition:translate .3s}
.scroll-link:hover>span{translate:0 5px}
.ticker{padding-block:9px;background:#fafbff;border-color:#e5eafa}
.ticker-group>span{font-size:1rem;font-weight:500;box-shadow:0 2px 5px #24397105}

/* Client logos stay original and evenly framed. */
.clients-section{padding-block:clamp(64px,7vw,104px);border:0;background:#fff}
.clients-heading{grid-template-columns:1.2fr 1fr;align-items:end;gap:48px;margin-bottom:42px}
.clients-heading #clients-heading{max-width:15ch;font-size:clamp(2.2rem,3.8vw,3.6rem);font-weight:700;line-height:1.16;text-shadow:0 1px 0 #dce4f7,0 2px 0 #b6c5e4,0 3px 0 #8ea4cc,0 8px 14px #25356919}
.clients-heading>p.client-proof{padding-left:24px;font-size:clamp(1.125rem,1.55vw,1.4rem);max-width:35ch;justify-self:end}
.client-grid{gap:16px;align-items:stretch}
.client-card{border:1px solid #e7ebf5;border-radius:16px;background:linear-gradient(160deg,#fff,#f8faff);box-shadow:0 5px 18px #26397805;transition:box-shadow .35s,border-color .35s}
.client-logo-stage{height:122px;padding:18px;animation-duration:12s}
.client-logo-stage img{max-width:100%;width:100%;height:66px;object-fit:contain}

/* Large editorial headings introduce a consistent set of services. */
.expertise-section{background:linear-gradient(180deg,#f4f7fd,#edf2fc 72%,#f7f9ff)}
.section-heading{grid-template-columns:.7fr 2fr;gap:48px;margin-bottom:56px}
.section-heading h2{font-size:clamp(2.4rem,4.5vw,4.3rem);font-weight:650;line-height:1.12;letter-spacing:-.04em;color:var(--deep-blue);text-shadow:0 1px 0 #fff,0 2px 0 #ced8ef}
.section-intro{max-width:46ch;font-size:1.125rem;line-height:1.8;margin-top:28px}
.word-window{min-width:0;width:5.55em;max-width:100%;height:1.16em;vertical-align:bottom}
.word-reel>span{height:1.16em;line-height:1.16}
.word-reel{animation:refined-word-cycle 12s cubic-bezier(.76,0,.24,1) infinite}
@keyframes refined-word-cycle{0%,22%{transform:translateY(0)}28%,47%{transform:translateY(-25%)}53%,72%{transform:translateY(-50%)}78%,100%{transform:translateY(-75%)}}
.services-grid{align-items:stretch;gap:24px}
.services-grid>.service{border:1px solid #dce3f1;border-radius:24px;background:#fff;box-shadow:0 16px 36px #24397109;transition:box-shadow .35s,border-color .35s}
.services-grid .service-visual{flex:none;aspect-ratio:1.1;background:#080b0d;transform:perspective(1100px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));transition:transform .4s ease-out;transform-origin:center}
.services-grid .service-visual>img{height:calc(100% - 66px);padding:22px;object-fit:contain;mix-blend-mode:normal}
.services-grid .visual-caption{left:25px;right:25px;bottom:22px;color:#e7edf4;font-size:.9375rem;line-height:1.5}
.services-grid .visual-index{background:#ffffff0d;border:1px solid #ffffff35;color:#e3eafa;font-size:.875rem;backdrop-filter:blur(8px)}
.services-grid .service-copy{padding:30px 28px;flex:1;display:flex;flex-direction:column}
.services-grid .service-copy>.eyebrow{font-size:.875rem;letter-spacing:.085em;margin-bottom:17px;color:#627394}
.services-grid .service h3{font-size:clamp(1.5rem,1.9vw,1.9rem);line-height:1.2;font-weight:700;letter-spacing:-.035em;color:#1c2859;text-shadow:0 1px 0 #e0e6f4;margin-bottom:20px}
.service-product-link{text-decoration-color:#c2cbeb;text-decoration-thickness:1px;text-underline-offset:.2em}
.services-grid .service h3 .scroll-word{color:inherit}
.services-grid .service-copy>p:not(.eyebrow){font-size:1rem;line-height:1.8;color:#4e5c76;margin-bottom:26px}
.services-grid .service-list{margin-top:auto;padding-top:0;width:100%}
.services-grid .service-list li{font-size:.9375rem;line-height:1.65;padding-block:14px;border-color:#e5eaf4;color:#394c72}
.js.motion-enabled .services-grid .service-visual>img[data-scroll-image]{transform:translate3d(0,var(--scroll-image-y,0px),0) scale(var(--scroll-image-scale,1))!important}

/* The process reads as a connected sequence. */
.approach-section{background:radial-gradient(ellipse at 5% 40%,#f0f4ff,transparent 52%),#fff}
.approach-layout{grid-template-columns:.95fr 1.05fr;gap:clamp(40px,7vw,108px)}
.approach-intro h2{font-weight:700;font-size:clamp(2.7rem,4.3vw,4.2rem)}
.process-list{gap:24px}
.process-list>li,.process-list>li:last-child{padding:32px;border-radius:21px;box-shadow:0 12px 30px #26397809,0 2px 0 #e4e9f5}
.process-list>li:not(:last-child):after{content:"";position:absolute;left:57px;bottom:-25px;width:1px;height:23px;background:linear-gradient(#8494de,#dce3f5)}
.process-list p{font-size:1rem}
.process-list .step-result{font-size:.875rem;border-radius:9px}
.process-list .step-result:before{display:none}

/* A confident blue closing, with distinct contact links. */
.contact-section{position:relative;background:radial-gradient(ellipse at 95% 8%,#8293ef55,transparent 52%),linear-gradient(125deg,#243792,#4557cf 70%,#5567d6);color:#fff}
.contact-heading-row h2{font-size:clamp(2.8rem,4.8vw,4.8rem);font-weight:700;text-shadow:0 1px 0 #c3cdf6,0 2px 0 #9facdf,0 3px 0 #8191cd,0 9px 16px #17255233}
.contact-orbit{background:#ffffff0c;border:1px solid #ffffff80;box-shadow:inset 0 1px 0 #ffffff40,0 12px 28px #1d2a6e22;backdrop-filter:blur(8px)}
.contact-section .contact-bottom{margin-top:44px;padding-top:34px}
.contact-details>a{padding:18px 20px;border:1px solid #ffffff38;border-radius:13px;background:#ffffff08;transition:background .25s,border-color .25s}
.contact-details>a+a{margin-top:12px;border:1px solid #ffffff38;padding-top:18px}
.contact-details>a>.contact-value{min-width:0}
.contact-value{font-size:clamp(1.35rem,2.3vw,2rem);overflow-wrap:anywhere;line-height:1.35}
.site-footer{padding-block:46px;background:#fff}
.footer-bottom{font-size:.875rem}

/* The company page follows the same typography and material choices. */
.company-intro{background:radial-gradient(ellipse at 90% 20%,#dee7ff,transparent 62%),linear-gradient(125deg,#fff 22%,#f3f6ff)}
.company-intro .container{display:grid;grid-template-columns:1fr 1fr;gap:22px 72px;align-items:start}
.company-intro .eyebrow{grid-column:1/-1;margin:0}
.company-intro h1{grid-column:1;grid-row:2;font-size:clamp(3.2rem,6.3vw,6rem);font-weight:700;letter-spacing:-.04em;color:#253569;text-shadow:0 1px 0 #d5def1,0 2px 0 #a8badc,0 3px 0 #8399c1,0 10px 18px #2535691c}
.company-intro .company-lead{grid-column:1;grid-row:3;margin:0;max-width:20ch;font-size:clamp(1.6rem,2.6vw,2.35rem);line-height:1.3;font-weight:600;letter-spacing:-.025em}
.company-summary{grid-column:2;grid-row:2/4;margin:0;max-width:45ch;font-size:1.0625rem;line-height:1.85;align-self:center}
.company-quote-link{grid-column:2;margin-top:0}
.profile-page .profile-hero{background:#fff}
.profile-intro{grid-template-columns:1.65fr .6fr;align-items:center}
.profile-hero h2{font-size:clamp(3.1rem,6.2vw,6rem);font-weight:650;color:#202f63;text-shadow:0 1px 0 #dbe3f5,0 2px 0 #becde9,0 3px 0 #9bafd5,0 10px 16px #25356915}
.profile-role{max-width:33ch;line-height:1.4;font-weight:600;letter-spacing:-.02em;font-size:clamp(1.25rem,2vw,1.8rem)}
.profile-lead{max-width:47ch;font-size:1.125rem;line-height:1.8}
.profile-emblem{justify-self:center;padding:20px;background:#080b0d;border-radius:28px;border:1px solid #e0e6f1;box-shadow:0 20px 40px #26397817;overflow:hidden}
.profile-emblem img{width:170px;height:auto;object-fit:contain}
.profile-grid{gap:clamp(36px,7vw,108px)}
.profile-section-label h2{font-size:clamp(2.2rem,3.5vw,3.4rem);font-weight:650;line-height:1.15;color:#253569;letter-spacing:-.035em;text-shadow:0 1px 0 #e3eafb,0 2px 0 #c3d1ea}
.profile-prose p{font-size:1.0625rem;line-height:1.85;max-width:53ch}
.profile-tools{gap:10px}
.profile-tools li{font-size:.875rem;padding:9px 13px;background:#f5f7ff;border:1px solid #dce3f6;border-radius:9px}
.profile-certifications{background:#f4f7fd}
.profile-cert-list{display:grid;gap:13px}
.profile-cert-list li,.profile-cert-list li:last-child{grid-template-columns:86px minmax(0,1fr);align-items:center;padding:22px;border:1px solid #dde5f4;border-radius:15px;background:#fff;box-shadow:0 7px 17px #26397804}
.profile-cert-code{padding:10px 6px;border-radius:8px;background:#edf1ff;color:#3a4cba;text-align:center;font-weight:700;font-size:.875rem}
.profile-cert-list h3{font-size:1.2rem;line-height:1.4;font-weight:600;letter-spacing:-.02em}
.profile-strengths{background:linear-gradient(120deg,#e9efff,#f5f7ff);border-block:1px solid #e1e7f5}
.quote-section{background:#fff}
#quote-form{padding:clamp(24px,3vw,42px);border:1px solid #dde5f4;border-radius:24px;background:linear-gradient(135deg,#f5f7ff,#fff);box-shadow:0 20px 45px #2639780a;min-width:0}
.quote-field input,.quote-field textarea{border-color:#c6d1e7;border-radius:10px;padding:14px 15px;transition:border-color .2s,box-shadow .2s}
.quote-field input:hover,.quote-field textarea:hover{border-color:#8d9ed0}
.quote-submit{min-height:52px;line-height:1.5}

@media(hover:hover) and (pointer:fine){
 .services-grid>.service:hover{box-shadow:0 24px 48px #24397117;border-color:#b3c0e5}
 .client-card:hover{border-color:#b8c6e7;box-shadow:0 12px 28px #26397810}
 .main-nav .nav-contact:hover,.quote-submit:hover{translate:0 -2px;box-shadow:0 10px 22px #3542b632}
 .contact-details>a:hover{background:#ffffff15;border-color:#ffffff78}
}
@media(min-width:761px){.hero.hero--hand .hero-copy{flex:1;align-content:center}}
@media(max-width:1100px){
 .client-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
 .hero.hero--hand .hero-copy{grid-template-columns:minmax(0,54%)}
 .hero.hero--hand .hero-brand-promise{font-size:clamp(2rem,3.7vw,3rem)}
 .hero.hero--hand .hero-inner{min-height:650px}
 .company-intro .container{gap:22px 40px}
 .process-list>li,.process-list>li:last-child{padding:25px;gap:16px}
 .process-list>li:not(:last-child):after{left:47px}
}
@media(max-width:1000px) and (min-width:761px){
 .services-grid>.service{grid-template-columns:1fr 1fr;gap:0}
 .services-grid .service-visual{aspect-ratio:auto;min-height:360px;height:100%}
 .services-grid .service-copy{padding:30px}
 .services-grid .service h3{font-size:1.85rem}
}
@media(max-width:760px){
 .section-space{padding-block:72px}
 .site-header .header-inner{min-height:76px}
 .main-nav a:not(.nav-contact){padding-block:8px}
 .hero.hero--hand .hero-inner{min-height:570px;padding-top:42px;padding-bottom:24px;justify-content:flex-start}
 .hero.hero--hand .hero-copy{display:grid;grid-template-columns:minmax(0,1fr);gap:19px;max-width:560px;margin:0;padding:0}
 .hero.hero--hand h1.hero-brand-heading{font-size:clamp(4.4rem,19vw,7rem);margin:0;grid-row:1}
 .hero.hero--hand .hero-brand-promise{font-size:clamp(2rem,7.9vw,3rem);margin-top:24px;letter-spacing:-.04em}
 .hero.hero--hand .hero-tagline{font-size:clamp(1.7rem,6.5vw,2.2rem);margin:0;grid-row:2}
 .hero.hero--hand .hero-lead{font-size:1rem;margin-top:4px;grid-row:3;max-width:35ch}
 .hero.hero--hand .hero-bottom{display:none}
 .hero.hero--panoramic>.hero-hand img{object-position:61% center}
 .hero.hero--panoramic>.hero-hand:after{background:linear-gradient(90deg,#fffffff5 0%,#ffffffd9 38%,#ffffff59 100%)}
 .clients-section{padding-block:62px}
 .clients-heading{grid-template-columns:1fr;gap:25px;margin-bottom:32px}
 .clients-heading #clients-heading{font-size:clamp(2rem,8vw,3rem);max-width:16ch}
 .clients-heading>p.client-proof{justify-self:start;font-size:1.125rem;max-width:34ch;padding-left:18px}
 .client-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
 .client-logo-stage{height:110px;padding:16px}
 .client-logo-stage img{height:62px}
 .section-heading{grid-template-columns:1fr;gap:23px;margin-bottom:36px}
 .section-heading h2{font-size:clamp(2.05rem,7.8vw,3.35rem);line-height:1.16;letter-spacing:-.04em}
 .section-intro{font-size:1.0625rem;margin-top:23px}
 .services-grid{gap:30px}
 .services-grid>.service{border-radius:20px}
 .services-grid .service-visual{aspect-ratio:1.1}
 .services-grid .service-copy{padding:28px 24px}
 .services-grid .service h3{font-size:clamp(1.55rem,6.3vw,2rem)}
 .services-grid .service-copy>p:not(.eyebrow){font-size:1rem}
 .approach-layout{grid-template-columns:1fr;gap:38px}
 .approach-intro h2{font-size:clamp(2.45rem,9vw,3.5rem)}
 .process-list>li,.process-list>li:last-child{padding:24px 19px;gap:15px}
 .process-list>li:not(:last-child):after{left:40px}
 .process-list p{font-size:1rem}
 .process-list .step-result{font-size:.875rem}
 .contact-heading-row h2{font-size:clamp(2.4rem,8.2vw,3.5rem)}
 .contact-value{font-size:clamp(1.1rem,5.3vw,1.75rem)}
 .contact-details>a{padding:16px 14px}
 .contact-label{font-size:.875rem}
 .company-intro .container{grid-template-columns:minmax(0,1fr);gap:24px}
 .company-intro .container>*{grid-column:auto;grid-row:auto;margin:0}
 .company-intro h1{font-size:clamp(3.3rem,12vw,5rem)}
 .company-intro .company-lead{font-size:1.7rem}
 .company-summary{font-size:1rem}
 .profile-intro{grid-template-columns:minmax(0,1fr);gap:38px}
 .profile-hero h2{font-size:clamp(3.1rem,12vw,5rem)}
 .profile-role{font-size:1.4rem}
 .profile-lead,.profile-prose p{font-size:1.0625rem}
 .profile-emblem{justify-self:start;padding:14px;border-radius:20px}
 .profile-emblem img{width:135px}
 .profile-section-label h2{font-size:clamp(2.1rem,7.8vw,3rem)}
 .profile-cert-list li,.profile-cert-list li:last-child{padding:19px 16px;grid-template-columns:73px minmax(0,1fr);gap:14px}
 .profile-cert-list h3{font-size:1.0625rem}
 #quote-form{padding:24px 20px;border-radius:20px}
 .quote-submit{width:100%;justify-content:space-between;padding:14px 18px;font-size:.9375rem}
}
@media(prefers-reduced-motion:reduce){
 .services-grid .service-visual{transform:none;transition:none}
 .main-nav .nav-contact,.quote-submit{translate:none!important}
 .hero-brand-name,.wordmark{will-change:auto}
}
@media print{.hero.hero--hand .hero-inner{min-height:0}.hero.hero--hand .hero-copy{max-width:100%;grid-template-columns:1fr}.contact-section{background:#fff;color:#172051}.contact-heading-row h2,.contact-value,.contact-bottom>p,.contact-question,.contact-label{color:#172051;text-shadow:none}.services-grid>.service,#quote-form{box-shadow:none}.profile-emblem{display:none}}
