:root{--navy:#102942;--blue:#196fa4;--purple:#78618b;--pale:#edf2f7;--ink:#132d43;--muted:#566675;--line:#d9e1e8}*{box-sizing:border-box}body{margin:0;font:16px/1.65 Arial,Helvetica,sans-serif;color:var(--ink)}a{color:inherit}a:focus-visible,summary:focus-visible{outline:3px solid #c98620;outline-offset:5px}h1,h2,h3{line-height:1.1;letter-spacing:-.04em;margin:0 0 22px}h1{font-size:clamp(42px,4.8vw,68px)}h2{font-size:clamp(32px,3.4vw,46px)}h3{font-size:22px}p{margin:0 0 20px}figure{margin:0}.wrap{width:min(1180px,calc(100% - 64px));margin:auto}.skip{position:absolute;top:-80px;background:#fff;padding:12px;z-index:99}.skip:focus{top:0}.topline{background:var(--navy);color:white;font-size:12px;padding:9px 0}.topline .wrap{display:flex;justify-content:space-between;gap:20px}.topline a{text-decoration:none}.header{display:flex;align-items:center;justify-content:space-between;min-height:126px;gap:30px}.logo{width:104px;height:104px;object-fit:contain;display:block}.header nav{display:flex;gap:30px;align-items:center;font-size:14px;font-weight:bold}.header nav a{text-decoration:none}.button{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:14px 23px;background:var(--blue);color:white;text-decoration:none;font-weight:bold;font-size:14px;border:1px solid transparent;border-radius:3px}.button:hover{background:var(--navy)}.button.small{min-height:45px;padding:10px 20px}.outline{background:transparent;color:var(--navy);border-color:#9caebb}.outline:hover{background:#dbe7f0}.hero{background:var(--pale);overflow:hidden}.hero-grid{display:grid;grid-template-columns:1.08fr 1fr;gap:64px;align-items:center;padding-top:44px;padding-bottom:44px}.hero-copy{padding-block:20px}.eyebrow{font-size:11px;font-weight:bold;letter-spacing:1.8px;color:var(--purple);margin-bottom:20px}h1 span{color:var(--blue)}.lead{font-size:19px;line-height:1.6;color:var(--muted);max-width:560px}.actions{display:flex;flex-wrap:wrap;gap:12px;margin:28px 0 19px}.hero-note{font-size:12px;color:var(--muted);margin:0}.hero-photo{position:relative;padding-bottom:0}.hero-photo img{display:block;width:100%;height:430px;object-fit:cover;object-position:center 52%;border-radius:4px}.hero-photo figcaption{padding:14px 18px;background:var(--navy);color:white;font-size:12px;border-radius:0 0 4px 4px}.hero-photo figcaption span{font-size:9px;letter-spacing:1.5px;color:#d8c8e8;display:block;margin-bottom:2px}.trust{border-bottom:1px solid var(--line);padding-block:22px}.trust .wrap{display:flex;justify-content:space-between;align-items:center;gap:25px;font-size:13px}.trust b{color:var(--navy)}.trust a{font-weight:bold;text-underline-offset:4px}.section{padding-block:72px}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:35px;margin-bottom:30px}.section-heading h2{margin:0}.section-heading>p{color:var(--muted);margin:0}.services{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line)}.service{text-decoration:none;padding:27px 24px 0 0;display:flex;flex-direction:column}.service+.service{padding-left:24px;border-left:1px solid var(--line)}.service:hover h3{color:var(--blue)}.index{font-size:12px;color:var(--purple);margin-bottom:28px}.service p{font-size:14px;color:var(--muted)}.service h3{min-height:48px}.service-link{margin-top:auto;color:var(--blue);font-size:12px;font-weight:bold}.work{background:#f7f8fa}.text-link{font-size:14px;font-weight:bold;color:var(--blue);text-underline-offset:5px}.gallery{display:grid;grid-template-columns:1.2fr .8fr 1fr;gap:20px}.gallery img{width:100%;height:300px;object-fit:cover;display:block;border-radius:3px}.gallery figure:first-child img{object-position:center 50%}.gallery figcaption{font-size:13px;margin-top:12px;font-weight:bold}.flush{background:var(--navy);color:white;padding-block:45px}.flush-inner{display:flex;align-items:center;justify-content:space-between;gap:50px}.flush-inner>div{max-width:720px}.flush .eyebrow{color:#d8c8e8}.flush h2{font-size:34px}.flush p:last-child{font-size:15px;color:#d7e1e8;margin-bottom:0}.flush .button{flex-shrink:0;background:white;color:var(--navy)}.booking{display:grid;grid-template-columns:1fr 1fr;gap:90px}.booking ol{list-style:none;counter-reset:steps;margin:0;padding:0}.booking li{position:relative;padding-left:55px;padding-bottom:22px;counter-increment:steps}.booking li:before{content:counter(steps);position:absolute;left:0;top:0;background:var(--pale);color:var(--blue);width:34px;height:34px;text-align:center;border-radius:50%;line-height:34px;font-weight:bold}.booking h3{font-size:19px;margin-bottom:8px}.booking li p{font-size:14px;color:var(--muted);margin:0}.area{background:var(--pale)}.area-grid{display:grid;grid-template-columns:1fr 1fr;gap:90px}.area-grid p:not(.eyebrow){color:var(--muted);max-width:460px}.area-links{display:flex;flex-direction:column;justify-content:center}.area-links a{padding:13px 0;border-bottom:1px solid #cdd9e2;font-size:14px;font-weight:bold;text-decoration:none}.area-links a:hover{color:var(--blue)}.faq{display:grid;grid-template-columns:.7fr 1.3fr;gap:70px}.faq details{border-bottom:1px solid var(--line)}.faq details:first-child{border-top:1px solid var(--line)}.faq summary{padding:19px 28px 19px 0;font-weight:bold;font-size:15px;cursor:pointer;list-style:none;position:relative}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:'+';position:absolute;right:0;color:var(--blue)}.faq details[open] summary:after{content:'−'}.faq details p{font-size:14px;color:var(--muted)}.contact{padding-block:50px;background:var(--navy);color:#fff}.contact>.wrap{display:flex;align-items:center;justify-content:space-between;gap:40px}.contact h2{margin-bottom:12px}.contact p{margin-bottom:0}.contact .eyebrow{color:#d8c8e8;margin-bottom:15px}.contact .actions{margin:0}.light{color:var(--navy);background:white}.light:hover{background:#dbe7f0}.white-outline{background:transparent;border-color:#8da1b1}.white-outline:hover{background:#294660}footer{background:#0b1f33;color:#d4dfe8;font-size:13px;padding:35px 0 22px}.footer-grid{display:flex;justify-content:space-between;gap:30px}.footer-grid strong{color:white;font-size:15px}.footer-grid p{margin-top:10px}.footer-grid>div:last-child{display:flex;flex-direction:column;gap:7px}.footer-grid a{text-decoration:none}.copyright{border-top:1px solid #2b4257;padding-top:18px;margin-top:15px;font-size:11px}.mobile-contact{display:none}section[id]{scroll-margin-top:25px}
@media(max-width:1000px){.header nav{gap:20px}.hero-grid{gap:30px}.hero-photo img{height:400px}.services{grid-template-columns:repeat(2,1fr);gap:30px 0}.service:nth-child(3){border-left:0;padding-left:0}.service h3{min-height:0}.booking,.area-grid,.faq{gap:40px}.trust .wrap{flex-wrap:wrap;gap:10px 30px}.flush-inner{gap:30px}.gallery img{height:240px}.contact>.wrap{display:block}.contact .actions{margin-top:25px}}
@media(max-width:640px){.wrap{width:calc(100% - 36px)}.topline{font-size:10px}.topline .wrap>span{display:none}.topline .wrap{justify-content:center}.header{min-height:104px;gap:15px}.logo{width:88px;height:88px}.header nav{gap:14px;flex-wrap:wrap;justify-content:flex-end;max-width:230px;font-size:11px}.header nav>a:nth-child(3){display:none}.header .button.small{padding:7px 12px;font-size:11px;min-height:34px}.hero-grid{grid-template-columns:1fr;padding-block:24px;gap:24px}.hero-copy{padding:0}h1{font-size:42px;margin-bottom:16px}.eyebrow{font-size:9px;letter-spacing:1.4px;margin-bottom:14px}.lead{font-size:16px;margin-bottom:0}.actions{margin:20px 0 12px;gap:10px}.hero .button{flex:1;padding:12px 9px;font-size:12px;min-height:46px}.hero-note{font-size:11px}.hero-photo img{height:245px;object-position:center 46%}.hero-photo figcaption{padding:10px 14px;font-size:11px}.hero-photo figcaption span{display:inline;margin-right:10px;font-size:8px}.trust{padding-block:18px}.trust .wrap{display:grid;grid-template-columns:1fr 1fr;font-size:11px;gap:12px 20px}.trust b{display:block}.trust a{grid-column:1/-1}.section{padding-block:45px}h2{font-size:32px}.section-heading{display:block;margin-bottom:25px}.section-heading>p,.section-heading>.text-link{display:block;margin-top:18px}.service{padding-right:16px;padding-top:22px}.service+.service{padding-left:16px}.service:nth-child(3){padding-left:0}.service h3{font-size:19px;min-height:42px;margin-bottom:14px}.service p{font-size:13px}.index{margin-bottom:18px}.service-link{font-size:11px}.gallery{grid-template-columns:1fr 1fr;gap:18px 12px}.gallery figure:first-child{grid-column:1/-1}.gallery img{height:200px}.gallery figure:first-child img{height:310px}.gallery figcaption{font-size:11px;margin-top:8px}.flush{padding-block:35px}.flush-inner{display:block}.flush h2{font-size:30px}.flush .button{margin-top:23px}.booking,.area-grid,.faq{grid-template-columns:1fr;gap:28px}.booking li:last-child{padding-bottom:0}.area-links a{font-size:13px}.faq h2{margin:0}.contact{padding-block:40px}.contact .actions{display:grid;grid-template-columns:1fr;gap:12px}.footer-grid{display:block}.footer-grid>div:last-child{margin-top:18px}footer{padding-bottom:100px}.mobile-contact{display:grid;grid-template-columns:1fr 1fr;position:fixed;bottom:0;left:0;right:0;background:white;border-top:1px solid #d1dce5;padding:10px 12px calc(10px + env(safe-area-inset-bottom));gap:10px;z-index:10;box-shadow:0 -3px 20px #10294212}.mobile-contact a{padding:10px;text-align:center;text-decoration:none;font-weight:bold;font-size:13px;border:1px solid var(--blue);color:var(--blue);border-radius:3px}.mobile-contact a:first-child{background:var(--blue);color:white}}
@media(max-width:360px){h1{font-size:36px}.header nav{gap:10px}.hero .actions{display:grid}.trust .wrap{grid-template-columns:1fr}.trust a{grid-column:auto}}
@media print{.mobile-contact,.topline,.header nav{display:none}.hero-grid,.booking,.area-grid,.faq{display:block}.hero-photo img{height:250px}.section{padding-block:25px}.contact,footer,.flush{background:white;color:black}a{color:black}.contact .eyebrow,.flush .eyebrow{color:black}footer{padding-bottom:20px}}
/* Service structure update: shared components on every page. */
.header{min-height:112px;gap:24px}.header .logo{width:100px;height:100px}.desktop-nav{display:flex!important;gap:19px!important;font-size:12px!important}.desktop-nav a[aria-current=page],.mobile-menu a[aria-current=page]{color:var(--blue);text-decoration:underline;text-underline-offset:5px}.mobile-menu{display:none}.footer-nav{display:grid;grid-template-columns:repeat(3,auto);gap:10px 25px}.footer-nav a{text-decoration:none}.inner-hero{padding:60px 0;background:var(--pale)}.inner-hero h1{max-width:850px;font-size:clamp(36px,4.5vw,60px)}.inner-hero .lead{max-width:720px}.intro{max-width:800px;font-size:19px;margin-bottom:35px}.services.three{grid-template-columns:repeat(3,1fr)}.service-grid{grid-template-columns:repeat(3,1fr);gap:35px 0}.service-grid .service{border:0;border-top:1px solid var(--line);padding:25px 30px 0 0}.service-grid h3{min-height:0}.advice{margin-top:35px;padding:25px 30px;border-left:3px solid var(--blue);background:var(--pale);font-size:14px;color:var(--muted)}.skyline-hero{position:relative;isolation:isolate;color:white;min-height:600px;display:flex;align-items:center;background:var(--navy)}.skyline-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:-2}.skyline-hero:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,29,49,.93),rgba(8,29,49,.68) 40%,rgba(8,29,49,.08) 80%);z-index:-1}.skyline-hero>.wrap{padding-block:60px}.skyline-copy{max-width:650px}.skyline-copy h1{font-size:clamp(52px,5.8vw,82px);letter-spacing:-.045em}.skyline-copy .lead{color:#fff;font-size:19px}.skyline-copy .eyebrow{color:#c9e9fb}.art-caption{position:absolute;right:15px;bottom:10px;font-size:9px;background:#102942b5;color:#fff;padding:3px 7px;border-radius:2px}.gallery-filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:18px}.gallery-filters button{font:inherit;font-size:14px;padding:10px 20px;border:1px solid var(--line);background:white;color:var(--navy);border-radius:3px;cursor:pointer}.gallery-filters button[aria-pressed=true]{background:var(--navy);color:white;border-color:var(--navy)}.gallery-filters button:focus-visible{outline:3px solid #c98620;outline-offset:3px}.project-gallery{grid-template-columns:repeat(3,1fr)}.project-gallery figure[hidden]{display:none}.project-gallery figure:first-child{grid-column:auto}.project-gallery img{height:360px}.gallery-status,.gallery-note{font-size:13px;color:var(--muted)}.gallery-note{margin-top:25px}.cwf-pf .pf-header,.cwf-pf .pf-footer{display:none}
@media(max-width:1200px){.desktop-nav{display:none!important}.mobile-menu{display:block;position:relative}.mobile-menu summary{cursor:pointer;padding:10px 18px;border:1px solid var(--line);font-size:14px;list-style:none}.mobile-menu summary::-webkit-details-marker{display:none}.mobile-menu summary:after{content:' +';color:var(--blue)}.mobile-menu[open] summary:after{content:' −'}.mobile-menu nav{position:absolute;right:0;top:48px;display:flex;flex-direction:column;align-items:stretch;gap:0;min-width:250px;background:#fff;border:1px solid var(--line);box-shadow:0 15px 30px #10294220;z-index:20;padding:8px;max-width:calc(100vw - 36px)}.mobile-menu nav a{display:block;padding:10px 15px;text-decoration:none;font-size:14px;color:var(--navy)}.mobile-menu nav a:hover{background:var(--pale)}}
@media(max-width:700px){.header{min-height:100px}.header .logo{width:88px;height:88px}.skyline-hero{min-height:580px;align-items:flex-start}.skyline-hero>.wrap{padding-block:36px 170px}.skyline-copy h1{font-size:50px;margin-bottom:20px}.skyline-copy .lead{font-size:16px}.skyline-hero>img{object-position:67% center}.skyline-hero:after{background:linear-gradient(180deg,rgba(8,29,49,.9),rgba(8,29,49,.68) 55%,rgba(8,29,49,.05))}.skyline-copy .actions{display:flex;align-items:stretch;flex-wrap:wrap}.skyline-copy .button{font-size:13px;padding:12px 17px}.services.three,.service-grid{grid-template-columns:repeat(2,1fr)}.services.three .service{border-left:0;padding:22px 15px 0 0}.service-grid .service{padding-right:18px}.service-grid h3{min-height:0}.service-grid p{font-size:14px}.inner-hero{padding-block:40px}.intro{font-size:16px}.footer-nav{grid-template-columns:repeat(2,1fr);margin-top:20px}.project-gallery{grid-template-columns:1fr 1fr}.project-gallery img{height:240px}.advice{padding:20px}.project-gallery figure:first-child img{height:240px}}
@media(max-width:400px){.services.three,.service-grid{grid-template-columns:1fr}.service-grid .service{padding-right:0}.project-gallery{grid-template-columns:1fr}.skyline-copy h1{font-size:46px}.skyline-copy .actions{display:grid}.skyline-hero{min-height:650px}}

/* Optional analytics controls */
.cookie-banner{position:fixed;z-index:50;bottom:20px;left:20px;right:20px;max-width:980px;margin:auto;background:#fff;color:#102942;border:1px solid #bacddb;border-radius:8px;box-shadow:0 6px 35px #10294238;padding:22px;display:flex;gap:24px;align-items:center}
.cookie-banner strong{font-size:18px}.cookie-banner p{font-size:14px;line-height:1.5;margin:7px 0}.cookie-banner a{font-size:13px;text-underline-offset:3px}
.cookie-actions{display:flex;gap:10px;flex-shrink:0;flex-direction:column}.cookie-actions button{background:#102942;color:white;border:1px solid #102942;border-radius:3px;padding:11px 18px;min-height:44px;font-weight:bold;cursor:pointer;font-size:14px}
.cookie-settings{background:transparent;color:inherit;border:0;text-decoration:underline;font:inherit;cursor:pointer;padding:0;min-height:32px;text-align:left}
@media(max-width:760px){.cookie-banner{bottom:86px;left:12px;right:12px;display:block;padding:17px;max-height:calc(100dvh - 110px);overflow:auto}.cookie-actions{flex-direction:row;margin-top:13px}.cookie-actions button{flex:1;padding:10px;font-size:13px}.cookie-banner strong{font-size:16px}.cookie-banner p{font-size:13px}}


/* Shared navigation, consent and contact layout across existing and new pages. */
[hidden]{display:none!important}
.header .mobile-menu nav a{display:block}
.header .mobile-menu nav>a:nth-child(3){display:block}
.header .mobile-menu nav{max-height:calc(100dvh - 170px);overflow-y:auto}
footer .footer-grid{display:flex;justify-content:space-between;gap:36px}
footer .footer-nav{display:grid;grid-template-columns:repeat(3,auto);gap:10px 25px}
footer .footer-nav a{margin:0}
.footer-bottom{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:15px}
button:focus-visible{outline:3px solid #c98620;outline-offset:4px}
.cookie-banner{bottom:92px;max-height:calc(100dvh - 115px);overflow:auto}
@media(max-width:700px){footer .footer-grid{display:block}footer .footer-nav{grid-template-columns:repeat(2,1fr)}
/* Keep contact actions in the document flow so the hosting badge cannot cover them. */
.mobile-contact{position:static;display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:18px 18px 100px;box-shadow:none}
footer{padding-bottom:30px}.cookie-banner{bottom:95px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
footer .footer-grid>div>a{display:block;width:fit-content;margin-top:8px}

/* Soft slate palette and open service descriptions shared by every page. */
@media screen {
  :root {
    --page-bg:#3D566A;
    --section-bg:#354D61;
    --navy:#354D61;
    --panel-bg:#415E74;
    --panel-on-deeper:#415E74;
    --pale:var(--section-bg);
    --light:var(--section-bg);
    --ink:#DFE6EB;
    --heading:#EDF1F4;
    --blue:#B0DDF4;
    --muted:#DFE6EB;
    --purple:#B0DDF4;
    --line:#7890A2;
  }
  body { background:var(--page-bg); color:var(--ink); color-scheme:dark; }
  header { background:var(--page-bg); }
  /* Let the supplied transparent CWF artwork blend into the site background. */
  .logo, .header > a[aria-label="CWF home"] { background:transparent; }
  main > .section,
  main > .pf-section { --surface:var(--panel-bg); background:var(--page-bg); }
  main > .section:nth-of-type(2n + 1),
  main > .pf-section:nth-of-type(2n + 1),
  .work, .area, main > .section.tint, main > .section.coverage, .trust {
    --surface:var(--panel-on-deeper);
    background:var(--section-bg);
  }
  .page-hero, .inner-hero { background:var(--section-bg); }
  /* Extend colour to the page edges while retaining existing content widths. */
  main > .section.wrap,
  main > .pf-section.pf-wrap {
    box-shadow:0 0 0 100vmax var(--page-bg);
    clip-path:inset(0 -100vmax);
  }
  main > .section.wrap:nth-of-type(2n + 1),
  main > .pf-section.pf-wrap:nth-of-type(2n + 1) {
    box-shadow:0 0 0 100vmax var(--section-bg);
  }
  .review-panel, .form-panel, .map-panel, .notice {
    background:var(--surface,var(--panel-bg));
    border-color:var(--line);
  }

  .cookie-banner, .mobile-menu nav, .mobile-contact, .sticky-call,
  .skip, .menu-toggle { background:var(--panel-bg); border-color:var(--line); }
  .gallery-filters button { background:var(--panel-bg); }
  .gallery-filters button[aria-pressed=true] { background:var(--navy); }
  input, select, textarea { background:var(--panel-bg); }
  .text-link, .service-link, .gallery-note a, .area-links a:hover, .cwf-boiler-brands a { color:var(--blue); }
  .booking li:before { background:var(--section-bg); }
  .service p, .service-card p, .gallery-status, .gallery-note,
  .cwf-boiler-brand-card p, .cwf-boiler-other-makes p { color:var(--muted); }
  h1, h1 span, h1 em, h2, h3, h4, summary, .trust b, .cookie-banner strong { color:var(--heading); }
  main a:not(.button):not(.service), .desktop-nav a:not(.button),
  .header .mobile-menu nav a, .footer-nav a, footer a,
  .text-link, .service-link, .stars, .index, .eyebrow { color:var(--blue); }
  .lead, .small, .subtle, .hero-note, .advice, .notice,
  .cookie-banner, .confidence, .confidence-label,
  .map-panel figcaption, .footer-bottom, footer { color:var(--ink); }
  .confidence { background:var(--section-bg); }
  .confidence-icon { background:var(--panel-bg); color:var(--blue); }
  .button, .button.light, .button.white, .cta-band .button, .flush .button,
  .cookie-actions button, .mobile-contact a:first-child {
    background:var(--blue); color:var(--section-bg); border-color:var(--blue);
  }
  .desktop-nav a.button[aria-current=page] { color:var(--section-bg); }
  .button:hover, .button.light:hover, .button.white:hover, .cta-band .button:hover,
  .flush .button:hover, .cookie-actions button:hover { background:#B6E5FC; color:var(--section-bg); }
  .button.outline, .button.secondary, .button.white-outline,
  .gallery-filters button, .mobile-contact a, .menu-toggle {
    background:var(--panel-bg); color:var(--blue); border-color:var(--line);
  }
  .button.outline:hover, .button.secondary:hover, .button.white-outline:hover,
  .gallery-filters button:hover, .mobile-contact a:hover,
  .mobile-menu nav a:hover { background:#35546D; color:var(--heading); }
  .gallery-filters button[aria-pressed=true] {
    background:var(--blue); color:var(--section-bg); border-color:var(--blue);
  }
  .gallery figcaption, .gallery-item figcaption, .newbuild-photo-grid figcaption,
  .hero-photo figcaption { color:var(--heading); }
  .gallery-slot, .project-grid .gallery-item img, .gallery-item img {
    background:var(--panel-bg); color:var(--ink); border-color:var(--line);
  }
  input, select, textarea { color:var(--heading); border-color:#7C96AA; }
  input::placeholder, textarea::placeholder { color:var(--ink); opacity:1; }
  input:autofill { box-shadow:inset 0 0 0 100px var(--panel-bg); -webkit-text-fill-color:var(--heading); }
  .booking li:before { background:var(--panel-bg); color:var(--blue); }
  .skip, .sticky-call, .mobile-menu summary { color:var(--heading); }
  a:focus-visible, button:focus-visible, summary:focus-visible,
  input:focus-visible, select:focus-visible, textarea:focus-visible {
    outline-color:var(--blue);
  }

  /* Keep service copy in the section flow, with space instead of card chrome. */
  .services, .services.services-four, .service-grid {
    border:0; column-gap:40px; row-gap:36px;
  }
  .services .service, .service-grid .service,
  .service-card, .service-card:hover {
    background:none; border:0; border-radius:0; box-shadow:none;
    padding:0; min-height:0;
  }
  .services .service h3, .service-grid .service h3 { min-height:0; }
  .service p, .service-card p { max-width:60ch; }
  .service-card .number { margin-bottom:16px; }
  .service-link, .text-link { text-underline-offset:5px; }
  .service:hover .service-link, .service:focus-visible .service-link { text-decoration:underline; }
  .advice, .local-brief {
    background:none; border:0; border-top:1px solid var(--line);
    border-radius:0; box-shadow:none; padding:24px 0 0;
  }
  h1, .inner-hero h1, .page-hero h1, .emergency-hero h1 {
    font-size:clamp(32px,3.5vw,48px); font-weight:500;
    line-height:1.2; letter-spacing:-.025em;
  }
  .skyline-copy h1 { font-size:clamp(40px,4.5vw,60px); font-weight:500; line-height:1.15; }
  h2, .section h2, .flush h2, .cta-band h2 {
    font-size:clamp(26px,2.6vw,36px); font-weight:500;
    line-height:1.25; letter-spacing:-.025em;
  }
  h3, .service h3, .service-card h3 { font-size:21px; font-weight:500; line-height:1.3; letter-spacing:-.015em; }
  summary, .faq summary { font-weight:500; }
  .emergency-hero .eyebrow { color:var(--blue); }
  .skyline-copy .lead, .contact p, .flush p:last-child,
  .emergency-hero .lead, .emergency-note, .footer-grid p { color:var(--ink); }
  footer { background:#2C4355; }
  .footer-grid strong, .hero-panel .panel-number { color:var(--heading); }
  @media(max-width:700px) {
    .services, .services.three, .service-grid { grid-template-columns:1fr; row-gap:32px; }
    .services .service, .service-grid .service { padding:0; }
    .service p { margin-bottom:16px; }
  }

}

/* Compact brand marks in the existing homepage trust strip. */
.trust .trust-registration, .trust a.trust-review {
  display:flex; align-items:center; gap:10px;
}
.trust .trust-gas-logo {
  display:block; width:52px; height:52px; flex-shrink:0;
  object-fit:contain; background:#fff; border-radius:3px;
}
.trust .trust-google-backing {
  display:grid; place-items:center; width:34px; height:34px;
  flex-shrink:0; background:#fff; border-radius:4px;
}
.trust .trust-google-logo { display:block; width:24px; height:auto; object-fit:contain; }
.trust .trust-review-copy { display:grid; gap:2px; }
.trust .trust-stars { color:var(--blue); letter-spacing:2px; line-height:1; font-size:15px; }
@media(max-width:700px) {
  .trust .wrap { display:flex; flex-wrap:wrap; gap:16px 28px; font-size:12px; }
  .trust .wrap > span, .trust a.trust-review { flex:0 1 auto; }
  .trust .trust-registration b { display:inline; }
}

/* Compact, unboxed emergency help immediately after the homepage trust strip. */
.home-emergency { padding:32px 0; border-bottom:1px solid var(--line); }
.home-emergency > .wrap { display:flex; align-items:center; justify-content:space-between; gap:24px; }
.home-emergency h2 { font-size:clamp(24px,2.3vw,32px); margin-bottom:12px; }
.home-emergency p { margin-bottom:8px; }
.home-emergency .small { margin:0; }
.emergency-actions { display:flex; flex-direction:column; align-items:flex-start; gap:12px; flex-shrink:0; }
.boiler-copy > p, .boiler-copy > ul { max-width:78ch; }
.boiler-copy h3 { margin-top:28px; }
.boiler-copy li { margin-bottom:10px; }
.boiler-related p { max-width:82ch; }
.breadcrumbs { font-size:12px; margin-bottom:22px; color:var(--ink); }
@media(max-width:900px) { .home-emergency > .wrap { align-items:flex-start; flex-direction:column; } }
/* Preserve the skyline's original cover crop and overlay with responsive sources. */
.skyline-hero > .skyline-picture { position:absolute; inset:0; z-index:-2; }
.skyline-picture img { display:block; width:100%; height:100%; object-fit:cover; object-position:center; }
@media(max-width:700px) { .skyline-picture img { object-position:67% center; } }

/* One open trust row in the shared footer; original brand artwork stays intact. */
footer .footer-trust {
  display:flex; flex-wrap:wrap; gap:20px 28px; list-style:none;
  margin-block:0 30px; padding:0 0 26px; border-bottom:1px solid var(--line);
  font-size:13px; line-height:1.5; color:var(--ink);
}
.footer-trust > li { display:flex; align-items:center; gap:10px; flex:1 1 235px; min-width:0; }
.footer-trust img { display:block; flex-shrink:0; object-fit:contain; }
.footer-trust .footer-gas-logo { width:44px; height:44px; }
.footer-trust .footer-vaillant-logo { width:100px; height:auto; }
footer .footer-review { display:flex; align-items:center; gap:10px; text-decoration:none; }
.footer-google-backing { display:grid; place-items:center; width:32px; height:32px; flex-shrink:0; background:#fff; border-radius:3px; }
.footer-google-backing img { width:24px; height:auto; }
.footer-review-copy { display:grid; gap:3px; }
.footer-review-copy > span:last-child { text-decoration:underline; text-underline-offset:4px; }
.footer-stars { color:var(--blue); letter-spacing:2px; line-height:1; }
@media(max-width:600px) {
  footer .footer-trust { gap:20px; }
  .footer-trust > li { flex-basis:100%; }
}

/* Fixed mobile contact access with room for content and iOS safe areas. */
.review-snapshot { display:block; font-size:11px; line-height:1.5; font-weight:normal; }
.emergency-actions { flex-shrink:1; }
.emergency-actions .button { max-width:100%; text-align:center; }
@media screen and (max-width:760px) {
  body { padding-bottom:calc(88px + env(safe-area-inset-bottom, 0px)); }
  .mobile-contact {
    position:fixed; inset:auto 0 0; z-index:40; display:grid;
    grid-template-columns:minmax(0, 1fr) auto; gap:8px;
    padding:10px 12px calc(10px + env(safe-area-inset-bottom, 0px));
    background:var(--panel-bg, #354D61); border-top:1px solid var(--line);
    box-shadow:0 -3px 16px #10294226;
  }
  .mobile-contact a { min-height:48px; display:flex; align-items:center; justify-content:center; gap:7px; padding:8px; font-size:13px; line-height:1.4; }
  .mobile-contact svg { flex-shrink:0; }
  .mobile-contact a:first-child { background:var(--blue); color:var(--section-bg); border-color:var(--blue); }
  .cookie-banner { bottom:calc(88px + env(safe-area-inset-bottom, 0px)); max-height:calc(100dvh - 115px - env(safe-area-inset-bottom, 0px)); }
}
@media screen and (max-width:360px) {
  .mobile-contact { grid-template-columns:minmax(0, 1fr); }
  .mobile-contact > a:last-child { display:none; }
  .mobile-contact a { font-size:14px; }
}

/* Additional Services entry uses the existing brand palette and native disclosure. */
.services-menu{position:relative}
.services-menu>summary{cursor:pointer;white-space:nowrap;padding:10px 0}
.services-menu-links{position:absolute;top:100%;right:0;z-index:25;min-width:260px;padding:10px;background:var(--panel-bg,#415E74);border:1px solid var(--line);box-shadow:0 12px 25px #10294226}
.services-menu-links a{display:block;padding:12px;line-height:1.5}
.services-menu-links a:hover{background:var(--navy)}
.header .mobile-menu .services-menu{margin:0 15px}
.header .mobile-menu .services-menu>summary{padding:10px 0;font-size:14px}
.header .mobile-menu .services-menu-links{position:static;min-width:0;border:0;box-shadow:none;padding:0}
.header .mobile-menu .services-menu-links a{white-space:normal;padding:10px 12px}
