/* One reading order for major sections, with service-specific body layouts. */
:is(.home-story,.page-service,.page-pricing,.page-about,.page-contact,.page-guide,.page-collection,.page-tool,.case-study-page){--opening-gap:12px;--opening-body-gap:20px;--opening-content-gap:32px}
:is(.home-story,.page-service,.page-pricing,.page-about,.page-contact,.page-guide,.page-collection,.page-tool,.case-study-page) #main .dn-section-opening{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:var(--opening-gap);width:100%;max-width:none;text-align:left}
:is(.home-story,.page-service,.page-pricing,.page-about,.page-contact,.page-guide,.page-collection,.page-tool,.case-study-page) #main .dn-section-opening>:is(.eyebrow,h2,p,.text-link){flex:none;min-height:0;margin:0;padding-top:0}
:is(.home-story,.page-service,.page-pricing,.page-about,.page-contact,.page-guide,.page-collection,.page-tool,.case-study-page) #main .dn-section-opening>.eyebrow{max-width:100%;font-size:12px;line-height:1.5}
:is(.home-story,.page-service,.page-pricing,.page-about,.page-contact,.page-guide,.page-collection,.page-tool,.case-study-page) #main .dn-section-opening>h2{max-width:1000px}
:is(.home-story,.page-service,.page-pricing,.page-about,.page-contact,.page-guide,.page-collection,.page-tool,.case-study-page) #main .dn-section-opening>.dn-section-intro{font-size:16px;line-height:1.65;max-width:65ch;color:inherit}
:is(.home-story,.page-service,.page-pricing,.page-about,.page-contact,.page-guide,.page-collection,.page-tool,.case-study-page) #main .dn-section-opening>.text-link{display:inline-flex;align-items:center;min-height:44px;max-width:100%}
:is(.page-service,.page-pricing,.page-about,.page-contact,.page-guide,.page-collection,.page-tool,.case-study-page) .dn-section-body{margin-top:var(--opening-body-gap)}
:is(.page-service,.page-pricing,.page-about,.page-contact,.page-guide,.page-collection,.page-tool,.case-study-page) .dn-section-body:empty{display:none}
:is(.page-service,.page-pricing,.page-about,.page-contact,.page-guide,.page-collection,.page-tool,.case-study-page) .dn-heading-block{display:block;margin-bottom:var(--opening-content-gap)}
:is(.page-service,.page-pricing,.page-about,.page-contact,.page-guide,.page-collection,.page-tool,.case-study-page) .dn-heading-block>.brand-prose{padding-top:0}
:is(.page-service,.page-pricing,.page-about,.page-contact,.page-guide,.page-collection,.page-tool,.case-study-page) .dn-editorial-compact{display:block}
:is(.page-service,.page-pricing,.page-about,.page-contact,.page-guide,.page-collection,.page-tool,.case-study-page) .brand-feature-intro{position:static}
:is(.page-service,.page-pricing,.page-about,.page-contact,.page-guide,.page-collection,.page-tool,.case-study-page) .brand-working-agreement .dn-section-opening>h2{max-width:100%}
:is(.page-service,.page-pricing,.page-about,.page-contact,.page-guide,.page-collection,.page-tool,.case-study-page) .brand-steps .dn-section-body{color:inherit}
:is(.page-service,.page-pricing,.page-about,.page-contact,.page-guide,.page-collection,.page-tool,.case-study-page) .dn-finale{display:block}
:is(.page-service,.page-pricing,.page-about,.page-contact,.page-guide,.page-collection,.page-tool,.case-study-page) .dn-finale .dn-section-opening>h2{max-width:1000px}
:is(.page-service,.page-pricing,.page-about,.page-contact,.page-guide,.page-collection,.page-tool,.case-study-page) .dn-section-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px;margin-top:24px}
:is(.page-service,.page-pricing,.page-about,.page-contact,.page-guide,.page-collection,.page-tool,.case-study-page) .dn-section-actions>:is(.button,.text-link){display:inline-flex;align-items:center;justify-content:center;min-height:44px;max-width:100%;margin:0}
.home-story :is(.section-heading,.industry-heading,.process-heading).dn-section-opening{margin-bottom:var(--opening-content-gap)}
.home-story .growth-heading.dn-section-opening>p{max-width:65ch}
.home-story .dn-section-opening>.home-section-title{margin:0}
.home-story .market-intro.dn-section-opening,:is(.page-service,.page-pricing,.page-about,.page-contact,.page-guide,.page-collection,.page-tool,.case-study-page) .market-intro.dn-section-opening{margin-bottom:var(--opening-content-gap)}

