/*
Theme Name: Mango Rubbish Removal
Description: Custom theme generated from the approved Sovereign Digital design (v2-2). No page builder. Source of truth: build_wp_theme.py in the design repo - edit there and regenerate, never here.
Author: Sovereign Digital
Version: 1.0.0
Requires PHP: 8.0
*/

/* Design A - Corporate modern (SaaS-clean).
   Refs in notes.md: 1800gotjunk, junkluggers, goloadup, 2easyremovals.
   Onest headings + Inter body. White + warm neutral bands, one CTA colour only.
   v1.8: palette aligned to the client's Brand Application Guide (2026-07-31).
   --red is the guide's CTA Burnt Orange #C55227 (kept as a variable name so the
   whole sheet stays one find-and-replace away from the next palette change).
   Mango Orange #F89308 (--gold) is graphic-only - ticks, stars, dots, icons -
   because it falls below WCAG contrast for text on white or cream. */
:root{
  --red:#C55227; --red-dark:#A34319; --gold:#F89308; --leaf:#5F7F35; --leaf-ink:#4F6C2C;
  --ink:#141D28; --body:#4B5563; --line:#E6E2DC;
  --bg:#FFFFFF; --bg-alt:#FAF8F5; --card:#FFFFFF;
  --shadow:0 8px 30px rgba(20,29,40,.07);
  --r:18px; --r-sm:12px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Inter',sans-serif;color:var(--body);background:var(--bg);
  font-size:16.5px;line-height:1.65;-webkit-font-smoothing:antialiased}
/* height:auto is load-bearing. The v1.7 speed pass put width/height attributes on
   every img for CLS; without this the height ATTRIBUTE beats the CSS aspect-ratio
   below, and card images render at their full intrinsic height in a 361px column
   (the 3,590px service grid). With height:auto the attributes still give the
   browser the ratio for CLS, and the CSS frame decides the crop. */
img{max-width:100%;height:auto;display:block}
a{color:var(--red);text-decoration:none}
h1,h2,h3,h4{font-family:'Onest',sans-serif;color:var(--ink);line-height:1.18;font-weight:700}
h1{font-size:clamp(2rem,4.2vw,3.1rem);letter-spacing:-.02em}
h2{font-size:clamp(1.5rem,3vw,2.15rem);letter-spacing:-.015em;margin-bottom:.5em}
h3{font-size:1.2rem;margin-bottom:.35em}
h4{font-size:1.05rem;margin-bottom:.3em}
p{margin-bottom:1em}
.wrap{max-width:1180px;margin:0 auto;padding:0 24px}
.wrap.narrow{max-width:860px}
.sec{padding:84px 0}
.sub{font-size:1.08rem;max-width:640px;margin-bottom:1.6em}
.kicker{font-size:.8rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;
  color:var(--red);margin-bottom:.9em}

/* buttons */
.btn{display:inline-block;background:var(--red);color:#fff;font-family:'Onest',sans-serif;
  font-weight:600;font-size:1rem;padding:14px 30px;border-radius:999px;
  box-shadow:0 6px 18px rgba(197,82,39,.28);transition:background .15s}
