/* ============================================================
   Willow — Suburb Hub template (template-suburb.php)
   Evergreen per-suburb page: hero, area intro, sold/available
   grids (reusing the global .prop-grid / .prop-card), CTA.
   Brand palette only — charcoal / cream / white.
   ============================================================ */

.willow-tpl-suburb{ color:var(--color-ink); letter-spacing:1.5px; }

/* Hero */
.sub-hero{
  background:var(--color-cream);
  padding:clamp(90px,14vh,150px) 6.5vw clamp(38px,6vw,66px);
}
.sub-hero .ey{
  margin:0 0 16px;
  font-family:var(--font-text); font-weight:400;
  text-transform:uppercase; letter-spacing:2px;
  font-size:13px; color:rgba(40,32,24,.6);
}
.sub-hero h1{
  margin:0;
  font-family:var(--font-banner); font-weight:400;
  font-size:clamp(40px,7vw,72px); line-height:1.02; letter-spacing:.3px;
  color:var(--color-ink); text-wrap:balance;
}

/* Area intro (page body content) */
.sub-intro{ padding:clamp(30px,5vw,58px) 6.5vw; }
.sub-intro-copy{ max-width:760px; }
.sub-intro-copy p{
  font-family:var(--font-text); font-weight:300;
  font-size:19px; line-height:1.72; letter-spacing:.2px;
  color:var(--color-ink); margin:0 0 1.1em;
}
.sub-intro-copy p:last-child{ margin-bottom:0; }
.sub-intro-copy h2{
  font-family:var(--font-banner); font-weight:400;
  font-size:clamp(22px,2.8vw,30px); line-height:1.12; letter-spacing:.3px;
  color:var(--color-ink); margin:1.7em 0 .5em; text-wrap:balance;
}
.sub-intro-copy h2:first-child{ margin-top:0; }
.sub-intro-copy strong{ font-weight:500; }
.sub-intro-copy a{ color:inherit; text-decoration:underline; text-underline-offset:3px; }

/* Quick-facts stat bar */
.sub-intro-copy .sub-stats{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(108px,1fr));
  margin:8px 0 34px;
  border-top:1px solid var(--color-line); border-bottom:1px solid var(--color-line);
}
.sub-intro-copy .sub-stat{ padding:20px 24px 20px 0; }
.sub-intro-copy .sub-stat .v{
  display:block; font-family:var(--font-banner); font-weight:400;
  font-size:clamp(23px,3vw,32px); line-height:1; letter-spacing:.3px; color:var(--color-ink);
}
.sub-intro-copy .sub-stat .l{
  display:block; margin-top:9px; font-family:var(--font-text);
  text-transform:uppercase; letter-spacing:1.2px; font-size:11px; line-height:1.35;
  color:rgba(40,32,24,.55);
}

/* Bulleted lists — hairline rows with a small square marker */
.sub-intro-copy ul{ list-style:none; margin:0 0 1.4em; padding:0; }
.sub-intro-copy li{
  position:relative; padding:11px 0 11px 26px; border-bottom:1px solid var(--color-line);
  font-family:var(--font-text); font-weight:300; font-size:17px; line-height:1.5;
  letter-spacing:.2px; color:var(--color-ink);
}
.sub-intro-copy li::before{
  content:""; position:absolute; left:3px; top:19px;
  width:6px; height:6px; background:var(--color-ink);
}

/* Data source / attribution line */
.sub-intro-copy .sub-source{
  margin:1.8em 0 0; font-family:var(--font-text); font-weight:300;
  font-size:12px; line-height:1.55; letter-spacing:.3px; color:rgba(40,32,24,.5);
}
.sub-intro-copy .sub-source a{ color:inherit; text-decoration:underline; text-underline-offset:2px; }

/* Results sections */
.sub-section{ padding:clamp(18px,3vw,34px) 6.5vw clamp(46px,7vw,86px); }
.sub-empty{ margin:0; font-family:var(--font-text); font-weight:300; font-size:17px; line-height:1.6; letter-spacing:.2px; color:var(--color-ink); }
.sub-empty a{ color:inherit; text-decoration:underline; text-underline-offset:3px; }
.sub-section h2{
  margin:0 0 clamp(24px,4vw,42px);
  font-family:var(--font-banner); font-weight:400;
  font-size:clamp(24px,3.4vw,38px); line-height:1.1; letter-spacing:.3px;
  color:var(--color-ink);
}

/* Closing CTA — dark panel, cream button (brand lock vs Elementor globals) */
.sub-cta{
  background:var(--color-charcoal); color:var(--color-cream);
  padding:clamp(58px,8vw,112px) 6.5vw; text-align:center;
}
.sub-cta h2{
  margin:0 0 16px;
  font-family:var(--font-banner); font-weight:400;
  font-size:clamp(28px,4vw,46px); line-height:1.08; letter-spacing:.3px;
  color:var(--color-cream) !important; text-wrap:balance;
}
.sub-cta p{
  margin:0 auto 30px; max-width:56ch;
  font-family:var(--font-text); font-weight:300;
  font-size:17px; line-height:1.65; letter-spacing:.3px;
  color:rgba(242,238,235,.75);
}
.sub-cta a{
  display:inline-flex; align-items:center; gap:14px;
  background:var(--color-cream) !important; color:var(--color-charcoal) !important;
  font-family:var(--font-text); font-weight:400;
  text-transform:uppercase; letter-spacing:1.5px; font-size:13px;
  padding:16px 30px; text-decoration:none; border:none;
  transition:background .2s ease;
}
.sub-cta a:hover{ background:#FFFFFF !important; }
.sub-cta a:focus-visible{ outline:2px solid var(--color-cream); outline-offset:3px; }

@media (max-width:640px){
  .sub-intro-copy p{ font-size:17px; }
}

/* ---- Suburb page: solid-black text, Light (300) weight on the display type
   (never the thinner 100/200 cuts). Requested for legibility + consistency. ---- */
.willow-tpl-suburb .sub-hero .ey,
.willow-tpl-suburb .sub-hero h1,
.sub-intro-copy,
.sub-intro-copy p,
.sub-intro-copy h2,
.sub-intro-copy li,
.sub-intro-copy .sub-stat .v,
.sub-intro-copy .sub-stat .l,
.sub-intro-copy .sub-source,
.sub-intro-copy .sub-source a,
.willow-tpl-suburb .sub-section h2{ color:#000; }
.willow-tpl-suburb .sub-hero h1,
.sub-intro-copy h2,
.sub-intro-copy p,
.sub-intro-copy li,
.sub-intro-copy .sub-stat .v,
.willow-tpl-suburb .sub-section h2{ font-weight:300; }
.sub-intro-copy li::before{ background:#000; }