@media(max-width:700px){
 :is(.home-story,.page-service,.page-pricing,.page-about,.page-contact,.page-guide,.page-collection,.page-tool,.case-study-page){--opening-content-gap:24px;--opening-body-gap:16px}
 :is(.home-story,.page-service,.page-pricing,.page-about,.page-contact,.page-guide,.page-collection,.page-tool,.case-study-page) #main .dn-section-opening>h2{max-width:100%}
 :is(.page-service,.page-pricing,.page-about,.page-contact,.page-guide,.page-collection,.page-tool,.case-study-page) .dn-section-actions{flex-direction:column;align-items:flex-start;gap:12px;margin-top:20px}
 :is(.page-service,.page-pricing,.page-about,.page-contact,.page-guide,.page-collection,.page-tool,.case-study-page) .dn-section-actions>.button{width:100%}
}

/* Supporting pages keep their editorial, profile and project layouts. */
:is(.page-about,.page-contact) .dn-editorial-layout{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,350px),1fr));gap:32px 64px;align-items:start}
:is(.page-about,.page-contact) .dn-editorial-layout h2{font-size:clamp(30px,3.2vw,44px)}
:is(.page-about,.page-contact,.page-collection) .dn-heading-block{margin-bottom:var(--opening-content-gap)}
:is(.page-about,.page-contact,.page-collection) .dn-heading-block:has(+.site-card-grid),:is(.page-about,.page-contact,.page-collection) .dn-heading-block:has(+.site-link-grid){max-width:none}
.page-guide .article-section>.dn-section-opening>h2{font-size:clamp(28px,2.8vw,38px);line-height:1.15}
.page-guide .article-section>.dn-section-opening>.eyebrow{color:var(--deep)}
.page-guide .article-neighbour .text-link{min-height:44px}
.page-guide .article-section>.site-card-grid,.page-guide .article-section>.site-link-grid{margin-top:var(--opening-content-gap)}
.page-guide .article-section .dn-section-body:empty+.site-card-grid,.page-guide .article-section .dn-section-body:empty+.site-link-grid{margin-top:var(--opening-content-gap)}
.page-guide .article-section .dn-section-intro{font-weight:400}
.case-study-page #main .dn-hero-opening{display:flex;flex-direction:column;align-items:flex-start;gap:12px;min-width:0}
.case-study-page #main .dn-hero-opening>:is(h1,p){margin:0;max-width:100%}
.case-study-page .cs-index-hero.dn-hero-opening{display:flex}
.case-study-page :is(.cs-section-heading,.cs-outcome-heading,.cs-index-note).dn-heading-block{display:block}
.case-study-page .dn-heading-block .dn-section-body{max-width:65ch}
.case-study-page .cs-prose-section .dn-section-body{margin-top:var(--opening-body-gap)}
.case-study-page .dn-section-actions .cs-small{flex-basis:100%;margin:0}
.case-study-page .cs-text-link{min-height:44px;display:inline-flex;align-items:center}
.case-study-page :is(.cs-comparison figure>a,.cs-project>a,.cs-service-links>a){display:inline-flex;align-items:center;min-height:44px;max-width:100%;font-size:14px;line-height:1.5}
.case-study-page .cs-filters button{min-height:44px}
.case-study-page .cs-client-register>summary{min-height:44px;padding-block:8px}
:is(.page-about,.page-contact) .site-actions>a{min-height:44px}
@media(max-width:700px){
 :is(.page-about,.page-contact) .dn-editorial-layout{grid-template-columns:1fr;gap:20px}
 .page-guide .article-contents nav a{font-size:14px;line-height:1.5}
 .case-study-page #main .dn-hero-opening{gap:12px}
}

