/* Readable type is part of the design, including at narrow phone widths. */
:root{--muted:#3e4e52;--body-size:1rem;--label-size:.8125rem;--control-size:.875rem}
body{font-size:1.0625rem;-webkit-font-smoothing:auto}
.hero-intro{font-size:1.125rem;line-height:1.75;max-width:440px}
.page-intro,.page-hero-grid .page-intro,.catalogue-hero .page-intro{font-size:1.0625rem;line-height:1.75}
.section-head p,.process-band .section-head p,.audience-card p,.service-row p,.process-step p,.local-copy>p,.faq-heading>p,.faq-item p,.feature p,.plan-card p,.path-panel p,.journey-list li p,.contact-info>p,.contact-detail p,.catalogue-card p,.directory-family-heading p,.service-no-results p,.product-content>section>p,.product-content>section>p.delivery-note,.scope-table td,.scope-table td:last-child,.delivery-steps p,.product-content .delivery-steps p,.scope-callout p,.product-content .faq-item p,.connection-intro,.connection-panel>p,.cta-panel p,.enquiry-result p{font-size:var(--body-size);line-height:1.75}
.article-body p,.article-body li,.article-callout p,.prose-grid p,.legal p{font-size:1.0625rem;line-height:1.8}
.scope-table td:last-child,.scope-callout p,.dimensional-points>li{color:var(--muted)}
.dimensional-points>li,.include-list li{font-size:1rem;line-height:1.7}
.process-band p{color:#e5e9e2}.process-band .eyebrow{color:#e5e9e2}
.footer-brand>p{font-size:.9375rem;line-height:1.75}

/* Controls and supporting information should not shrink with the layout. */
.btn,.text-link,.hero .btn,.hero .actions .text-link,.desktop-nav .btn,.section-head>.text-link,.services-heading .text-link,.audience-card .text-link,.process-band .text-link,.local-copy .text-link,.insight-card .text-link,.faq-heading .text-link,.cta-actions .btn,.plan-card .text-link,.article-sidebar .text-link,.catalogue-hero .actions .btn,.catalogue-hero .actions .text-link,.directory-family-heading>.text-link,.product-content .btn,.catalogue-card-foot,.connection-panel>.text-link,.enquiry-result .btn,.enquiry-result #copy-status{font-size:var(--control-size);line-height:1.5}
.btn{min-height:52px;text-align:center}.text-link{white-space:normal}.hero .actions{gap:16px 24px}
.desktop-nav,.nav-service-menu>summary{font-size:.9375rem}
.nav-service-family>a,.nav-service-family>a.nav-family-title,.nav-service-family>a.nav-family-all,.dropdown-top{font-size:var(--label-size);line-height:1.7}
.eyebrow,.hero .eyebrow,.overline,.card-top,.card-no,.step-n,.delivery-steps li>span,.product-content>section>.overline,.feature .overline{font-size:var(--label-size)}
.hero-note,.scene-caption,.connection-art-caption,.preview-caption,.local-caption,.cta-actions>span,.insight-meta,.footer-bottom,.motion-control,.breadcrumb,.article-byline,.service-result-count,.catalogue-card-top,.related-service>span,.product-side-nav .overline,.article-sidebar .overline{font-size:.75rem;line-height:1.65}
.scene-label{font-size:.75rem}.connection-node b{font-size:.75rem;color:var(--ink)}
.preview-caption{right:20px}.local-caption{right:28px}
.footer-column h3{font-size:var(--label-size)}.footer-column li,.footer-column .email{font-size:var(--control-size);line-height:1.7}
.footer-main{grid-template-columns:1.35fr 1fr .95fr 1.2fr;gap:36px}.footer-column .email{overflow-wrap:anywhere}
.footer-bottom{flex-wrap:wrap}.footer-bottom>div{flex-wrap:wrap;align-items:center;gap:14px 24px}
.breadcrumb{flex-wrap:wrap;row-gap:5px}.card-top{line-height:1.6}.card-no{flex-shrink:0}
.service-row .num{font-size:var(--label-size)}.service-row p{max-width:380px}
.strip-inner{font-size:var(--label-size);gap:18px;flex-wrap:wrap;padding-block:20px}.strip-inner .strip-label{font-size:.75rem}
.insight-meta{flex-wrap:wrap}.family-number{color:#587569}
.tabs button,.article-filters button,.service-filter-list button,.connection-tabs button,.product-family-links,.product-family-links>div>a{font-size:var(--control-size);line-height:1.5}
.tabs{max-width:100%}.tabs button{white-space:normal}
.catalogue-search label,.field label,.project-form legend{font-size:var(--control-size)}
.field input,.field select,.field textarea,.catalogue-search input{font-size:1rem;line-height:1.6}
.choice-list label{font-size:var(--control-size);line-height:1.5;padding:11px 13px}.choice-list input{width:16px;height:16px}
.form-hint,.enquiry-result pre{font-size:.875rem;line-height:1.75}
.product-side-nav,.product-side-nav ul,.back-to-family{font-size:var(--control-size);line-height:1.7}
.scope-table thead th,.scope-table td:before{font-size:.75rem;line-height:1.6}
.scope-table tbody th{font-size:1rem;line-height:1.6}
.product-content .faq-item summary,.faq-item summary{font-size:1rem;line-height:1.6}
.scope-table tbody th{overflow-wrap:anywhere}.product-content,.catalogue-card{overflow-wrap:break-word}
.connection-intro,.connection-panel>p{max-width:480px}.connection-panel{min-height:340px}
.audience-card{min-height:405px}.audience-card p{max-width:68%;margin-bottom:30px}.audience-card h3{max-width:76%}.card-art{top:auto;bottom:85px;right:22px;scale:.85}

@media(max-width:1100px){
 .footer-main{grid-template-columns:1fr 1fr;gap:36px 45px}
 .process-grid{grid-template-columns:1fr 1fr;gap:32px}
 .hero-intro{max-width:390px}
 .audience-card p{max-width:100%;padding-right:72px}.card-art{right:10px;bottom:100px;scale:.65;transform-origin:right bottom}
 .catalogue-layout{grid-template-columns:170px minmax(0,1fr);gap:38px}
}
@media(max-width:960px) and (min-width:761px){
 .desktop-nav{gap:14px;font-size:.875rem}.nav-service-menu>summary{font-size:.875rem}
 .connection-layout{grid-template-columns:1fr;gap:35px}.connection-art{width:100%;max-width:560px;margin:auto}.connection-panel{min-height:0}
 .scope-table tbody th,.scope-table td,.scope-table td:last-child{font-size:.9375rem}
}
@media(max-width:760px){
 .hero-intro{font-size:1.0625rem;line-height:1.75;max-width:440px}
 .hero-note{align-items:flex-start}.hero .actions{gap:18px;align-items:flex-start}
 .hero-copy{padding-top:4px}.hero-art{margin-top:10px}
 .eyebrow,.hero .eyebrow{font-size:.75rem;letter-spacing:.1em;line-height:1.7}
 .desktop-nav>a:not(.btn),.nav-service-menu>summary{font-size:1.1875rem}
 .nav-service-families{grid-template-columns:1fr;gap:26px}.nav-service-family>a,.nav-service-family>a.nav-family-title,.nav-service-family>a.nav-family-all,.dropdown-top{font-size:.875rem}
 .scene-label{font-size:.6875rem}.scene-caption{font-size:.75rem}
 .section-head p{max-width:100%}.audience-card{min-height:410px;padding:28px}
 .audience-card h3{max-width:100%;font-size:32px;line-height:1.15}
 .audience-card p{max-width:100%;padding-right:0;margin-bottom:94px}
 .card-art{bottom:36px;right:32px;top:auto;scale:.58;transform:rotate(-4deg);transform-origin:right bottom}
 .audience-card .round-arrow{right:25px;bottom:24px}.audience-card .text-link{max-width:76%;position:relative;z-index:2}
 .service-row{grid-template-columns:24px minmax(0,1fr) 35px}.service-row p{max-width:none}
 .process-grid{grid-template-columns:1fr;gap:28px}.process-step h3{font-size:21px}
 .connection-panel{min-height:0}.connection-layout{gap:34px}.connection-tabs button{padding:10px 14px}
 .connection-node b{font-size:.6875rem}.connection-node{padding:8px 10px}
 .connection-art-caption{font-size:.75rem;align-items:flex-start}.connection-pause{width:36px;height:36px}
 .connection-art-caption>span{max-width:calc(100% - 50px)}
 .footer-main{grid-template-columns:1fr 1fr;gap:34px 22px}.footer-brand{grid-column:1/-1}.footer-column.contact{grid-column:1/-1}
 .footer-column .email{font-size:1.125rem}.footer-bottom>div{margin-top:16px;gap:14px 20px}
 .catalogue-layout{grid-template-columns:1fr;gap:0}.product-side-nav{font-size:.875rem}
 .scope-table td,.scope-table td:last-child{font-size:1rem;line-height:1.75}.scope-table tbody th{font-size:1.0625rem}
 .tabs{border-radius:18px}.tabs button{padding:12px 13px;border-radius:14px}
 .choice-list label{font-size:.875rem}.form-hint{font-size:.875rem}
}
@media(max-width:390px){
 .hero .actions{flex-direction:column;align-items:flex-start;gap:20px}.hero .actions .text-link{padding-left:4px}
 .audience-card{padding:25px}.audience-card h3{font-size:30px}
 .scene-label{font-size:.6875rem}.connection-tabs{gap:8px}.connection-node b{font-size:.6875rem}
}
