/* Dorset Gardens — Dorset Road, District 8 */
/* Palette: deep azure-navy + antique gold.
   Variable NAMES are kept as structural slots (--teal = primary, --brass =
   accent) because the shared calculator module references var(--teal) inline.
   Only the values change. Re-theme a site by editing this block alone. */
:root{
  --teal:#14406B; --teal-deep:#0D2C4B; --footer:#07203A;
  --brass:#C4873C; --brass-deep:#9C6A2A; --brass-lt:#E3B171;
  --ink:#1B2530; --muted:#5E6B78; --line:#D8E0E8;
  --sand:#EEF2F6; --aqua-soft:#E1EAF3; --white:#fff;
  --serif:'Spectral',Georgia,'Times New Roman',serif;
  --sans:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--sans);font-size:1.06rem;line-height:1.75;color:var(--ink);background:var(--white)}
img{max-width:100%}
a{color:var(--teal);text-decoration:none}
a:hover{text-decoration:underline}
:focus-visible{outline:3px solid var(--brass);outline-offset:2px}
h1,h2,h3,h4{font-family:var(--serif);color:var(--teal);line-height:1.2;margin:0 0 .55em}
h1{font-size:clamp(2rem,4.4vw,3.05rem);font-weight:700}
h2{font-size:clamp(1.5rem,2.9vw,2.15rem);font-weight:600}
h3{font-size:1.28rem;font-weight:600}
h4{font-size:1.08rem;font-weight:600}
p{margin:0 0 1.05em}
ul,ol{margin:0 0 1.05em;padding-left:1.25em}
li{margin-bottom:.4em}

