/* Grace Pediatrics — classic practice styling: serif headings, squared corners, phthalo green on white
   phthalo #0F3D2E · green #1E6B52 · leaf #2E8B6F · mint #7FCCA9 on white */
:root{
  --cream:#FFFFFF; --soft-cream:#F6FAF8; --ink:#0A0F0C;
  --muted-ink:rgba(10,15,12,0.66); --soft-ink:rgba(10,15,12,0.48);
  --forest:#0F3D2E; --teal:#1E6B52; --lagoon:#2E8B6F; --sky:#7FCCA9;
  --sky-soft:#E9F5F0; --mint-soft:#E2EFEA;
  --icon-grad:linear-gradient(135deg,#E9F5F0,#D5EBE1);
  --brand-grad:linear-gradient(110deg,#0F3D2E 0%,#1E6B52 42%,#2E8B6F 72%,#4FAF8C 100%);
  --deep:#0A2A20;
  --card-shadow:0 1px 2px rgba(0,0,0,0.04), 0 24px 50px -22px rgba(12,48,36,0.20);
  --card-shadow-hover:0 2px 6px rgba(0,0,0,0.05), 0 34px 64px -22px rgba(12,48,36,0.28);
  --ease:cubic-bezier(.16,1,.3,1);
}
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; scroll-padding-top:90px; }
html,body{ overflow-x:hidden; }
body{ margin:0; font-family:"Inter","SF Pro Display",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  background:var(--cream); color:var(--ink); -webkit-font-smoothing:antialiased; line-height:1.55; }
img{ max-width:100%; display:block; }
a{ color:inherit; }
h1,h2,h3{ text-wrap:balance; margin:0; font-family:"Source Serif 4",Georgia,"Times New Roman",serif; font-weight:600; letter-spacing:-0.01em; }
p{ margin:0; }
:focus-visible{ outline:3px solid var(--lagoon); outline-offset:3px; border-radius:6px; }
.skip{ position:absolute; left:-9999px; top:8px; z-index:100; background:var(--forest); color:#fff; padding:10px 16px; border-radius:10px; }
.skip:focus{ left:12px; }

.wrap{ max-width:1152px; margin:0 auto; padding:0 24px; }
.section{ padding:clamp(72px,9vw,120px) 0; }
.eyebrow{ font-size:11.5px; font-weight:600; letter-spacing:0.22em; text-transform:uppercase; color:var(--teal); margin:0 0 10px; }
.h2{ font-size:clamp(30px,4vw,46px); line-height:1.14; letter-spacing:-0.012em; font-weight:600; color:var(--phthalo-text,var(--forest)); }
.lede{ margin-top:16px; font-size:clamp(16px,1.3vw,18px); line-height:1.6; color:var(--muted-ink); max-width:620px; }
.center{ text-align:center; }
.center .lede{ margin-left:auto; margin-right:auto; }
.head{ margin-bottom:46px; }
.text-grad{ color:inherit; }
.link{ color:var(--teal); font-weight:600; text-decoration:none; }
.link:hover{ color:var(--forest); text-decoration:underline; }

/* ===== Reveal ===== */
.reveal{ opacity:1; }
.reveal.is-visible{ opacity:1; transform:none; }
.reveal-stagger > *{ opacity:1; }
.reveal-stagger.is-visible > *{ opacity:1; transform:none; }
.reveal-stagger.is-visible > *:nth-child(2){ transition-delay:90ms; }
.reveal-stagger.is-visible > *:nth-child(3){ transition-delay:180ms; }
.reveal-stagger.is-visible > *:nth-child(4){ transition-delay:270ms; }
.reveal-stagger.is-visible > *:nth-child(5){ transition-delay:360ms; }
.reveal-stagger.is-visible > *:nth-child(6){ transition-delay:450ms; }
.reveal-stagger.is-visible > *:nth-child(n+7){ transition-delay:540ms; }
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  .reveal,.reveal-stagger > *{ opacity:1 !important; transform:none !important; filter:none !important; transition:none !important; }
  .hero-copy,.hero-visual{ animation:none !important; }
}

/* ===== Utility top bar ===== */
.topbar{ background:var(--forest); color:rgba(255,255,255,0.82); font-size:13px; }
.topbar .wrap{ display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:38px; flex-wrap:wrap; }
.topbar a{ color:#fff; text-decoration:none; font-weight:600; }
.topbar a.tb-portal{ border:1px solid rgba(255,255,255,0.28); border-radius:999px; padding:4px 13px; transition:background .2s; }
.topbar a.tb-portal:hover{ background:rgba(255,255,255,0.12); }
.topbar .tb-left, .topbar .tb-right{ display:flex; align-items:center; gap:18px; flex-wrap:wrap; }
.topbar svg{ width:14px; height:14px; vertical-align:-2px; margin-right:5px; color:var(--sky); }
.open-badge{ display:inline-flex; align-items:center; gap:7px; }
.open-badge .dot{ width:8px; height:8px; border-radius:50%; background:#9AA5A0; }
.open-badge.is-open .dot{ background:#6EE7A8; box-shadow:0 0 0 4px rgba(110,231,168,0.2); }
@media (max-width:700px){ .topbar .tb-hide{ display:none; } }

/* ===== Nav ===== */
.nav{ position:sticky; top:0; z-index:50; display:flex; align-items:center; justify-content:space-between; gap:20px;
  padding:14px clamp(20px,5vw,72px);
  background:rgba(255,255,255,0.9); -webkit-backdrop-filter:blur(14px) saturate(160%); backdrop-filter:blur(14px) saturate(160%);
  border-bottom:1px solid rgba(10,15,12,0.08); }
.brand{ display:flex; align-items:center; gap:10px; text-decoration:none; }
.brand img{ width:44px; height:44px; object-fit:cover; object-position:center 20%; border-radius:3px; background:#fff; box-shadow:0 1px 2px rgba(0,0,0,.06); }
.brand-name{ font-family:"Source Serif 4",Georgia,serif; font-size:19px; font-weight:600; letter-spacing:0; line-height:1.1; }
.brand-sub{ font-size:11.5px; color:var(--soft-ink); letter-spacing:0.02em; }
.nav-links{ display:flex; gap:28px; }
.nav-links a{ white-space:nowrap; font-size:15px; font-weight:450; color:rgba(10,10,11,0.68); text-decoration:none; transition:color .25s; }
.nav-links a:hover{ color:var(--ink); }
.nav-links a.active{ color:var(--forest); font-weight:600; }
.nav-actions{ display:flex; align-items:center; gap:10px; }
.nav-call{ display:inline-flex; align-items:center; gap:7px; font-size:14.5px; font-weight:600; text-decoration:none; color:var(--forest); padding:10px 4px; white-space:nowrap; }
.nav-call svg{ width:16px; height:16px; }
.nav-cta{ border-radius:4px; padding:11px 20px; background:var(--forest); color:#FAF7F1; font-size:14.5px; font-weight:550;
  text-decoration:none; transition:background .25s, transform .25s; white-space:nowrap; }
.nav-cta:hover{ background:var(--teal); }
.nav-toggle{ display:none; }
@media (max-width:1180px){ .nav-call{ display:none; } .nav-cta .cta-num{ display:none; } .nav-links{ gap:22px; } }
.brand-name, .brand-sub{ white-space:nowrap; }
@media (max-width:980px){
  .nav-links{ display:none; }
  .nav-toggle{ display:inline-flex; width:44px; height:44px; align-items:center; justify-content:center; border-radius:4px;
    border:1px solid rgba(10,10,11,0.10); background:rgba(255,255,255,0.72); cursor:pointer; padding:0; }
  .nav-toggle svg{ width:22px; height:22px; }
  .nav-links.open{ display:flex; flex-direction:column; gap:2px; position:absolute; top:calc(100% + 6px); left:16px; right:16px;
    background:#fff; border:1px solid rgba(15,61,46,0.2); border-radius:6px; padding:8px;
    box-shadow:0 22px 54px rgba(18,53,36,0.18); }
  .nav-links.open a{ padding:13px 16px; border-radius:4px; font-size:16px; color:var(--ink); }
  .nav-links.open a:hover{ background:var(--sky-soft); }
}
@media (max-width:760px){ .nav-cta{ display:none; } }

/* ===== Buttons ===== */
.btn{ display:inline-flex; align-items:center; gap:10px; border-radius:4px; padding:15px 28px; font-size:16px; font-weight:600;
  letter-spacing:-0.01em; text-decoration:none; border:none; cursor:pointer; font-family:inherit;
  transition:background .22s, transform .22s, box-shadow .22s; }
.btn svg{ width:18px; height:18px; }
.btn-solid{ background:var(--teal); color:#fff; box-shadow:none; }
.btn-solid:hover{ background:var(--forest); }
.btn-ink{ background:var(--forest); color:#FAF7F1; }
.btn-ink:hover{ background:var(--teal); }
.btn-sm{ padding:12px 22px; font-size:14.5px; }
.liquid-glass-btn{ position:relative; background:#fff; color:var(--forest); border:1.5px solid rgba(15,61,46,0.3); box-shadow:none; }
.liquid-glass-btn::before{ content:""; position:absolute; inset:0; border-radius:inherit; padding:1.5px; pointer-events:none;
  background:linear-gradient(180deg,rgba(255,255,255,0.95) 0%,rgba(255,255,255,0.2) 38%,rgba(255,255,255,0.1) 62%,rgba(255,255,255,0.55) 100%);
  -webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0); -webkit-mask-composite:xor;
  mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0); mask-composite:exclude; }
.liquid-glass-btn:hover{ background:var(--sky-soft); border-color:var(--leaf); }
.liquid-glass-btn:active{ transform:scale(0.97); }
.btn-row{ display:flex; gap:12px; flex-wrap:wrap; }

/* ===== Hero (compact) ===== */
.hero{ position:relative; overflow:hidden; padding:clamp(52px,7vw,96px) 0 clamp(72px,8vw,112px);
  background:
    radial-gradient(58% 72% at 86% 22%, rgba(46,139,111,0.16) 0%, rgba(46,139,111,0) 70%),
    radial-gradient(42% 52% at 4% 52%, rgba(15,61,46,0.07) 0%, rgba(15,61,46,0) 70%),
    linear-gradient(180deg,#F4FAF7 0%, #FFFFFF 100%); }
.hero-grid{ display:grid; grid-template-columns:1.1fr 0.9fr; gap:clamp(32px,5vw,72px); align-items:center; }
.hero-copy{ animation:none; }
.hero-eyebrow{ display:inline-flex; align-items:center; gap:10px; font-size:12.5px; font-weight:600; letter-spacing:0.26em;
  text-transform:uppercase; color:rgba(10,10,11,0.58); margin-bottom:18px; }
.hero-eyebrow .dot{ width:8px; height:8px; border-radius:50%; background:#3FBF7F; box-shadow:0 0 0 5px rgba(63,191,127,0.18); }
.hero-title{ font-family:"Source Serif 4",Georgia,serif; font-size:clamp(40px,5.2vw,70px); line-height:1.1; letter-spacing:-0.012em; font-weight:600; color:var(--forest); }
.hero-title .accent{ display:inline; color:inherit; }
.hero-sub{ margin:18px 0 28px; font-size:clamp(16.5px,1.3vw,19px); line-height:1.55; letter-spacing:-0.012em; color:rgba(10,10,11,0.66); max-width:540px; }
.hero-trust{ margin-top:26px; display:flex; flex-wrap:wrap; gap:8px; }
.chip{ display:inline-flex; align-items:center; gap:7px; padding:7px 13px; border-radius:3px; background:var(--sky-soft);
  border:1px solid rgba(46,139,111,0.18); font-size:13px; font-weight:500; color:#24473A; text-decoration:none; }
.chip svg{ width:15px; height:15px; color:var(--teal); }
.hero-visual{ position:relative; justify-self:center; width:min(440px,100%); }
.medallion{ aspect-ratio:1; border-radius:50%; overflow:hidden; box-shadow:none; border:5px solid var(--mint-soft); outline:1px solid rgba(15,61,46,0.22); }
.medallion img{ width:100%; height:100%; object-fit:cover; }
.glass-card{ position:absolute; border-radius:4px; padding:13px 15px; background:#fff;
  border:1px solid rgba(15,61,46,0.2); box-shadow:0 6px 18px rgba(15,61,46,0.1); }
.glass-card .gc-label{ font-size:10.5px; font-weight:600; letter-spacing:0.22em; text-transform:uppercase; color:var(--teal); }
.glass-card .gc-value{ margin-top:3px; font-size:15.5px; font-weight:650; letter-spacing:-0.02em; }
.glass-card .gc-sub{ font-size:12.5px; color:var(--soft-ink); margin-top:2px; }
.gc-a{ left:-34px; bottom:26px; }
.gc-b{ right:-22px; top:20px; }
@keyframes rise{ from{ opacity:0; transform:translateY(24px); } to{ opacity:1; transform:none; } }
@media (max-width:900px){
  .hero-grid{ grid-template-columns:1fr; }
  .hero-visual{ width:min(290px,72%); margin-top:6px; }
  .gc-a{ left:-14px; bottom:8px; padding:11px 13px; } .gc-b{ right:-12px; top:4px; padding:11px 13px; }
  .glass-card .gc-value{ font-size:14px; } .glass-card .gc-sub{ font-size:11.5px; }
}

/* ===== Quick actions ===== */
.quick{ position:relative; z-index:2; margin-top:-34px; }
.quick-grid{ display:grid; grid-template-columns:repeat(4,1fr); background:#fff; border-radius:6px; border:1px solid rgba(15,61,46,0.18);
  box-shadow:none; overflow:hidden; }
.quick a{ display:flex; gap:14px; align-items:center; padding:20px; text-decoration:none; border-left:1px solid rgba(15,61,46,0.14); transition:background .2s; }
.quick a:first-child{ border-left:none; }
.quick a:hover{ background:var(--sky-soft); }
.quick .q-ic{ flex:none; width:40px; height:40px; border-radius:4px; display:flex; align-items:center; justify-content:center; background:var(--icon-grad); color:var(--teal); }
.quick .q-ic svg{ width:20px; height:20px; }
.quick .q-t{ font-size:15px; font-weight:650; letter-spacing:-0.01em; }
.quick .q-s{ font-size:12.5px; color:var(--soft-ink); }
@media (max-width:900px){ .quick-grid{ grid-template-columns:1fr 1fr; } .quick a:nth-child(3){ border-left:none; } .quick a:nth-child(n+3){ border-top:1px solid rgba(15,61,46,0.14); } }
@media (max-width:480px){ .quick a{ padding:16px 14px; gap:10px; } .quick .q-ic{ width:36px; height:36px; } .quick .q-s{ display:none; } }

/* ===== Blends ===== */
.fade-light-to-dark{ height:clamp(100px,12vw,170px); margin-bottom:-1px;
  background:linear-gradient(to bottom, #FFFFFF 0%, #D7EAE1 24%, #2E8B6F 55%, #12432F 82%, var(--deep) 100%); }
.fade-dark-to-light{ height:clamp(110px,13vw,180px); margin-top:-1px;
  background:linear-gradient(to bottom, var(--deep) 0%, #12432F 22%, #1E6B52 48%, #57B893 74%, #DDF0E7 90%, #FFFFFF 100%); }

/* ===== Service cards ===== */
.svc-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:18px; }
.svc-card{ position:relative; background:#fff; border:1px solid rgba(15,61,46,0.18); border-radius:6px; padding:24px 22px;
  box-shadow:none; transition:border-color .2s, background .2s; text-decoration:none; display:block; }
.svc-card:hover{ border-color:var(--leaf); background:#FBFDFC; }
.svc-ic{ display:inline-flex; align-items:center; justify-content:center; width:42px; height:42px; border-radius:4px;
  background:var(--icon-grad); color:var(--teal); margin-bottom:16px; }
.svc-ic svg{ width:22px; height:22px; stroke-width:2; }
.svc-tag{ font-size:11px; font-weight:600; letter-spacing:0.22em; text-transform:uppercase; color:var(--lagoon); margin-bottom:6px; }
.svc-title{ font-size:19px; font-weight:600; letter-spacing:-0.005em; margin-bottom:8px; }
.svc-desc{ font-size:14px; line-height:1.6; color:rgba(10,10,11,0.62); }
.svc-list{ list-style:none; padding:0; margin:16px 0 0; display:grid; gap:8px; }
.svc-list li{ display:flex; gap:9px; font-size:14px; line-height:1.45; color:rgba(10,10,11,0.74); }
.svc-list li::before{ content:""; flex:none; width:6px; height:6px; margin-top:7px; border-radius:50%; background:var(--lagoon); }
.svc-more{ margin-top:16px; display:inline-flex; align-items:center; gap:6px; font-size:14px; font-weight:600; color:var(--forest); }
.svc-more svg{ width:16px; height:16px; color:var(--lagoon); transition:transform .25s; }
.svc-card:hover .svc-more svg{ transform:translateX(3px); }
.also{ margin-top:32px; display:flex; flex-wrap:wrap; gap:10px; justify-content:center; }

/* ===== Dark band ===== */
.dark{ background:var(--deep); color:#F2F6F4; }
.dark .h2{ color:#F2F6F4; }
.dark .lede{ color:rgba(242,246,244,0.64); }
.dark .eyebrow{ color:var(--sky); }
.dark .text-grad{ color:inherit; }
.value-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:18px; }
.value-card{ background:rgba(255,255,255,0.04); border:1px solid rgba(255,255,255,0.14); border-radius:6px; padding:24px 22px;
  box-shadow:none; transition:border-color .25s; }
.value-card:hover{ border-color:rgba(127,204,169,0.55); }
.value-ic{ width:42px; height:42px; border-radius:4px; display:flex; align-items:center; justify-content:center; margin-bottom:16px;
  background:linear-gradient(135deg,rgba(127,204,169,0.26),rgba(46,139,111,0.14)); color:var(--sky); }
.value-ic svg{ width:22px; height:22px; stroke-width:2.1; }
.value-card h3{ font-size:17px; font-weight:600; letter-spacing:-0.01em; margin:0 0 6px; }
.value-card p{ font-size:13.5px; line-height:1.6; color:#B3C6BC; }
.lang-row{ margin-top:34px; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:16px;
  border:1px solid rgba(127,204,169,0.32); background:rgba(127,204,169,0.07); border-radius:6px; padding:20px 24px; }
.lang-row strong{ display:block; font-size:18px; letter-spacing:-0.02em; }
.lang-row span.sub{ font-size:14px; color:#B3C6BC; }
.lang-pills{ display:flex; gap:8px; flex-wrap:wrap; }
.lang-pill{ border:1px solid rgba(255,255,255,0.22); border-radius:3px; padding:7px 15px; font-size:13px; font-weight:600; }

/* ===== Doctor spotlight ===== */
.doc-grid{ display:grid; grid-template-columns:0.85fr 1.15fr; gap:clamp(40px,6vw,80px); align-items:center; }
.doc-photo{ position:relative; }
.doc-photo .frame{ border-radius:6px; overflow:hidden; aspect-ratio:4/5; border:1px solid rgba(15,61,46,0.2); box-shadow:none; }
.doc-photo .frame img{ width:100%; height:100%; object-fit:cover; object-position:center 30%; }
.doc-photo .glass-card{ right:-20px; bottom:28px; }
.quote{ margin:24px 0 0; padding:18px 22px; border-left:3px solid var(--lagoon); border-radius:0;
  background:linear-gradient(135deg,rgba(46,139,111,0.10),rgba(127,204,169,0.07));
  font-family:"Source Serif 4",Georgia,serif; font-size:19px; font-style:italic; font-weight:400; line-height:1.5; }
.cred-list{ margin-top:28px; display:grid; grid-template-columns:1fr 1fr; gap:16px 20px; }
.cred-item{ display:flex; gap:12px; align-items:flex-start; }
.cred-ic{ flex:none; width:38px; height:38px; border-radius:4px; display:flex; align-items:center; justify-content:center;
  background:var(--icon-grad); color:var(--teal); }
.cred-ic svg{ width:18px; height:18px; stroke-width:2; }
.cred-label{ font-size:11px; font-weight:600; letter-spacing:0.18em; text-transform:uppercase; color:var(--teal); }
.cred-value{ margin-top:2px; font-size:14.5px; line-height:1.45; color:rgba(10,10,11,0.74); }
.body-copy p{ font-size:17px; line-height:1.7; color:var(--muted-ink); margin-top:16px; }
.body-copy strong{ color:var(--ink); font-weight:600; }
@media (max-width:900px){ .doc-grid{ grid-template-columns:1fr; } .doc-photo{ max-width:420px; margin:0 auto; } .doc-photo .glass-card{ right:-8px; } }
@media (max-width:560px){ .cred-list{ grid-template-columns:1fr; } }

/* ===== Steps (new patients) ===== */
.steps{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; counter-reset:step; }
.step{ background:#fff; border:1px solid rgba(15,61,46,0.18); border-radius:6px; padding:24px 22px; box-shadow:none; }
.step::before{ counter-increment:step; content:counter(step) "."; display:block; font-family:"Source Serif 4",Georgia,serif;
  font-size:30px; font-weight:600; color:var(--leaf); margin-bottom:8px; }
.step h3{ font-size:19px; font-weight:600; letter-spacing:-0.005em; margin-bottom:6px; }
.step p{ font-size:14.5px; line-height:1.6; color:var(--muted-ink); }
@media (max-width:800px){ .steps{ grid-template-columns:1fr; } }

/* ===== Gallery ===== */
.gallery{ display:grid; grid-template-columns:repeat(3,1fr); grid-auto-rows:clamp(320px,34vw,460px); gap:16px; }
.gallery figure{ margin:0; position:relative; border-radius:6px; overflow:hidden; border:1px solid rgba(15,61,46,0.18); background:var(--soft-cream); }
.gallery img{ width:100%; height:100%; object-fit:cover; }
.gallery figcaption{ position:absolute; left:12px; bottom:12px; padding:7px 13px; border-radius:3px; font-size:13px; font-weight:550;
  background:rgba(255,255,255,0.92); -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px); }
@media (max-width:760px){ .gallery{ grid-template-columns:1fr; grid-auto-rows:340px; } }

/* ===== Page head ===== */
.page-head{ padding:clamp(52px,7vw,88px) 24px 8px; text-align:center; }
.page-head h1{ font-family:"Source Serif 4",Georgia,serif; font-size:clamp(34px,4.6vw,58px); line-height:1.12; letter-spacing:-0.01em; font-weight:600; color:var(--forest); }
.page-head .lede{ margin:16px auto 0; }

/* ===== Services page ===== */
.cat{ padding:44px 0 8px; scroll-margin-top:96px; }
.cat-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-bottom:22px;
  padding-bottom:16px; border-bottom:1px solid rgba(10,10,11,0.08); }
.cat-head h2{ font-size:clamp(24px,2.8vw,33px); letter-spacing:-0.01em; font-weight:600; color:var(--forest); }
.cat-head p{ font-size:15px; color:var(--muted-ink); max-width:520px; }
.detail-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(320px,1fr)); gap:18px; }
.detail{ background:#fff; border:1px solid rgba(15,61,46,0.18); border-radius:6px; padding:24px 24px 22px; box-shadow:none;
  scroll-margin-top:110px; display:flex; flex-direction:column; }
.detail:target{ border-color:var(--lagoon); box-shadow:0 0 0 4px rgba(46,139,111,0.18), var(--card-shadow); }
.detail h3{ font-size:20px; letter-spacing:-0.005em; font-weight:600; margin-bottom:6px; }
.detail .who{ font-size:13.5px; color:var(--soft-ink); margin-bottom:12px; }
.detail > p{ font-size:15px; line-height:1.62; color:var(--muted-ink); }
.detail .btn-row{ margin-top:auto; padding-top:20px; }
.detail .svc-list{ margin-bottom:4px; }
.jump{ display:flex; flex-wrap:wrap; gap:8px; justify-content:center; margin-top:26px; }
.jump a.chip:hover{ border-color:rgba(46,139,111,0.5); color:var(--forest); }

/* ===== Callouts / FAQ ===== */
.callout{ display:flex; gap:16px; align-items:flex-start; border-radius:6px; padding:20px 22px; background:#fff;
  border:1px solid rgba(15,61,46,0.18); box-shadow:none; }
.callout .cred-ic{ width:44px; height:44px; }
.callout h3{ font-size:17px; font-weight:650; letter-spacing:-0.015em; margin-bottom:4px; }
.callout p{ font-size:14.5px; line-height:1.6; color:var(--muted-ink); }
.callout.alert{ background:#FFF6F4; border-color:rgba(190,60,40,0.18); }
.callout.alert .cred-ic{ background:#FBE3DE; color:#B2402B; }
.callout-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:18px; }
.faq{ max-width:820px; margin:0 auto; display:grid; gap:12px; }
.faq details{ background:#fff; border:1px solid rgba(15,61,46,0.18); border-radius:6px; padding:0 22px; box-shadow:none; }
.faq summary{ list-style:none; cursor:pointer; padding:20px 0; font-size:16.5px; font-weight:600; letter-spacing:-0.015em;
  display:flex; justify-content:space-between; gap:16px; align-items:center; }
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{ content:"+"; flex:none; width:26px; height:26px; border-radius:3px; display:flex; align-items:center; justify-content:center;
  background:var(--sky-soft); color:var(--teal); font-size:18px; font-weight:500; transition:transform .25s; }
.faq details[open] summary::after{ transform:rotate(45deg); }
.faq details p{ padding:0 0 20px; font-size:15px; line-height:1.65; color:var(--muted-ink); }
.checklist{ list-style:none; padding:0; margin:0; display:grid; gap:12px; }
.checklist li{ display:flex; gap:12px; align-items:flex-start; font-size:15.5px; line-height:1.5; color:rgba(10,10,11,0.78); }
.checklist li svg{ flex:none; width:22px; height:22px; color:var(--teal); margin-top:1px; }
.two-col{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,5vw,64px); align-items:start; }
@media (max-width:800px){ .two-col{ grid-template-columns:1fr; } }
.panel{ background:#fff; border:1px solid rgba(15,61,46,0.18); border-radius:6px; padding:28px; box-shadow:none; }
.panel h3{ font-size:20px; font-weight:650; letter-spacing:-0.02em; margin-bottom:14px; }

/* ===== Contact ===== */
.contact-grid{ display:grid; grid-template-columns:0.9fr 1.1fr; gap:clamp(32px,5vw,64px); align-items:start; }
@media (max-width:900px){ .contact-grid{ grid-template-columns:1fr; } }
.info-list{ display:grid; gap:18px; margin-top:26px; }
.info{ display:flex; gap:14px; }
.info .cred-ic{ width:42px; height:42px; }
.info h4{ margin:0; font-size:12.5px; font-weight:600; letter-spacing:0.14em; text-transform:uppercase; color:var(--teal); }
.info p, .info a{ font-size:16px; line-height:1.55; color:rgba(10,10,11,0.8); text-decoration:none; }
.info a:hover{ color:var(--forest); }
.hours{ width:100%; border-collapse:collapse; font-size:15px; }
.hours td{ padding:8px 0; border-bottom:1px solid rgba(10,10,11,0.06); }
.hours td:last-child{ text-align:right; color:var(--muted-ink); }
.hours tr.today td{ font-weight:650; color:var(--forest); }
.contact-card{ border-radius:6px; padding:clamp(24px,4vw,38px); background:#fff;
  border:1px solid rgba(15,61,46,0.2); box-shadow:none; }
.contact-card h2{ font-size:26px; letter-spacing:-0.025em; font-weight:650; }
.contact-card .sub{ margin-top:6px; font-size:14.5px; color:var(--muted-ink); }
.form{ margin-top:22px; display:grid; gap:14px; }
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
@media (max-width:560px){ .form-row{ grid-template-columns:1fr; } }
.form label{ display:block; font-size:13px; font-weight:600; color:rgba(10,10,11,0.74); margin-bottom:6px; }
.hf{ width:100%; font:inherit; font-size:15px; padding:12px 14px; border-radius:4px; border:1px solid rgba(15,61,46,0.25);
  background:rgba(255,255,255,0.85); color:var(--ink); outline:none; transition:box-shadow .2s, border-color .2s; }
.hf:focus{ border-color:var(--lagoon); box-shadow:0 0 0 4px rgba(46,139,111,0.16); }
textarea.hf{ min-height:110px; resize:vertical; }
.form .btn{ justify-content:center; width:100%; }
.form-note{ font-size:13px; color:var(--soft-ink); text-align:center; }
.form-note a{ color:var(--forest); font-weight:600; text-decoration:none; }
.map{ border-radius:6px; overflow:hidden; box-shadow:none; border:1px solid rgba(15,61,46,0.2); aspect-ratio:16/9; background:#E8EFEC; }
.map iframe{ width:100%; height:100%; border:0; display:block; }

/* ===== Reviews ===== */
.review-grid{ columns:3 300px; column-gap:20px; }
.review{ break-inside:avoid; margin:0 0 20px; background:#fff; border:1px solid rgba(15,61,46,0.18); border-radius:6px; padding:24px 24px 20px; box-shadow:none; }
.review .q{ font-size:40px; line-height:.6; height:18px; color:var(--sky); font-weight:700; }
.review blockquote{ margin:8px 0 16px; font-family:"Source Serif 4",Georgia,serif; font-size:17px; line-height:1.62; color:rgba(10,15,12,0.86); }
.review .who{ display:flex; align-items:center; gap:10px; }
.review .av{ flex:none; width:34px; height:34px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  background:var(--icon-grad); color:var(--forest); font-size:14px; font-weight:650; }
.review .nm{ font-size:14px; font-weight:600; }
.review .src{ font-size:12px; color:var(--soft-ink); }
.review-foot{ margin-top:18px; text-align:center; font-size:13.5px; color:var(--soft-ink); }
.review-foot a{ color:var(--forest); font-weight:600; text-decoration:none; }

/* ===== CTA band + footer ===== */
.cta-band{ background:var(--forest); text-align:center; padding:88px 24px; position:relative; overflow:hidden; }
.cta-band::before{ content:""; position:absolute; inset:auto -10% -60% -10%; height:120%; pointer-events:none;
  background:radial-gradient(50% 50% at 50% 50%, rgba(127,204,169,0.2), rgba(127,204,169,0) 70%); }
.cta-band > *{ position:relative; }
.cta-band h2{ color:#F2F6F4; font-size:clamp(28px,3.8vw,44px); letter-spacing:-0.01em; font-weight:600; margin:0 0 12px; }
.cta-band p{ color:rgba(242,246,244,0.66); font-size:17px; margin:0 auto 28px; max-width:520px; }
.cta-band .btn-row{ justify-content:center; }
.cta-band .btn-solid{ background:#fff; color:var(--forest); box-shadow:none; }
.cta-band .btn-solid:hover{ background:var(--sky); }
.cta-band .ghost{ color:#F2F6F4; border:1px solid rgba(255,255,255,0.3); background:transparent; }
.cta-band .ghost:hover{ background:rgba(255,255,255,0.08); }
.site-footer{ background:var(--deep); color:rgba(242,246,244,0.72); padding:64px 0 28px; font-size:14px; }
.f-grid{ display:grid; grid-template-columns:1.3fr 1fr 1fr 1fr; gap:36px; }
.f-grid h4{ margin:0 0 14px; font-size:12px; font-weight:600; letter-spacing:0.2em; text-transform:uppercase; color:var(--sky); }
.f-grid ul{ list-style:none; padding:0; margin:0; display:grid; gap:9px; }
.f-grid a{ color:rgba(242,246,244,0.78); text-decoration:none; }
.f-grid a:hover{ color:#fff; }
.f-brand{ display:flex; align-items:center; gap:10px; margin-bottom:14px; }
.f-brand img{ width:42px; height:42px; border-radius:3px; background:#fff; object-fit:cover; object-position:center 20%; }
.f-brand span{ font-family:"Source Serif 4",Georgia,serif; font-size:20px; font-weight:600; color:#fff; letter-spacing:0; }
.f-bottom{ margin-top:44px; padding-top:22px; border-top:1px solid rgba(255,255,255,0.1); display:flex; justify-content:space-between; gap:14px; flex-wrap:wrap; font-size:12.5px; color:rgba(242,246,244,0.5); }
@media (max-width:860px){ .f-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .f-grid{ grid-template-columns:1fr; } }

/* ===== Mobile sticky action bar ===== */
.mobile-bar{ display:none; }
@media (max-width:760px){
  body{ padding-bottom:76px; }
  .mobile-bar{ display:grid; grid-template-columns:1fr 1fr; gap:10px; position:fixed; left:0; right:0; bottom:0; z-index:60;
    padding:10px 14px calc(10px + env(safe-area-inset-bottom));
    background:rgba(255,255,255,0.95); -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px); border-top:1px solid rgba(10,10,11,0.08); }
  .mobile-bar a{ display:flex; align-items:center; justify-content:center; gap:8px; padding:14px; border-radius:4px; font-weight:650; font-size:15px; text-decoration:none; }
  .mobile-bar svg{ width:18px; height:18px; }
  .mobile-bar .mb-call{ background:#fff; color:var(--forest); border:1px solid rgba(15,61,46,0.2); }
  .mobile-bar .mb-book{ background:var(--teal); color:#fff; }
}

/* ============================================================
   CPM-style homepage layout (action bar, photo hero, side tabs,
   notice strip, news cards, welcome, two-column lists, tiles)
   ============================================================ */
.actionbar{ background:#fff; border-bottom:1px solid rgba(15,61,46,0.1); }
.actionbar .wrap{ display:flex; justify-content:center; gap:12px; padding:14px 24px; flex-wrap:wrap; }
.ab{ display:inline-flex; align-items:center; gap:9px; border-radius:999px; padding:11px 22px; font-size:14px; font-weight:650;
  letter-spacing:.02em; text-transform:uppercase; text-decoration:none; color:#fff; transition:opacity .2s, transform .2s; }
.ab:hover{ opacity:.9; transform:translateY(-1px); }
.ab svg{ width:16px; height:16px; }
.ab-call{ background:var(--forest); }
.ab-portal{ background:var(--lagoon); }
.ab-book{ background:var(--teal); }
@media (max-width:860px){ .ab{ padding:10px 16px; font-size:12.5px; } .actionbar .wrap{ gap:8px; padding:10px 14px; } }
/* on phones the sticky bottom bar is the only persistent call to action */
@media (max-width:760px){ .actionbar{ display:none; } }

/* photo hero */
.phero{ position:relative; min-height:clamp(380px,46vw,560px); display:flex; align-items:center; overflow:hidden; background:var(--deep); }
.phero img.bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.phero::after{ content:""; position:absolute; inset:0;
  background:linear-gradient(100deg, rgba(10,42,32,.88) 0%, rgba(10,42,32,.72) 45%, rgba(10,42,32,.25) 100%); }
.phero .wrap{ position:relative; z-index:2; width:100%; }
.phero h1{ font-family:"Source Serif 4",Georgia,serif; color:#fff; font-weight:600; letter-spacing:-0.01em;
  font-size:clamp(30px,4.2vw,52px); line-height:1.16; max-width:16ch; }
.phero p{ margin-top:16px; color:rgba(255,255,255,.86); font-size:clamp(16px,1.3vw,19px); max-width:46ch; }
.phero .btn{ margin-top:26px; }
.phero .btn-solid{ background:#fff; color:var(--forest); }
.phero .btn-solid:hover{ background:var(--mint-soft); }

/* announcement strip */
.notice{ background:var(--lagoon); color:#fff; text-align:center; padding:13px 20px; font-size:15px; font-weight:600; letter-spacing:.01em; }
.notice a{ color:#fff; }

/* news cards */
.news-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
@media (max-width:860px){ .news-grid{ grid-template-columns:1fr; } }
.news{ display:flex; gap:16px; align-items:flex-start; background:#fff; border:1px solid rgba(15,61,46,.18); border-radius:6px; padding:22px; text-decoration:none; transition:border-color .2s, background .2s; }
.news:hover{ border-color:var(--leaf); background:#FBFDFC; }
.news .n-ic{ flex:none; width:44px; height:44px; border-radius:4px; background:var(--icon-grad); color:var(--teal); display:flex; align-items:center; justify-content:center; }
.news .n-ic svg{ width:22px; height:22px; }
.news h3{ font-size:17px; font-weight:600; margin-bottom:5px; }
.news p{ font-size:14px; line-height:1.55; color:var(--muted-ink); }

/* welcome block */
.welcome{ text-align:center; max-width:760px; margin:0 auto; }
.welcome .sup{ font-family:"Source Serif 4",Georgia,serif; font-size:clamp(20px,2.2vw,26px); color:var(--leaf); }
.welcome h2{ font-size:clamp(30px,3.8vw,46px); color:var(--forest); margin-top:4px; }
.welcome p{ margin-top:20px; font-size:17px; line-height:1.75; color:var(--muted-ink); }
.welcome .btn{ margin-top:26px; }

/* two-column link lists */
.listcols{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,5vw,64px); }
@media (max-width:800px){ .listcols{ grid-template-columns:1fr; } }
.listcols h2{ font-size:clamp(24px,2.8vw,32px); color:var(--forest); padding-bottom:14px; border-bottom:2px solid var(--leaf); margin-bottom:6px; }
.linklist{ list-style:none; padding:0; margin:0; }
.linklist li{ border-bottom:1px solid rgba(15,61,46,.14); }
.linklist a{ display:flex; align-items:center; justify-content:space-between; gap:12px; padding:15px 2px; text-decoration:none;
  font-size:16.5px; color:rgba(10,15,12,.82); transition:color .2s, padding-left .2s; }
.linklist a:hover{ color:var(--forest); padding-left:6px; }
.linklist a span.ar{ color:var(--leaf); font-weight:700; }

/* tiles row */
.tiles{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
@media (max-width:980px){ .tiles{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .tiles{ grid-template-columns:1fr; } }
.tile{ background:#fff; border:1px solid rgba(15,61,46,.18); border-radius:6px; padding:26px 22px; text-decoration:none; display:block;
  transition:border-color .2s, background .2s; }
.tile:hover{ border-color:var(--leaf); background:#FBFDFC; }
.tile .t-ic{ width:46px; height:46px; border-radius:4px; background:var(--icon-grad); color:var(--teal); display:flex; align-items:center; justify-content:center; margin-bottom:16px; }
.tile .t-ic svg{ width:23px; height:23px; }
.tile h3{ font-size:19px; font-weight:600; margin-bottom:7px; color:var(--forest); }
.tile p{ font-size:14px; line-height:1.6; color:var(--muted-ink); }

/* ===== Quick-facts table (AEO: the block answer engines lift verbatim) ===== */
.facts{ width:100%; border-collapse:collapse; background:#fff; border:1px solid rgba(15,61,46,.18); border-radius:6px; overflow:hidden; }
.facts th, .facts td{ text-align:left; padding:14px 18px; border-bottom:1px solid rgba(15,61,46,.12); font-size:15.5px; vertical-align:top; }
.facts tr:last-child th, .facts tr:last-child td{ border-bottom:none; }
.facts th{ width:34%; font-weight:600; color:var(--forest); background:#F7FBF9; }
.facts td{ color:rgba(10,15,12,.82); }
@media (max-width:620px){ .facts th, .facts td{ display:block; width:auto; } .facts th{ border-bottom:none; padding-bottom:2px; } }

/* ===== Areas served ===== */
.areas{ display:flex; flex-wrap:wrap; gap:9px; }
.areas span{ border:1px solid rgba(15,61,46,.2); border-radius:3px; padding:8px 14px; font-size:14.5px; color:rgba(10,15,12,.8); background:#fff; }

/* ===== Sick-child triage table ===== */
.triage{ width:100%; border-collapse:collapse; background:#fff; border:1px solid rgba(15,61,46,.18); border-radius:6px; overflow:hidden; }
.triage th{ text-align:left; padding:14px 16px; font-size:13px; letter-spacing:.08em; text-transform:uppercase; color:#fff; background:var(--forest); }
.triage td{ padding:14px 16px; border-bottom:1px solid rgba(15,61,46,.12); font-size:15px; line-height:1.55; vertical-align:top; color:rgba(10,15,12,.82); }
.triage tr:last-child td{ border-bottom:none; }
.triage td:first-child{ font-weight:600; color:var(--ink); width:38%; }
@media (max-width:640px){ .triage th:nth-child(2), .triage td:nth-child(2){ font-size:14px; } .triage td:first-child{ width:42%; } }

/* ===== EN / ES switch ===== */
.lang-switch{ font-size:14px; font-weight:650; color:var(--forest); text-decoration:none; border:1px solid rgba(15,61,46,.28);
  border-radius:3px; padding:6px 12px; white-space:nowrap; transition:background .2s, border-color .2s; }
.lang-switch:hover{ background:var(--sky-soft); border-color:var(--leaf); }
.nav-links .lang-switch{ display:none; }
.nav-actions .lang-switch{ display:inline-block; }
@media (max-width:980px){
  .nav-links .lang-switch{ display:block; margin-top:6px; text-align:center; }
}
