/* Faîtage: architectural lines, terracotta and deliberate typographic scale. */
@font-face{font-family:RoofStrong;src:url(../fonts/condensed-bold.woff2) format('woff2');font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:RoofBody;src:url(../fonts/body-bold.woff2) format('woff2');font-style:normal;font-weight:700;font-display:swap}
body.theme-roof{--paper:#fff9f0;--ink:#272824;--accent:#b24b32;--muted:#655e57;--line:#dfd3c6;--wash:#f1e6d9;--inverse:#fffaf1;--gutter:clamp(22px,5vw,92px)}
.theme-roof .site-header{min-height:96px}.theme-roof .brand strong{font-family:RoofStrong,var(--sans);font-weight:700;font-size:36px;letter-spacing:.04em}.theme-roof .brand .mark{color:var(--accent)}.theme-roof .site-header nav{font-size:14px}.theme-roof .nav-contact{background:var(--accent);color:var(--inverse);border:0}.theme-roof .button{font-size:15px;border-radius:3px}.theme-roof .text-link{font-size:14px}
.theme-roof .roof-hero{position:relative;display:grid;grid-template-columns:46% 54%;min-height:660px;background:#f0e4d6}
.theme-roof .roof-hero-copy{padding:60px 5% 65px var(--gutter);position:relative;z-index:1;align-self:center}
.theme-roof .roof-hero h1{font:700 clamp(63px,7vw,108px)/.96 RoofStrong,var(--sans);letter-spacing:-.028em;max-width:700px;text-wrap:balance}
.theme-roof .roof-hero-copy>p{max-width:520px;margin:30px 0;font-size:18px;line-height:1.65;color:#5a5048}.theme-roof .roof-discover{display:block;width:fit-content;font-size:14px;padding:15px 0;margin-top:10px}.theme-roof .roof-discover span{margin-left:18px}
.theme-roof .roof-hero-image{position:relative;min-width:0;overflow:hidden;clip-path:polygon(16% 0,100% 0,100% 100%,0 100%);margin-left:-9%}.theme-roof .roof-hero-image picture,.theme-roof .roof-hero-image img{width:100%;height:100%;object-fit:cover}.theme-roof .roof-hero-image img{animation:roof-camera 20s ease-in-out infinite alternate;object-position:60% center}
.theme-roof .roof-hero-caption{position:absolute;right:var(--gutter);bottom:42px;padding:23px 27px;background:#fff9f0eb;max-width:280px;border-left:4px solid var(--accent)}.theme-roof .roof-hero-caption>span{font-size:11px;text-transform:uppercase;letter-spacing:.15em;color:var(--accent)}.theme-roof .roof-hero-caption strong{font:400 32px/1.06 var(--serif);display:block;margin-top:9px}
.theme-roof .roof-location-strip{display:flex;justify-content:space-between;gap:25px;padding:20px var(--gutter);background:var(--accent);color:var(--inverse);font-size:13px;letter-spacing:.035em}.theme-roof .roof-location-strip i{font-style:normal;margin:0 15px;opacity:.5}
.theme-roof .roof-materials{display:grid;grid-template-columns:.9fr 1.1fr;gap:8vw;align-items:center}.theme-roof .roof-material-intro h2{font-size:clamp(49px,5vw,80px);color:var(--accent);max-width:620px}.theme-roof .roof-material-intro>p{font-size:17px;color:var(--muted);margin-top:30px;max-width:560px}
.theme-roof .roof-material-tabs{display:flex;gap:12px;margin-top:35px}.theme-roof .roof-material-tabs button{display:flex;align-items:center;gap:35px;justify-content:space-between;flex:1;background:transparent;border:1px solid var(--line);padding:16px 20px;text-align:left;color:var(--ink);font-size:18px}.theme-roof .roof-material-tabs button[aria-selected=true]{color:var(--inverse);background:var(--accent);border-color:var(--accent)}.theme-roof .roof-material-tabs button:hover{border-color:var(--accent)}
.theme-roof .roof-material-panel{border-bottom:1px solid var(--line)}.theme-roof .roof-material-panel[hidden]{display:none}.theme-roof .roof-material-photo{aspect-ratio:1.9;overflow:hidden}.theme-roof .roof-material-photo picture,.theme-roof .roof-material-photo img{width:100%;height:100%;object-fit:cover}.theme-roof .roof-material-body{padding:28px 0}.theme-roof .roof-material-body h3{font-size:40px;margin-bottom:18px}.theme-roof .roof-material-body p{font-size:16px;color:var(--muted)}.theme-roof .roof-material-body small{display:block;color:var(--accent);font-size:12px;margin-bottom:18px;letter-spacing:.02em}
.theme-roof .roof-services{background:#f4ecdf;padding-top:75px}.theme-roof .roof-service-heading{display:grid;grid-template-columns:1.3fr .7fr;align-items:end;gap:6vw;margin-bottom:50px}.theme-roof .roof-service-heading h2{font:700 clamp(45px,5vw,72px)/1.02 RoofStrong,var(--sans);letter-spacing:-.018em;max-width:680px}.theme-roof .roof-service-heading>p{font-size:16px;color:var(--muted);margin:0}
.theme-roof .roof-service-layout{display:grid;grid-template-columns:1.35fr .8fr;gap:7vw;align-items:start}.theme-roof .roof-service-list{border-top:1px solid #cbbbab}.theme-roof .roof-service-list article{padding:27px 0;border-bottom:1px solid #cbbbab;display:grid;grid-template-columns:48px 1fr;gap:21px}.theme-roof .roof-service-number{font:700 32px/1.1 RoofStrong,var(--sans);color:var(--accent)}.theme-roof .roof-service-list h3{font:700 25px/1.16 RoofBody,var(--sans);letter-spacing:-.02em;margin-bottom:14px}.theme-roof .roof-service-list h3 a:hover{color:var(--accent)}.theme-roof .roof-service-list p{font-size:16px;color:var(--muted);line-height:1.7;margin-bottom:9px}.theme-roof .roof-service-list .text-link{font-size:13px;border-color:#c9b4a2}
.theme-roof .roof-craft{position:sticky;top:25px}.theme-roof .roof-craft-photo{aspect-ratio:.83;overflow:hidden}.theme-roof .roof-craft-photo picture,.theme-roof .roof-craft-photo img{width:100%;height:100%;object-fit:cover;object-position:37% center}.theme-roof .roof-craft>p{font:400 35px/1.1 var(--serif);margin:26px 0;color:var(--accent)}.theme-roof .roof-detail-photo{aspect-ratio:1.8;overflow:hidden}.theme-roof .roof-detail-photo picture,.theme-roof .roof-detail-photo img{width:100%;height:100%;object-fit:cover}.theme-roof .roof-craft img{transition:transform .65s}.theme-roof .roof-craft:hover img{transform:scale(1.03)}
.theme-roof .roof-leak{display:grid;grid-template-columns:.85fr 1.15fr;isolation:isolate;background:#272824;color:#fff9f0;overflow:hidden}.theme-roof .roof-leak-photo{min-height:510px;opacity:.75}.theme-roof .roof-leak-photo picture,.theme-roof .roof-leak-photo img{height:100%;width:100%;object-fit:cover}.theme-roof .roof-leak-copy{padding:70px clamp(30px,5vw,90px);align-self:center}.theme-roof .roof-leak h2{font-size:clamp(43px,4.5vw,72px);margin-bottom:25px}.theme-roof .roof-leak p{color:#ddd5c9;font-size:17px}.theme-roof .roof-leak small{display:block;margin-top:28px;font-size:12px;color:#bdb9af}
.theme-roof .roof-process h2{font-size:clamp(43px,4.7vw,72px);max-width:860px}.theme-roof .roof-process-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6vw;margin-top:55px}.theme-roof .roof-process-steps article{position:relative;border-top:2px solid var(--accent);padding-top:25px}.theme-roof .roof-process-steps article>span{font:700 42px RoofStrong,var(--sans);color:var(--accent)}.theme-roof .roof-process-steps h3{font:700 24px/1.2 RoofBody,var(--sans);margin:15px 0 18px;letter-spacing:-.02em}.theme-roof .roof-process-steps p{font-size:16px;color:var(--muted)}
.theme-roof .roof-faq{display:grid;grid-template-columns:.8fr 1.2fr;gap:8vw;padding-top:0}.theme-roof .roof-faq h2{font-size:clamp(45px,4.6vw,69px)}.theme-roof .faq-list summary{font-size:16px}.theme-roof .faq-list details p{font-size:15px}
.theme-roof .roof-contact{display:grid;grid-template-columns:.9fr 1.1fr;gap:9vw;background:var(--wash)}.theme-roof .roof-contact h2{font-size:clamp(49px,5vw,78px);color:var(--accent);margin-bottom:28px}.theme-roof .roof-contact>div>p{font-size:17px;color:var(--muted)}.theme-roof .roof-contact dl{margin-top:38px;display:grid;grid-template-columns:95px 1fr;gap:15px 25px;font-size:14px}.theme-roof .roof-contact dd{margin:0;overflow-wrap:anywhere}.theme-roof .roof-contact dt{color:var(--muted)}.theme-roof .contact-form input:not([type=checkbox]),.theme-roof .contact-form textarea,.theme-roof .contact-form select{font-size:16px;background:var(--paper);border:1px solid #d5c6b6;border-radius:3px}.theme-roof .contact-form label{font-size:14px}.theme-roof .site-footer{background:var(--accent);color:#fff9f0;--muted:#f2ded3;--line:#ffffff40;--ink:#fff9f0}.theme-roof .site-footer .brand .mark{color:#fff9f0}
.theme-roof .inner-hero h1,.theme-roof .page-intro h1{font-family:RoofStrong,var(--sans);font-weight:700;letter-spacing:-.02em}.theme-roof .prose h2{color:var(--accent)}.theme-roof .prose{font-size:17px}.theme-roof .service-aside{border-top:3px solid var(--accent)}.theme-roof .service-aside li,.theme-roof .service-card>p{font-size:15px}
.theme-roof .site-footer .mark{filter:brightness(0) invert(1)}
@keyframes roof-camera{from{transform:scale(1)}to{transform:scale(1.05)}}
@media(max-width:1100px){.theme-roof .site-header nav{font-size:12px;gap:18px}.theme-roof .brand strong{font-size:30px}.theme-roof .roof-hero{min-height:650px;grid-template-columns:49% 51%}.theme-roof .roof-hero h1{font-size:83px}.theme-roof .roof-hero-copy>p{font-size:16px}.theme-roof .roof-hero-caption{right:20px;bottom:28px;padding:20px;max-width:210px}.theme-roof .roof-hero-caption strong{font-size:29px}.theme-roof .roof-materials{gap:6vw}.theme-roof .roof-material-tabs button{gap:20px;padding:13px 17px}.theme-roof .roof-service-layout{gap:5vw}.theme-roof .roof-craft>p{font-size:30px}.theme-roof .roof-service-list h3{font-size:23px}.theme-roof .roof-leak-copy{padding:50px 35px}}
@media(max-width:800px){.theme-roof .site-header{min-height:88px}.theme-roof .site-header nav{font-size:16px}.theme-roof .roof-hero{grid-template-columns:1fr}.theme-roof .roof-hero-copy{padding:50px var(--gutter) 45px}.theme-roof .roof-hero h1{font-size:clamp(66px,11vw,94px);max-width:650px}.theme-roof .roof-hero-copy>p{max-width:600px;font-size:18px}.theme-roof .roof-hero-image{margin:0;clip-path:none;height:57vw;max-height:500px}.theme-roof .roof-hero-caption{right:var(--gutter);max-width:260px}.theme-roof .roof-location-strip{font-size:12px;flex-wrap:wrap;gap:6px 20px}.theme-roof .roof-materials{grid-template-columns:1fr;gap:40px}.theme-roof .roof-material-intro h2{max-width:650px}.theme-roof .roof-material-tabs{max-width:500px}.theme-roof .roof-material-panels{max-width:700px;width:100%}.theme-roof .roof-service-heading{display:block}.theme-roof .roof-service-heading p{max-width:600px;margin-top:25px}.theme-roof .roof-service-layout{grid-template-columns:1fr}.theme-roof .roof-craft{display:grid;grid-template-columns:1fr 1fr;gap:25px;position:static;align-items:center}.theme-roof .roof-craft-photo{grid-row:1/3;aspect-ratio:1}.theme-roof .roof-craft>p{margin:0}.theme-roof .roof-leak{grid-template-columns:1fr}.theme-roof .roof-leak-photo{height:50vw;min-height:0;max-height:400px}.theme-roof .roof-leak-copy{padding:55px var(--gutter) 65px}.theme-roof .roof-process-steps{gap:25px}.theme-roof .roof-process-steps h3{font-size:22px}.theme-roof .roof-faq,.theme-roof .roof-contact{grid-template-columns:1fr;gap:35px}.theme-roof .roof-contact h2{max-width:650px}.theme-roof .roof-contact dl{max-width:550px}}
@media(max-width:520px){.theme-roof .brand strong{font-size:28px}.theme-roof .roof-hero h1{font-size:68px}.theme-roof .roof-hero-copy{padding-top:40px;padding-bottom:32px}.theme-roof .roof-hero-copy>p{font-size:16px;margin:22px 0}.theme-roof .roof-hero-image{height:80vw}.theme-roof .roof-hero-caption{bottom:22px;max-width:205px;padding:17px 19px}.theme-roof .roof-hero-caption strong{font-size:29px}.theme-roof .roof-location-strip{font-size:11px;padding-block:18px}.theme-roof .roof-location-strip i{margin:0 8px}.theme-roof .roof-material-intro h2{font-size:49px}.theme-roof .roof-material-intro>p{font-size:16px}.theme-roof .roof-material-body h3{font-size:37px}.theme-roof .roof-material-photo{aspect-ratio:1.45}.theme-roof .roof-material-tabs{margin-top:25px}.theme-roof .roof-material-tabs button{font-size:17px}.theme-roof .roof-service-list article{grid-template-columns:34px 1fr;gap:12px}.theme-roof .roof-service-list h3{font-size:22px}.theme-roof .roof-service-list p{font-size:15px}.theme-roof .roof-service-number{font-size:29px}.theme-roof .roof-service-layout{gap:35px}.theme-roof .roof-craft{gap:17px}.theme-roof .roof-craft>p{font-size:25px}.theme-roof .roof-craft-photo{aspect-ratio:.65}.theme-roof .roof-detail-photo{aspect-ratio:1.15}.theme-roof .roof-leak h2{font-size:48px}.theme-roof .roof-leak .button{font-size:14px;gap:15px;width:100%;padding-inline:17px}.theme-roof .roof-process-steps{grid-template-columns:1fr;gap:30px;margin-top:35px}.theme-roof .roof-process-steps article{display:grid;grid-template-columns:42px 1fr;gap:12px 18px}.theme-roof .roof-process-steps article>span{grid-row:1/3;font-size:34px}.theme-roof .roof-process-steps h3{margin:0}.theme-roof .roof-process-steps p{margin:0;font-size:15px}.theme-roof .roof-contact dl{grid-template-columns:1fr;gap:3px}.theme-roof .roof-contact dt:not(:first-child){margin-top:12px}.theme-roof .roof-contact h2{font-size:51px}.theme-roof .roof-contact .button{width:100%}}
@media(max-width:380px){.theme-roof .brand strong{font-size:25px}.theme-roof .roof-hero h1{font-size:58px}.theme-roof .roof-hero-caption{max-width:180px}.theme-roof .roof-hero-caption strong{font-size:26px}.theme-roof .roof-craft>p{font-size:23px}.theme-roof .roof-material-tabs button{padding:12px;font-size:16px}}
@media(prefers-reduced-motion:reduce){.theme-roof .roof-hero-image img{animation:none}.theme-roof .roof-craft img{transition:none}}
