/* Roofwork / source-preserving editorial elevation. */
body[data-template=roofwork]{--rw-paper:#f6f2ee;--rw-ink:#191c20;--rw-muted:#616269;--rw-red:#bc1b2e;font-size:20px;line-height:1.65;background:#eee3de}
body[data-template=roofwork] .site-shell{box-shadow:0 22px 75px -38px #4e332f50,inset 0 1px #fff}
header{height:112px;padding-inline:6%;background:#fdfbf9;gap:25px}header nav{gap:24px}header nav a{font-size:16px}header .button{font-size:16px!important;min-height:54px}
.lab-strip{font-size:14px!important;padding-block:12px!important;line-height:1.5!important;gap:20px}
body[data-template=roofwork] .button,body[data-template=roofwork] .craft-control{font-size:18px!important;padding:17px 24px!important;min-height:56px;gap:18px;line-height:1.4;white-space:normal}
body[data-template=roofwork] header .button{font-size:16px!important;padding:15px 20px!important}
body[data-template=roofwork] .button:focus-visible,body[data-template=roofwork] .craft-control:focus-visible{outline:3px solid #191c20;outline-offset:5px}
body[data-template=roofwork] :is(.page--metal,.page--core,.page--story,.page--projects,.closing) .button:focus-visible{outline-color:#fff}
.hero{height:clamp(730px,55vw,880px);background:linear-gradient(115deg,#fffdfb,#f1ebe7)}
.hero h1{font-size:clamp(92px,9.2vw,149px);font-weight:600;letter-spacing:-.065em}
.hero .first-word{top:9%;left:16%}.hero .second-word{top:27%;left:40%}
.hero-note{left:61.5%;top:8.5%;width:31%}.hero-note p,.hero-action p{font-size:20px;line-height:1.5;color:#5a5c61}
.hero-action{left:14%;top:31%}.hero-action p{margin-bottom:22px}.hero-roof{top:10%;transform-origin:50% 90%}
.hero-caption{font-size:14px;letter-spacing:.05em;bottom:25px;text-shadow:0 1px 5px #111}
.hero-material{border-width:7px;box-shadow:0 0 0 1px #c9c3bf,0 13px 24px -10px #35241e50}
.ticker{background:#676870;font-size:22px;padding-block:25px}
.page-opening{padding:76px 6% 112px;min-height:760px;background:linear-gradient(112deg,#fffdfa,#f0ebe6);isolation:isolate}
.opening-copy{position:relative;width:52%;z-index:2}
.page-opening .opening-copy h1{font-size:clamp(54px,5.2vw,76px);line-height:1.06;letter-spacing:-.055em;text-wrap:balance;font-weight:550}
.page-opening .opening-description{font-size:21px;line-height:1.65;max-width:37ch;margin-top:26px!important;color:#5c5d62}
body[data-template=roofwork] .eyebrow{font-size:15px!important;line-height:1.5;letter-spacing:.065em;gap:9px}
.opening-copy .button{margin-top:24px;max-width:100%}
.opening-meta{font-size:14px!important;line-height:1.5;letter-spacing:.04em;left:6%;right:6%;bottom:28px;border-color:#b9b0a84d}
.opening-art{isolation:isolate}.opening-art img{width:100%;height:100%;object-fit:cover}.opening-art .motion-layer{height:100%;transform-origin:center;backface-visibility:hidden}
.material-caption{position:absolute;right:7%;bottom:105px;width:31%;max-width:340px;padding:20px 24px;border:1px solid #fff9;border-radius:16px;background:#faf6f0;box-shadow:0 15px 35px -18px #31211a60,inset 0 1px #fff;z-index:3;color:#23242a;pointer-events:none}
.material-caption>span{display:block;font-size:14px;font-weight:700;letter-spacing:.055em;text-transform:uppercase;color:#a32330}.material-caption p{font-size:18px;line-height:1.45;margin:8px 0 0;color:#4a4b51}
.page--services .opening-art,.page--metal .opening-art{height:70%;bottom:16%;right:0;width:46%;filter:drop-shadow(0 34px 18px #14131d35)}
.page--services .material-caption,.page--metal .material-caption{bottom:100px;right:9%}
.page--metal{background:linear-gradient(120deg,#181e24,#343d46);color:white}.page--metal .opening-description,.page--core .opening-description{color:#d6d9dc}.page--metal h1 span{color:#bec6cd}
.page--metal .material-caption{background:#353f48;color:white;border-color:#81909a55;box-shadow:inset 0 1px #ffffff30,0 18px 45px -18px #0008}.page--metal .material-caption p{color:#edf0f2}.page--metal .material-caption>span{color:#ffbec5}
.page--about .opening-art{left:5%;width:39%;bottom:22%;border:10px solid #fffdfa;box-shadow:0 25px 50px -20px #25151155,0 0 0 1px #ded5cf}.page--about .opening-copy{margin-left:49%;width:51%}.page--about .material-caption{left:10%;right:auto;bottom:90px}
.page--profile .opening-art{right:5%;width:37%;height:74%;bottom:14%;border-radius:48% 48% 24px 24px;box-shadow:0 25px 45px -15px #281b1940}.page--profile .material-caption{right:8%;bottom:90px}
.page--repair .opening-art,.page--replacement .opening-art{right:4%;width:44%;height:69%;bottom:17%;border-radius:26px 80px 26px 26px;box-shadow:0 25px 45px -18px #211c2350}.page--replacement .opening-copy,.page--repair .opening-copy{width:48%}.page--repair .material-caption,.page--replacement .material-caption{right:7%;bottom:95px}
.page--projects,.page--story{min-height:810px;background:#1c2528}.page--projects .opening-copy,.page--story .opening-copy{width:70%}.page--projects .opening-description,.page--story .opening-description{color:#f0efed;max-width:40ch}.page--projects:after,.page--story:after{background:linear-gradient(90deg,#10191ee0,#10191e15 100%),linear-gradient(0deg,#10191ea6,transparent 80%)}
.page--story .opening-art img{object-position:65% center}.page--projects .opening-copy h1,.page--story .opening-copy h1{font-size:clamp(56px,5.4vw,80px)}
.page--journal .opening-art{width:50%;height:80%;bottom:9%;right:-1%}.page--journal .opening-copy{width:49%}.page--journal .material-caption{right:10%;bottom:90px}
.page--article .opening-copy{width:54%}.page--article .opening-art{right:4%;width:40%;height:67%;bottom:20%;border-radius:65px 24px 24px 24px;overflow:hidden;box-shadow:0 25px 50px -20px #392b2350}.page--article .material-caption{right:8%;bottom:95px}
.page--core{background:linear-gradient(120deg,#1c2127,#363e46)}.page--core .opening-copy{width:53%}.page--core .opening-art{width:40%;height:67%;bottom:19%;right:3%;overflow:hidden;border:8px solid #e5dfda;border-radius:22px;box-shadow:0 35px 50px -15px #0008;transform:rotate(3deg)}.page--core .opening-art img{object-position:top}.page--core .material-caption{right:6%;bottom:90px}
.page--contact{min-height:540px;padding-top:65px;padding-bottom:80px}.page--contact .opening-copy{width:58%}.page--contact .opening-copy h1{font-size:clamp(52px,5vw,72px)}.page--contact .opening-art{width:36%;height:77%;bottom:12%;right:4%;border-radius:24px 70px 24px 24px;overflow:hidden;box-shadow:0 20px 45px -18px #34231c60}.page--contact .material-caption{right:7%;bottom:45px;width:30%;padding:16px 20px}.page--contact .opening-description{font-size:20px;margin-bottom:10px}.page--contact .text-link{font-size:18px}
body[data-template=roofwork] :is(.section,.process,.closing,.scope-desk) p{font-size:20px;line-height:1.7}
body[data-template=roofwork] :is(.section,.scope-desk) .eyebrow{font-size:15px}
body[data-template=roofwork] :is(.section,.scope-desk) h2{font-size:clamp(36px,3.7vw,54px);line-height:1.12}
body[data-template=roofwork] :is(.section,.scope-desk) h3{font-size:27px;line-height:1.3}
body[data-template=roofwork] :is(.article-layout,.profile) li{font-size:20px;line-height:1.8}
body[data-template=roofwork] :is(.text-link,.principles b,.steps span,.core-list>a>span){font-size:17px}
body[data-template=roofwork] :is(.image-note,.principles small,.journal-card small,figcaption,.number,.portrait-caption,.round-seal,.round-seal strong,.craft-caption,dt){font-size:15px!important;line-height:1.6}
.principles{gap:22px}.portrait-caption{left:0;padding:14px 18px}.round-seal{width:35%}.section-heading .text-link{white-space:normal}.featured p{max-width:44ch}.article-layout{grid-template-columns:.35fr 1fr;gap:8%}.article-layout article{min-width:0}.article-layout aside .button{font-size:16px!important;padding:16px!important;min-width:0}
.approach-editorial{grid-template-columns:1fr 1fr!important;gap:7%}.approach-image{margin:0}.approach-image img{width:100%;height:560px;object-fit:cover;border-radius:28px;box-shadow:0 22px 40px -25px #30231a55}.approach-image figcaption{margin-top:20px;color:#606169}.about .principles{grid-template-columns:1fr;gap:14px}.about .principles>div{display:flex;justify-content:space-between;gap:20px;padding-bottom:10px;border-bottom:1px solid #d8d3cf}
.feature-image,.closing,.project-list img,.wide-photo>img{border-radius:24px}.closing{min-height:440px}.closing>div{max-width:670px}.closing p{max-width:40ch}.closing h2{font-size:48px}.closing:after{background:linear-gradient(90deg,#111c27eb,#111c2790 65%,#111c2733)}
.service-card{box-shadow:0 16px 35px -25px #24212650}.journal-card>div{padding:30px;box-shadow:0 20px 40px -24px #28211d40}
.scope-desk .craft-label{font-size:15px}.scope-list legend,.scope-summary small{font-size:16px}.scope-list label{font-size:20px}.scope-summary{box-shadow:0 22px 35px -22px #45352655,inset 0 1px #fff}.scope-summary p{font-size:19px!important}
footer h3{font-size:18px}footer p,footer a:not(.wordmark){font-size:16px}.footer-bottom p,.footer-bottom a{font-size:14px!important;line-height:1.6}.footer-bottom{align-items:flex-start}.footer-bottom a{white-space:normal}
.field,.field small,.form-progress,.form-hint,.contact-note,.contact-note p{font-size:16px!important}.field input,.field textarea,.choice-grid span{font-size:18px}.choice-grid span{min-height:62px}.contact-layout{grid-template-columns:.75fr 1fr;gap:7%}.contact-layout aside>p{font-size:20px}.contact-layout h2{font-size:42px}legend{font-size:30px}.back-button{font-size:18px}#project-form{scroll-margin-top:30px}
.guide-open,.motion-switch{font-size:14px!important}dialog{width:min(540px,calc(100vw - 32px))}dialog p,.guide-answer,.guide-options button{font-size:18px;line-height:1.6}dialog h2{padding-right:20px}
@media(min-width:1700px){.hero{height:890px}.hero h1{font-size:152px}}
@media(max-width:1150px){header{padding-inline:5%;gap:20px}header nav{gap:16px}header nav a{font-size:15px}.wordmark{font-size:25px}.hero h1{font-size:9.2vw}.hero{height:730px}.hero-note p,.hero-action p{font-size:18px}.hero-note{left:62%;width:32%}.hero .second-word{left:39%;top:27%}.hero-roof{top:19%;width:115%;left:-7.5%}.hero-action{left:9%;top:30%}.hero-action .button{font-size:16px!important;padding:15px 20px!important}.page-opening{padding-inline:6%;min-height:740px}.page-opening .opening-copy h1{font-size:58px}.page-opening .opening-description{font-size:20px}.material-caption{padding:17px 20px}.material-caption p{font-size:17px}.page--contact{min-height:520px}.page--contact .opening-copy h1{font-size:56px}.service-card>div{padding:22px}body[data-template=roofwork] .section h3{font-size:24px}}
@media(max-width:950px) and (min-width:701px){header{height:auto;min-height:100px;flex-wrap:wrap;padding-block:20px}header nav{width:100%;justify-content:space-between}.hero-note p{font-size:17px}.hero-note{left:64%;width:31%}.hero-action{top:32%}.hero .second-word{top:24%;left:35%}.hero-roof{top:28%;width:125%;left:-12.5%}.hero{height:700px}.page-opening .opening-copy h1{font-size:49px}.page-opening .opening-description{font-size:19px}.page-opening{min-height:720px}.material-caption{width:35%}.material-caption>span{font-size:13px}.material-caption p{font-size:16px}.opening-meta{font-size:12px!important}.page--contact{min-height:510px}.page--contact .opening-copy h1{font-size:49px}.page--contact .material-caption{display:none}.section-heading{align-items:flex-start;flex-direction:column}.service-grid{grid-template-columns:1fr}.service-card{display:grid;grid-template-columns:1fr 1.4fr}.service-card>img{height:100%;min-height:250px}.principles>div{display:block!important}.article-layout{grid-template-columns:1fr}.article-layout aside{max-width:55ch}.values{grid-template-columns:1fr}.approach-image img{height:510px}}
@media(max-width:900px){header{height:90px;min-height:90px;padding-block:0;flex-wrap:nowrap}.menu-toggle{font-size:17px;padding:12px 18px!important;min-height:48px}header nav{width:auto;font-size:18px;gap:6px;justify-content:flex-start}header nav a{font-size:18px;padding-block:13px!important}.page--profile .opening-art{width:38%}.page--profile .material-caption{right:5%}.form-buttons{flex-wrap:wrap}.field-row{grid-template-columns:1fr}.contact-layout{grid-template-columns:1fr}.contact-layout aside{max-width:58ch}.scope-desk{gap:25px 4%}}
@media(max-width:700px){body[data-template=roofwork]{padding:10px 10px 0;font-size:18px}.lab-strip{font-size:12px!important;padding-inline:8px!important;gap:14px}.lab-strip>a{max-width:54%}.lab-strip>a:last-child{text-align:right}.site-shell{border-radius:24px}header{height:84px;min-height:84px;padding-inline:6%;gap:10px}.wordmark{font-size:24px}.wordmark>span:first-child{width:30px;height:30px;font-size:30px}.menu-toggle{font-size:16px;gap:14px}.hero{height:760px}.hero h1{font-size:16vw;letter-spacing:-.065em}.hero .first-word{top:6%;left:7%}.hero .second-word{top:16.5%;left:12%}.hero-material{left:7%;top:29%;width:21%;border-width:4px}.hero-note{left:35%;top:28%;width:60%}.hero-note p{font-size:17px;line-height:1.6}.hero-action{left:7%;right:7%;top:43%;}.hero-action p{display:none}.hero-action .button{font-size:18px!important;padding:17px 22px!important}.hero-roof{top:47%;width:196%;left:-55%}.hero-caption{font-size:12px;left:7%;bottom:22px;max-width:80%;letter-spacing:.035em}.ticker{font-size:15px;padding:20px;gap:16px}.ticker i{font-size:21px}
.page-opening{padding:43px 7% 84px;min-height:0;display:flex;flex-direction:column}.page-opening .opening-copy{width:100%;margin:0;order:0}.page-opening .opening-copy h1{font-size:clamp(42px,10.6vw,64px);line-height:1.08;letter-spacing:-.055em}.page-opening .opening-description{font-size:19px;line-height:1.65;margin-top:22px!important;max-width:38ch}.page-opening .opening-copy .button{margin-top:16px}.page-opening .opening-art{position:relative;inset:auto;width:100%;height:310px;margin:32px 0 0;order:1;border-radius:22px;overflow:hidden;filter:none}.page--services .opening-art,.page--metal .opening-art,.page--journal .opening-art{height:280px;overflow:visible;border:0;filter:drop-shadow(0 22px 14px #171d2422)}.page--services .opening-art img,.page--metal .opening-art img,.page--journal .opening-art img{object-fit:contain}.page-opening .material-caption{position:relative;inset:auto;width:calc(100% - 24px);max-width:none;margin:-28px 12px 0;padding:18px 20px;order:2}.material-caption>span{font-size:14px}.material-caption p{font-size:17px}.page--about .opening-art{width:290px;height:290px;max-width:100%;aspect-ratio:1;border-radius:50%;align-self:center;border-width:8px}.page--about .material-caption{margin-top:18px}.page--profile .opening-art{height:370px;border-radius:48% 48% 22px 22px}.opening-meta{left:7%;right:7%;bottom:20px;font-size:12px!important;line-height:1.5;gap:15px}.opening-meta>span:first-child{max-width:66%}.opening-meta>span:last-child{text-align:right}
.page--projects,.page--story{min-height:790px;justify-content:flex-end;align-items:stretch}.page--projects .opening-art,.page--story .opening-art{position:absolute;inset:0;width:100%;height:100%;margin:0;border-radius:0}.page--projects:after,.page--story:after{background:linear-gradient(0deg,#10191ef5,#10191e88 65%,#10191e33)}.page--projects .opening-copy,.page--story .opening-copy{width:100%}.page--projects .opening-copy h1,.page--story .opening-copy h1{font-size:47px}.page--projects .opening-description,.page--story .opening-description{font-size:19px}.page--core .opening-art{height:310px;width:94%;align-self:center;transform:rotate(2deg);border:6px solid #e5dfda;margin-bottom:15px}.page--contact{padding-bottom:50px}.page--contact .opening-art{height:240px}.page--contact .material-caption{display:block}.page--contact .opening-description{font-size:19px}
body[data-template=roofwork] :is(.section,.process,.closing,.scope-desk) p{font-size:18px;line-height:1.75}body[data-template=roofwork] :is(.section,.scope-desk) h2{font-size:36px;line-height:1.14}body[data-template=roofwork] :is(.section,.scope-desk) h3{font-size:25px}body[data-template=roofwork] :is(.article-layout,.profile) li{font-size:18px}body[data-template=roofwork] .eyebrow{font-size:14px!important}
.section{padding:64px 7%}.section-heading{flex-direction:column;align-items:flex-start;gap:22px}.service-grid,.values,.approach-editorial{grid-template-columns:1fr!important}.service-card{display:flex}.service-card>img{height:250px}.service-card>div{padding:25px}.approach-editorial{gap:35px}.approach-image img{height:330px}.about .principles{grid-template-columns:1fr;gap:16px}.about .principles>div{display:block}.about .principles small{display:block;margin-top:4px}.portrait-caption{font-size:13px!important;max-width:75%;top:3%;padding:10px 14px}.round-seal{width:39%;font-size:13px!important;border-width:4px;left:-3%;bottom:-3%}.round-seal strong{font-size:14px!important}.portrait-stack{margin-bottom:25px}.closing{margin:0 6% 55px;min-height:530px}.closing>div{padding:30px 25px}.closing h2{font-size:38px}.closing p{font-size:18px}.closing .eyebrow{font-size:13px!important}.closing:after{background:linear-gradient(0deg,#101925f0,#10192555)}
.article-layout{grid-template-columns:1fr;gap:35px}.article-layout aside{max-width:none}.article-layout article h2{font-size:32px!important}.pullquote{font-size:28px}.contact-layout{padding-top:45px!important;gap:30px}form{padding:26px 20px}.choice-grid{grid-template-columns:1fr}.choice-grid span{font-size:18px;padding:16px}.field input,.field textarea{font-size:18px}.form-progress{flex-wrap:wrap}.form-buttons .button{min-width:0}.scope-summary p{font-size:18px!important}.scope-list label{font-size:18px}.scope-desk .craft-label{font-size:14px}.scope-summary{padding:24px}.scope-summary .craft-control{font-size:17px!important}.scope-desk h2{font-size:36px}.scope-desk p{font-size:18px}.desk-art img{max-width:100%}
footer{gap:30px 20px;padding-bottom:110px}footer h3{font-size:18px}footer p,footer a:not(.wordmark){font-size:16px}.footer-bottom p,.footer-bottom a{font-size:14px!important}.core-list>a{grid-template-columns:24px 1fr 20px;gap:14px}.core-list h2{font-size:28px!important}.core-list p{font-size:17px!important}.guide-open,.motion-switch{font-size:13px!important;padding:12px 15px!important}.guide-open{right:12px}.motion-switch{left:12px}.page-opening .button{min-width:0}.button span{flex:none}
}
@media(max-width:370px){.hero{height:710px}.hero-note p{font-size:16px}.hero-note{left:32%;width:63%}.hero-material{width:20%}.hero-action{top:43%}.hero-roof{top:49%;width:210%;left:-64%}.page-opening .opening-copy h1{font-size:40px}.material-caption{padding:16px!important}.page--about .opening-art{width:250px;height:250px}.page--projects .opening-copy h1,.page--story .opening-copy h1{font-size:42px}header .wordmark{font-size:22px}.menu-toggle{padding:10px 12px!important}.page-opening .opening-art{height:270px}.page--profile .opening-art{height:330px}.page--about .opening-art{height:250px}.page--projects .opening-art,.page--story .opening-art{height:100%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}[data-float],.motion-layer,.hero-roof{transform:none!important}*,*:before,*:after{animation:none!important;transition:none!important}}
body[data-motion-off] [data-float]{transform:none!important}
