/* Shared accessibility improvements. Brand artwork and original logo geometry are retained. */
:root{--control-border:#667b8a;--focus:#164d78;--error:#a21b1b}
:root[data-theme="dark"]{--control-border:#91a7b8;--focus:#f5bd46;--error:#ffb3b3}
html{font-size:100%;scroll-padding-top:8rem}
body{font-size:1rem;overflow-wrap:break-word}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important}
[hidden]{display:none!important}
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid var(--focus);outline-offset:4px}
.utility :where(a,button):focus-visible,.cta-band a:focus-visible{outline-color:#f5bd46}
.skip{position:fixed;left:1rem;top:1rem;transform:translateY(-200%);z-index:1000;color:var(--ink);background:var(--surface);border:2px solid var(--focus);border-radius:6px;padding:1rem}
.skip:focus{left:1rem;top:1rem;transform:none;color:var(--ink);background:var(--surface)}
main:focus{outline:none}
main,[id]{scroll-margin-top:8rem}
.utility,.nav,.nav details a,.btn,.btn.small,.textlink,.eyebrow,.hero-bottom,.trustbar .wrap,.floating-label,.floating-label strong,.discount,.discount code,.tag,.checklist li,.card>p,.card .number,.service-grid p,.footer a,.footer p,.footer-bottom,.footer-bottom a,.breadcrumb,.price small,.fine,.notice,.filters button,.product-card .brief,.product-card details,.spec-table,.resource p,.field,.contact-aside p,.faq details p,.order-steps li,.flow span,.status,.business-grid p,.group-hero-image span,.password-result{font-size:1rem}
.utility-links{flex-wrap:wrap;gap:.5rem 1.25rem}
.utility a,.theme-toggle{min-height:2.75rem;display:inline-flex;align-items:center}
.theme-toggle{padding:.25rem .5rem;border:1px solid transparent;border-radius:6px}
.theme-toggle[aria-pressed="true"]{border-color:currentColor}
.nav>.mobile-only{display:none}
.nav{font-weight:400}.nav>a,.nav summary,.nav details a{min-height:2.75rem;display:flex;align-items:center}
.nav details>div{top:100%;border-color:var(--control-border);max-height:70vh;overflow-y:auto;overscroll-behavior:contain}
.nav a[aria-current="page"]{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:6px}
.btn,.btn.small,.filters button,.menu-toggle{min-height:2.75rem}
.btn{white-space:normal;text-align:center}
.btn.outline,.filters button,.menu-toggle{border-color:var(--control-border)}
.filters button[aria-pressed="true"]{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:2px}
.tag{background:var(--pale);color:var(--blue)}
.field input,.field textarea,.field select{font-size:1rem;min-height:2.75rem;border-color:var(--control-border)}
.field [aria-invalid="true"]{border:2px solid var(--error)}
.field-error{display:block;color:var(--error);margin:.5rem 0 0;font-size:1rem;font-weight:500}
.error-summary{color:var(--ink);background:var(--surface);border:2px solid var(--error);border-radius:8px;padding:1.25rem;margin-bottom:1.5rem}
.error-summary h2{font-size:1.375rem;letter-spacing:0;margin-bottom:.75rem}
.error-summary a{text-decoration:underline;color:var(--error)}
.error-summary ul{margin:0;padding-left:1.5rem}
:where(main p,main li) a:not(.btn),.legal a,.footer a:not(.brand){text-decoration:underline;text-underline-offset:3px}
.footer h2{font-size:1rem;letter-spacing:0;line-height:1.5;margin-bottom:1.25rem}
.footer-bottom div{flex-wrap:wrap}
.footer a{padding:.25rem 0}
.grid2>*,.grid3>*,.split>*,.hero-grid>*,.business-grid>*,.form-grid>*,.footer-grid>*,.form-layout>*,.order-panel>*{min-width:0}
.card-heading{font-size:1.5rem!important;letter-spacing:-.025em!important}
.spec-table{table-layout:fixed}
.group-hero-image span{line-height:1.5}
.eyebrow{letter-spacing:.08em}
h1,.hero h1,.group-hero h1,.page-top h1{font-size:clamp(2.375rem,4.6vw,3.75rem)}
h2,.section h2{font-size:clamp(1.875rem,3.8vw,3.1875rem)}
.footer h2{font-size:1rem}.error-summary h2{font-size:1.375rem}.legal h2,.resources>h2{font-size:1.8125rem}
@media(max-width:1150px){.nav{font-size:1rem}}
@media(max-width:1050px){
 .site-header:has(.nav.open){position:relative}
 .nav{font-size:1.0625rem}.nav>.mobile-only{display:flex}.nav details>div{max-height:none;overflow:visible}
 html:not(.js) .nav{display:flex}
 html:not(.js) .menu-toggle{display:none}
 .utility .wrap{flex-wrap:wrap}.utility-links{margin-left:auto}
 .hero-copy>p{font-size:1rem}
}
@media(max-width:600px){
 .utility-links{justify-content:center;gap:.25rem 1rem;margin:0}
 .theme-label{display:inline}.theme-toggle{min-height:2.75rem}
 .wrap{padding-left:1.25rem;padding-right:1.25rem}
 .trustbar .wrap{grid-template-columns:1fr}
 .footer-grid{grid-template-columns:1fr}
 .footer-grid>div:first-child{grid-column:auto}
 .hero-bottom,.trustbar .wrap,.footer-bottom,.flow span{font-size:1rem}
 .group-hero-image{min-height:23rem}
 .discount{flex-wrap:wrap}
 .section h2{font-size:1.875rem}.section .card-heading{font-size:1.5rem!important}
 .resource .btn{flex-shrink:1;max-width:100%}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
@media(forced-colors:active){.btn,.filters button,.theme-toggle,.menu-toggle{border:1px solid ButtonText}.nav a[aria-current="page"]{text-decoration:underline}.checklist li::before{color:CanvasText}:where(a,button,input,select,textarea,summary):focus-visible{outline:3px solid Highlight}}
/* Buttons and labels also fit their columns when the base font is doubled. */
.btn{max-width:100%;min-width:0;overflow-wrap:anywhere}
.floating-label{max-width:100%}
.discount{max-width:100%;flex-wrap:wrap}.discount>*{min-width:0;overflow-wrap:anywhere}
.service-grid>*,.section-title>*,.resource>*,.flow>*{min-width:0}
.tag{max-width:100%;overflow-wrap:anywhere}.textlink{overflow-wrap:anywhere}
.resource,.flow{flex-wrap:wrap}.resource .btn{flex-shrink:1}
@media(min-width:601px){.resource>div{flex:1 1 20rem}}
.qr-target{grid-column:1/-1;margin:0;font-size:1rem}

/* A small, readable wink beneath the footer. */
.footer .site-credit{font-size:.75rem;line-height:1.6;letter-spacing:.015em;color:var(--muted);text-align:center;margin:1.5rem 0 0}
