:root {
  --bg: #f6f6f8;
  --surface: #ffffff;
  --text: #1c3553;
  --muted: #5b6b7e;
  --line: #e3e9ef;
  --border: #c6ccd4;
  --accent: #1c3553;
  --accent-soft: #e3e9ef;
  --highlight: #1e4976;
  --highlight-soft: #e6edf5;
  --on-highlight: #ffffff;
}
@media (prefers-color-scheme: dark) {
  :root {
    --bg: #0f1b2a;
    --surface: #16263a;
    --text: #eef2f6;
    --muted: #a3b1c2;
    --line: #1d3047;
    --border: #2e4661;
    --accent: #c9d7e6;
    --accent-soft: #22384f;
    --highlight: #9dbbe0;
    --highlight-soft: #1f3550;
    --on-highlight: #0f1b2a;
  }
}
.fi { display: inline-block; width: 1.333em; height: 1em; vertical-align: -0.1em; background: center/cover no-repeat; }
.fi-tr { background-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 id=%22flag-icons-tr%22 viewBox=%220 0 640 480%22%3E %3Cg fill-rule=%22evenodd%22%3E %3Cpath fill=%22%23e30a17%22 d=%22M0 0h640v480H0z%22/%3E %3Cpath fill=%22%23fff%22 d=%22M407 247.5c0 66.2-54.6 119.9-122 119.9s-122-53.7-122-120 54.6-119.8 122-119.8 122 53.7 122 119.9%22/%3E %3Cpath fill=%22%23e30a17%22 d=%22M413 247.5c0 53-43.6 95.9-97.5 95.9s-97.6-43-97.6-96 43.7-95.8 97.6-95.8 97.6 42.9 97.6 95.9z%22/%3E %3Cpath fill=%22%23fff%22 d=%22m430.7 191.5-1 44.3-41.3 11.2 40.8 14.5-1 40.7 26.5-31.8 40.2 14-23.2-34.1 28.3-33.9-43.5 12-25.8-37z%22/%3E %3C/g%3E %3C/svg%3E"); }
.fi-us { background-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 id=%22flag-icons-us%22 viewBox=%220 0 640 480%22%3E %3Cpath fill=%22%23bd3d44%22 d=%22M0 0h640v480H0%22/%3E %3Cpath stroke=%22%23fff%22 stroke-width=%2237%22 d=%22M0 55.3h640M0 129h640M0 203h640M0 277h640M0 351h640M0 425h640%22/%3E %3Cpath fill=%22%23192f5d%22 d=%22M0 0h364.8v258.5H0%22/%3E %3Cmarker id=%22us-a%22 markerHeight=%2230%22 markerWidth=%2230%22%3E %3Cpath fill=%22%23fff%22 d=%22m14 0 9 27L0 10h28L5 27z%22/%3E %3C/marker%3E %3Cpath fill=%22none%22 marker-mid=%22url(%23us-a)%22 d=%22m0 0 16 11h61 61 61 61 60L47 37h61 61 60 61L16 63h61 61 61 61 60L47 89h61 61 60 61L16 115h61 61 61 61 60L47 141h61 61 60 61L16 166h61 61 61 61 60L47 192h61 61 60 61L16 218h61 61 61 61 60z%22/%3E %3C/svg%3E"); }
.fi-th { background-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 id=%22flag-icons-th%22 viewBox=%220 0 640 480%22%3E %3Cg fill-rule=%22evenodd%22%3E %3Cpath fill=%22%23f4f5f8%22 d=%22M0 0h640v480H0z%22/%3E %3Cpath fill=%22%232d2a4a%22 d=%22M0 162.5h640v160H0z%22/%3E %3Cpath fill=%22%23a51931%22 d=%22M0 0h640v82.5H0zm0 400h640v80H0z%22/%3E %3C/g%3E %3C/svg%3E"); }
.fi-hu { background-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 id=%22flag-icons-hu%22 viewBox=%220 0 640 480%22%3E %3Cg fill-rule=%22evenodd%22%3E %3Cpath fill=%22%23fff%22 d=%22M640 480H0V0h640z%22/%3E %3Cpath fill=%22%23388d00%22 d=%22M640 480H0V320h640z%22/%3E %3Cpath fill=%22%23d43516%22 d=%22M640 160.1H0V.1h640z%22/%3E %3C/g%3E %3C/svg%3E"); }
.fi-pl { background-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 id=%22flag-icons-pl%22 viewBox=%220 0 640 480%22%3E %3Cg fill-rule=%22evenodd%22%3E %3Cpath fill=%22%23fff%22 d=%22M640 480H0V0h640z%22/%3E %3Cpath fill=%22%23dc143c%22 d=%22M640 480H0V240h640z%22/%3E %3C/g%3E %3C/svg%3E"); }
.fi-ge { background-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 640 480%22%3E%3Cpath fill=%22%23fff%22 d=%22M0 0h640v480H0z%22/%3E%3Cpath fill=%22%23e8112d%22 d=%22M272 0h96v480h-96zM0 192h640v96H0zM124 60h24v72h-24zM100 84h72v24h-72zM492 60h24v72h-24zM468 84h72v24h-72zM124 348h24v72h-24zM100 372h72v24h-72zM492 348h24v72h-24zM468 372h72v24h-72z%22/%3E%3C/svg%3E"); }
.fi-mx { background-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 640 480%22%3E%3Cpath fill=%22%23006847%22 d=%22M0 0h214v480H0z%22/%3E%3Cpath fill=%22%23fff%22 d=%22M214 0h212v480H214z%22/%3E%3Cpath fill=%22%23ce1126%22 d=%22M426 0h214v480H426z%22/%3E%3Ccircle cx=%22320%22 cy=%22240%22 r=%2256%22 fill=%22%238c5a2b%22/%3E%3Cpath fill=%22%23006847%22 d=%22M268 262q52 40 104 0v14q-52 40-104 0z%22/%3E%3C/svg%3E"); }
.fi-br { background-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 640 480%22%3E%3Cpath fill=%22%23009b3a%22 d=%22M0 0h640v480H0z%22/%3E%3Cpath fill=%22%23fedf00%22 d=%22M320 48 596 240 320 432 44 240z%22/%3E%3Ccircle cx=%22320%22 cy=%22240%22 r=%2288%22 fill=%22%23002776%22/%3E%3Cpath fill=%22%23fff%22 d=%22M234 212a300 300 0 0 1 172 36 88 88 0 0 1-8 14 280 280 0 0 0-168-36z%22/%3E%3C/svg%3E"); }
.fi-kr { background-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 640 480%22%3E%3Cpath fill=%22%23fff%22 d=%22M0 0h640v480H0z%22/%3E%3Cpath fill=%22%23cd2e3a%22 d=%22M320 160a80 80 0 0 1 0 160 80 80 0 0 0 0-160z%22/%3E%3Cpath fill=%22%230047a0%22 d=%22M320 160a80 80 0 0 0 0 160 80 80 0 0 1 0-160z%22/%3E%3Ccircle cx=%22320%22 cy=%22200%22 r=%2240%22 fill=%22%23cd2e3a%22/%3E%3Ccircle cx=%22320%22 cy=%22280%22 r=%2240%22 fill=%22%230047a0%22/%3E%3Cg fill=%22%23000%22%3E%3Crect x=%22120%22 y=%22110%22 width=%2270%22 height=%2210%22/%3E%3Crect x=%22120%22 y=%22130%22 width=%2270%22 height=%2210%22/%3E%3Crect x=%22450%22 y=%22340%22 width=%2270%22 height=%2210%22/%3E%3Crect x=%22450%22 y=%22360%22 width=%2270%22 height=%2210%22/%3E%3C/g%3E%3C/svg%3E"); }
.fi-au { background-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 640 480%22%3E%3Cpath fill=%22%2300008b%22 d=%22M0 0h640v480H0z%22/%3E%3Cpath fill=%22%23fff%22 d=%22M0 0h320v240H0z%22 opacity=%22.08%22/%3E%3Cg fill=%22%23fff%22%3E%3Cpath d=%22M0 90h320v60H0z%22/%3E%3Cpath d=%22M130 0h60v240h-60z%22/%3E%3C/g%3E%3Cg fill=%22%23cf142b%22%3E%3Cpath d=%22M0 104h320v32H0z%22/%3E%3Cpath d=%22M144 0h32v240h-32z%22/%3E%3C/g%3E%3Cg fill=%22%23fff%22%3E%3Ccircle cx=%22160%22 cy=%22360%22 r=%2228%22/%3E%3Ccircle cx=%22470%22 cy=%22120%22 r=%2216%22/%3E%3Ccircle cx=%22540%22 cy=%22220%22 r=%2216%22/%3E%3Ccircle cx=%22470%22 cy=%22330%22 r=%2216%22/%3E%3Ccircle cx=%22410%22 cy=%22230%22 r=%2216%22/%3E%3Ccircle cx=%22505%22 cy=%22240%22 r=%228%22/%3E%3C/g%3E%3C/svg%3E"); }
.fi-in { background-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 640 480%22%3E%3Cpath fill=%22%23f93%22 d=%22M0 0h640v160H0z%22/%3E%3Cpath fill=%22%23fff%22 d=%22M0 160h640v160H0z%22/%3E%3Cpath fill=%22%23128807%22 d=%22M0 320h640v160H0z%22/%3E%3Ccircle cx=%22320%22 cy=%22240%22 r=%2250%22 fill=%22none%22 stroke=%22%23008%22 stroke-width=%2210%22/%3E%3Ccircle cx=%22320%22 cy=%22240%22 r=%2210%22 fill=%22%23008%22/%3E%3C/svg%3E"); }
* { box-sizing: border-box; }
html, body { margin: 0; }
body {
  background: var(--bg);
  color: var(--text);
  font: 400 17px/1.6 Avenir, "Avenir Next", "Nunito Sans", Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  background-image:
    linear-gradient(var(--line) 1px, transparent 1px),
    linear-gradient(90deg, var(--line) 1px, transparent 1px);
  background-size: 64px 64px;
  background-position: center top;
}
a { color: var(--accent); }

/* Header + menu (shared with the homepage) */
.site-header {
  max-width: 1160px; margin: 0 auto; padding: 28px 16px 0;
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px;
}
.brand { display: flex; align-items: center; gap: 10px; font-weight: 700; font-size: 19px; color: var(--text); text-decoration: none; }
.brand svg { width: 28px; height: 28px; }
.site-header nav { display: flex; flex-wrap: wrap; gap: 4px 18px; font-size: 15px; font-weight: 600; }
.site-header nav a { color: var(--muted); text-decoration: none; padding: 4px 0; border-bottom: 2px solid transparent; }
.site-header nav a:hover { color: var(--text); }
.site-header nav a[aria-current="page"] { color: var(--text); border-bottom-color: var(--highlight); }

/* Page card */
.page {
  max-width: 1160px; margin: 24px auto 0;
  background: var(--surface); border: 1px solid var(--border); border-radius: 6px;
  box-shadow: 0 2px 12px rgba(28, 53, 83, .06);
  padding: 36px 32px;
}
.crumbs { font-size: 14px; color: var(--muted); margin: 0 0 8px; }
.crumbs a { color: var(--muted); }
h1 { font-weight: 700; font-size: clamp(28px, 5vw, 42px); line-height: 1.15; letter-spacing: -.015em; margin: 0 0 20px; }
h1 .fi { border-radius: 3px; box-shadow: 0 0 0 1px var(--border); font-size: .8em; vertical-align: 0; }
h2 { font-size: 22px; line-height: 1.3; margin: 36px 0 8px; }
h3 { font-size: 18px; margin: 0 0 6px; }
.intro { max-width: 760px; }
.intro p { margin: 0 0 14px; }
.hint { color: var(--muted); font-size: 15px; margin: 0 0 12px; }

/* Stat tiles */
.stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; margin: 28px 0 0; }
.stats div { background: var(--highlight-soft); border-radius: 6px; padding: 14px 16px; }
.stats dt { font-size: 13px; color: var(--muted); }
.stats dd { margin: 2px 0 0; font-size: 28px; font-weight: 700; font-variant-numeric: tabular-nums; }

/* Clinics table */
.table-wrap { overflow-x: auto; border: 1px solid var(--border); border-radius: 6px; }
table.clinics { border-collapse: collapse; width: 100%; min-width: 900px; font-size: 15px; }
table.clinics th, table.clinics td { padding: 10px 12px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--line); }
table.clinics thead th { position: sticky; top: 0; background: var(--surface); border-bottom: 1px solid var(--border); white-space: nowrap; }
table.clinics th button {
  font: inherit; font-size: 13px; font-weight: 700; color: var(--muted); background: none; border: 0; padding: 0; cursor: pointer;
  text-transform: uppercase; letter-spacing: .03em;
}
table.clinics th[aria-sort] button { color: var(--text); }
table.clinics th[aria-sort="descending"] button::after { content: " ↓"; }
table.clinics th[aria-sort="ascending"] button::after { content: " ↑"; }
table.clinics td:nth-child(1), table.clinics td:nth-child(4), table.clinics td:nth-child(5),
table.clinics td:nth-child(6) { font-variant-numeric: tabular-nums; white-space: nowrap; }
table.clinics td:nth-child(1) { color: var(--muted); }
table.clinics td:nth-child(2) { min-width: 260px; }
table.clinics td:nth-child(7) { min-width: 170px; }
table.clinics tbody tr:hover { background: var(--bg); }
.addr { display: block; color: var(--muted); font-size: 13px; line-height: 1.4; margin-top: 2px; }
.type { display: inline-block; font-size: 12px; font-weight: 600; padding: 2px 8px; border-radius: 999px; white-space: nowrap;
        background: var(--accent-soft); color: var(--text); }
.type-agent { background: #fdf0d8; color: #7a4b00; }
.type-aesthetics, .type-mostly { background: #efe9f7; color: #4d3b73; }
@media (prefers-color-scheme: dark) {
  .type-agent { background: #3a2d12; color: #f3cf8a; }
  .type-aesthetics, .type-mostly { background: #2d2540; color: #cdbdf0; }
}
a.site { word-break: break-all; }

/* Method + insights */
.method ul, .insights { padding: 0; margin: 0; list-style: none; display: grid; gap: 12px; }
.method li { display: grid; grid-template-columns: 22px 1fr; gap: 10px; }
.method li::before { content: ""; width: 10px; height: 10px; margin-top: 8px; border: 2px solid var(--highlight); border-radius: 50%; }
.insights { counter-reset: tip; margin-top: 24px; gap: 20px; }
.insights li { counter-increment: tip; position: relative; padding-left: 48px; }
.insights li::before {
  content: counter(tip); position: absolute; left: 0; top: 0;
  width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center;
  background: var(--highlight); color: var(--on-highlight); font-weight: 700; font-size: 15px;
}
.insights p { margin: 0; }
.city-links { display: flex; flex-wrap: wrap; gap: 8px; }
.chip { border: 1px solid var(--border); border-radius: 999px; padding: 6px 12px; font-size: 15px; background: var(--bg); text-decoration: none; color: var(--text); }
.chip:hover { border-color: var(--highlight); }

.site-footer { max-width: 1160px; margin: 0 auto; padding: 32px 16px 96px; font-size: 14px; color: var(--muted); }
.site-footer p { margin: 0 0 6px; }

/* Cookie banner (same as homepage) */
.consent {
  position: fixed; left: 16px; right: 16px; bottom: 16px; max-width: 560px; margin: 0 auto;
  background: var(--surface); border: 1px solid var(--border); border-radius: 6px;
  box-shadow: 0 4px 20px rgba(28, 53, 83, .12); padding: 16px 20px; font-size: 15px;
  display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px;
}
.consent[hidden] { display: none; }
.consent p { margin: 0; flex: 1 1 260px; color: var(--muted); }
.consent div { display: flex; gap: 8px; }
.consent button {
  font: inherit; font-weight: 600; font-size: 14px; cursor: pointer; padding: 8px 16px; border-radius: 999px;
  border: 1px solid var(--border); background: transparent; color: var(--text);
}
.consent button.accept { background: var(--highlight); border-color: var(--highlight); color: var(--on-highlight); }

@media (max-width: 640px) {
  .site-header { padding-top: 20px; }
  .page { margin: 16px 8px 0; padding: 24px 16px; }
}

/* Language switcher */
.lang-switch { display: flex; gap: 2px; font-size: 13px; font-weight: 700; }
.lang-switch a { color: var(--muted); text-decoration: none; padding: 3px 7px; border-radius: 999px; border: 1px solid transparent; }
.lang-switch a:hover { color: var(--text); border-color: var(--border); }
.lang-switch a[aria-current="true"] { color: var(--on-highlight); background: var(--highlight); }

/* One-line header: brand · menu · language switcher (far right). */
.site-header { flex-wrap: nowrap; justify-content: flex-start; }
.site-header nav { margin-left: auto; flex-wrap: nowrap; white-space: nowrap; }
.site-header .lang-switch { flex: none; }
.nav-tips .short { display: none; }
.site-header.compact .nav-tips .full { display: none; }
.site-header.compact .nav-tips .short { display: inline; }
/* Still too wide even with the short label: menu moves to its own line below brand + switcher. */
.site-header.stacked { flex-wrap: wrap; }
.site-header.stacked nav { order: 3; width: 100%; margin-left: 0; flex-wrap: wrap; white-space: normal; }
.site-header.stacked .lang-switch { margin-left: auto; }

/* Homepage world map */
.world { margin: 0 0 28px; }
.world h2 {
  font-size: 13px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase;
  color: var(--muted); margin: 0 0 4px;
}
.world .hint { margin: 0 0 16px; font-size: 15px; color: var(--muted); }
.map { position: relative; }
.map svg { display: block; width: 100%; height: auto; }
.map svg path { fill: var(--accent-soft); stroke: var(--surface); stroke-width: .6; }
.pin { position: absolute; width: 0; height: 0; z-index: 1; }
.pin:hover, .pin:focus-within { z-index: 3; }
.pin .dot {
  position: absolute; left: -9px; top: -9px; width: 18px; height: 18px;
  padding: 0; border: 0; background: transparent; cursor: pointer;
}
.pin .dot::before {
  content: ""; position: absolute; inset: 3px; border-radius: 50%;
  background: var(--highlight); box-shadow: 0 0 0 2px var(--surface), 0 0 0 6px color-mix(in srgb, var(--highlight) 18%, transparent);
  transition: transform .15s;
}
.pin:hover .dot::before, .pin:focus-within .dot::before { transform: scale(1.25); }
.pin .dot:focus-visible { outline: 2px solid var(--highlight); outline-offset: 2px; border-radius: 50%; }
.pin .label {
  position: absolute; left: 10px; top: -9px; white-space: nowrap; pointer-events: none;
  font-size: 13px; font-weight: 600; line-height: 18px; color: var(--text);
  text-shadow: 0 0 3px var(--surface), 0 0 3px var(--surface);
}
.pin.left .label { left: auto; right: 10px; }
.pin.below .label { left: 0; top: 8px; transform: translateX(-50%); }
.pin .tip {
  position: absolute; left: 0; bottom: 6px; transform: translateX(-50%);
  padding-bottom: 8px; visibility: hidden; opacity: 0; transition: opacity .12s;
}
.pin .tip strong, .pin .tip a { display: block; white-space: nowrap; }
.pin .tip strong {
  background: var(--surface); border: 1px solid var(--border); border-bottom: 0; border-radius: 6px 6px 0 0;
  padding: 8px 14px 2px; font-size: 14px;
}
.pin .tip strong .fi { margin-left: 4px; border-radius: 2px; box-shadow: 0 0 0 1px var(--border); }
.pin .tip a {
  background: var(--surface); border: 1px solid var(--border); border-top: 0; border-radius: 0 0 6px 6px;
  padding: 0 14px 8px; font-size: 18px; font-weight: 700; color: var(--highlight); text-decoration: none;
  box-shadow: 0 6px 14px rgba(28, 53, 83, .12);
}
.pin .tip a:hover { text-decoration: underline; }
.pin:hover .tip, .pin:focus-within .tip { visibility: visible; opacity: 1; }
@media (max-width: 600px) {
  .pin .label { display: none; }
}
.map-list { display: none; margin: 12px 0 0; font-size: 15px; }
@media (max-width: 600px) {
  .map-list { display: block; }
}

/* Privacy policy */
.prose { max-width: 820px; }
.prose h2 { font-size: 20px; margin: 28px 0 8px; }
.prose p { margin: 0 0 12px; }
.prose .intro { font-size: 18px; color: var(--muted); }
.cookie-reset {
  font: inherit; font-size: 15px; font-weight: 600; cursor: pointer;
  margin-top: 16px; padding: 10px 18px; border-radius: 999px;
  border: 1px solid var(--highlight); background: transparent; color: var(--highlight);
}
.cookie-reset:hover { background: var(--highlight); color: var(--on-highlight); }

/* Cost calculator */
.calc .step { margin: 28px 0 0; }
.calc .step h2 { font-size: 20px; margin: 0 0 8px; }
.calc .fields { display: flex; flex-wrap: wrap; gap: 16px; }
.calc .fields label { display: flex; flex-direction: column; gap: 6px; font-size: 14px; font-weight: 600; color: var(--muted); }
.calc select, .calc input[type="email"], .calc input[type="text"] {
  font: inherit; font-size: 16px; font-weight: 400; color: var(--text);
  padding: 9px 12px; border: 1px solid var(--border); border-radius: 6px; background: var(--bg); min-width: 220px;
}
.calc select:focus-visible, .calc input:focus-visible { outline: 2px solid var(--highlight); outline-offset: 1px; }
.calc .fields select, .calc .fields input { width: 100%; height: 44px; line-height: 1.2; }
.calc .fields label { flex: 1 1 220px; max-width: 280px; }
.calc .fields input::placeholder { color: var(--muted); opacity: .8; }
.stages { display: grid; grid-template-columns: repeat(auto-fit, minmax(132px, 1fr)); gap: 10px; }
.stage { position: relative; display: block; cursor: pointer; }
.stage input { position: absolute; opacity: 0; width: 0; height: 0; }
.stage .pic {
  display: block; border: 1px solid var(--border); border-radius: 6px; padding: 8px; background: var(--bg);
}
.stage:hover .pic { border-color: var(--highlight); }
.stage input:checked + .pic { border-color: var(--highlight); box-shadow: 0 0 0 2px var(--highlight); }
.stage input:focus-visible + .pic { outline: 2px solid var(--highlight); outline-offset: 2px; }
.head { display: block; width: 100%; height: auto; }
.head .hair { fill: var(--text); }
.head .bald { fill: var(--accent-soft); }
.head .skin { fill: var(--accent-soft); }
.head .outline { fill: none; stroke: var(--border); stroke-width: 1.5; }
.stage .cap { display: block; margin-top: 6px; font-size: 13px; line-height: 1.35; }
.stage .cap .sub { display: block; color: var(--muted); }
.calc td.total { white-space: nowrap; }
.calc .muted { color: var(--muted); }
.note-box {
  margin: 16px 0 0; padding: 12px 16px; font-size: 14px; color: var(--muted);
  background: var(--accent-soft); border-radius: 6px;
}
.warn { margin: 16px 0 0; padding: 14px 18px; border-left: 3px solid var(--highlight); background: var(--highlight-soft); border-radius: 4px; }
.warn h3 { margin: 0 0 4px; font-size: 16px; }
.warn p { margin: 0; }
.lead { border-top: 1px solid var(--border); padding-top: 24px; }
.lead form { display: grid; gap: 12px; max-width: 560px; }
.lead form[hidden], .calc [hidden] { display: none; }   /* the hidden attribute must beat display:grid/flex */
.email-label { display: flex; flex-direction: column; gap: 6px; font-size: 14px; font-weight: 600; color: var(--muted); }
.check { display: grid; grid-template-columns: 20px 1fr; gap: 8px; font-size: 14px; color: var(--muted); align-items: start; }
.check input { margin-top: 3px; }
.form-error { margin: 0; color: #b3261e; font-size: 14px; font-weight: 600; }
@media (prefers-color-scheme: dark) { .form-error { color: #ff9a8f; } }
.submit {
  font: inherit; font-weight: 700; font-size: 16px; cursor: pointer; justify-self: start;
  padding: 11px 22px; border-radius: 999px; border: 1px solid var(--highlight);
  background: var(--highlight); color: var(--on-highlight);
}
.submit[disabled] { opacity: .6; cursor: default; }
.sent h3 { margin: 0 0 6px; }

/* Calculator banner under the homepage map */
.calc-banner {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px;
  margin: 20px 0 0; padding: 18px 24px; text-decoration: none; color: var(--on-highlight);
  background: linear-gradient(105deg, var(--highlight), color-mix(in srgb, var(--highlight) 70%, var(--text)));
  border-radius: 8px; box-shadow: 0 2px 12px rgba(28, 53, 83, .12);
}
.calc-banner:hover { filter: brightness(1.08); }
.calc-banner:focus-visible { outline: 2px solid var(--text); outline-offset: 2px; }
.calc-banner-text { display: grid; gap: 2px; }
.calc-banner-text strong { font-size: 19px; }
.calc-banner-text span { font-size: 15px; opacity: .85; }
.calc-banner-cta {
  flex: none; font-weight: 700; font-size: 15px; padding: 9px 18px; border-radius: 999px;
  border: 1px solid var(--on-highlight);
}
.nav-calc { font-weight: 700; }
@media (max-width: 520px) {
  .calc-banner { padding: 16px 18px; }
  .calc-banner-cta { width: 100%; text-align: center; }
}

/* Calculator: the question before the numbers */
.gate { border-top: 1px solid var(--border); padding-top: 24px; }
.gate form { display: grid; gap: 12px; max-width: 620px; }
.gate form[hidden] { display: none; }
.gate-buttons { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.decline {
  font: inherit; font-size: 15px; font-weight: 600; cursor: pointer;
  padding: 10px 18px; border-radius: 999px; border: 1px solid var(--border);
  background: transparent; color: var(--muted);
}
.decline:hover { border-color: var(--highlight); color: var(--text); }
.decline[disabled], .submit[disabled] { opacity: .6; cursor: default; }
.consent-note { margin: 0; font-size: 13px; color: var(--muted); max-width: 620px; }
.done-note { margin: 0 0 12px; font-weight: 600; color: var(--highlight); }
.done-note:empty { display: none; }
.calc-banner-en {
  display: inline-block; margin-left: 8px; padding: 1px 6px; border-radius: 4px;
  font-size: 11px; font-weight: 700; letter-spacing: .04em; vertical-align: 2px;
  border: 1px solid var(--on-highlight); opacity: .85;
}

/* "Checked by hand" line: prominent above the city list, quiet in the footer */
.checked-note {
  display: flex; gap: 10px; align-items: flex-start;
  margin: 0 0 24px; padding: 12px 16px; font-size: 15px;
  background: var(--highlight-soft); border-radius: 6px;
}
.checked-note::before {
  content: "✓"; flex: none; font-weight: 700; color: var(--highlight);
}
.site-footer .checked { margin: 0 0 6px; }

/* Footer: hand the reader's question to an AI assistant */
.ask-ai {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 20px;
  margin: 0 0 18px; padding: 16px 20px; background: var(--soft-panel, var(--accent-soft)); border-radius: 8px;
}
.ask-ai p { margin: 0; font-size: 15px; }
.ask-ai p span { color: var(--muted); }
.ask-ai-links { display: flex; flex-wrap: wrap; gap: 8px; }
.ask-ai-links a {
  text-decoration: none; font-size: 14px; font-weight: 600; white-space: nowrap;
  padding: 7px 14px; border-radius: 999px; border: 1px solid var(--border);
  background: var(--surface); color: var(--text);
}
.ask-ai-links a:hover { border-color: var(--highlight); color: var(--highlight); }

/* Clinic row: site icon next to the name */
.clinic { display: grid; grid-template-columns: 22px 1fr; gap: 10px; align-items: start; }
.clinic-text { display: block; }
.logo { width: 22px; height: 22px; border-radius: 4px; margin-top: 2px; object-fit: contain; background: var(--bg); }
.logo-blank {
  display: grid; place-items: center; font-size: 12px; font-weight: 700;
  color: var(--muted); background: var(--accent-soft);
}

/* Clinic pages */
a.clinic-link { color: inherit; text-decoration: underline; text-decoration-color: var(--border); text-underline-offset: 3px; }
a.clinic-link:hover { text-decoration-color: currentColor; }
.clinic-page .intro .type { vertical-align: 1px; }
.facts { display: grid; grid-template-columns: max-content 1fr; gap: 8px 20px; margin: 20px 0 0; max-width: 760px; }
.facts dt { color: var(--muted); font-size: 15px; }
.facts dd { margin: 0; overflow-wrap: anywhere; }
.facts .hint { font-size: 13px; }
.age p, .next p { max-width: 760px; }
.news-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 14px; max-width: 820px; }
.news-list li { display: grid; grid-template-columns: 150px 120px 1fr; gap: 4px 14px; align-items: baseline;
                padding-bottom: 14px; border-bottom: 1px solid var(--line); }
.news-list time { color: var(--muted); font-size: 14px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.news-list p { margin: 0; }
.news-kind { justify-self: start; font-size: 12px; font-weight: 600; padding: 2px 8px; border-radius: 999px; white-space: nowrap;
             background: var(--accent-soft); color: var(--text); }
.news-press, .news-sponsored { background: #fdf0d8; color: #7a4b00; }
.news-media { background: #dff3e6; color: #1f5a35; }
@media (prefers-color-scheme: dark) {
  .news-press, .news-sponsored { background: #3a2d12; color: #f3cf8a; }
  .news-media { background: #173a26; color: #a6e3bd; }
}
@media (max-width: 640px) {
  .facts { grid-template-columns: 1fr; gap: 2px; }
  .facts dd { margin-bottom: 10px; }
  .news-list li { grid-template-columns: auto 1fr; }
  .news-list p { grid-column: 1 / -1; }
}
