/* ============================================================
   TOWNSHIP — the colony developer
   Scoped to body.d-township. 1rem = 10px.
   Plot animations start from the final state (fill backwards).
   ============================================================ */
body.d-township{
  --tw-bg:#f6f1e7;--tw-bg2:#efe7d8;--tw-card:#fffdf8;--tw-ink:#1d2a22;--tw-soft:#4d5a51;--tw-mute:#7b857e;--tw-line:#e2d8c5;
  --tw-green:#1f4d3a;--tw-green2:#2f6b50;--tw-brass:#b8893b;--tw-r:16px;
  --bg-primary:var(--tw-bg);--bg-secondary:var(--tw-bg2);--bg-card:var(--tw-card);--bg-inset:#f1eadd;
  --fg-primary:var(--tw-ink);--fg-soft:var(--tw-soft);--fg-muted:var(--tw-mute);--border-color:var(--tw-line);--border-strong:#cfc2a8;
  background:var(--tw-bg);color:var(--tw-ink);font-family:'DM Sans',system-ui,sans-serif
}
body.d-township h1,body.d-township h2,body.d-township h3{font-family:'Playfair Display',Georgia,serif;font-weight:700;letter-spacing:-.01em}
body.d-township h2 em,body.d-township h1 em{font-style:italic;color:var(--tw-brass)}
body.d-township .bx-nav{background:rgba(246,241,231,.9);border-color:var(--tw-line)}
body.d-township .bx-nav a,body.d-township .bx-brand{color:var(--tw-ink)}
body.d-township .bx-brand-mark{background:#fff;border-radius:10px}
body.d-township .bx-nav-cta{background:var(--tw-green);color:#fff;border-radius:999px}
.tw-kick{font-size:1.2rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--tw-brass)}

/* hero */
.tw-hero{position:relative;overflow:hidden;padding:calc(var(--nav-h) + 6rem) 2.4rem 7rem;background:radial-gradient(900px 500px at 85% 30%,rgba(184,137,59,.14),transparent 60%),linear-gradient(180deg,#f9f5ec,var(--tw-bg))}
.tw-hero-in{max-width:var(--max-w);margin:0 auto;display:grid;grid-template-columns:1.05fr 1fr;gap:4.4rem;align-items:center}
.tw-over{font-size:1.3rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--tw-green2)}
.tw-hero h1{font-size:clamp(4.6rem,7.2vw,9rem);line-height:.98;margin:2rem 0;color:var(--tw-green)}
.tw-tag{font-family:'Playfair Display',serif;font-style:italic;font-size:clamp(2rem,2.3vw,2.6rem);line-height:1.4;color:var(--tw-soft);max-width:30ch}
.tw-actions{display:flex;flex-wrap:wrap;gap:1.2rem;margin-top:3.2rem}
.tw-btn{display:inline-flex;align-items:center;gap:1rem;padding:1.6rem 2.8rem;border-radius:999px;font-weight:700;font-size:1.55rem;transition:transform .25s var(--ease),box-shadow .25s,background .25s}
.tw-btn-main{background:var(--tw-green);color:#fff;box-shadow:0 14px 34px rgba(31,77,58,.28)}
.tw-btn-main:hover{transform:translateY(-3px);background:var(--tw-green2)}
.tw-btn-line{border:1.5px solid var(--tw-green);color:var(--tw-green)}
.tw-btn-line:hover{background:rgba(31,77,58,.06)}
.tw-facts{display:flex;flex-wrap:wrap;gap:3.6rem;margin-top:4rem;padding-top:2.6rem;border-top:1px solid var(--tw-line)}
.tw-facts dt{font-size:1.1rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--tw-mute)}
.tw-facts dd{font-family:'Playfair Display',serif;font-size:3rem;font-weight:700;color:var(--tw-green);margin-top:.2rem}

/* site plan */
.tw-plan{position:relative;width:min(540px,100%);margin-left:auto;padding:1.6rem;border-radius:26px;background:#fffdf8;border:1px solid var(--tw-line);box-shadow:0 40px 80px rgba(60,45,20,.16);transform:perspective(1200px) rotateX(10deg) rotateZ(-2deg)}
.tw-plan svg{display:block;width:100%;height:auto}
.tw-land{fill:#e8efdf;stroke:#cdd9bf;stroke-width:2}
.tw-road{stroke:#cfc6b4;stroke-width:22;fill:none;stroke-linecap:round}
.tw-road-dash{stroke:#fff;stroke-width:2;stroke-dasharray:10 9;fill:none;animation:tw-drive 2.4s linear infinite}
@keyframes tw-drive{to{stroke-dashoffset:-38}}
.tw-park{fill:#9cc28a;stroke:#fff;stroke-width:4}
.tw-trees circle{fill:#5f9a58}
.tw-plot{fill:#fff;stroke:#c9b48a;stroke-width:1.5;animation:tw-book 6.8s calc(var(--i) * .32s) ease-in-out infinite backwards}
@keyframes tw-book{0%,8%{fill:#fff}14%,70%{fill:var(--tw-brass)}78%,100%{fill:#fff}}
.tw-gate{fill:var(--tw-green)}
.tw-pin{position:absolute;left:50%;bottom:9%;transform:translateX(-50%);font-size:3.4rem;color:#c0392b;filter:drop-shadow(0 6px 8px rgba(0,0,0,.25));animation:tw-bob 2.2s ease-in-out infinite}
@keyframes tw-bob{50%{transform:translate(-50%,-8px)}}
.tw-legend{position:absolute;left:2.4rem;top:-1.6rem;display:inline-flex;align-items:center;gap:.8rem;padding:.8rem 1.4rem;border-radius:999px;background:var(--tw-green);color:#fff;font-size:1.2rem;font-weight:600;letter-spacing:.06em}
.tw-legend b{display:inline-block;width:12px;height:12px;border-radius:3px;background:#fff}
.tw-legend .tw-l2{background:var(--tw-brass)}

/* sections */
.tw-sec{padding:9rem 2.4rem 0}
.tw-sec>*{max-width:var(--max-w);margin-left:auto;margin-right:auto}
.tw-head{margin-bottom:3.6rem}
.tw-head h2{font-size:clamp(3.4rem,4.8vw,5.6rem);line-height:1.04;margin-top:1rem;color:var(--tw-green)}
.tw-projects{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:2rem}
.tw-proj{display:flex;flex-direction:column;border-radius:var(--tw-r);background:var(--tw-card);border:1px solid var(--tw-line);overflow:hidden;transition:transform .35s var(--ease),box-shadow .35s}
.tw-proj:hover{transform:translateY(-6px);box-shadow:0 26px 50px rgba(60,45,20,.14)}
.tw-proj-img{position:relative;display:flex;align-items:center;justify-content:center;aspect-ratio:16/10;background:#e9e2d2;overflow:hidden}
.tw-proj-img img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.tw-proj:hover .tw-proj-img img{transform:scale(1.05)}
.tw-proj-img>i{font-size:4rem;color:var(--tw-green2)}
.tw-status{position:absolute;left:1.4rem;top:1.4rem;padding:.6rem 1.2rem;border-radius:999px;background:rgba(29,42,34,.82);color:#fff;font-style:normal;font-size:1.15rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.tw-status.is-live{background:var(--tw-brass)}
.tw-proj-body{display:flex;flex-direction:column;gap:1rem;padding:2.4rem;flex:1}
.tw-proj h3{font-size:2.3rem;color:var(--tw-green)}
.tw-loc{font-size:1.35rem;font-weight:600;color:var(--tw-green2)}
.tw-proj p{font-size:1.45rem;line-height:1.6;color:var(--tw-soft)}
.tw-rera{font-size:1.25rem!important;font-weight:700;color:var(--tw-brass)!important;letter-spacing:.03em}
.tw-proj-foot{margin-top:auto;padding-top:1.2rem;border-top:1px dashed var(--tw-line);display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}
.tw-proj-foot b{font-family:'Playfair Display',serif;font-size:1.9rem;color:var(--tw-green)}
.tw-links{display:flex;gap:1.6rem}
.tw-links a{font-size:1.35rem;font-weight:700;color:var(--tw-brass)}
.tw-amen{list-style:none;margin:0 auto;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1px;background:var(--tw-line);border:1px solid var(--tw-line);border-radius:var(--tw-r);overflow:hidden}
.tw-amen li{display:flex;align-items:center;gap:1.4rem;padding:2rem 2.2rem;background:var(--tw-card);font-size:1.55rem;font-weight:500}
.tw-amen span{font-family:'Playfair Display',serif;font-size:1.6rem;color:var(--tw-brass)}
.tw-services{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1.6rem}
.tw-svc{padding:2.8rem;border-radius:var(--tw-r);background:var(--tw-card);border:1px solid var(--tw-line);display:flex;flex-direction:column;gap:1rem}
.tw-svc>i{width:54px;height:54px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:rgba(31,77,58,.08);color:var(--tw-green);font-size:2rem}
.tw-svc h3{font-size:2rem;color:var(--tw-green)}
.tw-svc p{font-size:1.45rem;line-height:1.6;color:var(--tw-soft)}
.tw-why{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:2.4rem;padding:4rem;border-radius:var(--tw-r);background:var(--tw-green);color:#fff}
.tw-why>div{display:flex;flex-direction:column;gap:.6rem}
.tw-why i{color:#e4c27f;font-size:2.4rem}
.tw-why b{font-family:'Playfair Display',serif;font-size:2.1rem}
.tw-why small{color:rgba(255,255,255,.78);font-size:1.4rem;line-height:1.5}
.tw-about{display:grid;grid-template-columns:1fr 1.1fr;gap:5rem;align-items:center}
.tw-photo{margin:0;border-radius:var(--tw-r);overflow:hidden;aspect-ratio:4/5;border:8px solid #fff;box-shadow:0 30px 60px rgba(60,45,20,.16)}
.tw-photo img{width:100%;height:100%;object-fit:cover}
.tw-prose p{font-size:1.65rem;line-height:1.75;color:var(--tw-soft)}
.tw-prose p+p{margin-top:1.4rem}
.tw-prose .tw-lead{font-family:'Playfair Display',serif;font-size:2.1rem;line-height:1.5;color:var(--tw-ink)}
.tw-sign{margin-top:2.4rem;padding-top:2rem;border-top:1px solid var(--tw-line)}
.tw-sign b{display:block;font-family:'Playfair Display',serif;font-style:italic;font-size:2.2rem;color:var(--tw-green)}
.tw-sign small{font-size:1.3rem;letter-spacing:.12em;text-transform:uppercase;color:var(--tw-mute)}
.tw-trust{display:grid;grid-template-columns:1fr 1.4fr;gap:2rem}
.tw-trust>div{padding:3.2rem;border-radius:var(--tw-r);background:var(--tw-card);border:1px solid var(--tw-line)}
.tw-awards,.tw-banks{list-style:none;margin:1.8rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:1rem}
.tw-awards li{display:flex;align-items:center;gap:1rem;font-size:1.6rem;font-weight:600;width:100%}
.tw-awards i{color:var(--tw-brass);font-size:2rem}
.tw-banks li{padding:1rem 1.8rem;border-radius:999px;border:1px solid var(--tw-line);background:var(--tw-bg);font-weight:700;font-size:1.4rem;color:var(--tw-green)}
.tw-team{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1.4rem}
.tw-member{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.4rem;padding:2.6rem 2rem;border-radius:var(--tw-r);background:var(--tw-card);border:1px solid var(--tw-line)}
.tw-member span{width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--tw-green);color:#e4c27f;font-family:'Playfair Display',serif;font-size:2.2rem;margin-bottom:1rem}
.tw-member b{font-size:1.65rem}
.tw-member small{font-size:1.3rem;color:var(--tw-mute)}
.tw-gal{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
.tw-gal-item{aspect-ratio:4/3;border-radius:12px;overflow:hidden;border:1px solid var(--tw-line)}
.tw-gal-item img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease)}
.tw-gal-item:hover img{transform:scale(1.06)}
.tw-revs{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.6rem}
.tw-revs figure{margin:0;padding:3rem;border-radius:var(--tw-r);background:var(--tw-card);border:1px solid var(--tw-line)}
.tw-revs blockquote{font-family:'Playfair Display',serif;font-style:italic;font-size:1.8rem;line-height:1.55}
.tw-revs figcaption{margin-top:1.6rem;font-size:1.35rem;color:var(--tw-mute)}
.tw-faq details{border-bottom:1px solid var(--tw-line)}
.tw-faq summary{display:flex;justify-content:space-between;gap:2rem;align-items:center;padding:2.2rem 0;cursor:pointer;list-style:none;font-size:1.8rem;font-weight:600}
.tw-faq summary::-webkit-details-marker{display:none}
.tw-faq summary i{color:var(--tw-brass);transition:transform .3s}
.tw-faq details[open] summary i{transform:rotate(45deg)}
.tw-faq p{padding:0 0 2.2rem;font-size:1.55rem;line-height:1.7;color:var(--tw-soft);max-width:75ch}
body.d-township .hours-row{border-radius:12px;background:var(--tw-card);border-color:var(--tw-line)}
.tw-contact{display:grid;grid-template-columns:1fr 1fr;gap:1.6rem}
.tw-contact-card{padding:4.2rem;border-radius:var(--tw-r);background:linear-gradient(150deg,#1f4d3a,#163a2b);color:#fff}
.tw-contact-card .tw-kick{color:#e4c27f}
.tw-contact-card h2{font-size:clamp(3rem,4vw,4.6rem);margin:1rem 0 1.6rem;line-height:1.05;color:#fff}
body.d-township .tw-contact-card h2 em{color:#e4c27f}
.tw-contact-card>p:not(.tw-kick){font-size:1.6rem;line-height:1.6;margin-bottom:2.4rem;color:rgba(255,255,255,.8)}
body.d-township .tw-contact-card .ci{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.14);color:#fff}
body.d-township .tw-contact-card .ci small,body.d-township .tw-contact-card .ci span{color:#fff}
body.d-township .tw-contact-card .ci-ico{background:#e4c27f;color:#1f4d3a}
body.d-township .contact-form{border-radius:var(--tw-r);padding:4rem;background:var(--tw-card);border-color:var(--tw-line)}
body.d-township .btn-onbiz{background:var(--tw-green);color:#fff;border-radius:999px;text-transform:none;letter-spacing:0;font-size:1.55rem}
.tw-map{margin-top:1.6rem}
body.d-township .biz-map{border-radius:var(--tw-r)}
.tw-share{max-width:var(--max-w);margin:4rem auto 0;padding:0 2.4rem}
body.d-township .bx-foot{margin-top:9rem}
@media (prefers-reduced-motion:reduce){.tw-plot,.tw-road-dash,.tw-pin{animation:none}}
@media (max-width:980px){
  .tw-hero-in,.tw-about,.tw-contact,.tw-trust{grid-template-columns:1fr}
  .tw-plan{margin:2rem auto 0;transform:none}
  .tw-photo{aspect-ratio:16/10}
  .tw-gal{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:640px){
  .tw-hero{padding:calc(var(--nav-h) + 4rem) 1.6rem 5rem}
  .tw-sec{padding:6.4rem 1.6rem 0}
  .tw-projects{grid-template-columns:1fr}
  .tw-gal{grid-template-columns:1fr 1fr}
  .tw-why,.tw-contact-card,body.d-township .contact-form{padding:2.6rem}
  .tw-share{padding:0 1.6rem}
}
