/* Underfloor Heating London owner-review layout. Shared PEP shell files are unchanged. */
.ufh{--ufh-green:#061711;--ufh-deep:#0b251b;--ufh-mid:#173d2d;--ufh-copper:#bc835d;--ufh-paper:#fbfaf7;--ufh-cream:#f2eee7;background:var(--ufh-paper);color:var(--text,#17221d);line-height:1.72}
.ufh-shell{width:min(calc(100% - 7rem),1280px);margin-inline:auto}.ufh-pad{padding-block:clamp(4.5rem,7vw,7.5rem)}
.ufh h1,.ufh h2,.ufh h3{font-family:var(--serif,"Sora",serif);font-weight:400;letter-spacing:-.045em}.ufh h2{font-size:clamp(2.3rem,3.8vw,4rem);line-height:1.07;margin:0 0 1.4rem}.ufh h3{font-size:1.55rem;line-height:1.16;margin:.75rem 0 1rem}.ufh p{margin:0 0 1.15rem}.ufh p:last-child{margin-bottom:0}.ufh p a{color:inherit;text-decoration:underline;text-underline-offset:5px;text-decoration-color:var(--ufh-copper)}.ufh p a:hover{color:#8d5a39}.ufh section[id]{scroll-margin-top:95px}
.ufh .eyebrow{font-size:.64rem;line-height:1.5;letter-spacing:.16em;text-transform:uppercase;font-weight:700;margin-bottom:1rem}.ufh .eyebrow--light{color:#f1d0b6}.ufh .eyebrow--copper{color:#e3a87f}.ufh .lead{font-family:var(--serif,"Sora",serif);font-size:clamp(1.25rem,1.8vw,1.62rem);line-height:1.48;color:#243b30}.ufh-skip{position:absolute;top:-5rem;left:1rem;z-index:1100;background:white;color:#061711;padding:1rem}.ufh-skip:focus{top:1rem}
.ufh-hero{position:relative;background:var(--ufh-green);color:white}.ufh-hero__visual{position:relative;z-index:0;aspect-ratio:1672/941}.ufh-hero__visual img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}.ufh-hero__shade{position:absolute;inset:0;background:linear-gradient(0deg,rgba(6,23,17,.55),transparent 55%);pointer-events:none}.ufh-hero__content{position:relative;z-index:1;padding-block:2.7rem}.ufh-hero h1{font-size:clamp(2.7rem,5.2vw,5.8rem);line-height:.97;color:white;margin:0 0 1.2rem;max-width:760px}.ufh-hero__copy{max-width:880px}.ufh-hero__line{font-family:var(--serif,"Sora",serif);font-size:clamp(1.28rem,2vw,1.85rem);line-height:1.35;color:#f2d8c5}.ufh-hero__line em{font-style:normal;color:white}.ufh-hero__copy>p:not(.eyebrow):not(.ufh-hero__line){color:#e7eee9;max-width:780px}.ufh-actions{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.4rem;margin-top:1.8rem}.ufh .button{display:inline-flex;align-items:center;justify-content:center;gap:.7rem;min-height:3.55rem;padding:1rem 1.35rem;font-size:.68rem;letter-spacing:.055em;text-transform:uppercase;font-weight:700}.ufh .button--copper{background:var(--ufh-copper);border-color:var(--ufh-copper);color:#071a12}.ufh .button--copper:hover{background:#d49a70;border-color:#d49a70}.ufh .button--ghost{border:1px solid #ffffff69;color:white}.ufh .button--ghost:hover{border-color:white;background:#ffffff0f}.ufh-hero__facts{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid #ffffff35;margin-top:2.4rem}.ufh-hero__facts div{display:flex;gap:1rem;align-items:center;padding:1.3rem 1.2rem 0 0}.ufh-hero__facts div+div{border-left:1px solid #ffffff35;padding-left:1.2rem}.ufh-hero__facts strong{font-size:.78rem;color:#e3a87f}.ufh-hero__facts span{font-size:.76rem;color:#e7eee9;line-height:1.4}
.ufh-credentials{background:var(--ufh-cream);border-bottom:1px solid #ded9d0}.ufh-credentials__inner{display:grid;grid-template-columns:1.3fr 1fr 1.35fr .65fr;align-items:center}.ufh-credentials__inner>*{min-height:100px;padding:1.3rem 1.5rem;border-right:1px solid #ded9d0;display:flex;align-items:center}.ufh-credentials__inner>*:first-child{padding-left:0}.ufh-credentials__inner>*:last-child{border:0;padding-right:0}.ufh-partner{display:grid!important;grid-template-columns:auto auto 1fr;gap:.15rem .65rem;align-content:center}.ufh-partner span{font-weight:800;font-size:1.15rem;color:var(--ufh-mid)}.ufh-partner i{color:var(--ufh-copper);font-style:normal}.ufh-partner strong{font-family:var(--serif,"Sora",serif);font-size:1.05rem}.ufh-partner small{grid-column:1/-1;color:#5b6a63}.ufh-credential{gap:1rem;font-size:.73rem}.ufh-credential img{flex:0 0 auto;object-fit:contain}.ufh-credential span{display:grid;line-height:1.5}.ufh-credential small{font-size:.56rem;text-transform:uppercase;letter-spacing:.11em;color:#68736e}.ufh-years{gap:.8rem}.ufh-years strong{font-family:var(--serif,"Sora",serif);font-size:2.4rem;color:var(--ufh-mid)}.ufh-years span{font-size:.69rem;line-height:1.45}
.ufh-chapters{display:flex;flex-wrap:wrap;justify-content:center;gap:1rem 1.8rem;padding:1.25rem 1.5rem;border-bottom:1px solid #ded9d0;background:#fff;font-size:.72rem;font-weight:700}.ufh-chapters>span{font-size:.56rem;text-transform:uppercase;letter-spacing:.13em;color:#6b756f}.ufh-chapters a:hover{color:var(--ufh-copper)}
.ufh-intro__grid,.ufh-accountability__grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(3rem,7vw,7rem);align-items:start}.ufh-intro h2,.ufh-accountability h2{max-width:650px}.ufh-prose{color:#59655f}.ufh-rule{display:grid;grid-template-columns:repeat(3,1fr);margin-top:2.2rem;border-top:1px solid #d9d6cf;border-bottom:1px solid #d9d6cf}.ufh-rule span{padding:1rem 1rem 1rem 0;font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.ufh-rule span+span{border-left:1px solid #d9d6cf;padding-left:1rem}
.ufh-wunda{background:var(--ufh-green);color:#e5ede8;padding-block:clamp(4.5rem,7vw,7rem)}.ufh-wunda__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(3rem,8vw,8rem)}.ufh-wunda h2{color:white}.ufh-wunda__intro>p:not(.eyebrow){color:#cbd8d0}.ufh-package{border-top:1px solid #ffffff32}.ufh-package div{display:grid;grid-template-columns:45px 1fr;gap:.25rem 1rem;padding:1.15rem 0;border-bottom:1px solid #ffffff32}.ufh-package span{grid-row:1/3;color:#d89b70;font-size:.68rem}.ufh-package strong{font-family:var(--serif,"Sora",serif);font-weight:500;color:white}.ufh-package small{grid-column:2;color:#aabbb0}
.ufh-heading{display:grid;grid-template-columns:1.15fr .85fr;gap:4rem;align-items:end;margin-bottom:3rem}.ufh-heading>p{color:#637069;max-width:520px;padding-bottom:.45rem}.ufh-heading h2{margin-bottom:0}.ufh-heading--light h2{color:white}.ufh-heading--light>p{color:#c7d3cc}
.ufh-system-grid{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid #d9d6cf;border-left:1px solid #d9d6cf}.ufh-system-grid article{padding:2.1rem;border-right:1px solid #d9d6cf;border-bottom:1px solid #d9d6cf}.ufh-system-grid article>span{font-size:.62rem;text-transform:uppercase;letter-spacing:.12em;color:#977052;font-weight:700}.ufh-system-grid article>p{color:#5b6861}.ufh-system-grid ul{list-style:none;padding:0;margin:1.3rem 0 0;display:flex;gap:.5rem;flex-wrap:wrap}.ufh-system-grid li{font-size:.68rem;padding:.45rem .65rem;background:var(--ufh-cream);border-radius:2px}
.ufh-comparison{background:var(--ufh-deep);color:white;padding-block:clamp(4.5rem,7vw,7rem)}.ufh-compare-table{border-top:1px solid #ffffff36}.ufh-compare-table>div{display:grid;grid-template-columns:.55fr 1fr 1fr;gap:2rem;border-bottom:1px solid #ffffff36;padding:1.05rem 0}.ufh-compare-table__head{color:#e5ad86;font-size:.66rem;text-transform:uppercase;letter-spacing:.1em}.ufh-compare-table span{font-size:.7rem;color:#aabbb0}.ufh-compare-table p{margin:0;color:#e4ebe7}
.ufh-photo-story,.ufh-electric{padding-block:clamp(4.2rem,7vw,7rem)}.ufh-photo-story--cream{background:var(--ufh-cream)}.ufh-photo-story--dark{background:#0b251b;color:#e7eee9}.ufh-photo{position:relative;margin:0;background:var(--ufh-green);color:white}.ufh-photo__visual{position:relative;aspect-ratio:1672/941}.ufh-photo__visual img{display:block;width:100%;height:100%;object-fit:cover}.ufh-photo__shade{position:absolute;inset:0;background:linear-gradient(0deg,rgba(6,23,17,.86),transparent 58%)}.ufh-photo figcaption{padding:1.8rem}.ufh-photo figcaption>span{display:block;font-size:.62rem;text-transform:uppercase;letter-spacing:.13em;color:#e3a87f;margin-bottom:.8rem}.ufh-photo figcaption h2{font-size:clamp(2rem,3.1vw,3.15rem);color:white;max-width:700px}.ufh-photo figcaption p{color:#e4ebe7;max-width:720px}.ufh-photo-notes{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,7vw,6rem);padding:2.3rem 0 0;color:#5b6861}.ufh-photo-story--dark .ufh-photo-notes{color:#cbd7d0}.ufh-photo-story--dark .ufh-photo-notes a{color:white}
.ufh-steps{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid #d9d6cf;border-left:1px solid #d9d6cf}.ufh-steps article{padding:1.7rem;border-right:1px solid #d9d6cf;border-bottom:1px solid #d9d6cf;min-height:235px}.ufh-steps span{color:var(--ufh-copper);font-size:.7rem;font-weight:800}.ufh-steps h3{font-size:1.25rem}.ufh-steps p{font-size:.88rem;color:#5e6a64}
.ufh-accountability{background:var(--ufh-cream)}.ufh-value{background:var(--ufh-green);color:#dfe8e2;padding-block:clamp(4rem,6vw,6rem)}.ufh-value__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(3rem,8vw,8rem)}.ufh-value h2{color:white}.ufh-value__grid>div:last-child{color:#cbd7d0}.ufh-arrow-link{display:inline-flex;gap:.7rem;align-items:center;margin-top:1.1rem;color:#efb389!important;text-decoration:none!important;font-size:.76rem;text-transform:uppercase;letter-spacing:.07em;font-weight:700}
.ufh-london__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(3rem,7vw,7rem)}.ufh-london__grid>div:first-child>p:last-child{color:#5b6861}.ufh-areas{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #d9d6cf;border-left:1px solid #d9d6cf}.ufh-areas span{padding:1rem;border-right:1px solid #d9d6cf;border-bottom:1px solid #d9d6cf;font-size:.79rem}
.ufh-services{background:var(--ufh-cream);padding-block:clamp(4.5rem,7vw,7.5rem)}.ufh-service-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #d4d0c8;border-left:1px solid #d4d0c8}.ufh-service-grid>a{padding:1.8rem;border-right:1px solid #d4d0c8;border-bottom:1px solid #d4d0c8;min-height:245px;display:flex;flex-direction:column;transition:background .2s,color .2s}.ufh-service-grid>a:hover{background:var(--ufh-green);color:white}.ufh-service-grid span{font-size:.63rem;color:#9d6f4e}.ufh-service-grid h3{font-size:1.35rem}.ufh-service-grid p{font-size:.88rem;color:#59655f}.ufh-service-grid>a:hover p{color:#cdd8d1}.ufh-service-grid b{font-size:.65rem;text-transform:uppercase;letter-spacing:.08em;margin-top:auto;color:#9d6f4e}
.ufh-faq__grid{display:grid;grid-template-columns:.72fr 1.28fr;gap:clamp(3rem,8vw,8rem);align-items:start}.ufh-faq__grid>div:first-child{position:sticky;top:110px}.ufh-faq__grid>div:first-child>p:not(.eyebrow){color:#59655f}.ufh-phone{display:inline-block;margin-top:1.1rem;font-family:var(--serif,"Sora",serif);font-size:1.55rem;color:var(--ufh-mid)}.ufh .faq-list details{border-bottom:1px solid #d9d6cf;padding:1.15rem 0}.ufh .faq-list summary{cursor:pointer;display:grid;grid-template-columns:48px 1fr;gap:.8rem;font-family:var(--serif,"Sora",serif);font-size:1.15rem;line-height:1.4}.ufh .faq-list summary span{font-family:var(--sans,"Manrope",sans-serif);font-size:.65rem;color:#9d6f4e;padding-top:.35rem}.ufh .faq-list details p{padding:.9rem 0 0 56px;color:#5d6963;font-size:.93rem}.ufh .faq-list summary::marker{color:var(--ufh-copper)}
.ufh-final{background:var(--ufh-green);color:#dfe8e2;padding-block:clamp(5rem,8vw,8rem);text-align:center}.ufh-final__inner{max-width:940px}.ufh-final h2{color:white;font-size:clamp(2.8rem,5vw,5.2rem)}.ufh-final__inner>p:not(.eyebrow){max-width:790px;margin-inline:auto;color:#cbd7d0}.ufh-final .ufh-actions{justify-content:center}.ufh-final__phone{color:white;font-size:.85rem;font-weight:700}
.ufh a:focus-visible,.ufh summary:focus-visible{outline:3px solid var(--ufh-copper);outline-offset:5px}
@media(min-width:1100px){.ufh-hero{min-height:790px;display:grid;align-items:end}.ufh-hero__visual{position:absolute;inset:0;height:100%;aspect-ratio:auto}.ufh-hero__visual img{object-position:center}.ufh-hero__shade{background:linear-gradient(270deg,rgba(6,23,17,.97),rgba(6,23,17,.86) 32%,rgba(6,23,17,.25) 52%,transparent 65%)}.ufh-hero__content{display:grid;grid-template-columns:1fr 46%;align-items:end;padding-block:clamp(4rem,7vh,7rem) 2rem}.ufh-hero__copy{grid-column:2}.ufh-hero h1{font-size:clamp(3.4rem,4.9vw,5.7rem)}.ufh-hero__facts{grid-column:1/-1}.ufh-photo figcaption{position:absolute;bottom:7%;width:39%;padding:0}.ufh-photo--right figcaption{right:4%}.ufh-photo--left figcaption{left:4%}.ufh-photo--right .ufh-photo__shade{background:linear-gradient(270deg,rgba(6,23,17,.96),rgba(6,23,17,.8) 31%,rgba(6,23,17,.13) 48%,transparent 58%)}.ufh-photo--left .ufh-photo__shade{background:linear-gradient(90deg,rgba(6,23,17,.96),rgba(6,23,17,.8) 31%,rgba(6,23,17,.13) 48%,transparent 58%)}}
@media(min-width:1100px) and (max-width:1279px){.ufh-hero{min-height:660px}.ufh-hero__content{grid-template-columns:1fr 48%;padding-bottom:1.4rem}.ufh-hero h1{font-size:3.5rem}.ufh-hero__copy>p:not(.eyebrow){font-size:.88rem;line-height:1.55}.ufh-hero__line{font-size:1.3rem!important}.ufh-photo figcaption{width:42%}.ufh-photo figcaption h2{font-size:2.35rem}.ufh-photo figcaption p{font-size:.9rem}}
@media(max-width:1099px){.ufh-shell{width:calc(100% - 3.5rem)}.ufh-credentials__inner{grid-template-columns:1fr 1fr}.ufh-credentials__inner>*:nth-child(2){border-right:0}.ufh-credentials__inner>*:nth-child(-n+2){border-bottom:1px solid #ded9d0}.ufh-credentials__inner>*:nth-child(3){padding-left:0}.ufh-hero__shade{display:none}.ufh-heading{grid-template-columns:1fr;gap:1rem}.ufh-heading>p{padding:0}.ufh-photo__shade{display:none}.ufh-photo figcaption{padding:2rem}.ufh-faq__grid>div:first-child{position:static}}
@media(max-width:820px){.ufh-intro__grid,.ufh-wunda__grid,.ufh-accountability__grid,.ufh-value__grid,.ufh-london__grid,.ufh-faq__grid{grid-template-columns:1fr;gap:2.4rem}.ufh-system-grid,.ufh-service-grid{grid-template-columns:1fr}.ufh-steps{grid-template-columns:repeat(2,1fr)}.ufh-photo-notes{grid-template-columns:1fr;gap:1rem}.ufh-compare-table>div{grid-template-columns:.48fr 1fr 1fr;gap:1rem}.ufh-rule{grid-template-columns:1fr}.ufh-rule span+span{border-left:0;border-top:1px solid #d9d6cf;padding-left:0}.ufh-rule span{padding:1rem 0}.ufh-chapters{justify-content:flex-start}.ufh-chapters>span{flex-basis:100%}}
@media(max-width:560px){.ufh-shell{width:calc(100% - 2rem)}.ufh-pad{padding-block:3.8rem}.ufh-hero__content{padding-block:2rem}.ufh-hero h1{font-size:2.7rem}.ufh-hero__facts{grid-template-columns:1fr}.ufh-hero__facts div{border-left:0!important;border-top:1px solid #ffffff30;padding:1rem 0}.ufh-credentials__inner{grid-template-columns:1fr}.ufh-credentials__inner>*{border-right:0!important;border-bottom:1px solid #ded9d0!important;padding:1.1rem 0!important;min-height:82px}.ufh-credentials__inner>*:last-child{border-bottom:0!important}.ufh-system-grid article{padding:1.5rem}.ufh-steps{grid-template-columns:1fr}.ufh-steps article{min-height:0}.ufh-compare-table__head{display:none!important}.ufh-compare-table>div:not(.ufh-compare-table__head){grid-template-columns:1fr;gap:.45rem;padding:1.3rem 0}.ufh-compare-table>div:not(.ufh-compare-table__head)>span{font-size:.73rem;color:#e3a87f;text-transform:uppercase;letter-spacing:.1em;margin-bottom:.25rem}.ufh-compare-table p{padding:.45rem 0}.ufh-compare-table p::before{content:attr(data-label);display:block;margin-bottom:.15rem;font-size:.55rem;text-transform:uppercase;letter-spacing:.1em;color:#8fa49a}.ufh-photo figcaption{padding:1.5rem 1.2rem}.ufh-photo figcaption h2{font-size:2rem}.ufh-areas{grid-template-columns:1fr}.ufh-service-grid>a{min-height:215px}.ufh-final__phone{width:100%}.ufh .faq-list summary{grid-template-columns:35px 1fr}.ufh .faq-list details p{padding-left:43px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.ufh-service-grid>a{transition:none}}