.btn:hover{background:var(--red-dark)}
.btn-ghost{background:#fff;color:var(--ink);border:1.5px solid var(--line);box-shadow:none}
.btn-ghost:hover{background:var(--bg-alt)}
.btn-sm{padding:14px 30px;font-size:1rem}

.btnrow{display:flex;gap:14px;flex-wrap:wrap;margin-top:1.4em}
.btnrow.center{justify-content:center}

/* ---------- header A: two-tier sticky ---------- */
.topbar{position:sticky;top:0;z-index:50}
.tier-head .utility{background:var(--ink);color:#fff;font-size:.83rem;padding:7px 0}
.tier-head .utility .wrap{display:flex;justify-content:space-between;align-items:center}
.tier-head .utility a{color:#fff;font-weight:500}
.tier-head .mainbar{background:#fff;border-bottom:1px solid var(--line)}
.tier-head .mainbar .wrap{display:flex;align-items:center;gap:28px;min-height:100px}
.logo img{height:72px;width:auto}
nav.main{display:flex;align-items:center;gap:4px;margin-left:auto}
.navitem>a:not(.btn){white-space:nowrap}
.navitem{position:relative}
.navitem>a:not(.btn){display:block;padding:10px 14px;color:var(--ink);font-family:'Onest',sans-serif;
  font-weight:600;font-size:.98rem;border-radius:8px}
.navitem>a:not(.btn):hover,.navitem>a:not(.btn).active{color:var(--red)}
.caret{display:inline-block;width:7px;height:7px;border-right:2px solid currentColor;
  border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px);margin-left:7px}
.drop{display:none;position:absolute;top:100%;left:0;background:#fff;border-radius:var(--r-sm);
  box-shadow:var(--shadow);border:1px solid var(--line);min-width:288px;padding:8px;z-index:60}
.has-drop:hover .drop{display:block}
.drop a{display:block;padding:10px 14px;color:var(--ink);font-weight:500;font-size:.94rem;
  border-radius:8px;white-space:nowrap}
.drop a:hover{background:var(--bg-alt);color:var(--red)}
.booknav{margin-left:10px}
.nav-toggle,.hamburger,.mob-only{display:none}

/* ---------- hero A: split copy | form card ---------- */
.hero-a{background:linear-gradient(180deg,#FDF9F3 0%,#fff 100%);padding:72px 0 84px}
.herogrid{display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:start}
.hero-txt .hero-sub{font-size:1.25rem;color:var(--ink);font-weight:500;margin:.7em 0 1em}
.checks{list-style:none;margin:1.2em 0}
.checks li{padding:6px 0 6px 34px;position:relative;color:var(--ink);font-weight:500}
.checks li::before{content:"";position:absolute;left:0;top:9px;width:20px;height:20px;
  border-radius:50%;background:var(--gold);
  -webkit-mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="black" d="M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z"/></svg>') center/14px no-repeat;
          mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="black" d="M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z"/></svg>') center/14px no-repeat;
  background-color:var(--gold)}
.gbadge{display:inline-flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);
  border-radius:999px;padding:10px 20px;box-shadow:var(--shadow);margin-top:1.6em}
.glabel{font-size:.82rem;font-weight:600;color:var(--body)}
.gscore{font-family:'Onest',sans-serif;font-weight:800;font-size:1.25rem;color:var(--ink)}
.stars{color:var(--gold);letter-spacing:2px;font-size:.95rem}
.gcount{font-size:.82rem;color:var(--body)}

/* dead quote form (card) */
.qform{background:#fff;border:1px solid var(--line);border-radius:var(--r);
  box-shadow:var(--shadow);padding:30px 28px}
.form-h{margin-bottom:1em}
.field{margin-bottom:14px}
.field label{display:block;font-size:.85rem;font-weight:600;color:var(--ink);margin-bottom:5px}
.input{height:44px;border:1.5px solid var(--line);border-radius:10px;background:#FCFBF9}
.input.ta{height:110px}
.hint{font-size:.78rem;color:#9AA1AB;margin:.35em 0 0}
.upload{border:1.5px dashed var(--line);border-radius:10px;padding:14px;display:flex;gap:12px;align-items:center}
.upbtn{background:var(--bg-alt);border:1px solid var(--line);border-radius:8px;padding:7px 14px;
  font-size:.85rem;font-weight:600;color:var(--ink)}
.uphint{font-size:.78rem;color:#9AA1AB}
.form-submit{display:inline-block;margin-top:6px;cursor:default}

/* video placeholder */
.video-sec{padding-top:0}
.video{border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow);background:#fff;border:1px solid var(--line)}
.vframe{aspect-ratio:16/9;position:relative;background:#000}
.vframe iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.vmeta{padding:16px 22px}
.vtitle{display:block;font-family:'Onest',sans-serif;font-weight:600;color:var(--ink)}
.vchannel{font-size:.85rem;color:var(--body)}

/* splits */
.split{display:grid;grid-template-columns:1.05fr .95fr;gap:60px;align-items:center}
.split-sec.flip .split{grid-template-columns:.95fr 1.05fr}
.split-sec.flip .split-txt{order:2}
.split-sec.flip .split-img{order:1}
/* split photos get a frame too, so a portrait source cannot stretch the section */
.split-img img{border-radius:var(--r);box-shadow:var(--shadow);width:100%;
  aspect-ratio:4/3;object-fit:cover}
.notebox{background:var(--bg-alt);border:1px solid var(--line);border-radius:var(--r-sm);
  padding:18px 20px;margin:1.2em 0}
.notebox p{margin:0}
.ecobadge{margin-top:1.5em}
/* Leaf Green, used only for reuse / donation / recycling messaging (brand guide s2) */
.split-sec.eco{background:var(--bg-alt)}
/* --leaf-ink is the same green darkened to clear 4.5:1 on cream for small text */
.split-sec.eco .kicker{color:var(--leaf-ink)}
.split-sec.eco .checks li::before{background-color:var(--leaf)}
.tree-banner{max-width:260px;border-radius:8px}
.stats{display:flex;gap:20px;margin:1.6em 0;flex-wrap:wrap}
.stat{background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);
  box-shadow:var(--shadow);padding:18px 26px;min-width:170px}
.stat .num{font-family:'Onest',sans-serif;font-weight:800;font-size:2rem;color:var(--red);display:block}
.stat .num i{font-style:normal;color:var(--gold)}
.stat .lbl{font-size:.85rem;font-weight:500;color:var(--body)}

/* market trio + generic cards */
.market-sec{background:var(--bg-alt)}
.mcards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:1.8em}
.mcard{background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:28px}
.mcard p{margin:0}

/* partner logos */
.partners{padding:48px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.partners-h{text-align:center;font-size:1.25rem;margin-bottom:1.4em}
.logos{display:flex;flex-wrap:wrap;gap:34px;align-items:center;justify-content:center}
.plogo{height:44px;width:auto;object-fit:contain;filter:grayscale(1);opacity:.65}

/* reviews */
.rev-sec{background:var(--bg-alt);text-align:center}
.rev-sec .sub{margin-left:auto;margin-right:auto}
.rev-sec .gbadge{margin:0 auto 2.2em}
.revgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;text-align:left}
.rev{background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);
  padding:24px;display:flex;flex-direction:column}
.rtext{margin:.8em 0 1em;flex:1}
.rmeta{display:flex;flex-direction:column}
.rname{font-weight:600;color:var(--ink)}
.rdate{font-size:.8rem;color:#9AA1AB}

/* service cards (signature A: shadow cards, image top) */
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-top:1.8em}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;
  box-shadow:var(--shadow);display:flex;flex-direction:column;transition:transform .15s}
.card:hover{transform:translateY(-4px)}
.card>img{aspect-ratio:4/3;object-fit:cover;width:100%}
.card-body{padding:20px 22px;display:flex;flex-direction:column;flex:1}
.card-body p{font-size:.92rem;flex:1}
.more{color:var(--red);font-weight:600;font-size:.9rem}
.more::after{content:" →"}

/* why */
.why-sec .whysub{color:var(--red);margin-bottom:.8em}
.wcols{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:1.4em}
.wcol{background:var(--bg-alt);border-radius:var(--r-sm);padding:20px 22px}
.wcol p{margin:0;font-size:.94rem}
.award{font-weight:600;color:var(--ink)}
.threebest{max-width:150px;margin-top:18px}
.why-badge{display:flex;justify-content:center}
.why-badge .threebest{max-width:230px}

/* steps (signature A: numbered stepper cards) */
.steps-sec{background:var(--bg-alt);text-align:center}
.steps-sec .sub{margin:0 auto 1em}
.sp{max-width:640px;margin:0 auto 1em}
/* v1.9 pin (home #11): 5 steps in a 3-up grid left steps 4 and 5 hanging on the
   left of the last row. Flex with justify-content:center centres the orphan row.
   Applies to every HOW IT WORKS instance across the site, as asked. */
.steps{display:flex;flex-wrap:wrap;justify-content:center;gap:22px;margin:2em 0 .6em;text-align:left}
.steps .step{flex:0 1 calc(33.333% - 14.67px);min-width:0}
.step{background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:26px}
.snum{display:inline-flex;width:40px;height:40px;border-radius:50%;background:var(--red);color:#fff;
  align-items:center;justify-content:center;font-family:'Onest',sans-serif;font-weight:700;margin-bottom:14px}
.step p{margin:0;color:var(--ink);font-weight:500}

/* item grid */
.ggrid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:1.6em}
.gitem{background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);box-shadow:var(--shadow);
  padding:20px;display:flex;gap:12px;align-items:flex-start}
.gitem h3{font-size:.98rem;margin:0}
.gdot{flex:none;width:12px;height:12px;border-radius:50%;background:var(--gold);margin-top:5px}
.gpics{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:26px}
.gpics img{border-radius:var(--r-sm);aspect-ratio:4/3;object-fit:cover;box-shadow:var(--shadow)}

/* cta band */
.cta-band{background:var(--ink);border-radius:0;padding:56px 0}
.cta-band .wrap{display:flex;align-items:center;justify-content:space-between;gap:30px;flex-wrap:wrap}
.cta-band h2{color:#fff;margin-bottom:.2em}
.cta-band p{color:#C8CDD4;margin:0}
.cta-btns{display:flex;gap:14px;flex-wrap:wrap}
.cta-band .btn-ghost{background:transparent;color:#fff;border-color:#4A5158}
.cta-band .btn-ghost:hover{background:rgba(255,255,255,.08)}

/* faq */
.faq-sec .faqs{margin-top:1.6em}
.faq-p{max-width:680px}
.faq-item{background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);
  box-shadow:var(--shadow);margin-bottom:12px;overflow:hidden}
.faq-item summary{cursor:pointer;list-style:none;padding:18px 22px;font-family:'Onest',sans-serif;
  font-weight:600;color:var(--ink);position:relative;padding-right:52px}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+";position:absolute;right:22px;top:50%;transform:translateY(-50%);
  font-size:1.4rem;color:var(--red);font-weight:600}
.faq-item[open] summary::after{content:"–"}
.faq-a{padding:0 22px 18px}
.faq-cta{margin-top:1.6em}

/* prefoot */
.prefoot{background:var(--bg-alt);text-align:center}
.prefoot .sub{margin:0 auto 1.4em}
.pf-cols{display:flex;gap:60px;justify-content:center;flex-wrap:wrap;margin-bottom:.6em}
.pf-col h3{font-size:1rem}
.pf-col p{margin:0}
.prefoot .qform{max-width:640px;margin:2.4em auto 0;text-align:left}

/* team / about / locations / articles / contact */
.center-txt{text-align:center}
.team-sec{background:var(--bg-alt)}
.team-sec .sub{margin:0 auto 1.8em}
.teampic{max-width:520px;margin:0 auto;position:relative}
.teampic img{border-radius:var(--r);box-shadow:var(--shadow)}
.teamname{position:absolute;left:18px;bottom:18px;background:#fff;border-radius:999px;
  padding:8px 20px;font-family:'Onest',sans-serif;font-weight:700;color:var(--ink);box-shadow:var(--shadow)}
.areas{display:flex;gap:14px;flex-wrap:wrap;margin:1.6em 0}
.area{background:#fff;border:1px solid var(--line);border-radius:999px;padding:12px 26px;
  font-family:'Onest',sans-serif;font-weight:600;color:var(--ink);box-shadow:var(--shadow)}
.area:hover{color:var(--red)}
.area.dead{color:var(--body)}
.acards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:1.8em}
.acard{background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;
  box-shadow:var(--shadow);display:flex;flex-direction:column;color:var(--body)}
.acard .apic{aspect-ratio:16/10;overflow:hidden;background:var(--bg-alt)}
.acard .apic img,.noimg{width:100%;height:100%;object-fit:cover}
.noimg{background:linear-gradient(135deg,#F4EFE8,#E9E2D8)}
.abody{padding:20px 22px}
.abody h3{font-size:1.05rem}
.abody p{font-size:.9rem;margin:0}
.acard.dead{cursor:default}
.prose h2{margin-top:1.6em}
.artimg img{border-radius:var(--r);box-shadow:var(--shadow);margin:1.4em 0}
.share{font-weight:600;color:var(--ink);text-transform:uppercase;font-size:.8rem;letter-spacing:.1em}
.contactgrid{display:grid;grid-template-columns:1.2fr .8fr;gap:56px;align-items:start}
.cside{background:var(--bg-alt);border-radius:var(--r);padding:28px}
.cside .gap{margin-top:1.4em}
.cside .video{margin-top:1.6em}
.loc-sec .btnrow{margin-top:2em}
.page-hero.hero-a{padding:64px 0}
.hero-pic img{border-radius:var(--r);box-shadow:var(--shadow);aspect-ratio:4/3;object-fit:cover}

/* footer A */
.site-foot{background:#fff;border-top:1px solid var(--line);margin-top:40px}
.fq-wrap{margin-top:-40px}
.fquote{background:var(--red);border-radius:var(--r);padding:34px 38px;color:#fff;
  display:grid;grid-template-columns:1fr auto;gap:8px 40px;align-items:center;box-shadow:var(--shadow)}
.fquote h3{color:#fff;font-size:1.4rem;margin:0}
.fquote p{margin:0;grid-column:1;color:#FBE3DE}
.fquote .btn{grid-row:1/3;grid-column:2;background:#fff;color:var(--red);box-shadow:none}
.fgrid{display:grid;grid-template-columns:1.4fr 1fr 1fr .8fr;gap:44px;padding:56px 24px}
.flogo{height:60px;width:auto;margin-bottom:16px}
.fcol h4{margin-bottom:.8em}
.fcol h4.gap{margin-top:1.4em}
.fcol a{display:block;color:var(--body);padding:4px 0;font-size:.95rem}
.fcol a:hover{color:var(--red)}
.fcol p{margin:0 0 .3em;font-size:.95rem}
.fsocial{display:flex;gap:10px;margin-top:10px}
.fsocial span{border:1px solid var(--line);border-radius:999px;padding:6px 16px;font-size:.85rem;font-weight:500}
.fbar{border-top:1px solid var(--line);padding:18px 0}
.fbar p{margin:0;font-size:.85rem;text-align:center}

/* responsive */
@media (max-width:1020px){
  .herogrid,.split,.split-sec.flip .split{grid-template-columns:1fr}
  .split-sec.flip .split-txt{order:1}
  .split-sec.flip .split-img{order:2}
  .cards,.ggrid{grid-template-columns:repeat(2,1fr)}
  .gpics{grid-template-columns:repeat(2,1fr)}
  .revgrid,.mcards,.steps,.acards{grid-template-columns:repeat(2,1fr)}
  .fgrid{grid-template-columns:1fr 1fr}
  .contactgrid{grid-template-columns:1fr}
}
@media (max-width:900px){
  .hamburger{display:flex;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;
    margin-left:auto;cursor:pointer;border:1px solid var(--line);border-radius:10px;padding:10px}
  .hamburger span{display:block;height:2.5px;background:var(--ink);border-radius:2px}
  nav.main{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;
    flex-direction:column;align-items:stretch;gap:0;padding:12px 20px 20px;
    border-bottom:1px solid var(--line);box-shadow:var(--shadow)}
  .nav-toggle:checked~nav.main{display:flex}
  .tier-head .mainbar .wrap{position:relative}
  .tier-head .mainbar{position:relative}
  .navitem>a:not(.btn){padding:13px 8px;font-size:1.05rem}
  .drop{display:block;position:static;box-shadow:none;border:none;padding:0 0 6px 16px}
  .caret{display:none}
  .booknav{margin:8px 0 0}
  .mob-only{display:block}
  .tier-head .utility .umail{display:none}
}
@media (max-width:640px){
  .sec{padding:56px 0}
  .hero-a{padding:48px 0 56px}
  .cards,.ggrid,.revgrid,.mcards,.steps,.acards,.gpics{grid-template-columns:1fr}
  .fgrid{grid-template-columns:1fr;gap:30px}
  .fquote{grid-template-columns:1fr}
  .fquote .btn{grid-row:auto;grid-column:1;justify-self:start;margin-top:10px}
  .logo img{height:52px}
  .cta-band .wrap{flex-direction:column;align-items:flex-start}
  .pf-cols{gap:24px;flex-direction:column}
}

/* ================= v1 client-build additions ================= */

/* full-bleed hero, H1 on the image over a dark overlay */
.hero-full{position:relative;color:#fff;display:flex;align-items:center;min-height:560px}
.hero-full .heroimg{position:absolute;inset:0;overflow:hidden}
.hero-full .heroimg img{width:100%;height:100%;object-fit:cover}
.hero-full .overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(17,20,24,.55) 0%,rgba(17,20,24,.68) 100%)}
.hero-full .herocontent{position:relative;padding:96px 24px}
.hero-full h1{color:#fff;font-size:clamp(2.1rem,4.6vw,3.4rem);max-width:760px}
.hero-full .hero-sub{color:#EDEFF2;font-size:1.22rem;font-weight:500;max-width:640px;margin:.8em 0 1.4em}
.hero-full .kicker{color:var(--gold)}
.hero-full .gbadge{margin-top:1.8em}
.page-hero.hero-full{min-height:420px}
.page-hero.plain{background:linear-gradient(180deg,#FDF9F3 0%,#fff 100%);padding:72px 0 56px}
.page-hero.plain h1{font-size:clamp(2rem,4vw,2.9rem);max-width:820px}
.page-hero.plain .hero-sub{font-size:1.18rem;color:var(--ink);font-weight:500;max-width:700px;margin:.7em 0 1.2em}

/* hero/footer CTA row: quote solid, text+call ghost */
.hero-full .btn-ghost{background:rgba(255,255,255,.08);color:#fff;border-color:rgba(255,255,255,.45)}
.hero-full .btn-ghost:hover{background:rgba(255,255,255,.16)}
.btnrow{display:flex;gap:14px;flex-wrap:wrap;margin-top:1.2em}
.btnrow.center{justify-content:center}

/* proof strip */
.proof-sec{padding:34px 0;border-bottom:1px solid var(--line);background:#fff}
.proof-sec .stats{margin:0;justify-content:center;align-items:stretch}
.proof-sec .stat.award{display:flex;align-items:center;justify-content:center;padding:12px 22px}
.proof-sec .stat.award img{max-height:74px;width:auto}
.proofline{text-align:center;margin:1.2em 0 0;font-weight:600;color:var(--ink)}

/* pricing table */
.ptable{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow);
  background:#fff;margin-top:1.6em}
.prow{display:grid;grid-template-columns:1.2fr 1.6fr auto;gap:18px;align-items:center;
  padding:18px 26px;border-bottom:1px solid var(--line)}
.prow:last-child{border-bottom:none}
.prow:nth-child(odd){background:#FCFBF9}
.pname{font-family:'Onest',sans-serif;font-weight:700;color:var(--ink)}
.plimit{color:var(--body)}
.pprice{font-family:'Onest',sans-serif;font-weight:800;font-size:1.3rem;color:var(--red);text-align:right}
.pprice.small{font-size:1rem;font-weight:600}
.pnote{font-size:.92rem;color:var(--body);margin-top:1em}
.price-preview{background:var(--bg-alt)}
.price-preview .sub{max-width:720px}
.included{margin-top:2.2em}
.included h3{margin-bottom:.6em}

/* gallery */
.galgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:1.8em}
figure.gal{margin:0;background:#fff;border:1px solid var(--line);border-radius:var(--r);
  overflow:hidden;box-shadow:var(--shadow)}
figure.gal img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
figure.gal figcaption{padding:14px 18px;font-size:.9rem;color:var(--body)}

/* contact methods */
.methods{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.method{background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);
  padding:28px;display:block;color:var(--body);transition:transform .15s}
.method:hover{transform:translateY(-4px)}
.method h3{margin-bottom:.3em}
.mlabel{display:block;font-family:'Onest',sans-serif;font-weight:800;font-size:1.15rem;color:var(--red);margin-bottom:.6em}
.method p{margin:0;font-size:.94rem}
.methods-sec .pnote{text-align:center;margin-top:1.6em}

/* persistent mobile action bar (brief section 8) */
.actionbar{display:none}
@media (max-width:900px){
  .actionbar{display:grid;grid-template-columns:1fr 1.2fr 1.2fr;position:fixed;left:0;right:0;bottom:0;
    z-index:60;background:#fff;border-top:1px solid var(--line);box-shadow:0 -6px 24px rgba(20,29,40,.12)}
  .actionbar a{padding:15px 6px;text-align:center;font-family:'Onest',sans-serif;font-weight:700;
    color:var(--ink);font-size:.95rem;border-right:1px solid var(--line)}
  .actionbar a:last-child{border-right:none}
  .actionbar .ab-quote{background:var(--red);color:#fff}
  body{padding-bottom:54px}
}

/* small layout helpers */
.area-sec{background:var(--bg-alt)}
.hours-sec .ptable .prow{grid-template-columns:1fr 1.6fr}
.changer-sec .split{align-items:start}
.utility .wrap{display:flex;gap:26px}
.utility .umail{margin-left:auto}
@media (max-width:1020px){.galgrid,.methods{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){
  .galgrid,.methods{grid-template-columns:1fr}
  .prow{grid-template-columns:1fr auto;gap:6px 14px}
  .plimit{grid-column:1/-1;font-size:.9rem}
  .hero-full{min-height:520px}
  .hero-full .herocontent{padding:72px 24px}
  .proof-sec .stats{gap:12px}
  .proof-sec .stat{min-width:130px;padding:14px 18px}
}

/* v1 QA fixes 2026-07-30 */
.card{color:var(--body)}
.card-body p{color:var(--body)}
.svc-sec .cards{grid-template-columns:repeat(3,1fr)}
@media (max-width:1020px){.svc-sec .cards{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.svc-sec .cards{grid-template-columns:1fr}}
.hero-full .heroimg img{object-position:22% center}
.booknav .btn{white-space:nowrap}
@media (max-width:900px){.tier-head .utility{display:none}}

/* v1.1 - CTA hierarchy rework (Sofiann 2026-07-30): one primary button,
   text/call as quiet links, rating as a stars line not a pill */
.ctastack{margin-top:1.2em}
.ctastack .btnrow{margin-top:0}
.ctastack.center{text-align:center}
.alt-actions{margin:.9em 0 0;font-size:1.02rem;color:var(--body)}
.alt-actions a{color:var(--ink);font-weight:600;text-decoration:underline;text-underline-offset:3px}
.alt-actions a:hover{color:var(--red)}
.alt-actions .dot{margin:0 10px;color:#9AA1AB}
.hero-full .alt-actions{color:#D7DBE0}
.hero-full .alt-actions a{color:#fff}
.hero-full .alt-actions a:hover{color:var(--gold)}
.cta-band .alt-actions{color:#C8CDD4}
.cta-band .alt-actions a{color:#fff}
.grating{display:flex;align-items:center;gap:10px;margin-top:1.6em}
.grating .stars{font-size:1.05rem}
.grating .gscore{font-family:'Onest',sans-serif;font-weight:800;font-size:1.1rem;color:var(--ink)}
.grating .gcount{font-size:.92rem;color:var(--body)}
.hero-full .grating .gscore{color:#fff}
.hero-full .grating .gcount{color:#D7DBE0}
.rev-sec .grating{justify-content:center;margin:0 auto 2.2em}
.cta-band .cta-btns{display:block}
.hero-full .grating .gcount{color:#EDEFF2}
.alt-actions .dot{margin:0 12px}
.fquote .alt-actions{color:#FBE3DE}
.fquote .alt-actions a{color:#fff}
.fquote .alt-actions a:hover{color:#FBE3DE}
.fquote .alt-actions .dot{color:#F0A79B}

/* v1.3 - hero copy legibility + linked Google badge (Sofiann 2026-07-30) */
.hero-full .overlay{background:
  linear-gradient(90deg,rgba(14,16,20,.86) 0%,rgba(14,16,20,.72) 42%,rgba(14,16,20,.38) 72%,rgba(14,16,20,.22) 100%)}
.hero-full h1,.hero-full .hero-sub{text-shadow:0 2px 18px rgba(0,0,0,.45)}
.hero-full .hero-sub{color:#F4F6F8}
a.grating{text-decoration:none}
.glogo{width:22px;height:22px;flex:none}
.grating .gcount{text-decoration:underline;text-underline-offset:3px}
.hero-full .grating .gcount{color:#F4F6F8}
.grating:hover .gcount{color:var(--gold)}
.rev-sec .grating .gcount{color:var(--body)}

/* v1.4 - dark footer, red card bridges page->footer properly (Sofiann 2026-07-30) */
.site-foot{background:var(--ink);border-top:none;margin-top:96px}
.fq-wrap{margin-top:0}
.fq-wrap .fquote{transform:translateY(-50%);margin-bottom:-40px}
.site-foot .fgrid{padding:26px 24px 56px}
.site-foot .fcol h4{color:#fff}
.site-foot .fcol a,.site-foot .fcol p{color:#B9C0C8}
.site-foot .fcol a:hover{color:#fff}
.site-foot .fabout p{color:#B9C0C8}
.flogo-chip{display:inline-block;background:#fff;border-radius:12px;padding:10px 16px;margin-bottom:16px}
.flogo-chip .flogo{margin-bottom:0;display:block}
.site-foot .fbar{border-top:1px solid #2A2F36;background:#14171B}
.site-foot .fbar p{color:#8B939D}
.fquote{box-shadow:0 18px 50px rgba(17,20,24,.35)}
@media (max-width:640px){
  .site-foot{margin-top:110px}
  .fq-wrap .fquote{transform:translateY(-38%);margin-bottom:0}
}

/* v1.5 - no more floating card: card lives fully inside the dark footer.
   No overlap, no spacer gap, no stripe (Sofiann 2026-07-30). */
.site-foot{margin-top:0}
.fq-wrap{margin-top:0;padding-top:64px}
.fq-wrap .fquote{transform:none;margin-bottom:0}
@media (max-width:640px){
  .site-foot{margin-top:0}
  .fq-wrap .fquote{transform:none}
  .fq-wrap{padding-top:40px}
}

/* v1.6 - quote card dropped entirely (Sofiann 2026-07-30). Footer = columns + bar. */
.site-foot .fgrid{padding:64px 24px 56px}
.faddr{margin-top:6px}

/* v1.7 - feedback widget: keep the FAB clear of the mobile action bar */
@media (max-width:900px){
  .vd-fb-fab-bar{bottom:76px !important}
  /* the standalone FAB only - inside the bar it must stay bottom:auto */
  .vd-fb-fab:not(.vd-fb-fab-bar .vd-fb-fab){bottom:76px !important}
}

/* v1.8 - make the feedback button findable. Natana could not see it in v1: it
   was Mango red, so it read as a fourth site CTA next to Get a Quote. Now it is
   charcoal (set via data-color) and announces itself with three slow rings on
   load, then sits quiet. */
/* widget.js sets position:static on the FAB inside the bar - the ring needs a
   positioned box to sit on, so put it back to relative. bottom:auto is required:
   the widget's own rule carries bottom:24px, which a relative box would honour
   and shift the button up into the "All feedback" pill above it. */
.vd-fb-fab-bar .vd-fb-fab{position:relative !important;bottom:auto !important}
.vd-fb-fab::after{content:"";position:absolute;inset:0;border-radius:999px;
  border:2px solid #141D28;animation:vd-fb-ring 1.9s ease-out 3;pointer-events:none}
.vd-fb-fab.vd-fb-on::after{display:none}
@keyframes vd-fb-ring{
  0%{opacity:.75;transform:scale(1)}
  100%{opacity:0;transform:scale(1.18)}
}
@media (prefers-reduced-motion:reduce){
  .vd-fb-fab::after{animation:none;opacity:0}
}

/* v2 - suburb chips on the location pages (Sofiann 31 Jul: each main town page
   names the smaller suburbs around it) */
.subchips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 1.2em}
.sub-chip{display:inline-block;max-width:100%;background:var(--bg-alt);
  border:1px solid var(--line);border-radius:999px;padding:7px 15px;
  font-size:.92rem;font-weight:500;color:var(--ink);white-space:nowrap}
@media (max-width:420px){ .sub-chip{font-size:.86rem;padding:6px 12px;white-space:normal} }

/* v2 - restored article pages keep the client's own copy, so they need real
   long-form reading styles */
.arthero{padding-bottom:0}
.artbody{padding-top:34px}
.artbody h2{margin-top:1.6em}
.artbody h3,.artbody h4{margin-top:1.3em}
.artbody p{max-width:70ch}
.artlist{margin:0 0 1.2em;padding-left:22px}
.artlist li{margin-bottom:.5em;max-width:70ch}
.artgrid .artcard{display:block}
.artcard .acardtxt{padding:24px 26px}
.artcard h3{margin-bottom:.4em}

/* v2 - town grid on the /locations/ hub */
.towngrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:1.6em}
.towncard{display:block;background:#fff;border:1px solid var(--line);border-radius:var(--r);
  box-shadow:var(--shadow);padding:24px 26px;transition:box-shadow .15s,transform .15s}
.towncard:hover{transform:translateY(-2px);box-shadow:0 12px 34px rgba(20,29,40,.10)}
.towncard h3{margin-bottom:.3em}
.towncard p{color:var(--body);font-size:.95rem;margin-bottom:.7em}
@media (max-width:900px){ .towngrid{grid-template-columns:repeat(2,1fr)} }
@media (max-width:560px){ .towngrid{grid-template-columns:1fr} }

/* =========================== v1.9 - client feedback round 2 =========================== */

/* steps: breakpoint widths for the new flex stepper (see .steps above) */
@media (max-width:1020px){ .steps .step{flex-basis:calc(50% - 11px)} }
@media (max-width:640px){ .steps .step{flex-basis:100%} }

/* pin (home #1, #12): "call 0426 873 226" was breaking across two lines on
   mobile. The number never wraps, and on mobile the whole call action drops to
   its own line with the middot separator hidden. */
.alt-actions .alt-text,.alt-actions .alt-call{white-space:nowrap}
@media (max-width:640px){
  .alt-actions .alt-call{display:block;margin-top:.35em}
  .alt-actions .dot{display:none}
}

/* pins (home #5, #6, #7): mobile navigation.
   #5 the open menu ran past the bottom of the screen with no way to scroll;
   #6 and #7 Services and Service Areas are now tap-to-expand accordions
   instead of dumping all 17 child links inline. */
.drop-toggle,.drop-lbl{display:none}
@media (max-width:900px){
  nav.main{max-height:calc(100dvh - 100%);overflow-y:auto;overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch}
  .navitem.has-drop{display:grid;grid-template-columns:1fr auto;align-items:center}
  .navitem.has-drop>a{grid-column:1}
  .drop-lbl{display:block;grid-column:2;width:44px;height:44px;position:relative;cursor:pointer;
    border-radius:8px}
  .drop-lbl::after{content:"";position:absolute;top:50%;left:50%;width:9px;height:9px;
    margin:-6px 0 0 -5px;border-right:2px solid var(--ink);border-bottom:2px solid var(--ink);
    transform:rotate(45deg);transition:transform .18s}
  .drop-toggle:checked~.drop-lbl::after{transform:rotate(-135deg);margin-top:-2px}
  .navitem.has-drop .drop{grid-column:1 / -1;display:none;position:static;box-shadow:none;
    border:none;padding:0 0 6px 16px}
  .drop-toggle:checked~.drop{display:block}
}

/* pins home #15 / about #1, per Sofiann's rule: the award keeps FIFTH position
   and the row must never break 4 + 1 or 1 + 4. All five items share one flex
   basis at each width, so the row goes 5 across, then 3 + 2, then 2 + 2 with
   the award centred beneath. The award has no tile border, so on the narrow
   layout it reads as a medallion closing the block, not a stray fifth card. */
.proof-sec .stats{display:flex;flex-wrap:wrap;justify-content:center;align-items:stretch;
  gap:16px;margin:0}
.proof-sec .stat{flex:0 1 calc(20% - 12.8px);min-width:0}
.awardbadge{flex:0 1 calc(20% - 12.8px);display:flex;align-items:center;justify-content:center;
  line-height:0}
.awardbadge img{width:112px;height:112px;display:block;transition:transform .15s}
.awardbadge:hover img{transform:scale(1.04)}
/* 3 + 2 */
@media (max-width:1120px){
  .proof-sec .stat,.awardbadge{flex-basis:calc(33.333% - 10.67px)}
}
/* 2 + 2, award centred full width beneath */
@media (max-width:620px){
  .proof-sec .stats{gap:12px}
  .proof-sec .stat{flex-basis:calc(50% - 6px)}
  .awardbadge{flex-basis:100%;order:9}
  .awardbadge img{width:96px;height:96px}
}


/* ---- Property Professionals rebuild (Natana's layout, pin PP #11) ---- */
/* 1 - two-column hero */
.split-hero{background:linear-gradient(180deg,#FDF9F3 0%,#fff 100%);padding:64px 0 72px}
.split-hero .herogrid{grid-template-columns:1.05fr .95fr;align-items:center;gap:52px}
.hero-shot img{border-radius:var(--r);box-shadow:var(--shadow);width:100%;
  aspect-ratio:4/3;object-fit:cover}
@media (max-width:1020px){ .split-hero .herogrid{grid-template-columns:1fr} }

/* 3 - benefit / commitment cards. Count-driven so nothing is left hanging:
   4 items = 2x2, 5 and 6 items = 3-up with the last row centred. */
.wcols{display:flex;flex-wrap:wrap;justify-content:center;gap:20px}
.wcols .wcol{flex:0 1 calc(33.333% - 13.34px)}
.wcols-4 .wcol{flex:0 1 calc(50% - 10px)}
@media (max-width:900px){ .wcols .wcol,.wcols-4 .wcol{flex:0 1 calc(50% - 10px)} }
@media (max-width:600px){ .wcols .wcol,.wcols-4 .wcol{flex:0 1 100%} }

/* 5 - audience cards reuse the approved .card component, text only */
.cards-3{grid-template-columns:repeat(3,1fr)}
.audcard{cursor:default}
.audcard .card-body{padding:28px 30px}
@media (max-width:900px){ .cards-3{grid-template-columns:1fr} }

/* 6 - pin PP #3: equal tiles so 19 logos read at one size, contrast and spacing */
.logos{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;align-items:stretch}
.ptile{flex:0 0 158px;display:flex;align-items:center;justify-content:center;background:#fff;
  border:1px solid var(--line);border-radius:var(--r-sm);padding:16px 18px;min-height:86px}
/* logos are pre-levelled to one ink density at build time (prep_logo), so no
   CSS filter here - a grayscale+opacity filter erased the faintest marks */
.plogo{width:100%;height:auto;max-height:50px;object-fit:contain}
@media (max-width:640px){
  .logos{gap:10px}
  .ptile{flex:0 0 calc(50% - 5px);min-height:72px;padding:12px}
  .plogo{max-height:40px}
}

/* a 4-step process sits 4-across rather than 3 + 1 orphan */
.steps.steps-4 .step{flex-basis:calc(25% - 16.5px)}
@media (max-width:1020px){ .steps.steps-4 .step{flex-basis:calc(50% - 11px)} }
@media (max-width:640px){ .steps.steps-4 .step{flex-basis:100%} }

/* single-review pull quote (hoarder page, pin #2) */
.quote-sec{background:var(--bg-alt)}
.bigquote{background:#fff;border:1px solid var(--line);border-radius:var(--r);
  box-shadow:var(--shadow);padding:34px 38px;margin-top:1.2em}
.bigquote p{font-family:'Onest',sans-serif;font-size:1.22rem;line-height:1.5;color:var(--ink);
  font-weight:500;margin:.6em 0 .9em}
.bigquote cite{font-style:normal;font-weight:600;color:var(--ink);font-size:.95rem}
.bigquote cite span{font-weight:400;color:var(--body)}
@media (max-width:640px){ .bigquote{padding:24px 22px} .bigquote p{font-size:1.08rem} }

/* pin pricing #1: estimator graphic beside the pricing hero copy */
.price-hero .herogrid{align-items:center;gap:48px}
.hero-shot.est img{border-radius:var(--r);box-shadow:var(--shadow);width:100%;height:auto;
  aspect-ratio:auto;background:#fff}
@media (max-width:1020px){ .price-hero .herogrid{grid-template-columns:1fr} }
/* pin pricing #3: second heading inside the items column */
.gap-h{margin-top:1.5em}
/* pins pricing #4-7 and contact #2-4: the vertical gaps between stacked
   sections on these two pages were doing nothing but pushing content apart */
.price-main,.addon-sec,.changer-sec,.promise-sec{padding:56px 0}
.methods-sec,.hours-sec,.area-sec{padding:56px 0}
@media (max-width:640px){
  .price-main,.addon-sec,.changer-sec,.promise-sec{padding:44px 0}
  .methods-sec,.hours-sec,.area-sec{padding:44px 0}
}

/* pin contact #1: schematic service-area map (no address, no third-party embed) */
.svcmap{margin:1.6em 0 0;background:#fff;border:1px solid var(--line);border-radius:var(--r);
  box-shadow:var(--shadow);padding:22px;max-width:760px}
.svcmap svg{width:100%;height:auto;display:block}
.svcmap figcaption{margin-top:14px;font-size:.92rem;color:var(--body);text-align:center}
.mland{fill:#FAF8F5}
.msea{fill:#EAF1F5}
.msealab{fill:#9AA8B2;font-family:'Inter',sans-serif;font-size:15px;letter-spacing:.14em;
  text-transform:uppercase}
.marea{fill:rgba(197,82,39,.10);stroke:var(--red);stroke-width:2;stroke-dasharray:7 6}
.mdot{fill:#8C949E}
.mlab{fill:var(--body);font-family:'Inter',sans-serif;font-size:16px;font-weight:500}
.mbase-halo{fill:rgba(248,147,8,.28)}
.mbase-dot{fill:var(--red)}
.mbaselab{fill:var(--ink);font-family:'Onest',sans-serif;font-size:19px;font-weight:700}
.mbasesub{fill:var(--body);font-family:'Inter',sans-serif;font-size:14px}
@media (max-width:640px){
  .svcmap{padding:14px}
  .mlab{font-size:19px}
  .mbaselab{font-size:22px}
  .mbasesub,.msealab{font-size:17px}
}

/* pin deceased #1: compact audience strip instead of a full-height section */
.audstrip{padding:0}
.audline{background:var(--bg-alt);border-left:4px solid var(--gold);border-radius:0 var(--r-sm) var(--r-sm) 0;
  padding:20px 24px;margin:-28px 0 0;font-weight:500;color:var(--ink)}

/* pin household #1: common pickups fill the right of "What we handle" */
.picks-h{margin-bottom:.8em}
.pickgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.pick{background:var(--bg-alt);border:1px solid var(--line);border-radius:var(--r-sm);padding:16px 18px}
.pick h4{margin-bottom:.2em;font-size:.98rem}
.pick p{margin:0;font-size:.9rem}
@media (max-width:640px){ .pickgrid{grid-template-columns:1fr} }

/* pin construction #1: three-part what-goes-where table */
.matrix{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:1.4em}
.mcol{background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);
  padding:26px 28px}
.mcol h3{margin-bottom:.25em}
.mnote{font-size:.9rem;color:var(--body);margin-bottom:1em}
.mlist{list-style:none;margin:0}
.mlist li{padding:7px 0 7px 20px;position:relative;color:var(--ink);font-weight:500;font-size:.96rem;
  border-top:1px solid var(--line)}
.mlist li:first-child{border-top:0}
.mlist li::before{content:"";position:absolute;left:0;top:16px;width:7px;height:7px;border-radius:50%;
  background:var(--gold)}
.matrix .mcol:last-child .mlist li::before{background:#C9CDD2}
@media (max-width:900px){ .matrix{grid-template-columns:1fr} }

/* map labels stay legible where they cross the boundary line */
.mlab,.mbaselab,.mbasesub{paint-order:stroke;stroke:#FAF8F5;stroke-width:5px;stroke-linejoin:round}

/* pin home #9 is the same ask as pins 1 and 4, read from its anchor: pinned at
   87% across the text/call line on a 385px viewport, i.e. on "call 0426 873
   226". It is covered by the .alt-call rule above, which drops the call action
   onto its own line on mobile. No extra spacing was asked for. */

/* ---- enquiry page: explainer video + native form (Natana, 1 Aug) ---- */
.explainer{padding-bottom:0}
.explainer .video{margin-top:.4em}
.explainer .video video{width:100%;height:auto;display:block;background:#000;
  aspect-ratio:16/9;object-fit:cover}

.form-sec .split{grid-template-columns:.85fr 1.15fr;align-items:start;gap:48px}
.enquiry-form{padding:30px 32px}
.fgroup{border:0;margin:0 0 26px}
.fgroup legend{display:flex;align-items:center;gap:10px;font-family:'Onest',sans-serif;
  font-weight:700;color:var(--ink);font-size:1.05rem;margin-bottom:14px;padding:0}
.fnum{display:inline-flex;width:26px;height:26px;border-radius:50%;background:var(--red);color:#fff;
  align-items:center;justify-content:center;font-size:.85rem;font-weight:700}
.fgrid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.fgrid2 .field.wide,.fgrid2 .field:has(.ta){grid-column:1 / -1}
.enquiry-form .field{margin:0}
.enquiry-form label{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.req{font-size:.7rem;font-weight:500;color:#9AA1AB;text-transform:uppercase;letter-spacing:.06em}
.enquiry-form .input{display:flex;align-items:center;padding:0 14px;color:#9AA1AB;font-size:.95rem}
.enquiry-form .input::before{content:attr(data-ph)}
.enquiry-form .input.ta{height:104px;align-items:flex-start;padding-top:12px}
.enquiry-form .input.sel{position:relative}
.enquiry-form .input.sel::after{content:"";position:absolute;right:14px;top:50%;width:8px;height:8px;
  margin-top:-6px;border-right:2px solid #9AA1AB;border-bottom:2px solid #9AA1AB;transform:rotate(45deg)}
.sel-opts{display:none}
.upload.big{padding:22px;gap:18px;justify-content:space-between;background:#FCFBF9}
.upload.big strong{font-family:'Onest',sans-serif;color:var(--ink)}
.upload.big .uphint{margin-top:.3em}
.enquiry-form .form-submit{width:100%;border:0;font-family:'Onest',sans-serif;font-weight:600;
  font-size:1rem;cursor:default}
.enquiry-form .hint{text-align:center;margin-top:.8em}
@media (max-width:1020px){
  .form-sec .split{grid-template-columns:1fr}
}
@media (max-width:560px){
  .fgrid2{grid-template-columns:1fr}
  .enquiry-form{padding:22px 20px}
  .upload.big{flex-direction:column;align-items:flex-start}
}
/* long select placeholders must not spill out of the control */
.enquiry-form .input.sel{padding-right:34px;overflow:hidden}
.enquiry-form .input.sel::before{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  display:block;max-width:100%}
/* pin pricing #7 was anchored on the FAQ section, so it tightens with the rest
   of the pricing page. Scoped, so FAQ blocks on other pages are untouched. */
.faq-sec.tight{padding:56px 0}
@media (max-width:640px){ .faq-sec.tight{padding:44px 0} }

/* ================= round 3 (pins 3 Aug) ================= */
/* pin about #6: How we work as one row of four on desktop */
.wcols.wcols-4up .wcol{flex:0 1 calc(25% - 15px)}
@media (max-width:1020px){ .wcols.wcols-4up .wcol{flex:0 1 calc(50% - 10px)} }
@media (max-width:600px){ .wcols.wcols-4up .wcol{flex:0 1 100%} }

/* pin contact #6: centre the service-area map on desktop */
.area-sec .svcmap{margin-left:auto;margin-right:auto}

/* pin deceased #3: the audience strip was pulled up over the hero with a
   negative margin and clipped behind it. It now sits in normal flow with its
   own compact spacing. */
.audstrip{padding:28px 0 0}
.audline{margin:0}
/* pin articles #1: reviewed date under the article H1 */
.artdate{margin-top:.9em;font-size:.88rem;color:#8A93A0;font-weight:500}

/* WP-only: the live enquiry form (real controls in place of the styled mocks) */
.enquiry-form input.input,.enquiry-form textarea.input,.enquiry-form select.sel-real{
  width:100%;padding:0 14px;font:inherit;font-size:.95rem;color:var(--ink)}
.enquiry-form textarea.input{padding-top:12px;resize:vertical}
.enquiry-form select.sel-real{appearance:none;background:#FCFBF9 url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 10 10"><path d="M1 3l4 4 4-4" fill="none" stroke="%239AA1AB" stroke-width="2"/></svg>') right 14px center no-repeat}
.enquiry-form .form-submit{cursor:pointer}
.enquiry-form .upload input[type=file]{font-size:.85rem}
.hp-field{position:absolute;left:-9999px;height:0;overflow:hidden}
.form-ok{background:#EBF6EC;border:1px solid #BFE3C4;color:#2F6C38;border-radius:10px;padding:12px 16px;font-weight:500}
.form-err{background:#FBEDEB;border:1px solid #F0C4BC;color:#A03A26;border-radius:10px;padding:12px 16px;font-weight:500}
