/* Mobile-first values are in style.css; layout adaptations below. */
@media(min-width:768px){:root{--gutter:32px}.header-cta{display:inline-flex}.header-actions{gap:18px}}
@media(min-width:1024px){:root{--gutter:40px}.desktop-nav{display:flex}.menu-toggle{display:none}.nav-link,.nav-trigger{font-size:12px}.desktop-nav{gap:22px}.header-inner{gap:20px}.header-cta{font-size:12px;padding:14px 21px;gap:18px}}
@media(min-width:1280px){:root{--gutter:40px}.header-contact{display:block}.desktop-nav{gap:30px}.nav-trigger,.nav-link{font-size:13px}.header-actions{gap:28px}.hero-content{padding:64px}.hero-bottom{left:64px}.section{padding-block:100px}.hero{border-radius:40px}}
@media(min-width:1600px){:root{--gutter:48px}.section{padding-block:114px}.hero{border-radius:48px}.hero-content{padding:72px}.hero-bottom{left:72px}.hero-description{font-size:17px}}
@media(max-width:1279px){.hero h1{font-size:clamp(44px,5.5vw,72px)}.header .brand{max-width:190px}.brand-name{font-size:11px}.split-copy{padding:44px 36px}.config-intro,.contact-intro{padding:44px 40px 30px;gap:18px 40px}.contact-intro{grid-template-columns:1fr}.config-form,.contact-form{padding:36px}.footer-top{grid-template-columns:1.3fr repeat(3,1fr) 1.2fr;gap:20px}.benefit{padding:6px 14px}}
@media(max-width:1023px){.section{padding-block:68px}.hero{height:75vh;min-height:640px}.hero-content{padding:40px}.hero-bottom{left:40px;right:35px}.hero-annotation{display:none}.hero h1{font-size:60px}.benefits{grid-template-columns:repeat(2,minmax(0,1fr));padding:6px 0}.benefit{padding:24px 16px}.benefit:nth-child(2){border-right:0}.benefit:nth-child(-n+2){border-bottom:1px solid var(--line)}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.section-heading{gap:28px}.section-heading .lead{max-width:300px;font-size:15px}.split-copy{padding:36px 30px}.split-image{min-height:550px}.split-copy p{font-size:14px}.process-grid{gap:0 24px}.process-card h3{font-size:23px}.architecture{min-height:620px}.config-intro,.contact-intro{grid-template-columns:1fr;padding:40px 40px 26px}.config-form .choice-grid,.quiz-panel .choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.config-form .field-grid,.contact-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.contact-fields .contact-message,.contact-fields .contact-upload{grid-column:1/-1}.config-form,.contact-form{padding:36px}.faq-layout{grid-template-columns:1fr;gap:35px}.end-cta{padding:42px;gap:30px}.end-cta .button-row{max-width:230px}.footer-top{grid-template-columns:repeat(4,1fr)}.footer-brand{grid-column:1/-1;display:flex;justify-content:space-between;margin-bottom:20px}.footer-brand p{margin:0;max-width:300px}.article-row{grid-template-columns:1fr;gap:14px;padding:36px 0}.article-row-head{position:static}.feature-grid{grid-template-columns:repeat(2,1fr)}.content-columns{gap:38px}.article-grid{grid-template-columns:repeat(2,1fr)}.detail-specs{grid-template-columns:repeat(3,1fr)}.page-image,.detail-hero>img{height:490px}}
@media(max-width:767px){:root{--gutter:20px;--header:76px}body{font-size:16px}.header-inner{height:76px}.header .brand{max-width:230px}.brand-name{font-size:12px}.brand-icon{width:34px;height:34px}.section{padding-block:56px}.section-sm{padding-block:35px}.eyebrow{font-size:10px;margin-bottom:20px}.hero{display:grid;grid-template-columns:minmax(0,1fr);height:auto;min-height:0;max-height:none;border-radius:0;overflow:visible;background:none;color:var(--ink)}.hero>img{position:relative;inset:auto;z-index:0;grid-row:1;grid-column:1;width:100%;height:auto;aspect-ratio:5/4;border-radius:26px;object-position:66% center}.hero:after{display:none}.hero-content{grid-row:2;padding:28px 2px 0}.hero .eyebrow{font-size:10px;letter-spacing:.14em;margin-bottom:18px;color:var(--muted)}.hero .eyebrow:before{background:var(--green)}.hero h1{font-size:clamp(33px,9.4vw,44px);line-height:1.06}.hero-description{font-size:15px;max-width:none;margin-top:18px;color:var(--muted)}.hero .button-row{gap:10px;margin-top:26px}.hero .button{font-size:13px;padding:14px 22px;gap:18px;min-height:50px}.hero .button-light{background:var(--green);color:white}.hero .button-ghost{border-color:#b4b9ae;color:var(--ink)}.hero-bottom{display:contents}.hero-bottom>a:first-child{grid-row:3;margin-top:26px;padding-top:18px;border-top:1px solid var(--line);color:var(--ink);font-size:13px;line-height:1.55}.hero-bottom>a:first-child .icon{width:18px;color:var(--green)}.hero-bottom .image-note{display:block;grid-row:1;grid-column:1;align-self:end;justify-self:start;z-index:1;margin:0 0 12px 12px;padding:6px 11px;border-radius:999px;background:#f5f4f0e6;color:var(--ink);font-size:9px;letter-spacing:.12em}.hero-bottom>a:last-child{display:none}.mobile-cta{transition:opacity .25s,transform .25s,visibility 0s}.mobile-cta.is-away{opacity:0;visibility:hidden;pointer-events:none;transform:translate(-50%,14px);transition:opacity .25s,transform .25s,visibility 0s .25s}.benefits{padding:2px 0;margin-top:10px;border-top:1px solid var(--line)}.benefit{padding:20px 10px;gap:9px}.benefit h2{font-size:15px}.benefit-number{font-size:10px}.benefit-number:after{margin-top:8px}.section-heading{display:block;margin-bottom:30px}.section-heading .lead{margin-top:22px;max-width:520px}.section-heading .text-link{margin-top:20px}.filters{gap:7px;margin:24px 0}.filter-chip{font-size:11px;padding:9px 15px;min-height:41px}.project-grid{gap:30px 18px}.project-image{border-radius:22px;aspect-ratio:1.18}.project-badge{top:12px;left:12px;font-size:8px;padding:4px 9px}.project-title-row h3{font-size:24px}.project-meta{font-size:10px;gap:4px 8px}.project-meta span+span:before{margin-right:8px}.project-bottom{font-size:10px}.project-bottom a{font-size:10px}.round-arrow{width:33px;height:33px}.round-arrow .icon{width:17px;height:17px}.section-foot{align-items:flex-start;flex-direction:column}.section-foot .small{font-size:11px}.split{grid-template-columns:1fr;border-radius:28px}.split-copy{padding:36px 28px}.split-copy h2{font-size:37px}.split-image{min-height:0;height:390px}.split-copy .button{font-size:12px}.process-grid{grid-template-columns:repeat(2,1fr);gap:0 23px}.process-card{padding:22px 0 30px}.process-card h3{font-size:23px}.process-card p{font-size:12px}.process-number{font-size:10px;margin-bottom:30px}.architecture{min-height:590px;border-radius:28px;padding:18px}.architecture-card{padding:26px;border-radius:22px;max-width:400px}.architecture-card h2{font-size:32px}.architecture>img{object-position:62% center}.tech-grid{grid-template-columns:1fr;gap:18px}.tech-card{padding:29px;border-radius:26px}.tech-icon{margin-bottom:28px}.tech-card h3{font-size:30px}.tech-card li{font-size:13px}.technology-note{font-size:12px}.technology-note .button{font-size:12px}.gallery-item{border-radius:22px}.gallery-caption{font-size:13px;padding:30px 17px 17px}.gallery-caption small{font-size:8px}.gallery-caption .icon{width:16px}.configurator,.contact-grid{border-radius:28px}.config-intro,.contact-intro{padding:32px 24px 22px}.config-intro h2,.contact-intro h2{font-size:37px}.config-intro p{font-size:13px}.config-form,.contact-form{padding:28px 21px;margin:0 8px 8px;border-radius:23px}.form-step legend{font-size:26px}.choice-grid{gap:8px}.choice{padding:13px 10px;font-size:11px;min-height:62px;gap:9px}.form-actions .button{font-size:12px;padding:14px 19px;gap:16px}.form-progress-label{font-size:9px}.field-grid,.config-form .field-grid,.contact-fields{grid-template-columns:1fr}.faq-layout{gap:28px}.faq-list summary{font-size:14px;padding:20px 0}.faq-list details p{font-size:13px}.end-cta{padding:35px 28px;border-radius:28px;flex-direction:column;align-items:flex-start;gap:28px}.end-cta h2{font-size:36px}.end-cta .button-row{max-width:100%;width:100%;gap:10px}.end-cta .button{width:auto;font-size:12px;gap:16px}.end-cta p{font-size:13px}.footer{padding:50px 0 110px}.footer-top{grid-template-columns:repeat(2,1fr);gap:28px}.footer-brand{display:block;margin-bottom:10px}.footer-brand p{margin-top:18px}.footer h2{font-size:9px;margin-bottom:15px}.footer li{font-size:11px}.footer-bottom{display:block;margin-top:30px;line-height:1.8}.footer-bottom div{margin-top:15px;flex-wrap:wrap;gap:14px}.mobile-cta{display:flex;position:fixed;z-index:55;bottom:16px;left:50%;transform:translateX(-50%);padding:14px 23px;min-height:48px;box-shadow:0 5px 25px #15271930;font-size:12px;white-space:nowrap;gap:26px}.mobile-cta:hover{transform:translateX(-50%)}.back-top{bottom:18px;right:18px;width:43px;height:43px}.cookie-banner{bottom:79px;left:16px;max-width:calc(100vw - 32px);width:330px}.breadcrumb{padding-top:25px;font-size:10px}.page-intro{padding:34px 0 38px}.page-intro h1{font-size:clamp(39px,8.5vw,60px)}.page-intro .lead{font-size:15px;margin-top:24px}.catalog-filters{grid-template-columns:1fr 1fr;padding:20px;gap:14px;border-radius:22px}.catalog-filters .field{font-size:11px}.catalog-filters select{padding:12px 9px;font-size:14px}.catalog-summary{font-size:12px}.page-image,.detail-hero>img{height:360px;border-radius:26px}.detail-title{display:block}.detail-title .button{margin-top:25px;font-size:13px}.detail-specs{gap:25px 20px;padding:26px 0}.detail-specs dt{font-size:9px}.detail-specs dd{font-size:21px}.detail-specs dd.small-value{font-size:13px}.content-columns{grid-template-columns:1fr;gap:30px}.floor-plan{padding:25px}.floor-plan svg{height:190px}.feature-grid{gap:16px}.feature-card{padding:25px}.feature-card h3{font-size:24px}.feature-card p{font-size:13px}.specification{padding:25px}.specification dl div{flex-direction:column;gap:6px}.specification dd{text-align:left}.quiz-panel .choice{font-size:13px;padding:16px 12px}.quiz-result h3{font-size:26px}.quiz-result p{font-size:14px}.contact-details{grid-template-columns:1fr 1fr;gap:25px}.contact-details dd{font-size:18px;overflow-wrap:anywhere}.article-grid{gap:32px 20px}.article-card h2{font-size:23px}.article-card p{font-size:12px}.article-card img{border-radius:20px}.article-row{padding:30px 0}.article-row h2{font-size:27px}.article-row-body p,.article-row-body li{font-size:16px}.lightbox-toolbar{font-size:12px}.lightbox-image{border-radius:12px;max-height:70vh}.lightbox-footer{font-size:11px}}
@media(max-width:479px){:root{--gutter:16px}.hero .button-row{flex-direction:column;align-items:stretch}.hero .button{width:100%;justify-content:space-between}.project-grid{grid-template-columns:1fr;gap:34px}.project-image{aspect-ratio:1.4}.project-meta{font-size:12px}.project-bottom,.project-bottom a{font-size:11px}.project-title-row h3{font-size:29px}.project-badge{font-size:9px}.gallery-caption{font-size:16px}.gallery-caption small{font-size:9px}.feature-grid{grid-template-columns:1fr}.process-card h3{font-size:22px}.choice-grid,.config-form .choice-grid,.quiz-panel .choice-grid{grid-template-columns:1fr}.choice{font-size:12px;min-height:51px;padding:12px 14px}.config-form,.contact-form{padding:26px 19px}.end-cta .button{width:100%;justify-content:space-between}.article-grid{grid-template-columns:1fr}.contact-details{grid-template-columns:1fr}.catalog-filters{gap:13px 11px;padding:17px}}
@media(max-width:767px){.drawer-head{position:sticky;top:-24px;padding-block:14px;background:var(--paper);z-index:2}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.reveal.is-observed{opacity:1;transform:none}}

/* Every full-size module shares the same outer alignment. Galleries use complete rows of two (.is-half)
   or three (.is-third) photos on wide screens - no stretched panoramas that would look soft. See main.js. */
.gallery-grid{grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-rows:clamp(280px,28vw,460px);grid-auto-flow:row;gap:24px}
.gallery-grid .gallery-item{grid-column:span 3;grid-row:auto;height:auto}
.gallery-grid .gallery-item.is-third{grid-column:span 2}
.gallery-grid .gallery-item.is-full{grid-column:1/-1}
.brand-name{white-space:nowrap;font-size:14px;letter-spacing:-.045em}.brand-sub{letter-spacing:.12em;font-size:8px}
.footer-top{grid-template-columns:1.3fr repeat(3,.8fr) 1.35fr}.footer li{overflow-wrap:anywhere}.contact-details dd{overflow-wrap:anywhere}
.floor-plan>img{width:100%;max-height:650px;object-fit:contain;margin-top:24px}
.article-grid:empty,.project-grid:empty,.gallery-grid:empty{display:none}
@media(min-width:1024px){.header .brand{max-width:none}.header-inner{gap:24px}.desktop-nav{margin-left:auto}.brand-icon{width:38px}}
@media(max-width:1279px){.header .brand-name{font-size:12px}.desktop-nav{gap:17px}.header-actions{gap:16px}.header-inner{gap:18px}}
@media(max-width:1023px){.footer-top{grid-template-columns:repeat(4,minmax(0,1fr))}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:300px}.gallery-grid .gallery-item,.gallery-grid .gallery-item.is-third{grid-column:auto}.gallery-grid .gallery-item.is-wide-sm,.gallery-grid .gallery-item.is-full{grid-column:1/-1}}
@media(max-width:767px){.footer-top{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-grid{gap:16px;grid-auto-rows:240px}.brand-name{font-size:12px}.brand-sub{font-size:7px}}
@media(max-width:479px){.gallery-grid{grid-template-columns:1fr;grid-auto-rows:280px}.gallery-grid .gallery-item.is-wide-sm{grid-column:auto}}

.image-disclaimer{margin-top:15px}.project-description>p{font-size:18px;line-height:1.85}.project-description>p+p{margin-top:18px}.plan-image{border:0;background:none;padding:0;width:100%;margin-top:24px}.plan-image img{width:100%;height:auto;max-height:650px;object-fit:contain}.preview-notice{background:#d9ddd5;text-align:center;padding:12px;font-size:12px;position:relative;z-index:101}

/* Blog list: rows are always complete, whatever the number of articles in the CMS.
   A remainder of one article gives the first card the whole row; a remainder of two shares it between the first two. */
@media(min-width:1024px){
.article-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.article-card{grid-column:span 2}
.article-card:first-child:nth-last-child(3n+2),.article-card:first-child:nth-last-child(3n+2)+.article-card{grid-column:span 3}
.article-card:first-child:nth-last-child(3n+1){grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);grid-template-rows:1fr auto auto auto auto 1fr;column-gap:56px}
.article-card:first-child:nth-last-child(3n+1)>a:first-child{grid-column:1;grid-row:1/-1}.article-card:first-child:nth-last-child(3n+1) img{margin:0}
.article-card:first-child:nth-last-child(3n+1)>.eyebrow{grid-column:2;grid-row:2}.article-card:first-child:nth-last-child(3n+1)>h2{grid-column:2;grid-row:3;font-size:clamp(30px,2.6vw,42px);line-height:1.12}
.article-card:first-child:nth-last-child(3n+1)>p{grid-column:2;grid-row:4;font-size:15px}.article-card:first-child:nth-last-child(3n+1)>.text-link{grid-column:2;grid-row:5;justify-self:start;margin-top:22px}
}
@media(min-width:480px) and (max-width:1023px){.article-card:first-child:nth-last-child(2n+1){grid-column:1/-1}}
@media(min-width:768px) and (max-width:1023px){
.article-card:first-child:nth-last-child(2n+1){display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);grid-template-rows:1fr auto auto auto auto 1fr;column-gap:32px}
.article-card:first-child:nth-last-child(2n+1)>a:first-child{grid-column:1;grid-row:1/-1}.article-card:first-child:nth-last-child(2n+1) img{margin:0}
.article-card:first-child:nth-last-child(2n+1)>.eyebrow{grid-column:2;grid-row:2}.article-card:first-child:nth-last-child(2n+1)>h2{grid-column:2;grid-row:3}
.article-card:first-child:nth-last-child(2n+1)>p{grid-column:2;grid-row:4}.article-card:first-child:nth-last-child(2n+1)>.text-link{grid-column:2;grid-row:5;justify-self:start;margin-top:18px}
}
@media(min-width:480px) and (max-width:767px){.article-card:first-child:nth-last-child(2n+1) img{aspect-ratio:1.9}}
@media(min-width:480px) and (max-width:1023px){.feature-grid>.feature-card:last-child:nth-child(odd){grid-column:1/-1}}
