:root{--ink:#1d2a2a;--muted:#5b6b6b;--bg:#faf8f4;--card:#fff;--accent:#2f6f5e;--accent2:#e2a03f;--r:14px}
*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--ink);background:var(--bg);line-height:1.55}
a{color:var(--accent)}.wrap{max-width:1040px;margin:0 auto;padding:0 20px}
header.top{display:flex;justify-content:space-between;align-items:center;padding:16px 0}.logo{font-weight:800;font-size:1.15rem;text-decoration:none;color:var(--ink)}
.hero{background:linear-gradient(135deg,#2f6f5e,#1f4a40);color:#fff;padding:56px 0 64px}.hero h1{font-size:clamp(2rem,6vw,3.2rem);margin:0 0 10px;line-height:1.1}.hero p{font-size:1.1rem;opacity:.92;max-width:560px}
.btns{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}.btn{display:inline-block;padding:14px 22px;border-radius:999px;font-weight:700;text-decoration:none;border:0;cursor:pointer;font-size:1rem}
.btn.primary{background:var(--accent2);color:#1d1d1d}.btn.ghost{background:rgba(255,255,255,.14);color:#fff;border:1px solid rgba(255,255,255,.5)}.btn.dark{background:var(--accent);color:#fff}
section{padding:48px 0}h2{font-size:1.7rem;margin:0 0 6px}.sub{color:var(--muted);margin:0 0 24px}
.grid{display:grid;gap:16px;grid-template-columns:1fr}@media(min-width:640px){.grid.c2{grid-template-columns:1fr 1fr}.grid.c3{grid-template-columns:repeat(3,1fr)}.grid.c4{grid-template-columns:repeat(2,1fr)}}@media(min-width:900px){.grid.c4{grid-template-columns:repeat(4,1fr)}}
.card{background:var(--card);border-radius:var(--r);padding:20px;box-shadow:0 1px 3px rgba(0,0,0,.06),0 6px 20px rgba(0,0,0,.04)}
.stat{font-size:2rem;font-weight:800;color:var(--accent)}.label{color:var(--muted);font-size:.9rem}
.unit .price{font-size:1.8rem;font-weight:800}.unit .price small{font-size:.9rem;color:var(--muted);font-weight:500}.pill{display:inline-block;background:#e6f1ed;color:var(--accent);border-radius:999px;padding:3px 10px;font-size:.85rem;font-weight:700}
ul.clean{list-style:none;padding:0;margin:8px 0 0}ul.clean li{padding:6px 0;border-bottom:1px solid #eee}ul.clean li:last-child{border:0}
.note{background:#fff6e6;border-left:4px solid var(--accent2);padding:14px 16px;border-radius:8px}
footer{padding:32px 0;color:var(--muted);font-size:.9rem;border-top:1px solid #e8e4dc}
.cta{background:#1f4a40;color:#fff;text-align:center;border-radius:var(--r);padding:36px 20px}.cta .btns{justify-content:center}
.legal h2{margin-top:32px;font-size:1.25rem}
.badge{display:inline-block;background:var(--accent2);color:#1d1d1d;font-weight:800;border-radius:999px;padding:6px 14px;font-size:.9rem;margin-bottom:14px}
.hero.has-img{background:linear-gradient(180deg,rgba(20,45,38,.55),rgba(20,45,38,.85)),url(img/front-elevation-800.jpg) center/cover;padding-bottom:90px}
@media(min-width:800px){.hero.has-img{background-image:linear-gradient(90deg,rgba(20,45,38,.9),rgba(20,45,38,.35)),image-set(url(img/front-elevation-1600.webp) type("image/webp"),url(img/front-elevation-1600.jpg) type("image/jpeg"))}}
.gallery{display:grid;gap:12px;grid-template-columns:1fr}@media(min-width:640px){.gallery{grid-template-columns:1fr 1fr}}
.gallery figure{margin:0;border-radius:var(--r);overflow:hidden;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.08)}.gallery img{display:block;width:100%;height:auto;aspect-ratio:1921/1098;object-fit:cover}.gallery figcaption{padding:8px 12px;font-size:.9rem;color:var(--muted)}
/* full-viewport hero */
.hero.has-img{min-height:100vh;min-height:100svh;display:flex;flex-direction:column;justify-content:space-between;padding:0 0 28px;
background:linear-gradient(180deg,rgba(15,35,30,.75) 0%,rgba(15,35,30,.15) 38%,rgba(15,35,30,.1) 60%,rgba(15,35,30,.8) 100%),url(img/southwest-corner-800.jpg) 40% center/cover}
@media(min-width:800px){.hero.has-img{background-image:linear-gradient(180deg,rgba(15,35,30,.75) 0%,rgba(15,35,30,.1) 40%,rgba(15,35,30,.05) 60%,rgba(15,35,30,.8) 100%),image-set(url(img/southwest-corner-1600.webp) type("image/webp"),url(img/southwest-corner-1600.jpg) type("image/jpeg"))}}
.hero.has-img h1,.hero.has-img p{text-shadow:0 2px 12px rgba(0,0,0,.45)}
.hero.has-img>.wrap:first-child{width:100%}.hero-bottom{width:100%}
.hero-bottom .btns{margin-top:0}.hero-bottom .btn{flex:1 1 200px;text-align:center;max-width:280px;padding:16px 22px}
@media(max-width:480px){.hero-bottom .btn{max-width:none}.hero.has-img h1{font-size:2rem}}
.scroll{display:block;margin-top:16px;color:#fff;opacity:.85;font-size:.9rem;text-decoration:none}
.hero.has-img .btn.ghost{background:rgba(0,0,0,.35);backdrop-filter:blur(4px)}
/* scroll & motion */
html{scroll-behavior:smooth}
.scroll{display:flex;flex-direction:column;align-items:center;gap:6px;margin:18px auto 0;width:max-content;color:#fff;opacity:.9;font-size:.85rem;letter-spacing:.02em}
.chev{width:14px;height:14px;border-right:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(45deg);animation:bob 2s ease-in-out infinite}
@keyframes bob{0%,100%{transform:translateY(0) rotate(45deg);opacity:.6}50%{transform:translateY(6px) rotate(45deg);opacity:1}}
.motion .reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1)}
.motion .reveal.in{opacity:1;transform:none}
.hero.has-img>.wrap:first-child>*{animation:heroIn .9s cubic-bezier(.2,.7,.2,1) both}.hero.has-img h1{animation-delay:.1s}.hero.has-img p{animation-delay:.2s}.hero-bottom{animation:heroIn .9s .35s cubic-bezier(.2,.7,.2,1) both}
@keyframes heroIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
.amen{display:grid;gap:12px;grid-template-columns:1fr}@media(min-width:560px){.amen{grid-template-columns:1fr 1fr}}@media(min-width:900px){.amen{grid-template-columns:repeat(3,1fr)}}
.am{display:flex;gap:14px;align-items:flex-start;padding:18px}.am .ic{font-size:1.6rem;line-height:1;background:#e6f1ed;border-radius:12px;padding:10px}.am h3{margin:0 0 2px;font-size:1.05rem}.am p{margin:0;color:var(--muted);font-size:.95rem}
.hero-bottom{text-align:center}.hero-bottom .btns{justify-content:center}
.hero-bottom .btn{flex:0 1 240px;max-width:240px;box-shadow:0 6px 20px rgba(0,0,0,.3)}
@media(max-width:480px){.hero-bottom .btns{flex-direction:column;align-items:center}.hero-bottom .btn{flex:none;width:100%;max-width:320px}}
/* centred hero branding */
.hero.has-img>.wrap:first-child{text-align:center;display:flex;flex-direction:column;align-items:center}
.hero.has-img header.top{justify-content:center;padding:28px 0 18px;width:100%}
.hero.has-img .logo{font-size:clamp(1.9rem,8vw,3.6rem);font-weight:800;letter-spacing:-.01em;line-height:1.05;text-shadow:0 2px 14px rgba(0,0,0,.5);overflow-wrap:anywhere}
.hero.has-img .badge{max-width:100%;white-space:normal;line-height:1.35;text-align:center}
.hero.has-img h1{font-size:clamp(1.6rem,5vw,2.6rem)}
.hero.has-img p{margin-left:auto;margin-right:auto}
.badge-row{text-align:center;margin:0 0 18px}.badge-row .badge{max-width:100%;line-height:1.4;padding:8px 18px;margin:0}
.hero.has-img header.top{padding-bottom:22px}
/* hero: mid-left copy */
.hero-mid{text-align:left;align-self:flex-start;max-width:min(560px,92vw);padding:0 0 0 clamp(20px,5vw,72px);margin:auto 0}
.hero-mid h1{font-size:clamp(1.8rem,5vw,3rem)!important;margin:0 0 12px}
.hero-mid p{margin:0!important;font-size:clamp(1rem,1.6vw,1.15rem);max-width:480px}
.hero.has-img::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,28,24,.72) 0%,rgba(10,28,24,.35) 40%,rgba(10,28,24,0) 70%);pointer-events:none}
.hero.has-img{position:relative}.hero.has-img>*{position:relative;z-index:1}
@media(max-width:600px){.hero.has-img::before{background:linear-gradient(90deg,rgba(10,28,24,.65),rgba(10,28,24,.3))}.hero-mid{padding-right:20px}}
.hero-mid{padding-left:clamp(20px,9vw,160px)}
