/* ============================================================
   Lucan Childcare Navigator: design tokens & base
   ============================================================ */
:root{
  /* ---------- New palette (civic-service / family-tech) ---------- */
  --bg:           #F7F5F0;   /* warm off-white page background */
  --surface:      #FFFFFF;   /* cards, popups, key panels */
  --highlight:    #F2E6D3;   /* soft peach for warm callout blocks */

  --primary:      #1F6B63;   /* deep teal */
  --primary-dark: #164E49;
  --primary-50:   #E8F1EF;
  --primary-100:  #D0E2DE;

  --accent:       #E8B56A;   /* marigold warm accent */
  --accent-50:    #FBF3DF;

  --text:         #22302E;
  --text-muted:   #66706D;
  --line-soft:    #E2DDD2;

  --success:      #4C7A43;
  --success-50:   #E5EFE2;
  --warning:      #A86A2C;
  --warning-50:   #FAEFD9;
  --alert:        #B24C4C;
  --alert-50:     #F4DEDE;

  /* ---------- Legacy aliases (so existing rules still resolve) ---------- */
  --sage-50:  var(--primary-50);
  --sage-100: var(--primary-100);
  --sage-200: var(--primary-100);
  --sage-300: var(--primary);
  --sage-500: var(--primary);
  --sage-600: var(--primary-dark);
  --sage-700: var(--primary-dark);

  --cream:    var(--surface);
  --cream-2:  var(--highlight);
  --cream-3:  var(--bg);

  --ink:      var(--text);
  --ink-2:    var(--text);
  --muted:    var(--text-muted);
  --line:     var(--line-soft);

  --amber:    var(--accent);
  --amber-50: var(--accent-50);
  --rust:     var(--alert);
  --rust-50:  var(--alert-50);
  --ok:       var(--success);
  --ok-50:    var(--success-50);

  /* typography */
  --ff-body: "Satoshi", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;

  --fs-xs:   0.8125rem;   /* 13 */
  --fs-sm:   0.9375rem;   /* 15 */
  --fs-base: 1rem;        /* 16 */
  --fs-md:   1.125rem;    /* 18 */
  --fs-lg:   1.375rem;    /* 22 */
  --fs-xl:   1.75rem;     /* 28 */
  --fs-2xl:  2.375rem;    /* 38 */
  --fs-3xl:  clamp(2.5rem, 5.5vw, 4.25rem);

  /* layout */
  --radius:  14px;
  --radius-sm: 9px;
  --radius-lg: 22px;
  --shadow-sm: 0 1px 2px rgba(42,45,52,.05), 0 2px 8px rgba(42,45,52,.04);
  --shadow-md: 0 6px 20px -8px rgba(42,45,52,.18), 0 2px 6px rgba(42,45,52,.05);
  --shadow-lg: 0 24px 48px -24px rgba(42,45,52,.28);
  --container: 1200px;

  --ease: cubic-bezier(.2,.7,.2,1);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body{
  margin: 0;
  font-family: var(--ff-body);
  color: var(--text);
  background: var(--bg);
  font-size: var(--fs-base);
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

img, svg { display: block; max-width: 100%; }
a { color: var(--sage-600); text-decoration: none; }
a:hover { color: var(--sage-700); text-decoration: underline; text-underline-offset: 3px;}
button { font: inherit; cursor: pointer; }
h1,h2,h3,h4 { font-family: var(--ff-body); font-weight: 700; letter-spacing: -0.01em; margin: 0 0 .5em; line-height: 1.15; }
p { margin: 0 0 1em; }

:focus-visible {
  outline: 2px solid var(--sage-500);
  outline-offset: 2px;
  border-radius: 4px;
}

.container{
  width: 100%;
  max-width: var(--container);
  padding: 0 clamp(16px, 4vw, 32px);
  margin: 0 auto;
}

/* ============================================================
   Nav
   ============================================================ */
.nav{
  position: sticky; top: 0; z-index: 40;
  background: rgba(253, 251, 244, .82);
  backdrop-filter: saturate(1.2) blur(10px);
  -webkit-backdrop-filter: saturate(1.2) blur(10px);
  border-bottom: 1px solid var(--line);
}
.nav__inner{
  display: flex; align-items: center; justify-content: space-between;
  gap: 24px; padding: 14px 0;
}
.brand{
  display: inline-flex; align-items: center; gap: 10px;
  color: var(--sage-600);
  font-weight: 700; letter-spacing: -0.01em;
  text-decoration: none;
}
.brand:hover { text-decoration: none; color: var(--sage-700); }
.brand__mark{ width: 26px; height: 26px; flex: 0 0 auto; }
.brand__text{ color: var(--ink); font-size: 1.02rem; }
.brand__text--muted{ color: var(--muted); font-weight: 500; }

.nav__links{
  display: flex; gap: 22px;
  font-size: var(--fs-sm);
}
.nav__links a{
  color: var(--ink-2); text-decoration: none; font-weight: 500;
  padding: 6px 4px; border-bottom: 2px solid transparent; transition: color .2s var(--ease), border-color .2s var(--ease);
}
.nav__links a:hover{ color: var(--sage-600); border-color: var(--sage-300); }
@media (max-width: 640px){
  .nav__links{ display: none; }
}

/* ============================================================
   Hero
   ============================================================ */
/* ============================================================
   Hero — two-column editorial layout
   Spacing system: 4 / 8 / 16 / 24 / 32 / 48 / 64 (px)
   Typography: tight headline, looser paragraph
   ============================================================ */
.hero{
  position: relative;
  overflow: hidden;
  padding: 64px 0 64px;
  background: var(--surface);
  border-bottom: 1px solid var(--line-soft);
}
@media (min-width: 720px){
  .hero{ padding: 96px 0 96px; }
}

/* Two-column grid. On mobile, text first, image second. */
.hero__grid{
  display: grid;
  grid-template-columns: 1fr;
  gap: 48px;
  align-items: center;
}
@media (min-width: 960px){
  .hero__grid{
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
    gap: 64px;
  }
}

/* Left column: copy + CTA + trust */
.hero__copy{ display: flex; flex-direction: column; gap: 24px; }
.hero__eyebrow{
  display: inline-block;
  align-self: flex-start;
  font-size: var(--fs-xs);
  color: var(--primary-dark);
  background: var(--primary-50);
  border: 1px solid var(--primary-100);
  padding: 4px 12px;
  border-radius: 999px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  font-weight: 700;
  margin: 0;
}
.hero__title{
  font-size: clamp(2rem, 4.5vw, 3.25rem);
  font-weight: 700;
  line-height: 1.08;
  letter-spacing: -0.02em;
  /* 10–12 words per line target */
  max-width: 22ch;
  margin: 0;
  color: var(--text);
}
.hero__subtitle{
  font-size: clamp(1.05rem, 1.4vw, 1.2rem);
  line-height: 1.55;
  color: var(--text);
  /* 55–65 characters body copy target */
  max-width: 60ch;
  margin: 0;
}
.hero__cta{
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  align-items: center;
  margin: 8px 0 0;
}
.hero__trust{
  list-style: none;
  margin: 16px 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
  font-size: var(--fs-sm);
  color: var(--text-muted);
  max-width: 60ch;
}
.hero__trust li{
  display: flex;
  gap: 8px;
  align-items: baseline;
}
.hero__trust span{
  flex: 0 0 auto;
  color: var(--success);
  font-weight: 700;
}

/* Right column: real visual (photo + product mockups) */
.hero__visual{
  position: relative;
  margin: 0;
  /* Reserve space so absolute mocks don't overflow on small screens */
  min-height: 320px;
}
.hero__photo{
  position: relative;
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-md);
  background: var(--bg);
  aspect-ratio: 4 / 3;
  border: 1px solid var(--line-soft);
}
.hero__photo img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Floating product mock cards */
.hero__mock{
  position: absolute;
  background: var(--surface);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  box-shadow: var(--shadow-md);
  padding: 16px;
  font-size: var(--fs-sm);
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.hero__mock--map{
  left: -16px;
  top: 16%;
  width: min(72%, 280px);
}
.hero__mock--list{
  right: -16px;
  bottom: 8%;
  width: min(80%, 320px);
}
@media (min-width: 960px){
  .hero__mock--map{ left: -32px; }
  .hero__mock--list{ right: -32px; }
}
.hero__mock-head{
  display: flex;
  align-items: center;
  gap: 8px;
  font-weight: 700;
  color: var(--text);
}
.hero__mock-dot{
  width: 12px;
  height: 12px;
  border-radius: 50%;
  flex: 0 0 auto;
}
.hero__mock-dot--low{ background: var(--success); }
.hero__mock-row{
  display: flex;
  justify-content: space-between;
  gap: 12px;
  font-size: var(--fs-xs);
  color: var(--text-muted);
}
.hero__mock-row strong{ color: var(--text); font-weight: 600; }
.hero__mock-pill{
  display: inline-flex;
  align-items: center;
  padding: 2px 10px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.02em;
  white-space: nowrap;
}
.hero__mock-pill--open{ background: var(--success-50); color: var(--success); border: 1px solid var(--success); }
.hero__mock-pill--sent{ background: var(--primary-50); color: var(--primary-dark); border: 1px solid var(--primary-100); }
.hero__mock-pill--reply{ background: var(--accent-50); color: var(--warning); border: 1px solid var(--accent); }
.hero__mock-pill--due{ background: var(--alert-50); color: var(--alert); border: 1px solid var(--alert); }
.hero__mock-cta{
  margin-top: 4px;
  padding: 8px 12px;
  border-radius: 999px;
  background: var(--primary);
  color: var(--surface);
  border: 1px solid var(--primary);
  font-weight: 700;
  font-size: var(--fs-xs);
  cursor: default;
}
.hero__mock-list-head{
  font-weight: 700;
  color: var(--text);
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.hero__mock-list-head span{
  background: var(--primary);
  color: var(--surface);
  border-radius: 999px;
  padding: 0 8px;
  font-size: 11px;
}
.hero__mock-list-row{
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 6px 0;
  border-top: 1px dashed var(--line-soft);
  font-size: var(--fs-xs);
  color: var(--text);
}
.hero__mock-list-row:first-of-type{ border-top: none; }
.hero__mock-list-row--due{ color: var(--alert); }

.hero__stats{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 0; border: 1px solid var(--line);
  background: rgba(255,255,255,.55);
  border-radius: var(--radius);
  overflow: hidden; margin-bottom: 32px;
  box-shadow: var(--shadow-sm);
}
.stat{
  padding: 18px 20px;
  border-right: 1px solid var(--line);
}
.stat:last-child{ border-right: none; }
@media (max-width: 720px){
  .stat{ border-right: none; border-bottom: 1px solid var(--line); }
  .stat:last-child{ border-bottom: none; }
}
.stat__num{
  font-size: 1.55rem; font-weight: 700; color: var(--ink);
  letter-spacing: -0.02em;
}
.stat__lbl{ color: var(--muted); font-size: var(--fs-sm); }

.hero__cta{ display: flex; gap: 12px; flex-wrap: wrap; }
.btn{
  display: inline-flex; align-items: center; gap: 8px;
  padding: 13px 22px; border-radius: 999px;
  font-weight: 500; font-size: var(--fs-base);
  border: 1px solid transparent;
  transition: transform .15s var(--ease), background .2s var(--ease), color .2s var(--ease), box-shadow .2s var(--ease);
  text-decoration: none;
}
.btn:hover{ transform: translateY(-1px); text-decoration: none; }
.btn--primary{ background: var(--sage-600); color: white; box-shadow: var(--shadow-sm); }
.btn--primary:hover{ background: var(--sage-700); color: white; box-shadow: var(--shadow-md); }
.btn--ghost{ background: transparent; color: var(--ink); border-color: var(--line); }
.btn--ghost:hover{ background: var(--cream-2); border-color: var(--sage-300); color: var(--ink); }

/* ============================================================
   Sections
   ============================================================ */
.section{
  padding: clamp(64px, 9vw, 110px) 0;
  border-top: 1px solid var(--line);
  scroll-margin-top: 70px;
}
.section--alt{ background: var(--surface); }

.section__head{ max-width: 760px; margin-bottom: 44px; }
.section__eyebrow{
  display: inline-block; font-size: var(--fs-xs);
  letter-spacing: .12em; text-transform: uppercase;
  color: var(--sage-600); font-weight: 500; margin-bottom: 14px;
}
.section__title{
  font-size: clamp(1.9rem, 3.8vw, 2.75rem);
  letter-spacing: -0.025em;
  margin-bottom: 14px;
}
.section__lede{
  font-size: clamp(1rem, 1.5vw, 1.1rem);
  color: var(--ink-2); max-width: 680px;
}

/* ============================================================
   Map section
   ============================================================ */
.map-controls{
  display: grid;
  grid-template-columns: 1fr 1.4fr 1fr 1fr;
  gap: 16px; padding: 18px;
  border: 1px solid var(--line);
  background: white;
  border-radius: var(--radius);
  margin-bottom: 16px;
  box-shadow: var(--shadow-sm);
}
@media (max-width: 900px){
  .map-controls{ grid-template-columns: 1fr 1fr; }
}
@media (max-width: 520px){
  .map-controls{ grid-template-columns: 1fr; }
}
.control{ display: flex; flex-direction: column; gap: 6px; }
.control label{
  font-size: var(--fs-xs); color: var(--muted);
  text-transform: uppercase; letter-spacing: .08em; font-weight: 500;
}
.control select, .control input[type="search"], .control input[type="text"]{
  width: 100%;
  padding: 10px 12px;
  border-radius: var(--radius-sm);
  border: 1px solid var(--line);
  background: var(--cream);
  color: var(--ink);
  font-size: var(--fs-sm);
  font-family: inherit;
}
.control select:focus, .control input:focus{
  border-color: var(--sage-500); outline: none;
  box-shadow: 0 0 0 3px var(--sage-100);
}
input[type="range"]{
  -webkit-appearance: none; appearance: none;
  width: 100%; height: 4px; background: var(--cream-3);
  border-radius: 999px; outline: none; padding: 0;
}
input[type="range"]::-webkit-slider-thumb{
  -webkit-appearance: none; appearance: none;
  width: 20px; height: 20px; border-radius: 50%;
  background: var(--sage-500);
  border: 3px solid white;
  box-shadow: 0 0 0 1px var(--sage-300), var(--shadow-sm);
  cursor: pointer;
}
input[type="range"]::-moz-range-thumb{
  width: 20px; height: 20px; border-radius: 50%;
  background: var(--sage-500); border: 3px solid white; cursor: pointer;
  box-shadow: 0 0 0 1px var(--sage-300);
}
.control--check{ justify-content: center; gap: 10px; flex-direction: column;}
.control--check label{
  text-transform: none; letter-spacing: 0;
  color: var(--ink); font-size: var(--fs-sm); font-weight: 500;
  display: inline-flex; gap: 8px; align-items: center;
}
.control--check input{ accent-color: var(--sage-600); }
.control--legend{
  font-size: var(--fs-xs); gap: 8px;
}
.legend{ display: inline-flex; align-items: center; gap: 6px; color: var(--ink-2); font-weight: 500; }
.dot{
  width: 10px; height: 10px; border-radius: 50%; display: inline-block;
  box-shadow: 0 0 0 2px white, 0 0 0 3px rgba(0,0,0,.1);
}
.dot--low{ background: var(--ok); }
.dot--med{ background: var(--amber); }
.dot--high{ background: var(--rust); }

.leaflet-wrap{
  height: 520px;
  border-radius: var(--radius-lg);
  overflow: hidden;
  border: 1px solid var(--line);
  box-shadow: var(--shadow-md);
}
@media (max-width: 640px){
  .leaflet-wrap{ height: 420px; }
}
.map-footnote{ color: var(--muted); font-size: var(--fs-sm); margin-top: 12px; }

/* Custom leaflet markers */
.pin{
  width: 26px; height: 26px; border-radius: 50%;
  border: 3px solid white;
  box-shadow: 0 3px 8px rgba(0,0,0,.25);
  display: grid; place-items: center;
  color: white; font-size: 11px; font-weight: 700;
}
.pin--low{ background: var(--ok); }
.pin--med{ background: var(--amber); }
.pin--high{ background: var(--rust); }

.leaflet-popup-content-wrapper{ border-radius: 12px; }
.leaflet-popup-content{ margin: 14px 16px; font-family: var(--ff-body); }
.pop__title{ font-weight: 700; color: var(--ink); font-size: 1rem; margin: 0 0 4px; }
.pop__type{ color: var(--muted); font-size: var(--fs-xs); margin-bottom: 10px; text-transform: uppercase; letter-spacing: .06em; }
.pop__row{ display: flex; justify-content: space-between; gap: 12px; font-size: var(--fs-sm); padding: 4px 0; border-top: 1px dashed var(--line); }
.pop__row:first-of-type{ border-top: none; }
.pop__row strong{ color: var(--ink); }
.pop__actions{
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin-top: 12px;
  padding-top: 10px;
  border-top: 1px solid var(--line-soft);
}
.pop__actions .act{ flex: 1; justify-content: center; min-width: 120px; }

/* ============================================================
   Provider cards
   ============================================================ */
.prov-controls{
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 16px; margin-bottom: 28px;
}
@media (max-width: 640px){ .prov-controls{ grid-template-columns: 1fr; } }

.card-grid{
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 20px;
}
.pcard{
  background: var(--cream);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 22px;
  display: flex; flex-direction: column; gap: 14px;
  transition: transform .2s var(--ease), box-shadow .2s var(--ease), border-color .2s var(--ease);
  box-shadow: var(--shadow-sm);
}
.section--alt .pcard{ background: var(--bg); }
.pcard:hover{
  transform: translateY(-2px);
  border-color: var(--sage-300);
  box-shadow: var(--shadow-md);
}
.pcard__head{
  display: flex; flex-direction: column; gap: 6px;
}
.pcard__name{
  font-size: 1.1rem; font-weight: 700;
  color: var(--ink);
  letter-spacing: -0.01em;
}
.pcard__type{
  font-size: var(--fs-xs);
  color: var(--sage-600);
  background: var(--sage-50);
  border: 1px solid var(--sage-200);
  padding: 3px 10px; border-radius: 999px;
  align-self: flex-start;
  font-weight: 500;
}
.pcard__fee{
  display: flex; align-items: baseline; gap: 6px;
  padding: 8px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.pcard__fee strong{ font-size: 1.4rem; letter-spacing: -0.02em; }
.pcard__fee span{ color: var(--muted); font-size: var(--fs-xs); }

.pcard__meta{
  display: grid; grid-template-columns: 1fr 1fr; gap: 8px 14px;
  font-size: var(--fs-sm);
  color: var(--ink-2);
}
.pcard__meta span b{ color: var(--ink); font-weight: 500; }

.pcard__badges{ display: flex; flex-wrap: wrap; gap: 6px; }
.badge{
  font-size: var(--fs-xs);
  padding: 3px 9px; border-radius: 999px;
  font-weight: 500; border: 1px solid transparent;
}
.badge--wait-low{ background: var(--ok-50); color: var(--sage-700); border-color: #C9DFC2; }
.badge--wait-med{ background: var(--amber-50); color: #8B6620; border-color: #E8D49A; }
.badge--wait-high{ background: var(--rust-50); color: #8A3B23; border-color: #E8BFAE; }

.pcard__stability{
  font-size: var(--fs-xs); color: var(--muted);
}
.stability-bar{
  height: 6px; border-radius: 999px;
  background: var(--cream-3); overflow: hidden; margin-top: 5px;
}
.stability-bar__fill{
  height: 100%; border-radius: 999px;
  background: linear-gradient(90deg, var(--sage-500), var(--sage-600));
  transition: width .5s var(--ease);
}

.pcard__features{
  display: flex; flex-wrap: wrap; gap: 10px;
  font-size: var(--fs-xs); color: var(--ink-2);
  margin-top: auto;
  padding-top: 6px;
}
.feat{
  display: inline-flex; align-items: center; gap: 5px;
  padding: 4px 10px; border: 1px solid var(--line); border-radius: 8px;
  background: var(--cream);
}
.section--alt .feat{ background: var(--cream-2); }
.feat svg{ width: 14px; height: 14px; }

.pcard__link{
  font-size: var(--fs-sm); font-weight: 500;
  margin-top: 2px;
}

/* ============================================================
   Simulator
   ============================================================ */
.sim{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  background: white;
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-md);
}
@media (max-width: 900px){ .sim{ grid-template-columns: 1fr; } }

.sim__inputs{
  padding: 32px;
  display: flex; flex-direction: column; gap: 22px;
  border-right: 1px solid var(--line);
}
@media (max-width: 900px){ .sim__inputs{ border-right: none; border-bottom: 1px solid var(--line); } }

.sim__field label{
  display: flex; justify-content: space-between;
  font-size: var(--fs-xs);
  color: var(--muted); text-transform: uppercase; letter-spacing: .08em; font-weight: 500;
  margin-bottom: 10px;
}
.sim__field label strong{
  color: var(--ink); font-size: .95rem;
  text-transform: none; letter-spacing: -0.01em;
}
.range-scale{
  display: flex; justify-content: space-between;
  margin-top: 6px; font-size: var(--fs-xs); color: var(--muted);
}
.sim__row{ display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
@media (max-width: 500px){ .sim__row{ grid-template-columns: 1fr; } }
.sim__field--inline label{
  margin-bottom: 6px;
}
.sim__field select{
  width: 100%;
  padding: 10px 12px;
  border-radius: var(--radius-sm);
  border: 1px solid var(--line);
  background: var(--cream);
  font-size: var(--fs-sm); font-family: inherit;
  color: var(--ink);
}
.sim__toggles .switch{
  display: inline-flex; align-items: center; gap: 10px;
  font-size: var(--fs-sm); color: var(--ink); font-weight: 500;
}
.sim__toggles input{ accent-color: var(--sage-600); transform: scale(1.15); }

.sim__output{
  padding: 32px;
  background: linear-gradient(180deg, var(--sage-50), white 40%);
  display: flex; flex-direction: column; gap: 22px;
}

.sim__breakdown{ display: flex; flex-direction: column; }
.break{
  display: flex; justify-content: space-between;
  padding: 12px 0; border-bottom: 1px solid var(--line);
  font-size: var(--fs-sm);
  color: var(--ink-2);
}
.break strong{ color: var(--ink); font-weight: 700; font-size: .95rem; }
.break--sub strong{ color: var(--sage-600); }
.break--net{
  padding: 18px 0; border-bottom: none; margin-top: 8px;
  background: var(--sage-50);
  border-radius: var(--radius);
  padding: 18px 18px;
  border: 1px solid var(--sage-200);
}
.break--net span{ font-weight: 500; color: var(--sage-700); font-size: 1rem; }
.break--net strong{
  color: var(--sage-700);
  font-size: 2rem; letter-spacing: -0.03em;
}
.break--meta{
  padding-top: 10px; font-size: var(--fs-xs);
  color: var(--muted); border-bottom: none;
}

.sim__bars{ display: flex; flex-direction: column; gap: 10px; }
.barrow{
  display: grid;
  grid-template-columns: 72px 1fr 70px;
  align-items: center; gap: 10px;
  font-size: var(--fs-xs);
}
.barrow__lbl{ color: var(--muted); font-weight: 500; text-transform: uppercase; letter-spacing: .06em; }
.barrow__track{
  height: 12px; background: var(--cream-3);
  border-radius: 999px; overflow: hidden;
}
.barrow__fill{
  height: 100%; width: 0%;
  transition: width .45s var(--ease);
  border-radius: 999px;
}
.barrow__fill--gross{ background: var(--rust); opacity: .7; }
.barrow__fill--mid{ background: var(--amber); }
.barrow__fill--net{ background: var(--sage-500); }
.barrow__val{ text-align: right; color: var(--ink); font-weight: 500; }

/* Scenarios */
.scenarios{ margin-top: 44px; }
.scenarios__title{
  font-size: 1.25rem; color: var(--ink);
  margin-bottom: 18px; letter-spacing: -0.01em;
}
.scenarios__grid{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 16px;
}
.scenario{
  background: var(--cream-2);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 20px;
  display: flex; flex-direction: column; gap: 8px;
}
.section--alt .scenario{ background: white; }
.scenario__tag{
  font-size: var(--fs-xs); text-transform: uppercase; letter-spacing: .08em;
  color: var(--sage-600); font-weight: 500;
}
.scenario__title{
  font-size: 1rem; font-weight: 700; color: var(--ink);
  letter-spacing: -0.01em;
}
.scenario__net{
  font-size: 1.6rem; font-weight: 700; color: var(--ink);
  letter-spacing: -0.02em;
}
.scenario__delta{
  font-size: var(--fs-sm);
  font-weight: 500;
}
.delta--down{ color: var(--sage-600); }
.delta--up{ color: var(--rust); }
.scenario__note{ color: var(--muted); font-size: var(--fs-xs); }

/* ============================================================
   Stress test
   ============================================================ */
.stress-stats{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 14px;
  margin-bottom: 32px;
}
.stress-stat{
  background: white; border: 1px solid var(--line);
  border-radius: var(--radius); padding: 18px;
  box-shadow: var(--shadow-sm);
}
.section--alt .stress-stat{ background: var(--cream); }
.stress-stat__num{
  font-size: 1.75rem; font-weight: 900; color: var(--rust);
  letter-spacing: -0.02em;
}
.stress-stat__lbl{ color: var(--ink-2); font-size: var(--fs-sm); }

.stress-grid{
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 18px;
}
.scard{
  background: white; border: 1px solid var(--line);
  border-radius: var(--radius); padding: 22px;
  display: flex; flex-direction: column; gap: 14px;
  box-shadow: var(--shadow-sm);
}
.section--alt .scard{ background: var(--cream); }
.scard__head{
  display: flex; justify-content: space-between; gap: 12px; align-items: flex-start;
}
.scard__name{ font-weight: 700; font-size: 1rem; letter-spacing: -0.01em; }
.scard__risk{
  font-size: var(--fs-xs); text-transform: uppercase; letter-spacing: .1em;
  padding: 4px 10px; border-radius: 999px;
  font-weight: 700; align-self: flex-start; white-space: nowrap;
}
.scard__risk--low{ background: var(--ok-50); color: var(--sage-700); }
.scard__risk--med{ background: var(--amber-50); color: #8B6620; }
.scard__risk--high{ background: var(--rust-50); color: #8A3B23; }

.gauge{
  display: flex; align-items: center; gap: 10px;
}
.gauge__track{
  flex: 1; height: 8px; background: var(--cream-3);
  border-radius: 999px; overflow: hidden;
}
.gauge__fill{ height: 100%; border-radius: 999px; transition: width .4s var(--ease); }
.gauge__fill--good{ background: linear-gradient(90deg, var(--sage-500), var(--sage-600)); }
.gauge__fill--mid{ background: linear-gradient(90deg, var(--amber), #C88D2F); }
.gauge__fill--bad{ background: linear-gradient(90deg, var(--rust), #9E4429); }
.gauge__val{ font-weight: 700; color: var(--ink); font-size: .95rem; }

.risk-tags{ display: flex; flex-wrap: wrap; gap: 6px; }
.risk-tag{
  font-size: var(--fs-xs);
  background: var(--cream-2);
  border: 1px solid var(--line);
  padding: 3px 9px; border-radius: 6px;
  color: var(--ink-2);
}
.section--alt .risk-tag{ background: white; }

.scard__reco{
  font-size: var(--fs-sm); color: var(--ink-2);
  padding-top: 10px; border-top: 1px dashed var(--line);
  font-style: italic;
}

/* ============================================================
   Subsidy guide
   ============================================================ */
.subsidy-grid{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 20px; margin-bottom: 40px;
}
.sub-card{
  background: white;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 24px;
  box-shadow: var(--shadow-sm);
}
.sub-card__tag{
  font-size: var(--fs-xs); color: var(--sage-600); font-weight: 500;
  text-transform: uppercase; letter-spacing: .08em;
  margin-bottom: 10px;
}
.sub-card h3{
  font-size: 1.15rem; letter-spacing: -0.015em; margin-bottom: 8px;
}
.sub-card p{ color: var(--ink-2); font-size: var(--fs-sm); }
.sub-card ul{ padding-left: 20px; margin: 0; color: var(--ink-2); font-size: var(--fs-sm); }
.sub-card ul li{ margin-bottom: 6px; }

.birthyear{
  background: var(--highlight);
  border: 1px solid var(--accent-50);
  border-radius: var(--radius);
  padding: 24px;
}
.birthyear h3{ font-size: 1.1rem; margin: 0 0 16px; color: var(--text); }
.birthyear table{
  width: 100%;
  border-collapse: collapse;
  font-size: var(--fs-sm);
  table-layout: fixed;
}
.birthyear th, .birthyear td{
  text-align: left;
  padding: 12px 10px;
  border-bottom: 1px solid var(--line-soft);
  vertical-align: middle;
}
.birthyear th{
  font-size: var(--fs-xs);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--text-muted);
  font-weight: 600;
}
/* Fixed-width chip column so all chips line up in the same place */
.birthyear th:nth-child(2),
.birthyear td:nth-child(2){
  width: 140px;
  text-align: left;
}
.birthyear tr:last-child td{ border-bottom: none; }
/* .pill is now an alias for .chip; the ECCE table uses .chip directly. */
.linkout{
  display: inline-block; margin-top: 16px;
  font-weight: 500;
}

/* ============================================================
   Footer
   ============================================================ */
.footer{
  background: var(--ink);
  color: #C8CBD2;
  padding: 64px 0 28px;
}
.footer__inner{
  display: grid;
  grid-template-columns: 1.3fr 1fr 1.3fr;
  gap: 40px;
}
@media (max-width: 800px){
  .footer__inner{ grid-template-columns: 1fr; }
}
.footer .brand{ color: var(--sage-300); margin-bottom: 12px; }
.footer .brand__text{ color: white; }
.footer .brand__text--muted{ color: #C8CBD2; }

.footer__col h4{
  color: white; font-size: .95rem;
  letter-spacing: .02em; margin-bottom: 14px;
}
.footer__col ul{
  list-style: none; padding: 0; margin: 0;
  display: flex; flex-direction: column; gap: 8px;
  font-size: var(--fs-sm);
}
.footer__col a{ color: #C8CBD2; }
.footer__col a:hover{ color: white; text-decoration: underline; }
.footer__note{ color: #9DA1AB; font-size: var(--fs-sm); }

.footer__base{
  display: flex; justify-content: space-between;
  border-top: 1px solid #3B3F48;
  padding-top: 20px; margin-top: 44px;
  font-size: var(--fs-xs);
  color: #9DA1AB;
  flex-wrap: wrap; gap: 12px;
}

/* ============================================================
   Utilities & motion
   ============================================================ */
@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{
    transition-duration: 0.001ms !important;
    animation-duration: 0.001ms !important;
  }
  html{ scroll-behavior: auto; }
}

/* ============================================================
   Action layer: home banner, opening status, distance, shortlist,
   contact actions, settings panel
   ============================================================ */

/* Home banner */
.homebar{
  background: var(--sage-100);
  border-top: 1px solid var(--sage-200);
  border-bottom: 1px solid var(--sage-200);
}
.homebar__inner{
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 0;
  flex-wrap: wrap;
}
.homebar__icon{ font-size: 1.5rem; }
.homebar__text{ display: flex; flex-direction: column; flex: 1; min-width: 240px; }
.homebar__text strong{ font-size: var(--fs-md); color: var(--sage-700); }
.homebar__sub{ font-size: var(--fs-xs); color: var(--ink-2); }
.homebar__edit{
  font-size: var(--fs-sm);
  font-weight: 600;
  color: var(--sage-600);
  white-space: nowrap;
}

/* ============================================================
   Chip system (unified). Used by opening-status, ECCE, distance,
   "added by you", age pill, eligibility table, etc.
   Material Design 3 "filter chip" inspired: fixed 28px height,
   12px horizontal padding, 8px corner radius, single line of text.
   ============================================================ */
.chip,
.open-badge,
.mini-badge,
.walk-pill,
.age-pill{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  height: 28px;
  padding: 0 12px;
  border-radius: 14px;             /* half of height = pill shape */
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.01em;
  line-height: 1;
  white-space: nowrap;
  border: 1px solid transparent;
  vertical-align: middle;
  box-sizing: border-box;
}

/* Variants: green=ok, amber=warn, red=alert, neutral=info, teal=accent */
.chip--ok,         .open-badge--open    { background: var(--success-50); color: var(--success);    border-color: var(--success); }
.chip--warn,       .open-badge--waitlist{ background: var(--accent-50);  color: var(--warning);    border-color: var(--accent); }
.chip--alert,      .open-badge--full    { background: var(--alert-50);   color: var(--alert);      border-color: var(--alert); }
.chip--neutral,    .open-badge--unknown,
.age-pill                              { background: var(--bg);          color: var(--text-muted); border-color: var(--line-soft); }
.chip--accent,     .mini-badge--user   { background: var(--primary-50);  color: var(--primary-dark); border-color: var(--primary-100); }
.chip--ecce,       .mini-badge--ecce   { background: var(--success-50);  color: var(--success);    border-color: var(--success); }
.mini-badge--contact                    { background: var(--primary-50);  color: var(--primary-dark); border-color: var(--primary-100); }
.mini-badge--directory                  { background: var(--accent-50);   color: var(--warning);    border-color: var(--accent); }

.verified{
  font-size: var(--fs-xs);
  color: var(--muted);
  margin-left: 8px;
}

/* Distance pill: extends the chip system. Default = neutral (already
   styled above); --near upgrades to success (green) when within walking
   distance; --approx adds the warning style (amber). */
.walk-pill--near{
  background: var(--success-50);
  color: var(--success);
  border-color: var(--success);
}

/* Provider card additions */
.pcard__statusrow,
.pcard__distrow{
  margin: 0 0 8px;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}
.pcard__statusedit{ margin: 0 0 12px; }
.pcard__statusedit[hidden]{ display: none; }

.status-edit{
  background: var(--cream-2);
  border: 1px solid var(--sage-200);
  border-radius: var(--radius);
  padding: 12px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.status-edit__hint{ font-size: var(--fs-xs); color: var(--muted); font-weight: 600; }
.status-edit__btns{ display: flex; gap: 6px; flex-wrap: wrap; }
.pcard__actions{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 12px 0 8px;
}

/* Action buttons */
.act{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 12px;
  border: 1px solid var(--sage-300);
  background: var(--cream);
  color: var(--sage-700);
  border-radius: var(--radius-sm);
  font-size: var(--fs-xs);
  font-weight: 600;
  text-decoration: none;
  transition: background .15s var(--ease), border-color .15s var(--ease);
}
.act:hover{ background: var(--sage-100); border-color: var(--sage-500); text-decoration: none; }
.act--on{ background: var(--sage-500); color: var(--cream); border-color: var(--sage-500); }
.act--on:hover{ background: var(--sage-600); border-color: var(--sage-600); color: var(--cream); }
.act--small{ padding: 6px 10px; font-size: var(--fs-xs); }
.act--ghost{ background: transparent; border-color: var(--line); color: var(--ink-2); }
.act--ghost:hover{ background: var(--cream-2); border-color: var(--muted); color: var(--ink); }
.act--disabled{ background: var(--cream-2); color: var(--muted); border-color: var(--line); cursor: not-allowed; pointer-events: none; }

/* Shortlist */
.count-pill{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 24px;
  height: 24px;
  padding: 0 8px;
  border-radius: 999px;
  background: var(--sage-500);
  color: var(--cream);
  font-weight: 700;
  font-size: var(--fs-xs);
  margin-left: 6px;
}
.shortlist-toolbar{
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 12px 0 18px;
  flex-wrap: wrap;
}
.shortlist-toolbar .hint{
  font-size: var(--fs-xs);
  color: var(--muted);
}
.btn--small{ padding: 8px 14px; font-size: var(--fs-sm); }
.shortlist-grid{ display: flex; flex-direction: column; gap: 14px; }
.shortlist-grid .empty{
  padding: 28px;
  background: var(--cream-2);
  border: 1px dashed var(--line);
  border-radius: var(--radius);
  color: var(--muted);
  text-align: center;
}
.srow{
  display: grid;
  grid-template-columns: minmax(220px, 1.4fr) minmax(220px, 1.2fr) minmax(220px, 1.4fr) auto;
  gap: 16px;
  padding: 16px;
  background: var(--cream);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow-sm);
}
.srow__name{ font-weight: 700; color: var(--sage-700); margin-bottom: 4px; }
.srow__meta{ font-size: var(--fs-xs); color: var(--muted); display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.srow__status label{ display: flex; flex-direction: column; gap: 4px; font-size: var(--fs-xs); color: var(--muted); }
.srow__status select{
  padding: 6px 8px;
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  background: var(--cream);
  color: var(--ink);
  font-size: var(--fs-sm);
}
.srow__dates{
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin-top: 8px;
  font-size: var(--fs-xs);
  color: var(--muted);
}
.srow__datelbl{
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-top: 8px;
  font-size: var(--fs-xs);
  color: var(--muted);
}
.srow__datelbl input[type="date"]{
  padding: 6px 8px;
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  background: var(--cream);
  color: var(--ink);
  font: inherit;
  font-size: var(--fs-sm);
}
.srow__datelbl input[type="date"].due{
  border-color: var(--rust);
  background: var(--rust-50);
  color: var(--rust);
  font-weight: 600;
}
.due-flag{
  display: inline-block;
  padding: 1px 6px;
  margin-left: 4px;
  border-radius: 999px;
  background: var(--rust);
  color: var(--cream);
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  vertical-align: middle;
}
.srow__notes label{ display: flex; flex-direction: column; gap: 4px; font-size: var(--fs-xs); color: var(--muted); height: 100%; }
.srow__notes textarea{
  padding: 8px;
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  background: var(--cream);
  color: var(--ink);
  font: inherit;
  font-size: var(--fs-sm);
  resize: vertical;
  min-height: 56px;
  flex: 1;
}
.srow__actions{
  display: flex;
  flex-direction: column;
  gap: 6px;
  align-items: stretch;
  min-width: 160px;
}

@media (max-width: 800px){
  .srow{ grid-template-columns: 1fr; }
  .srow__actions{ flex-direction: row; flex-wrap: wrap; }
}

/* Settings */
.settings-card{
  background: var(--cream);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 22px;
  margin-bottom: 18px;
  box-shadow: var(--shadow-sm);
}
.settings-card h3{
  margin: 0 0 6px;
  color: var(--sage-700);
  font-size: var(--fs-lg);
}
.settings-card__lede{
  margin: 0 0 14px;
  font-size: var(--fs-sm);
  color: var(--ink-2);
}
.settings-card__btns{
  display: flex;
  gap: 8px;
  margin-top: 14px;
  flex-wrap: wrap;
}

.settings-grid{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 14px;
}
.setting{ display: flex; flex-direction: column; gap: 6px; }
.setting span{ font-size: var(--fs-xs); color: var(--muted); font-weight: 600; }
.setting input{
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  background: var(--cream);
  font: inherit;
  font-size: var(--fs-sm);
  color: var(--ink);
}
.setting select{
  width: 100%;
  min-height: 44px;
  padding: 10px 42px 10px 12px;
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  background: var(--cream);
  font: inherit;
  font-size: var(--fs-sm);
  color: var(--ink);
  line-height: 1.25;
}
.setting input:focus{
  border-color: var(--sage-500);
  outline: none;
  box-shadow: 0 0 0 3px var(--sage-100);
}
.setting select:focus{
  border-color: var(--sage-500);
  outline: none;
  box-shadow: 0 0 0 3px var(--sage-100);
}
.setting--wide{ grid-column: 1 / -1; }
@media (min-width: 800px){
  .setting--wide{ grid-column: span 2; }
}

/* Price verified/estimate badge + inline edit form */
.pcard__feerow{
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 6px;
}
.pcard__editwrap{ margin: 8px 0 12px; }
.pcard__editwrap[hidden]{ display: none; }

.vfy{
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 9px;
  border-radius: 999px;
  font-size: var(--fs-xs);
  font-weight: 600;
  white-space: nowrap;
}
.vfy--ok{       background: var(--ok-50);   color: var(--sage-700); border: 1px solid var(--sage-300); }
.vfy--est{      background: var(--cream-2); color: var(--muted);    border: 1px solid var(--line); }
.vfy--est{
  font-weight: 700;
}
.vfy--ok-inline,
.vfy--est-inline{
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 1px 8px;
  border-radius: 999px;
  font-size: var(--fs-xs);
  font-weight: 600;
}
.vfy--ok-inline{   background: var(--ok-50);   color: var(--sage-700); }
.vfy--est-inline{  background: var(--cream-2); color: var(--muted); border: 1px solid var(--line); }

.price-edit-btn{
  background: var(--primary-50);
  border: 1px solid var(--primary-100);
  border-radius: var(--radius-sm);
  padding: 4px 10px;
  font-size: var(--fs-xs);
  font-weight: 600;
  color: var(--primary-dark);
  cursor: pointer;
  margin-left: 8px;
  line-height: 1;
  transition: background .15s var(--ease), border-color .15s var(--ease), color .15s var(--ease);
}
.price-edit-btn:hover,
.price-edit-btn:focus-visible{
  background: var(--primary);
  border-color: var(--primary);
  color: var(--surface);
  outline: none;
}
.price-edit-btn::after{
  content: " edit";
  font-weight: 500;
  font-size: 11px;
  margin-left: 2px;
}

.price-edit{
  background: var(--cream-2);
  border: 1px solid var(--sage-200);
  border-radius: var(--radius);
  padding: 12px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.price-edit label{
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: var(--fs-xs);
  color: var(--muted);
  font-weight: 600;
}
.price-edit input[type="number"]{
  padding: 8px 10px;
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  background: var(--cream);
  font: inherit;
  font-size: var(--fs-md);
  color: var(--ink);
  max-width: 160px;
}
.price-edit__hint{ font-size: var(--fs-xs); color: var(--muted); }
.price-edit__btns{ display: flex; gap: 6px; flex-wrap: wrap; }

.ico-cue{
  display: inline-block;
  padding: 0 6px;
  border-radius: 4px;
  background: var(--sage-100);
  color: var(--sage-700);
  font-weight: 700;
}

/* Price-source disclosure */
.price-source{
  margin: 0 0 18px;
  padding: 14px 18px;
  background: var(--cream-2);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  font-size: var(--fs-sm);
}
.price-source summary{
  cursor: pointer;
  font-weight: 600;
  color: var(--sage-700);
  list-style: none;
}
.price-source summary::-webkit-details-marker{ display: none; }
.price-source summary::before{
  content: "▸ ";
  color: var(--sage-500);
  font-size: 0.9em;
  margin-right: 4px;
  display: inline-block;
  transition: transform .15s var(--ease);
}
.price-source[open] summary::before{ transform: rotate(90deg); }
.price-source__hint{
  font-size: var(--fs-xs);
  color: var(--muted);
  font-weight: 400;
  margin-left: 6px;
}
.price-source ul{
  margin: 12px 0 8px;
  padding-left: 22px;
}
.price-source li{ margin: 6px 0; color: var(--ink-2); }
.price-source code{
  background: var(--cream-3);
  padding: 1px 5px;
  border-radius: 4px;
  font-size: 0.9em;
}
.price-source p{ margin: 8px 0 0; font-size: var(--fs-sm); color: var(--ink-2); }
.price-source__cta{
  margin: 14px 0 0 !important;
  padding: 10px 12px;
  background: var(--cream);
  border-left: 3px solid var(--sage-500);
  border-radius: var(--radius-sm);
}

/* About / More resources (Care.com-inspired clean editorial style) */
.about-section{
  background: #f5f8fc;
}
.why-block{
  width: 100%;
  margin: 0 0 26px;
  padding: clamp(24px, 3.5vw, 40px);
  background: #ffffff;
  border: 1px solid #e3e9f2;
  border-radius: 20px;
  color: #263746;
  font-size: 1.08rem;
  line-height: 1.75;
  box-shadow: 0 12px 26px -24px rgba(26, 44, 66, .45);
}
.motherhood-strip{
  display: none;
}
.why-block p{ margin: 0 0 1em; max-width: 70ch; }
.why-block p:last-child{ margin-bottom: 0; }
.why-block p:first-child{
  font-size: clamp(1.65rem, 2.6vw, 2rem);
  color: #0e2a47;
  font-weight: 700;
  line-height: 1.25;
  margin-bottom: .8em;
}

.resources-grid{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(270px, 1fr));
  gap: 16px;
}
.res-card{
  background: #ffffff;
  border: 1px solid #e3e9f2;
  border-radius: 16px;
  padding: 22px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  box-shadow: 0 10px 20px -22px rgba(26, 44, 66, .35);
}
.res-card h3{
  margin: 0;
  color: #0f3f66;
  font-size: 1.65rem;
  letter-spacing: -0.01em;
}
.res-card p{
  margin: 0;
  font-size: 1.02rem;
  color: #3f4f5f;
  line-height: 1.65;
}
.res-card__tag{
  align-self: flex-start;
  padding: 0;
  border-radius: 0;
  font-size: 0.78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #6b7d91;
  background: transparent;
  border: 0;
}
.res-card--community,
.res-card--other,
.res-card--official{
  background: #ffffff;
  border-color: #e3e9f2;
}
.res-card .btn{
  align-self: flex-start;
  margin-top: 8px;
}

/* ============================================================
   Design v2: civic-service polish
   ============================================================ */

.hero__sublink{
  font-size: var(--fs-sm);
  color: var(--text-muted);
}
.hero__sublink:hover{ color: var(--primary-dark); }

/* Trust + architecture section (sits between How-it-works and Map) */
.trust{ padding: 56px 0 32px; background: var(--bg); }
.trust__grid{
  display: grid;
  grid-template-columns: 1fr;
  gap: 32px;
  align-items: start;
}
@media (min-width: 800px){
  .trust__grid{
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    gap: 48px;
  }
}
.trust__title{
  font-size: clamp(1.4rem, 2.4vw, 1.8rem);
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -0.015em;
  margin: 0 0 16px;
  color: var(--text);
  max-width: 22ch;
}
.trust__lede p{
  font-size: var(--fs-md);
  line-height: 1.55;
  color: var(--text-muted);
  max-width: 60ch;
  margin: 0;
}
.trust__list{
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}
@media (min-width: 600px){
  .trust__list{ grid-template-columns: 1fr 1fr; gap: 16px 24px; }
}
.trust__list li{
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 16px;
  background: var(--surface);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
}
.trust__list strong{
  color: var(--primary-dark);
  font-size: var(--fs-md);
  font-weight: 700;
}
.trust__list span{
  color: var(--text-muted);
  font-size: var(--fs-sm);
  line-height: 1.55;
}
.trust__maker{
  margin: 24px 0 0;
  padding: 16px 20px;
  background: var(--surface);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  font-size: var(--fs-sm);
  color: var(--text-muted);
}
.trust__maker summary{
  cursor: pointer;
  font-weight: 600;
  color: var(--text);
  list-style: none;
}
.trust__maker summary::-webkit-details-marker{ display: none; }
.trust__maker summary::before{
  content: "▸";
  color: var(--primary);
  margin-right: 8px;
  display: inline-block;
  transition: transform .15s var(--ease);
}
.trust__maker[open] summary::before{ transform: rotate(90deg); }
.trust__maker p{
  margin: 12px 0 0;
  line-height: 1.6;
}
.trust__maker code{
  background: var(--bg);
  padding: 1px 6px;
  border-radius: 4px;
  font-size: 0.9em;
}

/* Area filter pill row (sits above map + compare) */
.area-pills{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 16px;
  padding: 0;
}
.area-pill{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 14px;
  border-radius: 999px;
  border: 1px solid var(--line-soft);
  background: var(--surface);
  color: var(--text);
  font-family: inherit;
  font-size: var(--fs-sm);
  font-weight: 500;
  cursor: pointer;
  transition: background .15s var(--ease), border-color .15s var(--ease), color .15s var(--ease);
}
.area-pill:hover{
  background: var(--primary-50);
  border-color: var(--primary-100);
}
.area-pill.is-active{
  background: var(--primary);
  color: var(--surface);
  border-color: var(--primary);
  font-weight: 700;
}
.area-pill span{
  font-size: 11px;
  background: var(--bg);
  color: var(--text-muted);
  border-radius: 999px;
  padding: 0 6px;
  font-weight: 700;
}
.area-pill.is-active span{
  background: var(--primary-dark);
  color: var(--surface);
}

/* Compact info bar above the compare grid (replaces the old
   .data-disclaimer + .price-source double callout). One line by default,
   the price-estimation rationale tucked behind an inline link. */
.info-bar{
  margin: 0 0 20px;
  padding: 10px 14px 10px 12px;
  background: var(--surface);
  border: 1px solid var(--line-soft);
  border-left: 1px solid var(--line-soft);
  border-radius: 8px;
  font-size: var(--fs-sm);
  line-height: 1.55;
}
.info-bar--bottom{
  margin: 28px 0 0;
  border-left-width: 0;
  border-radius: 0;
}
.compare-chip-row{
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 12px;
}
.compare-chip-row .chip strong{
  margin-left: 6px;
}
.info-bar > p{
  margin: 0;
  color: var(--text-muted);
  max-width: 80ch;
}
.info-bar > p strong{ color: var(--text); font-weight: 600; }
.info-bar__icon{
  display: inline-block;
  margin-right: 6px;
  color: var(--primary);
  font-weight: 700;
}
.info-bar__why{
  display: inline-block;
  margin-left: 6px;
  font-weight: 600;
  color: var(--primary);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.info-bar__why:hover{ color: var(--primary-dark); }
.info-bar__details{
  margin: 12px 0 0;
  padding: 12px 14px;
  background: var(--bg);
  border-radius: 6px;
  border: 1px solid var(--line-soft);
}
.info-bar__details[open]{
  display: block;
}
.info-bar__details ul{
  margin: 0 0 12px;
  padding-left: 20px;
  font-size: var(--fs-sm);
}
.info-bar__details li{ margin: 4px 0; color: var(--text); }
.info-bar__details li code{
  background: var(--surface);
  padding: 1px 6px;
  border-radius: 4px;
  font-size: 0.9em;
}
.info-bar__cta{
  margin: 0;
  padding: 10px 12px;
  background: var(--primary-50);
  border: 1px solid var(--primary-100);
  border-radius: 6px;
  color: var(--text);
  font-size: var(--fs-sm);
  line-height: 1.6;
}
.info-bar__edit-cue{
  display: inline-flex;
  align-items: center;
  padding: 1px 8px;
  border-radius: 4px;
  background: var(--primary-50);
  color: var(--primary-dark);
  border: 1px solid var(--primary-100);
  font-weight: 600;
  font-size: 11px;
}
.visually-hidden{
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Compare-table pagination footer */
.provider-more{
  margin: 24px 0 0;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  width: 100%;
}
.provider-more[hidden]{ display: none; }
.provider-more p{
  margin: 0;
  font-size: var(--fs-sm);
  color: var(--text-muted);
  text-align: center;
}
.provider-more .btn{ min-width: 200px; }
.provider-more button{ margin: 0 auto; }
.provider-more #provider-more-btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  border: 2px solid var(--primary);
  color: var(--primary-dark);
  background: var(--surface);
  border-radius: 14px;
  min-height: 52px;
}
.provider-more #provider-more-btn:hover{
  background: var(--primary-50);
  border-color: var(--primary-dark);
}
.link-btn{
  background: transparent;
  border: 0;
  color: var(--primary);
  font: inherit;
  font-size: inherit;
  cursor: pointer;
  text-decoration: underline;
  padding: 0;
}
.link-btn:hover{ color: var(--primary-dark); }

/* "Approx" distance pill (town-centroid fallback) */
.walk-pill--approx{
  background: var(--accent-50);
  color: var(--warning);
  border-color: var(--accent);
  cursor: help;
}
.walk-pill--approx::before{
  content: "≈ ";
  font-weight: 700;
}

/* Privacy section (just before footer) */
.privacy{ padding: 64px 0; background: var(--bg); }
.privacy__grid{
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  margin-bottom: 24px;
}
@media (min-width: 720px){
  .privacy__grid{ grid-template-columns: 1fr 1fr; gap: 16px 24px; }
}
.privacy__card{
  padding: 20px;
  background: var(--surface);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  font-size: var(--fs-sm);
  line-height: 1.55;
}
.privacy__card--ok{
  background: var(--success-50);
  border-color: var(--success);
  border-left: 4px solid var(--success);
}
.privacy__card h3{
  margin: 0 0 12px;
  color: var(--text);
  font-size: var(--fs-md);
}
.privacy__card p{ margin: 0 0 8px; color: var(--text-muted); }
.privacy__card ul{
  margin: 0 0 8px;
  padding-left: 20px;
  color: var(--text);
}
.privacy__card li{ margin: 4px 0; }
.privacy__card code{
  background: var(--bg);
  padding: 1px 6px;
  border-radius: 4px;
  font-size: 0.9em;
}
.privacy__contact{
  margin: 0;
  padding: 14px 16px;
  background: var(--surface);
  border: 1px dashed var(--line-soft);
  border-radius: var(--radius);
  font-size: var(--fs-sm);
  color: var(--text-muted);
  text-align: center;
}

/* Persistent backup-note bar */
.backup-note{
  background: var(--accent-50);
  border-top: 1px solid var(--accent);
  border-bottom: 1px solid var(--accent);
}
.backup-note__inner{
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 16px 0;
}
.backup-note__icon{ font-size: 1.4rem; line-height: 1.2; }
.backup-note p{
  margin: 0;
  font-size: var(--fs-sm);
  line-height: 1.55;
  color: var(--text);
  max-width: 65ch;
}
.backup-note p strong{ color: var(--warning); }
.recommended-set-home-link{
  display: inline-block;
  margin-top: 6px;
  font-size: var(--fs-sm);
  font-weight: 600;
}
.dot-inline{
  display: inline-block;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  vertical-align: middle;
  margin: 0 2px 0 4px;
  border: 1px solid var(--surface);
  box-shadow: 0 0 0 1px rgba(0,0,0,.06);
}
.dot-inline--low{ background: var(--success); }
.dot-inline--med{ background: var(--accent); }
.dot-inline--high{ background: var(--alert); }

/* First-visit location prompt */
.loc-prompt{
  background: var(--surface);
  border: 1px solid var(--accent);
  border-radius: var(--radius-lg);
  padding: 18px 22px;
  margin: 0 0 22px;
  box-shadow: var(--shadow-sm);
}

.contact-title-singleline{
  white-space: nowrap;
}
@media (max-width: 800px){
  .contact-title-singleline{ white-space: normal; }
}
.loc-prompt[hidden]{ display: none; }
.loc-prompt__head{
  display: flex;
  gap: 14px;
  align-items: flex-start;
  margin-bottom: 12px;
}
.loc-prompt__icon{ font-size: 1.6rem; line-height: 1; }
.loc-prompt__head strong{
  display: block;
  font-size: var(--fs-md);
  color: var(--primary-dark);
  margin-bottom: 4px;
}
.loc-prompt__head span{
  display: block;
  color: var(--text-muted);
  font-size: var(--fs-sm);
  line-height: 1.55;
}
.loc-prompt__actions{
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 8px;
}
.loc-prompt__privacy{
  margin: 8px 0 0;
  font-size: var(--fs-xs);
  color: var(--text-muted);
}
.loc-prompt__error{
  margin: 8px 0 0;
  padding: 8px 12px;
  background: var(--alert-50);
  border: 1px solid var(--alert);
  border-radius: var(--radius-sm);
  color: var(--alert);
  font-size: var(--fs-xs);
}

.contact-ok{
  margin: 8px 0 0;
  padding: 8px 12px;
  background: var(--success-50);
  border: 1px solid var(--success);
  border-radius: var(--radius-sm);
  color: var(--success);
  font-size: var(--fs-xs);
}

/* Cost CTA card linking to takehome.co */
.cost-cta{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 22px 26px;
  background: var(--surface);
  border: 1px solid var(--primary);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  text-decoration: none;
  color: var(--text);
  transition: background .15s var(--ease), box-shadow .15s var(--ease);
}
.cost-cta:hover{
  background: var(--primary-50);
  box-shadow: var(--shadow-md);
  text-decoration: none;
}
.cost-cta strong{
  display: block;
  font-size: var(--fs-lg);
  color: var(--primary-dark);
  margin-bottom: 4px;
}
.cost-cta span{ display: block; color: var(--text-muted); font-size: var(--fs-sm); }
.cost-cta__arrow{
  font-size: var(--fs-xl);
  color: var(--primary);
}

/* "How it works" 3-step strip */
.howitworks{
  background: var(--primary-50);
  border-top: 1px solid var(--primary-100);
  border-bottom: 1px solid var(--primary-100);
  padding: 24px 0;
}
.howitworks__steps{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 18px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.howitworks__step{
  display: flex;
  align-items: flex-start;
  gap: 14px;
}
.howitworks__num{
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  border-radius: 999px;
  background: var(--primary);
  color: var(--surface);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: var(--fs-md);
}
.howitworks__step strong{
  display: block;
  color: var(--primary-dark);
  font-size: var(--fs-md);
  margin-bottom: 2px;
}
.howitworks__step span{
  display: block;
  color: var(--text-muted);
  font-size: var(--fs-sm);
}

/* Step pill (sits in section eyebrows) */
.step__pill{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 12px;
  background: var(--primary);
  color: var(--surface);
  border-radius: 999px;
  font-size: var(--fs-xs);
  font-weight: 700;
  letter-spacing: 0.04em;
}

/* Recommended block */
.recommended-footnote{
  margin-top: 18px;
  font-size: var(--fs-sm);
  color: var(--text-muted);
  text-align: center;
}
.recmap{
  height: 300px;
  border-radius: var(--radius-lg);
  overflow: hidden;
  border: 1px solid var(--line-soft);
  box-shadow: var(--shadow-md);
  margin: 0 0 22px;
}
@media (max-width: 600px){
  .recmap{ height: 240px; }
}
.pin--home{
  background: var(--accent);
  color: var(--text);
  border-color: var(--surface);
  font-size: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* Minimal-default provider cards */
.pcard__top{
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding-bottom: 4px;
}
.pcard__minimeta{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}
/* age-pill styles unified with the chip system above */
/* mini-badge styles unified with the chip system above (variants only) */

/* User-added providers list (in the Add a provider section) */
.userprov-list{
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.userprov-list .empty{
  margin: 0;
  padding: 14px;
  background: var(--bg);
  border: 1px dashed var(--line-soft);
  border-radius: var(--radius);
  color: var(--text-muted);
  text-align: center;
  font-size: var(--fs-sm);
}
.userprov-row{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 14px;
  background: var(--bg);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius-sm);
}
.userprov-row strong{ display: block; color: var(--text); font-weight: 600; }
.userprov-row span{ display: block; font-size: var(--fs-xs); color: var(--text-muted); }

.add-provider-form textarea{
  padding: 10px 12px;
  border: 1px solid var(--line-soft);
  border-radius: var(--radius-sm);
  background: var(--surface);
  font: inherit;
  font-size: var(--fs-sm);
  color: var(--text);
  resize: vertical;
}
.add-provider-form select{
  padding: 10px 12px;
  border: 1px solid var(--line-soft);
  border-radius: var(--radius-sm);
  background: var(--surface);
  font: inherit;
  font-size: var(--fs-sm);
  color: var(--text);
}

.pcard__primary-cta{
  display: flex;
  margin-top: 6px;
}
.pcard__primary-cta .act{
  flex: 1;
  justify-content: center;
}
.act--primary{
  background: var(--primary);
  color: var(--surface);
  border-color: var(--primary);
}
.act--primary:hover{
  background: var(--primary-dark);
  border-color: var(--primary-dark);
  color: var(--surface);
}

/* Expandable details */
.pcard__details{
  margin-top: 12px;
  border-top: 1px solid var(--line-soft);
  padding-top: 10px;
}
.pcard__details summary{
  cursor: pointer;
  font-size: var(--fs-xs);
  font-weight: 600;
  color: var(--primary);
  list-style: none;
  padding: 4px 0;
}
.pcard__details summary::-webkit-details-marker{ display: none; }
.pcard__details summary::before{
  content: "▸ ";
  color: var(--primary);
  margin-right: 4px;
  display: inline-block;
  transition: transform .15s var(--ease);
}
.pcard__details[open] summary::before{ transform: rotate(90deg); }
.pcard__details-body{
  padding-top: 10px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.pcard__type-row{
  font-size: var(--fs-xs);
  color: var(--text-muted);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.pcard__statusprov{
  font-size: var(--fs-xs);
  color: var(--text-muted);
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}
.pcard__link--muted{ color: var(--text-muted); }

/* ============================================================
   Card redesign (ckm-design pass)
   Focus: scanability, stronger hierarchy, cleaner actions
   ============================================================ */
.card-grid{
  gap: 18px;
}
.pcard{
  position: relative;
  border: 1px solid var(--line-soft);
  border-radius: 18px;
  padding: 18px;
  background: linear-gradient(180deg, #ffffff 0%, #fcfbf8 100%);
  box-shadow: 0 8px 24px -18px rgba(20, 40, 35, .45);
}
.section--alt .pcard{
  background: linear-gradient(180deg, #ffffff 0%, #f9f7f2 100%);
}
.pcard::before{
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 4px;
  border-radius: 18px 18px 0 0;
  background: linear-gradient(90deg, var(--primary), var(--accent));
  opacity: .7;
}
.pcard:hover{
  transform: translateY(-1px);
  border-color: var(--primary-100);
  box-shadow: 0 16px 30px -22px rgba(20, 40, 35, .55);
}
.pcard__statusrow{
  gap: 6px;
}
.pcard__name{
  font-size: 1.08rem;
  line-height: 1.25;
  margin: 0;
}
.pcard__minimeta{
  margin-top: -2px;
}
.pcard__feerow{
  margin: 4px 0 2px;
  padding: 10px 12px;
  background: rgba(31, 107, 99, .05);
  border: 1px solid rgba(31, 107, 99, .12);
  border-radius: 12px;
}
.pcard__fee{
  border: 0;
  padding: 0;
}
.pcard__fee strong{
  font-size: 1.28rem;
  line-height: 1;
}
.pcard__primary-cta{
  margin-top: 2px;
}
.pcard__primary-cta .act{
  min-height: 42px;
  border-radius: 12px;
}
.pcard__details{
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px dashed var(--line-soft);
}
.pcard__details summary{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 10px;
  border-radius: 10px;
  background: rgba(31, 107, 99, .06);
  border: 1px solid rgba(31, 107, 99, .1);
  font-size: 12px;
  letter-spacing: .01em;
}
.pcard__details-body{
  margin-top: 2px;
}
.pcard__meta{
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.pcard__meta > span{
  padding: 8px 10px;
  border: 1px solid var(--line-soft);
  border-radius: 10px;
  background: rgba(255, 255, 255, .72);
}
.pcard__stability{
  padding: 8px 10px;
  border-radius: 10px;
  background: rgba(232, 241, 239, .75);
  border: 1px solid var(--primary-100);
}
.pcard__features{
  gap: 8px;
}
.pcard__actions{
  margin-top: 2px;
}
.pcard__actions .act{
  border-radius: 10px;
}
@media (max-width: 560px){
  .pcard{
    padding: 14px;
    border-radius: 14px;
  }
  .pcard__meta{
    grid-template-columns: 1fr;
  }
}

/* Settings card on Step 1 (it lives directly in a section now) */
.step .settings-card{
  background: var(--surface);
  border: 1px solid var(--line-soft);
}

/* Section--alt now uses --surface; cards inside it pick up --bg
   for visual differentiation. */
.section--alt .settings-card{
  background: var(--bg);
}


/* ============================================================
   Print stylesheet — invoked when the user clicks "Print or save
   as PDF" in the shortlist section, OR uses the browser's native
   print. We hide everything except the shortlist and reformat the
   rows for paper.
   ============================================================ */
@media print {
  body { background: white; color: black; }
  .nav, .hero, .howitworks, .trust, .backup-note, #step3, #providers,
  #step1, #add-provider, #simulator, #subsidies, #about, .footer,
  .shortlist-toolbar, .area-pills, .pcard__actions, .pcard__details,
  [data-action="price-edit"], [data-action="status-edit"] { display: none !important; }
  #shortlist {
    display: block !important;
    padding: 0 !important;
    background: white !important;
  }
  .container { max-width: 100% !important; padding: 0 !important; }
  .section__head .step__pill { display: none !important; }
  .section__title {
    font-size: 22px !important;
    margin: 0 0 4px !important;
  }
  .section__lede { font-size: 12px !important; color: #444 !important; margin: 0 0 16px !important; }
  #shortlist-grid { display: block !important; }
  .srow {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 8px 16px !important;
    padding: 12px !important;
    margin: 0 0 8px !important;
    background: white !important;
    border: 1px solid #ccc !important;
    border-radius: 6px !important;
    box-shadow: none !important;
    page-break-inside: avoid;
  }
  .srow__name { font-size: 14px !important; }
  .srow__meta, .srow__dates, .srow__notes textarea { font-size: 11px !important; color: #333 !important; }
  .srow__notes textarea {
    border: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    min-height: auto !important;
    height: auto !important;
    resize: none !important;
  }
  .srow__actions { display: none !important; }
  .srow__status select, .srow__datelbl input {
    border: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    font-weight: 700 !important;
    -webkit-appearance: none !important;
    appearance: none !important;
  }
  .chip, .open-badge, .mini-badge, .walk-pill, .age-pill {
    border: 1px solid #999 !important;
    background: white !important;
    color: black !important;
    padding: 1px 8px !important;
  }
  /* Add a print-only header at the top of the page */
  body::before {
    content: "Lucan & Kildare Crèche — My shortlist (printed " attr(data-print-date) ")";
    display: block;
    font-size: 16px;
    font-weight: 700;
    margin: 0 0 8px;
    padding: 0 0 8px;
    border-bottom: 2px solid black;
  }
  /* Add a print-only disclaimer at the bottom */
  #shortlist::after {
    content: "Source: Tusla Early Years Register, March 2026. Verify all details directly with the provider before making a decision.";
    display: block;
    margin: 24px 0 0;
    padding: 12px;
    border-top: 1px solid #999;
    font-size: 10px;
    font-style: italic;
    color: #555;
  }
}
