/* Shared readability and interaction refinements. */
.scroll-scene + .stats .stat strong{color:#f8f5ed}
.scroll-scene + .stats .stat span{color:#d6e0e4}
.section.dark .card{color:#17313f}
.section.dark .card h3{color:#173b57}
.section.dark .card p,.section.dark .card li{color:#425660}
.section.dark .card a{color:#173b57}
.section.dark .step p{color:#e6edf0}
.form input,.form select,.form textarea{color:#17313f;background:#fff;border-color:#899da4}
.form input::placeholder,.form textarea::placeholder{color:#536872;opacity:1}
.form .note,.form-status{color:#425660}
.foot a{color:#e0e8eb;text-decoration:underline;text-underline-offset:3px}
.foot a:hover,.foot a:focus-visible{color:#fff}
.btn:hover,.btn:focus-visible{background:#e2c88f}
.btn2:hover,.btn2:focus-visible{background:rgba(255,255,255,.14)}
.form-status{min-height:1.5em}
@media(max-width:1270px){.links,.header-cta{display:none}.nav{grid-template-columns:auto 1fr auto;justify-content:stretch}.menu-toggle{display:inline-flex}.mobile-menu{display:none;border-top:1px solid rgba(255,255,255,.1);background:#091b25}.mobile-menu.open{display:block}.mobile-menu .wrap{padding:14px 0 18px;display:grid;gap:4px}.mobile-menu a{display:block;padding:12px 8px;text-decoration:none;font-weight:800;color:#eef3f5;border-radius:7px}.mobile-menu a:hover{background:rgba(255,255,255,.12)}.mobile-menu .btn{margin-top:8px;text-align:center;background:var(--gold);color:var(--dark)!important}}

/* Keep the brand sign and introduction in separate, non-overlapping panels. */
.hero-intro.scroll-scene{height:auto;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);background:#102431;align-items:stretch}
.hero-brand-panel{grid-column:1;grid-row:1;background:var(--dark);display:flex;align-items:center;justify-content:center;padding:24px;min-width:0}
.hero-brand-image{display:block;width:100%;max-width:592px;height:auto;object-fit:contain;
 -webkit-mask-image:linear-gradient(to right,transparent,#000 6%,#000 88%,transparent),linear-gradient(to bottom,transparent,#000 6%,#000 88%,transparent);
 -webkit-mask-composite:source-in;
 mask-image:linear-gradient(to right,transparent,#000 6%,#000 88%,transparent),linear-gradient(to bottom,transparent,#000 6%,#000 88%,transparent);
 mask-composite:intersect}
.hero-intro .hero-message{grid-column:2;grid-row:1;padding:clamp(40px,6vw,88px) max(24px,calc((100vw - 1180px)/2));padding-left:clamp(24px,4vw,64px);display:flex;align-items:center;min-width:0}
.hero-intro .hero-message-inner{max-width:650px;text-align:left;margin:0;width:100%}
.hero-intro .hero-message .badge{font-size:.875rem;letter-spacing:.1em;border-radius:3px;margin-bottom:24px}
.hero-intro .hero-message h1{font-size:clamp(2.75rem,4.5vw,4.8rem);line-height:1.08;letter-spacing:-.025em;margin:0 0 24px;overflow-wrap:break-word}
.hero-intro .hero-message p{font-size:1.125rem;margin:0 0 28px}
.hero-intro .hero-message .actions{justify-content:flex-start;margin-top:0;gap:12px}
.hero-intro .hero-message .btn,.hero-intro .hero-message .btn2{font-size:1rem;max-width:100%;white-space:normal}
@media(max-width:900px){
 .hero-intro.scroll-scene{grid-template-columns:minmax(0,1fr)}
 .hero-brand-panel{grid-column:1;grid-row:1;padding:20px}
 .hero-brand-image{max-width:480px}
 .hero-intro .hero-message{grid-column:1;grid-row:2;padding:40px 6% 48px}
 .hero-intro .hero-message-inner{max-width:720px;margin:auto}
 .hero-intro .hero-message h1{font-size:clamp(2.5rem,8vw,4rem)}
}
@media(max-width:600px){
 .hero-brand-panel{padding:12px}
 .hero-brand-image{max-width:100%}
 .hero-intro .hero-message .actions{display:flex;flex-direction:column;align-items:stretch}
 .hero-intro .hero-message .btn,.hero-intro .hero-message .btn2{width:100%;text-align:center}
}

/* Geographic outline with headings outside the map artwork. */
.location-map{background:#f2f4f1}
.location-map-heading{padding:28px 28px 0}
.location-map-heading h3{color:var(--blue);font-size:1.6rem;line-height:1.2;margin:0 0 10px}
.location-map-heading p{color:#425660;font-size:1rem;line-height:1.5;margin:0}
.location-map svg{display:block;width:100%;height:auto}
@media(max-width:600px){.location-map-heading{padding:22px 22px 0}.location-map-heading h3{font-size:1.4rem}}

/* Readable, responsive process graphics and inquiry controls. */
.graphic-workflow{background:#102431;color:#fff;padding:30px}
.graphic-workflow h3{font-size:1.6rem;color:#fff;margin:0 0 24px;line-height:1.3}
.graphic-workflow ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.graphic-workflow li{border-top:2px solid #B89B5E;padding-top:18px;display:flex;gap:12px;align-items:flex-start}
.workflow-number{font-size:1rem;color:#dec78f;font-weight:700}
.graphic-workflow strong{display:block;font-size:1.1rem;color:#fff;line-height:1.3;margin-bottom:8px}
.graphic-workflow li div>span{display:block;font-size:1rem;color:#dae4e9;line-height:1.5}
.form-field{display:grid;align-content:start;gap:7px;min-width:0;font-size:1rem;font-weight:700;color:#17313f}
.field-hint{font-weight:400;font-size:.875rem;color:#425660}
.form-field.full-width{grid-column:1/-1}.form-field textarea{grid-column:auto}
.intake-help{font-size:1rem;color:#425660;max-width:65ch}
#opportunityForm{scroll-margin-top:110px}
.capability-action{width:min(1180px,92%);margin:0 auto;padding:0 0 54px}
.concept-figure{margin:0;background:#fff}
.concept-figure img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}
.concept-figure figcaption{padding:18px 22px;font-size:1rem;color:#425660;line-height:1.5}
@media(max-width:900px){.graphic-workflow ol{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.graphic-workflow{padding:24px}.graphic-workflow ol{grid-template-columns:1fr}.form-field.full-width{grid-column:auto}}
@media(hover:none),(prefers-reduced-motion:reduce){.section .card:hover,.section .visual:hover{transform:none}}

.links a{font-size:.875rem}.stats .stat span{font-size:.875rem}.section .card:hover,.section .visual:hover{transform:none}.concept-figure img{background:#dbe3df}

/* Center the full mobile experience. */
@media(max-width:900px){
 body{text-align:center}
 main,.pagehero,.section,.card,.step,.contact-card,.project-intro,.capability-action,.location-map-heading,.graphic-workflow,.concept-figure figcaption{text-align:center}
 .hero-intro .hero-message-inner{text-align:center;margin-inline:auto}
 .hero-intro .hero-message h1,.hero-intro .hero-message p,.pagehero p,.lead,.intake-help{margin-inline:auto}
 .hero-intro .hero-message .actions,.actions{justify-content:center;align-items:center}
 .hero-brand-image,.visual,.concept-figure{margin-inline:auto}
 .cta .wrap{justify-content:center;text-align:center}
 .cta .wrap>div{width:100%}
 .foot{justify-content:center;text-align:center}
 .foot>div{width:100%}
 .mini-nav{justify-content:center}
 .mobile-menu a{text-align:center}
 .card .icon{margin-inline:auto}
 .graphic-workflow li{justify-content:center;flex-direction:column;align-items:center}
 .card ul,.card ol,.contact-card ul{list-style-position:inside;padding-left:0}
 .form-field,.form input,.form select,.form textarea,.form .note,.form-status{text-align:center}
 .form button{justify-self:center}
 .form>label:not(.form-field){text-align:center}
 .faq summary,.faq details{text-align:center}
 .capability-action .btn{margin-inline:auto}
 .brand-lockup{text-align:center}
}
@media(max-width:600px){
 .hero-intro .hero-message .actions{align-items:stretch}
 .actions{flex-direction:column}
 .actions .btn,.actions .btn2{width:100%;text-align:center}
 .form button{width:100%}
}
