/* Shared type scale, measured against the homepage. No page-specific size drift. */
:root{
 --dno-display:clamp(60px,4.8vw,68px);--dno-display-line:1.06;--dno-display-spacing:-.045em;
 --dno-section:37px;--dno-section-spacing:-1.6px;--dno-compact-heading:32px;
 --dno-body:18px;--dno-detail:16px;--dno-card-title:18px;
 --dno-action:17px;--dno-label:16px;--dno-input:18px;--dno-question:17px;
 --dno-caption:14px;--dno-eyebrow:12px;--dno-eyebrow-spacing:1.7px;
}
@media(max-width:980px){:root{--dno-display:clamp(48px,7vw,68px)}}
@media(max-width:760px){:root{
 --dno-section:30px;--dno-section-spacing:-1px;--dno-compact-heading:30px;
 --dno-display-line:1.02;--dno-display-spacing:-1.7px;
 --dno-body:17px;--dno-action:16px;--dno-label:15px;--dno-input:16px;
 --dno-question:16px;--dno-eyebrow:11px;--dno-eyebrow-spacing:.8px;
}}
@media(max-width:640px){:root{--dno-display:43px}}

/* The homepage and all page families use the same heading and body families. */
#home-page .hero h1,#site-page h1{
 font-family:var(--serif);font-size:var(--dno-display);font-weight:700;
 line-height:var(--dno-display-line);letter-spacing:var(--dno-display-spacing);
}
#home-page .hero h1 em,#site-page h1 em{font-family:var(--serif);font-size:inherit;font-weight:700;line-height:inherit;letter-spacing:inherit}
#site-page{font-family:var(--sans);font-size:var(--dno-body);line-height:1.65}
#site-page :where(p,li,dd,dt){font-family:var(--sans);font-size:var(--dno-body);font-weight:400;line-height:1.65;letter-spacing:normal}
#site-page h2{font-family:var(--serif);font-size:var(--dno-section);font-weight:700;line-height:1.15;letter-spacing:var(--dno-section-spacing)}
#site-page h2 em{font-family:var(--serif);font-weight:inherit;line-height:inherit}
#site-page h3{font-family:var(--sans);font-size:var(--dno-card-title);font-weight:700;line-height:1.4;letter-spacing:normal}
#site-page :where(.article-aside,.review-form,.account-guide,.contact-context,.contact-routes,.page-cta,.partner-band) h2{
 font-size:var(--dno-compact-heading);line-height:1.15;letter-spacing:-.035em;
}
#site-page :where(.content-card,.inspiration-card) :is(h2,h3){
 font-family:var(--sans);font-size:var(--dno-card-title);font-weight:800;line-height:1.35;letter-spacing:normal;
}
#site-page .featured-reading h2{font-family:var(--serif);font-size:var(--dno-compact-heading);font-weight:700;line-height:1.15;letter-spacing:-.035em}
#site-page :where(.article-aside,.content-card,.steps,.local-facts,.numbered-story,.account-guide,.contact-context,.contact-routes,.page-cta,.partner-band,.real-provider-card) :is(p,li,dd,dt){font-size:var(--dno-detail);line-height:1.65}
#site-page .contact-story>.lead,#site-page .account-copy>p,#site-page .page-intro>p,#site-page .local-intro{font-size:var(--dno-body);line-height:1.65}

/* Navigation and actions mirror the homepage service links and main action. */
#site-page :where(a,button,input,select,textarea,label,summary){font-family:var(--sans)}
#site-page :where(.primary,.outline-link){font-size:var(--dno-action);font-weight:800;line-height:1.5;letter-spacing:normal;white-space:normal}
#site-page :where(.text-link,.link-tile,.service-option,.city-link,.service-topics a,.section-links a,.city-link-grid a,.cost-link-grid a){font-size:var(--dno-detail);font-weight:700;line-height:1.5;letter-spacing:normal}
#site-page :where(.article-aside>a:not(.primary),.content-card>span,.account-help>a){font-size:var(--dno-detail);line-height:1.5}
#site-page .topic-buttons button{font-size:var(--dno-detail);font-weight:700;line-height:1.5}
#site-page :where(.filter-pills button,.explorer-controls label){font-size:var(--dno-caption);line-height:1.5}
#site-page :where(.city-preamble,.local-start,.mini-usps){font-size:var(--dno-detail);line-height:1.5}

/* Form labels and supporting copy stay readable, including on contact pages. */
#site-page label,#site-page .search-directory>label{font-size:var(--dno-label);font-weight:600;line-height:1.65;letter-spacing:normal}
#site-page :where(input,select,textarea){font-size:var(--dno-input);font-weight:400;line-height:1.5;letter-spacing:normal}
#site-page .form-consent{font-size:var(--dno-detail)!important;line-height:1.6;font-weight:400!important}
#site-page :where(.micro,.account-login-note,.account-help,.article-meta,.local-updated,.local-number,.directory-location){font-size:var(--dno-caption);line-height:1.6;letter-spacing:normal}
#site-page .account-copy>.account-login-note{font-size:var(--dno-caption);line-height:1.6;max-width:440px}
#site-page .account-help{max-width:none}
#site-page .crumbs{font-family:var(--sans);font-size:var(--dno-caption);line-height:1.5}
#site-page .eyebrow{font-family:var(--sans);font-size:var(--dno-eyebrow);font-weight:700;line-height:1.6;letter-spacing:var(--dno-eyebrow-spacing)}
#site-page .design-photo figcaption span{font-family:var(--sans);font-size:var(--dno-eyebrow);font-weight:700;line-height:1.6;letter-spacing:var(--dno-eyebrow-spacing)}
#site-page .design-photo figcaption strong{font-family:var(--serif);font-size:var(--dno-compact-heading);font-weight:700;line-height:1.15;letter-spacing:-.035em}
#site-page .contact-routes a>span:first-child{font-size:var(--dno-eyebrow);line-height:1.6;letter-spacing:var(--dno-eyebrow-spacing)}
#site-page .faqs summary{font-size:var(--dno-question);font-weight:700;line-height:1.5;letter-spacing:normal}
#site-page .faqs p{font-size:var(--dno-detail);line-height:1.7}
#site-page .comparison{font-family:var(--sans);font-size:var(--dno-detail);line-height:1.65}
#site-page .comparison :is(th,td){font-size:inherit;line-height:inherit}
#site-page .provider-company{font-family:var(--sans);font-size:var(--dno-card-title);font-weight:800;line-height:1.35}
#site-page :where(.provider-town,.provider-specialism,.provider-match,.directory-facts){font-size:var(--dno-detail);line-height:1.5}
#site-page :where(.page-hero,.local-hero,.design-intro,.account-hero,.contact-composition)>*{min-width:0}
#site-page .primary{max-width:100%;min-width:0}
#site-page .contact-routes p{max-width:none;padding-right:16px}
@media(max-width:760px){
 #site-page .form-columns{grid-template-columns:minmax(0,1fr)}
 #site-page .comparison{font-size:var(--dno-caption)}
 #site-page .design-photo figcaption strong{font-size:var(--dno-section)}
}
@media(max-width:400px){#site-page .city-link-grid{grid-template-columns:minmax(0,1fr)}}