/* Final audit: discrete actions stay easy to tap and keyboard focus stays visible. */
#main a.text-link,#main .city-links a,#main .bespoke-home-links a,#main .guide-extras a,#main :is(.site-card-grid,.site-link-grid) h3>a{display:inline-flex;align-items:center;min-height:44px;max-width:100%}
#main .site-form [role=status] a{display:inline-flex;align-items:center;min-height:44px;max-width:100%}
.page-tool .dn-editorial-layout{display:grid;grid-template-columns:1fr;gap:var(--opening-body-gap)}
.inner-page :is(.brand-dark,.tone-navy,.site-finale) :focus-visible,.case-study-page .cs-outcome :focus-visible{outline-color:var(--teal)}
:is(.inner-page,.case-study-page) :is(.brand-teal,.tone-teal,.cs-cta) :focus-visible{outline-color:var(--navy)}
.inner-page :is(.brand-dark,.tone-navy,.site-finale) .text-link:hover{color:var(--cream);text-decoration:underline}

/* One section action: beside the opening on desktop, after content on smaller screens. */
#main .dn-section-with-actions{display:grid;grid-template-columns:minmax(0,1fr) max-content;gap:var(--opening-content-gap,32px) 48px;align-items:start}
#main .dn-section-with-actions>.dn-section-opening{grid-column:1;grid-row:1;min-width:0;margin:0}
#main .dn-section-with-actions>.dn-section-content{grid-column:1/-1;min-width:0}
#main .dn-section-with-actions>.dn-section-content:empty{display:none}
#main .dn-section-with-actions>.dn-section-actions{grid-column:2;grid-row:1;justify-self:end;align-self:center;display:flex;flex-direction:column;align-items:flex-end;gap:12px;width:max-content;max-width:340px;min-width:0;margin:0}
#main .dn-section-with-actions>.dn-section-actions>a{display:inline-flex;align-items:center;min-height:44px;max-width:100%;margin:0;text-align:left}
#main .dn-section-with-actions>.dn-section-actions a:focus-visible{outline-offset:4px}
@media(max-width:1000px){
 #main .dn-section-with-actions{grid-template-columns:minmax(0,1fr);gap:var(--opening-content-gap,24px)}
 #main .dn-section-with-actions>.dn-section-opening,#main .dn-section-with-actions>.dn-section-content,#main .dn-section-with-actions>.dn-section-actions{grid-column:1;grid-row:auto}
 #main .dn-section-with-actions>.dn-section-actions{justify-self:start;align-items:flex-start;width:100%;max-width:none}
}
@media(max-width:700px){
 #main .dn-section-with-actions>.dn-section-actions>.button{justify-content:center;width:100%}
}
/* Full-width accordions keep answers at a comfortable reading length. */
#main .dn-section-with-actions .accordion details>p{max-width:65ch}

