:root{--navy:#162a36;--ink:#20323b;--muted:#52616a;--gold:#d3a96b;--paper:#f7f7f4;--line:#d9dedc}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:#fff;font:400 1rem/1.65 'DM Sans',sans-serif}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Manrope,sans-serif;letter-spacing:-.04em;line-height:1.16}h1{font-size:clamp(2.8rem,5.8vw,5.8rem);font-weight:700}h2{font-size:clamp(2.2rem,4vw,3.7rem)}h3{font-size:1.35rem}a{color:inherit}.wrap{width:min(1180px,calc(100% - 48px));margin:auto}.skip{position:absolute;top:-100px;background:#fff;padding:8px;z-index:20}.skip:focus{top:0}.site-header{background:#fff;border-bottom:1px solid var(--line)}.header-inner{height:86px;display:flex;align-items:center;gap:36px}.brand{display:inline-flex;align-items:center;gap:11px;text-decoration:none;color:var(--navy);font:800 1.02rem/1 Manrope,sans-serif;letter-spacing:.09em;white-space:nowrap}.brand small{display:block;font:700 .62rem/1.6 Manrope,sans-serif;letter-spacing:.26em}.brand-mark{display:grid;place-items:center;width:42px;height:42px;border:1.5px solid var(--gold);font:700 1.65rem Georgia,serif;letter-spacing:-.1em;padding-right:4px}.site-header nav{display:flex;gap:30px;margin-left:auto}.site-header nav a,.header-call{font-size:.89rem;font-weight:700;text-decoration:none}.site-header nav a:hover,.text-link:hover{color:#9a6a2e}.header-call{padding:11px 16px;border:1px solid var(--navy);white-space:nowrap}.header-call:hover{background:var(--navy);color:white}.hero{background:var(--navy);color:white}.hero-grid{min-height:600px;display:grid;grid-template-columns:1fr 1.05fr;align-items:stretch;gap:48px}.hero-copy{padding:92px 0 72px;align-self:center}.eyebrow{color:#ae824b;letter-spacing:.18em;font-size:.78rem;font-weight:700;line-height:1.4}.hero .eyebrow,.dark .eyebrow,.page-hero .eyebrow{color:var(--gold)}.hero h1{max-width:660px;margin:22px 0}.lead{font-size:1.2rem;line-height:1.6;max-width:620px;color:inherit}.hero .lead{color:#dbe2e4}.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:31px}.button{display:inline-flex;align-items:center;justify-content:center;gap:25px;padding:15px 21px;min-height:52px;background:var(--gold);color:#142734;font-weight:700;text-decoration:none;line-height:1.3}.button:hover{background:#e5bd82}.button.secondary{background:transparent;color:inherit;border:1px solid currentColor}.button.secondary:hover{background:rgba(255,255,255,.12)}.hero-note{font-size:.86rem;color:#abbac0;margin:22px 0 0}.hero-media{position:relative;min-height:520px;overflow:hidden}.hero-media img{width:100%;height:100%;object-fit:cover;display:block}.photo-note{position:absolute;bottom:20px;left:20px;background:rgba(22,42,54,.91);color:#fff;padding:12px 16px;font-size:.83rem;letter-spacing:.03em}.strip{background:var(--paper)}.intro-grid{display:grid;grid-template-columns:1fr 2fr;gap:42px;padding:45px 0;align-items:start}.intro-grid p:last-child{font:600 clamp(1.25rem,2vw,1.65rem)/1.5 Manrope,sans-serif;margin:0;max-width:760px}.section{padding:96px 0}.section-head{display:flex;justify-content:space-between;gap:40px;align-items:end;margin-bottom:32px}.section-head h2{margin:0}.section-head>p{max-width:330px;color:var(--muted)}.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.service-card{display:block;padding:31px;background:var(--paper);border:1px solid #e5e8e5;text-decoration:none;transition:transform .2s,background .2s}.service-card:hover{transform:translateY(-3px);background:#f0f2ee}.card-num{display:block;color:#986e40;font-size:.8rem;font-weight:700;letter-spacing:.15em;margin-bottom:43px}.service-card h3{font-size:1.7rem;margin-bottom:10px}.service-card p{color:var(--muted);max-width:470px}.card-link{font-size:.9rem;font-weight:700;border-bottom:1px solid var(--gold);padding-bottom:3px}.card-link span{margin-left:12px}.service-extra{margin-top:25px;color:var(--muted)}.service-extra a{font-weight:700;text-decoration-color:var(--gold)}.dark{background:var(--navy);color:#fff}.split{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:start}.split h2{max-width:550px}.split>div:nth-child(2)>p{font-size:1.12rem;line-height:1.7;max-width:540px}.dark .split>div:nth-child(2)>p{color:#d0dce0}.area{background:var(--paper)}.area .split>div:nth-child(2)>p{color:var(--muted)}.text-link{display:inline-block;margin-top:14px;font-weight:700;text-decoration-color:var(--gold)}.page-hero{background:var(--navy);color:#fff;padding:70px 0 90px}.page-hero .wrap{max-width:1180px}.page-hero h1{max-width:880px;margin:19px 0}.page-hero .lead{color:#dbe2e4}.back{display:inline-block;color:#dbe2e4;text-decoration:none;margin-bottom:55px;font-size:.9rem}.back:hover{text-decoration:underline}.service-detail{display:grid;grid-template-columns:1.35fr 1fr;gap:90px}.service-detail>div:first-child p:not(.eyebrow){font-size:1.1rem;color:var(--muted);max-width:630px}.detail-box{padding:36px;background:var(--paper)}.detail-box h3{margin-bottom:22px}.detail-box ul{list-style:none;padding:0;margin:0}.detail-box li{padding:13px 0;border-top:1px solid var(--line)}footer{background:#101f28;color:#d8e1e2;padding:60px 0 24px}.footer-inner{display:flex;justify-content:space-between;gap:50px}.brand.light{color:#fff}.footer-inner p{max-width:350px;font-size:.9rem;color:#aebdc2;margin:24px 0}.footer-links{display:flex;flex-direction:column;gap:12px;font-size:.9rem}.footer-links a{text-decoration:none}.footer-links a:hover{text-decoration:underline}.legal{border-top:1px solid #33434b;padding-top:18px;margin-top:40px;font-size:.78rem;color:#9bacb4}a:focus-visible{outline:3px solid var(--gold);outline-offset:3px}@media(max-width:950px){.site-header nav{display:none}.header-call{margin-left:auto}.hero-grid{grid-template-columns:1fr;gap:0}.hero-copy{padding:70px 0 45px}.hero-media{height:400px;min-height:0;margin:0 -24px}.split{gap:38px}}@media(max-width:650px){.wrap{width:min(100% - 36px,1180px)}.header-inner{height:72px;gap:8px}.brand{font-size:.85rem}.brand small{font-size:.51rem}.brand-mark{height:36px;width:36px;font-size:1.4rem}.header-call{padding:8px 10px;font-size:.78rem}.hero-copy{padding:62px 0 40px}.hero h1{font-size:clamp(2.65rem,11vw,4.2rem)}.hero-media{margin:0 -18px;height:290px}.intro-grid,.split,.service-detail{grid-template-columns:1fr;gap:20px}.intro-grid{padding:38px 0}.section{padding:68px 0}.section-head{display:block}.cards{grid-template-columns:1fr}.service-card{padding:26px}.card-num{margin-bottom:22px}.section-head>p{margin-top:16px}.page-hero{padding:36px 0 65px}.back{margin-bottom:38px}.footer-inner{display:block}.footer-links{margin-top:30px}.button{width:100%}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.service-card{transition:none}}
/* Expansion keeps the original navy/gold visual language and removes remote font loading. */
body{font-family:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}h1,h2,h3,.brand,.intro-grid p:last-child{font-family:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}.brand-mark{font-family:Georgia,serif}
.site-header .desktop-nav{display:flex;gap:22px;margin-left:auto}.desktop-nav a{white-space:nowrap}.header-call{margin-left:0}.header-estimate{white-space:nowrap;text-decoration:none;background:var(--navy);color:#fff;padding:11px 16px;font-size:.84rem;font-weight:700}.header-estimate:hover{background:#2d4c5e}.mobile-menu,.mobile-actions{display:none}.button.outline{background:transparent;border:1px solid currentColor;color:inherit}.button.outline:hover{background:rgba(104,112,114,.12)}.section-link{margin:28px 0 0}.resource-links{display:flex;gap:22px;flex-wrap:wrap}.service-card .card-num{display:none}.service-card h3{margin-top:42px}.related-cards{grid-template-columns:repeat(3,1fr)}.related-cards .service-card{padding:22px}.related-cards .service-card h3{margin-top:4px;font-size:1.3rem}.related-cards .service-card p{font-size:.92rem}.service-detail h3{margin-top:38px}.service-detail p{font-size:1.08rem;color:var(--muted)}.detail-box ul{margin-bottom:25px}.detail-box p{font-size:1rem;color:var(--muted)}.honest-empty{padding:38px;border:1px solid var(--line);background:#fff;max-width:750px}.honest-empty p{max-width:560px;color:var(--muted)}.faq-list{max-width:840px}.faq-item{border-bottom:1px solid var(--line);padding:7px 0}.faq-item:first-child{border-top:1px solid var(--line)}.faq-item summary{cursor:pointer;list-style:none;padding:16px 32px 16px 0;font-size:1.08rem;font-weight:700;position:relative;line-height:1.4}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary:after{content:'+';position:absolute;right:3px;font-size:1.4rem;top:10px}.faq-item[open] summary:after{content:'−'}.faq-item p{color:var(--muted);max-width:740px;margin:0 30px 20px 0}.faq-note{margin-top:30px;color:var(--muted)}.location-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.location-card{background:var(--paper);padding:30px;border:1px solid var(--line)}.location-card h2{font-size:2rem}.location-card p:not(.eyebrow){color:var(--muted)}.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.project-card{border:1px solid var(--line);text-decoration:none}.project-card img{width:100%;aspect-ratio:3/2;object-fit:cover;display:block}.project-card>div{padding:20px}.project-card .eyebrow{font-size:.7rem}.project-card h3{margin:12px 0 25px}.gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}.gallery figure{margin:0}.gallery img{width:100%;height:auto;display:block}.gallery figcaption{font-size:.9rem;color:var(--muted);margin-top:7px}.compact-hero{padding:70px 0}.compact-hero h1{max-width:850px}.form-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(290px,1fr);gap:44px;align-items:start}.estimate-form{display:grid;gap:19px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:17px}.estimate-form label{display:flex;flex-direction:column;gap:7px;font-weight:700;font-size:.95rem}.estimate-form input:not([type=checkbox]),.estimate-form select,.estimate-form textarea{width:100%;font:inherit;color:var(--ink);background:#fff;border:1px solid #9da9a9;border-radius:0;padding:13px 14px;min-height:50px}.estimate-form textarea{resize:vertical}.estimate-form input:focus,.estimate-form select:focus,.estimate-form textarea:focus{outline:3px solid var(--gold);outline-offset:1px}.estimate-form .check{display:flex;flex-direction:row;align-items:flex-start;gap:10px;font-weight:500}.estimate-form .check input{margin-top:5px;transform:scale(1.2)}.estimate-form button{justify-self:start;cursor:pointer;border:0;font:700 1rem system-ui;min-height:52px}.form-help,.small{font-size:.9rem;color:var(--muted)}.form-help{margin:0}.contact-aside{background:var(--paper);padding:30px}.contact-aside h2{font-size:1.65rem}.contact-aside .button{display:flex;margin:12px 0;color:var(--navy)}.contact-aside .button:first-of-type{background:var(--gold)}.text-button{border:0;background:none;text-decoration:underline;text-decoration-color:var(--gold);padding:5px 0;cursor:pointer;font:700 1rem system-ui;color:var(--ink)}#form-status{margin:0;font-weight:600}.copy-fallback{width:100%;min-height:180px}.cost-range{font-weight:700;color:var(--ink)!important}.detail-box .button{margin-top:20px}.hero .photo-note{font-size:.78rem}.dark .text-link{color:#fff}
@media(max-width:1100px){.header-inner{gap:20px}.header-estimate{display:none}.site-header .desktop-nav{gap:17px}}
@media(max-width:950px){.site-header .desktop-nav{display:none}.mobile-menu{display:block;margin-left:0;position:relative}.mobile-menu summary{list-style:none;cursor:pointer;border:1px solid var(--navy);padding:8px 12px;font-weight:700;font-size:.88rem}.mobile-menu summary::-webkit-details-marker{display:none}.site-header .mobile-menu nav{display:grid;position:absolute;right:0;top:47px;min-width:220px;background:#fff;border:1px solid var(--line);box-shadow:0 10px 20px rgba(0,0,0,.15);z-index:10;padding:8px}.mobile-menu nav a{padding:11px 9px;text-decoration:none;font-weight:700}.mobile-menu nav a:hover{background:var(--paper)}.header-call{margin-left:auto}.form-layout{grid-template-columns:1fr}.contact-aside{max-width:650px}.related-cards{grid-template-columns:repeat(2,1fr)}}
@media(max-width:650px){body{padding-bottom:63px}.header-inner{height:74px}.site-header .header-call{font-size:.76rem}.mobile-menu summary{padding:7px 9px}.mobile-actions{display:grid;grid-template-columns:repeat(3,1fr);position:fixed;bottom:0;left:0;right:0;z-index:15;background:var(--navy);box-shadow:0 -3px 12px rgba(0,0,0,.22);padding:4px max(8px,env(safe-area-inset-left)) max(4px,env(safe-area-inset-bottom))}.mobile-actions a{text-align:center;color:#fff;text-decoration:none;font-weight:700;padding:12px 5px;min-height:49px;border-right:1px solid #4c626d}.mobile-actions a:last-child{border:0;background:var(--gold);color:var(--navy)}.location-grid,.project-grid,.gallery,.related-cards,.field-row{grid-template-columns:1fr}.section-head{margin-bottom:28px}.service-card h3{margin-top:4px}.hero-note{line-height:1.5}.contact-aside{padding:23px}.compact-hero{padding:40px 0}.page-hero h1{font-size:clamp(2.5rem,9vw,4rem)}.page-hero .actions .button{width:100%}.footer-inner{padding-bottom:5px}}
@media(max-width:390px){.site-header .header-call{display:none}.mobile-menu{margin-left:auto}.brand{font-size:.79rem}.brand small{font-size:.47rem}}

.license-line{border-top:1px solid #33434b;margin-top:30px;padding-top:18px;font-size:.85rem;color:#c8d5d8}.dark .light-link{color:#fff;text-decoration-color:var(--gold)}

.logo-window{aspect-ratio:1.7;overflow:hidden;max-width:520px;background:#171717;margin:28px 0 0}.logo-window img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 55%}

/* Use the supplied roofline logo in every site identity position. */
.site-header .brand{display:block;flex:none;width:178px;height:80px;overflow:hidden;background:#171717}
.site-header .brand img,.footer-inner .brand img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 50%}
.footer-inner .brand{display:block;width:235px;height:108px;overflow:hidden;background:#171717}
@media(max-width:650px){.site-header .brand{width:145px;height:66px}}
@media(max-width:390px){.site-header .brand{width:140px;height:64px}}
.estimate-send-options{display:flex;flex-wrap:wrap;gap:12px}.estimate-send-options .button{width:auto;min-width:190px}.contact-aside a[href^="mailto:"]{overflow-wrap:anywhere}
@media(max-width:650px){.estimate-send-options{display:grid;grid-template-columns:1fr}.estimate-send-options .button{width:100%}}

.assessment-spotlight{background:var(--gold);color:var(--navy);padding:72px 0}.assessment-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:72px;align-items:center}.assessment-spotlight .eyebrow{color:#273d48;margin-bottom:18px}.assessment-spotlight h2{font-size:clamp(2.7rem,4.5vw,4.65rem);max-width:680px;margin-bottom:0}.assessment-lead{font-size:1.15rem;line-height:1.55;margin-bottom:14px}.assessment-benefits{list-style:none;padding:0;margin:0 0 26px;border-top:1px solid rgba(22,42,54,.3)}.assessment-benefits li{padding:9px 0 9px 28px;border-bottom:1px solid rgba(22,42,54,.3);position:relative;font-weight:700}.assessment-benefits li:before{content:"✓";position:absolute;left:0}.assessment-spotlight .button{background:var(--navy);color:#fff}.assessment-spotlight .button:hover{background:#274555}.assessment-note{margin:15px 0 0;font-size:.94rem;font-weight:700}.assessment-note a{text-underline-offset:4px}.hero-assessment-link{display:block;color:var(--gold);font-weight:700;text-underline-offset:4px;margin-top:12px}@media(max-width:800px){.assessment-grid{grid-template-columns:1fr;gap:24px}.assessment-spotlight{padding:54px 0}.assessment-spotlight h2{max-width:560px}}
/* Planning content uses the established type, colors and responsive layout. */
.reading-width{max-width:840px}.reading-width h2:not(:first-child){margin-top:42px}.reading-width p{color:var(--muted);font-size:1.08rem}.resource-list{padding-left:22px}.resource-list li{margin:12px 0}.resource-list a{text-decoration-thickness:1px;text-underline-offset:3px}.assessment-callout{background:var(--navy);color:white;border-left:6px solid var(--gold);padding:32px;margin:0 0 44px}.assessment-callout h2{font-size:clamp(1.8rem,3vw,2.5rem)}.assessment-callout p{color:#dbe2e4}.credential-note{font-size:.92rem;margin:24px 0 0;color:#dbe2e4}.hero-media .photo-note{background:rgba(16,31,40,.9);padding:10px 16px}.hero-media .photo-note a{text-decoration:underline}.cards .service-card h2{font-size:1.45rem;margin-bottom:20px}.resource-list+.actions{margin-top:24px}
@media(max-width:650px){body{padding-bottom:calc(72px + env(safe-area-inset-bottom))}.assessment-callout{padding:24px}.reading-width{width:calc(100% - 36px)}.site-header .brand{flex-shrink:0}.credential-note{line-height:1.6}}
/* Estimate request controls, using the existing design system. */
.lead-field{display:grid;gap:7px}.lead-services{border:1px solid var(--line);padding:16px;margin:0;min-width:0}.lead-services legend{font-weight:700;padding:0 6px}.service-choices{display:grid;grid-template-columns:1fr 1fr;gap:12px}.estimate-form .service-choice{display:flex;flex-direction:row;align-items:center;gap:10px;font-weight:500;min-height:44px}.service-choice input{width:20px;height:20px;flex-shrink:0}.field-error{color:#a22020;font-size:.95rem}.field-error:empty{display:none}.estimate-form [aria-invalid="true"]{border-color:#a22020}.lead-honeypot{display:none!important}#lead-status:not(:empty){border-left:4px solid var(--gold);padding:14px;background:var(--paper)}.estimate-form button:disabled{opacity:.75;cursor:wait}@media(max-width:650px){.service-choices{grid-template-columns:1fr}.estimate-form input,.estimate-form select,.estimate-form textarea{font-size:16px}.estimate-form button[type=submit]{width:100%}}

/* Blog: preserve the established palette and comfortable article reading width. */
.blog-article h2{font-size:clamp(1.65rem,3vw,2.3rem);margin-top:0}.blog-article section{margin:42px 0}.blog-article li{margin:10px 0}.blog-article a{text-underline-offset:3px}.blog-toc{background:var(--paper);border-left:4px solid var(--gold);padding:24px;margin-bottom:38px}.blog-toc h2{font-size:1.35rem}.blog-toc ul{margin-bottom:0}.blog-toc li{margin:7px 0}.blog-article .assessment-callout p{color:#dbe2e4}.blog-contact{margin:20px 0 0}.blog-feature{max-width:840px;border-left:5px solid var(--gold);padding:28px;background:var(--paper)}.blog-feature h2{font-size:clamp(1.9rem,3.5vw,3rem)}.blog-guides-title{margin-top:60px;font-size:clamp(1.9rem,3.5vw,3rem)}.blog-article section[id],.blog-article h2[id]{scroll-margin-top:20px}@media(min-width:951px){.site-header .desktop-nav{gap:17px}.header-inner{gap:22px}}@media(min-width:951px) and (max-width:1200px){.header-estimate{display:none}.site-header .desktop-nav{gap:14px}}@media(max-width:650px){.blog-feature{padding:22px}.blog-toc{padding:20px}.blog-article li{overflow-wrap:anywhere}}

/* Blog: preserve the established palette and comfortable article reading width. */
.blog-article h2{font-size:clamp(1.65rem,3vw,2.3rem);margin-top:0}.blog-article section{margin:42px 0}.blog-article li{margin:10px 0}.blog-article a{text-underline-offset:3px}.blog-toc{background:var(--paper);border-left:4px solid var(--gold);padding:24px;margin-bottom:38px}.blog-toc h2{font-size:1.35rem}.blog-toc ul{margin-bottom:0}.blog-toc li{margin:7px 0}.blog-article .assessment-callout p{color:#dbe2e4}.blog-contact{margin:20px 0 0}.blog-feature{max-width:840px;border-left:5px solid var(--gold);padding:28px;background:var(--paper)}.blog-feature h2{font-size:clamp(1.9rem,3.5vw,3rem)}.blog-guides-title{margin-top:60px;font-size:clamp(1.9rem,3.5vw,3rem)}.blog-article section[id],.blog-article h2[id]{scroll-margin-top:20px}@media(min-width:951px){.site-header .desktop-nav{gap:17px}.header-inner{gap:22px}}@media(min-width:951px) and (max-width:1200px){.header-estimate{display:none}.site-header .desktop-nav{gap:14px}}@media(max-width:650px){.blog-feature{padding:22px}.blog-toc{padding:20px}.blog-article li{overflow-wrap:anywhere}}
