/* clinicasfertilidad.mx — design system v2 (premium / warm).
   Deep evergreen + warm ivory + berry accent. Self-hosted Lora
   (display, calm serif) + Hanken Grotesk (body). Single accent lock; one radius rule
   (panels 16, buttons/inputs 12, chips/pills full). Motion is restrained and
   fully collapses under prefers-reduced-motion. Class contract unchanged. */

/* ---- Self-hosted fonts ---------------------------------------------- */
@font-face{font-family:"Lora";font-style:normal;font-weight:600;font-display:swap;src:url("/fonts/lora-600-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Lora";font-style:normal;font-weight:600;font-display:swap;src:url("/fonts/lora-600-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Lora";font-style:normal;font-weight:700;font-display:swap;src:url("/fonts/lora-700-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Lora";font-style:normal;font-weight:700;font-display:swap;src:url("/fonts/lora-700-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Hanken Grotesk";font-style:normal;font-weight:400;font-display:swap;src:url("/fonts/hanken-400-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Hanken Grotesk";font-style:normal;font-weight:400;font-display:swap;src:url("/fonts/hanken-400-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Hanken Grotesk";font-style:normal;font-weight:500;font-display:swap;src:url("/fonts/hanken-500-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Hanken Grotesk";font-style:normal;font-weight:500;font-display:swap;src:url("/fonts/hanken-500-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Hanken Grotesk";font-style:normal;font-weight:700;font-display:swap;src:url("/fonts/hanken-700-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Hanken Grotesk";font-style:normal;font-weight:700;font-display:swap;src:url("/fonts/hanken-700-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

/* ---- Tokens --------------------------------------------------------- */
:root{
  /* warm ivory + deep evergreen + berry. NOT the beige/brass premium cliché. */
  --paper:#f4f3ec;
  --paper-2:#efeee4;
  --surface:#fffefb;
  --ink:#16241f;
  --ink-soft:#3f564d;
  --ink-mute:#5c6e64;        /* ~4.9:1 on paper */
  --line:#e5e2d6;
  --line-strong:#d2cebf;
  --primary:#14483b;          /* deep evergreen */
  --primary-dark:#0e342a;
  --primary-tint:#e2ede7;
  --primary-deep:#0b241d;     /* footer / dark ground */
  --accent:#9a2f57;           /* berry — prices, CTA (~5.6:1 on paper) */
  --accent-dark:#7d2545;
  --accent-tint:#f6e6ec;
  --focus:#1f9d84;

  --font-display:"Lora",Georgia,"Times New Roman",serif;
  --font-body:"Hanken Grotesk",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;

  --text-xs:0.8rem; --text-sm:0.9rem; --text-base:1.03rem; --text-lg:1.2rem;
  --text-xl:1.45rem; --text-2xl:1.95rem; --text-3xl:2.6rem; --text-4xl:3.6rem; --text-5xl:4.6rem;
  --lh-body:1.62; --lh-tight:1.06;

  --space-2xs:.25rem; --space-xs:.5rem; --space-sm:1rem; --space-md:1.5rem;
  --space-lg:2.5rem; --space-xl:4rem; --space-2xl:6.5rem; --space-3xl:9rem;

  --wrap:72rem; --wrap-narrow:44rem;
  --radius:16px; --radius-sm:12px; --radius-pill:999px;
  --shadow-sm:0 1px 2px rgba(14,52,42,.05), 0 2px 8px rgba(14,52,42,.05);
  --shadow:0 4px 12px rgba(14,52,42,.06), 0 18px 44px rgba(14,52,42,.09);
  --ease:cubic-bezier(.2,.7,.2,1);
}

/* ---- Reset / base --------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;font-family:var(--font-body);font-size:var(--text-base);
  line-height:var(--lh-body);color:var(--ink);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
h1,h2,h3,h4{font-family:var(--font-display);line-height:var(--lh-tight);font-weight:700;margin:0 0 var(--space-sm);color:var(--ink);letter-spacing:0}
h1{font-size:var(--text-3xl)}
h2{font-size:var(--text-2xl)}
h3{font-size:var(--text-lg);font-weight:600;letter-spacing:0}
p{margin:0 0 var(--space-sm)}
a{color:var(--primary);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;transition:color .15s var(--ease)}
a:hover{color:var(--accent)}
strong{font-weight:700}
img{max-width:100%;height:auto}
ul,ol{margin:0 0 var(--space-sm);padding-left:1.25em}
li{margin-bottom:var(--space-2xs)}
::selection{background:var(--primary-tint)}

.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--space-md)}
.skip{position:absolute;left:-9999px;top:0;background:var(--primary);color:#fff;padding:var(--space-xs) var(--space-sm);z-index:100;border-radius:0 0 var(--radius-sm) 0}
.skip:focus{left:0;top:0}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:4px}
.muted{color:var(--ink-mute)}
.small{font-size:var(--text-sm)}

/* ---- Header --------------------------------------------------------- */
.site-header{background:color-mix(in srgb,var(--paper) 82%,transparent);backdrop-filter:saturate(140%) blur(8px);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:40}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);padding-block:.85rem;flex-wrap:wrap}
.brand{display:inline-flex;align-items:center;gap:.6rem;font-family:var(--font-display);font-weight:700;font-size:var(--text-lg);color:var(--ink);text-decoration:none}
.brand-mark{display:inline-grid;place-items:center;width:1.9em;height:1.9em;background:linear-gradient(150deg,var(--primary),var(--primary-dark));color:#fff;border-radius:10px;font-size:.7em;box-shadow:var(--shadow-sm)}
.site-nav{display:flex;align-items:center;gap:1.6rem;flex-wrap:wrap;font-size:var(--text-sm);font-weight:500}
.site-nav a{color:var(--ink-soft);text-decoration:none;padding-block:.2rem;position:relative}
.site-nav a:not(.lang)::after{content:"";position:absolute;left:0;right:100%;bottom:-2px;height:2px;background:var(--accent);transition:right .25s var(--ease)}
.site-nav a:not(.lang):hover{color:var(--ink)}
.site-nav a:not(.lang):hover::after,.site-nav a.active::after{right:0}
.site-nav a.active{color:var(--ink)}
.site-nav a.lang{color:var(--primary-dark);border:1px solid var(--line-strong);border-radius:var(--radius-pill);padding:.32rem .9rem;text-decoration:none}
.site-nav a.lang:hover{border-color:var(--primary);background:var(--primary-tint);color:var(--primary-dark)}

/* ---- Breadcrumb ----------------------------------------------------- */
.breadcrumb{font-size:var(--text-sm);color:var(--ink-mute);padding-block:var(--space-md) 0}
.breadcrumb a{color:var(--ink-mute);text-decoration:none}
.breadcrumb a:hover{color:var(--accent)}
.breadcrumb .sep{margin-inline:.55rem;color:var(--line-strong)}
.breadcrumb [aria-current]{color:var(--ink-soft)}

/* ---- Hero ----------------------------------------------------------- */
.hero{position:relative;padding-block:var(--space-2xl) var(--space-xl);overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;
  background:
    radial-gradient(120% 90% at 88% -10%,var(--primary-tint) 0%,transparent 55%),
    radial-gradient(90% 80% at 6% 0%,var(--accent-tint) 0%,transparent 45%)}
.hero h1{font-size:clamp(2.6rem,6vw,var(--text-5xl));max-width:16ch;font-weight:700}
.hero .lede{font-size:var(--text-xl);color:var(--ink-soft);max-width:52ch;margin-top:var(--space-md);line-height:1.42}
.hero-stats{display:flex;flex-wrap:wrap;gap:var(--space-lg) var(--space-2xl);margin-top:var(--space-xl)}
.hero-stats .stat b{display:block;font-family:var(--font-display);font-size:var(--text-4xl);font-weight:700;color:var(--primary);line-height:.95;font-variant-numeric:tabular-nums}
.hero-stats .stat span{font-size:var(--text-sm);color:var(--ink-mute);letter-spacing:.01em}
.hero .btn{margin-top:var(--space-xl)}

/* ---- Sections ------------------------------------------------------- */
.section-pad{padding-block:var(--space-xl)}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:var(--space-lg);margin-bottom:var(--space-md);box-shadow:var(--shadow-sm)}
.panel>h2{font-size:var(--text-xl);margin-bottom:var(--space-md)}
.panel-plain{background:none;border:none;box-shadow:none;padding:0;margin-bottom:var(--space-2xl)}
.panel-plain>h2{font-size:var(--text-2xl);margin-bottom:var(--space-lg)}

/* ---- Buttons -------------------------------------------------------- */
.btn{display:inline-flex;align-items:center;gap:.4rem;background:var(--accent);color:#fff;text-decoration:none;font-weight:600;font-size:var(--text-base);padding:.8rem 1.5rem;border-radius:var(--radius-sm);border:1px solid var(--accent);box-shadow:var(--shadow-sm);transition:transform .15s var(--ease),background .15s var(--ease),box-shadow .15s var(--ease)}
.btn:hover{background:var(--accent-dark);border-color:var(--accent-dark);color:#fff;transform:translateY(-1px);box-shadow:var(--shadow)}
.btn:active{transform:translateY(0)}
.btn-ghost{background:var(--surface);color:var(--primary-dark);border-color:var(--line-strong);box-shadow:none}
.btn-ghost:hover{background:var(--primary-tint);border-color:var(--primary);color:var(--primary-dark)}

/* ---- Clinic cards --------------------------------------------------- */
.clinic-grid{display:grid;grid-template-columns:1fr;gap:var(--space-md)}
.clinic-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);transition:transform .18s var(--ease),box-shadow .18s var(--ease),border-color .18s var(--ease)}
.clinic-card:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:var(--line-strong)}
.card-link{display:block;padding:var(--space-md) var(--space-md) 1.15rem;text-decoration:none;color:inherit;height:100%}
.clinic-card h3{font-size:var(--text-lg);margin-bottom:.2rem;color:var(--ink)}
.card-meta{font-size:var(--text-sm);color:var(--ink-mute);margin-bottom:.6rem}
.card-price{font-size:var(--text-sm);color:var(--ink-soft);margin-bottom:.7rem}
.card-price strong{color:var(--accent);font-weight:700}
.chips{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.7rem}
.chip{font-size:var(--text-xs);font-weight:500;background:var(--primary-tint);color:var(--primary-dark);padding:.2rem .6rem;border-radius:var(--radius-pill);white-space:nowrap}
.chip-more{background:var(--paper-2);color:var(--ink-mute)}
.card-cta{display:inline-block;margin-top:.7rem;font-size:var(--text-sm);font-weight:600;color:var(--accent)}
.clinic-card:has(.card-link:hover) .card-cta{text-decoration:underline}
.clinic-card-plain{opacity:.85}
.clinic-card-plain .card-link{cursor:default}

/* ---- Ratings (third-party aggregate, unbranded) --------------------- */
.rating{font-size:var(--text-sm);color:var(--ink-soft);font-weight:600;white-space:nowrap}
.rating .star,.badge-rating .star{color:#c8891f}
.card-rating{margin:.1rem 0 .45rem}
.badge-rating{background:#fbf1dd;color:var(--ink-soft);border-color:transparent}

/* ---- Detailed clinic listing (city pages) --------------------------- */
.listing-grid{display:grid;grid-template-columns:1fr;gap:var(--space-md)}
.clinic-listing{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:var(--space-md);transition:box-shadow .18s var(--ease),border-color .18s var(--ease)}
.clinic-listing:hover{box-shadow:var(--shadow);border-color:var(--line-strong)}
.listing-top{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-sm);flex-wrap:wrap}
.clinic-listing h3{font-size:var(--text-lg);margin:0}
.clinic-listing h3 a{color:var(--ink);text-decoration:none}
.clinic-listing h3 a:hover{color:var(--accent)}
.listing-desc{color:var(--ink-soft);font-size:var(--text-sm);margin:.4rem 0 .55rem}
.listing-actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-top:.85rem}
.btn-sm{display:inline-flex;align-items:center;font-size:var(--text-sm);font-weight:600;padding:.42rem .95rem;border-radius:var(--radius-pill);text-decoration:none;background:var(--primary);color:#fff;border:1px solid var(--primary)}
.btn-sm:hover{background:var(--primary-dark);color:#fff}
.btn-sm-ghost{background:var(--surface);color:var(--primary-dark);border-color:var(--line-strong)}
.btn-sm-ghost:hover{background:var(--primary-tint);color:var(--primary-dark)}
.listing-more{font-size:var(--text-sm);font-weight:600;color:var(--accent);text-decoration:none;margin-left:auto}
.listing-more:hover{text-decoration:underline}
@media (min-width:52rem){.listing-grid{grid-template-columns:repeat(2,1fr)}}

/* ---- Tables (price / comparison) ------------------------------------ */
.table-scroll{overflow-x:auto;border-radius:var(--radius-sm);border:1px solid var(--line)}
table.data{width:100%;border-collapse:collapse;font-size:var(--text-sm);background:var(--surface)}
table.data th,table.data td{text-align:left;padding:.85rem 1rem;vertical-align:top}
table.data thead th{font-family:var(--font-body);font-weight:600;color:var(--ink-soft);background:var(--paper-2);border-bottom:1px solid var(--line-strong);position:sticky;top:0}
table.data tbody tr+tr td{border-top:1px solid var(--line)}
table.data td.num,table.data th.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
table.data .price-main{font-weight:700;color:var(--accent);font-size:var(--text-base)}
table.data tbody tr:hover td{background:color-mix(in srgb,var(--primary-tint) 40%,transparent)}

/* ---- Source notes --------------------------------------------------- */
.src{font-size:var(--text-xs);color:var(--ink-mute)}
.src a{color:var(--ink-mute);text-decoration:underline;text-underline-offset:2px}
.src a:hover{color:var(--accent)}

/* ---- Profile -------------------------------------------------------- */
.profile-head{padding-block:var(--space-lg) var(--space-md)}
.profile-head h1{margin-bottom:.3rem;font-size:clamp(2rem,4vw,var(--text-3xl))}
.profile-badges{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:var(--space-sm)}
.badge{font-size:var(--text-xs);font-weight:600;padding:.28rem .7rem;border-radius:var(--radius-pill);border:1px solid var(--line-strong);color:var(--ink-soft)}
.badge-redlara{background:var(--primary-tint);color:var(--primary-dark);border-color:transparent}
.badge-cofepris{background:var(--accent-tint);color:var(--accent-dark);border-color:transparent}
.profile-grid{display:grid;grid-template-columns:1fr;gap:var(--space-md)}
.profile-main .panel:first-child{margin-top:0}
.doctor-list{list-style:none;padding:0;margin:0}
.doctor-list li{padding:.7rem 0;border-bottom:1px solid var(--line)}
.doctor-list li:last-child{border-bottom:none}
.doctor-list .role{color:var(--ink-mute);font-size:var(--text-sm)}
.sibling-list{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.4rem .9rem;margin:0}
.sibling-list a{color:var(--ink-soft);text-decoration:none}
.sibling-list a:hover{color:var(--accent)}
.kv{display:grid;grid-template-columns:max-content 1fr;gap:.5rem var(--space-md);font-size:var(--text-sm)}
.kv dt{color:var(--ink-mute)}
.kv dd{margin:0}
.note-box{background:var(--primary-tint);border-radius:var(--radius-sm);padding:.85rem 1.15rem;font-size:var(--text-sm);color:var(--primary-dark);border:1px solid color-mix(in srgb,var(--primary) 12%,transparent)}
.profile-aside .note-box{margin-top:var(--space-md)}

/* ---- City grid ------------------------------------------------------ */
.city-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));gap:var(--space-sm)}
.city-tile{display:flex;justify-content:space-between;align-items:center;gap:var(--space-sm);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);padding:.95rem 1.2rem;text-decoration:none;color:var(--ink);font-weight:600;box-shadow:var(--shadow-sm);transition:transform .15s var(--ease),border-color .15s var(--ease),background .15s var(--ease)}
.city-tile:hover{border-color:var(--primary);background:var(--primary-tint);color:var(--primary-dark);transform:translateY(-2px)}
.city-tile .count{color:var(--ink-mute);font-weight:600;font-size:var(--text-sm);font-variant-numeric:tabular-nums}

/* ---- Filters -------------------------------------------------------- */
.filters{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:var(--space-lg)}
.filters .fbtn{font-size:var(--text-sm);font-weight:500;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-pill);padding:.4rem 1rem;color:var(--ink-soft);cursor:pointer;text-decoration:none;transition:all .15s var(--ease)}
.filters .fbtn:hover,.filters .fbtn.active{background:var(--primary);color:#fff;border-color:var(--primary)}

/* ---- Prose ---------------------------------------------------------- */
.prose{max-width:var(--wrap-narrow);margin-inline:auto;padding-block:var(--space-lg) var(--space-2xl)}
.prose h1{font-size:clamp(2.2rem,5vw,var(--text-4xl));margin-bottom:var(--space-md)}
.prose h2{font-size:var(--text-2xl);margin-top:var(--space-xl)}
.prose h3{font-size:var(--text-lg);margin-top:var(--space-lg)}
.prose p,.prose li{color:var(--ink);font-size:1.06rem}
.prose .lede{font-size:var(--text-xl);color:var(--ink-soft);line-height:1.45}
.prose a{font-weight:500}
.prose table.data{margin-block:var(--space-md)}
.prose .note-box{margin-block:var(--space-md)}
.toc{background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--primary);border-radius:var(--radius-sm);padding:1.1rem 1.3rem;font-size:var(--text-sm);box-shadow:var(--shadow-sm)}
.toc ul{list-style:none;padding:0;margin:.4rem 0 0;columns:2;gap:var(--space-md)}
.toc a{text-decoration:none;color:var(--ink-soft)}
.toc a:hover{color:var(--accent)}

/* ---- FAQ ------------------------------------------------------------ */
/* ---- Byline + author box (E-E-A-T) ---------------------------------- */
.byline{font-size:var(--text-sm);color:var(--ink-mute);margin:-.2rem 0 var(--space-lg)}
.byline a{color:var(--ink-soft);text-decoration:none;font-weight:600}
.byline a:hover{color:var(--accent)}
.author-box{margin-top:var(--space-xl);padding:var(--space-md);background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--primary);border-radius:var(--radius-sm)}
.author-box .author-name{font-family:var(--font-display);font-weight:700;margin:0 0 .3rem}
.author-box .author-name span{font-family:var(--font-body);font-weight:400;color:var(--ink-mute);font-size:var(--text-sm)}
.author-box p{margin:0;font-size:var(--text-sm);color:var(--ink-soft)}

.faq details{border-bottom:1px solid var(--line);padding:var(--space-sm) 0}
.faq summary{font-family:var(--font-display);font-weight:600;cursor:pointer;color:var(--ink);list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{content:"+";display:inline-block;width:1.2em;color:var(--accent);font-weight:700}
.faq details[open] summary::before{content:"–"}
.faq details[open] summary{color:var(--primary-dark)}
.faq details p{margin:.6rem 0 0 1.2em;color:var(--ink-soft)}
.jumpnav{display:flex;flex-wrap:wrap;gap:1.2rem;padding:.6rem 0;border-bottom:1px solid var(--line);margin-bottom:var(--space-md);font-size:var(--text-sm)}
.jumpnav a{color:var(--ink-soft);text-decoration:none;font-weight:600}
.jumpnav a:hover{color:var(--accent)}
.city-blocks ul{margin:.4rem 0 .8rem 1.1rem}.city-blocks li{margin:.3rem 0}
.related-cities{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.8rem}
.rc-card{display:flex;flex-direction:column;gap:.15rem;padding:.8rem 1rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);text-decoration:none;color:inherit}
.rc-card:hover{border-color:var(--line-strong);box-shadow:var(--shadow-sm)}
.rc-name{font-weight:600;color:var(--ink)}.rc-count{font-size:var(--text-sm);color:var(--ink-mute)}
@media (prefers-color-scheme: dark){.rc-card{background:var(--surface)}}

/* ---- Footer --------------------------------------------------------- */
.site-footer{background:var(--primary-deep);color:#c6d6cf;margin-top:var(--space-3xl);padding-block:var(--space-xl);font-size:var(--text-sm)}
.site-footer a{color:#fff}
.foot-links{font-family:var(--font-display);font-weight:600;font-size:var(--text-base);margin-bottom:var(--space-sm)}
.foot-links a{text-decoration:none}
.foot-links a:hover{text-decoration:underline;text-decoration-color:var(--accent)}
.foot-independent{color:#9fb4ac}
.site-footer .disclaimer{color:#88a096;font-size:var(--text-xs);max-width:64ch;border-top:1px solid rgba(255,255,255,.1);padding-top:var(--space-md);margin-top:var(--space-md)}
.foot-brand{color:#6f887e;font-size:var(--text-xs)}

/* ---- Entry motion (restrained; off under reduced-motion) ------------ */
@media (prefers-reduced-motion:no-preference){
  main>*{animation:rise .5s var(--ease) both}
  @keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
}

/* ---- Responsive ----------------------------------------------------- */
@media (min-width:40rem){
  .clinic-grid{grid-template-columns:repeat(2,1fr)}
  .profile-grid{grid-template-columns:2fr 1fr;align-items:start}
  .profile-grid .profile-aside{position:sticky;top:5.5rem}
}
@media (min-width:62rem){
  .clinic-grid{grid-template-columns:repeat(3,1fr)}
}
