.serviceDirectoryCard>div{display:flex;flex-direction:column;flex:1 1;min-height:0;gap:12px}.serviceDirectoryCard>div>p:last-of-type{flex:1 1 auto}.serviceDirectoryCard span{color:var(--color-primary)!important;font-size:12px;font-weight:700;letter-spacing:.04em}.serviceDirectoryCard h2{color:var(--color-text)!important}.serviceDirectoryCard p{color:var(--color-text-secondary)!important}.serviceDirectoryCard .serviceMeta{color:var(--color-text)!important;font-weight:500}.serviceDirectoryCard .serviceBookingButton{display:inline-flex!important;align-items:center;justify-content:center;gap:8px;width:100%;max-width:100%;min-height:48px!important;margin-top:auto;padding:12px 16px!important;color:var(--color-white)!important;background:var(--color-primary)!important;border:1px solid var(--color-primary)!important;border-radius:10px!important;font-size:14px!important;font-weight:600!important;line-height:1.35!important;white-space:normal!important;text-align:center;box-shadow:0 14px 30px rgba(var(--color-primary-rgb),.22)!important}.serviceDirectoryCard .serviceBookingButton:hover{color:var(--color-white)!important;background:var(--color-primary-hover)!important;border-color:var(--color-primary-hover)!important}.serviceDirectoryCard .serviceBookingButton svg{flex-shrink:0;color:var(--color-white)!important}@media (max-width:768px){.serviceDirectoryCard{border-radius:14px!important}.serviceDirectoryCard>div{padding:16px!important;gap:10px!important}.serviceDirectoryCard h2{font-size:clamp(18px,4.8vw,22px)!important}.serviceDirectoryCard p{font-size:14px!important;line-height:1.55!important}}.roofServicesPremium{--svc-ink:#14213d;--svc-charcoal:#14213d;--svc-stone:#f3efe6;--svc-paper:#fffdf7;--svc-copper:#b76f3f;--svc-zinc:#73807b;color:var(--svc-ink);background:var(--svc-paper);overflow:hidden}.roofServicesPremium a{text-decoration:none}.roofServicesHero{position:relative;min-height:min(780px,calc(100vh - 90px));display:grid;align-items:end;background:#14213d}.roofServicesHero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;animation:roofServicesHeroZoom 1.1s ease both}.roofServicesHero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,33,61,.78),rgba(20,33,61,.28) 48%,rgba(20,33,61,.12)),linear-gradient(0deg,rgba(10,15,14,.56),transparent 42%)}.roofServicesHeroPanel{position:relative;z-index:1;width:min(680px,calc(100% - 32px));margin:0 0 clamp(34px,7vw,84px) clamp(16px,7vw,96px);padding:clamp(24px,4vw,40px);border:1px solid rgba(255,253,247,.18);background:rgba(23,33,31,.76);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fffdf7;animation:roofServicesPanelReveal .82s ease both}.roofServicesHero .roofServicesHeroPanel,.roofServicesHero .roofServicesHeroPanel a,.roofServicesHero .roofServicesHeroPanel h1,.roofServicesHero .roofServicesHeroPanel p,.roofServicesHero .roofServicesHeroPanel span,.roofServicesHero .roofServicesHeroPanel strong,.roofServicesHero .roofServicesHeroPanel svg{color:#ffffff!important;stroke:currentColor!important}.roofServicesHero .roofServicesHeroPanel>p:first-child{color:#ffffff!important;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.24)}.roofServicesHero .roofServicesHeroPanel p:not(:first-child){color:rgba(255,255,255,.9)!important}.roofServicesHero .roofServicesHeroPanel strong{color:rgba(255,255,255,.94)!important}.roofServicesHero .roofServicesHeroPanel a:focus-visible,.roofServicesHero .roofServicesHeroPanel a:focus-visible svg,.roofServicesHero .roofServicesHeroPanel a:hover,.roofServicesHero .roofServicesHeroPanel a:hover svg{color:#ffffff!important;stroke:#ffffff!important}.roofServiceBeforeAfter p:first-child,.roofServiceFeature p:first-child,.roofServicesDiagnostic p:first-child,.roofServicesEmergency p:first-child,.roofServicesGallery p,.roofServicesHeroPanel>p:first-child,.roofServicesInsulation p:first-child,.roofServicesIntro>p,.roofServicesMainCopy>p:first-child,.roofServicesMaterialsHeading p,.roofServicesProblems p,.roofServicesWood p:first-child{margin:0 0 12px;color:var(--svc-copper);font-size:.76rem;font-weight:850;letter-spacing:.1em;text-transform:uppercase}.roofServiceBeforeAfter h2,.roofServiceFeature h2,.roofServicesDiagnostic h2,.roofServicesEmergency h2,.roofServicesFinalCta h2,.roofServicesGallery h2,.roofServicesHeroPanel h1,.roofServicesInsulation h2,.roofServicesIntro h2,.roofServicesMainCopy h2,.roofServicesMaterialsHeading h2,.roofServicesProblems h2,.roofServicesWood h2{margin:0;font-family:var(--roof-font-heading,"Manrope",Arial,sans-serif);letter-spacing:0;line-height:1.02}.roofServicesHeroPanel h1{font-size:clamp(2.35rem,5.8vw,5.6rem)}.roofServicesHeroLine{display:block;width:min(220px,54%);height:2px;margin:22px 0;background:var(--svc-copper);transform-origin:left;animation:roofServicesLine .9s ease .18s both}.roofServicesHeroPanel p:not(:first-child){max-width:560px;color:rgba(255,253,247,.86);font-size:1.05rem;line-height:1.7}.roofServicesHeroPanel strong{display:block;margin-top:18px;color:#f6e4d4}.roofServicesEmergencyActions,.roofServicesHeroActions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}.roofServicePrimary,.roofServiceSecondary,.roofServiceTextLink,.roofServicesEmergencyActions a{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;border-radius:8px;font-weight:820}.roofServicePrimary{padding:0 18px;color:#fffdf7;background:var(--svc-copper)}.roofServiceSecondary{padding:0 18px;color:#fffdf7;border:1px solid rgba(255,253,247,.36)}.roofServicesDiagnostic,.roofServicesEditorialGrid,.roofServicesEmergency,.roofServicesFinalCta,.roofServicesGallery,.roofServicesIntro,.roofServicesMainService,.roofServicesMaterials,.roofServicesMethod,.roofServicesProblems,.roofServicesSplit{width:min(1240px,calc(100% - 32px));margin-inline:auto}.roofServicesIntro{position:relative;display:grid;grid-template-columns:minmax(290px,.54fr) minmax(0,.78fr);grid-template-areas:"image copy" "image panel";grid-gap:clamp(18px,3vw,34px) clamp(24px,4.5vw,58px);gap:clamp(18px,3vw,34px) clamp(24px,4.5vw,58px);align-items:stretch;padding:clamp(34px,5vw,70px);border:1px solid rgba(20,33,61,.12);background:linear-gradient(135deg,rgba(255,255,255,.94),rgba(242,247,252,.92)),#f7fbff;box-shadow:0 24px 70px rgba(20,33,61,.08);overflow:hidden}.roofServicesIntro:before{content:"";position:absolute;inset:18px;border-top:1px solid rgba(183,111,63,.32);border-right:1px solid rgba(183,111,63,.18);pointer-events:none}.roofServicesIntro:after{content:"";position:absolute;right:clamp(22px,5vw,76px);top:clamp(20px,5vw,56px);width:min(240px,35vw);height:78px;border-top:2px solid rgba(183,111,63,.25);border-right:2px solid rgba(183,111,63,.22);transform:skewX(-28deg);pointer-events:none}.roofServicesIntroImage{position:relative;z-index:1;grid-area:image;min-height:100%;overflow:hidden;border:1px solid rgba(20,33,61,.12);background:#dfe8ef;box-shadow:0 18px 48px rgba(20,33,61,.12)}.roofServicesIntroImage img{width:100%;height:100%;min-height:560px;object-fit:cover;filter:saturate(.98) contrast(1.03)}.roofServicesIntroImage:after{content:"";position:absolute;inset:auto 0 0;height:36%;background:linear-gradient(0deg,rgba(20,33,61,.7),rgba(20,33,61,0))}.roofServicesIntroImage span{position:absolute;left:18px;bottom:18px;z-index:1;padding:10px 12px;border-left:3px solid var(--svc-copper);color:#ffffff;background:rgba(20,33,61,.72);font-size:.82rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.roofServicesIntroCopy{position:relative;z-index:1;grid-area:copy;display:grid;align-content:end;max-width:760px}.roofServicesIntroCopy>p:first-child{margin:0 0 12px;color:var(--svc-copper);font-size:.76rem;font-weight:850;letter-spacing:.1em;text-transform:uppercase}.roofServicesIntro h2{max-width:11.5em;margin:0;color:#14213d;font-size:clamp(2.2rem,4.8vw,4.7rem);line-height:.98}.roofServicesIntroCopy>p:not(:first-child){max-width:680px;margin:18px 0 0;color:#526174;font-size:clamp(1rem,1.2vw,1.08rem);line-height:1.72}.roofServicesIntroActions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:24px}.roofServicesIntroPanel{position:relative;z-index:1;grid-area:panel;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:12px;gap:12px;align-self:end}.roofServicesIntroPanel article{display:grid;grid-template-rows:auto auto 1fr;min-height:172px;padding:17px;border:1px solid rgba(20,33,61,.11);background:rgba(255,255,255,.9);box-shadow:0 12px 28px rgba(20,33,61,.055);transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease,background .18s ease}.roofServicesIntroPanel article:hover{border-color:rgba(183,111,63,.34);background:#ffffff;box-shadow:0 18px 38px rgba(20,33,61,.085);transform:translateY(-2px)}.roofServicesIntroPanel svg{color:var(--svc-copper)}.roofServicesIntroPanel h3{min-height:2.45em;margin:12px 0 8px;color:#14213d;font-size:.98rem;line-height:1.18}.roofServicesIntroPanel p{margin:0;color:#5d6b77;font-size:.9rem;line-height:1.5}.roofServicesMainService{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(360px,.72fr);grid-gap:0;gap:0;padding:clamp(50px,7vw,92px) 0}.roofServiceBeforeAfter img,.roofServiceFeature img,.roofServicesDiagnostic img,.roofServicesGalleryGrid img,.roofServicesInsulation img,.roofServicesMainMedia img,.roofServicesMethodImage img,.roofServicesWood img{display:block;width:100%;object-fit:cover}.roofServicesMainMedia img{height:100%;min-height:520px}.roofServicesMainCopy{align-self:center;padding:clamp(28px,5vw,54px);background:#efe4d1}.roofServicesMainCopy h2{font-size:clamp(2rem,4.2vw,3.8rem)}.roofServiceBeforeAfter p:not(:first-child),.roofServiceFeature p:not(:first-child),.roofServicesDiagnostic p:not(:first-child),.roofServicesEmergency p:not(:first-child),.roofServicesFinalCta p,.roofServicesInsulation p:not(:first-child),.roofServicesMainCopy p:not(:first-child),.roofServicesWood p:not(:first-child){color:#4f5a56;line-height:1.75}.roofServicesMainCopy ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px;margin:22px 0;padding:0;list-style:none}.roofServicesMainCopy li{display:flex;gap:8px;align-items:flex-start;color:#2f3a37;font-weight:720}.roofServiceBeforeAfter a,.roofServiceFeature a,.roofServiceTextLink,.roofServicesGallery a,.roofServicesInsulation a,.roofServicesWood a{color:var(--svc-ink);border-bottom:1px solid var(--svc-copper);font-weight:850}.roofServicesEditorialGrid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(300px,.75fr);grid-gap:18px;gap:18px}.roofServiceBeforeAfter,.roofServiceFeature,.roofServicesInsulation,.roofServicesWood{display:grid;background:#f6f1e8;border:1px solid rgba(23,33,31,.1)}.roofServiceFeature{grid-template-columns:minmax(0,.78fr) minmax(0,1fr)}.roofServiceFeature:first-child{grid-row:span 2;grid-template-columns:1fr}.roofServiceFeature img{min-height:280px;height:100%}.roofServiceBeforeAfter>div:last-child,.roofServiceFeature>div,.roofServicesInsulation>div,.roofServicesWood>div{padding:clamp(22px,3vw,34px)}.roofServiceBeforeAfter h2,.roofServiceFeature h2,.roofServicesInsulation h2,.roofServicesWood h2{font-size:clamp(1.6rem,3vw,2.8rem)}.roofServiceBeforeAfterImages{position:relative}.roofServiceBeforeAfterImages img{height:300px}.roofServiceBeforeAfterImages span{position:absolute;inset:0 50% 0 auto;width:2px;background:#fffdf7;box-shadow:0 0 0 999px rgba(23,33,31,.18)}.roofServicesSplit{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-gap:18px;gap:18px;padding-top:18px}.roofServicesWood{color:#fffdf7;background:#231b17}.roofServicesWood h2,.roofServicesWood p:first-child{color:#ffffff}.roofServicesWood p:not(:first-child){color:rgba(255,255,255,.88)}.roofServicesWood a{color:#ffffff}.roofServicesInsulation img,.roofServicesWood img{height:320px}.roofServicesProblems{display:grid;grid-template-columns:minmax(0,.55fr) minmax(0,1fr);grid-gap:34px;gap:34px;padding:clamp(56px,8vw,96px) 0}.roofServicesDiagnostic h2,.roofServicesFinalCta h2,.roofServicesGallery h2,.roofServicesMaterialsHeading h2,.roofServicesProblems h2{font-size:clamp(2rem,4vw,3.6rem)}.roofServicesProblemRail{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid rgba(23,33,31,.14)}.roofServicesProblemRail a{display:flex;gap:12px;align-items:center;min-height:72px;padding:18px 0;color:var(--svc-ink);border-bottom:1px solid rgba(23,33,31,.14)}.roofServicesDiagnostic{display:grid;grid-template-columns:minmax(0,.86fr) minmax(0,1fr);grid-gap:clamp(28px,5vw,60px);gap:clamp(28px,5vw,60px);align-items:center;padding:clamp(34px,6vw,72px);background:#14213d;color:#fffdf7}.roofServicesDiagnostic img{min-height:430px}.roofServicesDiagnostic p:not(:first-child){color:rgba(255,253,247,.76)}.roofServicesDiagnosticList{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}.roofServicesDiagnosticList span{padding:8px 10px;color:#fffdf7;border:1px solid rgba(255,253,247,.18)}.roofServicesMaterials{padding:clamp(56px,8vw,96px) 0}.roofServicesMaterialsHeading{max-width:720px;margin-bottom:28px}.roofServicesMaterialGrid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));border-top:1px solid rgba(23,33,31,.14)}.roofServicesMaterialGrid article{min-height:190px;padding:20px;border-right:1px solid rgba(23,33,31,.14);border-bottom:1px solid rgba(23,33,31,.14)}.roofServicesMaterialGrid h3{margin:0 0 12px}.roofServicesMaterialGrid p{margin:0;color:#5d6863;line-height:1.6}.roofServicesMethod{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:18px;gap:18px;padding:clamp(52px,7vw,88px) 0}.roofServicesMethodImage{grid-column:2/4;grid-row:1/3}.roofServicesMethodImage img{height:100%;min-height:420px}.roofServicesMethod article{padding:22px;border:1px solid rgba(23,33,31,.12);background:#f6f1e8}.roofServicesMethod span{color:var(--svc-copper);font-weight:900}.roofServicesMethod h3{margin:10px 0}.roofServicesMethod p{margin:0;color:#5d6863;line-height:1.6}.roofServicesEmergency{display:flex;justify-content:space-between;gap:28px;align-items:center;padding:clamp(30px,5vw,54px);background:#14213d;color:#fffdf7}.roofServicesEmergency h2{font-size:clamp(2rem,4vw,3.7rem)}.roofServicesEmergency p:not(:first-child){max-width:680px;color:rgba(255,253,247,.78)}.roofServicesEmergencyActions a:first-child{padding:0 18px;color:#fffdf7;background:var(--svc-copper)}.roofServicesEmergencyActions a:last-child{padding:0 18px;color:#fffdf7;border:1px solid rgba(255,253,247,.28)}.roofServicesGallery{display:grid;grid-template-columns:minmax(0,.42fr) minmax(0,1fr);grid-gap:clamp(28px,5vw,64px);gap:clamp(28px,5vw,64px);padding:clamp(56px,8vw,96px) 0}.roofServicesGalleryGrid{display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:150px;grid-gap:12px;gap:12px}.roofServicesGalleryGrid img{height:100%;transition:transform .18s ease}.roofServicesGalleryGrid img:hover{transform:translateY(-3px)}.roofServicesGalleryGrid img:first-child{grid-column:span 4;grid-row:span 2}.roofServicesGalleryGrid img:nth-child(2),.roofServicesGalleryGrid img:nth-child(5){grid-column:span 2}.roofServicesGalleryGrid img:nth-child(3),.roofServicesGalleryGrid img:nth-child(4){grid-column:span 3}.roofServicesFinalCta{display:grid;justify-items:center;text-align:center;grid-gap:16px;gap:16px;padding:clamp(46px,7vw,86px) 16px clamp(70px,8vw,110px)}.roofServicesFinalCta p{max-width:680px;margin:0}@keyframes roofServicesHeroZoom{0%{transform:scale(1.04)}to{transform:scale(1)}}@keyframes roofServicesPanelReveal{0%{opacity:0;-webkit-clip-path:inset(0 100% 0 0);clip-path:inset(0 100% 0 0)}to{opacity:1;-webkit-clip-path:inset(0 0 0 0);clip-path:inset(0 0 0 0)}}@keyframes roofServicesLine{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes roofServicesIntroImageReveal{0%{opacity:0;-webkit-clip-path:inset(0 100% 0 0);clip-path:inset(0 100% 0 0);transform:translateX(-18px)}to{opacity:1;-webkit-clip-path:inset(0 0 0 0);clip-path:inset(0 0 0 0);transform:translateX(0)}}@keyframes roofServicesIntroCopyReveal{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes roofServicesIntroCardReveal{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:no-preference){.roofServicesIntroImage{animation:roofServicesIntroImageReveal .76s cubic-bezier(.16,1,.3,1) both}.roofServicesIntroCopy>*{animation:roofServicesIntroCopyReveal .62s cubic-bezier(.16,1,.3,1) both}.roofServicesIntroCopy>:nth-child(2){animation-delay:90ms}.roofServicesIntroCopy>:nth-child(3){animation-delay:.16s}.roofServicesIntroCopy>:nth-child(4){animation-delay:.22s}.roofServicesIntroCopy>:nth-child(5){animation-delay:.3s}.roofServicesIntroPanel article{animation:roofServicesIntroCardReveal .56s cubic-bezier(.16,1,.3,1) both;animation-delay:calc(.26s + var(--expertise-delay, 0s))}}@media (max-width:1080px){.roofServicesDiagnostic,.roofServicesEditorialGrid,.roofServicesGallery,.roofServicesIntro,.roofServicesMainService,.roofServicesProblems,.roofServicesSplit{grid-template-columns:1fr}.roofServicesMaterialGrid{grid-template-columns:repeat(3,minmax(0,1fr))}.roofServicesMethod{grid-template-columns:repeat(2,minmax(0,1fr))}.roofServicesMethodImage{grid-column:1/-1;grid-row:auto}.roofServicesIntro{grid-template-areas:"image" "copy" "panel";gap:24px;padding:clamp(26px,5vw,44px)}.roofServicesIntroImage{min-height:0;aspect-ratio:16/8}.roofServicesIntroImage img{min-height:0}.roofServicesIntroCopy{align-content:start}.roofServicesIntro h2{max-width:13em}.roofServicesIntroPanel{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:720px){.roofServicesHero{min-height:680px}.roofServicesHeroPanel{margin-inline:16px;padding:22px}.roofServicesEmergency,.roofServicesEmergencyActions,.roofServicesHeroActions{display:grid}.roofServicePrimary,.roofServiceSecondary,.roofServicesEmergencyActions a{width:100%}.roofServicesIntroPanel,.roofServicesMainCopy ul,.roofServicesMaterialGrid,.roofServicesMethod,.roofServicesProblemRail{grid-template-columns:1fr}.roofServicesIntro{width:min(100% - 28px,1240px);padding:18px}.roofServicesIntro:before{inset:10px}.roofServicesIntro:after{display:none}.roofServicesIntroImage{aspect-ratio:4/3}.roofServicesIntroImage span{left:12px;bottom:12px;max-width:calc(100% - 24px);font-size:.72rem}.roofServicesIntro h2{max-width:100%;font-size:clamp(2rem,10vw,2.85rem);line-height:1.02}.roofServicesIntroCopy>p:not(:first-child){margin-top:14px;font-size:.98rem;line-height:1.62}.roofServicesIntroActions{display:grid}.roofServicesIntroActions .roofServiceTextLink{justify-content:flex-start}.roofServicesIntroPanel article{min-height:0;padding:15px}.roofServicesIntroPanel h3{min-height:0}.roofServiceFeature,.roofServicesGalleryGrid{grid-template-columns:1fr}.roofServicesGalleryGrid{grid-auto-rows:210px}.roofServicesGalleryGrid img:nth-child(n){grid-column:auto;grid-row:auto}}@media (prefers-reduced-motion:reduce){.roofServicesGalleryGrid img,.roofServicesHero>img,.roofServicesHeroLine,.roofServicesHeroPanel,.roofServicesIntroCopy>*,.roofServicesIntroImage,.roofServicesIntroPanel article{animation:none;transition:none;transform:none}}