/* Home */
.hero{position:relative;display:grid;grid-template-columns:minmax(0,1fr);border-bottom:1px solid var(--line)}
.hero-copy{position:relative;z-index:2;width:100%}
.hero-txt{width:min(560px,44%);padding:clamp(48px,6vw,88px) 0 clamp(48px,5vw,72px)}
.hero h1{font-size:clamp(2.9rem,5.4vw,5.1rem);line-height:.98;margin-bottom:24px}
.hero .lede{font-size:1.125rem;margin-bottom:32px}
.hero-fig{position:absolute;top:0;right:0;bottom:0;width:calc(50% + 40px);margin:0;display:flex;flex-direction:column}
.hero-fig picture{flex:1;min-height:0}
.hero-fig img{width:100%;height:100%;object-fit:cover}
.hero-fig figcaption{display:flex;align-items:center;gap:20px;padding:14px var(--gut) 16px 24px;background:var(--concrete)}
.hero-fig .dim{flex:1;min-width:0}
.hero-fig .link{flex:none;font-size:.9375rem}
.qs{background:var(--white);border:1px solid var(--line);padding:20px 20px 16px;box-shadow:0 1px 0 var(--line)}
.qs-h{margin:0 0 12px;color:var(--ink-2);text-transform:uppercase;letter-spacing:.06em}
.qs-row{display:grid;grid-template-columns:1.1fr 1fr;gap:12px}
.qs-row .btn{grid-column:1/-1}
.qs-out{margin-top:12px;font-size:.9375rem}
.qs-out:empty{display:none}
.qs-out b{font-family:var(--display);font-size:1.1rem}
.qs-out .ok{color:var(--forest)}
.qs-next{display:flex;flex-wrap:wrap;gap:16px;align-items:center;margin-top:12px}
@media (max-width:900px){
 .hero-txt{width:100%;padding-bottom:32px}
 .hero-fig{position:relative;width:100%}
 .hero-fig picture{aspect-ratio:16/11}
 .hero-fig figcaption{flex-direction:column;align-items:stretch;padding:14px var(--gut)}
}
@media (max-width:480px){.qs-row{grid-template-columns:1fr}}

.proof{background:var(--slab);color:var(--on-slab)}
.proof-in{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.proof-in div{padding:28px 24px 28px 0;display:flex;flex-direction:column;gap:6px;border-left:1px solid #3A3C37;padding-left:24px}
.proof-in div:first-child{border-left:0;padding-left:0}
.proof b{font:700 clamp(2rem,3.4vw,2.9rem)/1 var(--display)}
.proof span{color:var(--on-slab-2);font-size:.9375rem;line-height:1.45}
.proof .example{margin-left:4px;font-style:normal;vertical-align:middle}
@media (max-width:860px){.proof-in{grid-template-columns:1fr 1fr}.proof-in div:nth-child(3){border-left:0;padding-left:0}.proof-in div:nth-child(n+3){border-top:1px solid #3A3C37}}
@media (max-width:340px){.proof-in{grid-template-columns:1fr}.proof-in div{border-left:0!important;padding-left:0!important;border-top:1px solid #3A3C37}.proof-in div:first-child{border-top:0}}

.svc-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s3)}
.svc{position:relative;display:block;text-decoration:none;overflow:hidden;background:var(--slab);aspect-ratio:4/5}
.svc picture,.svc img{width:100%;height:100%;object-fit:cover}
.svc img{transition:transform .9s var(--ease),opacity .4s}
.svc::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,21,19,0) 38%,rgba(20,21,19,.86) 100%)}
.svc:hover img{transform:scale(1.04)}
.svc-t{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:22px;color:#F4F2EE;display:flex;flex-direction:column;gap:6px}
.svc-t .mono{color:#D8D3CA}
.svc-t b{font:700 1.65rem/1.05 var(--display)}
.svc-p{font-size:.9375rem;color:#E4DFD6}
@media (max-width:1000px){.svc-grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.svc-grid{grid-template-columns:1fr}.svc{aspect-ratio:4/3.4}}

.more{margin:var(--s4) 0 0}

.est-in{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:var(--s5);align-items:center}
.mini-est{background:var(--slab-2);border:1px solid #3A3C37;padding:28px;display:grid;gap:22px}
.mini-est .select{background-color:var(--white)}
.mini-est label{color:var(--on-slab)}
.me-res{display:flex;flex-direction:column;gap:6px;padding:18px 0;border-top:1px solid #3A3C37;border-bottom:1px solid #3A3C37}
.me-res .mono{color:var(--on-slab-2)}
.me-res b{font:700 clamp(1.8rem,3vw,2.4rem)/1.05 var(--display)}
.mini-est .btn{background:var(--oak-pale);border-color:var(--oak-pale);color:var(--ink)}
.mini-est .btn:hover{background:#EFE3D2}
.sec-slab .range{accent-color:var(--oak-pale)}
@media (max-width:860px){.est-in{grid-template-columns:1fr;gap:var(--s4)}}

.portal-in{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s5);align-items:center}
.pmock{background:var(--white);border:1px solid var(--line);padding:18px;box-shadow:0 30px 60px -30px rgba(30,30,25,.35);display:grid;gap:14px;max-width:520px;justify-self:end;width:100%}
.pmock-top{display:flex;flex-direction:column;gap:10px}
.pmock-bar{display:block;height:6px;background:var(--concrete-2)}
.pmock-bar i{display:block;height:100%;background:var(--forest)}
.pmock-photo{aspect-ratio:4/3;overflow:hidden}
.pmock-photo img{width:100%;height:100%;object-fit:cover}
.pmock-note b{font:700 1.15rem var(--display)}
.pmock-note p{margin:4px 0 0;font-size:.9375rem;color:var(--ink-2)}
.pmock-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.pmock-list li{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}
@media (max-width:860px){.portal-in{grid-template-columns:1fr}.pmock{justify-self:stretch}}

.gp-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border-top:1.5px solid var(--ink)}
.gp{padding:24px 24px 8px 0;border-right:1px solid var(--line);margin-right:24px}
.gp:last-child{border-right:0;margin-right:0}
.gp h3{margin:16px 0 10px;font-size:1.35rem}
.gp p{color:var(--ink-2);font-size:.9688rem}
@media (max-width:1000px){.gp-grid{grid-template-columns:1fr 1fr}.gp:nth-child(2){border-right:0;margin-right:0}}
@media (max-width:560px){.gp-grid{grid-template-columns:1fr}.gp{border-right:0;margin-right:0;border-bottom:1px solid var(--line)}}

.rev-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s3)}
.rev-grid .review{margin:0}
@media (max-width:900px){.rev-grid{grid-template-columns:1fr}}

.areas{position:relative;padding:clamp(240px,30vw,420px) 0 0}
.areas>picture{position:absolute;inset:0 0 auto 0;height:clamp(340px,40vw,560px)}
.areas>picture img{width:100%;height:100%;object-fit:cover}
.areas .wrap{position:relative}
.areas-card{background:var(--paper);border:1px solid var(--line);padding:clamp(24px,4vw,48px);max-width:640px}
.areas-card h2{font-size:clamp(1.9rem,3.4vw,2.8rem)}
