/*
Theme Name: URBA Town Planning
Theme URI: https://www.urba.com.au
Author: URBA, a division of Contrive Consultants Pty Ltd
Author URI: https://www.contriveconsultants.com.au
Description: Custom WordPress theme for URBA Town Planning (www.urba.com.au). Statements of Environmental Effects, development due diligence and DA strategy for houses, duplexes, granny flats, townhouses and subdivisions across Sydney, Western Sydney and NSW. Built to the URBA brand guidelines (Deep, Sage, Montserrat and Inter), responsive, SEO and schema ready, no page builder required.
Version: 1.0.3
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: urba
*/

/* =========================================================
   1. Brand tokens (URBA-brand-tokens.css v1.0)
   ========================================================= */
:root{
  --deep:#0F1D1E;
  --deep-2:#16292A;
  --sage:#63805A;
  --sage-2:#557049;
  --forest:#3E5B36;
  --tint:#E3EAE0;
  --stone:#F4F5F3;
  --ink:#2B2B2B;
  --grey:#6B6F6B;
  --line:#D9DED8;
  --alert:#9A3F2E;
  --amber:#B98A2B;
  --white:#FFFFFF;
  --font-display:"Montserrat",Arial,Helvetica,sans-serif;
  --font-body:"Inter","Segoe UI",Roboto,Arial,sans-serif;
  --radius:4px;
  --maxw:1160px;
  --header-h:78px;
  --shadow:0 12px 32px rgba(15,29,30,.10);
  --tracking:.06em;
}

/* =========================================================
   2. Base
   ========================================================= */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 16px)}
