/* R5: floating navigation, photographed project stories and complete offers. */
:root{--floating-top:14px;--header-offset:112px}
html{scroll-padding-top:var(--header-offset);scrollbar-gutter:stable}
.site-header{position:fixed;top:max(var(--floating-top),env(safe-area-inset-top));left:0;right:0;width:calc(100% - 64px);max-width:1520px;margin-inline:auto;z-index:30;border:1px solid #e3e7df;border-radius:24px;background:#fffffff5;box-shadow:0 8px 32px #16291d12;transition:background .32s ease,box-shadow .32s ease,border-color .32s ease}
.site-header.is-scrolled{background:#f9fbf7;box-shadow:0 8px 30px #243d241a;border-color:#e3e9df}
@supports ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.site-header.is-scrolled{background:rgba(250,252,248,.9);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}}
.header-inner{padding-inline:25px;min-height:78px;gap:26px;flex-wrap:nowrap!important}
.header-inner .brand img{width:150px}
.desktop-nav{margin-inline:auto}
.desktop-nav .nav-list{gap:22px;font-size:15px;align-items:center}
.desktop-nav a{min-height:44px;display:flex;align-items:center}
.header-phone{font-size:14px}
.header-cta{flex-shrink:0;min-height:46px;gap:13px;padding:11px 18px;font-size:14px;line-height:1.4;transition:background .2s}
.header-cta:hover{background:var(--green-dark)}
.header-cta .cta-label-full{display:inline}
.header-cta .cta-label-short{display:none}
.estimate-icon{display:block;width:23px;height:23px;flex:0 0 23px;overflow:visible}
@keyframes calc-line{from{stroke-dasharray:1;stroke-dashoffset:1;opacity:.35}to{stroke-dasharray:1;stroke-dashoffset:0;opacity:1}}
@keyframes calc-press{0%,100%{opacity:1}45%{opacity:.35}}
.header-cta:is(.icon-enter,:hover,:focus-visible) .calc-outline{animation:calc-line .45s ease both}
.header-cta:is(.icon-enter,:hover,:focus-visible) .calc-screen{animation:calc-line .35s .12s ease both}
.header-cta:is(.icon-enter,:hover,:focus-visible) .calc-keys{animation:calc-line .35s .22s ease both}
.header-cta:is(.icon-enter,:hover,:focus-visible) .calc-accent{animation:calc-press .6s .35s ease both}
.hero,.js .hero{min-height:100vh;min-height:100svh}
.hero-inner{padding-top:calc(var(--header-offset) + 46px)}
.mobile-menu{position:fixed;inset:max(var(--floating-top),env(safe-area-inset-top)) 0 auto;margin:0 auto;width:calc(100% - 24px);max-width:500px;max-height:calc(100vh - 28px);max-height:calc(100dvh - 28px - env(safe-area-inset-top));padding:21px 24px 27px;border:1px solid #e2e8dc;border-radius:25px;background:#fafcf8;box-shadow:0 16px 70px #172b232b;overscroll-behavior:contain}
.mobile-menu::backdrop{background:#172b2366;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}
.mobile-head{margin-bottom:22px;gap:20px}.mobile-head .brand img{width:130px}.mobile-head .menu-close{min-height:44px}
.mobile-menu .nav-list{font-size:25px;gap:4px}.mobile-menu .nav-list a{padding-block:9px;min-height:48px}
.mobile-contact{border-top:1px solid var(--line);padding-top:21px;margin-top:22px}.mobile-contact .button{margin-top:8px}
html:not(.js) .site-header{position:relative;margin-block:14px}
.js .fallback-main,.js .form-response{padding-top:calc(var(--header-offset) + 30px)}
/* The entire project cover is a single link. Only its lower edge is shaded. */
.project-grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:26px}
.project{grid-column:span 7;min-width:0}
.project:nth-child(4n+2),.project:nth-child(4n+3){grid-column:span 5;max-width:none}
.project-cover{display:block;position:relative;isolation:isolate;height:clamp(360px,31vw,465px);aspect-ratio:auto;border-radius:27px;overflow:hidden;background:#e3e8de;color:white}
.project-cover:after{content:"";position:absolute;inset:35% 0 0;z-index:0;background:linear-gradient(0deg,rgba(17,30,22,.82),rgba(17,30,22,.17) 57%,transparent 100%);pointer-events:none}
.project-cover img{width:100%;height:100%;object-fit:cover;object-position:var(--crop-x,50%) var(--crop-y,50%);transition:transform .7s cubic-bezier(.2,.6,.3,1)}
.project-caption{position:absolute;z-index:1;bottom:0;left:0;right:0;display:flex;align-items:flex-end;justify-content:space-between;gap:22px;padding:29px 30px}
.project-caption h3{font-size:clamp(25px,2.1vw,32px);line-height:1.14;color:white;text-wrap:balance}
.project-facts{display:block;font-size:15px;line-height:1.5;margin-top:10px;color:#fff}
.project-caption p{font-size:14px;margin-top:8px;max-width:520px;color:#fff}
.project-arrow{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;border:1px solid #ffffffa3;border-radius:50%;font-size:23px;color:white;background:#ffffff12}
.project-arrow>span{transition:transform .3s ease}
.project-cover:focus-visible{outline:3px solid var(--green);outline-offset:5px}
.project-cover:focus-visible img{transform:scale(1.025)}
.project-cover:focus-visible .project-arrow>span{transform:translate(2px,-2px)}
@media(hover:hover){.project-cover:hover img{transform:scale(1.025)}.project-cover:hover .project-arrow>span{transform:translate(2px,-2px)}}
.more-materials .project{grid-column:auto}.more-materials .project-cover{height:320px}.more-materials .project-caption{padding:23px}.more-materials .project-caption h3{font-size:25px}
/* Two offers share one surface, image ratio and aligned actions. */
.other-offers{margin-top:54px}.other-heading{margin-bottom:28px}.other-heading h3{font-size:clamp(30px,2.6vw,40px);line-height:1.15}
.special-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;align-items:stretch}
.special-card,.special-card.individual-offer{display:flex;flex-direction:column;padding:0;gap:0;background:#fff;border:1px solid #e1e8dc;border-radius:28px;overflow:hidden;min-width:0}
.special-image{float:none;position:relative;width:100%;margin:0;aspect-ratio:16/10;overflow:hidden;background:#e5ebe1}
.special-image img{display:block;width:100%;height:100%;max-height:none;border-radius:0;object-fit:cover;object-position:var(--crop-x,50%) var(--crop-y,50%)}
.special-image figcaption{position:absolute;bottom:14px;left:18px;right:18px;width:fit-content;max-width:calc(100% - 36px);padding:6px 11px;border-radius:13px;background:#fffef3ed;color:#31472f;font-size:12px;line-height:1.4}
.special-body{padding:32px;display:flex;flex-direction:column;align-items:flex-start;flex:1}
.special-card .eyebrow{font-size:11px;margin-bottom:14px}
.special-card h3{font-size:clamp(27px,2.2vw,34px);line-height:1.15;margin:0;overflow-wrap:anywhere}
.special-card .kit-price{font-size:34px;margin-top:18px}
.special-card .special-body>p:not(.eyebrow):not(.kit-price):not(.small-copy){font-size:16px;line-height:1.55;color:var(--muted);margin-top:16px}
.special-card .special-body>.offer-purpose{color:var(--ink)!important;font-size:18px!important}
.special-card .small-copy{font-size:14px;line-height:1.6;margin-top:16px;max-width:570px}
.special-actions{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px 25px;margin-top:auto;padding-top:26px;width:100%}
.special-actions .view-composition{font-size:16px;min-height:48px;padding-block:12px;border:0}
.special-actions .button{font-size:15px;min-height:50px;gap:15px}
.special-card.individual-offer .button{margin:0}
.homestaging{grid-template-columns:1fr 1fr;gap:0;margin-top:28px;border:1px solid #e1e8dc;border-radius:28px;overflow:hidden;background:white;align-items:stretch}
.homestaging-image{min-height:360px}.homestaging img{width:100%;height:100%;min-height:360px;object-fit:cover;border-radius:0}
.homestaging-copy{padding:36px;align-self:center}.homestaging h3{font-size:32px;line-height:1.17;margin-bottom:18px}.homestaging p:not(.eyebrow){font-size:16px;line-height:1.65}.homestaging .button{margin-top:24px;font-size:15px}
/* Original production source is 1080 × 1920. No crop, stable reserved dimensions. */
.production-grid{grid-template-columns:minmax(0,1fr) minmax(0,460px);gap:clamp(50px,6vw,108px);align-items:center;max-width:1400px}
.production-grid>div>p:not(.eyebrow){max-width:650px;font-size:18px;line-height:1.6}
.production-media{width:100%;min-width:0;justify-self:center}
.production-media video{display:block;width:100%;max-width:none;height:auto;aspect-ratio:9/16;object-fit:contain;background:#26332b;border-radius:27px}
.production-media .small-copy{font-size:13px!important;margin-top:12px;line-height:1.5!important}
.production-process{margin-top:32px}.production-process ol{grid-template-columns:1fr;gap:23px}.production-process li{padding-left:36px;max-width:590px}.production-process li:before{font-size:17px}.production-process h4{font-size:19px;margin-bottom:6px}.production-process li p{font-size:16px!important;line-height:1.6}
@media(max-width:1250px) and (min-width:901px){.header-inner{gap:18px;padding-inline:20px}.header-inner .brand img{width:130px}.desktop-nav .nav-list{gap:16px;font-size:14px}.header-phone{display:none}.header-cta{font-size:13px;gap:11px}.production-grid{grid-template-columns:minmax(0,1fr) minmax(0,420px);gap:45px}}
@media(max-width:900px){.site-header{width:calc(100% - 32px)}.header-inner{min-height:72px;padding-inline:20px;gap:16px}.header-inner .brand img{width:140px}.header-cta{margin-left:auto}.desktop-nav{margin-inline:0}.menu-toggle{min-height:44px}.project-cover{height:350px}.project-caption{padding:24px}.project-caption h3{font-size:25px}.special-grid{gap:20px}.special-body{padding:25px}.special-card h3{font-size:28px}.homestaging-copy{padding:26px}.homestaging h3{font-size:28px}.production-grid{grid-template-columns:minmax(0,1fr) minmax(0,360px);gap:30px}.production-grid>div>p:not(.eyebrow){font-size:16px}.production-process h4{font-size:17px}.production-process li p{font-size:15px!important}.production-process li{padding-left:25px}}
@media(max-width:700px){
 :root{--floating-top:10px;--header-offset:92px}
 .site-header{width:calc(100% - 20px);border-radius:21px}.header-inner{min-height:64px;padding-inline:13px;gap:10px}.header-inner .brand img{width:115px}
 .header-cta{font-size:13px;min-height:44px;padding:10px 12px;gap:9px}.header-cta .cta-label-full{display:none}.header-cta .cta-label-short{display:inline}.estimate-icon{width:21px;height:21px;flex-basis:21px}
 .menu-toggle{padding:10px 12px;min-width:44px;font-size:13px;gap:8px}.menu-toggle>span{display:none}.menu-toggle i{width:18px;height:9px}
 .hero-inner{padding-top:calc(var(--header-offset) + 55px);padding-bottom:23px}.hero-copy{margin-bottom:35px}.hero-bottom{gap:12px}
 .project-grid,.more-materials .project-grid{grid-template-columns:1fr;gap:20px}.project,.project:nth-child(n){grid-column:auto;max-width:none}
 .project-cover,.more-materials .project-cover{height:auto;aspect-ratio:1/1.04;border-radius:24px}
 .project-caption,.more-materials .project-caption{padding:23px 22px;gap:15px}.project-caption h3,.more-materials .project-caption h3{font-size:25px;text-wrap:pretty}.project-facts{font-size:14px;margin-top:9px}.project-arrow{width:42px;height:42px;flex-basis:42px;font-size:22px}
 .other-offers{margin-top:40px}.other-heading{margin-bottom:23px}.other-heading h3{font-size:30px}.special-grid{grid-template-columns:1fr;gap:23px}.special-card,.special-card.individual-offer{border-radius:25px}
 .special-image{width:100%;aspect-ratio:16/10}.special-image figcaption{left:13px;right:13px;bottom:12px;max-width:calc(100% - 26px);font-size:10px;padding:5px 9px}
 .special-body{padding:25px 23px}.special-card h3{font-size:29px}.special-card .kit-price{font-size:33px}.special-card .special-body>p:not(.eyebrow):not(.kit-price):not(.small-copy){font-size:16px}.special-card .small-copy{font-size:14px}.special-actions{display:grid;gap:12px;padding-top:23px}.special-actions .button{width:100%;font-size:15px}.special-actions .view-composition{padding-block:12px;min-height:44px;justify-content:space-between}
 .homestaging{grid-template-columns:1fr;gap:0;margin-top:23px;border-radius:25px}.homestaging-image{min-height:0;aspect-ratio:16/10}.homestaging img{min-height:0;height:100%;border-radius:0}.homestaging-copy{padding:26px 23px}.homestaging h3{font-size:29px}.homestaging p:not(.eyebrow){font-size:16px}.homestaging .button{width:100%}
 .production-grid{grid-template-columns:minmax(0,1fr);gap:30px}.production-media{width:100%;max-width:none}.production-media video{width:100%;max-width:none;border-radius:24px}.production-process ol{gap:21px}.production-process h4{font-size:18px}.production-process li p{font-size:15px!important}
 html:not(.js) .header-inner{flex-wrap:wrap!important;padding-block:14px}html:not(.js) .desktop-nav{order:3;width:100%}html:not(.js) .desktop-nav .nav-list{flex-wrap:wrap;gap:4px 16px;font-size:14px}
}
@media(max-width:360px){.header-inner{padding-inline:11px;gap:8px}.header-inner .brand img{width:107px}.header-cta{padding-inline:11px;font-size:13px}.project-caption,.more-materials .project-caption{padding:20px}.project-caption h3,.more-materials .project-caption h3{font-size:23px}.project-arrow{width:38px;height:38px;flex-basis:38px}.special-body,.homestaging-copy{padding:23px 20px}.special-card h3{font-size:27px}.special-card .special-body>.offer-purpose{font-size:17px!important}.special-actions .button{font-size:14px;padding-inline:15px}.special-image figcaption{font-size:9px}}
@media(prefers-reduced-motion:reduce){.estimate-icon *{animation:none!important;stroke-dashoffset:0}.site-header,.project-cover img,.project-arrow>span{transition:none}.project-cover:focus-visible img,.project-cover:hover img,.project-cover:focus-visible .project-arrow>span,.project-cover:hover .project-arrow>span{transform:none}}

/* PORTFOLIO-03: reserve every package cover before download, at all breakpoints. */
.kit-photo,#offer-light .special-image{position:relative;aspect-ratio:4 / 3;height:auto;flex-shrink:0}
.kit-photo>img,#offer-light .special-image>img{position:absolute;inset:0;display:block;width:100%;height:100%;max-height:none;object-fit:cover;object-position:var(--crop-x,50%) var(--crop-y,50%)}
.offer-aside img{object-fit:contain;object-position:center;background:var(--warm)}
@media(min-width:701px){
 .kit-body>h3,.kit-body>.kit-subtitle,.kit-body>.kit-apartment{min-height:0}
 .special-grid .special-image{aspect-ratio:4 / 3}
}
@media(max-width:700px){
 .kit-photo>img,#offer-light .special-image>img{object-position:var(--mobile-x,50%) var(--mobile-y,50%)}
 .kit-body{height:auto}.kit-body>*{min-height:0}
}
