/* Photography-led layouts; illustration labels stay visible and readable. */
.home-hero { position:relative; isolation:isolate; background:#102937; color:#fff; overflow:hidden }
.home-hero .hero { display:flex; align-items:center; min-height:620px; padding:75px 0 85px; position:relative; z-index:2; pointer-events:none }
.home-hero .hero-copy { max-width:580px; padding:0; pointer-events:auto }
.home-hero .eyebrow { color:#fff; font-size:12px; letter-spacing:2px }
.home-hero .hero h1 { font-size:clamp(43px,5.2vw,68px); letter-spacing:-2.5px; line-height:1.04; margin:24px 0; color:#fff; max-width:590px }
.home-hero .hero p { color:#e8eef0; font-size:17px; max-width:450px; line-height:1.6 }
.home-hero .hero .hero-lead { color:#fff; font-size:21px; font-weight:600; line-height:1.4; max-width:460px; margin-bottom:15px }
.home-hero .actions { gap:24px; margin:30px 0 0 }
.home-hero .btn.orange,.stock-feature .btn.orange { background:#ff965e; color:#142c3a; font-weight:750; border-radius:5px; padding:17px 24px }
.hero-call { color:#fff; font-size:20px; font-weight:650; text-decoration:none; text-underline-offset:5px }
.hero-call:hover { text-decoration:underline }
.home-hero .hero-media { position:absolute; inset:0; margin:0; height:100%; width:100%; border-radius:0; box-shadow:none; transform:none; z-index:-1 }
.home-hero .hero-media picture { height:100%; display:block }
.home-hero .hero-media img { width:100%; height:100%; object-fit:cover; object-position:50% 53%; transform:none }
.home-hero .hero-media:after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,#0a2336f0 0%,#0a2336d9 33%,#0a233650 65%,#0a233618 100%); pointer-events:none }
.home-hero .hero-media figcaption { position:absolute; z-index:3; bottom:18px; right:25px; left:auto; transform:none; background:#102936d9; border-radius:3px; padding:7px 12px; max-width:calc(100% - 40px) }
.home-hero .hero-media figcaption a { color:#fff; font-size:11px; text-decoration:underline; text-underline-offset:3px }
.hero-foot { background:#fff; box-shadow:0 7px 28px #142f3910; position:relative }
.hero-foot .wrap { display:flex; align-items:center; justify-content:space-between; gap:20px; padding-top:26px; padding-bottom:26px }
.hero-foot span { font-size:13px; font-weight:650; color:#63716f }
.hero-foot a { font-size:14px; font-weight:650; text-decoration:none; color:#153240 }
.hero-foot a span { margin-left:10px; color:#b44720 }
.hero-foot a:hover { text-decoration:underline; text-underline-offset:5px }
.home-services { background:#f7f7f2; padding:85px 0 }
.home-services .section-heading { align-items:end; gap:45px; margin-bottom:38px }
.home-services .section-heading>div:last-child { max-width:350px }
.home-services .section-heading p { color:#56645f; margin-bottom:14px }
.home-services h2,.home-coverage h2,.home-faq h2 { font-size:clamp(32px,3.3vw,45px); line-height:1.12; letter-spacing:-1.5px }
.home-all-services { color:#9e411f }
.service-grid { gap:24px }
.service-card { border:0; border-radius:8px; background:#fff; box-shadow:0 5px 24px #13334009; transition:transform .18s,box-shadow .18s }
.service-card:hover { transform:translateY(-3px); box-shadow:0 12px 30px #13334016 }
.service-card h2,.service-card h3 { font-size:24px; letter-spacing:-.6px }
.service-card p { font-size:15px; line-height:1.65 }
.home-services .service-extra { border:0; margin-top:27px; padding:24px 0 0; background:transparent; border-radius:0 }
main:has(.home-hero)>.section.dark { background:#102e3d; color:#fff; padding:75px 0 60px }
.stock-feature { display:grid; grid-template-columns:1.15fr 1fr; gap:65px; align-items:center }
.stock-feature-media { margin:0; position:relative; border-radius:7px; overflow:hidden }
.stock-feature-media img { display:block; width:100%; height:440px; object-fit:cover }
.stock-feature-media figcaption { position:absolute; bottom:0; left:0; right:0; padding:27px 18px 13px; background:linear-gradient(transparent,#071d2bea) }
.stock-feature-media figcaption a { color:#fff; font-size:11px; text-decoration:underline; text-underline-offset:3px }
.stock-feature-copy .eyebrow { color:#ffb088 }
.stock-feature-copy h2 { color:#fff; font-size:clamp(34px,3.8vw,49px); line-height:1.09; letter-spacing:-1.6px; margin:20px 0 }
.stock-feature-copy p { color:#d0dde2; line-height:1.7; max-width:420px }
.home-process { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:40px; margin-top:48px }
.home-process h3 { color:#fff; font-size:18px; letter-spacing:-.3px; margin-bottom:12px }
.home-process p { color:#bdcdd3; font-size:14px; line-height:1.65; margin:0 }
.home-coverage { background:#eeeee6; padding:75px 0; text-align:center }
.coverage-heading { max-width:680px; margin:0 auto 32px }
.coverage-heading p { color:#52625b; margin:20px 0 }
.home-area-links { display:flex; justify-content:center; flex-wrap:wrap; gap:12px; padding:0; background:transparent; border-radius:0; margin:0 auto 30px; max-width:940px }
.home-area-links a { display:inline-flex; gap:18px; align-items:center; padding:14px 19px; border:0; background:#fff; color:#173b49; border-radius:6px; font-size:15px; text-decoration:none }
.home-area-links a span { color:#98421f }
.home-area-links a:hover { background:#173b49; color:#fff }
.home-area-links a:hover span { color:#ffb28b }
.home-area-links a:focus-visible { outline-color:#a34221 }
.home-faq { background:#fff; padding:75px 0 }
.home-faq .two-col { gap:70px }
.home-faq details { border-color:#e4e9e2; padding:0 20px }
.home-faq details[open] { padding-bottom:18px }
.home-faq summary { font-size:17px; padding-top:21px; padding-bottom:21px }
main:has(.home-hero) .home-quote { background:#f0f1e9 }
.page-intro h1 { letter-spacing:-1.8px }
.article-grid .aside { border:0; background:#e9eee6; border-radius:7px; padding:30px }
.article-grid .aside h2 { font-size:29px; letter-spacing:-1px; line-height:1.15 }
@media(max-width:1000px) {
 .hero-foot .wrap { flex-wrap:wrap; justify-content:center; gap:18px 25px }
 .hero-foot .wrap>span { flex-basis:100%; text-align:center }
 .stock-feature { gap:35px }
 .stock-feature-media img { height:400px }
}
@media(max-width:760px) {
 .home-hero .hero { min-height:590px; padding:48px 0 85px; align-items:flex-start }
 .home-hero .hero-copy { max-width:480px }
 .home-hero .hero h1 { font-size:clamp(40px,8vw,55px); letter-spacing:-1.8px; margin:20px 0 }
 .home-hero .hero .hero-lead { font-size:19px }
 .home-hero .hero p { font-size:16px }
 .home-hero .hero-media:after { background:linear-gradient(90deg,#0a2336eb,#0a233693),linear-gradient(0deg,#0a23363d,transparent) }
 .home-hero .hero-media img { object-position:64% 50% }
 .home-hero .hero-media figcaption { bottom:15px; right:20px }
 .home-hero .actions { gap:21px }
 .hero-foot .wrap { justify-content:flex-start; gap:18px 25px; padding-top:22px; padding-bottom:22px }
 .hero-foot .wrap>span { text-align:left }
 .hero-foot a { font-size:13px }
 .home-services,.home-coverage,.home-faq,main:has(.home-hero)>.section.dark { padding:50px 0 }
 .home-services .section-heading { gap:18px; margin-bottom:28px; align-items:start }
 .home-services h2,.home-coverage h2,.home-faq h2 { font-size:33px; letter-spacing:-1.2px }
 .stock-feature { grid-template-columns:1fr; gap:32px }
 .stock-feature-media img { height:320px }
 .stock-feature-copy h2 { font-size:37px; letter-spacing:-1.3px }
 .stock-feature-copy h2 br { display:none }
 .home-process { grid-template-columns:1fr; gap:24px; margin-top:35px }
 .home-process p { max-width:460px }
 .home-coverage { text-align:left }
 .home-area-links { justify-content:flex-start; gap:9px }
 .home-area-links a { font-size:14px; padding:12px 15px; gap:12px }
 .home-faq .two-col { gap:28px }
 .article-grid .aside { padding:26px }
}
@media(prefers-reduced-motion:reduce) {
 .service-card { transition:none }
 .service-card:hover { transform:none }
}

/* Custom roofline emblem and compact trade wordmark. */
.brand { gap:12px; font-size:20px; font-weight:850; letter-spacing:-.5px; line-height:1; flex-shrink:0 }
.brand .mark { width:49px; height:49px }
.brand small { font-size:11px; font-weight:750; letter-spacing:5.2px; margin:0 0 7px; line-height:1 }
.footer .brand { color:#fffaf1 }
@media(max-width:760px) {
 .brand { font-size:18px; gap:10px }
 .brand .mark { width:43px; height:43px }
 .brand small { font-size:10px; letter-spacing:4.7px; margin:0 0 6px }
}

/* Slate & Ridge: family business identity */
:root{--navy:#082039;--orange:#d88539;--paper:#fff9ed}body{background:#fffaf1;color:#173149}.header{background:#fffaf1}.header .wrap{min-height:112px}.brand .brand-badge{width:96px;height:96px;object-fit:contain}.footer .brand .brand-badge{width:170px;height:170px}.header .brand{flex-shrink:0}.home-hero{background:#09243b}.home-hero .hero{min-height:620px;gap:50px;justify-content:space-between;padding:55px 0 65px}.home-hero .hero-copy{max-width:600px}.home-hero .hero h1{font-size:clamp(42px,4.6vw,61px);letter-spacing:-1.7px;line-height:1.08}.home-hero .hero-media:after{background:linear-gradient(90deg,#082039f5,#082039dd 45%,#082039ad)}.hero-brand{width:360px;flex-shrink:0;align-self:center;text-align:center;pointer-events:auto}.hero-brand img{width:100%;height:auto;filter:drop-shadow(0 15px 30px #0003)}.home-hero .hero-brand p{font-size:18px;color:#fff1d5;line-height:1.45;margin:10px auto 0;font-weight:600}.btn.orange,.home-hero .btn.orange,.stock-feature .btn.orange{background:#e59a50;color:#09243b;border-radius:9px}.btn{border-radius:9px}.home-services,.service-hub{background:#fffaf1}.service-card.photo-card{background:#fffefb;border-radius:14px;box-shadow:0 6px 22px #432b1410}.hero-foot{background:#f3e7d2}.home-coverage{background:#f4e8d4}.home-faq{background:#fffaf1}.home-area-links a{border-radius:10px;background:#fffcf5}.stock-feature-media img{border-radius:18px}.section-heading h2,.stock-feature-copy h2,.coverage-heading h2,.home-faq h2{letter-spacing:-1.5px}.footer{background:#082039}.home-process{gap:36px}.home-process h3{color:#ffdda9}main:has(.home-hero) .home-quote{background:#f3e7d2}.photo-card:hover{box-shadow:0 10px 30px #432b1420}
@media(max-width:1000px){.hero-brand{width:280px}.home-hero .hero{gap:25px}.header .brand .brand-badge{width:85px;height:85px}}
@media(max-width:760px){.header .wrap{min-height:94px}.header .brand .brand-badge{width:82px;height:82px}.home-hero .hero{display:flex;flex-direction:column;align-items:flex-start;gap:24px;padding:38px 0 70px;min-height:0}.home-hero .hero-copy{max-width:100%}.home-hero .hero h1{font-size:43px;letter-spacing:-1.5px}.hero-brand{width:210px;align-self:center}.home-hero .hero-brand p{font-size:15px}.home-hero .hero-media img{object-position:60% center}.home-hero .hero-media:after{background:linear-gradient(180deg,#082039ed,#082039df 60%,#082039bd)}.home-hero .actions{gap:18px}.footer .brand .brand-badge{width:150px;height:150px}}
@media(prefers-reduced-motion:reduce){.photo-card .service-photo{transition:none}}

@font-face{font-family:Nunito;src:url('/assets/nunito-variable.ttf') format('truetype');font-style:normal;font-weight:200 1000;font-display:swap}
body{font-family:Nunito,ui-rounded,'Arial Rounded MT Bold',sans-serif;font-weight:600}h1,h2,h3,h4,.home-hero .hero h1{font-weight:900;letter-spacing:-.035em}.nav a{font-size:16px;font-weight:850}.btn,.menu,.read,.text-link,summary,.hero-call{font-weight:850}.eyebrow{font-weight:800}.home-hero .hero p{font-weight:650}.home-hero .hero .hero-lead{font-weight:850}.service-card-copy h3{font-weight:900}.menu{font-family:inherit;font-size:17px;font-weight:900}.header .wrap{gap:20px}
@media(max-width:860px){
body.menu-open{overflow:hidden}.menu{position:relative;z-index:102;padding:12px 18px;border-radius:12px}.menu-open .menu{position:fixed;right:22px;top:max(22px,env(safe-area-inset-top));background:#f0a65d;color:#082039}.nav.enhanced.open{position:fixed;inset:0;z-index:101;width:100%;height:100dvh;min-height:100vh;box-sizing:border-box;margin:0;padding:100px 28px max(32px,env(safe-area-inset-bottom));background:#082039;color:#fff7e7;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:8px;overflow-y:auto}.nav.enhanced.open:before{content:'Slate & Ridge';color:#f0a65d;font-size:17px;font-weight:900;margin-bottom:15px;letter-spacing:.03em}.nav.enhanced.open a{color:#fff7e7;font-size:clamp(25px,6vw,36px);font-weight:900;line-height:1.25;padding:10px 0;text-decoration:none}.nav.enhanced.open a[aria-current]{color:#f0a65d}.nav.enhanced.open .nav-phone{display:block;font-size:23px;margin:18px 0 0}.nav.enhanced.open .btn{background:#f0a65d;color:#082039;font-size:21px;padding:17px 22px;margin-top:12px;align-self:flex-start}.nav.enhanced.open a:focus-visible{outline:3px solid #f0a65d;outline-offset:4px}.menu-open .mobile-bar{visibility:hidden}
}
