@font-face{font-family:"Neue Haas";src:url("assets/fonts/NHaasGroteskDSPro-55Rg.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Neue Haas";src:url("assets/fonts/NHaasGroteskDSPro-65Md.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Neue Haas";src:url("assets/fonts/NHaasGroteskDSPro-75Bd.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}

:root{--red:#d30812;--red-dark:#b70810;--ink:#171717;--muted:#666;--line:#e5e5e5;--soft:#f5f5f5;--warm:#fbfaf8;--shell:1180px;--radius:10px;--shadow:0 12px 32px rgb(20 20 20 / 8%);--shadow-strong:0 18px 48px rgb(20 20 20 / 14%);--ease:cubic-bezier(.2,.75,.25,1)}
*{box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:hidden}
body{margin:0;overflow-x:hidden;color:var(--ink);background:#fff;font-family:"Neue Haas",Helvetica,Arial,sans-serif;font-size:16px;line-height:1.45;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
h1,h2,h3,p,ul,address{margin:0}
h1,h2,h3{font-weight:600;line-height:1.04;letter-spacing:-.035em;text-wrap:balance}
h1{font-size:clamp(2.75rem,4.5vw,4.5rem)}
h2{font-size:clamp(1.85rem,2.7vw,2.75rem)}
h3{font-size:1.12rem}
address{font-style:normal}
.shell,.section{width:min(calc(100% - 48px),var(--shell));margin-inline:auto}
.section{margin-block:72px}
.sr-only,.skip-link{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip-link:focus{z-index:9999;top:8px;left:8px;width:auto;height:auto;margin:0;padding:10px;background:#fff;clip:auto}
.preview-badge{display:none}

.site-header{position:relative;z-index:100;border-top:2px solid #202020;border-bottom:1px solid var(--line);background:#fff}
.site-header__inner{display:grid;min-height:82px;grid-template-columns:130px minmax(0,1fr) auto;align-items:center;gap:24px}
.brand img{width:108px;height:auto}
.main-nav{display:flex;min-width:0;align-items:center;justify-content:center;gap:28px}
.main-nav a{position:relative;white-space:nowrap;font-size:.82rem;font-weight:600}
.main-nav a:not(.nav-search)::after{position:absolute;right:50%;bottom:-11px;left:50%;height:2px;background:var(--red);content:"";transition:right 160ms var(--ease),left 160ms var(--ease)}
.main-nav a:hover::after{right:0;left:0}
.nav-search{color:var(--red);font-size:1.25rem!important}
.menu-toggle{display:none}
.header-cta{min-height:42px!important;padding:10px 18px!important}

.breadcrumbs{display:flex;min-height:50px;align-items:center;gap:11px;color:#777;font-size:.72rem}
.breadcrumbs strong{color:var(--red);font-weight:600}
.button{display:inline-flex;min-width:0;min-height:44px;align-items:center;justify-content:center;gap:9px;padding:11px 19px;border:1px solid transparent;border-radius:5px;background:none;font-size:.78rem;font-weight:700;line-height:1.2;text-align:center;white-space:normal;transition:transform 120ms ease,box-shadow 120ms ease,background 120ms ease,color 120ms ease,border-color 120ms ease}
.button:hover{transform:translateY(-1px)}
.button--primary{color:#fff;background:var(--red);box-shadow:0 9px 24px rgb(211 8 18 / 18%)}
.button--primary:hover{background:var(--red-dark);box-shadow:0 12px 28px rgb(211 8 18 / 25%)}
.button--secondary{color:var(--red);border-color:var(--red);background:#fff}
.button--secondary:hover{color:#fff;background:var(--red)}
.button--wide{width:100%}
.button-row{display:flex;flex-wrap:wrap;gap:14px;margin-top:28px}
.eyebrow{margin-bottom:16px;color:var(--red);font-size:.72rem;font-weight:700;letter-spacing:.015em;text-transform:uppercase}
.tag{display:inline-flex;color:var(--red);font-size:.62rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase}
.tag--solid{padding:5px 8px;color:#fff;border-radius:4px;background:var(--red);letter-spacing:0;text-transform:none}
.arrow-link{display:inline-flex;align-items:center;gap:8px;color:var(--red);font-size:.75rem;font-weight:700}
.arrow-link span{transition:transform 120ms ease}
.arrow-link:hover span{transform:translateX(4px)}

.hub-hero,.local-hero{position:relative;isolation:isolate;overflow:hidden}
.hub-hero{min-height:470px}
.local-hero{min-height:520px}
.hub-hero::before{position:absolute;z-index:-3;inset:0;background-image:url("assets/rhein-main-approved-reference.png");background-repeat:no-repeat;background-position:center 2.45%;background-size:100% auto;content:""}
.hub-hero>img{visibility:hidden}
.hub-hero>img,.local-hero>img{position:absolute;z-index:-3;inset:0;width:100%;height:100%;object-fit:cover}
.hub-hero>img{object-position:center 58%}
.hero-wash{position:absolute;z-index:-2;inset:0;background:linear-gradient(90deg,#fff 0 42%,rgb(255 255 255 / 94%) 51%,rgb(255 255 255 / 30%) 69%,rgb(255 255 255 / 0%) 84%)}
.hub-hero__content{display:flex;min-height:470px;justify-content:center;align-items:flex-start;flex-direction:column}
.hub-hero__content h1{max-width:710px;font-size:clamp(2.7rem,4vw,4.1rem)}
.hub-hero__content>p{max-width:470px;margin-top:23px;color:#474747;font-size:1.05rem}
.local-hero__grid{display:grid;min-height:520px;grid-template-columns:minmax(0,1fr) 330px;align-items:center;gap:80px}
.local-hero__grid>*{min-width:0}
.local-hero__copy{max-width:610px;min-width:0}
.local-hero__copy h1{font-size:clamp(3rem,4.2vw,4.25rem)}
.local-hero__copy>p:not(.eyebrow){max-width:590px;margin-top:24px;color:#4e4e4e;font-size:1rem;line-height:1.55}
.hero-contact{padding:28px 29px;border:1px solid #ededed;border-radius:10px;background:rgb(255 255 255 / 97%);box-shadow:var(--shadow-strong);backdrop-filter:blur(12px)}
.hero-contact h2{margin-bottom:18px;font-size:1.2rem;letter-spacing:-.02em}
.hero-contact>strong{display:block;margin-bottom:15px;color:var(--red);font-size:.85rem}
.hero-contact address,.hero-contact p{color:#505050;font-size:.82rem;line-height:1.7}
.hero-contact p{margin-top:14px}
.hero-contact .button{width:100%;margin-top:22px}

.trust-strip{display:grid;padding-block:22px;border-bottom:1px solid var(--line)}
.trust-strip--hub{grid-template-columns:repeat(5,1fr)}
.trust-strip--local{grid-template-columns:repeat(4,1fr)}
.trust-strip>div{display:flex;min-height:40px;align-items:center;justify-content:center;gap:12px;padding-inline:18px;border-right:1px solid var(--line)}
.trust-strip>div:last-child{border-right:0}
.benefit-icon{display:block;width:45px;height:45px;flex:0 0 45px;background-image:url("assets/icons/benefits-sprite.png");background-repeat:no-repeat;background-size:450px 90px}
.benefit-icon--0{background-position:-23px -23px}.benefit-icon--1{background-position:-113px -23px}.benefit-icon--2{background-position:-203px -23px}.benefit-icon--3{background-position:-293px -23px}.benefit-icon--4{background-position:-383px -23px}
.trust-strip strong{font-size:.74rem;font-weight:600}

.promo-grid{display:grid;grid-template-columns:1.04fr 1fr 1fr;gap:16px}
.promo{position:relative;display:flex;height:186px;overflow:hidden;align-items:center;border:1px solid var(--line);border-radius:9px;box-shadow:0 8px 22px rgb(0 0 0 / 5%)}
.promo--photo{align-items:flex-end;padding:22px;color:#fff;background:#161616}
.promo--photo::after{position:absolute;inset:0;background:linear-gradient(90deg,rgb(0 0 0 / 78%),rgb(0 0 0 / 5%));content:""}
.promo--photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.promo--photo>span{position:relative;z-index:1}
.promo--photo strong{display:block;font-size:2.1rem;line-height:.88}
.promo--photo small{font-size:.65rem;font-weight:700}
.promo--red,.promo--soft{gap:24px;padding:28px}
.promo--red{color:#fff;background:var(--red)}
.promo--soft{background:#f2f2f2}
.promo>b{font-size:3rem;font-weight:400}
.promo span{display:flex;flex-direction:column}
.promo span strong{font-size:1.05rem;line-height:1.25}
.promo span small{margin-top:10px;font-size:.76rem;line-height:1.45}
.promo span em{margin-top:17px;font-size:.7rem;font-style:normal;font-weight:700}

.local-intro{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(300px,.6fr);align-items:end;gap:70px}
.local-intro h2{font-size:2rem}
.local-intro p{max-width:690px;margin-top:19px;color:var(--muted);font-size:.86rem;line-height:1.55}
.city-chips{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px}
.city-chips span{min-width:100px;padding:9px 14px;border-radius:5px;background:#f3f3f3;font-size:.72rem;text-align:center}

.product-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}
.product-card{overflow:hidden;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:0 7px 20px rgb(0 0 0 / 5%);transition:transform 120ms ease,box-shadow 120ms ease}
.product-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.product-card>img{width:100%;height:176px;object-fit:cover;transition:transform 320ms var(--ease)}
.product-card:hover>img{transform:scale(1.025)}
.product-card>div{padding:16px}
.product-card h3{min-height:36px;font-size:.9rem;letter-spacing:-.01em}
.product-card p{min-height:64px;margin-top:8px;color:var(--muted);font-size:.7rem;line-height:1.45}
.product-card .arrow-link{margin-top:12px}

.reference-panel{display:grid;min-height:370px;grid-template-columns:1.25fr .75fr;overflow:hidden;border:1px solid var(--line);border-radius:9px;background:#fff;box-shadow:var(--shadow)}
.reference-panel>img{width:100%;height:100%;object-fit:cover}
.reference-panel>div{padding:44px}
.reference-panel h2{font-size:2rem}
.reference-panel>div>p:not(.eyebrow){margin-top:16px;color:var(--muted);font-size:.82rem}
.reference-panel .button{margin-top:24px}
.check-list{display:grid;gap:8px;margin-top:18px;padding:0;list-style:none}
.check-list li{position:relative;padding-left:22px;color:#535353;font-size:.76rem}
.check-list li::before{position:absolute;left:0;color:var(--red);content:"⊙"}

.roof-choice>h2{margin-bottom:25px;text-align:center;font-size:2rem}
.roof-choice>div{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.roof-choice article{padding:24px 28px;border:1px solid var(--line);border-radius:7px;background:#fff}
.roof-choice h3{padding-bottom:13px;border-bottom:1px solid var(--line)}
.roof-choice ul{display:grid;gap:5px;margin:13px 0 0;padding:0;list-style:none;color:#555;font-size:.73rem}
.roof-choice li::before{margin-right:8px;color:var(--red);content:"✓"}

.production{display:grid;grid-template-columns:.9fr 1fr 1fr;gap:14px;align-items:stretch}
.production__copy{padding:16px 15px 10px 0}
.production__copy h2{font-size:2rem}
.production__copy>p{margin-top:18px;color:var(--muted);font-size:.8rem}
.production>img{width:100%;height:300px;object-fit:cover;border-radius:7px}
.production-values{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:34px}
.production-values span{display:flex;align-items:center;flex-direction:column;gap:7px;color:#555;font-size:.6rem;text-align:center}
.production-values b{color:var(--red);font-size:1.3rem;font-weight:400}

.map-layout{display:grid;grid-template-columns:minmax(0,1.55fr) 320px;gap:18px}
.region-map{position:relative;min-height:520px;overflow:hidden;border:1px solid #dfe5e2;border-radius:10px;background:#eef2ef}
.region-map::before{position:absolute;z-index:1;inset:0;background-image:url("assets/rhein-main-approved-reference.png");background-repeat:no-repeat;background-position:16% 23%;background-size:167.5% auto;content:"";filter:saturate(.8) brightness(1.05)}
.map-roads,.map-point,.map-legend{z-index:2;opacity:0}
.map-roads i{position:absolute;display:none;height:3px;border-radius:50%;background:rgb(255 255 255 / 92%);box-shadow:0 0 0 1px rgb(178 192 183 / 24%)}
.map-roads i:nth-child(1){top:44%;left:-5%;width:112%;transform:rotate(-8deg)}
.map-roads i:nth-child(2){top:65%;left:2%;width:95%;transform:rotate(13deg)}
.map-roads i:nth-child(3){top:8%;left:54%;width:3px;height:91%;transform:rotate(8deg)}
.map-roads i:nth-child(4){top:7%;left:29%;width:3px;height:89%;transform:rotate(-12deg)}
.map-roads i:nth-child(5){top:29%;left:8%;width:88%;transform:rotate(25deg)}
.map-point{position:absolute;z-index:2;top:var(--y);left:var(--x);display:flex;align-items:center;flex-direction:column;transform:translate(-50%,-50%)}
.map-point>i{position:relative;width:17px;height:17px;border:2px solid var(--red);border-radius:50% 50% 50% 0;background:#fff;box-shadow:0 2px 7px rgb(0 0 0 / 14%);transform:rotate(-45deg);transition:transform 120ms ease,background 120ms ease}
.map-point>i::after{position:absolute;top:4px;left:4px;width:5px;height:5px;border-radius:50%;background:var(--red);content:""}
.map-point>span{margin-top:8px;padding:5px 9px;white-space:nowrap;border:1px solid #e3e3e3;border-radius:5px;background:rgb(255 255 255 / 94%);box-shadow:0 3px 12px rgb(0 0 0 / 8%);font-size:.68rem;font-weight:600}
.map-point:hover>i,.map-point.is-active>i{background:#ffe3e4;transform:rotate(-45deg) scale(1.18)}
.map-point--hq>i{width:23px;height:23px;border:0;background:var(--red)}
.map-point--hq>i::after{top:7px;left:7px;width:7px;height:7px;background:#fff}
.map-point--hq>span{display:flex;align-items:flex-start;flex-direction:column;padding:10px 12px;color:var(--red)}
.map-point--hq small{margin-top:2px;color:#555;font-size:.58rem;font-weight:400}
.map-legend{position:absolute;z-index:3;bottom:15px;left:15px;display:flex;gap:16px;padding:10px 12px;border-radius:5px;background:rgb(255 255 255 / 92%);box-shadow:var(--shadow);font-size:.64rem}
.map-legend span{display:flex;align-items:center;gap:6px}
.map-legend i{width:8px;height:8px;border:2px solid var(--red);border-radius:50%;background:#fff}
.map-legend span:first-child i{background:var(--red)}
.hq-card{overflow:hidden;border:1px solid var(--line);border-radius:9px;background:#fff;box-shadow:var(--shadow)}
.hq-card>img{width:100%;height:176px;object-fit:cover}
.hq-card>div{padding:22px}
.hq-card h2{margin-bottom:10px;font-size:1.55rem}
.hq-card address,.hq-card p{margin-top:14px;color:#555;font-size:.76rem;line-height:1.65}
.hq-card .button{width:100%;margin-top:14px}
.hq-card .button+.button{margin-top:8px}

.section-heading{margin-bottom:32px}
.section-heading--center{text-align:center}
.section-heading--center p{margin-top:9px;color:var(--muted);font-size:.83rem}
.city-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.city-card{overflow:hidden;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:0 7px 20px rgb(0 0 0 / 5%);transition:transform 120ms ease,box-shadow 120ms ease}
.city-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.city-card__image{display:block;overflow:hidden}
.city-card__image img{width:100%;height:190px;object-fit:cover;transition:transform 320ms var(--ease)}
.city-card:hover img{transform:scale(1.025)}
.city-card__body{padding:17px}
.city-card h3{margin-top:7px;font-size:1.05rem}
.city-card p{margin-top:7px;font-size:.76rem}
.city-card small{display:block;color:var(--muted);font-size:.68rem}
.city-card .arrow-link{margin-top:14px}

.process-hub{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;align-items:center;gap:26px;padding:26px 34px;border:1px solid var(--line);border-radius:8px}
.process-hub article{display:flex;align-items:center;gap:18px}
.process-hub article>b.process-icon{display:block;width:52px;height:52px;flex:0 0 52px;background-image:url("assets/icons/process-sprite.png");background-repeat:no-repeat;background-size:450px 90px}
.process-icon--pin{background-position:-19px -19px}.process-icon--idea{background-position:-199px -19px}.process-icon--tools{background-position:-379px -19px}
.process-hub article>span{display:flex;flex-direction:column}
.process-hub strong{font-size:.86rem}
.process-hub small{margin-top:4px;color:var(--muted);font-size:.66rem}
.process-hub>i{font-size:1.5rem;font-style:normal}
.missing-city{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:24px 120px;border:1px solid var(--line);border-radius:8px;background:#f7f7f7}
.missing-city h2{font-size:1.2rem}
.missing-city p{margin-top:5px;color:var(--muted);font-size:.74rem}

.route-band{margin-block:78px;background:#edf1ee}
.route-band__inner{display:grid;min-height:245px;grid-template-columns:200px minmax(0,1fr) 240px;align-items:center;gap:30px}
.route-copy,.route-contact{padding:24px;border-radius:8px;background:rgb(255 255 255 / 92%);box-shadow:0 8px 24px rgb(0 0 0 / 6%)}
.route-copy span{color:var(--red);font-size:.65rem;font-weight:700;text-transform:uppercase}
.route-copy h2{margin-top:9px;font-size:1.45rem}
.route-copy p,.route-contact address,.route-contact p{margin-top:10px;color:var(--muted);font-size:.7rem}
.route-contact strong{font-size:.9rem}
.route-contact .button{width:100%;min-height:38px;margin-top:13px;padding:8px 12px}
.route-visual{position:relative;height:190px}
.route-city{position:absolute;top:38px;left:5%;font-size:1.5rem;font-weight:600;line-height:1.05}
.route-line{position:absolute;height:5px;border-radius:50%;background:var(--red);box-shadow:0 0 0 3px rgb(255 255 255 / 65%)}
.route-line--1{top:92px;left:27%;width:23%;transform:rotate(10deg)}
.route-line--2{top:108px;left:48%;width:22%;transform:rotate(-12deg)}
.route-line--3{top:103px;left:68%;width:22%;transform:rotate(14deg)}
.route-dot{position:absolute;z-index:2;width:18px;height:18px;border:4px solid #fff;border-radius:50%;background:var(--red);box-shadow:0 2px 10px rgb(0 0 0 / 18%)}
.route-dot--start{top:85px;left:25%}
.route-dot--end{top:110px;right:8%;width:30px;height:30px;border-radius:50% 50% 50% 0;transform:rotate(-45deg)}

.local-process>h2{margin-bottom:27px;text-align:center;font-size:1.7rem}
.local-process>div{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;align-items:center;gap:18px}
.local-process article{min-height:155px;padding:22px;border:1px solid var(--line);border-radius:7px;background:#fff}
.local-process article>b{color:var(--red);font-size:.85rem}
.local-process h3{margin-top:11px;font-size:.92rem}
.local-process p{margin-top:8px;color:var(--muted);font-size:.7rem}
.local-process i{font-size:1.5rem;font-style:normal}

.quote-section{display:grid;grid-template-columns:220px minmax(0,1fr);overflow:hidden;border:1px solid var(--line);border-radius:8px;background:#fff}
.quote-intro{padding:32px 24px;border-right:1px solid var(--line);background:#fcfcfc}
.quote-intro h2{font-size:1.65rem}
.quote-intro p{margin-top:18px;color:var(--muted);font-size:.73rem}
.quote-intro>strong{display:block;margin-top:20px;color:var(--red);font-size:.67rem}
.quote-form{display:grid;min-width:0;grid-template-columns:minmax(0,1fr) 220px;gap:18px;padding:22px}
.quote-fields{display:grid;min-width:0;gap:9px}
.quote-side{display:grid;align-content:start;gap:9px}
.form-grid{display:grid;gap:9px}
.form-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.quote-form input:not([type=checkbox]):not([type=radio]):not([type=file]),.quote-form select,.quote-form textarea,.newsletter input{width:100%;min-width:0;min-height:35px;padding:8px 10px;color:var(--ink);border:1px solid #ddd;border-radius:3px;background:#fff;font-size:.68rem;transition:border 120ms ease,box-shadow 120ms ease}
.quote-form textarea{min-height:62px;resize:vertical}
.quote-form input:focus,.quote-form select:focus,.quote-form textarea:focus,.newsletter input:focus{border-color:var(--red);outline:0;box-shadow:0 0 0 3px rgb(211 8 18 / 9%)}
.choice-group{display:flex;align-items:center;gap:15px;margin:0;padding:2px 0;border:0}
.choice-group legend{float:left;margin-right:12px;font-size:.66rem}
.choice-group label{display:flex;align-items:center;gap:5px;font-size:.66rem}
.choice-group input,.consent input{accent-color:var(--red)}
.upload{display:grid;min-height:80px;place-content:center;padding:10px;border:1px dashed #d4d4d4;border-radius:4px;text-align:center}
.upload span{font-size:.66rem}
.upload input{max-width:170px;margin-top:7px;font-size:.55rem}
.consent{display:flex;align-items:flex-start;gap:7px;color:#666;font-size:.57rem;line-height:1.35}
.consent input{margin-top:2px}
.consent a{color:var(--red);text-decoration:underline}
.form-status{display:none;grid-column:1/-1;padding:9px;color:#217348;border:1px solid #b7dfc9;border-radius:4px;background:#f1faf5;font-size:.65rem}
.form-status.is-visible{display:block}

.faq>h2{margin-bottom:20px;font-size:1.5rem}
.faq-list{display:grid;grid-template-columns:repeat(2,1fr);gap:8px 22px}
.faq details{border:1px solid var(--line);border-radius:4px;background:#fff}
.faq summary{display:flex;min-height:42px;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;font-size:.72rem;font-weight:600;list-style:none;cursor:pointer}
.faq summary::-webkit-details-marker{display:none}
.faq summary span{color:var(--red);font-size:1rem;transition:transform 120ms ease}
.faq details[open] summary span{transform:rotate(45deg)}
.faq details p{padding:0 14px 13px;color:var(--muted);font-size:.69rem}

.hq-hero{position:relative;min-height:410px;overflow:hidden}
.hq-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.65)}
.hq-hero>div{position:relative;display:flex;min-height:410px;align-items:flex-start;justify-content:center;flex-direction:column;color:#fff}
.hq-hero h1{margin-top:15px}
.hq-hero p{max-width:520px;margin-top:16px}
.hq-details{display:grid;grid-template-columns:1.5fr .5fr;gap:30px}
.hq-details>div:last-child{padding:36px;border:1px solid var(--line);border-radius:8px}
.hq-details>div:last-child p,.hq-details>div:last-child address{margin-top:18px;color:var(--muted)}
.hq-details .button{margin-top:25px}

.site-footer{margin-top:70px;padding-top:34px;background:#f5f5f5}
.footer-social{display:flex;align-items:center;justify-content:space-between;padding-bottom:28px;border-bottom:1px solid #777}
.footer-social>img{width:112px;height:auto}
.footer-social>div{display:flex;align-items:center;gap:16px;color:#555;font-size:.75rem}
.footer-social .social-sprite{display:block;width:30px;height:30px;background-image:url("assets/icons/social-sprite.png");background-repeat:no-repeat;background-size:350px 70px}
.social-sprite--facebook{background-position:-20px -20px}.social-sprite--instagram{background-position:-90px -20px}.social-sprite--youtube{background-position:-160px -20px}.social-sprite--tiktok{background-position:-230px -20px}.social-sprite--pinterest{background-position:-300px -20px}
.footer-top{display:grid;grid-template-columns:1fr .8fr .8fr 2fr;gap:60px;padding-block:43px}
.site-footer h2{margin-bottom:18px;color:var(--red);font-size:.86rem;letter-spacing:-.01em}
.site-footer ul{display:grid;gap:6px;padding:0;color:#555;font-size:.72rem;list-style:none}
.site-footer li a:hover{color:var(--red)}
.newsletter p{max-width:500px;color:#555;font-size:.75rem}
.newsletter form{display:flex;gap:14px;margin-top:17px}
.newsletter input{width:250px;min-height:44px;font-size:.72rem}
.newsletter .button{min-height:44px}
.newsletter small{display:block;max-width:520px;margin-top:10px;color:#666;font-size:.62rem}
.footer-bottom{display:flex;justify-content:space-between;gap:30px;padding-block:22px;border-top:1px solid #ddd;color:#666;font-size:.59rem}
.footer-bottom p:first-child{max-width:840px}

.motion-ready [data-reveal]{opacity:0;transform:translateY(16px)}
.motion-ready [data-reveal].is-visible{opacity:1;transform:none;transition:opacity 320ms var(--ease) var(--reveal-delay,0ms),transform 320ms var(--ease) var(--reveal-delay,0ms)}

@media(max-width:1080px){
  .main-nav{gap:17px}.main-nav a{font-size:.72rem}.site-header__inner{grid-template-columns:115px minmax(0,1fr) auto}.local-hero__grid{gap:40px}.product-grid{grid-template-columns:repeat(3,1fr)}.product-card>img{height:190px}.map-layout{grid-template-columns:minmax(0,1fr) 290px}.footer-top{gap:34px}.quote-section{grid-template-columns:190px minmax(0,1fr)}.quote-form{grid-template-columns:minmax(0,1fr) 190px}.production{grid-template-columns:1fr 1fr}.production__copy{grid-column:1/-1}.production>img{height:310px}
}

@media(max-width:860px){
  .shell,.section{width:min(calc(100% - 36px),var(--shell))}.section{margin-block:58px}.site-header__inner{min-height:70px;grid-template-columns:1fr auto}.brand img{width:96px}.menu-toggle{display:grid;width:42px;height:42px;place-content:center;gap:5px;border:1px solid var(--line);border-radius:4px;background:#fff}.menu-toggle span{display:block;width:20px;height:2px;background:var(--ink);transition:transform 120ms ease,opacity 120ms ease}.menu-toggle b{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.menu-toggle[aria-expanded=true] span:nth-child(1){transform:translateY(7px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:nth-child(2){opacity:0}.menu-toggle[aria-expanded=true] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.main-nav{position:absolute;top:100%;right:0;left:0;display:none;align-items:stretch;padding:8px 18px 20px;border-bottom:1px solid var(--line);background:#fff;box-shadow:var(--shadow)}.main-nav.is-open{display:grid}.main-nav a{padding:11px 4px;border-bottom:1px solid var(--line)}.main-nav a::after{display:none}.header-cta{display:none}.breadcrumbs{min-height:44px}
  .hub-hero{min-height:450px}.hub-hero__content{min-height:450px}.local-hero{min-height:auto}.local-hero__grid{grid-template-columns:1fr;gap:24px;padding-block:54px}.local-hero__copy{max-width:590px}.hero-contact{max-width:430px}.hero-wash{background:linear-gradient(90deg,#fff 0%,rgb(255 255 255 / 94%) 48%,rgb(255 255 255 / 42%) 100%)}.trust-strip{width:100%;grid-template-columns:repeat(2,1fr);padding-inline:16px}.trust-strip>div{padding:13px 8px;border-top:1px solid var(--line)}.trust-strip>div:nth-child(2n){border-right:0}.trust-strip--hub>div:last-child{grid-column:1/-1}.promo-grid{grid-template-columns:1fr 1fr}.promo:last-child{grid-column:1/-1}.local-intro{grid-template-columns:1fr;gap:24px}.city-chips{justify-content:flex-start}.product-grid{grid-template-columns:repeat(2,1fr)}.reference-panel{grid-template-columns:1fr}.reference-panel>img{height:360px}.roof-choice>div{grid-template-columns:1fr}.map-layout{grid-template-columns:1fr}.hq-card{display:grid;grid-template-columns:1fr 1fr}.hq-card>img{height:100%}.city-grid{grid-template-columns:repeat(2,1fr)}.process-hub{grid-template-columns:1fr}.process-hub>i{justify-self:center;transform:rotate(90deg)}.missing-city{padding:24px 30px}.route-band__inner{grid-template-columns:180px minmax(0,1fr);padding-block:28px}.route-contact{grid-column:1/-1}.local-process>div{grid-template-columns:1fr 1fr}.local-process>div>i{display:none}.quote-section{grid-template-columns:1fr}.quote-intro{border-right:0;border-bottom:1px solid var(--line)}.quote-form{grid-template-columns:minmax(0,1fr) 200px}.footer-top{grid-template-columns:repeat(3,1fr)}.newsletter{grid-column:1/-1}.hq-details{grid-template-columns:1fr}
}

@media(max-width:580px){
  body{font-size:15px}.shell,.section{width:min(calc(100% - 28px),var(--shell))}.section{margin-block:46px}.breadcrumbs{font-size:.64rem}.hub-hero{min-height:520px}.hub-hero__content{min-height:520px;justify-content:flex-end;padding-bottom:44px}.hub-hero>img{object-position:68% center}.hero-wash{background:linear-gradient(0deg,#fff 4%,rgb(255 255 255 / 88%) 61%,rgb(255 255 255 / 18%) 100%)}.hub-hero__content h1{font-size:2.15rem;overflow-wrap:anywhere}.hub-hero__content>p{font-size:.9rem}.local-hero__grid{padding-block:42px}.local-hero__copy h1{font-size:2.35rem;overflow-wrap:anywhere}.local-hero__copy>p:not(.eyebrow){font-size:.88rem}.button-row{display:grid;min-width:0}.button-row .button{width:100%;max-width:100%}.hero-contact{max-width:100%;padding:23px}.trust-strip strong{font-size:.66rem}.benefit-icon{width:32px;height:32px;flex-basis:32px;background-size:320px 64px}.benefit-icon--0{background-position:-16px -16px}.benefit-icon--1{background-position:-80px -16px}.benefit-icon--2{background-position:-144px -16px}.benefit-icon--3{background-position:-208px -16px}.benefit-icon--4{background-position:-272px -16px}.promo-grid{grid-template-columns:1fr}.promo:last-child{grid-column:auto}.promo{height:170px}.local-intro h2{font-size:1.7rem}.city-chips span{min-width:0}.product-grid,.city-grid{grid-template-columns:1fr}.product-card>img,.city-card__image img{height:210px}.reference-panel>img{height:260px}.reference-panel>div{padding:28px 22px}.reference-panel h2{font-size:1.65rem}.production{grid-template-columns:1fr}.production__copy{grid-column:auto}.production>img{height:240px}.production-values{grid-template-columns:repeat(2,1fr)}.region-map{min-height:510px}.map-point>span{font-size:.57rem;padding:4px 6px}.map-point--hq>span{padding:7px}.map-legend{right:10px;bottom:10px;left:10px;justify-content:center}.hq-card{display:block}.hq-card>img{height:190px}.process-hub{padding:22px}.missing-city{align-items:stretch;flex-direction:column;padding:23px}.route-band{margin-block:52px}.route-band__inner{grid-template-columns:1fr;gap:14px;padding-block:22px}.route-visual{height:150px}.route-city{top:15px}.route-line--1{top:85px}.route-line--2{top:100px}.route-line--3{top:95px}.route-dot--start{top:78px}.route-dot--end{top:100px}.route-contact{grid-column:auto}.local-process>div{grid-template-columns:1fr}.local-process article{min-height:auto}.quote-form{grid-template-columns:1fr;padding:16px}.form-grid--2{grid-template-columns:1fr}.quote-side{border-top:1px solid var(--line);padding-top:14px}.faq-list{grid-template-columns:1fr}.footer-social{align-items:flex-start;flex-direction:column}.footer-top{grid-template-columns:1fr 1fr;gap:30px}.newsletter{grid-column:1/-1}.newsletter form{align-items:stretch;flex-direction:column}.newsletter input{width:100%}.footer-bottom{flex-direction:column}.hq-hero h1{font-size:2.7rem}
}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.motion-ready [data-reveal]{opacity:1;transform:none}}
