/* Final shared layer: page-specific layouts retain one spacing and control system. */
:root{--control-radius:999px;--card-radius:28px;--field-radius:14px}
.landing-page main :is(.service-page,.coverage-hero) h1{font-size:clamp(2.5rem,5.5vw,4.5rem);font-weight:600;line-height:1.16;letter-spacing:-.045em;margin:0 0 28px;max-width:20ch}
.landing-page .coverage-hero>.eyebrow,.landing-page .service-page>.eyebrow{margin-bottom:22px}
.landing-page .service-page>p.lead,.landing-page .coverage-hero>p:not(.eyebrow){font-size:1.0625rem;line-height:1.8;max-width:54ch;margin:0 0 30px}
.landing-page main .service-detail-grid article{display:flex;flex-direction:column;gap:0}
.landing-page main .service-detail-grid :is(h2,h3){font-size:clamp(1.3rem,2vw,1.65rem);line-height:1.35;margin:0 0 18px;max-width:26ch}
.landing-page main .service-detail-grid article>p{margin:0;line-height:1.8;max-width:48ch}
.landing-page main .service-detail-grid article>.text-link{margin-top:24px;min-height:44px;align-self:flex-start}
.about-page .about-heading{max-width:58ch;margin:0 0 36px}
.about-page .about-heading h2{font-size:clamp(1.8rem,3.5vw,2.6rem);line-height:1.2;margin:0 0 18px}
.about-page .about-heading>p{margin:0;max-width:52ch}
.about-page .about-links{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:auto;padding-top:22px}
.about-page .about-links a{display:inline-flex;align-items:center;gap:8px;min-height:44px;line-height:1.5;font-size:.875rem}
.about-page .contact-section{background:#e9eee3;border:1px solid #304f3e0e;border-radius:32px;width:calc(100% - 64px);max-width:1296px;margin:24px auto;padding:48px 6%}
.about-page .contact-section h2{font-size:clamp(1.8rem,3.5vw,2.8rem);line-height:1.2;margin:0 0 20px}
.about-page .contact-section>p:not(.eyebrow){max-width:53ch;margin:0 0 26px;line-height:1.8}
.about-page .contact-actions{display:flex;flex-wrap:wrap;align-items:center;gap:16px 24px}
.reading-page .service-page-copy{max-width:70ch;margin-top:48px}
.reading-page .service-page-copy>section{padding:30px 0;border-top:1px solid var(--line)}
.reading-page .service-page-copy :is(h2,h3){font-size:clamp(1.25rem,2.4vw,1.65rem);line-height:1.4;margin:0 0 18px;max-width:38ch}
.reading-page .service-page-copy p{font-size:1rem;line-height:1.85;max-width:64ch;margin:0 0 20px}
.reading-page .service-page-copy ul{line-height:1.85;padding-left:22px;max-width:62ch;color:var(--reading-color)}
.materials-price-note{border-radius:20px;background:#eef2e9;border-color:#304f3e12;padding:22px 24px}
.materials-group summary{border-radius:16px;padding:6px 0;min-height:52px}
.materials-group summary:focus-visible,.materials-faq summary:focus-visible{outline:3px solid #a56338;outline-offset:6px}
.material-product{border-radius:var(--card-radius);background:#fffdf9;border-color:#304f3e12;box-shadow:0 8px 28px #18302504;padding:26px;gap:16px;min-width:0}
.material-product .material-product-price{padding-top:20px;flex-wrap:wrap;gap:8px 14px;border-color:#304f3e18}
.material-product-price strong{color:var(--heading-color);font-size:1.4rem;line-height:1.4}
.material-product-price span{font-size:.75rem;line-height:1.5;max-width:15ch;text-align:left}
.catalogue-quantity{grid-template-columns:44px minmax(0,1fr) 44px;gap:4px;padding:4px;border:1px solid #cbd5c7;border-radius:var(--control-radius);background:#fff}
.catalogue-quantity button{border:0;border-radius:50%;width:44px;min-height:44px;padding:0;background:#eaf0e4;color:#304f3e;font-size:1.3rem;cursor:pointer}
.catalogue-quantity input{min-height:44px;padding:0 4px;border:0;border-radius:var(--control-radius);background:transparent;font:600 1rem 'DM Sans',sans-serif;color:#304f3e;appearance:textfield}
.catalogue-quantity input::-webkit-inner-spin-button,.catalogue-quantity input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.catalogue-quantity button:not(:disabled):hover{background:#dce8d4}
.catalogue-quantity :is(button,input):focus-visible{outline:3px solid #a56338;outline-offset:2px}
.materials-basket{border-radius:30px;border-color:#304f3e14;border-top:1px solid #304f3e14;background:#fffdf9;padding:36px;box-shadow:0 12px 36px #18302504}
.materials-basket .basket-actions>.button{border-radius:var(--control-radius);min-height:48px;line-height:1.4;padding:14px 22px}
.materials-basket .basket-return{gap:14px;margin:18px 0;line-height:1.65}
.materials-next-aside{border-radius:24px;padding:28px}
.material-search-label input{border-radius:var(--field-radius);min-height:52px;border-color:#cbd5c7;padding:14px 18px}
.material-search-label input:focus-visible{outline:3px solid #a56338;outline-offset:3px}
.handy-native .packing-shop-category{border-radius:22px;padding:22px;border-color:#304f3e18}
.handy-native .packing-shop-category summary{color:var(--heading-color);line-height:1.5;min-height:32px}
.handy-native :is(.packing-material-card,.assembly-item-card){border-radius:20px}
.handy-native .inventory-controls button,.handy-native .qty-group button{border-radius:var(--control-radius);min-height:44px;min-width:44px}
.handy-native :is(.pricing-status,.payment-plan,#materials-shop-summary){border-radius:18px}
.price-page .price-intro h1{color:var(--heading-color);line-height:1.2}
.price-page .price-intro>p:not(.eyebrow){color:var(--reading-color);line-height:1.75;max-width:50ch}
@media(max-width:1000px){.materials-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.about-page .contact-section{width:calc(100% - 32px);padding:36px 24px;border-radius:28px}.about-page .about-heading{margin-bottom:28px}.about-page .contact-actions{gap:14px 20px}.reading-page .service-page-copy{margin-top:36px}.reading-page .service-page-copy>section{padding:26px 0}.materials-price-note{padding:20px}.material-product{padding:22px;border-radius:24px}.materials-basket{padding:28px 22px;border-radius:26px}.materials-basket .basket-actions{gap:12px}.materials-group summary{font-size:1.4rem}.handy-native .packing-shop-category{padding:20px}}
@media(max-width:640px){.materials-grid{grid-template-columns:1fr}.materials-basket .basket-heading{flex-wrap:wrap;gap:16px}.about-page .contact-actions>.button{width:100%;justify-content:center}.material-product-price span{max-width:none}}
@media(prefers-reduced-motion:reduce){.material-product,.catalogue-quantity button{transition:none}}

.handy-native .material-shop-controls{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;gap:4px;padding:4px;border:1px solid #cbd5c7;border-radius:999px;background:#fff;max-width:100%}
.handy-native .material-shop-controls button{width:44px;min-height:44px;padding:0;border:0;border-radius:50%;background:#eaf0e4;color:#304f3e}
.handy-native .material-shop-controls input{border:0;border-radius:999px!important;background:transparent;min-height:44px;min-width:0;width:100%;padding:0 4px!important;text-align:center}
.handy-native .material-shop-controls :is(button,input):focus-visible{outline:3px solid #a56338;outline-offset:2px}
.handy-native .pricing-notice,.handy-native .premium-summary-panel{border-radius:20px}
.handy-native .postcode-review button,.handy-native .reference-controls button{border-radius:999px;min-height:44px}
.handy-native .reference-controls textarea{border-radius:14px}

/* Card copy has its own scale and rhythm; never inherit hero typography. */
:is(.landing-page,.premium-home) main .service-detail-grid article{display:flex;flex-direction:column;min-width:0;padding:clamp(26px,3vw,40px)}
:is(.landing-page,.premium-home) main .service-detail-grid article :is(h2,h3){font-size:clamp(1.35rem,2vw,1.75rem);font-weight:600;line-height:1.35;letter-spacing:-.025em;margin:0 0 20px;max-width:28ch}
:is(.landing-page,.premium-home) main .service-detail-grid article>p{font-size:1rem;line-height:1.8;margin:0;max-width:48ch}
:is(.landing-page,.premium-home) main .service-detail-grid article>.text-link{margin-top:24px;align-self:flex-start;line-height:1.5;min-height:44px;display:inline-flex;align-items:center}
.about-page main .service-detail-grid .about-links{margin-top:auto;padding-top:26px;gap:12px 24px}
:is(.landing-page,.premium-home) main :is(.scope-card,.landing-service,.area-directory-grid article,.materials-how article) :is(h2,h3){font-size:clamp(1.25rem,1.8vw,1.6rem);line-height:1.4;margin-bottom:18px}
:is(.landing-page,.premium-home) main :is(.scope-card,.landing-service,.area-directory-grid article,.materials-how article)>p{line-height:1.8;margin-bottom:20px}
:is(.landing-page,.premium-home) main :is(.service-page-copy,.local-guide,.packing-guide) p+ :is(h2,h3){margin-top:36px}
@media(max-width:720px){:is(.landing-page,.premium-home) main .service-detail-grid article :is(h2,h3){font-size:1.4rem;margin-bottom:18px}.about-page main .service-detail-grid .about-links{padding-top:24px}}
/* SEO keyword headings: the descriptive H1 takes the eyebrow position and look; the slogan keeps the large display style as a subheading. */
.landing-page main h1.keyword-heading{font-family:inherit;font-size:.7rem;font-weight:700;letter-spacing:.12em;line-height:1.6;text-transform:uppercase;margin:0 0 22px;max-width:none;text-wrap:wrap;color:var(--heading-accent)}
.landing-page main .hero-slogan{font-family:Manrope,sans-serif;font-weight:600;letter-spacing:-.035em;text-wrap:balance;color:var(--heading-color)}
.landing-page main .hero-slogan em{color:var(--heading-accent)}
.landing-page main .coverage-hero>p.hero-slogan{font-size:clamp(2.5rem,5.5vw,4.5rem);line-height:1.16;letter-spacing:-.045em;color:var(--heading-color);margin:0 0 28px;max-width:20ch}
.landing-page .materials-hero .hero-slogan{font-size:clamp(2.8rem,5vw,4.8rem);line-height:1.1;margin:20px 0 24px}
.landing-page main .not-found-links a{color:var(--heading-color);text-decoration:underline;text-underline-offset:3px}
