:root{--navy:#08263a;--navy-deep:#061c2b;--gold:#eac578;--cream:#f7f4ec;--ink:#132f40;--muted:#546570;--line:#d9dedf}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:#fff;font-size:17px;line-height:1.6}a{color:inherit}button{font:inherit}button,a,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #bd8731;outline-offset:5px}.container{width:min(1200px,calc(100% - 80px));margin:auto}.skip{position:fixed;top:-100px;left:20px;background:white;padding:12px;z-index:99}.skip:focus{top:10px}header{background:var(--navy-deep);color:white;position:sticky;top:0;z-index:10;border-bottom:1px solid #ffffff1c}.header-inner{min-height:98px;display:flex;align-items:center;gap:28px}.brand{text-decoration:none;margin-right:auto}.monogram{font-family:Georgia,serif;font-size:37px;font-weight:bold;line-height:.95;color:var(--gold);display:block;letter-spacing:2px}.monogram span{display:block;font-family:Arial,sans-serif;font-size:10px;letter-spacing:2px;margin-top:8px;color:#fff}nav{display:flex;gap:25px;font-size:14px}nav a{text-decoration:none}nav a:hover{color:var(--gold)}.languages{display:flex;border:1px solid #ffffff45;padding:3px;gap:2px}.languages button{border:0;background:transparent;color:white;font-size:14px;padding:6px 9px;cursor:pointer}.languages button[aria-pressed=true]{background:var(--gold);color:var(--navy)}.header-phone{color:var(--gold);font-size:16px;text-decoration:none;white-space:nowrap}.hero{background:var(--navy);color:white;padding:65px 0 70px;overflow:hidden}.hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center}.eyebrow{font-size:12px;font-weight:bold;letter-spacing:2px;margin:0 0 20px}.hero .eyebrow,.contact .eyebrow,.commitment .eyebrow{color:var(--gold)}h1,h2{font-family:Georgia,'Times New Roman',serif;font-weight:normal;line-height:1.1;letter-spacing:-1.8px;white-space:pre-line}h1{font-size:clamp(42px,4.8vw,66px);margin:0 0 25px}h2{font-size:clamp(34px,3.6vw,48px);margin:0 0 22px}h3{font-size:22px;line-height:1.25;margin:0 0 14px}p{margin:0 0 20px}.hero-description{color:#d3dee4;max-width:470px;font-size:18px}.actions{display:flex;gap:23px;align-items:center;flex-wrap:wrap;margin-top:30px}.button{display:inline-block;padding:15px 22px;text-decoration:none;font-size:15px;font-weight:bold;text-align:center;line-height:1.4}.gold{background:var(--gold);color:var(--navy-deep);border:1px solid var(--gold)}.gold:hover{background:#f6d998}.text-link{font-size:15px;color:#fff;text-underline-offset:5px}.hero-note{font-size:14px;display:flex;gap:12px;align-items:center;margin-top:36px;color:#c3d0d8}.small-line{height:1px;width:30px;background:var(--gold)}.hero-visual{margin:0;position:relative;background:var(--cream)}.house-photo{height:390px;background-image:url('roofing-reference.png');background-size:auto 1680px;background-position:center -242px;background-repeat:no-repeat}.hero-visual figcaption{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;color:var(--navy);gap:10px}.hero-visual figcaption>span{font-family:Georgia,serif;font-size:24px}.hero-visual small{font-size:12px;color:var(--muted)}.affiliation{background:var(--gold);font-size:14px}.affiliation .container{display:flex;justify-content:space-between;gap:20px;padding-top:17px;padding-bottom:17px}.license{font-weight:bold;white-space:nowrap}.section{padding:90px 0}.section-intro{max-width:630px}.section-intro>p:last-child{color:var(--muted)}.services .eyebrow,.process .eyebrow,.faq .eyebrow{color:#8f6528}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:38px;margin-top:42px}.service{border-top:2px solid var(--navy);padding-top:24px;display:flex;flex-direction:column}.number{font-family:Georgia,serif;color:#a17c3c;font-size:30px;margin-bottom:23px}.service p{font-size:16px;color:var(--muted)}.service a{font-size:14px;font-weight:bold;text-underline-offset:6px;margin-top:auto}.service a:hover{color:#936c2c}.commitment{background:var(--navy);color:white}.commitment-grid{display:grid;grid-template-columns:1fr 1fr;gap:90px}.commitment-grid>div>p:last-child{color:#c4d3dd;max-width:450px}.promise-list>div{display:flex;gap:22px;padding:20px 0;border-bottom:1px solid #ffffff22}.promise-list>div:first-child{padding-top:0}.promise-list h3{font-size:20px}.promise-list p{font-size:16px;color:#c4d3dd;margin:0}.check{color:var(--gold);font-size:24px}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:45px;margin-top:40px}.steps span{display:flex;width:40px;height:40px;align-items:center;justify-content:center;border:1px solid #b7c4cb;color:var(--navy);margin-bottom:20px}.steps h3{font-size:20px}.steps p{font-size:16px;color:var(--muted);margin:0}.faq{background:var(--cream)}.faq-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:80px}details{border-top:1px solid #bdc8ca;padding:23px 0}details:last-child{border-bottom:1px solid #bdc8ca}summary{cursor:pointer;font-size:18px;font-weight:bold}details p{font-size:16px;margin:20px 0 0;color:var(--muted)}.contact{background:var(--navy-deep);color:white}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:90px}.contact-grid>div>p:not(.eyebrow){color:#c4d3dd;max-width:420px}.contact-options{display:flex;flex-direction:column;align-items:flex-start}.contact-phone{text-decoration:none}.contact-phone small{display:block;font-size:12px;letter-spacing:2px;color:#c4d3dd}.contact-phone span{font-family:Georgia,serif;font-size:clamp(32px,4vw,49px);letter-spacing:-1px;color:var(--gold);line-height:1.4}.email{font-size:18px;overflow-wrap:anywhere;text-underline-offset:6px;margin:7px 0 28px;max-width:100%}.contact-hint{font-size:14px;margin:17px 0 0;color:#c4d3dd;max-width:390px}footer{background:var(--navy-deep);color:#afc2ce;border-top:1px solid #ffffff22;padding:30px 0;font-size:12px}.footer-inner{display:flex;justify-content:space-between;align-items:center;gap:25px}.footer-inner strong{color:white;font-size:15px}.footer-inner div span{display:block}footer a{font-size:14px;text-underline-offset:4px}@media(min-width:1600px){.house-photo{background-size:auto 1680px;background-position:center -242px}}@media(max-width:1050px){.container{width:calc(100% - 48px)}.header-inner{gap:20px}nav{gap:16px}.header-phone{display:none}.hero-grid{gap:30px}.house-photo{height:350px;background-size:auto 1536px;background-position:center -222px}.hero-visual figcaption{flex-direction:column;align-items:flex-start}.commitment-grid,.contact-grid{gap:45px}.faq-grid{gap:45px}}@media(max-width:720px){.container{width:calc(100% - 40px)}.header-inner{min-height:82px;gap:12px}.monogram{font-size:30px}.monogram span{font-size:9px}nav{margin-right:5px}nav a{display:none}nav a:last-child{display:block;font-size:14px}.languages button{padding:6px}.hero{padding:44px 0}.hero-grid,.commitment-grid,.contact-grid,.faq-grid{grid-template-columns:1fr;gap:38px}h1{font-size:46px}.hero-description{font-size:17px}.hero .eyebrow{font-size:11px;letter-spacing:1.6px}.house-photo{height:285px;background-size:auto 1250px;background-position:center -180px}.hero-visual figcaption{flex-direction:row;padding:15px;align-items:center}.hero-visual figcaption>span{font-size:20px}.hero-note{margin-top:25px}.affiliation .container{flex-direction:column;gap:4px;font-size:12px;padding-top:14px;padding-bottom:14px}.section{padding:60px 0}.service-grid,.steps{grid-template-columns:1fr;gap:32px}.service{padding-top:18px}.number{margin-bottom:15px}.service p{max-width:460px}.steps>div{display:grid;grid-template-columns:42px 1fr;column-gap:18px}.steps span{grid-row:1 / 3}.steps p{grid-column:2}.footer-inner{align-items:flex-start;flex-direction:column;gap:14px}.contact-phone span{font-size:42px}.email{font-size:16px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.projects{background:var(--cream)}.projects .eyebrow{color:#8f6528}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;margin-top:38px}.project-card{margin:0;background:white}.project-photo{display:block;width:100%;border:0;padding:0;background:var(--navy);cursor:zoom-in;overflow:hidden}.project-photo img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;transition:transform .2s}.project-photo:hover img{transform:scale(1.025)}.project-card figcaption{padding:15px 18px;font-size:16px}.photo-dialog{border:0;padding:54px 16px 16px;background:var(--navy-deep);color:white;width:min(1100px,calc(100% - 24px));max-height:calc(100dvh - 24px);overflow:auto}.photo-dialog::backdrop{background:#000c}.photo-dialog img{display:block;max-width:100%;max-height:calc(100dvh - 155px);object-fit:contain;margin:auto}.photo-dialog p{text-align:center;margin:14px 0 0;font-size:16px}.photo-close{position:absolute;right:10px;top:5px;width:44px;height:44px;border:0;background:transparent;color:white;font-size:32px;cursor:pointer}body.photo-open{overflow:hidden}@media(max-width:1050px){nav{gap:12px}.header-inner{gap:14px}.project-grid{gap:18px}}@media(max-width:850px){.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){nav a{display:none}.project-grid{gap:14px}.project-card figcaption{font-size:14px;padding:12px}}@media(max-width:450px){.project-grid{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){.project-photo img{transition:none}}

.reviews{background:white}.reviews .eyebrow{color:#8f6528}.reviews-layout{display:grid;grid-template-columns:1fr 1fr;gap:50px;margin-top:35px}#review-form{background:var(--cream);padding:28px}#review-form>label,legend{display:block;font-size:16px;font-weight:bold;margin-bottom:8px}#review-form input:not([type=radio]),#review-form textarea{font:inherit;padding:12px;border:1px solid #8799a3;width:100%;background:white;color:var(--ink);border-radius:0;margin-bottom:20px}#review-form textarea{resize:vertical}#review-form fieldset{border:0;padding:0;margin:0 0 20px}.rating-options{display:flex;gap:8px;flex-wrap:wrap}.rating-options label{cursor:pointer}.rating-options input{position:absolute;opacity:0}.rating-options span{display:block;border:1px solid #8799a3;background:white;padding:10px 14px;font-size:16px}.rating-options input:checked+span{background:var(--navy);color:var(--gold);border-color:var(--navy)}.rating-options input:focus-visible+span{outline:3px solid #bd8731;outline-offset:3px}.review-help{font-size:14px;color:var(--muted)}.review-trap{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.review-item{border-top:1px solid var(--line);padding:22px 0}.review-item h3{font-size:18px;margin:0 0 5px}.review-item .review-stars{color:#936c2c;font-size:21px;letter-spacing:2px}.review-item p{white-space:pre-wrap;overflow-wrap:anywhere;margin:12px 0 0}.review-item time{font-size:14px;color:var(--muted)}#review-status{font-size:16px;margin:18px 0 0}#review-status:empty{display:none}.review-secondary{background:white;border:1px solid var(--navy);color:var(--navy);cursor:pointer}.button:disabled{opacity:.65;cursor:wait}.review-admin-link{margin-top:15px}.review-admin-link a{font-size:14px}[hidden]{display:none!important}@media(max-width:900px){nav{gap:10px;font-size:14px}.reviews-layout{gap:28px}}@media(max-width:720px){nav a{display:none}nav a:last-child{display:block}.reviews-layout{grid-template-columns:1fr}#review-form{padding:22px}.rating-options span{padding:10px 12px}}

.manufacturers{background:var(--navy);color:white}.manufacturers .eyebrow{color:var(--gold)}.manufacturers .section-intro>p:last-child{color:#d3dee4}.manufacturer-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px;margin-top:38px}.manufacturer-card{background:white;color:var(--ink);padding:28px;display:flex;flex-direction:column;min-width:0}.manufacturer-card>h3{font-size:26px;line-height:1.2;padding-bottom:20px;border-bottom:2px solid var(--gold);margin:0 0 24px}.manufacturer-model{margin-bottom:25px}.manufacturer-model h4{font-size:19px;line-height:1.3;margin:0 0 12px}.manufacturer-model p{font-size:16px;color:var(--muted);margin-bottom:15px}.manufacturer-card a{font-size:15px;text-underline-offset:5px;overflow-wrap:anywhere}.manufacturer-warranty{margin-top:auto;padding-top:18px;border-top:1px solid var(--line)}.manufacturer-notes{margin-top:28px;max-width:930px}.manufacturer-notes p{font-size:15px;color:#d3dee4;margin-bottom:12px}nav{flex-wrap:wrap;justify-content:flex-end;flex:1}@media(max-width:1200px){.header-phone{display:none}}@media(max-width:900px){.manufacturer-grid{grid-template-columns:1fr}.manufacturer-card{padding:25px}.manufacturer-model{max-width:650px}}

.manufacturer-link{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.copy-manufacturer-link{border:1px solid #b7c4cb;background:#f7f4ec;color:var(--ink);font-size:14px;min-height:44px;padding:8px 12px;cursor:pointer}.copy-manufacturer-link:hover{background:#eac578}.manufacturer-link-status{flex-basis:100%;font-size:14px;line-height:1.5;color:var(--muted)}.manufacturer-link-status:empty{display:none}.manufacturer-link-url{width:100%;min-width:0;font:inherit;font-size:16px;padding:10px;border:1px solid #b7c4cb;background:#fff;color:var(--ink)}