/* Final copy-fit review: readable descriptions and balanced closing headings. */
:root{--readable-small:14px;--deep-text:#00746b}
.home-story #main .industry-card p,.home-story #main .supporting-services span,.home-story .hero-reassurance{font-size:var(--readable-small)}
.inner-page :is(.site-reassurance,.brand-budget-note,.plan-signoff),.inner-page :is(.site-link-grid,.site-process,.personal-advice) p,.inner-page .article-neighbour p:not(.eyebrow),.inner-page #main .accordion details>p,.inner-page .brand-steps li p,.inner-page .site-proof-copy p{font-size:var(--readable-small)}
.inner-page .package-card>p:not(.eyebrow,.package-unit,.bespoke-price){font-size:var(--readable-small)}
.case-study-page .cs-card-summary,.case-study-page .cs-project p:not(.eyebrow),.case-study-page .cs-comparison figure>p,.case-study-page .cs-measure-note{font-size:var(--readable-small)}
.inner-page #main .site-finale .dn-section-opening>h2,.case-study-page #main .cs-cta .dn-section-opening>h2{font-size:clamp(32px,3.4vw,44px);line-height:1.12}
/* Small green text uses a darker reading colour on cream and sage. */
.page-guide #main .article-section>.dn-section-opening>.eyebrow,.home-story .review-form-wrap>.eyebrow,.case-study-page .cs-caption span,.case-study-page .cs-related-grid :is(strong,span){color:var(--deep-text)}
.inner-page .package-bespoke .eyebrow{color:var(--teal)}
/* Discrete controls have clear hit areas; inline citations keep their text flow. */
#main .supporting-services a,#main .map-heading a,.site-page-menu summary,.site-page-menu nav a,.article-contents summary,.article-contents nav a{display:flex;align-items:center;min-height:44px;max-width:100%}
.site-page-menu summary,.site-page-menu nav a,.article-contents summary,.article-contents nav a{font-size:var(--readable-small);line-height:1.5}
.footer-grid a,.footer-bottom a{display:flex;align-items:center;min-height:44px;max-width:100%;font-size:var(--readable-small);line-height:1.5}
.footer-grid a{margin-bottom:4px}
@media(max-width:900px){
 .inner-page .site-card-grid p{font-size:var(--readable-small)}
}

/* Expanded answers use the regular reading size. */
.inner-page #main .accordion details>p{font-size:16px}
#main .map-heading a{font-size:var(--readable-small)}
/* Balance wrapped section labels and headings without fixed line breaks. */
#main .dn-section-opening>:is(.eyebrow,h2){text-wrap:balance}

/* Complete the shared control sizing without adding space to closed accordions. */
#main :is(.accordion,.package-card){--toggle-space:23px}
#main .package-card,.home-story #main .story-seo .accordion{--toggle-space:17px}
.home-story #main .faq-section .accordion{--toggle-space:18px}
#main :is(.accordion,.package-card) details{padding-block:0}
#main :is(.accordion,.package-card) details>summary{min-height:44px;min-width:44px;padding-block:var(--toggle-space)}
#main :is(.accordion,.package-card) details[open]{padding-bottom:var(--toggle-space)}
#main :is(.accordion,.package-card) details[open]>summary{padding-bottom:0}
#main .hero-results-controls button{width:44px;height:44px;min-width:44px;min-height:44px}
#main .hero-results-controls button:not([aria-pressed=true]) span{background:var(--muted)}
.site-header .menu-toggle{min-width:44px;min-height:44px}
#main .related-links a,#main .phone-link,#main .brand-feature-list h3>a{display:inline-flex;align-items:center;min-width:44px;min-height:44px;max-width:100%}
#main .city-links a{min-width:44px}
.home-story #main .review-section .phone-link{font-size:var(--readable-small)}

/* Keep comparable plan enquiries on one baseline as descriptions wrap. */
.inner-page #main .package-grid{align-items:stretch}
.inner-page #main .package-card:not(.package-bespoke){display:flex;flex-direction:column;align-items:stretch}
.inner-page #main .package-card:not(.package-bespoke)>.button{margin-top:auto}

/* Menu actions follow the same readable, touch-friendly control standard. */
.site-header :is(.mega-feature-link,.mega-bottom a){display:inline-flex;align-items:center;min-width:44px;min-height:44px;font-size:14px;line-height:1.5}
.site-header #navigation>a{display:inline-flex;align-items:center;min-width:44px;min-height:44px}
.site-header .mega-column a{min-width:44px;min-height:44px}
.cs-hero>*{min-width:0}

/* Service-first menus: compact choices and one shared enquiry action. */
.nav-simplified .mega-main{grid-template-columns:minmax(0,1fr) 260px}
.nav-simplified .mega-columns{display:block;padding:24px 28px}
.nav-simplified .mega-service-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 24px}
.nav-simplified .mega-label{margin-bottom:12px;padding-bottom:10px}
.nav-simplified .mega-feature{justify-content:center;padding:24px}
.nav-simplified .mega-feature .mega-kicker{margin:0 0 12px}
.nav-simplified .mega-feature h2{font-size:28px;margin:0 0 12px}
.nav-simplified .mega-feature .mega-description{font-size:14px;line-height:1.5;margin:0;max-width:25ch}
@media(max-width:1100px){
 .nav-simplified #navigation>.button{justify-content:center;width:100%;margin:0 0 8px}
 .nav-simplified .mega-main{grid-template-columns:1fr}
 .nav-simplified .mega-feature{display:none}
 .nav-simplified .mega-columns{padding:12px 0 18px}
 .nav-simplified .mega-service-list{grid-template-columns:1fr;gap:4px}
 .nav-simplified .mega-label{margin-bottom:6px;padding-bottom:8px}
 .site-header .nav-simplified .mega-column a{padding:9px 8px}
 .nav-simplified .mega-column small{font-size:12px;line-height:1.45;margin-top:3px}
}