/* canonical container — every body section shares these edges */
.container{width:min(80%,1400px);margin-inline:auto}
section{padding:64px 0}
.band-sand{background:var(--sand)}
.band-aqua{background:var(--aqua-soft)}
.band-deep{background:var(--teal-deep);color:#E3EDF6}
.band-deep h2,.band-deep h3{color:#fff}
.band-deep a{color:var(--brass-lt)}
.eyebrow{font-family:var(--sans);font-size:.82rem;font-weight:600;letter-spacing:.06em;color:var(--brass-deep);margin:0 0 .5em}
.eyebrow.light{color:var(--brass-lt)}
.lead{font-size:1.16rem}
.srcnote{font-size:.88rem;color:var(--muted)}
.band-deep .srcnote{color:#9FB2C6}

/* ---------------- topbar ---------------- */
.topbar{background:var(--teal-deep);color:#C6D5E4;font-size:.8rem}
.tb-in{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:38px}
.topbar a{color:#C6D5E4}
.tb-left{display:flex;gap:14px;align-items:center;min-width:0}
.tb-tag{color:var(--brass-lt)}
.tb-right{display:flex;gap:16px;align-items:center;white-space:nowrap}

/* ---------------- header / nav (canonical pattern) ---------------- */
.site-head{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.97);
  backdrop-filter:blur(6px);border-bottom:1px solid var(--line)}
.header-in{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:76px}
.brand{display:flex;align-items:center;flex:0 0 auto}
.brand img{height:48px;width:auto;display:block}  /* stacked two-line lockup needs more height than a single-line wordmark */
.mainnav{display:flex;align-items:center;gap:18px}
.navlinks{list-style:none;display:flex;gap:2px;margin:0;padding:0;align-items:flex-start}
.navlinks>li{position:relative;display:flex;margin:0}
.navlinks a{display:flex;padding:12px 9px 10px;font-size:.84rem;font-weight:500;color:var(--ink);
  border-radius:6px;line-height:1.2;white-space:nowrap}
.navlinks a:hover,.navlinks a.active{color:var(--teal);background:var(--aqua-soft);text-decoration:none}
.navlinks a.active{font-weight:600}
.cta-pill{background:var(--brass);color:#fff;padding:11px 16px;border-radius:30px;font-weight:600;
  font-size:.84rem;white-space:nowrap}
.cta-pill:hover{background:var(--brass-deep)!important;color:#fff!important;text-decoration:none}
.caret{display:inline-block;width:0;height:0;margin-left:5px;vertical-align:middle;
  border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid currentColor}
.has-dd .submenu{list-style:none;margin:0;padding:8px;position:absolute;top:calc(100% + 6px);left:0;
  min-width:250px;background:var(--white);border:1px solid var(--line);border-radius:10px;
  box-shadow:0 12px 34px rgba(13,44,75,.14);
  opacity:0;visibility:hidden;transform:translateY(6px);transition:.18s;z-index:70}
.has-dd:hover .submenu,.has-dd:focus-within .submenu{opacity:1;visibility:visible;transform:none}
.submenu li{margin:0}
.submenu a{padding:9px 12px;font-size:.85rem;border-radius:6px;color:var(--ink)}
.submenu a:hover{background:var(--aqua-soft);color:var(--teal)}
.dd-acc{display:none}
.hamburger{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:8px}
.hamburger span{width:24px;height:2px;background:var(--teal);border-radius:2px;transition:.2s}

@media(max-width:1200px){ .navlinks a{padding:12px 7px 10px;font-size:.8rem} }
@media(max-width:1024px){
  .hamburger{display:flex}
  .mainnav{position:fixed;inset:76px 0 auto 0;background:#fff;flex-direction:column;align-items:stretch;
    gap:0;padding:8px 16px 20px;border-bottom:1px solid var(--line);box-shadow:0 14px 40px rgba(13,44,75,.17);
    max-height:calc(100vh - 76px);overflow-y:auto;transform:translateY(-150%);transition:transform .25s;z-index:55}
  .mainnav.open{transform:none}
  .navlinks{flex-direction:column;align-items:stretch;gap:0;width:100%}
  .navlinks>li{border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch}
  .navlinks a{padding:13px 6px;font-size:.95rem;justify-content:flex-start;text-align:left}
  .cta-pill{margin-top:14px;text-align:center;justify-content:center}
  .has-dd .submenu{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;
    border-radius:0;padding:0 0 6px 14px;display:none;min-width:0}
  .has-dd.open-acc .submenu{display:block}
  .dd-acc{display:block;position:absolute;right:0;top:6px;width:40px;height:40px;background:none;border:0;cursor:pointer}
  .dd-acc::after{content:"+";font-size:1.4rem;color:var(--teal);position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
  .has-dd.open-acc .dd-acc::after{content:"\2013"}
}
@media(max-width:820px){ .brand img{height:40px} .header-in{min-height:66px}
  .mainnav{inset:66px 0 auto 0;max-height:calc(100vh - 66px)} }
@media(max-width:760px){
  .container{width:min(92%,1400px)}
  section{padding:48px 0}
  .tb-in{min-height:34px;font-size:.72rem}
  .tb-tag,.tb-email{display:none}
  .tb-addr{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:42vw;display:block}
}
@media(max-width:440px){
  .tb-left{display:none}
  .tb-in{justify-content:flex-end}
}

/* ---------------- hero ---------------- */
.hero{padding:0;position:relative;background:var(--teal-deep)}
.hero-slides{position:relative;height:clamp(430px,62vh,640px);overflow:hidden}
.hero-slide{position:absolute;inset:0;opacity:0;transition:opacity .9s ease}
.hero-slide.active{opacity:1}
.hero-slide img{width:100%;height:100%;display:block;object-fit:cover}
.hero-slide.active img{animation:kenburns 7s ease-out both}
@keyframes kenburns{from{transform:scale(1)}to{transform:scale(1.12)}}
@media(prefers-reduced-motion:reduce){.hero-slide.active img{animation:none}}
/* No full-bleed scrim over the photography. Legibility is carried per element:
   a solid gold chip on the eyebrow, layered text-shadow on the headline, and a
   translucent navy card on the standfirst. */
.hero-overlay{position:absolute;inset:0;display:flex;align-items:center}
.hero-overlay .eyebrow{display:inline-block;background:var(--brass);color:#fff;
  padding:7px 15px;border-radius:4px;letter-spacing:.08em;
  box-shadow:0 3px 16px rgba(7,32,58,.4)}
.hero-overlay h1{color:#fff;
  text-shadow:0 1px 2px rgba(7,32,58,.92),0 3px 10px rgba(7,32,58,.75),0 10px 40px rgba(7,32,58,.6)}
.hero-overlay .h1-fresh{display:inline-block;background:var(--teal-deep);color:var(--brass-lt);
  padding:4px 11px;border-radius:4px;margin-top:.7em;text-shadow:none;
  box-shadow:0 3px 14px rgba(7,32,58,.35)}
.hero-overlay h1{color:#fff;max-width:19ch;margin-bottom:.35em}
.hero-sub{display:inline-block;color:#EAF1F8;font-size:1.12rem;max-width:60ch;
  background:rgba(13,44,75,.70);padding:14px 18px;border-radius:9px;
  border-left:3px solid var(--brass);backdrop-filter:blur(3px)}
.hero-nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(7,32,58,.55);border:0;backdrop-filter:blur(3px);
  color:#fff;width:44px;height:44px;border-radius:50%;cursor:pointer;font-size:1.4rem;line-height:1;z-index:3}
.hero-nav:hover{background:rgba(7,32,58,.82)}
.hero-prev{left:14px}.hero-next{right:14px}
.hero-dots{position:absolute;bottom:20px;right:24px;left:auto;display:flex;
  gap:9px;z-index:3;background:rgba(7,32,58,.5);padding:8px 13px;border-radius:20px;
  backdrop-filter:blur(3px)}
.hero-dots button{width:11px;height:11px;border-radius:50%;border:1px solid #fff;background:transparent;cursor:pointer;padding:0}
.hero-dots button[aria-selected="true"]{background:var(--brass-lt);border-color:var(--brass-lt)}
.btnrow{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}
.btn{display:inline-block;padding:13px 24px;border-radius:30px;font-weight:600;font-size:.94rem}
.btn:hover{text-decoration:none}
.btn-brass{background:var(--brass);color:#fff}
.btn-brass:hover{background:var(--brass-deep);color:#fff}
.btn-solid{background:var(--teal);color:#fff;border:0;font-family:var(--sans);cursor:pointer}
.btn-solid:hover{background:var(--teal-deep);color:#fff}
.btn-ghost{border:1px solid rgba(255,255,255,.6);color:#fff;background:rgba(7,32,58,.45);
  backdrop-filter:blur(3px)}  /* tinted so it holds up over bright photography */
.btn-ghost:hover{background:rgba(7,32,58,.72);color:#fff}
.btn-line{border:1px solid var(--teal);color:var(--teal)}
.btn-line:hover{background:var(--aqua-soft)}
/* freshness stamp inside the H1 — present for SERP, subordinate visually */
.h1-fresh{display:block;font-family:var(--sans);font-size:.9rem;font-weight:600;
  letter-spacing:.05em;color:var(--brass-lt);margin-top:.55em}
@media(max-width:760px){
  .hero .hero-sub{display:none}
  .hero-slides{height:clamp(320px,46vh,420px)}
  .hero-nav{display:none}
  .hero-overlay .btnrow{flex-direction:column;align-items:flex-start}
  .hero-overlay .btn{width:100%;text-align:center}
}

/* ---------------- sub-page banner ---------------- */
.subbanner{padding:0;position:relative;background:var(--teal-deep)}
.subbanner>img{width:100%;height:clamp(210px,26vh,300px);display:block;object-fit:cover}
.subbanner-in{position:absolute;inset:0;display:flex;align-items:center}
.subbanner-in .eyebrow{display:inline-block;background:var(--brass);color:#fff;
  padding:5px 12px;border-radius:4px;letter-spacing:.08em;
  box-shadow:0 3px 14px rgba(7,32,58,.4)}
.subbanner-in h1{color:#fff;margin-bottom:.35em;
  text-shadow:0 1px 2px rgba(7,32,58,.92),0 3px 10px rgba(7,32,58,.75),0 10px 36px rgba(7,32,58,.55)}
.lead-sub{display:inline-block;color:#EAF1F8;max-width:70ch;margin:0;font-size:1rem;
  background:rgba(13,44,75,.70);padding:11px 16px;border-radius:9px;
  border-left:3px solid var(--brass);backdrop-filter:blur(3px)}
.crumbs{background:var(--sand);border-bottom:1px solid var(--line);font-size:.86rem;padding:10px 0}
.crumbs a{color:var(--muted)}
.crumbs .sep{color:var(--line)}
.crumbs span{color:var(--ink);font-weight:500}

/* ---------------- layout pieces ---------------- */
.split{display:flex;flex-wrap:wrap;gap:38px;align-items:center}
.split.split-top{align-items:flex-start}
.split-col{flex:1 1 380px;min-width:0}
.split img.crop-wide{aspect-ratio:16/9;width:100%;height:auto;object-fit:cover;border-radius:12px;margin-top:18px}
.two-col{display:flex;flex-wrap:wrap;gap:38px}
.two-col>div{flex:1 1 380px;min-width:0}

.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px;margin-top:34px}
.stat{background:var(--white);border:1px solid var(--line);border-top:3px solid var(--brass);border-radius:10px;padding:20px 18px}
.band-sand .stat{background:var(--white)}
.stat b{display:block;font-family:var(--serif);font-size:1.75rem;color:var(--teal);line-height:1.1}
.stat span{display:block;font-size:.86rem;color:var(--muted);margin-top:5px}

.trio{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:26px;margin-top:34px}
.card{background:var(--white);border:1px solid var(--line);border-radius:12px;padding:24px;overflow:hidden}
.card .card-img{aspect-ratio:16/9;width:100%;height:auto;object-fit:cover;border-radius:9px;margin-bottom:16px}
.card h3{margin-bottom:.5em}
.card p{font-size:.99rem}
.readmore{font-weight:600}

.img-placeholder{display:flex;align-items:center;justify-content:center;background:repeating-linear-gradient(135deg,var(--aqua-soft),var(--aqua-soft) 12px,var(--sand) 12px,var(--sand) 24px);
  border:1px dashed var(--line);border-radius:9px;color:var(--muted);font-size:.88rem;text-align:center;padding:14px}
.ph-wide{aspect-ratio:16/9;width:100%;margin-bottom:16px}
.ph-plan{aspect-ratio:4/3;width:100%}
.ph-gal{aspect-ratio:16/10;width:100%}

.factbox{background:var(--white);border:1px solid var(--line);border-radius:12px;padding:8px 22px}
.band-sand .factbox{background:var(--white)}
.factrow{display:flex;justify-content:space-between;gap:18px;padding:13px 0;border-bottom:1px solid var(--line)}
.factrow:last-child{border-bottom:0}
.factrow span:first-child{color:var(--muted);font-size:.93rem}
.factrow span:last-child{font-weight:600;text-align:right}

.checklist{list-style:none;padding:0}
.checklist li{position:relative;padding-left:28px;margin-bottom:.7em}
.checklist li::before{content:"";position:absolute;left:2px;top:.62em;width:9px;height:9px;border-radius:50%;background:var(--brass)}

.callout{background:var(--aqua-soft);border-left:4px solid var(--brass);border-radius:8px;padding:16px 20px;margin:22px 0}
.callout p:last-child{margin-bottom:0}
.draft-note{background:#FCF6EC;border:1px solid var(--brass);border-left-width:4px;border-radius:8px;padding:14px 18px;margin:0 0 22px}
.draft-note p:last-child{margin-bottom:0}

/* ---------------- tables ---------------- */
.table-wrap{overflow-x:auto;margin:0 0 12px}
table.dt{width:100%;border-collapse:separate;border-spacing:0;border:1px solid var(--line);border-radius:10px;overflow:hidden;font-size:.97rem}
table.dt th{background:var(--teal-deep);color:#fff;text-align:left;font-family:var(--sans);font-weight:600;padding:13px 16px;font-size:.92rem}
table.dt th.num,table.dt td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
table.dt td{padding:12px 16px;border-top:1px solid var(--line);vertical-align:top}
table.dt tbody tr:nth-child(odd) td{background:#fff}
table.dt tbody tr:nth-child(even) td{background:var(--sand)}
table.dt.kv td:first-child{width:42%;font-weight:600;color:var(--ink)}
table.dt .kv-head td,table.dt.kv .kv-head td:first-child{background:var(--teal-deep);color:#fff;width:auto;font-weight:600}
.tnote{font-size:.85rem;color:var(--muted);margin:0 0 26px}

/* ---------------- forms ---------------- */
.form-card{background:var(--white);border-top:3px solid var(--brass)}
.band-sand .form-card{background:var(--white)}
.enq{margin-top:14px}
.f-row{margin-bottom:14px}
.f-two{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
.f-two label{grid-row:1}
.f-two input,.f-two select{grid-row:2}
.enq label{display:block;font-size:.88rem;font-weight:600;margin-bottom:5px}
.enq input[type=text],.enq input[type=tel],.enq input[type=email],.enq select,.enq textarea{
  width:100%;padding:11px 13px;border:1px solid var(--line);border-radius:8px;font-family:var(--sans);
  font-size:.97rem;background:#fff;color:var(--ink)}
.enq textarea{resize:vertical}
.consent{display:flex;gap:10px;align-items:flex-start;margin:16px 0 18px}
.consent input{flex:0 0 18px;width:18px;height:18px;margin-top:4px}
.consent label{font-weight:400;font-size:.88rem;line-height:1.6;margin:0}
.stage-note{font-size:.82rem;color:var(--muted)}
#c-out .data td,#p-out .data td,#s-out .data td,#t-out .data td{font-size:.95rem}

/* ---------------- FAQ ---------------- */
.faq details{border:1px solid var(--line);border-radius:10px;margin-bottom:12px;background:#fff}
.faq summary{cursor:pointer;padding:16px 20px;font-family:var(--serif);font-weight:600;color:var(--teal);font-size:1.06rem;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";float:right;color:var(--brass);font-family:var(--sans)}
.faq details[open] summary::after{content:"\2013"}
.faq .faq-a{padding:0 20px 18px}
.faq .faq-a p:last-child{margin-bottom:0}

/* ---------------- timeline / updates ---------------- */
.updates{list-style:none;padding:0;margin:0}
.updates li{padding:14px 0;border-bottom:1px solid var(--line)}
.updates li:last-child{border-bottom:0}
.updates time{display:block;font-size:.82rem;font-weight:600;color:var(--brass-deep)}

/* ---------------- data pages ---------------- */
.coming-soon{text-align:center;padding:44px 24px;border:1px solid var(--line);border-radius:12px;background:var(--sand)}
.coming-soon svg{margin-bottom:14px}
.coming-soon h3{margin-bottom:.4em}
.coming-soon p{max-width:56ch;margin-left:auto;margin-right:auto;color:var(--muted)}

/* ---------------- gallery / plans ---------------- */
.grid-3{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:22px}
.plan-fig{margin:0}
.plan-fig figcaption{font-size:.88rem;color:var(--muted);margin-top:8px}

/* ---------------- blog ---------------- */
.post-meta{font-size:.88rem;color:var(--muted);margin-bottom:1.4em}
.related{background:var(--sand);border-radius:12px;padding:24px 26px;margin-top:38px}
.related h2{font-size:1.28rem}
.related ul{margin-bottom:0}

/* ---------------- footer ---------------- */
.site-foot{background:var(--footer);color:#B4C5D6;border-top:1px solid rgba(196,135,60,.30);padding:54px 0 0;font-size:.95rem}
.site-foot a{color:#D3E1EE}
.site-foot a:hover{color:var(--brass-lt)}
.foot-grid{display:grid;grid-template-columns:1.1fr 1.5fr 1.1fr;gap:40px}
.foot-logo{height:70px;width:auto;display:block;margin-bottom:16px}
.foot-desc{font-size:.92rem;color:#94A9BD}
.foot-h{color:#fff;font-size:1.08rem;margin-bottom:.7em}
.foot-table{width:100%;table-layout:fixed;border-collapse:collapse}
.foot-table td{width:50%;padding:4px 10px 4px 0}
.foot-table a{white-space:nowrap;font-size:.9rem}
.fc{margin:0 0 9px;font-size:.92rem}
.fc span{display:block;font-size:.76rem;color:#77899C}
.foot-fine{border-top:1px solid rgba(255,255,255,.09);margin-top:44px;padding-top:22px}
.foot-fine p{font-size:.8rem;color:#8496A8;margin:0}
.foot-bar{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;
  border-top:1px solid rgba(255,255,255,.09);margin-top:22px;padding:16px 0;font-size:.85rem}
.foot-bar p{margin:0}
.foot-legal a{margin-left:16px}
.foot-legal a:first-child{margin-left:0}
@media(max-width:900px){.foot-grid{grid-template-columns:1fr}}
@media(max-width:760px){.foot-legal a{margin-left:0;margin-right:16px}}

/* ---------------- sitemap page ---------------- */
.smap{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:30px}
.smap h2{font-size:1.2rem}
.smap ul{list-style:none;padding:0}

/* ---------------- prose wrapper ----------------
   Scope the reset to inner children only, so .container.prose still honours
   the container width rule (TYPE-ADDENDA prose/container collision trap). */
.prose>p,.prose>.lead,.prose>ul,.prose>ol{max-width:none}

/* ---------------- calculator modules ----------------
   The shared calculator markup uses .form-grid / .btn.gold / .tbl-wrap /
   table.data / .tbl-note. These are the portfolio aliases for that markup. */
.form-card{border:1px solid var(--line);border-top:3px solid var(--brass);
  border-radius:12px;padding:24px 26px;background:var(--white)}
.card.form-card{border:1px solid var(--line);border-top:3px solid var(--brass)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}
.form-card .f-row{margin-bottom:15px}
.form-card .f-row label{display:block;font-size:.88rem;font-weight:600;margin-bottom:5px;color:var(--ink)}
.form-card .f-row label[for="t-joint"]{display:inline;font-weight:500}
.form-card input[type=number],.form-card input[type=text],.form-card select{
  width:100%;padding:11px 13px;border:1px solid var(--line);border-radius:8px;
  font-family:var(--sans);font-size:.97rem;background:#fff;color:var(--ink)}
.form-card input[type=checkbox]{width:auto}
.form-card h3,.form-card h4{margin:20px 0 12px}
.form-card h3:first-child,.form-card h4:first-child{margin-top:0}
.btn.gold{background:var(--brass);color:#fff;border:0;cursor:pointer;
  font-family:var(--sans);font-size:.94rem;font-weight:600}
.btn.gold:hover{background:var(--brass-deep);color:#fff}
button.btn{border:0;cursor:pointer;font-family:var(--sans)}
.tbl-wrap{overflow-x:auto;margin:0 0 12px}
table.data{width:100%;border-collapse:separate;border-spacing:0;border:1px solid var(--line);
  border-radius:10px;overflow:hidden;font-size:.97rem}
table.data th{background:var(--teal-deep);color:#fff;text-align:left;font-family:var(--sans);
  font-weight:600;padding:12px 16px;font-size:.92rem}
table.data td{padding:11px 16px;border-top:1px solid var(--line);vertical-align:top}
table.data tbody tr:first-child td{border-top:0}
table.data tbody tr:nth-child(odd) td{background:#fff}
table.data tbody tr:nth-child(even) td{background:var(--sand)}
table.data .num,table.data th.num,table.data td.num{text-align:right;
  font-variant-numeric:tabular-nums;white-space:nowrap}
table.data tr.total td{background:var(--aqua-soft);font-weight:700;color:var(--teal)}
.tbl-note{font-size:.85rem;color:var(--muted);margin:0 0 20px}
@media(max-width:640px){.form-grid{grid-template-columns:1fr}}

/* Direct .f-row children flow as normal two-column grid cells. The earlier
   blanket `grid-column:1/-1` here was wrong: on the progressive-payment and
   stamp-duty pages EVERY field is a direct .f-row child, so all of them spanned
   full width and got capped, stacking into one column with the right half
   empty. Only the TDSR assessment-rate row needs to span. */
#t-form .form-grid>.f-row{grid-column:1/-1;max-width:470px}
/* TDSR only: when the joint-applicant column is toggled off, collapse to one
   column so the card does not render as a half-empty two-column band. */
#t-form .form-grid:has(>[style*="display: none"]),
#t-form .form-grid:has(>[style*="display:none"]){grid-template-columns:minmax(0,540px)}

/* ---------------- video embed ---------------- */
.video-embed{position:relative;width:100%;aspect-ratio:16/9;border-radius:12px;
  overflow:hidden;background:var(--teal-deep);margin:0 0 12px}
.video-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}

/* ---------------- blog lead image ---------------- */
.post-lead{margin:0 0 26px}
.post-lead img{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:12px;display:block}
.post-lead figcaption{font-size:.85rem;color:var(--muted);margin-top:8px}
