/* Home-only visual selection; detailed service copy belongs on the inner pages. */
.home-projects{padding-block:clamp(42px,5vw,76px);background:var(--paper)}
.home-projects-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:32px}
.home-projects-heading .eyebrow{margin-bottom:12px}
.home-projects-heading h2{font-size:clamp(30px,3.2vw,46px);line-height:1.35;margin:0}
.home-projects-heading .text-link{flex-shrink:0;font-size:.875rem}
.home-project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px 24px}
.home-project-card{display:block;min-width:0}
.home-project-image{display:block;aspect-ratio:3/2;overflow:hidden;background:var(--stone)}
.home-project-image img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.home-project-caption{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;padding-top:12px}
.home-project-caption h3{font-size:1rem;font-weight:400;line-height:1.6;margin:0}
.home-project-caption small{grid-column:1;font-size:.75rem;color:var(--muted);line-height:1.7}
.home-project-caption>span{grid-column:2;grid-row:1/3;align-self:center;color:var(--accent);font-size:22px}
.home-project-card:hover img{transform:scale(1.025)}
.home-project-card:hover h3{color:var(--accent)}
.home-project-card:focus-visible{outline:2px solid var(--accent);outline-offset:6px}
.page-home .residential-services>a{display:flex;align-items:start;justify-content:space-between;gap:18px}
.page-home .residential-services>a>span:last-child{color:var(--accent);flex-shrink:0}
.page-home .method-layout{grid-template-columns:1fr}
.page-home .method-intro{display:grid;grid-template-columns:1.1fr 1fr;gap:12px 8vw;align-items:start}
.page-home .method-intro>.eyebrow{grid-column:1/-1;margin:0}
.page-home .method-intro>h2{grid-column:1;grid-row:2/4;margin:0}
.page-home .method-origin{grid-column:2;margin:0;max-width:38ch}
.page-home .method-intro>.text-link{grid-column:2;justify-self:start;margin:0}
.page-home .quality-principles{margin-top:28px;padding-top:18px;gap:24px}
.page-home .quality-principles h3{font-size:1rem;margin:0}
@media(max-width:1000px){.home-project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){
 .home-projects-heading{align-items:start;flex-direction:column;gap:12px;margin-bottom:24px}
 .home-projects-heading .eyebrow{margin-bottom:8px}
 .home-project-grid{gap:24px 16px}
 .home-project-caption{gap:2px 8px}
 .home-project-caption h3{font-size:.875rem}
 .home-project-caption small{font-size:.6875rem}
 .home-project-caption>span{font-size:18px}
 .page-home .method-intro{grid-template-columns:1fr;gap:14px}
 .page-home .method-intro>h2,.page-home .method-origin,.page-home .method-intro>.text-link{grid-column:1;grid-row:auto}
 .page-home .quality-principles{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
 .page-home .quality-principles article{border:0;padding:0}
 .page-home .quality-principles h3{font-size:.875rem}
}
@media(max-width:390px){.home-project-grid{grid-template-columns:1fr}.home-project-image{aspect-ratio:16/10}}
@media(prefers-reduced-motion:reduce){.home-project-image img{transition:none}.home-project-card:hover img{transform:none}}

/* Give the house more of the viewport. The atlas keeps its 3:2 geometry;
   the wider desktop window trims only the unused white space above/below it. */
.page-home .hero--build .build-figure{max-width:none}
.page-home .hero--build .build-panel{padding-block:4px 12px}
@media(min-width:761px){
 .page-home .hero--build.is-scroll-scene .build-figure,
 .page-home .hero--build.is-scroll-scene .build-progress{
  width:min(100%,calc((100svh - var(--header-height) - 160px) * 1.8));
 }
 .page-home .hero--build .build-art{aspect-ratio:1.8}
 .page-home .hero--build .build-layer{inset:auto 0;top:50%;height:auto;aspect-ratio:1.5;transform:translateY(-50%)}
 .page-home .hero--build .build-figure figcaption{padding-block:6px;display:block}
 /* The active stage is already shown in the controls; retain its accessible name. */
 .page-home .hero--build .build-current{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;padding:0;margin:-1px}
 .page-home .hero--build .build-caption-note{display:block;text-align:left;font-size:11px;line-height:1.8}
 .page-home .build-stages{padding:0 0 4px;gap:2px 18px}
 .page-home .build-stages button{min-height:44px;padding:8px 0;font-size:.875rem}
}
@media(max-width:760px){
 .page-home .hero--build .build-figure{width:100%}
 .page-home .hero--build .build-panel{padding-inline:8px}
}
