@import url('https://fonts.googleapis.com/css2?family=Roboto+Slab:wght@400;600;700&family=Source+Sans+3:wght@400;600;700&display=swap');
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0}img{display:block;max-width:100%;height:auto}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}a{color:inherit;text-underline-offset:.22em}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.6}button:active,.button:active{transform:translateY(1px)}:focus-visible{outline:3px solid var(--focus);outline-offset:4px}h1,h2,h3,p,figure{margin:0}p+p{margin-top:1em}h1,h2,h3{overflow-wrap:break-word}p{max-width:65ch}.wrap{width:min(1280px,90%);margin-inline:auto}.section{padding-block:88px}.split{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}.three{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.stack>*+*{margin-top:24px}.lede{font-size:22px;line-height:1.5;max-width:50ch}.small,figcaption{font-size:14px;line-height:1.5}.button{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:48px;padding:13px 24px;text-decoration:none;border:2px solid transparent;font-weight:700;background:var(--accent);color:var(--on-accent)}.button.alt{background:transparent;color:var(--ink);border-color:var(--ink)}.button:hover{filter:brightness(.94)}.text-link{display:inline-flex;align-items:center;min-height:44px;font-weight:700}.demo{font-size:13px;line-height:1.4;padding:9px 5%;display:flex;justify-content:space-between;gap:16px;background:#dae3e7;color:#26363c}.demo a{font-weight:700;white-space:nowrap}.skip{position:absolute;left:12px;top:-100px;z-index:99;background:var(--ink);color:var(--paper);padding:12px}.skip:focus{top:10px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}[hidden]{display:none!important}.menu-toggle{display:none}.page-head{padding-block:65px 52px}.page-head p{margin-top:24px}.card img{width:100%;aspect-ratio:3/2;object-fit:cover}.card h3{margin:20px 0 12px}.card a{font-weight:700}.photo-credit{padding-top:10px;color:var(--muted)}.filters{display:flex;flex-wrap:wrap;gap:10px;margin:24px 0}.filters button{min-height:44px;border:1px solid var(--line);background:var(--paper);color:var(--ink);padding:10px 18px}.filters button[aria-pressed=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}.field{display:grid;gap:8px;margin-bottom:22px}.field label,legend{font-weight:700}.field input,.field select,.field textarea{width:100%;min-width:0;min-height:50px;border:1px solid var(--muted);border-radius:0;padding:12px;background:var(--paper);color:var(--ink)}.field textarea{min-height:125px;resize:vertical}.field input[type=range]{padding:0;accent-color:var(--accent);border:0;background:transparent}.field input[type=file]{font-size:15px}.field input::file-selector-button{padding:9px;margin-right:10px}fieldset{min-width:0;border:0;padding:0;margin:0}.choices{display:grid;gap:12px;margin:18px 0 28px}.choices label{border:1px solid var(--line);padding:15px;display:flex;gap:12px;align-items:center;cursor:pointer;min-height:50px}.choices label:has(input:checked){border:2px solid var(--accent);padding:14px;background:var(--wash)}input[type=radio],input[type=checkbox]{width:20px;height:20px;accent-color:var(--accent);flex:none}.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:25px}.notice{padding:18px 22px;background:var(--wash);color:var(--ink);font-size:15px}.error{color:#982d22;font-weight:700;margin:15px 0}.success{padding:30px;background:var(--wash);color:var(--ink);border:2px solid var(--ink)}.success:focus{outline-offset:6px}.success h2{margin-bottom:18px}.success dl{display:grid;grid-template-columns:max-content 1fr;gap:10px 24px;margin:20px 0}.success dt{font-weight:700}.success dd{margin:0;overflow-wrap:anywhere}details{border-bottom:1px solid var(--line);padding:20px 0}summary{cursor:pointer;font-weight:700;min-height:44px}details p{padding:8px 0 14px}.steps{counter-reset:stage;list-style:none;padding:0;margin:0}.steps li{counter-increment:stage;display:grid;grid-template-columns:55px 1fr;gap:20px;padding:28px 0;border-top:1px solid var(--line)}.steps li:before{content:counter(stage);font-size:24px;font-weight:700}.steps h3{margin-bottom:12px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;text-align:left}th,td{padding:20px 16px;border-bottom:1px solid var(--line);vertical-align:top}th{background:var(--wash)}.mini-nav{display:flex;flex-wrap:wrap;gap:18px}.mini-nav a{min-height:44px;display:flex;align-items:center}.noscript{padding:16px;background:var(--wash);color:var(--ink)}.enhanced{display:none}.js .enhanced{display:block}.js .fallback{display:none}::selection{background:var(--accent);color:var(--on-accent)}@media(max-width:800px){.section{padding-block:52px}.split{grid-template-columns:1fr;gap:34px}.three{grid-template-columns:1fr 1fr}.lede{font-size:19px}.page-head{padding-block:40px}.demo{font-size:12px}.demo a{white-space:normal}.wrap{width:88%}}@media(max-width:520px){.three{grid-template-columns:1fr}.demo{display:block}.demo a{display:inline-flex;margin-top:5px}.success{padding:22px}.success dl{grid-template-columns:1fr;gap:4px}.success dd{margin-bottom:14px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}button:active,.button:active{transform:none}}

.js .filters{display:flex}.js .layer-buttons{display:grid}.js .actions{display:flex}

.page-head + .section{padding-top:18px}

:root{--paper:#edf2f2;--wash:#d2e5e9;--ink:#253a40;--muted:#4b6067;--line:#9bafb5;--accent:#a73823;--on-accent:#fff7ee;--focus:#a73823}body{font:18px/1.6 'Source Sans 3',sans-serif;background:var(--paper);color:var(--ink)}h1,h2,h3,.wordmark{font-family:'Roboto Slab',Georgia,serif;font-weight:600;line-height:1.13;letter-spacing:-.035em}h1{font-size:clamp(42px,5.3vw,78px);max-width:17ch}h2{font-size:clamp(30px,3.2vw,48px);max-width:24ch}h3{font-size:27px}.mast{padding:20px 5%;display:flex;align-items:center;justify-content:space-between;gap:22px;border-bottom:1px solid var(--line)}.wordmark{text-decoration:none;font-size:36px;line-height:1}.wordmark small{display:block;font:600 11px/1.4 'Source Sans 3',sans-serif;letter-spacing:.12em;margin-top:9px}.mast nav{display:flex;gap:25px;align-items:center}.mast nav a{display:flex;align-items:center;min-height:44px;text-decoration:none;font-size:16px;font-weight:600}.mast nav a[aria-current=page]{text-decoration:underline;text-decoration-thickness:2px}.mast .button{font-size:16px}.hero{display:grid;grid-template-columns:5fr 7fr}.hero-copy{padding:55px max(35px,9%)}.hero-copy p{margin:25px 0}.hero-copy .region{font-size:16px;margin:0 0 23px}.hero-photo img{width:100%;height:570px;object-fit:cover;object-position:50% 70%}.hero-photo figcaption{background:var(--wash);padding:18px 24px}.hero-photo figcaption a{margin-left:5px}.route-heading{margin-bottom:30px}.service-rows{border-top:2px solid var(--ink)}.service-row{display:grid;grid-template-columns:1.3fr 2fr auto;gap:30px;padding:26px 0;border-bottom:1px solid var(--line);align-items:center;text-decoration:none}.service-row p{color:var(--muted)}.service-row .arrow{font-size:32px}.service-row:hover{background:var(--wash)}.inspection-band{background:var(--wash);padding-block:65px}.inspection-band .split{align-items:center}.inspection-band figure img{width:100%;aspect-ratio:1.4;object-fit:cover}.inspection-band h2{margin-bottom:24px}.inspection-list{padding-left:20px;margin:25px 0}.inspection-list li{padding:6px 0}.roof-preview{display:grid;grid-template-columns:1fr 1.25fr;gap:65px;align-items:center}.roof-preview img{aspect-ratio:1.6;object-fit:cover}.roof-preview p{margin:24px 0}.close{background:var(--accent);color:var(--on-accent);padding:55px 5%;display:flex;align-items:center;justify-content:space-between;gap:35px;--focus:#fff0c7}.close .button{background:var(--on-accent);color:var(--accent)}.close h2{font-size:38px;max-width:25ch}.foot{padding:35px 5% 25px;display:grid;grid-template-columns:1fr 2fr;gap:25px;font-size:15px}.foot .wordmark{font-size:27px}.foot p{margin-top:12px}.foot-bottom{grid-column:1/-1;border-top:1px solid var(--line);padding-top:22px;color:var(--muted);font-size:13px;display:flex;justify-content:space-between;gap:30px}.project-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:45px}.project-grid figure img{width:100%;height:auto}.project-grid article{border-top:2px solid var(--ink);padding-top:25px}.project-grid h3{margin:22px 0 12px}.project-grid a{display:inline-flex;margin-top:15px;min-height:44px;align-items:center}.guide{max-width:820px;margin-inline:auto}.guide h2{margin:40px 0 18px}.guide figure{margin:30px 0}.guide figure img{width:100%}.guide ul{padding-left:24px}.guide li{padding:7px 0}.cost-table td:last-child{white-space:nowrap;font-weight:700}.contact-grid{display:grid;grid-template-columns:1fr 1.3fr;gap:70px}.request-panel{background:#f8f9f4;padding:35px;border-top:5px solid var(--accent)}.request-panel h2{font-size:30px;margin-bottom:25px}.request-panel legend{font-family:'Roboto Slab';font-size:25px;line-height:1.2}.form-step-label{margin-bottom:20px;color:var(--muted)}.roof-workbench{background:var(--wash);padding:35px;display:grid;grid-template-columns:1.2fr 1fr;gap:35px;margin-top:35px}.roof-scene{height:410px;perspective:1000px;overflow:hidden;display:flex;align-items:center;justify-content:center;background:#c3d9df;position:relative}.roof-model{position:relative;width:270px;height:210px;transform-style:preserve-3d;transform:rotateX(57deg) rotateZ(var(--turn,-33deg));--spread:22px;transition:transform .2s}.roof-layer{position:absolute;inset:0;background:var(--layer);transform:translateZ(calc(var(--n)*var(--spread)));border:2px solid #4d6065;box-shadow:4px 8px 0 #52636b,12px 18px 24px #253a4033;transition:transform .25s}.roof-layer.top{background:#454e51 url('img/granules-720.jpg') center/cover}.roof-layer.selected{outline:6px solid var(--accent);outline-offset:4px}.roof-stage-label{position:absolute;bottom:18px;left:18px;font-size:14px;background:var(--paper);padding:5px 10px}.layer-buttons{display:grid;gap:6px;margin-bottom:22px}.layer-buttons button{text-align:left;border:0;background:transparent;border-bottom:1px solid var(--line);color:var(--ink);padding:13px 15px;font-weight:600;min-height:48px}.layer-buttons button[aria-pressed=true]{background:var(--ink);color:var(--paper)}.layer-detail{min-height:165px}.layer-detail h3{margin-bottom:12px}.layer-reference{display:grid;grid-template-columns:repeat(2,1fr);gap:30px;margin-top:45px}.layer-reference h3{font-size:24px;margin-bottom:10px}.roof-workbench .field{margin-top:20px}.photo-note{margin-top:15px}.storm-callout{padding:30px;background:var(--ink);color:var(--paper);margin-block:35px}.storm-callout h2{margin-top:0}.checklist{list-style:none;padding:0}.checklist li{border-bottom:1px solid var(--line);padding:20px 0}.checklist strong{display:block;font-size:21px;margin-bottom:6px}@media(max-width:1080px){.mast nav{gap:16px}.mast .button{display:none}.hero-copy{padding:45px 8%}.hero-photo img{height:560px}}@media(max-width:800px){.mast{flex-wrap:wrap}.mast nav{width:100%;justify-content:space-between;gap:12px}.hero{grid-template-columns:1fr}.hero-copy{padding:38px 6%}.hero h1{max-width:17ch}.hero-photo img{height:auto;max-height:410px;object-fit:contain}.hero-photo figcaption{padding:15px 6%}.service-row{grid-template-columns:1fr auto;gap:10px}.service-row p{grid-column:1}.service-row .arrow{grid-column:2;grid-row:1/3}.service-row h3{font-size:24px}.roof-preview,.project-grid,.contact-grid,.roof-workbench{grid-template-columns:1fr;gap:30px}.roof-workbench{padding:22px}.close{display:block;padding:40px 6%}.close h2{font-size:32px}.close .button{margin-top:24px}.foot{grid-template-columns:1fr}.foot-bottom{display:block}.foot-bottom a{display:inline-flex;margin-top:14px}.request-panel{padding:25px}.roof-scene{height:355px}.layer-reference{grid-template-columns:1fr}.layer-detail{min-height:0}}@media(max-width:460px){.mast nav{flex-wrap:wrap;justify-content:flex-start;column-gap:24px;row-gap:0}.mast nav a{font-size:15px}.hero-copy .region{font-size:14px}.roof-scene{height:300px}.roof-model{width:210px;height:175px}.roof-workbench{padding:15px}.cost-table{font-size:16px}.cost-table th,.cost-table td{padding:15px 10px}}

@media(max-width:460px){.roof-model{transform:scale(.76) rotateX(57deg) rotateZ(var(--turn,-33deg))}.roof-scene{height:320px}}
