@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;600;700;800;900&family=DM+Sans:opsz,wght@9..40,400;9..40,500;9..40,600;9..40,700&display=swap');

:root {
  --black: #070707;
  --ink: #111111;
  --panel: #141414;
  --panel-2: #1b1b1b;
  --line: rgba(255,255,255,.14);
  --soft-line: rgba(255,255,255,.08);
  --red: #e31d2c;
  --red-bright: #ff3041;
  --white: #fbfbfb;
  --muted: #b8b8b8;
  --display: 'Barlow Condensed', Impact, sans-serif;
  --body: 'DM Sans', Arial, sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--black); }
body { margin:0; background:var(--black); color:var(--white); font-family:var(--body); line-height:1.55; }
a { color:inherit; text-decoration:none; }
img { max-width:100%; display:block; }
button { font:inherit; }
::selection { background:var(--red); color:var(--white); }

.utility { background:var(--red); min-height:36px; display:flex; align-items:center; color:white; font-size:.72rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.utility-inner { width:min(1220px, calc(100% - 44px)); margin:auto; display:flex; align-items:center; justify-content:space-between; gap:16px; }
.utility strong { white-space:nowrap; }
.utility-note { opacity:.9; }
.shell { width:min(1220px, calc(100% - 44px)); margin:0 auto; }

.site-header { position:sticky; top:0; z-index:40; background:#000; border-bottom:1px solid var(--soft-line); }
.header-inner { min-height:93px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.brand { width:198px; flex:0 0 auto; display:block; transition:transform .25s ease; }
.brand:hover { transform:translateY(-2px) scale(1.018); }
.brand img { width:100%; height:auto; }
.nav { display:flex; align-items:center; justify-content:flex-end; gap:19px; margin-left:auto; }
.nav-link, .nav-dropdown > summary { cursor:pointer; color:#e9e9e9; font-size:.74rem; text-transform:uppercase; letter-spacing:.12em; font-weight:700; list-style:none; white-space:nowrap; }
.nav-link:hover, .nav-link.active, .nav-dropdown[open] > summary { color:var(--red-bright); }
.nav > .nav-link, .nav-dropdown > summary { position:relative; }
.nav > .nav-link::after, .nav-dropdown > summary::before { content:''; position:absolute; left:0; right:0; bottom:-8px; height:2px; background:var(--red); transform:scaleX(0); transform-origin:left; transition:transform .25s ease; }
.nav > .nav-link:hover::after, .nav > .nav-link.active::after, .nav-dropdown[open] > summary::before { transform:scaleX(1); }
.nav-dropdown { position:relative; }
.nav-dropdown summary::-webkit-details-marker { display:none; }
.nav-dropdown summary::after { content:'+'; margin-left:7px; font-size:1.05em; color:var(--red); }
.nav-dropdown[open] summary::after { content:'−'; }
.dropdown-menu { position:absolute; right:0; top:calc(100% + 20px); min-width:245px; padding:10px; background:#111; border:1px solid var(--line); box-shadow:0 20px 50px rgba(0,0,0,.55); }
.dropdown-menu a { display:block; padding:11px 12px; color:#ddd; font-size:.8rem; font-weight:600; }
.dropdown-menu a:hover { background:var(--red); color:white; }
.header-socials { display:flex; align-items:center; gap:10px; margin-left:12px; padding-left:12px; border-left:1px solid rgba(255,255,255,.16); }
.header-social-link { display:grid; place-items:center; width:18px; height:18px; color:#f5f5f5; transition:transform .2s ease, color .2s ease; }
.header-social-link .social-icon { width:16px; height:16px; }
.header-social-link.instagram { color:#e4405f; }
.header-social-link.facebook { color:#1877f2; }
.header-social-link:hover { transform:translateY(-2px) scale(1.12); }
.menu-toggle { display:none; padding:8px 0; border:0; background:transparent; color:white; font-size:1.45rem; }

.hero { position:relative; min-height:656px; overflow:hidden; display:flex; align-items:stretch; border-bottom:1px solid var(--soft-line); }
.hero-media { position:absolute; inset:0; background:var(--black); }
.hero-media::after { content:none; }
.hero-content { position:relative; z-index:2; width:min(1220px, calc(100% - 44px)); margin:auto; padding:94px 0 84px; }
.eyebrow { display:flex; align-items:center; gap:10px; margin:0 0 18px; color:var(--red-bright); font-size:.74rem; font-weight:800; letter-spacing:.15em; text-transform:uppercase; }
.eyebrow::before { content:''; width:34px; height:2px; background:currentColor; }
h1, h2, h3 { font-family:var(--display); margin:0; line-height:.91; text-transform:uppercase; }
h1 { max-width:750px; font-size:clamp(4.3rem, 9.5vw, 8.5rem); letter-spacing:-.037em; }
h1 span, .accent { color:var(--red); }
.hero-copy { max-width:520px; margin:28px 0 0; color:#e0e0e0; font-size:1.04rem; line-height:1.7; }
.hero-actions, .button-row { display:flex; flex-wrap:wrap; gap:12px; margin-top:31px; }
.button { position:relative; isolation:isolate; overflow:hidden; display:inline-flex; align-items:center; justify-content:center; min-height:51px; padding:0 24px; border:1px solid transparent; border-radius:999px; background:var(--red); color:#fff; font-weight:800; font-size:.76rem; text-transform:uppercase; letter-spacing:.095em; transition:transform .2s, background .2s, border-color .2s, box-shadow .2s; }
.button::after { content:''; position:absolute; z-index:-1; top:0; bottom:0; left:-64%; width:42%; background:rgba(255,255,255,.22); transform:skewX(-25deg); transition:left .45s ease; }
.button:hover { transform:translateY(-3px); background:var(--red-bright); box-shadow:0 10px 22px rgba(227,29,44,.24); }
.button:hover::after { left:130%; }
.button-outline { border-color:rgba(255,255,255,.5); color:white; background:rgba(7,7,7,.25); }
.button-outline:hover { border-color:white; background:white; color:#111; }
.hero-stamp { position:absolute; right:0; bottom:0; padding:16px 22px; background:var(--red); font-family:var(--display); font-size:1.08rem; letter-spacing:.07em; text-transform:uppercase; }

.stat-strip { border-bottom:1px solid var(--soft-line); background:#0c0c0c; }
.stats { display:grid; grid-template-columns:repeat(3,1fr); }
.stat { padding:27px clamp(16px,4vw,48px); border-left:1px solid var(--soft-line); transition:background .25s ease; }
.stat:hover { background:rgba(255,255,255,.025); }
.stat:first-child { border-left:0; }
.stat-number { display:block; color:var(--red); font-family:var(--display); font-size:3.3rem; font-weight:800; line-height:.85; }
.stat-label { display:block; margin-top:8px; color:#dedede; font-size:.74rem; font-weight:800; letter-spacing:.11em; text-transform:uppercase; }

.section { padding:110px 0; }
.section-sm { padding:75px 0; }
.section-black { background:var(--black); }
.section-panel { background:var(--panel); }
.section-heading { max-width:770px; margin-bottom:46px; }
.kicker { color:var(--red); font-size:.74rem; font-weight:800; letter-spacing:.15em; text-transform:uppercase; }
h2 { margin-top:12px; font-size:clamp(3rem, 5.4vw, 5.4rem); letter-spacing:-.03em; }
.section-lead { max-width:630px; margin:20px 0 0; color:var(--muted); font-size:1rem; }

.feature-layout { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(310px,.95fr); gap:68px; align-items:center; }
.feature-copy p { color:var(--muted); margin:20px 0; }
.red-rule { width:68px; height:5px; margin:26px 0; background:var(--red); }
.priority-card { padding:35px; background:var(--red); position:relative; overflow:hidden; transition:transform .3s ease, box-shadow .3s ease; }
.priority-card:hover { transform:translateY(-5px); box-shadow:0 18px 38px rgba(0,0,0,.28); }
.priority-card::after { content:'24/7'; position:absolute; top:-31px; right:-13px; font:900 10rem/.8 var(--display); color:rgba(0,0,0,.1); }
.priority-card h3 { position:relative; z-index:1; font-size:3rem; }
.priority-card p { position:relative; z-index:1; max-width:380px; margin:15px 0 26px; font-weight:500; }
.priority-card .button { position:relative; z-index:1; background:#0a0a0a; }
.priority-card .button:hover { background:#fff; color:#111; }

.service-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
.service-card { min-height:280px; padding:30px; background:#111; position:relative; overflow:hidden; transition:background .25s, transform .25s, box-shadow .25s; }
.service-card::after { content:''; position:absolute; width:260px; height:260px; border-radius:50%; right:-165px; bottom:-190px; background:radial-gradient(circle, rgba(227,29,44,.24), transparent 70%); transform:scale(.65); opacity:0; transition:transform .45s ease, opacity .35s ease; pointer-events:none; }
.service-card:hover { background:#1d1d1d; transform:translateY(-5px); box-shadow:0 16px 28px rgba(0,0,0,.24); }
.service-card:hover::after { transform:scale(1); opacity:1; }
.service-number { color:var(--red); font-size:.72rem; font-weight:800; letter-spacing:.12em; }
.service-card h3 { margin:30px 0 15px; font-size:2.35rem; }
.service-card p { color:var(--muted); max-width:290px; font-size:.9rem; }
.card-arrow { position:absolute; right:27px; bottom:22px; color:var(--red); font-size:1.5rem; transition:transform .2s; }
.service-card:hover .card-arrow { transform:translateX(5px); }
.service-card.coming { background:#0d0d0d; }
.service-card.coming::before { content:'Service details coming soon'; position:absolute; inset:auto 0 0; padding:9px 15px; background:var(--red); font-size:.65rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }

.catalogue-route-wrap { max-width:100%; }
.catalogue-route-grid { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:1px; border:1px solid var(--line); background:var(--line); }
.catalogue-route { display:block; min-height:260px; padding:34px; background:#0f0f0f; transition:background .25s ease, transform .25s ease, box-shadow .25s ease; }
.catalogue-route:hover { background:#191919; transform:translateY(-5px); box-shadow:0 16px 28px rgba(0,0,0,.24); }
.catalogue-route--repair { background:linear-gradient(135deg,#250609,#111); }
.catalogue-route span, .catalog-number { display:block; color:var(--red); font-size:.7rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.catalogue-route h3 { margin:28px 0 13px; font-size:3rem; }
.catalogue-route p { max-width:440px; margin:0; color:var(--muted); font-size:.93rem; }
.catalogue-route b { display:block; margin-top:24px; color:#fff; font-size:.76rem; letter-spacing:.08em; text-transform:uppercase; }
.catalogue-route:hover b { color:var(--red-bright); }

.catalog-grid { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:1px; border:1px solid var(--line); background:var(--line); }
.catalog-card { min-height:238px; padding:28px; background:#101010; position:relative; overflow:hidden; transition:background .25s ease, transform .25s ease, box-shadow .25s ease; }
.catalog-card::after { content:''; position:absolute; right:-105px; bottom:-125px; width:220px; height:220px; border-radius:50%; background:radial-gradient(circle, rgba(227,29,44,.24), transparent 70%); opacity:0; transform:scale(.7); transition:opacity .3s ease, transform .4s ease; pointer-events:none; }
.catalog-card:hover { background:#1b1b1b; transform:translateY(-4px); box-shadow:0 14px 26px rgba(0,0,0,.24); }
.catalog-card:hover::after { opacity:1; transform:scale(1); }
.catalog-card--repair { background:#120d0e; }
.catalog-card--repair .catalog-number { color:#ff5360; }
.catalog-card h3 { position:relative; z-index:1; margin:25px 0 13px; font-size:2.3rem; }
.catalog-card p { position:relative; z-index:1; max-width:330px; margin:0; color:var(--muted); font-size:.88rem; line-height:1.62; }

.why-list { margin:0; padding:0; list-style:none; border-top:1px solid var(--line); }
.why-list li { display:grid; grid-template-columns:65px minmax(160px,.6fr) 1.4fr; gap:18px; align-items:center; padding:22px 0; border-bottom:1px solid var(--line); }
.why-list strong { color:var(--red); font:800 2.8rem var(--display); }
.why-list h3 { font-size:1.8rem; }
.why-list p { margin:0; color:var(--muted); font-size:.9rem; }

.coverage-band { background:#f4f4f1; color:#101010; padding:72px 0; }
.coverage-grid { display:grid; grid-template-columns:1.05fr .95fr; gap:55px; }
.coverage-band h2 { max-width:620px; }
.coverage-band .kicker { color:#bd1321; }
.coverage-band p { max-width:570px; color:#424242; }
.area-list { display:grid; grid-template-columns:repeat(2,1fr); gap:0; align-content:start; border-top:1px solid #cfcfcb; }
.area-list span { padding:12px 8px; border-bottom:1px solid #cfcfcb; font-size:.85rem; font-weight:700; }
.area-list span::before { content:'•'; color:var(--red); margin-right:8px; }
.coverage-area-list { grid-template-columns:repeat(3,1fr); }

.review-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.review { padding:31px; background:#181818; border-top:4px solid var(--red); transition:transform .25s ease, background .25s ease; }
.review:hover { transform:translateY(-5px); background:#202020; }
.review-mark { color:var(--red); font:900 5rem/.65 var(--display); }
.review p { color:#e2e2e2; min-height:84px; font-size:.96rem; }
.review footer { margin-top:22px; color:var(--muted); font-size:.72rem; letter-spacing:.09em; font-weight:700; text-transform:uppercase; }
.review footer span { display:block; color:var(--red); margin-top:4px; }

.cta-band { position:relative; overflow:hidden; padding:82px 0; background:var(--red); }
.cta-band::before { content:''; position:absolute; width:480px; height:480px; top:-330px; right:12%; border:1px solid rgba(255,255,255,.22); border-radius:50%; animation:orbitPulse 5.5s ease-in-out infinite; }
.cta-band .shell { position:relative; z-index:1; }
.cta-flex { display:flex; align-items:center; justify-content:space-between; gap:28px; }
.cta-band h2 { max-width:710px; font-size:clamp(3rem,5.5vw,5.35rem); }
.cta-band .button { flex:0 0 auto; background:#0a0a0a; }
.cta-band .button:hover { background:#fff; color:#111; }

.page-hero { position:relative; overflow:hidden; border-bottom:1px solid var(--soft-line); background:linear-gradient(125deg,#090909 12%,#171717 60%,#510811); background-size:160% 160%; animation:heroGradient 12s ease-in-out infinite; }
.page-hero::after { content:''; position:absolute; inset:0; background:repeating-linear-gradient(90deg, transparent 0, transparent 70px, rgba(255,255,255,.035) 71px, transparent 72px); opacity:.85; }
.page-hero .shell { position:relative; z-index:1; padding:105px 0 88px; }
.breadcrumb { display:flex; gap:9px; color:#bdbdbd; font-size:.71rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.breadcrumb a:hover { color:var(--red); }
.breadcrumb span { color:var(--red); }
.page-hero h1 { max-width:900px; margin-top:22px; font-size:clamp(4rem,8.2vw,7.2rem); }
.page-hero p { max-width:610px; margin:25px 0 0; color:#e0e0e0; font-size:1.05rem; }

.split-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
.info-card { padding:35px; background:#111; transition:transform .25s ease, background .25s ease; }
.info-card:hover { transform:translateY(-4px); background:#1a1a1a; }
.info-card h3 { font-size:2.3rem; }
.info-card p { color:var(--muted); }
.info-card ul { margin:22px 0 0; padding:0; list-style:none; color:#e6e6e6; font-size:.91rem; }
.info-card li { padding:7px 0 7px 19px; position:relative; }
.info-card li::before { content:'›'; position:absolute; left:0; color:var(--red); font-size:1.3em; line-height:1; }

.emergency-banner { display:flex; align-items:center; justify-content:space-between; gap:30px; padding:30px; border:1px solid var(--red); background:linear-gradient(95deg, #1a0709, #0f0f0f); }
.emergency-banner h3 { color:white; font-size:2.55rem; }
.emergency-banner p { max-width:510px; margin:6px 0 0; color:#c9c9c9; font-size:.9rem; }
.emergency-banner strong { color:var(--red-bright); font-size:.72rem; text-transform:uppercase; letter-spacing:.11em; }

.contact-layout { display:grid; grid-template-columns:.85fr 1.15fr; gap:55px; }
.contact-info { border-top:1px solid var(--line); }
.contact-row { display:flex; gap:18px; padding:21px 0; border-bottom:1px solid var(--line); }
.contact-row b { flex:0 0 96px; color:var(--red); font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; }
.contact-row span { color:#e1e1e1; font-size:.92rem; }
.contact-info a, .inline-call { color:var(--red-bright); font-weight:700; }
.contact-direct { padding:38px; background:#151515; border-top:4px solid var(--red); transition:transform .28s ease, box-shadow .28s ease; }
.contact-direct:hover { transform:translateY(-5px); box-shadow:0 18px 32px rgba(0,0,0,.25); }
.contact-direct h3 { font-size:3.2rem; }
.contact-direct > p:not(.kicker):not(.contact-note) { max-width:460px; margin:19px 0 0; color:#d0d0d0; }
.contact-direct .button-row { margin-top:29px; }
.contact-note { margin:22px 0 0; color:var(--muted); font-size:.8rem; }

.notice { padding:22px; border-left:4px solid var(--red); background:#151515; color:#d0d0d0; font-size:.9rem; }
.postcode-list { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:28px; }
.postcode { padding:18px; border:1px solid var(--line); background:#111; }
.postcode strong { display:block; color:var(--red); font:800 1.85rem var(--display); }
.postcode span { display:block; margin-top:3px; color:#c6c6c6; font-size:.78rem; font-weight:600; }

.site-footer { background:#050505; border-top:1px solid var(--soft-line); }
.footer-top { display:grid; grid-template-columns:1.2fr .8fr .9fr; gap:45px; padding:67px 0 44px; }
.footer-brand img { width:225px; }
.footer-brand p { max-width:360px; color:#a9a9a9; font-size:.87rem; }
.footer-col h3 { margin-bottom:18px; font-size:1.5rem; }
.footer-col a, .footer-col span { display:block; margin:8px 0; color:#bcbcbc; font-size:.83rem; }
.footer-col a:hover { color:var(--red); }
.social-links { display:flex; align-items:center; gap:10px; }
.social-link { display:grid !important; place-items:center; width:43px; height:43px; margin:0 !important; border:1px solid rgba(255,255,255,.26); border-radius:50%; color:#f5f5f5 !important; transition:transform .2s ease, color .2s ease, border-color .2s ease, background .2s ease; }
.social-link:hover { transform:translateY(-4px); background:#fff; }
.social-link.instagram:hover { border-color:#e4405f; color:#d62976 !important; }
.social-link.facebook:hover { border-color:#1877f2; color:#1877f2 !important; }
.social-icon { width:20px; height:20px; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.footer-bottom { display:flex; justify-content:space-between; gap:18px; padding:19px 0; border-top:1px solid var(--soft-line); color:#7f7f7f; font-size:.68rem; letter-spacing:.06em; text-transform:uppercase; }
.footer-meta { display:flex; align-items:center; gap:18px; }
.footer-social-links { gap:11px; }
.footer-social-links .social-link { width:18px; height:18px; border:0; border-radius:0; background:transparent !important; }
.footer-social-links .social-link.instagram { color:#e4405f !important; }
.footer-social-links .social-link.facebook { color:#1877f2 !important; }
.footer-social-links .social-link:hover { transform:translateY(-1px) scale(1.12); background:transparent !important; }
.footer-social-links .social-icon { width:18px; height:18px; }

.whatsapp-icon { width:21px; height:21px; flex:0 0 21px; fill:currentColor; }
.whatsapp-button { gap:8px; background:#25d366; color:#06140a; }
.whatsapp-button:hover { background:#36e278; color:#06140a; }
.priority-card .whatsapp-button { background:#25d366; color:#06140a; }
.priority-card .whatsapp-button:hover { background:#36e278; color:#06140a; }
.whatsapp-float { position:fixed; z-index:38; right:20px; bottom:20px; display:flex; align-items:center; gap:10px; min-height:50px; padding:0 19px; border:1px solid rgba(37,211,102,.7); border-radius:999px; background:#101010; box-shadow:0 14px 36px rgba(0,0,0,.42); color:#25d366; font-size:.72rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; transition:transform .2s, background .2s, color .2s; animation:whatsappPulse 2.8s ease-in-out infinite; }
.whatsapp-float:hover { background:#25d366; color:#06140a; transform:translateY(-2px); }

/* Motion system: JS adds reveal classes only when movement is allowed. */
html.motion-ready .reveal { opacity:0; transform:translateY(30px); transition:opacity .72s cubic-bezier(.2,.7,.2,1), transform .72s cubic-bezier(.2,.7,.2,1); }
html.motion-ready .reveal.reveal-left { transform:translateX(-34px); }
html.motion-ready .reveal.reveal-right { transform:translateX(34px); }
html.motion-ready .reveal.reveal-scale { transform:scale(.95); }
html.motion-ready .reveal.is-visible { opacity:1; transform:translate3d(0,0,0) scale(1); }
html.motion-ready .stagger-1 { transition-delay:.08s; }
html.motion-ready .stagger-2 { transition-delay:.16s; }
html.motion-ready .stagger-3 { transition-delay:.24s; }
.hero .eyebrow { animation:riseIn .65s .08s both cubic-bezier(.2,.7,.2,1); }
.hero h1 { animation:riseIn .78s .16s both cubic-bezier(.2,.7,.2,1); }
.hero-copy { animation:riseIn .72s .29s both cubic-bezier(.2,.7,.2,1); }
.hero-actions { animation:riseIn .68s .4s both cubic-bezier(.2,.7,.2,1); }
.hero-stamp { animation:stampIn .7s .55s both cubic-bezier(.2,.7,.2,1); }
.utility strong { animation:softPulse 2.7s ease-in-out infinite; }

@keyframes riseIn { from { opacity:0; transform:translateY(24px); } to { opacity:1; transform:translateY(0); } }
@keyframes stampIn { from { opacity:0; transform:translate(18px,18px); } to { opacity:1; transform:translate(0,0); } }
@keyframes softPulse { 0%,100% { opacity:1; } 50% { opacity:.72; } }
@keyframes whatsappPulse { 0%,100% { box-shadow:0 14px 36px rgba(0,0,0,.42); } 50% { box-shadow:0 14px 38px rgba(227,29,44,.32), 0 0 0 7px rgba(227,29,44,.08); } }
@keyframes heroGradient { 0%,100% { background-position:0% 50%; } 50% { background-position:100% 50%; } }
@keyframes orbitPulse { 0%,100% { transform:scale(.92); opacity:.25; } 50% { transform:scale(1.07); opacity:.55; } }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior:auto !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
}

@media (max-width: 900px) {
  .header-inner { min-height:76px; } .brand { width:161px; }
  .menu-toggle { display:block; }
  .nav { display:none; position:absolute; left:0; right:0; top:76px; padding:22px; background:#0b0b0b; border-bottom:1px solid var(--line); align-items:stretch; flex-direction:column; gap:18px; }
  .nav.open { display:flex; } .nav-dropdown { width:100%; } .dropdown-menu { position:static; margin-top:10px; min-width:0; }
  .header-socials { margin-left:auto; padding-left:0; border-left:0; gap:8px; }
  .header-social-link { width:22px; height:22px; }
  .header-social-link .social-icon { width:18px; height:18px; }
  .feature-layout, .coverage-grid, .contact-layout { grid-template-columns:1fr; gap:38px; }
  .service-grid, .review-grid, .catalog-grid { grid-template-columns:1fr 1fr; }
  .footer-top { grid-template-columns:1fr 1fr; }
  .footer-brand { grid-column:1/-1; }
  .hero { min-height:620px; } .hero-content { padding:78px 0 72px; }
}
@media (max-width: 600px) {
  .utility-inner, .shell, .hero-content { width:min(100% - 30px, 1220px); }
  .utility { font-size:.61rem; } .utility-note { display:none; }
  h1 { font-size:4rem; } .page-hero .shell { padding:75px 0 62px; } .page-hero h1 { font-size:3.8rem; }
  .section { padding:76px 0; } .section-sm { padding:54px 0; }
  .stats, .service-grid, .review-grid, .split-grid, .catalog-grid, .catalogue-route-grid { grid-template-columns:1fr; }
  .catalogue-route { min-height:220px; padding:29px; }
  .stat { border-left:0; border-top:1px solid var(--soft-line); } .stat:first-child { border-top:0; }
  .why-list li { grid-template-columns:54px 1fr; gap:10px; } .why-list p { grid-column:2; }
  .coverage-grid { gap:30px; }.area-list, .coverage-area-list { grid-template-columns:1fr; }
  .cta-flex, .emergency-banner, .footer-bottom { align-items:flex-start; flex-direction:column; }
  .footer-meta { gap:14px; }
  .postcode-list { grid-template-columns:1fr; }
  .footer-top { grid-template-columns:1fr; gap:28px; }.footer-brand { grid-column:auto; }
  .hero-stamp { font-size:.87rem; padding:12px 15px; }.whatsapp-float { right:14px; bottom:14px; }.whatsapp-float span { display:none; }
}
