/* Shared containers and responsive layout — all pages. */
:root{--container-width:1320px;--gutter:32px}
body{max-width:none;margin:0}
.container{width:100%;max-width:var(--container-width);margin-inline:auto;padding-inline:var(--gutter)}
.container>*{min-width:0}
.section-shell{width:100%}
.section-shell>.container{margin-inline:auto;padding-inline:var(--gutter)}
header{height:auto;padding:0}
.header-inner{min-height:128px;display:flex;align-items:center;justify-content:space-between;gap:24px;position:relative}
footer{padding-inline:0}.footer-inner{padding-inline:var(--gutter)}
.intro,.prose{max-width:var(--container-width)}.prose>p{max-width:850px}
.trust-strip-shell{background:#fff;border-bottom:1px solid var(--line)}.trust-strip{border-bottom:0}
.story-band-shell,.detail-grid-shell,.founder-section-shell,.resource-banner-shell{background:#eaf2f5}
.quote-section-shell{background:#edf4f6}.cta-shell{background:#142f49}
.resource-banner{margin:0 auto}.home-hero{grid-template-columns:minmax(0,47fr) minmax(0,53fr)}
.hero-copy{padding:64px 40px 64px 0}.story-copy{padding:60px 0 60px 48px}
.section-heading{gap:32px}.section-heading>p{max-width:390px}
.detail-grid,.contact-grid,.founder-section{gap:64px}
.service-hero,.about-grid,.calculator,.faq{gap:48px}
.service-hero{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.service-grid,.steps,.footer-top,.form-row,.mega-links{min-width:0}
.service-card,.service-card p,.service-card h3,.mega-links a{overflow-wrap:anywhere}
.service-card .card-cta{gap:12px}.card-cta>span{flex-shrink:0}
input,select,textarea{max-width:100%;min-width:0}textarea{resize:vertical}
.button,.menu-toggle,.services-toggle,summary{min-height:44px}
.button{max-width:100%;white-space:normal}.button>span{flex-shrink:0}
.legal>div{flex-wrap:wrap;gap:16px}.result dl>div{gap:16px;flex-wrap:wrap}.result dd{margin:0}
.mega-menu{left:var(--gutter);right:var(--gutter);max-height:calc(100dvh - 148px);overflow-y:auto}
.story-photo>span{right:20px;width:fit-content;max-width:calc(100% - 50px)}
@media(max-width:1199px){
 :root{--container-width:1140px;--gutter:28px}
 nav{gap:20px}.hero-copy h1{font-size:clamp(48px,6vw,72px)}
 .service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .detail-grid,.contact-grid,.founder-section,.about-grid{gap:40px}
 .trust-strip{gap:20px}.trust-strip>div{padding-left:16px;gap:12px}
 .related .service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
/* Collapse navigation before tablet widths can crowd the logo. */
@media(max-width:991px){
 :root{--gutter:24px}
 .header-inner{min-height:105px}.original-logo img{width:115px;height:91px}
 .menu-toggle{display:flex;align-items:center;gap:16px;color:white;background:none;border:0;padding:10px 0;cursor:pointer}
 nav{display:none;position:absolute;top:100%;left:0;right:0;padding:20px var(--gutter);background:#112b43;max-height:calc(100dvh - 105px);overflow-y:auto;flex-direction:column;align-items:stretch;gap:10px}
 nav.open{display:flex}nav>a:not(.button){min-height:44px}nav>.button{align-self:flex-start}
 .services-toggle{width:100%;justify-content:space-between}
 .mega-menu{position:static;max-height:none;margin:8px 0 12px;padding:18px;box-shadow:none;border-radius:8px}
 .mega-heading{display:block}.mega-heading h2{font-size:26px;margin-bottom:14px}
 .mega-links{grid-template-columns:repeat(2,minmax(0,1fr))}.mega-links span{display:none}.mega-links strong{margin:0}.mega-links>a{padding:14px 8px}
 .home-hero{min-height:0}.hero-copy{padding:48px 28px 48px 0}.hero-copy h1{font-size:52px}
 .hero-copy .eyebrow{font-size:9px}.hero-copy .button{gap:16px;padding-inline:16px}
 .trust-strip{grid-template-columns:repeat(3,minmax(0,1fr))}.trust-strip>p{grid-column:1/-1}
 .service-hero h1{font-size:44px}.detail-grid,.contact-grid,.calculator,.faq{grid-template-columns:1fr}
 .story-copy{padding:40px 0 40px 28px}.story-copy h2{font-size:36px}
 .steps{gap:24px}.footer-top{gap:30px;grid-template-columns:1.2fr 1fr 1fr}
}
@media(max-width:767px){
 :root{--gutter:20px}
 .section{padding-block:52px}.intro{padding-block:44px 32px}.top-none{padding-top:0}
 .home-hero,.story-band,.service-hero,.about-grid,.founder-section,.stories,.cta{grid-template-columns:1fr}
 .hero-copy{padding:40px 0}.hero-copy h1{font-size:clamp(44px,9vw,61px)}
 .hero-image{height:340px}.image-label{left:16px;right:16px;bottom:16px;padding:16px}.image-label span:last-child{font-size:22px}
 .story-photo{min-height:300px}.story-copy{padding:36px 0}
 .section-heading{display:block}.section-heading>p,.section-heading>.text-link{margin-top:22px}
 .steps{grid-template-columns:1fr}.service-hero{padding-block:36px;gap:28px}.service-hero>img{min-height:0;height:300px}
 .service-hero h1,.intro h1{font-size:clamp(36px,7vw,47px)}
 .cta{gap:28px;padding-block:48px}.cta>div:last-child{max-width:none}.cta h2{font-size:40px}
 .quote-section{padding-block:48px}.quote-section blockquote{font-size:30px}
 .footer-top{grid-template-columns:1fr 1fr}.footer-top>div:first-child{grid-column:1/-1}
 .form-row{grid-template-columns:1fr;gap:0}.resource-banner{padding-block:32px}.resource-banner>span{display:none}
 .contact-grid aside,.result,.detail-grid aside{padding:26px}.result>strong{font-size:48px}
 .trust-strip>div{display:block}.trust-strip>div strong{font-size:30px}.trust-strip>div span{display:block;font-size:11px;margin-top:6px}
 .related .service-grid{grid-template-columns:1fr}.about-image{height:280px}
}
@media(max-width:575px){
 :root{--gutter:16px}
 .service-grid,.mega-links{grid-template-columns:1fr}
 .service-card,.service-card:not(:nth-child(3n+1)){min-height:0;padding:24px!important}
 .service-card h3{font-size:23px}.service-card p{font-size:14px}.service-card .card-cta{margin-top:6px}
 .hero-image{height:280px}.hero-copy>.text-link{font-size:12px;gap:10px}
 .hero-copy .button,.cta .button,#enquiry>.button,#calculator>.button{width:100%}
 .contact-phone{font-size:23px}.contact-grid aside h2{font-size:30px}
 .contact-grid aside,.result,.detail-grid aside{padding:22px}
 .trust-strip{gap:12px}.trust-strip>div{padding-left:10px}
 .footer-top{grid-template-columns:1fr}.footer-top>div:first-child{grid-column:auto}
 .stories blockquote{font-size:23px}.image-label span:first-child{font-size:7px}
}
@media(prefers-reduced-motion:reduce){.service-card:hover{transform:none}}
