/* Standardized clinic directory and profile presentation. */
.clinic-index,
.clinic-page {
  width:var(--page-width);
  margin-inline:auto;
}
.clinic-kicker {
  margin:0 0 .75rem;
  color:var(--jade);
  font-size:.76rem;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.clinic-index-hero {
  max-width:820px;
  padding:0 0 var(--page-intro-gap);
}
.clinic-index-hero h1,
.clinic-hero h1 {
  margin:.1rem 0 1rem;
  font:500 clamp(2.8rem,6.5vw,5.8rem)/.98 Georgia,serif;
  letter-spacing:-.05em;
}
.clinic-index-hero>p:not(.clinic-kicker) {
  max-width:700px;
  margin:0 0 1.8rem;
  color:#3d514c;
  font-size:clamp(1.1rem,2vw,1.4rem);
}
.clinic-directory {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(1rem,2.5vw,2rem);
  padding-bottom:clamp(4rem,8vw,7rem);
}
.clinic-card--text {
  min-height:100%;
  background:linear-gradient(145deg,#f8f5ed 0%,#fffdf8 58%,#e8eee9 100%);
  border-top:5px solid var(--jade);
}
.clinic-card--text .clinic-card-body { padding-top:clamp(2rem,5vw,3.4rem); }
.clinic-card {
  display:flex;
  min-width:0;
  flex-direction:column;
  overflow:hidden;
  background:var(--card);
  border:1px solid var(--line);
  border-radius:1.4rem;
  box-shadow:0 18px 50px rgba(23,53,47,.07);
}
.clinic-card-media {
  display:block;
  overflow:hidden;
  background:#dfe5df;
  aspect-ratio:16/10;
}
.clinic-card-media img {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 58%;
  transition:transform .3s ease;
}
.clinic-card-media:focus-visible img,
.clinic-card-media:hover img { transform:scale(1.025); }
.clinic-card-body {
  display:flex;
  flex:1;
  flex-direction:column;
  padding:clamp(1.4rem,3vw,2.2rem);
}
.clinic-card-meta {
  margin:0 0 .65rem;
  color:var(--muted);
  font-size:.82rem;
  font-weight:750;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.clinic-card h2 {
  margin:0 0 .8rem;
  font:500 clamp(1.65rem,3vw,2.35rem)/1.12 Georgia,serif;
}
.clinic-card h2 a { color:var(--ink); text-decoration:none; }
.clinic-card h2 a:hover { color:var(--jade); }
.clinic-card-body>p:not(.clinic-card-meta) { margin:0 0 1.4rem; color:#455a55; }
.clinic-card-action { margin-top:auto; font-weight:780; }
.clinic-index-next,
.clinic-next {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(280px,.75fr);
  gap:clamp(1.5rem,5vw,5rem);
  align-items:end;
  padding:clamp(2rem,5vw,4rem);
  color:#fff;
  background:var(--jade-dark);
  border-radius:1.4rem 1.4rem 1.4rem .25rem;
}
.clinic-index-next h2,
.clinic-next h2,
.clinic-section-heading h2,
.clinic-about h2,
.clinic-materials h2 {
  margin:.1rem 0;
  font:500 clamp(2rem,4.2vw,3.7rem)/1.06 Georgia,serif;
  letter-spacing:-.035em;
}
.clinic-index-next .clinic-kicker,
.clinic-next .clinic-kicker { color:#efc77c; }
.clinic-index-next>p,
.clinic-next>p { margin:0; color:#d7e7e1; font-size:1.05rem; }
.clinic-index>.capture,
.clinic-page>.capture { margin-block:clamp(3rem,6vw,5rem); }
.price-table .price-group th { background:var(--cream); color:var(--jade-dark); font-size:.82rem; letter-spacing:.05em; text-transform:uppercase; }

.clinic-hero {
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(360px,.8fr);
  gap:clamp(2rem,6vw,6rem);
  align-items:center;
  padding:0 0 var(--page-intro-gap);
}
.clinic-hero--text { grid-template-columns:minmax(0,800px); }
.clinic-local-name { margin:-.35rem 0 1.2rem; color:var(--muted); font-size:1.05rem; }
.clinic-hero-lead { max-width:670px; color:#3d514c; font-size:clamp(1.08rem,1.7vw,1.32rem); }
.clinic-hero-actions { display:flex; flex-wrap:wrap; gap:.75rem; margin-top:1.8rem; }
.clinic-hero-media {
  margin:0;
  overflow:hidden;
  aspect-ratio:4/5;
  background:#dfe5df;
  border-radius:1.6rem 1.6rem 1.6rem .3rem;
  box-shadow:0 24px 70px rgba(16,64,54,.16);
}
.clinic-hero-media img { width:100%; height:100%; object-fit:cover; object-position:center 55%; }
.clinic-about {
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);
  gap:clamp(2rem,7vw,7rem);
  padding:clamp(4rem,8vw,7rem) 0;
  border-top:1px solid var(--line);
}
.clinic-narrative { max-width:720px; }
.clinic-narrative>p { color:#3d514c; font-size:1.05rem; }
.clinic-facts dl { margin:0; }
.clinic-facts dl>div { padding:1rem 0; border-top:1px solid var(--line); }
.clinic-facts dt { color:var(--muted); font-size:.78rem; font-weight:780; letter-spacing:.08em; text-transform:uppercase; }
.clinic-facts dd { margin:.3rem 0 0; overflow-wrap:anywhere; }
.clinic-legal { padding:1rem 0; background:transparent; border:0; border-top:1px solid var(--line); border-radius:0; }
.clinic-legal summary { color:var(--jade); }
.clinic-legal p { margin:.75rem 0 0; font-size:.9rem; overflow-wrap:anywhere; }
.clinic-support,
.clinic-doctors,
.clinic-prices,
.clinic-materials { padding:clamp(4rem,8vw,7rem) 0; border-top:1px solid var(--line); }
.clinic-section-heading {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(280px,.7fr);
  gap:clamp(1.5rem,5vw,5rem);
  align-items:end;
  margin-bottom:clamp(2rem,5vw,4rem);
}
.clinic-section-intro { color:#455a55; font-size:1.03rem; }
.clinic-section-intro p { margin:0; }
.clinic-support-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:1rem;
}
.clinic-support-grid article { padding:1.35rem 0 0; border-top:2px solid var(--ink); }
.clinic-support-grid span { color:var(--sun); font-size:.8rem; font-weight:800; }
.clinic-support-grid h3 { margin:.8rem 0 .45rem; font-size:1.05rem; }
.clinic-support-grid p { margin:0; color:var(--muted); font-size:.94rem; }
.doctor-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.doctor-card { overflow:hidden; background:var(--card); border:1px solid var(--line); border-radius:1rem; }
.doctor-card--text { border-top:4px solid var(--jade); }
.doctor-card img { display:block; width:100%; aspect-ratio:4/5; object-fit:cover; object-position:center top; background:#dfe5df; }
.doctor-card-body { padding:1.25rem; }
.doctor-card h3 { margin:0; font:500 1.45rem/1.15 Georgia,serif; }
.doctor-card-body>p { color:#455a55; font-size:.92rem; }
.doctor-role { color:var(--jade)!important; font-weight:750; }
.doctor-schedule { padding-top:.8rem; border-top:1px solid var(--line); }
.price-disclosure { padding:0; overflow:hidden; background:var(--card); border:1px solid var(--line); border-radius:1rem; }
.price-disclosure>summary { padding:1.1rem 1.3rem; color:#fff; background:var(--jade-dark); }
.price-table-wrap { overflow-x:auto; }
.price-table { width:100%; border-collapse:collapse; background:var(--card); }
.price-table th,.price-table td { padding:.85rem 1rem; border-bottom:1px solid var(--line); text-align:left; vertical-align:top; }
.price-table thead th { color:var(--ink); background:#ebe8df; }
.price-table tbody tr:nth-child(even) { background:#faf8f2; }
.clinic-document {
  display:grid;
  grid-template-columns:.55fr 1.4fr auto;
  gap:1.5rem;
  align-items:center;
  padding:1.3rem 1.5rem;
  color:var(--ink);
  background:var(--card);
  border:1px solid var(--line);
  border-radius:1rem;
  text-decoration:none;
}
.clinic-document:hover { border-color:var(--jade); }
.clinic-document>span { color:var(--muted); font-size:.88rem; }
.clinic-next { margin-top:clamp(1rem,3vw,2rem); }
.clinic-source { margin:1.2rem 0 0; color:var(--muted); font-size:.85rem; }

@media(max-width:900px) {
  .clinic-directory { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .clinic-hero,.clinic-about { grid-template-columns:1fr; }
  .clinic-hero-media { max-width:620px; aspect-ratio:4/3; }
  .clinic-support-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .doctor-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:680px) {
  .clinic-directory,.clinic-section-heading,.clinic-index-next,.clinic-next { grid-template-columns:1fr; }
  .clinic-card-media { aspect-ratio:4/3; }
  .clinic-support-grid,.doctor-grid { grid-template-columns:1fr; }
  .clinic-document { grid-template-columns:1fr; gap:.35rem; }
  .price-table thead { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
  .price-table,.price-table tbody,.price-table tr,.price-table th,.price-table td { display:block; width:100%; }
  .price-table tr { padding:.8rem 1rem; border-bottom:1px solid var(--line); }
  .price-table th,.price-table td { padding:.25rem 0; border:0; }
  .price-table td:before { content:attr(data-label) ": "; color:var(--muted); font-weight:700; }
}
@media(prefers-reduced-motion:reduce) { .clinic-card-media img { transition:none; } }
