/* Shared usability improvements; brand typography and colors remain site-owned. */
html{scroll-padding-top:110px;-webkit-text-size-adjust:100%;text-size-adjust:100%}
a,button,input,select,textarea,summary{touch-action:manipulation}
:where(a,button,input,select,textarea,summary):focus-visible{outline:3px solid currentColor;outline-offset:4px}
.mobile-menu-button,.mobile-sub-toggle{display:none}
@media(max-width:1120px){
 body input:not([type=checkbox]):not([type=radio]):not([type=hidden]),body select,body textarea{font-size:16px!important;line-height:1.5;min-height:48px;min-width:0;max-width:100%;box-sizing:border-box}
 body textarea{min-height:128px;resize:vertical}
 form{min-width:0}form>*{min-width:0}
 input[type=checkbox],input[type=radio]{width:20px;height:20px;flex-shrink:0}
 label:has(input[type=checkbox]),label:has(input[type=radio]){min-height:44px;align-items:flex-start;padding-block:10px;line-height:1.6}
 button:not(.close),input[type=submit],summary{min-height:44px}
 header a,header button,nav#main-nav a,nav#main-nav .has-dropdown{min-height:44px}
 footer a{display:inline-flex;align-items:center;min-height:44px;max-width:100%}
 a[href^="mailto:"],.info-row .v,.fact-list dd{overflow-wrap:anywhere}
 img,video,iframe{max-width:100%}
 body:has(input:focus,textarea:focus,select:focus) :is(.mobile-contact,.mobile-actions,.mobilebar,.jb-mobile-contact){display:none!important}
 :is(.mobile-contact,.mobile-actions,.mobilebar,.jb-mobile-contact) a{min-height:48px}
 .nav-center.active,header nav.open,header .menu.open{max-height:calc(100dvh - 110px);overflow-y:auto;overscroll-behavior:contain}
 header .sub-toggle{min-width:44px!important;min-height:44px!important}
}
@media(max-width:760px){
 body{overflow-wrap:break-word}
 .section,.wrap,main,article,section{min-width:0}
 .editorial-hero{grid-template-columns:minmax(0,1fr)}
 .editorial-hero-copy,.hero-bottom{min-width:0;max-width:100%;box-sizing:border-box}
 .editorial-hero h1 em{white-space:normal;font-size:clamp(30px,8.5vw,36px)}
 .editorial-hero .hero-actions,.hero-bottom{flex-wrap:wrap}
 .editorial-hero .hero-phone{display:inline-flex;align-items:center;min-height:44px}
 .practice-rows p,.approach-grid p,.editorial-contact .consultation-layout p,.practice p{font-size:15px;line-height:1.75}
 .editorial-faq .faq details p{font-size:14px}
 .formcard .fine,form .fine,form small,.form-note,.consent{font-size:12px!important;line-height:1.65}
 .formcard label,.editorial-contact form label{font-size:13px!important;line-height:1.5}
 .burger,.hamburger,.menu-toggle,header .menu{min-width:44px}
 .menu-toggle{min-height:44px}
 .menu-toggle:focus-visible,.burger:focus-visible{outline-offset:3px}
 .related-guides a,.footer-links a,.direct-contact a,.resource-sources a{display:inline-flex;align-items:center;min-height:44px}
 .resource-sources a,.reading-page a{overflow-wrap:anywhere}
 .fact-list{grid-template-columns:minmax(70px,.65fr) minmax(0,1.35fr)}
 .contact h2,.reading-page h1,.document h1{overflow-wrap:break-word}
 .contact,.formcard,form{scroll-margin-top:110px}
}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto!important}
 *,*::before,*::after{animation:none!important;transition:none!important}
}

@media(max-width:960px){header .menu>li{display:grid;grid-template-columns:minmax(0,1fr) 44px}header .menu>li>a{grid-column:1}header .menu .mobile-sub-toggle{display:flex;align-items:center;justify-content:center;grid-column:2;grid-row:1;min-width:44px;min-height:44px;background:transparent;border:0;color:inherit;font-size:22px}header .menu .drop{display:none!important;grid-column:1/-1;position:static;width:auto;min-width:0;box-shadow:none}header .menu .mobile-sub-open>.drop{display:block!important}header .menu .drop a{min-height:44px;display:flex;align-items:center}body:has(header .menu.open) .mobilebar{display:none!important}}
@media(max-width:760px){footer p,footer .legal,footer .footer-bottom,.article-note,.article-meta,.concept-note,.fine-print{font-size:12px;line-height:1.7}details summary{font-size:14px;line-height:1.5}.reading-page .source-list li{font-size:13px}}
