/* Final shared presentation layer. Brand colours and product animations are preserved. */
:root{--body-copy:#52604f;--focus:#246d2b}
body{line-height:1.55}
h1,h2,h3{text-wrap:balance}p{overflow-wrap:break-word}
.section{padding-top:64px;padding-bottom:64px}
.section-heading{gap:28px}.section-heading p{max-width:520px;line-height:1.75}
.page-intro p{max-width:660px;line-height:1.8}
a,button,input,select,textarea,summary{-webkit-tap-highlight-color:rgba(57,166,54,.12)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.button{min-height:48px;gap:18px;line-height:1.5;justify-content:center;text-align:center}
.button.secondary{background:transparent;border:1px solid #79936b;color:#246d2b}
.button.secondary:hover{background:#edf3e6}.header-cta{min-height:44px;justify-content:center}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.hero-enquiry-link{font-size:14px;line-height:1.7;margin:18px 0 0;color:var(--body-copy)}
.hero-enquiry-link a{text-decoration:underline;text-underline-offset:4px;color:#246d2b}
.hero-foot{margin-top:28px}
.hero .intro{max-width:480px}
.desktop-nav a{min-height:44px;display:inline-flex;align-items:center;font-size:13px}
.desktop-nav a[aria-current=page]{font-weight:700;color:#246d2b}
.mobile-menu nav a{min-height:44px;display:flex;align-items:center}
.service-card p:not(.eyebrow){font-size:14px;line-height:1.7;min-height:0}.service-card h3{line-height:1.25}.service-card a{min-height:48px}
.service-detail p,.service-directory .rate-list p{line-height:1.75}
.service-directory summary{min-height:68px}.service-directory summary>strong{line-height:1.45}
.field-note,.project-footnote,.video-card figcaption span,.gallery-project-note{font-size:13px;line-height:1.65}
.project-photo figcaption{font-size:14px;line-height:1.65}.project-stage{font-size:13px;line-height:1.4;padding:8px 12px}
.gallery-project h3{line-height:1.25}.gallery-project{margin:0}.gallery-card>span{line-height:1.5}
.gallery-filters button{min-height:44px;padding:10px 16px;font-size:13px}
.gallery-more{min-height:48px;line-height:1.5}
.video-card video{object-fit:contain}.video-card figcaption{line-height:1.6;font-size:14px}
.relaxed-contact{max-width:1060px}.relaxed-contact .intro{max-width:670px}
.relaxed-contact form{margin-top:28px}.planner-entry{margin:24px 0 30px}
.planner-entry h2{font-size:25px;line-height:1.25}.planner-entry .planner-alternative{font-size:14px}
.simple-services label{min-height:60px}.simple-services label span{font-size:14px;color:var(--ink)}
.simple-services label:has(input:checked){border-color:#399735;background:#e8f2e1}
.simple-details label,.relaxed-contact form>label,.booking-form label{font-size:14px;font-weight:500}
.simple-areas label{font-size:14px;font-weight:500}.simple-areas label span{font-weight:400}
.simple-areas input,.relaxed-contact input:not([type=checkbox]),.relaxed-contact textarea,.booking-form input,.booking-form select,.booking-form textarea{font-size:16px;line-height:1.5;min-height:48px}
.optional-measurements summary{min-height:44px;line-height:1.6;font-size:14px}
#simple-status,#booking-status{font-size:15px;line-height:1.75}
#simple-status:empty,#booking-status:empty{margin:0}
.consultation-invite{padding-top:42px;padding-bottom:48px}.consultation-invite h2{font-size:clamp(30px,3.8vw,44px)}
.consultation-invite p{font-size:16px;line-height:1.75}
.quote-progress{gap:10px;margin-bottom:28px}.quote-progress button{min-height:64px;line-height:1.45;font-size:14px}
.journey-start{margin-bottom:24px}.journey-question{font-size:16px;margin-bottom:16px}
.journey-choices{gap:14px}.journey-choice{border-radius:10px}.journey-copy strong{line-height:1.4}.journey-copy small{line-height:1.6}
.wizard-work fieldset,.wizard-measurements fieldset{margin-bottom:24px}
.area-entry{padding:20px;border-radius:8px}.area-entry>label{font-size:14px;line-height:1.5}
.area-entry input{min-height:48px;font-size:16px;max-width:220px;width:100%}
.area-entry p{font-size:13px;line-height:1.7}
.wizard-measure-group{padding:16px 0}.wizard-measure-group h3{font-size:20px;margin-bottom:14px}
.config-controls fieldset legend{line-height:1.5}.config-controls .select-label{line-height:1.6}
.config-controls select{font-size:14px;min-height:48px;max-width:100%}
.extra{gap:16px}.extra>span{min-width:0}.extra small{line-height:1.6}
.estimate{padding:26px}.estimate-line{font-size:14px;line-height:1.65;gap:10px}.estimate-line span{white-space:normal!important}
.estimate-bottom,.estimate .pricing-note,.estimate-note{font-size:13px;line-height:1.7}
.wizard-summary{font-size:14px;line-height:1.75}.wizard-summary .text-link{min-height:44px;padding:8px 0}
.request-details dd,.request-notes{overflow-wrap:anywhere}.request-service{font-size:14px;line-height:1.65}.request-small{font-size:13px;line-height:1.7}
.hatch-table-wrap{max-width:100%;overflow:auto}.compact-guide-foot p{line-height:1.75}
.faq summary{min-height:52px;line-height:1.5}.faq details p{font-size:14px;line-height:1.8}
footer{row-gap:28px}.footer-contact{line-height:1.7}.footer-contact a{min-height:32px}.footer-page-links a{min-height:36px;display:inline-flex;align-items:center}
.breadcrumbs{font-size:13px;line-height:1.5}.breadcrumbs a{min-height:40px;display:inline-flex;align-items:center}
@media(max-width:1050px){.section{padding-top:50px;padding-bottom:50px}.section-heading{gap:18px}}
@media(max-width:680px){
 .section{padding-top:38px;padding-bottom:38px}.page-intro{padding-top:28px;padding-bottom:30px}
 h1{font-size:clamp(40px,11vw,54px);letter-spacing:-1.6px;line-height:1.1;margin:20px 0 24px}
 h2{font-size:clamp(30px,8.5vw,40px);line-height:1.2;letter-spacing:-.8px}
 .hero{padding-top:20px;padding-bottom:36px}.hero .intro{font-size:16px;line-height:1.75;margin-bottom:24px}
 .hero-actions{gap:10px}.hero-actions .button{font-size:14px;padding:14px 18px;min-height:48px}.hero-foot{margin-top:24px}
 .hero-image{height:390px}.hero-enquiry-link{font-size:14px}.eyebrow{font-size:11px;letter-spacing:1.6px}
 .section-heading{gap:14px}.section-heading p{font-size:15px;line-height:1.75}
 .service-grid{gap:20px}.service-card>div{padding:22px}.service-card h3{font-size:28px}
 .service-card p:not(.eyebrow){font-size:14px;line-height:1.7}.service-card a{font-size:15px}
 .project-pair{gap:12px}.project-photo{margin:0}.project-photo figcaption{font-size:13px;line-height:1.6}.project-stage{font-size:12px;padding:7px 9px}
 .gallery-grid{gap:14px}.gallery-card>span{font-size:13px;padding:12px 0}.gallery-project{padding:14px}.gallery-project h3{font-size:22px}
 .gallery-filters{gap:8px}.gallery-filters button{font-size:12px;padding:10px 14px}
 .gallery-project .gallery-card>span{font-size:13px}.gallery-project-note{font-size:12px}
 .video-grid{gap:22px}.video-card figcaption{font-size:14px}.video-card figcaption span{font-size:13px}
 .relaxed-contact h1,.booking-section h1{font-size:clamp(40px,11vw,54px)}
 .planner-entry{padding:20px;margin:22px 0 28px}.planner-entry h2{font-size:23px}.planner-entry p{font-size:14px;line-height:1.7}
 .simple-services{gap:10px}.simple-services label{padding:14px 12px;min-height:62px}.simple-services label span{font-size:14px}
 .simple-details{gap:0}.relaxed-contact form>label,.simple-details label{margin-bottom:18px}
 .quote-progress{gap:7px}.quote-progress button{font-size:12px;padding:12px 8px;min-height:66px}
 .journey-choice{padding:18px;min-height:106px}.journey-copy strong{font-size:16px}.journey-copy small{font-size:13px}
 .journey-help{margin-top:16px}.journey-help>span{font-size:13px;line-height:1.6}
 .area-entry{padding:18px}.config-controls select{font-size:16px}.estimate{position:static;margin-top:12px;padding:24px}
 .estimate-line{font-size:14px}.quote-options label{line-height:1.6;min-height:44px}.quote-options input{flex-shrink:0}
 .booster-feature{gap:24px}.booster-media{gap:22px}.booster-demo{margin:0 auto}
 .booster-real-video figcaption{font-size:14px}.booster-real-video figcaption span{font-size:13px}
 .hatch-table td,.hatch-table th{line-height:1.55}.compact-guide-foot button,.compact-guide-foot a{min-height:44px;font-size:12px}
 .footer-contact,.footer-page-links{font-size:14px}.footer-contact a{min-height:36px}.footer-page-links a{min-height:44px}
 .button:hover{transform:none}.breadcrumbs{margin-top:8px}
}
@media(max-width:360px){.hero-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.hero-actions .button{padding:12px;font-size:13px}.journey-choice{padding:15px}.journey-copy strong{font-size:15px}.simple-services label{padding:12px 10px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button{transition:none}}
/* Available box sizes and small four-section ladder illustrations. */
.ladder-size-content{max-width:100%;min-width:0}.ladder-size-table{width:100%;border-collapse:collapse;margin:22px 0;text-align:left;table-layout:fixed}.ladder-size-table th,.ladder-size-table td{padding:18px 14px;border-bottom:1px solid #dce3d5;vertical-align:top}.ladder-size-table th:first-child{width:125px}.ladder-size-table thead{background:#edf3e8;font-size:13px}.ladder-size-table tbody th{font-size:15px;color:#24492a}.size-chips{display:flex;flex-wrap:wrap;gap:8px}.size-chips span{display:inline-block;padding:5px 9px;background:#f0f4ec;border:1px solid #dce4d4;border-radius:5px;font-size:14px;white-space:nowrap;font-variant-numeric:tabular-nums}.size-fit-note,.size-demo-note{font-size:13px!important;line-height:1.65;max-width:850px}.small-ladder-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:30px 0 18px}.small-ladder-card{display:grid;grid-template-columns:130px 1fr;gap:18px;align-items:center;border:1px solid #dce3d5;border-radius:12px;padding:20px;background:#f7f9f3;min-width:0}.small-ladder-card h3{margin:0 0 8px;font-size:21px}.small-ladder-card p{font-size:14px;line-height:1.65;margin:0 0 12px}.small-ladder-demo{width:130px;text-align:center}.small-ladder-demo svg{display:block;width:130px;height:148px}.small-ladder-replay{font-size:12px;min-height:44px;padding:8px 12px}.ladder-sizes summary{cursor:pointer;font-size:18px;font-weight:600;min-height:48px;padding:14px 0;color:#246d2b}.ladder-sizes details[open] summary{margin-bottom:12px}.size-demo-note a{text-decoration:underline;text-underline-offset:3px}.small-ladder-card .text-link{font-size:13px;display:inline-block;min-height:44px;padding-top:10px}
@media(max-width:850px){.small-ladder-grid{grid-template-columns:1fr}}
@media(max-width:680px){.ladder-size-table th:first-child{width:85px}.ladder-size-table th,.ladder-size-table td{padding:14px 6px}.ladder-size-table tbody th{font-size:13px}.size-chips{gap:6px}.size-chips span{font-size:12px;padding:5px 7px}.small-ladder-card{grid-template-columns:110px 1fr;gap:14px;padding:14px}.small-ladder-demo,.small-ladder-demo svg{width:110px}.small-ladder-card h3{font-size:20px}.small-ladder-card p{font-size:13px}.ladder-sizes summary{font-size:16px}}
.enquiry-success{padding:22px!important;margin-top:20px!important;border:1px solid #ccdcca;border-radius:12px;background:#f0f6ed;color:#253e29;line-height:1.6;font-size:15px!important}.enquiry-success-title{display:block;font-size:18px;margin-bottom:16px}.enquiry-success p{margin:12px 0 0!important;font-size:15px!important;line-height:1.6}.enquiry-success .enquiry-reference{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;padding:12px 0;margin-bottom:14px!important;border-top:1px solid #d9e5d4;border-bottom:1px solid #d9e5d4}.enquiry-reference span{font-size:12px;color:#5c6d57}.enquiry-reference strong{font-size:15px;letter-spacing:.04em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.enquiry-success .enquiry-email-note{font-size:13px!important;color:#5c6d57}

/* Small homepage refinements: services first, a clearer introduction and advice. */
.home-page .hero h1{font-size:clamp(44px,4.6vw,68px);line-height:1.1;letter-spacing:-2px}
.home-page .hero-copy{min-width:0}.home-page .hero .intro{max-width:470px}
.home-page .home-services{scroll-margin-top:110px}
.home-page .home-call-invite{max-width:1296px;width:90%;margin:0 auto 64px;padding:26px 30px;border:1px solid #dce5d8;border-radius:12px;display:flex;align-items:center;gap:22px;background:#f0f5eb}
.home-page .home-call-invite>.trade-icon{width:40px;height:40px;flex-shrink:0}
.home-page .home-call-invite>div{flex:1;min-width:0}
.home-page .home-call-invite h3{font-family:inherit;font-size:20px;margin:0 0 7px;color:#243e29}
.home-page .home-call-invite p{font-size:15px;line-height:1.65;margin:0;color:#5c6d57}
.home-page .home-call-invite .button{white-space:nowrap}
@media(max-width:680px){
 .home-page .hero h1{font-size:clamp(39px,10vw,52px);letter-spacing:-1.4px}
 .home-page .home-services .service-page-card{grid-template-columns:100px minmax(0,1fr)}
 .home-page .home-services .service-page-card>img{min-height:170px}
 .home-page .home-call-invite{padding:22px;gap:14px;flex-wrap:wrap;margin-bottom:38px}
 .home-page .home-call-invite>.trade-icon{width:32px;height:32px}
 .home-page .home-call-invite>div{flex-basis:calc(100% - 46px)}
 .home-page .home-call-invite h3{font-size:18px}
 .home-page .home-call-invite .button{width:100%;text-align:center}
}

/* Responsive layout corrections shared by public pages. */
main,main>section,main>aside,fieldset,.form-row>label,.simple-details>label,.service-page-card-body{min-width:0}
main img,main video{max-width:100%}
.section-heading>*,.contact-links a,.next-steps,.draft-note{min-width:0;overflow-wrap:break-word}
.enquiry{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:28px 48px;align-items:start}
.enquiry>.wizard-summary{grid-column:1/-1;width:100%}
.enquiry>.wizard-back{grid-column:1/-1;justify-self:start;align-self:start;width:auto;height:auto;min-height:48px;margin:0;padding:12px 20px}
.enquiry form{min-width:0;align-self:start}
.enquiry form label{font-size:14px;line-height:1.55}
.enquiry>div>p:not(.eyebrow){font-size:15px;max-width:440px}
.enquiry input,.enquiry textarea,.enquiry select{font-size:16px;max-width:100%;min-width:0}
.enquiry textarea{resize:vertical}
.gallery-project{width:100%;max-width:1120px;margin-inline:auto;align-self:start}
.gallery-project-pair{align-items:start;grid-template-columns:repeat(2,minmax(0,1fr))}
.gallery-project .gallery-card>img{display:block;width:100%;height:auto;max-height:none;aspect-ratio:auto;object-fit:contain;background:transparent;border-radius:6px}
.gallery-project .gallery-card>span{align-items:flex-start;gap:10px}
.gallery-card .gallery-zoom{flex-shrink:0}
.config-grid{grid-template-columns:minmax(0,1.45fr) minmax(300px,.85fr);gap:32px}
.packages{grid-template-columns:repeat(3,minmax(0,1fr))}
.package{min-width:0;min-height:190px}
.package strong,.package small{overflow-wrap:break-word}
.extra>span{min-width:0}.extra input{flex-shrink:0}
.trust-strip{text-align:center;flex-wrap:wrap}
footer{align-items:flex-start;flex-wrap:wrap}
.footer-contact,.footer-page-links{min-width:0}
dialog{max-height:calc(100dvh - 32px);overflow-y:auto;overscroll-behavior:contain}
@media(min-width:681px) and (max-width:1100px){
 .service-page-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .section-heading{align-items:flex-start}
 .review-grid{grid-template-columns:1fr}
 .hero .intro{font-size:16px}
}
@media(max-width:1100px){
 .config-grid{grid-template-columns:minmax(0,1fr);gap:24px}
 .estimate{position:static;width:100%;margin-top:0}
 .enquiry{grid-template-columns:minmax(0,1fr);gap:24px}
 .enquiry>div>p:not(.eyebrow){max-width:650px}
 .enquiry form{width:100%;max-width:800px}
 .enquiry .contact-links{max-width:650px}
 .faq{grid-template-columns:minmax(0,1fr);gap:24px}
 .booster-feature{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:900px){
 .hero{grid-template-columns:minmax(0,1fr);gap:28px}
 .hero-copy{max-width:650px}
 .hero-image{height:440px;max-width:650px;width:100%;border-top-left-radius:80px}
 .section-heading{display:flex;flex-direction:column;align-items:flex-start;gap:18px}
 .section-heading p{margin:0;max-width:650px}
 .gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .booster-media{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:680px){
 .hero-image{height:390px}
 .packages{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
 .package{min-height:175px;padding:16px 12px}
 .enquiry{gap:20px}.enquiry form{padding:22px 18px}
 .enquiry>.wizard-back{min-height:44px;font-size:14px}
 .form-row,.simple-details,.simple-areas,.booking-form{grid-template-columns:minmax(0,1fr)}
 .booking-wide{grid-column:1}
 .gallery-project{padding:14px}.gallery-project-pair{gap:12px}
 .gallery-project .gallery-card>span{font-size:13px;min-height:0}
 .service-page-card,.home-page .home-services .service-page-card{grid-template-columns:100px minmax(0,1fr)}
 .service-page-card-body{padding:18px 14px}
 .simple-cta{width:90%;margin:30px auto;padding:26px 22px;gap:18px}
 .simple-cta>.button{width:100%}
 .mobile-contact-bar{padding-bottom:calc(10px + env(safe-area-inset-bottom))}
 .quote-progress{scroll-margin-top:16px}
 .hatch-table-wrap,.ladder-size-content{max-width:100%;overflow-x:auto}
 .request-brand{gap:12px;flex-wrap:wrap}
}
@media(max-width:380px){
 .simple-services{grid-template-columns:minmax(0,1fr)}
 .service-page-card,.home-page .home-services .service-page-card{grid-template-columns:82px minmax(0,1fr)}
 .service-page-card-body{padding:16px 12px}
 .gallery-project-pair{gap:8px}.gallery-project{padding:10px}
 .gallery-project .gallery-card>span{font-size:12px}
 .header-cta{font-size:11px;padding-inline:10px}
}

/* Finishing touches: consistent controls, readable detail and clear targets. */
#enquiry,#configure,#ladder-sizes,#contact{scroll-margin-top:24px}
.service-page-card{transition:border-color .18s ease,box-shadow .18s ease}
.service-page-card:hover{border-color:#87a477;box-shadow:0 5px 18px #17251b0a}
.service-page-card:focus-visible{outline:3px solid #246d2b;outline-offset:4px}
.service-page-card-body h3{line-height:1.3;margin-bottom:10px}
.service-page-card-body p{line-height:1.7}
.contact-links a{min-height:48px;gap:12px;font-size:15px}
.contact-links .trade-icon{flex-shrink:0}
.next-steps{padding:22px;border-radius:10px;line-height:1.75}
.next-steps h3{font-size:18px;line-height:1.4;margin:0 0 12px}
.next-steps ol{padding-left:22px;margin:0}
.next-steps li+li{margin-top:10px}
.next-steps p{font-size:13px;line-height:1.7}
.draft-note{font-size:13px;line-height:1.7;margin-top:20px}
.field-note{max-width:75ch}
.button:disabled{cursor:default;opacity:.65;transform:none;box-shadow:none}
button:not(:disabled),summary{touch-action:manipulation}
.floor-replay,.light-replay,.insulation-replay,.booster-replay{min-height:44px;line-height:1.5}
.service-detail .text-link{line-height:1.6;text-underline-offset:4px}
.footer-page-links a:hover,.footer-contact a:hover{text-decoration:underline;text-underline-offset:4px}
@media(max-width:680px){.next-steps{padding:18px}.contact-links a{font-size:14px}.service-page-card:hover{box-shadow:none}}
@media(prefers-reduced-motion:reduce){.service-page-card{transition:none}}

.measurement-unknown{display:flex!important;align-items:center;gap:10px;margin:16px 0 12px;font-size:14px!important;line-height:1.5;cursor:pointer}
.measurement-unknown input[type=checkbox]{width:20px!important;height:20px;flex:0 0 20px;accent-color:#246d2b;margin:0;padding:0}
.measurement-help,.planner-save-note{font-size:13px;line-height:1.65;color:#60715a}
#height:disabled,#floor-area:disabled,#insulation-area:disabled{opacity:.5}
.planner-draft-notice{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 20px;margin:0 0 24px;border:1px solid #cbdcc0;border-radius:10px;background:#edf5e7;font-size:14px;line-height:1.6}
.planner-draft-notice[hidden]{display:none}.planner-draft-notice button{flex-shrink:0;min-height:44px;background:none;color:#246d2b;text-decoration:underline;text-underline-offset:4px}
.enquiry-next-title{font:600 17px/1.4 Arial,sans-serif;margin:24px 0 10px;color:#24472a}.enquiry-next-steps{padding-left:22px;margin:0;font-size:14px;line-height:1.7}.enquiry-next-steps li+li{margin-top:8px}
.enquiry-success-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;margin-top:22px}.enquiry-success-actions .button{margin:0!important;min-height:44px;font-size:14px;padding:12px 18px}.enquiry-success-actions .text-link{font-size:14px;line-height:1.5}
@media(max-width:680px){.planner-draft-notice{flex-direction:column;align-items:flex-start;gap:8px;padding:16px}.enquiry-success-actions{align-items:flex-start;flex-direction:column}.measurement-unknown{font-size:14px!important}}

/* About page: experience and reviews supplied by the business. */
.about-proof{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:24px;margin:28px 0 32px;padding:24px 0;border-block:1px solid #d8dfd2;max-width:560px}
.about-proof div{min-width:0}.about-proof dt{font-family:Georgia,serif;font-size:clamp(2rem,4vw,3rem);line-height:1.1;color:#246d2b}.about-proof dd{margin:8px 0 0;font-size:.95rem;line-height:1.5;color:#52624c}
@media(max-width:380px){.about-proof{gap:16px;grid-template-columns:1fr 1.3fr}.about-proof dd{font-size:.85rem}}
