/* Shared type rules, loaded after page-specific layouts. */
:root{--font:Arial,Helvetica,sans-serif;--type-body:16px;--type-leading:1.8;--type-title:clamp(42px,4.7vw,64px);--type-section:40px;--type-card:27px;--type-button:14px}
body,button,input,select,textarea{font-family:var(--font)}
#main :is(h1,h2,h3){font-family:var(--font);font-weight:400;text-wrap:balance}
#main h1{font-size:var(--type-title);line-height:1.1;letter-spacing:-1.8px}
#main .sd-hero h1{font-size:clamp(38px,4.2vw,56px)}
#main .sd-hero h1.sd-long-title{font-size:clamp(36px,3.5vw,48px)}
#main :is(.h-section-heading,.h-closing,.ab-two,.ab-enquiry,.tm-biography,.tm-enquiry,.cat-practice,.cat-contact,.sd-intro,.sd-enquiry,.ct-before,.ct-details,.ct-map-heading,.sv-enquiry) h2{font-size:var(--type-section);line-height:1.2;letter-spacing:-1px}
#main :is(.h-card-body,.ab-service-grid,.cat-panel-copy,.sv-category)>:is(h2,h3){font-size:var(--type-card);line-height:1.25;letter-spacing:-.5px}
#main p:not(:is(.eyebrow,.cat-label,.tm-since,.ap-form-intro,.ap-private,.ap-legal,.ap-confirm-note,.ap-field-note,.ap-calendar-note,.ap-calendar-selected,.ap-status,.ct-status,.sd-topic-number,.sd-record-note,.sd-source-links)){font-size:var(--type-body);line-height:var(--type-leading);text-align:justify;text-align-last:left;text-justify:inter-word;hyphens:auto;overflow-wrap:break-word}
#main :is(.tm-hero-grid,.sv-opening-copy,.ap-opening,.ct-opening,.cat-hero-intro,.sd-hero-copy)>p:not(.eyebrow){font-size:18px;line-height:1.7}
#main :is(.eyebrow,.cat-label){font-size:10px;font-weight:600;line-height:1.6;letter-spacing:1.4px;text-align:left;hyphens:none}
#main .button,.header-action{font-family:var(--font);font-size:var(--type-button);font-weight:600;line-height:1.5}
#main :is(input,select,textarea){font-family:var(--font);font-size:16px;line-height:1.5}
#main :is(label,.ap-field-heading){font-family:var(--font)}
@media(max-width:700px){
 :root{--type-title:44px;--type-section:32px;--type-card:25px}
 #main h1{letter-spacing:-1.5px}
 #main .sd-hero h1,#main .sd-hero h1.sd-long-title{font-size:38px;letter-spacing:-1.2px}
 #main :is(.tm-hero-grid,.sv-opening-copy,.ap-opening,.ct-opening,.cat-hero-intro,.sd-hero-copy)>p:not(.eyebrow){font-size:17px}
}