body{margin:0;font-family:var(--font-body);font-size:17px;line-height:1.6;color:var(--ink);background:var(--white);-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,h5{font-family:var(--font-display);font-weight:600;color:var(--deep);line-height:1.2;margin:0 0 .5em}
h1{font-size:clamp(2rem,4.2vw,2.75rem);letter-spacing:.01em}
h2{font-size:clamp(1.5rem,3vw,2rem)}
h3{font-size:1.2rem}
h4{font-size:1rem}
p{margin:0 0 1.1em}
a{color:var(--sage);text-decoration:none;transition:color .15s}
a:hover{text-decoration:underline;color:var(--forest)}
img,svg{max-width:100%;height:auto}
img{display:block}
ul,ol{margin:0 0 1.1em;padding-left:1.25em}
li{margin-bottom:.35em}
strong{font-weight:600}
table{border-collapse:collapse;width:100%}
hr{border:0;border-top:1px solid var(--line);margin:32px 0}
figure{margin:0}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}
.skip-link{position:absolute;left:-999px;top:8px;background:var(--deep);color:#fff;padding:10px 16px;z-index:1000}
.skip-link:focus{left:8px}
:focus-visible{outline:2px solid var(--sage);outline-offset:2px}

.container{max-width:var(--maxw);margin:0 auto;padding:0 24px}
.container--narrow{max-width:820px}
.section{padding:72px 0}
.section--tight{padding:48px 0}
.section--stone{background:var(--stone)}
.section--tint{background:var(--tint)}
.section--deep{background:var(--deep);color:var(--stone)}
.section--deep h2,.section--deep h3{color:#fff}
.section--deep a{color:#B9CBB3}
.section--deep p{color:#C9D1C8}
.section-head{max-width:760px;margin-bottom:40px}
.section-head--center{margin-left:auto;margin-right:auto;text-align:center}
.eyebrow{display:block;font-family:var(--font-display);font-size:.78rem;font-weight:600;letter-spacing:var(--tracking);text-transform:uppercase;color:var(--sage);margin-bottom:12px}
.section--deep .eyebrow{color:#9DB394}
.lead{font-size:1.15rem;color:var(--grey);max-width:720px}
.caption,small{font-size:.85rem;color:var(--grey)}
.text-center{text-align:center}
.mt-0{margin-top:0}
.grid{display:grid;gap:24px}
.grid--2{grid-template-columns:repeat(2,1fr)}
.grid--3{grid-template-columns:repeat(3,1fr)}
.grid--4{grid-template-columns:repeat(4,1fr)}
@media (max-width:960px){.grid--3,.grid--4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.grid--2,.grid--3,.grid--4{grid-template-columns:1fr}.section{padding:56px 0}}

/* =========================================================
   3. Buttons
   ========================================================= */
.btn{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-display);font-weight:600;font-size:.82rem;letter-spacing:var(--tracking);text-transform:uppercase;padding:14px 24px;border-radius:var(--radius);border:1.5px solid var(--deep);background:var(--deep);color:#fff;cursor:pointer;line-height:1.1;transition:background .15s,border-color .15s,color .15s;text-decoration:none}
.btn:hover{background:var(--sage);border-color:var(--sage);color:#fff;text-decoration:none}
.btn svg{width:16px;height:16px;flex-shrink:0}
.btn--secondary{background:#fff;color:var(--deep)}
.btn--secondary:hover{background:var(--stone);border-color:var(--deep);color:var(--deep)}
.btn--sage{background:var(--sage);border-color:var(--sage)}
.btn--sage:hover{background:#fff;border-color:#fff;color:var(--deep)}
.btn--ghost{background:transparent;border-color:rgba(255,255,255,.6);color:#fff}
.btn--ghost:hover{background:#fff;border-color:#fff;color:var(--deep)}
.btn--lg{padding:17px 30px;font-size:.88rem}
.btn--block{width:100%;justify-content:center}
.link-arrow{font-family:var(--font-display);font-weight:600;font-size:.85rem;letter-spacing:.03em;color:var(--deep);display:inline-flex;align-items:center;gap:8px}
.link-arrow svg{width:16px;height:16px;transition:transform .15s}
.link-arrow:hover{color:var(--sage);text-decoration:none}
.link-arrow:hover svg{transform:translateX(3px)}

/* =========================================================
   4. Header and navigation
   ========================================================= */
.site-header{position:sticky;top:0;z-index:900;background:var(--deep);color:#fff;border-bottom:1px solid rgba(255,255,255,.06);box-shadow:0 1px 0 rgba(0,0,0,.2)}
.site-header__inner{max-width:1320px;margin:0 auto;padding:0 24px;height:var(--header-h);display:flex;align-items:center;gap:28px}
.site-header__brand{display:flex;align-items:center;flex-shrink:0}
.site-header__brand img,.site-header__brand .custom-logo{height:58px;width:auto;display:block}
.site-header__brand:hover{text-decoration:none}
.site-nav{flex:1;display:flex;justify-content:center}
.site-nav ul{list-style:none;margin:0;padding:0;display:flex;gap:4px}
.site-nav li{position:relative;margin:0}
.site-nav a{display:block;padding:10px 13px;color:#fff;font-family:var(--font-display);font-weight:500;font-size:.9rem;border-radius:var(--radius);white-space:nowrap}
.site-nav a:hover,.site-nav li.current-menu-item>a,.site-nav li.current-menu-ancestor>a,.site-nav li.current_page_parent>a{background:rgba(255,255,255,.08);color:#fff;text-decoration:none}
.site-nav .sub-menu{position:absolute;top:100%;left:0;min-width:270px;background:#fff;border-top:3px solid var(--sage);box-shadow:var(--shadow);display:none;flex-direction:column;gap:0;padding:8px 0;z-index:10}
.site-nav li:hover>.sub-menu,.site-nav li:focus-within>.sub-menu,.site-nav li.is-open>.sub-menu{display:flex}
.site-nav .sub-menu a{color:var(--deep);font-weight:500;padding:10px 18px;border-radius:0;font-size:.88rem;white-space:normal}
.site-nav .sub-menu a:hover{background:var(--stone);color:var(--sage)}
.site-nav .menu-item-has-children>a::after{content:"";display:inline-block;width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);margin-left:8px;position:relative;top:-3px;opacity:.7}
.site-nav .sub-toggle{display:none}
.site-header__cta{display:flex;align-items:center;gap:18px;flex-shrink:0;margin-left:auto}
.site-header__phone{color:#fff;font-family:var(--font-display);font-weight:600;font-size:.9rem;white-space:nowrap}
.site-header__phone:hover{color:#B9CBB3;text-decoration:none}
.nav-toggle{display:none;background:transparent;border:0;width:44px;height:44px;padding:8px;cursor:pointer;flex-direction:column;justify-content:center;gap:6px}
.nav-toggle span{display:block;height:2px;background:#fff;border-radius:2px;transition:transform .2s,opacity .2s}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
@media (max-width:1280px){.site-header__phone{display:none}.site-header__inner{gap:20px}.site-nav a{padding:10px 9px;font-size:.84rem}.site-header__cta .btn{padding:12px 16px;font-size:.76rem}}
@media (max-width:1040px){.site-nav a{padding:10px 7px;font-size:.8rem}.site-header__brand img,.site-header__brand .custom-logo{height:50px}}
@media (max-width:960px){
  .site-header__inner{gap:16px}
  .nav-toggle{display:flex}
  .site-header__cta .btn{display:none}
  .site-nav{position:fixed;top:var(--header-h);left:0;right:0;bottom:0;background:var(--deep);display:none;overflow-y:auto;padding:16px 24px 40px;justify-content:flex-start}
  .site-nav.is-open{display:block}
  .site-nav ul{flex-direction:column;gap:0}
  .site-nav>ul>li{border-bottom:1px solid rgba(255,255,255,.08)}
  .site-nav a{padding:14px 4px;font-size:1.05rem;border-radius:0}
  .site-nav .menu-item-has-children>a::after{display:none}
  .site-nav .menu-item-has-children>a{padding-right:56px}
  .site-nav .sub-toggle{display:block;position:absolute;right:0;top:6px;width:44px;height:44px;background:transparent;border:0;cursor:pointer}
  .site-nav .sub-toggle::before{content:"";display:block;width:9px;height:9px;border-right:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(45deg);margin:0 auto;transition:transform .2s;position:relative;top:-3px}
  .site-nav li.is-open>.sub-toggle::before{transform:rotate(-135deg);top:3px}
  .site-nav .sub-menu{position:static;display:none;box-shadow:none;border-top:0;background:transparent;padding:0 0 8px 16px;min-width:0}
  .site-nav li.is-open>.sub-menu{display:flex}
  .site-nav li:hover>.sub-menu,.site-nav li:focus-within>.sub-menu{display:none}
  .site-nav li.is-open:hover>.sub-menu{display:flex}
  .site-nav .sub-menu a{color:#C9D1C8;padding:10px 4px;font-size:.95rem}
  .site-nav .sub-menu a:hover{background:transparent;color:#fff}
  .site-nav .mobile-cta{margin-top:20px}
  .site-nav .mobile-cta .btn{width:100%;justify-content:center}
  body.nav-open{overflow:hidden}
}
.site-nav .mobile-cta{display:none}
@media (max-width:960px){.site-nav .mobile-cta{display:block}}

/* =========================================================
   5. Hero (home)
   ========================================================= */
.hero{background:var(--deep);color:#fff;position:relative;overflow:hidden}
.hero::after{content:"";position:absolute;inset:auto 0 0 0;height:3px;background:var(--sage)}
.hero__inner{max-width:var(--maxw);margin:0 auto;padding:72px 24px 80px;display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:center}
.hero .eyebrow{color:#9DB394}
.hero h1{color:#fff;font-size:clamp(2.1rem,4.6vw,3.15rem);margin-bottom:20px;letter-spacing:.005em}
.hero__lead{font-size:1.15rem;color:#C9D1C8;max-width:560px;margin-bottom:28px}
.hero__actions{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:34px}
.hero__points{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,1fr);gap:10px 24px;font-size:.92rem;color:#DDE3DB}
.hero__points li{display:flex;gap:10px;align-items:flex-start;margin:0}
.hero__points svg{width:18px;height:18px;flex-shrink:0;color:#9DB394;margin-top:3px}
.hero__figure{position:relative}
.hero__figure svg{width:100%;height:auto;display:block}
.hero__badge{position:absolute;left:18px;bottom:18px;background:rgba(15,29,30,.88);border-left:3px solid var(--sage);padding:12px 16px;font-size:.8rem;color:#DDE3DB;max-width:280px;line-height:1.45}
.hero__badge strong{display:block;font-family:var(--font-display);color:#fff;font-size:.82rem;letter-spacing:.04em;text-transform:uppercase;margin-bottom:3px}
@media (max-width:960px){.hero__inner{grid-template-columns:1fr;padding:56px 24px 64px;gap:40px}.hero__figure{max-width:560px}}
@media (max-width:560px){.hero__points{grid-template-columns:1fr}.hero__inner{padding:44px 20px 56px}}

/* Hero video */
.hero-video{position:relative;border-radius:var(--radius);overflow:hidden;background:#16292A;box-shadow:0 24px 60px rgba(0,0,0,.35);border:1px solid #2C4142;cursor:pointer}
.hero-video__el{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;background:#0F1D1E}
.hero-video__caption{position:absolute;left:18px;bottom:18px;background:rgba(15,29,30,.88);border-left:3px solid var(--sage);padding:10px 14px;font-size:.8rem;color:#DDE3DB;max-width:320px;line-height:1.4}
.hero-video__caption strong{display:block;font-family:var(--font-display);color:#fff;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;margin-bottom:3px}

/* Hero motion (scroll-driven sequence) */
.hero-motion{position:relative;cursor:pointer;user-select:none}
.hero-motion svg{width:100%;height:auto;display:block}
.hero-motion .hm-lot .hm-draw,.hero-motion .hm-survey .hm-draw{stroke-dasharray:1;stroke-dashoffset:1}
.hero-motion .hm-fade,.hero-motion .hm-stamp,.hero-motion .hm-shield,.hero-motion .hm-shield-text,.hero-motion .hm-q{opacity:0}
.hero-motion .hm-rise{transform:scaleY(0);transform-box:fill-box}
.hero-motion .hm-pop circle{transform:scale(0)}
.hero-motion .hm-stamp,.hero-motion .hm-shield,.hero-motion .hm-q,.hero-motion .hm-shield-text,.hero-motion .hm-rise,.hero-motion .hm-pop circle{transform-box:view-box;will-change:transform,opacity}
.hero-motion__caption{position:absolute;left:18px;bottom:26px;right:18px;min-height:24px;pointer-events:none}
.hero-motion__caption span{position:absolute;left:0;bottom:0;background:rgba(15,29,30,.88);border-left:3px solid var(--sage);padding:10px 14px;font-size:.8rem;color:#DDE3DB;max-width:320px;line-height:1.4;opacity:0;transform:translateY(6px);transition:opacity .35s ease,transform .35s ease}
.hero-motion__caption span.is-on{opacity:1;transform:none}
.hero-motion__bar{position:absolute;left:8px;right:8px;bottom:8px;height:3px;background:rgba(255,255,255,.08)}
.hero-motion__bar span{display:block;height:100%;width:0;background:var(--sage);transition:width .15s linear}
@media (prefers-reduced-motion:reduce){.hero-motion__caption span{transition:none}}

/* Trust strip */
.trust{background:var(--stone);border-bottom:1px solid var(--line)}
.trust__inner{max-width:var(--maxw);margin:0 auto;padding:22px 24px;display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.trust__item{display:flex;gap:12px;align-items:center;font-size:.9rem;color:var(--ink);line-height:1.4}
.trust__item svg{width:30px;height:30px;flex-shrink:0;color:var(--sage)}
@media (max-width:960px){.trust__inner{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.trust__inner{grid-template-columns:1fr;gap:14px}}

/* =========================================================
   6. Cards
   ========================================================= */
.card{background:var(--stone);border-top:4px solid var(--sage);border-radius:var(--radius);padding:28px 26px;display:flex;flex-direction:column;transition:transform .15s,box-shadow .15s;position:relative}
a.card,.card--link{color:inherit}
.card:hover{transform:translateY(-3px);box-shadow:var(--shadow);text-decoration:none}
.card--white{background:#fff;border:1px solid var(--line);border-top:4px solid var(--sage)}
.card__icon{width:44px;height:44px;color:var(--deep);margin-bottom:18px}
.card__icon svg{width:44px;height:44px}
.card h3{font-size:1.12rem;margin-bottom:10px}
.card h3 a{color:var(--deep)}
.card h3 a:hover{color:var(--sage);text-decoration:none}
.card p{color:var(--grey);font-size:.95rem;margin-bottom:16px;flex:1}
.card .link-arrow{margin-top:auto}
.card--featured{border-top-color:var(--deep)}
.card--featured::before{content:"Core service";position:absolute;top:14px;right:16px;font-family:var(--font-display);font-size:.66rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--forest);background:var(--tint);padding:4px 8px;border-radius:2px}
.card--plain{border-top:0;background:#fff;border:1px solid var(--line);padding:24px}

/* Client / audience row */
.audience{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.audience__item{border-left:2px solid var(--sage);padding-left:18px}
.audience__item h3{font-size:1.02rem;margin-bottom:6px}
.audience__item p{font-size:.92rem;color:var(--grey);margin:0}
@media (max-width:960px){.audience{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.audience{grid-template-columns:1fr}}

/* Process steps */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;counter-reset:step}
.step{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:26px 24px;position:relative}
.step__num{font-family:var(--font-display);font-weight:600;font-size:.78rem;letter-spacing:.08em;color:var(--sage);text-transform:uppercase;display:block;margin-bottom:14px}
.step__num::before{counter-increment:step;content:counter(step,decimal-leading-zero);display:inline-block;font-size:1.6rem;color:var(--deep);margin-right:10px;vertical-align:middle;letter-spacing:0}
.step h3{font-size:1.05rem;margin-bottom:8px}
.step p{font-size:.92rem;color:var(--grey);margin:0}
@media (max-width:960px){.steps{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.steps{grid-template-columns:1fr}}

/* Two-column feature (why URBA / about) */
.split{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.split__figure{background:var(--tint);border-radius:var(--radius);padding:32px;border-top:4px solid var(--sage)}
.split__figure svg{width:100%;height:auto;display:block}
.checklist{list-style:none;padding:0;margin:0 0 24px}
.checklist li{display:flex;gap:12px;align-items:flex-start;margin-bottom:12px}
.checklist svg{width:20px;height:20px;color:var(--sage);flex-shrink:0;margin-top:3px}
.checklist strong{display:block;color:var(--deep)}
.checklist span{font-size:.95rem;color:var(--grey)}
@media (max-width:900px){.split{grid-template-columns:1fr;gap:36px}}

/* Report sample panel */
.report-sample{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}
.report-sample__band{background:var(--deep);border-top:3px solid var(--sage);color:#fff;font-family:var(--font-display);font-weight:600;font-size:1.05rem;padding:18px 22px;letter-spacing:.03em}
.report-sample__band small{display:block;color:#9DB394;font-family:var(--font-body);font-weight:400;font-size:.78rem;margin-top:4px;letter-spacing:0}
.report-sample table{font-size:.85rem}
.report-sample th{background:var(--deep);color:#fff;text-align:left;padding:9px 12px;font-family:var(--font-display);font-weight:600;font-size:.76rem;letter-spacing:.04em}
.report-sample td{padding:9px 12px;border-bottom:1px solid var(--tint);vertical-align:top}
.report-sample tr:nth-child(even) td{background:var(--stone)}
.report-sample tr.sub td{background:var(--forest);color:#fff;font-weight:600}
.status--ok{color:var(--sage);font-weight:600}
.status--verify{color:var(--amber);font-weight:600}
.status--no{color:var(--alert);font-weight:600}
.report-sample__foot{padding:12px 16px;font-size:.78rem;color:var(--grey);background:var(--stone);border-top:1px solid var(--line)}

/* Areas band */
.areas-band{display:grid;grid-template-columns:repeat(5,1fr);gap:20px}
.areas-band__group h3{font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;color:#9DB394;margin-bottom:12px;font-weight:600}
.areas-band__group ul{list-style:none;padding:0;margin:0}
.areas-band__group li{margin:0 0 6px;font-size:.92rem}
.areas-band__group a{color:#DDE3DB}
.areas-band__group a:hover{color:#fff}
@media (max-width:960px){.areas-band{grid-template-columns:repeat(3,1fr)}}
@media (max-width:560px){.areas-band{grid-template-columns:repeat(2,1fr)}}

/* Post cards */
.post-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:26px 24px;display:flex;flex-direction:column;transition:box-shadow .15s,transform .15s;height:100%}
.post-card:hover{box-shadow:var(--shadow);transform:translateY(-2px)}
.post-card__meta{font-size:.78rem;color:var(--grey);display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px;align-items:center}
.post-card__cat{font-family:var(--font-display);font-weight:600;font-size:.7rem;letter-spacing:.07em;text-transform:uppercase;color:var(--forest);background:var(--tint);padding:4px 8px;border-radius:2px}
.post-card__cat:hover{text-decoration:none;background:var(--sage);color:#fff}
.post-card h3{font-size:1.08rem;margin-bottom:10px;line-height:1.35}
.post-card h3 a{color:var(--deep)}
.post-card h3 a:hover{color:var(--sage);text-decoration:none}
.post-card p{font-size:.93rem;color:var(--grey);flex:1;margin-bottom:16px}
.post-card__foot{display:flex;justify-content:space-between;align-items:center;font-size:.8rem;color:var(--grey)}

/* CTA band */
.cta-band{background:var(--deep);color:#fff;position:relative;overflow:hidden}
.cta-band::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--sage)}
.cta-band__inner{max-width:var(--maxw);margin:0 auto;padding:64px 24px;display:grid;grid-template-columns:1.2fr .8fr;gap:40px;align-items:center}
.cta-band h2{color:#fff;margin-bottom:12px}
.cta-band p{color:#C9D1C8;margin:0;max-width:560px}
.cta-band__actions{display:flex;gap:14px;flex-wrap:wrap;justify-content:flex-end}
@media (max-width:860px){.cta-band__inner{grid-template-columns:1fr;padding:52px 24px}.cta-band__actions{justify-content:flex-start}}

/* FAQ (details) */
.faq{margin:32px 0}
.faq details,.faq-list details{background:#fff;border:1px solid var(--line);border-radius:var(--radius);margin-bottom:10px;padding:0}
.faq summary,.faq-list summary{cursor:pointer;list-style:none;padding:16px 52px 16px 20px;font-family:var(--font-display);font-weight:600;font-size:1rem;color:var(--deep);position:relative;line-height:1.4}
.faq summary::-webkit-details-marker,.faq-list summary::-webkit-details-marker{display:none}
.faq summary::after,.faq-list summary::after{content:"";position:absolute;right:20px;top:22px;width:9px;height:9px;border-right:2px solid var(--sage);border-bottom:2px solid var(--sage);transform:rotate(45deg);transition:transform .2s}
.faq details[open] summary::after,.faq-list details[open] summary::after{transform:rotate(-135deg);top:26px}
.faq details[open] summary,.faq-list details[open] summary{border-bottom:1px solid var(--tint)}
.faq details p,.faq-list details p,.faq details ul,.faq-list details ul{padding:0 20px;margin:14px 0;color:var(--ink);font-size:.97rem}
.faq details>p:last-child,.faq-list details>p:last-child{margin-bottom:18px}
.faq h2{margin-bottom:18px}

/* =========================================================
   7. Page hero (interior)
   ========================================================= */
.page-hero{background:var(--deep);color:#fff;padding:52px 0 48px;position:relative}
.page-hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--sage)}
.page-hero h1{color:#fff;margin-bottom:12px;max-width:820px}
.page-hero .eyebrow{color:#9DB394}
.page-hero__lead{color:#C9D1C8;font-size:1.12rem;max-width:720px;margin:0}
.page-hero--slim{padding:36px 0 32px}
.breadcrumbs{font-size:.8rem;color:#9DB394;margin-bottom:16px}
.breadcrumbs a{color:#B9CBB3}
.breadcrumbs span{margin:0 6px;opacity:.6}
.breadcrumbs--light{color:var(--grey);margin:0 0 16px}
.breadcrumbs--light a{color:var(--sage)}

/* =========================================================
   8. Prose / entry content
   ========================================================= */
.prose{max-width:780px}
.prose>*:first-child{margin-top:0}
.prose h2{font-size:1.55rem;color:var(--deep);margin:2em 0 .6em;padding-top:.1em}
.prose h3{font-size:1.18rem;color:var(--forest);font-weight:500;margin:1.6em 0 .5em}
.prose p,.prose li{font-size:1.02rem}
.prose ul,.prose ol{margin-bottom:1.3em}
.prose li{margin-bottom:.45em}
.prose a{text-decoration:underline;text-decoration-color:rgba(99,128,90,.45);text-underline-offset:3px}
.prose a:hover{text-decoration-color:var(--forest)}
.prose blockquote{border-left:3px solid var(--sage);padding:4px 0 4px 18px;margin:1.5em 0;font-style:italic;color:var(--ink)}
.prose table{font-size:.92rem;margin:1.5em 0;display:block;overflow-x:auto;border:1px solid var(--line)}
.prose table th{background:var(--deep);color:#fff;text-align:left;padding:10px 12px;font-family:var(--font-display);font-weight:600;font-size:.8rem;letter-spacing:.03em;white-space:nowrap}
.prose table td{padding:10px 12px;border-bottom:1px solid var(--tint);vertical-align:top}
.prose table tr:nth-child(even) td{background:var(--stone)}
.prose img{border-radius:var(--radius);margin:1.5em 0}
.prose figcaption{font-size:.85rem;color:var(--grey);margin-top:-1em;margin-bottom:1.5em}
.prose .wp-block-image{margin:1.5em 0}
.prose .alignwide,.prose .alignfull{max-width:none}
.prose hr{margin:2.5em 0}
.prose code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9em;background:var(--stone);padding:2px 6px;border-radius:3px}
.prose pre{background:var(--stone);padding:16px;overflow:auto;border-radius:var(--radius)}

/* Scheduled-series blocks: who-for, definitions, sources, disclaimer */
.prose .who-for{background:var(--stone);border-left:4px solid var(--deep);padding:14px 18px;border-radius:var(--radius);font-size:.95rem;margin:0 0 1.8em}
.prose dl{margin:0 0 1.5em;border:1px solid var(--line);border-radius:var(--radius);padding:6px 20px;background:#fff}
.prose dt{font-family:var(--font-display);font-weight:600;color:var(--forest);margin-top:14px}
.prose dd{margin:4px 0 12px;font-size:.98rem}
.prose .sources{background:var(--stone);border-top:4px solid var(--sage);border-radius:var(--radius);padding:20px 24px 8px;margin:2.5em 0 1.5em}
.prose .sources h2{font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;color:var(--deep);margin:0 0 12px;padding:0}
.prose .sources ul{margin:0;padding-left:1.15em}
.prose .sources li{font-size:.9rem;color:var(--grey);margin-bottom:.5em}
.prose .disclaimer{border:1px solid var(--line);border-radius:var(--radius);padding:16px 20px;margin:1.5em 0 0;font-size:.85rem;color:var(--grey);background:#fff}
.prose .disclaimer p{margin:0;font-size:.85rem}
.prose .disclaimer strong{color:var(--deep)}

/* Key takeaways box (blog) */
.key-takeaways{background:var(--tint);border-left:4px solid var(--sage);border-radius:var(--radius);padding:22px 26px 8px;margin:1.8em 0 2.2em}
.key-takeaways h2{font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;color:var(--forest);margin:0 0 12px;padding:0}
.key-takeaways ul{margin:0 0 .6em;padding-left:1.15em}
.key-takeaways li{font-size:.98rem;margin-bottom:.5em}

/* Table of contents */
.toc{background:var(--stone);border:1px solid var(--line);border-radius:var(--radius);padding:18px 22px;margin:0 0 2em}
.toc__title{font-family:var(--font-display);font-weight:600;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:var(--deep);margin-bottom:10px}
.toc ol{margin:0;padding-left:1.2em;columns:2;column-gap:32px}
.toc li{font-size:.9rem;margin-bottom:6px;break-inside:avoid}
.toc a{color:var(--ink);text-decoration:none}
.toc a:hover{color:var(--sage)}
@media (max-width:640px){.toc ol{columns:1}}

/* Notice / callout */
.notice{background:var(--stone);border-left:4px solid var(--deep);padding:18px 22px;border-radius:var(--radius);margin:1.5em 0;font-size:.95rem}
.notice strong{color:var(--deep)}

/* =========================================================
   9. Blog: index and single
   ========================================================= */
.blog-layout{display:grid;grid-template-columns:1fr 300px;gap:56px;align-items:start}
@media (max-width:960px){.blog-layout{grid-template-columns:1fr;gap:40px}}
.posts-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
@media (max-width:640px){.posts-grid{grid-template-columns:1fr}}
.sidebar{position:sticky;top:calc(var(--header-h) + 24px)}
.widget{background:var(--stone);border-radius:var(--radius);padding:24px;margin-bottom:24px;border-top:4px solid var(--sage)}
.widget h3{font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;margin-bottom:14px}
.widget ul{list-style:none;padding:0;margin:0}
.widget li{margin:0 0 8px;font-size:.92rem}
.widget li a{color:var(--ink)}
.widget li a:hover{color:var(--sage)}
.widget--cta{background:var(--deep);color:#fff;border-top-color:var(--sage)}
.widget--cta h3{color:#fff}
.widget--cta p{color:#C9D1C8;font-size:.92rem}
.widget--cta .btn{width:100%;justify-content:center;margin-top:8px}
.widget--cta .btn--sage:hover{background:#fff;color:var(--deep)}
.cat-filter{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 32px;padding:0;list-style:none}
.cat-filter li{margin:0}
.cat-filter a{display:inline-block;padding:7px 14px;background:#fff;border:1px solid var(--line);border-radius:999px;font-size:.82rem;color:var(--ink);font-weight:500}
.cat-filter a:hover,.cat-filter li.is-active a{background:var(--deep);border-color:var(--deep);color:#fff;text-decoration:none}
.pagination{display:flex;gap:8px;flex-wrap:wrap;margin-top:40px;justify-content:center}
.pagination .page-numbers{display:inline-block;padding:9px 14px;border:1px solid var(--line);border-radius:var(--radius);color:var(--deep);font-family:var(--font-display);font-weight:600;font-size:.85rem}
.pagination .page-numbers.current,.pagination .page-numbers:hover{background:var(--deep);color:#fff;border-color:var(--deep);text-decoration:none}

.single-hero{padding:48px 0 32px;background:var(--stone);border-bottom:1px solid var(--line)}
.single-hero h1{font-size:clamp(1.8rem,3.6vw,2.5rem);max-width:820px}
.single-hero .post-card__meta{margin-bottom:14px}
.single-hero__lead{font-size:1.1rem;color:var(--grey);max-width:760px;margin:12px 0 0}
.post-meta-line{display:flex;gap:18px;flex-wrap:wrap;font-size:.85rem;color:var(--grey);align-items:center;margin-top:18px}
.post-meta-line svg{width:15px;height:15px;vertical-align:-2px;margin-right:5px;color:var(--sage)}
.author-box{display:flex;gap:20px;align-items:flex-start;background:var(--stone);border-top:4px solid var(--sage);border-radius:var(--radius);padding:24px;margin:48px 0 0}
.author-box__mark{width:56px;height:56px;flex-shrink:0;background:var(--deep);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;padding:10px}
.author-box__mark img{width:100%;height:auto}
.author-box h3{font-size:1rem;margin-bottom:4px}
.author-box p{font-size:.92rem;color:var(--grey);margin:0}
.author-box small{display:block;margin-top:8px}
.related{margin-top:56px}
.related h2{font-size:1.35rem;margin-bottom:20px}
.tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:32px}
.tags a{font-size:.78rem;background:var(--stone);border:1px solid var(--line);padding:5px 10px;border-radius:999px;color:var(--ink)}
.tags a:hover{background:var(--deep);border-color:var(--deep);color:#fff;text-decoration:none}
.post-nav{display:flex;justify-content:space-between;gap:20px;margin-top:40px;padding-top:24px;border-top:1px solid var(--line);font-size:.9rem}
.post-nav a{color:var(--deep);max-width:48%}
.post-nav span{display:block;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--grey);margin-bottom:4px}

/* =========================================================
   10. Service page
   ========================================================= */
.service-layout{display:grid;grid-template-columns:1fr 340px;gap:56px;align-items:start}
@media (max-width:960px){.service-layout{grid-template-columns:1fr;gap:40px}}
.service-block{margin-bottom:48px}
.service-block h2{font-size:1.5rem;margin-bottom:16px}
.include-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr;gap:10px}
.include-list li{display:flex;gap:12px;align-items:flex-start;background:var(--stone);padding:14px 16px;border-radius:var(--radius);font-size:.95rem;margin:0}
.include-list svg{width:18px;height:18px;color:var(--sage);flex-shrink:0;margin-top:3px}
.pill-list{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:0}
.pill-list li{background:var(--tint);color:var(--forest);font-family:var(--font-display);font-weight:600;font-size:.78rem;padding:7px 12px;border-radius:2px;margin:0}
.side-card{background:var(--deep);color:#fff;border-radius:var(--radius);padding:28px;border-top:4px solid var(--sage);position:sticky;top:calc(var(--header-h) + 24px)}
.side-card h3{color:#fff;font-size:1.05rem;margin-bottom:8px}
.side-card p{color:#C9D1C8;font-size:.92rem}
.side-card .btn{width:100%;justify-content:center;margin-top:6px}
.side-card ul{list-style:none;padding:0;margin:20px 0 0;border-top:1px solid rgba(255,255,255,.12);padding-top:16px}
.side-card li{font-size:.88rem;color:#DDE3DB;margin-bottom:8px;display:flex;gap:10px}
.side-card li svg{width:16px;height:16px;color:#9DB394;flex-shrink:0;margin-top:3px}
.side-card a:not(.btn){color:#fff}
.side-links{margin-top:24px;background:var(--stone);border-radius:var(--radius);padding:22px 24px;border-top:4px solid var(--sage)}
.side-links h3{font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;margin-bottom:12px}
.side-links ul{list-style:none;padding:0;margin:0}
.side-links li{margin-bottom:8px;font-size:.92rem}
.side-links a{color:var(--ink)}
.side-links a:hover{color:var(--sage)}
.side-links li.is-active a{color:var(--sage);font-weight:600}
.related-services{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
@media (max-width:760px){.related-services{grid-template-columns:1fr}}

/* Services index */
.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
@media (max-width:960px){.services-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.services-grid{grid-template-columns:1fr}}

/* =========================================================
   11. Areas
   ========================================================= */
.area-groups{display:grid;gap:40px}
.area-group h2{font-size:1.25rem;border-bottom:2px solid var(--sage);padding-bottom:10px;margin-bottom:18px}
.area-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px 20px;list-style:none;padding:0;margin:0}
.area-list li{margin:0;font-size:.95rem}
.area-list a{color:var(--ink);display:block;padding:8px 10px;border-radius:var(--radius);border:1px solid transparent}
.area-list a:hover{background:var(--stone);border-color:var(--line);color:var(--sage);text-decoration:none}
.area-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:0 0 40px}
.area-fact{background:var(--stone);border-top:4px solid var(--sage);padding:18px 20px;border-radius:var(--radius)}
.area-fact span{display:block;font-family:var(--font-display);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--grey);margin-bottom:6px}
.area-fact strong{font-size:.95rem;color:var(--deep);line-height:1.4;display:block}
@media (max-width:760px){.area-facts{grid-template-columns:1fr}}
.suburb-cloud{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:0 0 36px}
.suburb-cloud li{margin:0;background:#fff;border:1px solid var(--line);padding:6px 12px;border-radius:999px;font-size:.85rem;color:var(--ink)}

/* =========================================================
   12. Forms
   ========================================================= */
.form{background:#fff;border:1px solid var(--line);border-top:4px solid var(--sage);border-radius:var(--radius);padding:32px}
.field{margin-bottom:18px}
.field label{display:block;font-family:var(--font-display);font-weight:600;font-size:.8rem;letter-spacing:.03em;color:var(--deep);margin-bottom:6px}
.field__hint{font-weight:400;color:var(--grey);font-family:var(--font-body);letter-spacing:0;font-size:.8rem}
.field input,.field select,.field textarea{width:100%;font:inherit;font-size:.98rem;padding:12px 14px;border:1.5px solid var(--line);border-radius:var(--radius);background:#fff;color:var(--ink);transition:border-color .15s}
.field input:focus,.field select:focus,.field textarea:focus{outline:0;border-color:var(--sage);box-shadow:0 0 0 3px rgba(99,128,90,.15)}
.field textarea{min-height:130px;resize:vertical}
.field select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%236B6F6B' stroke-width='1.6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:36px}
.row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media (max-width:600px){.row{grid-template-columns:1fr}.form{padding:22px}}
.field-hp{position:absolute;left:-9999px;top:-9999px}
.filedrop{display:flex;gap:14px;align-items:center;border:1.5px dashed var(--line);border-radius:var(--radius);padding:16px;cursor:pointer;background:var(--stone);font-family:var(--font-body);font-weight:400;letter-spacing:0;font-size:.85rem;color:var(--grey)}
.filedrop:hover{border-color:var(--sage)}
.filedrop strong{color:var(--deep);font-weight:600}
.filedrop__icon svg{width:30px;height:30px;color:var(--sage)}
.filedrop__list{display:block;margin-top:4px;font-size:.78rem}
.filedrop__input{position:absolute;width:1px;height:1px;opacity:0}
.form__note{font-size:.8rem;color:var(--grey);margin:14px 0 0}
.form__error{color:var(--alert);background:#F6E8E4;border-left:4px solid var(--alert);padding:12px 16px;border-radius:var(--radius);margin-bottom:16px;font-size:.92rem}
.form__ok{color:var(--forest);background:var(--tint);border-left:4px solid var(--sage);padding:12px 16px;border-radius:var(--radius);margin-bottom:16px;font-size:.92rem}
.contact-layout{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:start}
@media (max-width:900px){.contact-layout{grid-template-columns:1fr;gap:36px}}
.contact-details{list-style:none;padding:0;margin:0 0 28px}
.contact-details li{display:flex;gap:14px;align-items:flex-start;margin-bottom:16px;font-size:.98rem}
.contact-details svg{width:22px;height:22px;color:var(--sage);flex-shrink:0;margin-top:2px}
.contact-details a{color:var(--deep);font-weight:500}
.contact-details small{display:block;color:var(--grey)}

/* Landing (request a quote) */
.land-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start}
@media (max-width:900px){.land-grid{grid-template-columns:1fr}}
.land-grid .form{position:sticky;top:calc(var(--header-h) + 24px)}
.received{text-align:center;max-width:720px;margin:0 auto}
.received__badge{width:72px;height:72px;border-radius:50%;background:var(--tint);display:flex;align-items:center;justify-content:center;margin:0 auto 22px}
.received__badge svg{width:34px;height:34px;color:var(--sage)}

/* =========================================================
   13. Footer
   ========================================================= */
.site-footer{background:var(--deep);color:var(--stone);padding:64px 0 28px;border-top:3px solid var(--sage)}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.1fr;gap:40px;margin-bottom:44px}
.footer-brand img{height:64px;width:auto;margin-bottom:18px}
.footer-brand p{font-size:.92rem;color:#C9D1C8;max-width:360px}
.site-footer h4{color:#fff;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;margin-bottom:16px}
.footer-menu{list-style:none;padding:0;margin:0}
.footer-menu li{margin-bottom:9px;font-size:.92rem}
.footer-menu a{color:#C9D1C8}
.footer-menu a:hover{color:#fff}
.footer-contact{list-style:none;padding:0;margin:0}
.footer-contact li{display:flex;gap:10px;align-items:flex-start;margin-bottom:10px;font-size:.92rem;color:#C9D1C8}
.footer-contact svg{width:18px;height:18px;color:#9DB394;flex-shrink:0;margin-top:3px}
.footer-contact a{color:#fff}
.footer-bottom{border-top:1px solid rgba(255,255,255,.12);padding-top:22px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:.8rem;color:var(--grey)}
.footer-bottom a{color:#B9CBB3}
.footer-bottom a:hover{color:#fff}
.footer-bottom__legal{text-align:right}
.footer-bottom__legal a{font-weight:500}
@media (max-width:960px){.footer-grid{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.footer-grid{grid-template-columns:1fr;gap:28px}.footer-bottom{flex-direction:column}.footer-bottom__legal{text-align:left}}

/* =========================================================
   14. Misc
   ========================================================= */
.error-404{text-align:center;padding:96px 0}
.error-404 h1{font-size:4rem;color:var(--sage)}
.search-form{display:flex;gap:8px}
.search-form input{flex:1;font:inherit;padding:12px 14px;border:1.5px solid var(--line);border-radius:var(--radius)}
.stat-band{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.stat{border-left:2px solid var(--sage);padding-left:18px}
.stat strong{display:block;font-family:var(--font-display);font-size:2rem;color:#fff;line-height:1.1;margin-bottom:6px}
.stat span{font-size:.9rem;color:#C9D1C8}
@media (max-width:900px){.stat-band{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.stat-band{grid-template-columns:1fr}}
.reveal{opacity:0;transform:translateY(14px);transition:opacity .5s ease,transform .5s ease}
.reveal.is-visible{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}}
.wp-caption{max-width:100%}
.alignleft{float:left;margin:0 24px 16px 0}
.alignright{float:right;margin:0 0 16px 24px}
.aligncenter{margin:0 auto}
.sticky{}.bypostauthor{}.gallery-caption{}.wp-caption-text{}
@media print{.site-header,.site-footer,.cta-band,.sidebar,.side-card{display:none!important}body{font-size:12pt}}
