/* WCAG 2.2 AA accessibility and cookie-consent layer */
:root{--focus-dark:#003b68;--focus-light:#ffffff;--accessible-blue:#006bb8;--accessible-blue-light:#63c6ff}
html{scroll-padding-top:100px;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{overflow-wrap:anywhere}
body.cookie-banner-open{padding-bottom:var(--cookie-space,0px)}
a,button,input,select,textarea,[tabindex]:not([tabindex="-1"]){scroll-margin:120px 16px}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--focus-light)!important;outline-offset:3px!important;box-shadow:0 0 0 6px var(--focus-dark)!important}
button,a{touch-action:manipulation}
.main-nav a,.site-footer nav a,.footer nav a,.footer-cookie-button{min-height:44px;display:inline-flex;align-items:center}
.menu-toggle{min-width:44px;min-height:44px}
.footer-cookie-button{appearance:none;background:none;border:0;padding:0;color:inherit;text-decoration:underline;text-underline-offset:3px;cursor:pointer;font:inherit}
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
/* Contrast corrections on light sections */
.team h2 em,.services h2 em,.text-link,.eyebrow.blue{color:var(--accessible-blue)!important}
.section-marker,.service-row>span{color:#53636e!important}
input,textarea,select{border-color:#71838d!important}
input::placeholder,textarea::placeholder{color:#657781;opacity:1}
.project-choices span,.choice span{border-color:#71838d!important}
.project-choices input:focus-visible+span,.choice input:focus-visible+span{outline:3px solid #fff;outline-offset:2px;box-shadow:0 0 0 6px #003b68}
.choice-fieldset{border:0;padding:0;margin:0;min-width:0}.choice-fieldset legend{font-weight:800;font-size:13px;margin-bottom:8px}
.availability-note,.submit-row p,.file-drop small{color:#53626b!important}
.form-heading span{color:#53626b!important}.form-heading>b{color:var(--accessible-blue)!important}
.button-blue{background:#006bb8!important;border-color:#006bb8!important;color:#fff!important}.button-blue:hover{background:#005a9c!important}
/* Light accents on dark areas */
.contact-hero-copy h1 em,.contact-steps b,.service-icon,.service-card a{color:var(--accessible-blue-light)!important}
.success>span{background:#006bb8!important}
/* No information conveyed by color alone */
.main-nav a.active{font-weight:800}.main-nav a.active:after{height:3px}
.form-error{border-left:4px solid #8f1f1f}.form-error p{margin:.35rem 0 0}
/* Cookie consent */
.cookie-banner{position:fixed;z-index:9998;left:0;right:0;bottom:0;background:#07131d;color:#fff;border-top:1px solid rgba(255,255,255,.28);padding:22px clamp(20px,5vw,80px);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:32px;align-items:center;box-shadow:0 -18px 50px rgba(0,0,0,.25)}
.cookie-banner[hidden]{display:none}.cookie-banner h2{font-size:1.35rem;margin:0 0 7px}.cookie-banner p{max-width:72ch;margin:0 0 7px;color:#e4edf2}.cookie-banner a{color:#fff;text-underline-offset:3px}.cookie-banner__actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end;align-items:center}
.cookie-button{min-height:46px;min-width:170px;border:2px solid #fff;padding:10px 16px;font-weight:800;cursor:pointer}.cookie-button--primary{background:#fff;color:#07131d}.cookie-button--secondary{background:transparent;color:#fff}.cookie-link-button{min-height:44px;background:none;border:0;color:#fff;text-decoration:underline;text-underline-offset:3px;padding:8px;cursor:pointer;font-weight:700}
.cookie-dialog{width:min(680px,calc(100% - 32px));border:0;padding:0;background:#fff;color:#07131d;box-shadow:0 30px 100px rgba(0,0,0,.4)}.cookie-dialog::backdrop{background:rgba(0,10,18,.72)}.cookie-dialog__panel{padding:28px}.cookie-dialog__head{display:flex;justify-content:space-between;gap:24px;align-items:start}.cookie-dialog__head h2{font-size:2rem;line-height:1.05;margin:5px 0 18px}.cookie-kicker{font-size:.72rem;letter-spacing:.16em;font-weight:900;color:#52616b}.cookie-dialog__close{min-width:44px;min-height:44px;border:1px solid #71838d;background:#fff;font-size:28px;line-height:1;cursor:pointer}.cookie-option{display:grid;grid-template-columns:1fr auto;gap:24px;padding:20px 0;border-top:1px solid #aab8bf;align-items:center}.cookie-option strong{font-size:1rem}.cookie-option p{margin:5px 0 0;color:#43545e}.cookie-status{font-size:.8rem;font-weight:800;color:#43545e}.cookie-switch{position:relative;display:inline-flex;align-items:center}.cookie-switch input{position:absolute;opacity:0;width:44px;height:28px;margin:0}.cookie-switch>span{display:block;width:48px;height:28px;background:#657781;border-radius:99px;position:relative}.cookie-switch>span:after{content:'';position:absolute;width:20px;height:20px;border-radius:50%;background:#fff;left:4px;top:4px;transition:transform .15s}.cookie-switch input:checked+span{background:#006bb8}.cookie-switch input:checked+span:after{transform:translateX(20px)}.cookie-switch input:focus-visible+span{outline:3px solid #fff;box-shadow:0 0 0 6px #003b68}.cookie-dialog__note{font-size:.88rem;color:#43545e}.cookie-dialog__actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}.cookie-dialog .cookie-button--secondary{color:#07131d;border-color:#07131d}.cookie-dialog .cookie-button--primary{background:#07131d;color:#fff;border-color:#07131d}
.policy a{text-decoration-thickness:1px;text-underline-offset:3px}.policy p,.policy li{max-width:76ch}
@media(max-width:800px){.cookie-banner{grid-template-columns:1fr;gap:16px}.cookie-banner__actions{justify-content:flex-start}.cookie-button{flex:1 1 190px}.cookie-dialog__actions .cookie-button{flex:1 1 180px}}
@media(max-width:480px){.cookie-banner{padding:16px}.cookie-banner__actions{display:grid;grid-template-columns:1fr}.cookie-button{width:100%}.cookie-dialog__panel{padding:20px}.cookie-option{grid-template-columns:1fr}.cookie-dialog__actions{display:grid}.hero-copy{margin-left:20px!important;margin-right:20px!important}.service-row,.process-list li{min-width:0}.site-head,.site-header{max-width:100vw}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
@media(forced-colors:active){a,button,input,select,textarea{forced-color-adjust:auto}.cookie-banner,.cookie-dialog{border:2px solid CanvasText}.hero-bg,.contact-band{background-image:none!important}}
