/* D4Doctors. Spacing scale: 4 8 12 16 24 32 48 64 px. No framework, no cookies. */
@font-face{font-family:"Atkinson";src:url(fonts/atkinson-hyperlegible-latin-400-normal.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Atkinson";src:url(fonts/atkinson-hyperlegible-latin-700-normal.woff2) format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:"Barlow Condensed";src:url(fonts/barlow-condensed-latin-700-normal.woff2) format("woff2");font-weight:700;font-display:swap}

:root{
  --ink:#0B2A4A; --navy:#0B2A4A; --navy-2:#123A63; --grey:#64748B; --edge:#64748B; --line:#D5DEE8;
  --paper:#FFFFFF; --off:#F4F8FB; --plate:#0EA5A4; --soft:#E7F6F6;
  --teal:#0EA5A4; --teal-d:#0B7F7E; --teal-soft:#E7F6F6;
  --go:#1F7A4D; --go-soft:#E7F4ED; --stop:#B42318; --stop-soft:#FDECEA;
  --body:"Atkinson",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --head:"Barlow Condensed","Arial Narrow",Arial,sans-serif;
  --s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;--s8:64px;
  --measure:40rem; --wide:64rem; --r:8px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:var(--s4)}
body{margin:0;background:var(--off);color:var(--ink);font:400 1.125rem/1.55 var(--body)}
img,svg{max-width:100%}
a{color:var(--ink);text-underline-offset:.18em;text-decoration-thickness:.08em}
a:hover{text-decoration-thickness:.16em}
:focus-visible{outline:3px solid var(--teal-d);outline-offset:2px}
.ic{width:1.25em;height:1.25em;flex:none;vertical-align:-.25em}

.wrap{max-width:var(--measure);margin:0 auto;padding:0 var(--s4)}
.wrap.wide{max-width:var(--wide)}
section.band{padding:var(--s7) 0}
section.band.alt{background:var(--off)}
@media(min-width:48rem){section.band{padding:var(--s8) 0}}

/* Header */
header.site{background:#fff;border-bottom:1px solid var(--line)}
header.site .wrap{display:flex;align-items:center;justify-content:space-between;min-height:64px;gap:var(--s4);max-width:var(--wide)}
.logo{display:inline-flex;align-items:center;text-decoration:none}
.logo img{height:40px;width:auto;display:block}
header.site nav a{font-weight:700;font-size:1rem;white-space:nowrap;color:var(--navy);text-decoration:none}
@media(max-width:26rem){header.site nav a.hide-sm{display:none}}

/* Type */
h1,h2,h3{font-family:var(--head);font-weight:700;line-height:1.05;margin:0 0 var(--s3)}
h1{font-size:clamp(2.5rem,8vw,3.5rem)}
h2{font-size:2rem;margin-top:var(--s7)}
section.band > .wrap > h2:first-child{margin-top:0}
h3{font-size:1.4rem;margin-top:var(--s5)}
p{margin:0 0 var(--s4)}
.lead{font-size:1.2rem;color:var(--grey)}
.note{font-size:1rem;color:var(--grey)}

/* Hero */
.hero{background:var(--navy);color:#fff;padding:var(--s6) 0 var(--s7)}
.hero h1{color:#fff;margin-bottom:var(--s4)}
.hero p{color:#E3E9F1}
.hero a{color:#fff}
.hero .grid{display:grid;gap:var(--s5);align-items:center}
.trust{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s4);font-size:.95rem;color:#E3E9F1;margin:var(--s4) 0 0;padding:0;list-style:none}
.trust li{display:flex;align-items:center;gap:6px}
.trust .ic{color:var(--plate)}
.howcard{background:var(--navy-2);border-radius:var(--r);padding:var(--s5);display:none}
.howcard h2{color:#fff;font-size:1.5rem;margin:0 0 var(--s3)}
.howcard ol{margin:0;padding-left:1.25rem;color:#E3E9F1}
.howcard li{margin:var(--s2) 0}
@media(min-width:56rem){.hero{padding:var(--s8) 0}.hero .grid{grid-template-columns:1.2fr 1fr;gap:var(--s7)}.howcard{display:block}}

/* Price plate: dark rim, thin yellow gap, inner line, like a real plate */
.plate{display:inline-flex;flex-direction:column;align-items:flex-start;background:#fff;color:var(--navy);
  border:1px solid var(--teal);border-radius:8px;padding:12px 16px;margin:8px 0 24px;box-shadow:none}
.plate b,.plate{font:700 3rem/1 var(--head);color:var(--teal)}
.plate small{display:block;font:700 1.05rem/1.2 var(--body);color:var(--grey);margin-top:4px}

/* Buttons: one main button per screen */
.btn{display:flex;align-items:center;justify-content:center;gap:var(--s2);width:100%;text-align:center;background:var(--ink);color:#fff;border:2px solid var(--ink);
  border-radius:var(--r);padding:var(--s3) var(--s5);min-height:52px;font:700 1.15rem/1.2 var(--body);text-decoration:none;cursor:pointer}
.btn:hover{background:var(--grey);border-color:var(--grey)}
.btn.alt{background:var(--paper);color:var(--ink)}
.btn.alt:hover{background:var(--off)}
.btn.light{background:#fff;color:var(--navy);border-color:#fff}
.btn.light:hover{background:#E3E9F1}
.btn.wa{background:var(--go);border-color:var(--go)}
.btn + .btn{margin-top:var(--s3)}
@media(min-width:40rem){.btn{display:inline-flex;width:auto}.btn + .btn{margin:0 0 0 var(--s3)}.hero .btn.light{min-width:18rem}}

/* Town cards */
.towns{list-style:none;padding:0;margin:var(--s4) 0 0;display:grid;gap:var(--s3)}
@media(min-width:48rem){.towns{grid-template-columns:1fr 1fr}}
.towns a{display:flex;align-items:center;gap:var(--s3);min-height:64px;padding:var(--s3) var(--s4);background:var(--paper);
  border:1px solid var(--edge);border-radius:var(--r);text-decoration:none}
.towns a:hover{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink)}
.towns .pin{color:var(--navy)}
.towns .t{flex:1;display:flex;flex-direction:column}
.towns .t b{font:700 1.45rem/1.1 var(--head)}
.towns .t small{font-size:.95rem;color:var(--grey)}
.towns .go{color:var(--ink)}

ol.steps{padding-left:1.4rem}
ol.steps li{margin:var(--s2) 0;padding-left:var(--s1)}
ul.ticks{list-style:none;padding:0;margin:0 0 var(--s4)}
ul.ticks li{display:flex;gap:var(--s3);align-items:flex-start;padding:var(--s3) 0;border-bottom:1px solid var(--line)}
ul.ticks li .ic{color:var(--navy);margin-top:.15em}

/* Boxes */
.must,.dvla,.ok,.info{padding:var(--s4);margin:var(--s4) 0;border-radius:0 var(--r) var(--r) 0}
.must{border-left:6px solid var(--stop);background:var(--stop-soft)}
.dvla{border-left:6px solid var(--navy);background:#EEF2F7}
.ok{border-left:6px solid var(--go);background:var(--go-soft)}
.info{border-left:6px solid var(--plate);background:var(--soft)}
.must h3,.dvla h3,.ok h3,.info h3{margin-top:0}
.must ul,.dvla ul{margin-bottom:0}

/* Clinic status: an info panel, not an input. Fixed min height so the page doesn't jump. */
.status{display:flex;gap:var(--s3);align-items:flex-start;padding:var(--s4);margin:var(--s4) 0;background:var(--soft);border-radius:var(--r);min-height:104px}
.status .ic{color:var(--navy);margin-top:.2em}
.status strong{font:700 1.5rem/1.1 var(--head);display:block;margin-bottom:var(--s1)}
.status p{margin:0 0 var(--s2)}
.status .btn{margin-top:var(--s2)}

/* Forms */
form{margin:var(--s5) 0}
fieldset{border:0;padding:0;margin:0 0 var(--s5)}
legend,label.f{display:block;font-weight:700;margin-bottom:6px}
.hint{display:block;font-weight:400;font-size:1rem;color:var(--grey);margin-bottom:6px}
input[type=text],input[type=tel],input[type=email],select{width:100%;font:inherit;padding:var(--s3);border:2px solid var(--edge);border-radius:var(--r);background:var(--paper);min-height:52px;color:var(--ink)}
input:focus,select:focus{border-color:var(--ink)}
.field{margin-bottom:var(--s5)}
.choice{display:flex;gap:var(--s3);align-items:flex-start;padding:var(--s3);border:1px solid var(--edge);border-radius:var(--r);margin-bottom:var(--s2);cursor:pointer;background:var(--paper)}
.choice input{width:1.5rem;height:1.5rem;margin:.1rem 0 0;flex:none;accent-color:var(--ink)}
.choice:has(input:checked){border-color:var(--ink);box-shadow:0 0 0 1px var(--ink);background:var(--off)}
.prep-inline{margin:4px 0 var(--s3);padding:var(--s3) var(--s4);border-left:6px solid var(--stop);background:var(--stop-soft);font-size:1rem;border-radius:0 var(--r) var(--r) 0}
.prep-inline a{font-weight:700}
.err{color:var(--stop);font-weight:700;font-size:1rem;margin:6px 0 0}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.council-info{font-size:1rem;margin-top:var(--s2)}
.mt{margin-top:var(--s4)}
#form-result[hidden],#business-result[hidden]{display:none}

table.facts{border-collapse:collapse;width:100%;font-size:1rem;margin:var(--s4) 0}
table.facts th,table.facts td{border-bottom:1px solid var(--line);padding:var(--s3) var(--s2);text-align:left;vertical-align:top}
table.facts th{width:32%}
details{border-bottom:1px solid var(--line);padding:var(--s3) 0}
summary{font-weight:700;cursor:pointer;min-height:32px}

/* WhatsApp: round 56px button, hidden while a form is on screen */
.wa-float{position:fixed;right:var(--s4);bottom:var(--s4);z-index:50;width:56px;height:56px;border-radius:50%;background:var(--go);color:#fff;
  display:flex;align-items:center;justify-content:center;box-shadow:0 2px 10px rgba(11,42,74,.3);transition:opacity .2s}
.wa-float .ic{width:28px;height:28px}
.wa-float.away{opacity:0;pointer-events:none}

/* Footer */
footer.site{background:var(--navy);color:#C9D3E0;padding:var(--s7) 0 96px;font-size:.95rem}
footer.site .wrap{max-width:var(--wide)}
footer.site a{color:#fff}
footer.site .links{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s5);margin:0 0 var(--s5);padding:0;list-style:none}
footer.site .links a{display:inline-block;padding:var(--s2) 0;font-size:1.05rem;font-weight:700}
footer.site p{margin:var(--s2) 0}

@media print{header.site nav,footer.site,.btn,form,.wa-float,.hero .howcard{display:none}.hero{background:#fff;color:#000}body{font-size:12pt}}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
.qrc{max-width:100%;height:auto;border:1px solid var(--line);border-radius:var(--r)}

/* ===== Brand: navy + teal (overrides) ===== */
:root{--teal:#0EA5A4;--teal-d:#0B7F7E;--teal-soft:#E3F5F4}
:focus-visible{outline:3px solid var(--ink);outline-offset:2px;box-shadow:0 0 0 6px var(--teal)}
header.site{background:#fff;border-bottom:1px solid var(--line)}
header.site nav a{color:var(--navy);text-decoration:none}
.logo img{height:40px;width:auto;display:block}
.btn{background:var(--teal-d);border-color:var(--teal-d);color:#fff}
.btn:hover{background:#096867;border-color:#096867}
.btn.alt{background:#fff;color:var(--navy);border-color:var(--navy)}
.btn.light{background:#fff;color:var(--navy);border-color:#fff}
.info{border-left-color:var(--teal);background:var(--teal-soft)}
.status{background:var(--teal-soft)}
.towns a{background:#fff;border-color:var(--edge)}
.towns .pin{color:var(--teal-d)}
ul.ticks li .ic{color:var(--teal-d)}
.hero{padding:28px 0 88px}
.hero h1{font-size:clamp(2.2rem,8vw,3.2rem);margin-bottom:16px}
.pricecard{display:inline-flex;align-items:center;gap:14px;border:1px solid var(--teal);border-radius:8px;padding:12px 16px;margin:0 0 16px}
.pricecard b{font:700 3rem/1 var(--head);color:var(--teal)}
.pricecard span{color:#fff;font-size:1rem}
.hero .btn.cta{background:var(--teal-d);border-color:var(--teal-d);color:#fff;width:100%}
.proof{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;list-style:none;margin:16px 0 0;padding:0}
.proof li{border:1px solid rgba(255,255,255,.35);border-radius:8px;padding:8px;color:#fff;font-size:.85rem;font-weight:700;display:flex;flex-direction:column;gap:6px}
.proof .mark{width:28px;height:28px;border-radius:6px;background:var(--navy-2);display:flex;align-items:center;justify-content:center}
.proof .mark svg{width:16px;height:16px}
.hero .sub{font-size:1.05rem;margin:0 0 16px;color:#E3E9F1}
footer.site{background:var(--navy)}
section.band{background:var(--off)}
section.band.alt{background:#fff}

/* ===== Re-layout components ===== */
.finder{margin:var(--s3) 0 var(--s4);max-width:36rem}
.finder-row{display:flex;gap:var(--s2)}
.finder-row input{flex:1}
.finder-row .btn{width:auto;flex:none;margin:0}
#finder-out .towns{margin-top:0}
.tiles{list-style:none;padding:0;margin:var(--s4) 0;display:grid;gap:var(--s3);grid-template-columns:1fr 1fr}
@media(min-width:48rem){.tiles{grid-template-columns:repeat(4,1fr)}}
.tiles li{border:1px solid var(--edge);border-radius:var(--r);padding:var(--s4);display:flex;flex-direction:column;gap:6px;background:var(--paper)}
.tiles .ic{width:32px;height:32px;color:var(--teal-d)}
.tiles b{font:700 1.3rem/1.1 var(--head)}
.tiles span{font-size:.95rem;color:var(--grey)}
.strip{list-style:none;padding:0;margin:var(--s4) 0;display:grid;gap:var(--s3)}
@media(min-width:48rem){.strip{grid-template-columns:repeat(3,1fr)}}
.strip li{display:flex;gap:var(--s3);align-items:flex-start;border:1px solid var(--edge);border-radius:var(--r);padding:var(--s4);background:var(--paper)}
.strip li > b{flex:none;width:36px;height:36px;border-radius:50%;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;font:700 1.2rem/1 var(--head)}
.strip strong{display:block;font:700 1.3rem/1.1 var(--head);margin-bottom:4px}
.strip span{font-size:1rem}
.cards3{list-style:none;padding:0;margin:var(--s4) 0;display:grid;gap:var(--s3)}
@media(min-width:48rem){.cards3{grid-template-columns:repeat(3,1fr)}}
.cards3 li{border:1px solid var(--edge);border-radius:var(--r);padding:var(--s5);background:var(--paper);display:flex;flex-direction:column}
.cards3 h3{margin:0 0 var(--s2);display:flex;gap:var(--s2);align-items:center}
.cards3 h3 .ic{color:var(--teal-d)}
.cards3 p{flex:1;font-size:1rem}
.cards3 a{font-weight:700}
.tabs{display:flex;gap:var(--s2);flex-wrap:wrap;margin:var(--s4) 0 var(--s2)}
.tabs a{border:1px solid var(--edge);border-radius:999px;padding:var(--s2) var(--s4);text-decoration:none;font-weight:700;font-size:1rem}
.tabs a.on{background:var(--navy);border-color:var(--navy);color:#fff}
.tab{border-top:1px solid var(--line);margin-top:var(--s6);padding-top:var(--s2)}
.js-tabs .tab[hidden]{display:none}
.dl{display:flex;gap:var(--s4);align-items:center;justify-content:space-between;border:1px solid var(--edge);border-radius:var(--r);padding:var(--s4);margin:var(--s3) 0;background:var(--paper)}
.dl b{display:block;font-size:1.1rem}
.dl span{font-size:.95rem;color:var(--grey)}
.dl .btn{width:auto;flex:none;margin:0}
@media(max-width:30rem){.dl{flex-direction:column;align-items:stretch}.dl .btn{width:100%}}
.letter{border:1px solid var(--edge);border-radius:var(--r);padding:var(--s6);background:#fff;line-height:2}
.letter .small{font-size:.9rem;line-height:1.5;color:var(--grey)}
@media print{.noprint,header.site,footer.site,.wa-float{display:none!important}.letter{border:0;padding:0}section.band{padding:0}}
