/* Dedicated service page. All rules are scoped to preserve other routes. */
.roof-service{--rf-red:#cf2429;--rf-ink:#191919;--rf-muted:#626262;background:#f7f7f7}
.roof-service .rf-wrap{max-width:1360px;margin:0 auto;padding:0 40px}
.roof-service section{padding:0}
.roof-service h1,.roof-service h2,.roof-service h3{font-weight:700}
.roof-service h2{font-size:clamp(30px,3vw,44px);line-height:1.15;letter-spacing:-1.3px;margin-bottom:0}
.roof-service p{font-size:16px;line-height:1.75}
.roof-service .eyebrow{font-size:11px;letter-spacing:2.1px}
.roof-service .rf-hero{background:#151515;color:#fff;padding:28px 0 0}
.rf-hero .breadcrumbs{margin:0 0 40px;font-size:12px;min-height:24px}
.rf-hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.rf-hero-copy{padding:8px 0 24px}
.rf-hero-copy h1{font-size:clamp(38px,4.2vw,59px);line-height:1.08;letter-spacing:-2px;margin:0 0 24px}
.rf-hero-copy h1 span{color:#b9b9b9}
.rf-hero .eyebrow{color:#ff777b}
.rf-hero-copy>p{max-width:490px;color:#ccc;margin:0 0 32px}
.rf-hero-actions{display:flex;align-items:center;gap:24px;flex-wrap:wrap}
.rf-hero-actions .btn{gap:22px}
.rf-text-link{display:inline-flex;align-items:center;gap:14px;min-height:44px;font-size:14px;border-bottom:1px solid #737373}
.rf-text-link:hover{border-color:#fff}
.rf-hero-note{border-top:1px solid #3b3b3b;margin-top:36px;padding-top:20px;color:#bbb;font-size:12px;letter-spacing:.5px}
.rf-hero-visual{position:relative;align-self:stretch;min-height:460px;margin:0;overflow:hidden;border-radius:20px 20px 0 0}
.rf-hero-visual>img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover;object-position:45% center}
.rf-hero-visual:after{content:"";position:absolute;inset:40% 0 0;background:linear-gradient(transparent,#000b);pointer-events:none}
.rf-hero-visual figcaption{position:absolute;bottom:28px;left:28px;right:28px;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:20px;color:#fff;font-size:13px}
.rf-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:36px;border-top:1px solid #3b3b3b}
.rf-summary>div{display:flex;align-items:center;gap:16px;padding:28px 24px 32px;border-right:1px solid #3b3b3b}
.rf-summary>div:first-child{padding-left:0}.rf-summary>div:last-child{border-right:0}
.rf-summary strong{display:block;font-size:14px;font-weight:600;margin-bottom:4px}.rf-summary small{font-size:12px;color:#bbb;display:block}
.rf-icon{display:block;width:48px;height:48px;flex:0 0 48px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;overflow:visible}
.rf-summary .rf-icon{color:#ff777b;width:44px;height:44px;flex-basis:44px}
.rf-move{transform-box:fill-box;transform-origin:center;animation:rf-icon-drift 3.8s ease-in-out infinite;animation-play-state:paused}
.rf-draw{stroke-dasharray:36;stroke-dashoffset:0;animation:rf-check 4.6s ease-in-out infinite;animation-play-state:paused}
.rf-icon-live .rf-move,.rf-icon-live .rf-draw{animation-play-state:running}
.rf-icon-detail .rf-move,.rf-icon-spot .rf-move{animation-name:rf-icon-tilt}
.rf-icon-spark .rf-move{animation-name:rf-icon-glint}
@keyframes rf-icon-drift{0%,100%{transform:translateY(0)}50%{transform:translateY(3px)}}
@keyframes rf-icon-tilt{0%,100%{transform:rotate(-5deg)}50%{transform:rotate(6deg)}}
@keyframes rf-icon-glint{0%,100%{transform:scale(1)}50%{transform:scale(.86)}}
@keyframes rf-check{0%,15%{stroke-dashoffset:36}40%,100%{stroke-dashoffset:0}}
.roof-service .rf-section{padding:88px 0}
.rf-heading{display:grid;grid-template-columns:1.2fr 1fr;gap:64px;align-items:end;margin-bottom:40px}
.rf-heading>p{color:var(--rf-muted);max-width:470px;margin:0}
.rf-needs-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.rf-reason{padding:28px 24px;background:#fff;border:1px solid #e8e8e8;border-radius:16px}
.rf-reason .rf-icon{color:#b51c22;margin-bottom:28px}
.rf-reason h3{font-size:18px;letter-spacing:-.4px;margin-bottom:12px}
.roof-service .rf-reason p{color:var(--rf-muted);font-size:14px;line-height:1.7;margin-bottom:0}
.roof-service .rf-materials{background:#efefed}
#roof-materials{scroll-margin-top:24px}
.rf-material-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.rf-material{display:block;background:#fff;border-radius:16px;overflow:hidden;border:1px solid #e2e2df;transition:transform .3s}
.rf-material:hover{transform:translateY(-4px)}
.rf-material-photo{height:205px;position:relative;overflow:hidden;background:#ddd}
.rf-material-photo img{height:100%;width:100%;object-fit:cover;transition:transform .6s}
.rf-material:hover img{transform:scale(1.04)}
.rf-material-photo>span{position:absolute;top:16px;left:16px;background:#191919dd;color:#fff;padding:6px 10px;font-size:12px}
.rf-material-copy{padding:28px}
.rf-material h3{font-size:22px;letter-spacing:-.6px;margin-bottom:12px}
.roof-service .rf-material p{color:var(--rf-muted);font-size:14px;line-height:1.7;min-height:72px;margin-bottom:16px}
.rf-material-link{font-size:14px;display:flex;align-items:center;justify-content:space-between;min-height:44px;color:#b51c22;font-weight:600;border-top:1px solid #eee;padding-top:12px}
.roof-service .rf-material-note{font-size:13px;color:var(--rf-muted);margin:24px 0 0;max-width:800px}
.roof-service .rf-process{background:#191919;color:#fff}
.rf-process .eyebrow{color:#ff777b}.rf-process .rf-heading>p{color:#bdbdbd}
.rf-steps{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px;padding:0;margin:48px 0 40px}
.rf-steps li{border-top:1px solid #555;padding-top:24px}
.rf-step-num{display:block;color:#ff777b;font-size:38px;font-weight:500;letter-spacing:-2px;margin-bottom:24px;line-height:1}
.rf-steps h3{font-size:19px;line-height:1.3;margin-bottom:16px;max-width:200px}
.roof-service .rf-steps p{font-size:14px;line-height:1.75;color:#bdbdbd;margin:0}
.rf-process-note{display:flex;gap:24px;align-items:center;border:1px solid #494949;border-radius:12px;padding:24px 28px}
.rf-process-note .rf-icon{color:#ff777b}.roof-service .rf-process-note p{margin:0;color:#bbb;font-size:14px;max-width:880px}.rf-process-note strong{color:#fff;font-weight:600}
.rf-faq-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:88px}
.roof-service .rf-muted{color:var(--rf-muted);font-size:14px;max-width:290px;margin-top:24px}
.rf-faq{width:100%;max-width:none;margin:0}.rf-faq details:first-child{border-top:1px solid #ddd}.rf-faq summary{font-size:16px;line-height:1.4;gap:24px}.roof-service .rf-faq p{font-size:14px;max-width:600px}
.roof-service .rf-final{padding:0 0 48px}
.rf-contact-panel{background:#e9e7e2;display:grid;grid-template-columns:1.5fr 1fr;gap:64px;align-items:center;padding:48px;border-radius:20px}
.rf-contact-copy h2{margin-bottom:20px}.rf-contact-copy p{color:#555;max-width:490px;margin-bottom:28px}.rf-contact-copy .btn{gap:24px}
.rf-contact-side{display:flex;flex-direction:column;align-items:flex-start;border-left:1px solid #c8c6c1;padding-left:48px;gap:12px}
.rf-contact-side .rf-icon{width:104px;height:104px;flex-basis:auto;stroke:#ad1c22;margin-bottom:24px}
.rf-contact-side>a{font-size:clamp(18px,2vw,25px);font-weight:600;letter-spacing:-.5px;white-space:nowrap;min-height:44px;display:flex;align-items:center}.rf-contact-side>span{font-size:14px;color:#555}
.rf-back{display:inline-flex;min-height:44px;align-items:center;gap:16px;font-size:14px;margin-top:24px}.rf-back:hover{text-decoration:underline}
@media(max-width:1100px){.roof-service .rf-wrap{padding:0 28px}.rf-hero-grid{gap:32px}.rf-hero-copy h1{font-size:44px}.rf-hero-visual{min-height:440px}.rf-hero-actions{gap:16px}.rf-needs-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.rf-steps{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}.rf-summary>div{padding:24px 16px;gap:12px}.rf-summary strong{font-size:13px}.rf-summary small{font-size:12px}.rf-contact-panel{gap:32px;padding:36px}.rf-contact-side{padding-left:28px}.rf-material-copy{padding:24px}.rf-faq-layout{gap:48px}}
@media(max-width:800px){.rf-hero-grid{grid-template-columns:1fr;gap:32px}.rf-hero-copy{max-width:620px;padding:0}.rf-hero-copy h1{font-size:52px}.rf-hero-visual{min-height:350px;border-radius:16px}.rf-summary{grid-template-columns:1fr;margin-top:32px}.rf-summary>div,.rf-summary>div:first-child{padding:20px 0;border-right:0;border-bottom:1px solid #3b3b3b;gap:20px}.rf-summary>div:last-child{border-bottom:0}.rf-summary strong{font-size:15px}.rf-summary small{font-size:13px}.rf-heading{grid-template-columns:1fr;gap:24px}.rf-heading>p{max-width:600px}.rf-material-grid{grid-template-columns:1fr;gap:20px}.rf-material{display:grid;grid-template-columns:.9fr 1.1fr}.rf-material-photo{height:100%;min-height:240px}.rf-material-copy{padding:28px}.roof-service .rf-material p{min-height:0}.rf-faq-layout{grid-template-columns:1fr;gap:24px}.roof-service .rf-muted{max-width:480px}.rf-contact-panel{grid-template-columns:1fr;gap:32px}.rf-contact-side{border-left:0;border-top:1px solid #c8c6c1;padding:28px 0 0}.rf-contact-side .rf-icon{display:none}.roof-service .rf-section{padding:64px 0}}
@media(max-width:540px){.roof-service .rf-wrap{padding:0 20px}.roof-service .rf-hero{padding-top:20px}.rf-hero .breadcrumbs{font-size:11px;gap:6px;margin-bottom:32px}.rf-hero-copy h1{font-size:39px;letter-spacing:-1.4px;line-height:1.12}.roof-service .eyebrow{font-size:10px;letter-spacing:1.7px}.roof-service p{font-size:15px}.rf-hero-copy>p{margin-bottom:24px}.rf-hero-actions{align-items:flex-start;flex-direction:column;gap:12px}.rf-hero-note{font-size:11px;margin-top:24px;padding-top:16px}.rf-hero-visual{min-height:290px}.rf-hero-visual figcaption{left:20px;right:20px;bottom:20px;font-size:12px}.rf-hero-visual figcaption .rf-icon{width:36px;height:36px;flex-basis:36px}.rf-heading{gap:20px;margin-bottom:28px}.roof-service h2{font-size:31px;letter-spacing:-1px}.rf-needs-grid{grid-template-columns:1fr;gap:12px}.rf-reason{padding:24px}.rf-reason .rf-icon{margin-bottom:20px}.rf-reason h3{font-size:20px}.roof-service .rf-reason p{font-size:15px}.rf-material{display:block}.rf-material-photo{height:180px;min-height:0}.rf-material-copy{padding:24px}.rf-material h3{font-size:22px}.rf-steps{grid-template-columns:1fr;margin-top:32px;gap:28px}.rf-steps li{position:relative;padding:24px 0 0 60px;min-height:120px}.rf-step-num{position:absolute;left:0;top:26px;font-size:29px}.rf-steps h3{max-width:none;font-size:19px;margin-bottom:12px}.roof-service .rf-steps p{font-size:15px}.rf-process-note{align-items:flex-start;padding:24px;gap:16px}.rf-process-note .rf-icon{width:32px;height:32px;flex-basis:32px}.rf-contact-panel{padding:28px 24px;border-radius:16px}.rf-contact-copy h2{font-size:29px}.rf-contact-copy .eyebrow{font-size:9px;letter-spacing:1.2px}.rf-contact-side>a{font-size:21px}.rf-contact-side>span{font-size:13px}.rf-faq summary{font-size:15px}.roof-service .rf-section{padding:56px 0}.roof-service .rf-final{padding-bottom:32px}}
@media(prefers-reduced-motion:reduce){.roof-service *,.roof-service *:before,.roof-service *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.rf-draw{stroke-dashoffset:0!important}}

/* Image-free introduction, matching the services catalog typography. */
.roof-service .rf-hero{background:#151515;padding-top:30px}
.roof-service .rf-hero-grid{display:block}
.roof-service .rf-hero .breadcrumbs{font-size:13px;margin-bottom:36px;gap:8px;min-height:0}
.roof-service .rf-hero-copy{display:block;max-width:none;padding:0}
.roof-service .rf-hero-copy>.eyebrow{font-size:12px;letter-spacing:3px;color:#ff6267;margin-bottom:16px}
.roof-service .rf-hero-copy>h1{font-size:clamp(32px,4vw,48px);font-weight:700;line-height:1.18;letter-spacing:-1px;color:#fff;max-width:850px;margin:0 0 20px}
.roof-service .rf-hero-copy>p{max-width:690px;font-size:17px;line-height:1.6;color:#ccc;margin:0 0 28px}
.roof-service .rf-hero-actions{gap:24px;align-items:center;flex-direction:row}
.roof-service .rf-hero-note{margin-top:32px;padding-top:20px}
@media(max-width:540px){.roof-service .rf-hero{padding-top:24px}.roof-service .rf-hero .breadcrumbs{margin-bottom:28px;font-size:12px;gap:6px}.roof-service .rf-hero-copy>h1{font-size:35px}.roof-service .rf-hero-copy>.eyebrow{font-size:11px;letter-spacing:2.3px}.roof-service .rf-hero-actions{gap:12px 20px;flex-wrap:wrap}.roof-service .rf-hero-note{margin-top:24px}}
