/* ==========================================================================
   Kauri Health Clinic — Design System
   Forest green with warm off-white, pale beige and light taupe surfaces.
   ========================================================================== */

.kauri-map-section { padding: clamp(48px, 6vw, 88px) 0; background: var(--cream); color: var(--forest); }
.kauri-map-grid { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.35fr); gap: clamp(28px, 5vw, 72px); align-items: center; }
.kauri-map-details h2 { font-size: clamp(1.8rem, 3vw, 2.7rem); line-height: 1.25; color: var(--forest); margin: 0 0 24px; }
.kauri-map-details p, .kauri-map-details address { color: var(--forest); font-size: .95rem; line-height: 1.8; margin: 16px 0; }
.kauri-map-details address { font-style: normal; }
.kauri-map-details .btn { margin-top: 12px; white-space: normal; text-align: center; }
.kauri-map-frame { display: block; width: 100%; height: 460px; border: 1px solid #d8d5cc; border-radius: 16px; background: var(--beige); }
@media (max-width: 760px) { .kauri-map-grid { grid-template-columns: minmax(0, 1fr); } .kauri-map-frame { height: 360px; } }

:root {
  /* Shared neutral palette, aligned with the approved homepage. */
  --cream:        #f8f7f4;            /* warm off-white background  */
  --cream-2:      #fbfaf7;            /* light card surface         */
  --beige:        #f2eee7;            /* alternating sections       */
  --taupe:        #e8dfd5;            /* restrained warm accents    */
  --forest:       hsl(174 56% 16%);     /* primary deep teal-green    */
  --forest-hover: hsl(174 56% 12%);
  --forest-deep:  hsl(174 56% 10%);
  --mint:         hsl(153 51% 92%);     /* pale text on forest        */
  --mint-dim:     hsl(153 30% 80%);
  --sage:         hsl(138 25% 75%);     /* soft sage                  */
  --olive:        hsl(74 22% 48%);      /* eyebrow / emphasis accent  */
  --olive-soft:   hsl(74 24% 66%);      /* emphasis on dark           */
  --ink:          hsl(0 0% 10%);        /* headings on light          */
  --body:         hsl(200 6% 25%);      /* body copy                  */
  --muted:        hsl(46 3% 36%);       /* captions                   */
  --border:       hsl(48 8% 81%);
  --border-soft:  hsl(48 10% 86%);
  --card:         #f2eee7;            /* pale beige service cards   */

  --radius:   10px;
  --radius-lg: 18px;
  --maxw:    1180px;
  --gutter:  clamp(20px, 5vw, 64px);

  --serif: Georgia, "Times New Roman", "Songti SC", serif;
  --sans:  "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;

  --shadow-sm: 0 1px 2px rgba(18, 40, 37, .06);
  --shadow-md: 0 10px 30px -12px rgba(18, 40, 37, .18);
  --shadow-lg: 0 30px 60px -20px rgba(18, 40, 37, .28);

  --t: .28s cubic-bezier(.2,.6,.2,1);
}

/* ---------- Reset-ish ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 96px; }
body {
  margin: 0;
  font-family: var(--sans);
  color: var(--body);
  background: var(--cream);
  line-height: 1.65;
  font-size: 17px;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
button { font-family: inherit; }
h1,h2,h3,h4 { color: var(--ink); font-family: var(--serif); font-weight: 400; line-height: 1.14; letter-spacing: -.01em; margin: 0; }
p { margin: 0 0 1.1em; }
ul { margin: 0; padding: 0; }

::selection { background: var(--olive-soft); color: #fff; }

/* ---------- Layout helpers ---------- */
.container { width: 100%; max-width: var(--maxw); margin-inline: auto; padding-inline: var(--gutter); }
.section { padding-block: clamp(48px, 6vw, 92px); }
.section--tight { padding-block: clamp(36px, 4.5vw, 60px); }
.subpage .section { padding-block: clamp(34px, 4vw, 62px); }
.subpage .section--tight { padding-block: clamp(26px, 3vw, 44px); }
.center { text-align: center; }
.mx-auto { margin-inline: auto; }
.measure { max-width: 62ch; }
.measure-narrow { max-width: 48ch; }

.eyebrow {
  font-family: var(--sans);
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--olive);
  margin: 0 0 1rem;
  display: inline-block;
}
.eyebrow--onforest { color: var(--sage); }

h1, .h1 { font-size: clamp(2.35rem, 6vw, 4.1rem); }
h2, .h2 { font-size: clamp(1.9rem, 4vw, 3rem); }
h3, .h3 { font-size: clamp(1.3rem, 2.4vw, 1.7rem); }
.emph { font-style: italic; color: var(--olive); }
.emph--light { font-style: italic; color: var(--olive-soft); }

.lead { font-size: clamp(1.05rem, 1.6vw, 1.25rem); color: var(--body); }
.section-intro { color: var(--muted); font-size: 1.08rem; }

/* ---------- Buttons ---------- */
.btn {
  --btn-bg: var(--forest);
  --btn-fg: var(--mint);
  display: inline-flex; align-items: center; justify-content: center; gap: .55em;
  font-family: var(--sans); font-weight: 600; font-size: .95rem; letter-spacing: .01em;
  padding: .95em 1.9em; border-radius: 999px; border: 1.5px solid transparent;
  background: var(--btn-bg); color: var(--btn-fg); cursor: pointer;
  transition: transform var(--t), background var(--t), color var(--t), box-shadow var(--t);
  box-shadow: var(--shadow-sm);
}
.btn:hover { background: var(--forest-hover); transform: translateY(-2px); box-shadow: var(--shadow-md); }
.btn--lg { padding: 1.1em 2.3em; font-size: 1rem; }
.btn--ghost { background: transparent; color: var(--forest); border-color: var(--border); box-shadow: none; }
.btn--ghost:hover { background: rgba(18,64,59,.05); border-color: var(--forest); color: var(--forest); }
.btn--onforest { background: var(--mint); color: var(--forest); }
.btn--onforest:hover { background: #fff; }
.btn--onforest-ghost { background: transparent; color: var(--mint); border-color: rgba(219,243,230,.4); box-shadow: none; }
.btn--onforest-ghost:hover { background: rgba(255,255,255,.08); border-color: var(--mint); }
.btn-row { display: flex; flex-wrap: wrap; gap: .9rem; }
.btn-row--center { justify-content: center; }
.hero--page .btn-row { justify-content: center; }

/* ---------- Header / Nav ---------- */
.site-header {
  position: sticky; top: 0; z-index: 60;
  background: var(--forest);
  color: var(--mint);
  border-bottom: 1px solid rgba(255,255,255,.06);
}
.nav { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; min-height: 76px; }
.brand { display: flex; align-items: center; gap: .7rem; color: var(--mint); }
.brand img { width: 40px; height: 40px; }
.brand-text { font-family: var(--sans); line-height: 1.05; }
.brand-text b { display: block; font-weight: 700; letter-spacing: .12em; font-size: .95rem; }
.brand-text span { display: block; font-size: .58rem; letter-spacing: .22em; color: var(--mint-dim); }

.nav-links { display: flex; align-items: center; gap: 2rem; list-style: none; }
.nav-links a { font-size: .95rem; font-weight: 500; color: var(--mint); opacity: .85; transition: opacity var(--t); position: relative; }
.nav-links a:hover, .nav-links a[aria-current="page"] { opacity: 1; }
.nav-links a[aria-current="page"]::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -6px; height: 2px; background: var(--sage); border-radius: 2px;
}
.nav-right { display: flex; align-items: center; gap: 1.2rem; }
.nav-actions { display: flex; align-items: center; gap: .9rem; }

/* has-dropdown */
.nav-item { position: relative; }
.nav-toggle-caret { font-size: .7em; opacity: .7; }
.dropdown {
  position: absolute; top: calc(100% + 8px); left: 50%; transform: translateX(-50%) translateY(6px);
  background: var(--cream); color: var(--ink); border: 1px solid var(--border-soft);
  border-radius: var(--radius); box-shadow: var(--shadow-lg); padding: .5rem; min-width: 280px;
  opacity: 0; visibility: hidden; transition: opacity var(--t), transform var(--t); z-index: 70;
}
.dropdown::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: -12px;
  height: 12px;
}
.nav-item:hover .dropdown, .nav-item:focus-within .dropdown { opacity: 1; visibility: visible; transform: translateX(-50%) translateY(0); }
.dropdown a { display: block; padding: .6rem .8rem; border-radius: 7px; font-size: .92rem; color: var(--body); opacity: 1; }
.dropdown a:hover { background: rgba(18,64,59,.07); color: var(--forest); }
.dropdown-branch { position: relative; }
.dropdown .dropdown-parent { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.dropdown-children {
  position: absolute; z-index: 5; left: calc(100% - 4px); top: -.55rem; width: 285px;
  padding: .55rem; border: 1px solid var(--border-soft); border-radius: 10px;
  background: #fff; box-shadow: var(--shadow-md); opacity: 0; visibility: hidden;
  transform: translateX(-6px); transition: opacity var(--t), visibility var(--t), transform var(--t);
}
.dropdown-children::before { content: ""; position: absolute; right: 100%; top: 0; bottom: 0; width: 10px; }
.dropdown-branch:hover .dropdown-children, .dropdown-branch:focus-within .dropdown-children { opacity: 1; visibility: visible; transform: translateX(0); }
.dropdown-branch:focus-within .dropdown-children { transition: none; }
.dropdown-branch--vaccinations .dropdown-children { top: auto; bottom: -.55rem; }

.field-help { display: block; margin-top: .45rem; color: var(--caption); font-size: .8rem; line-height: 1.4; }
.clinic-datepicker { position: relative; }
.date-trigger { width: 100%; min-height: 50px; padding: .75rem 2.6rem .75rem .9rem; border: 1px solid var(--border); border-radius: 8px; background: #fff; color: var(--body); text-align: left; font: inherit; cursor: pointer; }
.date-trigger:focus { outline: 2px solid var(--sage); outline-offset: 2px; }
.date-popover { position: absolute; z-index: 30; left: 0; top: calc(100% + .45rem); width: min(340px, 92vw); padding: 1rem; border: 1px solid var(--border-soft); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow-md); }
.date-head { display: grid; grid-template-columns: 38px 1fr 38px; align-items: center; text-align: center; margin-bottom: .7rem; }
.date-head button { border: 0; border-radius: 50%; background: var(--cream-2); color: var(--forest); font-size: 1.5rem; cursor: pointer; }
.date-head button:disabled { opacity: .3; cursor: default; }
.date-week, .date-days { display: grid; grid-template-columns: repeat(7, 1fr); gap: .2rem; }
.date-week span { padding: .3rem 0; color: var(--caption); text-align: center; font-size: .7rem; font-weight: 700; }
.date-days button { aspect-ratio: 1; border: 0; border-radius: 50%; background: transparent; color: var(--body); cursor: pointer; font: 500 .84rem var(--sans); }
.date-days button:hover:not(:disabled) { background: var(--olive-soft); color: var(--forest); }
.date-days button[aria-pressed="true"] { background: var(--forest); color: var(--mint); }
.date-days button:disabled { color: #bbb; text-decoration: line-through; cursor: not-allowed; background: #f5f3ef; }
.date-days .date-empty { aspect-ratio: 1; }

.icon-btn { background: transparent; border: 0; color: var(--mint); display: inline-flex; align-items: center; gap: .4rem; font-size: .9rem; cursor: pointer; opacity: .85; }
.icon-btn:hover { opacity: 1; }

.hamburger { display: none; background: transparent; border: 0; color: var(--mint); cursor: pointer; padding: .3rem; }
.hamburger svg { width: 26px; height: 26px; }

/* Mobile drawer */
.mobile-drawer {
  position: fixed; inset: 76px 0 0 0; background: var(--forest-deep); color: var(--mint);
  transform: translateX(100%); transition: transform var(--t); z-index: 55; overflow-y: auto;
  padding: 1.5rem var(--gutter) 3rem; display: flex; flex-direction: column; gap: .3rem;
}
.mobile-drawer.open { transform: translateX(0); }
.mobile-drawer a { padding: .9rem 0; font-size: 1.15rem; border-bottom: 1px solid rgba(255,255,255,.08); }
.mobile-drawer .m-sub { font-size: .78rem; letter-spacing: .18em; text-transform: uppercase; color: var(--sage); padding-top: 1.4rem; border: 0; }
.mobile-drawer .m-svc { padding-left: 1rem; font-size: 1rem; opacity: .9; }
.mobile-drawer .m-svc-child { padding-left: 2rem; font-size: .9rem; color: var(--sage); }
.mobile-drawer .btn { margin-top: 1.6rem; }

/* ---------- Hero ---------- */
.hero {
  position: relative; background:
    radial-gradient(120% 100% at 50% -10%, hsl(174 45% 22%), var(--forest) 55%, var(--forest-deep));
  color: var(--mint); overflow: hidden;
}
.hero::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(60% 50% at 50% 40%, rgba(180,201,157,.10), transparent 70%);
}
.hero .container { position: relative; z-index: 2; }
.hero--home { text-align: center; padding-block: clamp(70px, 12vw, 150px); }
.hero-logo { width: 118px; height: 118px; margin: 0 auto 2rem; }
.hero h1 { color: #fff; }
.hero .eyebrow { color: var(--sage); }
.hero-sub { color: var(--mint-dim); font-size: clamp(1.05rem, 1.7vw, 1.3rem); max-width: 56ch; margin-inline: auto; margin-top: 1.5rem; }
.hero .btn-row { margin-top: 2.4rem; }
.hero-badges { display: flex; flex-wrap: wrap; gap: 1.4rem 2.4rem; justify-content: center; margin-top: 3rem; color: var(--mint-dim); font-size: .82rem; letter-spacing: .12em; text-transform: uppercase; }
.hero-badges span { display: inline-flex; align-items: center; gap: .5rem; }
.hero-badges span::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--sage); }

/* Inner hero (subpages) */
.hero--page { padding-block: clamp(70px, 10vw, 128px); text-align: center; }
.hero--page h1 { color: #fff; max-width: 20ch; margin-inline: auto; }
.hero--page .hero-sub { margin-top: 1.4rem; }

/* ---------- Services grid (home) ---------- */
.svc-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 1.25rem; }
.svc-card {
  position: relative; display: flex; flex-direction: column; gap: .5rem;
  background: var(--card); border-radius: var(--radius); padding: 2rem 1.9rem 1.7rem;
  border-left: 3px solid var(--olive-soft); overflow: hidden;
  transition: transform var(--t), box-shadow var(--t), background var(--t);
}
.svc-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); background: var(--cream-2); }
.svc-card .tag { font-family: var(--sans); font-size: .68rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--olive); }
.svc-card h3 { font-size: 1.35rem; margin-top: .2rem; }
.svc-card p { font-family: var(--serif); color: var(--body); font-size: 1rem; margin: .3rem 0 1rem; }
.svc-card .more { margin-top: auto; font-family: var(--serif); font-style: italic; color: var(--olive); font-size: 1rem; transition: gap var(--t); display: inline-flex; gap: .3rem; }
.svc-card:hover .more { gap: .6rem; }

/* ---------- Premium answer-first homepage ---------- */
.home-hero { position: relative; overflow: hidden; background: var(--forest-deep); color: var(--mint); }
.home-hero::before { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 15% 20%, rgba(138,154,91,.16), transparent 35%), linear-gradient(120deg, rgba(255,255,255,.025), transparent 50%); pointer-events: none; }
.home-hero-grid { min-height: min(780px, calc(100vh - 76px)); display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(2rem, 6vw, 6rem); align-items: center; padding-block: clamp(56px, 8vw, 104px); position: relative; }
.home-hero-copy { position: relative; z-index: 2; }
.home-hero-copy h1 { color: #fff; font-size: clamp(3rem, 7vw, 6.3rem); max-width: 10ch; line-height: .98; letter-spacing: -.04em; }
.home-hero-copy h1 em { color: var(--sage); font-weight: 400; }
.home-hero-lead { max-width: 55ch; margin: 1.7rem 0 0; color: var(--mint-dim); font-family: var(--serif); font-size: clamp(1.12rem, 1.7vw, 1.35rem); }
.home-hero-copy .btn-row { margin-top: 2rem; }
.hero-assurance { display: flex; flex-wrap: wrap; gap: .65rem 1.5rem; margin-top: 2.1rem; color: rgba(219,243,230,.72); font-size: .72rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.hero-assurance span::before { content: "•"; margin-right: .55rem; color: var(--sage); }
.home-hero-image { position: relative; margin: 0; align-self: stretch; min-height: 580px; }
.home-hero-image img { width: 100%; height: 100%; object-fit: cover; border-radius: 0 0 180px 0; filter: saturate(.82) contrast(1.03); }
.home-hero-image::after { content: ""; position: absolute; inset: 0; border: 1px solid rgba(255,255,255,.18); border-radius: 0 0 180px 0; pointer-events: none; }
.home-hero-image figcaption { position: absolute; right: 1.2rem; bottom: 1.2rem; padding: .7rem 1rem; background: rgba(9,42,37,.82); color: var(--mint); font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; backdrop-filter: blur(8px); }
.home-trust-strip { background: var(--forest); color: var(--mint); border-top: 1px solid rgba(255,255,255,.08); }
.home-trust-strip .container { display: grid; grid-template-columns: repeat(3, 1fr); }
.home-trust-strip .container > div { padding: 1.35rem clamp(1rem, 3vw, 2.2rem); border-right: 1px solid rgba(255,255,255,.09); }
.home-trust-strip .container > div:last-child { border-right: 0; }
.home-trust-strip strong, .home-trust-strip span { display: block; }
.home-trust-strip strong { color: #fff; font-size: .85rem; letter-spacing: .04em; }
.home-trust-strip span { margin-top: .18rem; color: var(--mint-dim); font-family: var(--serif); font-size: .9rem; }
.home-answer-grid { display: grid; grid-template-columns: .75fr 1.25fr; gap: clamp(2rem, 7vw, 7rem); align-items: start; max-width: 1080px; }
.home-answer-grid h2 { max-width: 12ch; }
.home-answer-grid .answer-lead { margin-top: 0; }
.text-link { display: inline-flex; gap: .7rem; margin-top: .7rem; color: var(--forest); font-weight: 700; border-bottom: 1px solid var(--sage); padding-bottom: .2rem; }
.text-link span { transition: transform var(--t); }.text-link:hover span { transform: translateX(4px); }
.section--alt { background: var(--beige); }
.page-faq { background: var(--taupe); }
main .gp-section--tint,main .vaccine-section--tint { background: var(--beige); }
.home-section-head { display: grid; grid-template-columns: 1.2fr .8fr; gap: 2rem; align-items: end; margin-bottom: clamp(2rem, 4vw, 3.4rem); }
.home-section-head h2 { max-width: 15ch; }
.home-section-head > p { color: var(--muted); font-family: var(--serif); font-size: 1.08rem; }
.flagship-grid { display: grid; grid-template-columns: 1.15fr 1fr 1fr; gap: 1rem; }
.flagship-card { min-height: 410px; padding: clamp(1.5rem, 3vw, 2.4rem); display: flex; flex-direction: column; border: 1px solid rgba(18,64,59,.12); border-radius: var(--radius-lg); background: var(--cream-2); transition: transform var(--t), box-shadow var(--t); }
.flagship-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-md); }
.flagship-card--dark { background: var(--forest); color: var(--mint-dim); }
.flagship-card--dark h3 { color: #fff; }
.flagship-card--dark .card-label, .flagship-card--dark .flagship-num, .flagship-card--dark .card-arrow { color: var(--sage); }
.flagship-num { color: var(--olive); font: 500 1rem var(--serif); }
.flagship-card .card-label { margin: 3.7rem 0 .7rem; color: var(--olive); }
.flagship-card h3 { font-size: clamp(1.55rem, 2.4vw, 2.1rem); }
.flagship-card > p:not(.card-label) { margin-top: 1rem; font-family: var(--serif); }
.card-arrow { margin-top: auto; padding-top: 1rem; color: var(--forest); font-weight: 700; font-size: .88rem; }
.service-list { border-top: 1px solid var(--border); }
.service-list a { display: grid; grid-template-columns: 44px 1.6fr 1fr 30px; gap: 1rem; align-items: center; padding: 1.15rem .5rem; border-bottom: 1px solid var(--border); transition: background var(--t), padding var(--t); }
.service-list a:hover { background: var(--cream-2); padding-inline: 1rem; }
.service-list span, .service-list small { color: var(--muted); font-size: .78rem; }.service-list strong { color: var(--ink); font: 500 1.25rem var(--serif); }.service-list b { color: var(--olive); }
.home-journey { background: var(--cream-2); }
.home-steps { display: grid; grid-template-columns: repeat(4, 1fr); list-style: none; padding: 0; counter-reset: none; }
.home-steps li { padding: 1.7rem; border-top: 1px solid var(--border); border-right: 1px solid var(--border-soft); }
.home-steps li:last-child { border-right: 0; }.home-steps span, .principles-grid span { color: var(--olive); font: 700 .72rem var(--sans); letter-spacing: .12em; }.home-steps h3 { margin: 2.6rem 0 .7rem; font-size: 1.25rem; }.home-steps p { margin: 0; font-family: var(--serif); }
.home-clinic-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(2.5rem, 7vw, 7rem); align-items: center; }
.home-clinic-gallery { position: relative; min-height: 620px; padding-right: 14%; padding-bottom: 13%; }
.clinic-img-main { width: 100%; height: 100%; min-height: 560px; object-fit: cover; border-radius: var(--radius-lg); }
.clinic-img-small { position: absolute; right: 0; bottom: 0; width: 42%; aspect-ratio: 1; object-fit: cover; border: 8px solid var(--cream); border-radius: var(--radius); box-shadow: var(--shadow-md); }
.home-clinic-copy .lead { margin-top: 1.3rem; }.home-clinic-copy ul { margin: 1.6rem 0 2rem; padding: 0; list-style: none; }.home-clinic-copy li { padding: .7rem 0; border-bottom: 1px solid var(--border-soft); font-family: var(--serif); }.home-clinic-copy li::before { content: "✓"; color: var(--olive); margin-right: .8rem; }
.home-principles { background: #092f29; }.home-principles .eyebrow { color: #d4e5a8; }.home-principles .home-section-head h2 { color: #fff; }.home-principles .home-section-head > p { color: #f2f8f4; opacity: 1; }
.principles-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: rgba(255,255,255,.12); }
.principles-grid article { padding: 1.7rem; background: #16483f; }.home-principles .principles-grid span { color: #d4e5a8; }.principles-grid h3 { color: #fff; margin: 2.6rem 0 .7rem; }.principles-grid p { color: #f2f8f4; font-family: var(--serif); margin: 0; }
.home-location-card { display: grid; grid-template-columns: 1.2fr .8fr; gap: clamp(2rem, 6vw, 6rem); padding: clamp(1.8rem, 5vw, 4rem); border: 1px solid var(--border-soft); border-radius: var(--radius-lg); background: var(--cream-2); box-shadow: var(--shadow-sm); }
.home-location-card h2 { max-width: 15ch; }.home-location-card .btn-row { margin-top: 1.7rem; }.home-location-card dl { margin: 0; display: grid; gap: 1.1rem; }.home-location-card dl > div { padding-bottom: 1rem; border-bottom: 1px solid var(--border-soft); }.home-location-card dt { color: var(--olive); font-size: .7rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }.home-location-card dd { margin: .25rem 0 0; color: var(--body); font-family: var(--serif); }
@media (max-width: 920px) { .home-hero-grid, .home-answer-grid, .home-clinic-grid, .home-location-card { grid-template-columns: 1fr; } .home-hero-grid { min-height: 0; }.home-hero-image { min-height: 480px; }.flagship-grid { grid-template-columns: 1fr 1fr; }.flagship-card:first-child { grid-column: 1 / -1; min-height: 340px; }.home-steps, .principles-grid { grid-template-columns: 1fr 1fr; }.home-section-head { grid-template-columns: 1fr; }.home-clinic-gallery { min-height: 520px; } }
@media (max-width: 620px) { .home-hero-copy h1 { font-size: clamp(2.8rem, 15vw, 4rem); }.home-hero-image { min-height: 390px; }.home-trust-strip .container, .flagship-grid, .home-steps, .principles-grid { grid-template-columns: 1fr; }.home-trust-strip .container > div { border-right: 0; border-bottom: 1px solid rgba(255,255,255,.09); }.flagship-card:first-child { grid-column: auto; }.flagship-card { min-height: 350px; }.service-list a { grid-template-columns: 32px 1fr 24px; }.service-list small { display: none; }.home-clinic-gallery { min-height: 430px; padding-right: 10%; }.clinic-img-main { min-height: 390px; }.home-hero-copy .btn-row .btn { width: 100%; }.hero-assurance { display: grid; }.home-location-card .btn-row .btn { width: 100%; }.home-steps li, .principles-grid article { border-right: 0; } }

/* ---------- Premium About & Facilities authority pages ---------- */
.inner-editorial-hero { background: var(--forest-deep); color: var(--mint); overflow: hidden; }
.inner-editorial-grid { min-height: 650px; display: grid; grid-template-columns: 1fr .82fr; gap: clamp(2rem, 6vw, 6rem); align-items: center; padding-block: clamp(48px, 7vw, 86px); }
.inner-editorial-copy h1 { color: #fff; font-size: clamp(2.8rem, 6vw, 5.2rem); max-width: 11ch; line-height: 1; letter-spacing: -.035em; }.inner-editorial-copy h1 em { color: var(--sage); font-weight: 400; }.inner-editorial-copy > p:not(.eyebrow) { max-width: 52ch; color: var(--mint-dim); font: 1.2rem/1.65 var(--serif); }.inner-editorial-copy .btn-row { margin-top: 2rem; }
.inner-editorial-image { height: 100%; min-height: 520px; margin: 0; }.inner-editorial-image img { width: 100%; height: 100%; object-fit: cover; border-radius: 140px 0 0 0; filter: saturate(.85); }
.facilities-editorial-hero .inner-editorial-image img { object-position: left center; }
.authority-answer-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(2rem, 7vw, 7rem); max-width: 1080px; }.authority-answer-grid h2 { max-width: 13ch; }.authority-answer-grid .answer-lead { margin-top: 0; }
.editorial-heading { display: grid; grid-template-columns: 1.2fr .8fr; gap: 2rem; align-items: end; margin-bottom: clamp(2rem, 4vw, 3.2rem); }.editorial-heading h2 { max-width: 14ch; }.editorial-heading > p { color: var(--muted); font-family: var(--serif); }
.focus-grid, .facility-service-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }.focus-card, .facility-service-grid a { min-height: 290px; display: flex; flex-direction: column; padding: clamp(1.4rem, 3vw, 2.2rem); border: 1px solid var(--border-soft); border-radius: var(--radius-lg); background: var(--cream-2); transition: transform var(--t), box-shadow var(--t); }.focus-card:hover, .facility-service-grid a:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }.focus-card--primary { background: var(--forest); color: var(--mint-dim); }.focus-card--primary h3, .focus-card--primary b { color: #fff; }.focus-card--sti, .facility-service-sti { border-left: 4px solid var(--sage); }.focus-card span, .facility-service-grid span { color: var(--olive); font: 700 .7rem var(--sans); letter-spacing: .12em; text-transform: uppercase; }.focus-card h3, .facility-service-grid h3 { margin-top: 2rem; font-size: 1.55rem; }.focus-card p, .facility-service-grid p { font-family: var(--serif); }.focus-card b, .facility-service-grid b { margin-top: auto; color: var(--forest); font-size: .84rem; }
.method-list { list-style: none; padding: 0; max-width: 980px; margin-left: auto; }.method-list li { display: grid; grid-template-columns: 70px 1fr; gap: 1.5rem; padding: 1.35rem 0; border-top: 1px solid var(--border); }.method-list span, .value-grid span { color: var(--olive); font: 700 .72rem var(--sans); letter-spacing: .12em; }.method-list h3 { font-size: 1.25rem; margin-bottom: .3rem; }.method-list p { margin: 0; font-family: var(--serif); }
.about-belief { background: #dedbd0; }.belief-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: clamp(2rem, 7vw, 7rem); }.belief-statement h2 { font-size: clamp(2.3rem, 5vw, 4.3rem); max-width: 12ch; }.belief-copy { font-family: var(--serif); }.belief-copy blockquote { margin: 2rem 0 0; padding: 1.4rem 0 0; border-top: 1px solid var(--border); color: var(--forest); font-size: 1.35rem; font-style: italic; }
.about-values .editorial-heading h2 { color: #fff; }.about-values .editorial-heading > p { color: var(--mint); opacity: 1; }.value-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: rgba(255,255,255,.12); }.value-grid article { padding: 1.6rem; background: var(--forest); }.value-grid h3 { color: #fff; margin: 2.3rem 0 .6rem; }.value-grid p { color: var(--mint-dim); font-family: var(--serif); margin: 0; }
.about-place-grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(2rem, 6vw, 6rem); align-items: center; }.about-place-grid figure { margin: 0; }.about-place-grid img { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: var(--radius-lg); }.about-place-grid dl { margin: 1.5rem 0; }.about-place-grid dl > div { padding: .8rem 0; border-bottom: 1px solid var(--border-soft); }.about-place-grid dt { color: var(--olive); font-size: .7rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }.about-place-grid dd { margin: .2rem 0 0; font-family: var(--serif); }
.facility-grid { display: grid; grid-template-columns: 1.25fr .75fr; gap: 1rem; }.facility-tile { position: relative; margin: 0; min-height: 390px; overflow: hidden; border-radius: var(--radius-lg); }.facility-tile--wide { grid-row: span 2; min-height: 796px; }.facility-tile img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }.facility-tile:hover img { transform: scale(1.025); }.facility-tile::after { content: ""; position: absolute; inset: 35% 0 0; background: linear-gradient(transparent, rgba(9,42,37,.9)); }.facility-tile figcaption { position: absolute; z-index: 2; left: 1.4rem; right: 1.4rem; bottom: 1.2rem; color: var(--mint-dim); }.facility-tile figcaption span { color: var(--sage); font-size: .68rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }.facility-tile figcaption strong { display: block; color: #fff; font: 500 1.5rem var(--serif); }.facility-tile figcaption p { margin: .25rem 0 0; font-family: var(--serif); }
.privacy-feature-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 7vw, 7rem); align-items: center; }.privacy-feature-grid h2 { color: #fff; font-size: clamp(2.2rem, 5vw, 4rem); }.privacy-feature .eyebrow { color: #c8d99f; }.privacy-feature-grid > div:last-child { color: #f1f7f3; font-family: var(--serif); }.privacy-feature-grid > div:last-child p { color: #f1f7f3; }.privacy-feature-grid .btn { margin-top: 1rem; }
.facility-visit-grid { display: grid; grid-template-columns: 1fr .8fr; gap: clamp(2rem, 6vw, 6rem); align-items: center; }.facility-visit ol { list-style: none; padding: 0; margin-top: 1.5rem; }.facility-visit li { display: grid; grid-template-columns: 45px 1fr; gap: 1rem; padding: .9rem 0; border-top: 1px solid var(--border-soft); }.facility-visit li > span { color: var(--olive); font-size: .72rem; font-weight: 700; }.facility-visit h3 { font-size: 1.1rem; margin-bottom: .2rem; }.facility-visit li p { margin: 0; font-family: var(--serif); }.facility-visit figure { margin: 0; height: 650px; }.facility-visit figure img { width: 100%; height: 100%; object-fit: cover; border-radius: 0 130px 0 0; }
@media (max-width: 900px) { .inner-editorial-grid, .authority-answer-grid, .belief-grid, .about-place-grid, .privacy-feature-grid, .facility-visit-grid { grid-template-columns: 1fr; }.inner-editorial-grid { min-height: 0; }.inner-editorial-image { min-height: 430px; }.editorial-heading { grid-template-columns: 1fr; }.facility-visit figure { height: 500px; }.value-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 620px) { .inner-editorial-copy .btn-row .btn { width: 100%; }.inner-editorial-image { min-height: 350px; }.focus-grid, .facility-service-grid, .value-grid, .facility-grid { grid-template-columns: 1fr; }.facility-tile--wide { grid-row: auto; min-height: 430px; }.facility-tile { min-height: 360px; }.method-list li { grid-template-columns: 42px 1fr; }.facility-visit figure { height: 390px; } }

/* ---------- Patient-first service authority pages ---------- */
.service-answer { background: var(--cream); }
.service-facts { display: grid; grid-template-columns: 1fr 1fr; gap: 0; list-style: none; margin: 2rem 0 0; padding: 0; border-top: 1px solid var(--border); }
.service-facts li { display: grid; gap: .15rem; padding: .85rem .4rem .85rem 0; border-bottom: 1px solid var(--border-soft); }
.service-facts strong { color: var(--olive); font-size: .68rem; letter-spacing: .11em; text-transform: uppercase; }
.service-facts span { color: var(--forest); font-family: var(--serif); }
.wp-fact-chips { display:flex; flex-wrap:wrap; justify-content:center; gap:.55rem; list-style:none; margin:1.35rem 0 .75rem; padding:0; }
.wp-fact-chips li { border:1px solid rgba(255,255,255,.32); border-radius:999px; padding:.45rem .85rem; color:var(--cream); font-size:.82rem; }
.wp-reviewed { color:rgba(255,255,255,.72); font-size:.78rem; margin:.5rem 0 1.4rem; }
.wp-facts-table { min-width:620px; }
.wp-facts-table tbody th { width:30%; }
.service-note { margin:1.4rem 0 0; padding:1rem 1.2rem; border-left:3px solid var(--olive); background:rgba(154,160,111,.09); }
.wp-prep-grid { grid-template-columns:repeat(3,1fr); }
.wp-prep-grid ul { margin:.8rem 0 0; padding-left:1.15rem; color:var(--body); }
.wp-prep-grid li + li { margin-top:.45rem; }
.wp-location .home-location-card iframe { min-height:360px; width:100%; border:0; border-radius:var(--radius); }
.service-authority-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
.service-authority-card { min-height: 245px; padding: clamp(1.4rem, 3vw, 2.1rem); border: 1px solid var(--border-soft); border-radius: var(--radius-lg); background: var(--cream); }
.service-authority-card span, .service-authority-steps > li > span { color: var(--olive); font-size: .7rem; font-weight: 700; letter-spacing: .12em; }
.service-authority-card h3 { margin: 3rem 0 .65rem; font-size: 1.45rem; }
.service-authority-card p { margin: 0; font-family: var(--serif); }
.service-authority-steps { max-width: 980px; margin: 0 0 0 auto; padding: 0; list-style: none; }
.service-authority-steps li { display: grid; grid-template-columns: 64px 1fr; gap: 1.4rem; padding: 1.35rem 0; border-top: 1px solid var(--border); }
.service-authority-steps h3 { margin: 0 0 .35rem; font-size: 1.3rem; }
.service-authority-steps p { max-width: 68ch; margin: 0; font-family: var(--serif); }
.service-considerations-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 7vw, 7rem); align-items: start; }
.service-considerations { background: var(--forest-deep); color: #fff; }
.service-considerations .eyebrow { color: #bfe9d2; }
.service-considerations h2 { color: #fff; max-width: 13ch; }
.service-considerations .service-considerations-grid > div > p:not(.eyebrow) { color: #f1fff8; opacity: 1; font-family: var(--serif); }
.service-considerations ul { margin: 0; padding: 0; list-style: none; border-top: 1px solid rgba(255,255,255,.2); }
.service-considerations li { padding: 1rem 0 1rem 1.6rem; color: #fff; opacity: 1; border-bottom: 1px solid rgba(255,255,255,.24); font-family: var(--serif); position: relative; }
.service-considerations li::before { content: "✓"; position: absolute; left: 0; color: var(--sage); font-family: var(--sans); }
.service-related-links { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--border); }
.service-related-links a { display: flex; justify-content: space-between; gap: 1rem; padding: 1.35rem .65rem; color: var(--forest); border-bottom: 1px solid var(--border); font-family: var(--serif); font-size: 1.08rem; }
.service-related-links a:hover { background: var(--cream-2); }
.service-related-links span { color: var(--olive); }
.service-sources { padding-top: 0; }
.service-sources details { max-width: 900px; margin: auto; padding: 1.1rem 0; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.service-sources summary { cursor: pointer; color: var(--forest); font-weight: 700; }
.service-sources ol { padding-left: 1.3rem; }
.service-sources a { color: var(--forest); text-decoration: underline; text-decoration-color: var(--sage); text-underline-offset: 3px; }
.service-sources p { color: var(--muted); font-size: .82rem; }
.kauri-peptide-menu { background: var(--cream); }
.peptide-category { margin-top: 1.1rem; border-top: 1px solid var(--border); }
.peptide-category > h3 { margin: 0; padding: 1rem 0 .75rem; color: var(--olive); font: 700 .72rem var(--sans); letter-spacing: .12em; text-transform: uppercase; }
.peptide-product-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.peptide-product-grid article { min-height: 165px; padding: 1.35rem; border: 1px solid var(--border-soft); border-radius: var(--radius); background: var(--cream-2); }
.peptide-product-grid h4 { margin: 0 0 .75rem; color: var(--forest); font: 500 1.25rem var(--serif); }
.peptide-product-grid p { margin: 0; font-family: var(--serif); }
.peptide-menu-note { max-width: 850px; margin: 2rem 0 0; color: var(--muted); font-size: .88rem; }
.peptide-menu-note strong { color: var(--forest); }
.peptide-product-grid article strong { color: var(--olive); font: 700 .7rem var(--sans); letter-spacing: .04em; text-transform: uppercase; }
.peptide-availability { display: flex; align-items: center; justify-content: space-between; gap: 2rem; margin-top: 2.25rem; padding: 1.5rem; border: 1px solid var(--border); border-radius: var(--radius); background: var(--cream-2); }
.peptide-availability h3 { margin: .15rem 0 .45rem; font-size: 1.4rem; }
.peptide-availability p { margin: 0; max-width: 720px; font-family: var(--serif); }
.peptide-availability .eyebrow { font-family: var(--sans); }
.peptide-availability .btn { flex: 0 0 auto; }
.service-toc { background: var(--cream-2); border-bottom: 1px solid var(--border-soft); }
.service-toc .container { display: grid; grid-template-columns: 145px 1fr; gap: 1.5rem; padding-block: 1.15rem; }
.service-toc p { margin: .2rem 0; color: var(--olive); font-size: .7rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.service-toc .container > div { display: flex; flex-wrap: wrap; gap: .45rem 1.25rem; }
.service-toc a { color: var(--forest); font-size: .82rem; border-bottom: 1px solid transparent; }
.service-toc a:hover { border-color: var(--sage); }
.peptide-explainer-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(2rem, 7vw, 7rem); }
.peptide-explainer .lead { color: var(--forest); font-size: 1.2rem; }
.peptide-signal { border-top: 1px solid var(--border); }
.peptide-signal > div { display: grid; grid-template-columns: 42px 1fr; gap: .2rem 1rem; padding: 1.15rem 0; border-bottom: 1px solid var(--border-soft); }
.peptide-signal span { grid-row: span 2; color: var(--olive); font-size: .7rem; font-weight: 700; }
.peptide-signal strong { color: var(--forest); }
.peptide-signal p { margin: 0; font-family: var(--serif); }
.peptide-evidence { grid-column: 1 / -1; max-width: 900px; padding-top: 1.5rem; border-top: 1px solid var(--border); }
.peptide-evidence h3 { font-size: 1.45rem; }
.peptide-quality-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: var(--border); }
.peptide-quality-grid article { min-height: 260px; padding: 1.5rem; background: var(--cream-2); }
.peptide-quality-grid span { color: var(--olive); font-size: .7rem; font-weight: 700; }
.peptide-quality-grid h3 { margin: 2.8rem 0 .65rem; font-size: 1.2rem; }
.peptide-quality-grid p { margin: 0; font-family: var(--serif); }
.peptide-kauri { background: #dedbd0; }
.peptide-kauri-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 7vw, 7rem); }
.peptide-kauri-grid h2 { max-width: 12ch; }
.peptide-kauri-grid > div:last-child { font-family: var(--serif); }
.peptide-kauri-grid ul { margin: 1.4rem 0 1.8rem; padding: 0; list-style: none; }
.peptide-kauri-grid li { padding: .7rem 0; border-bottom: 1px solid rgba(18,64,59,.16); }
.peptide-kauri-grid li::before { content: "✓"; margin-right: .7rem; color: var(--olive); font-family: var(--sans); }
@media (max-width: 800px) { .service-considerations-grid { grid-template-columns: 1fr; }.service-related-links { grid-template-columns: 1fr; } }
@media (max-width: 900px) { .peptide-product-grid, .peptide-quality-grid { grid-template-columns: 1fr 1fr; }.peptide-explainer-grid, .peptide-kauri-grid { grid-template-columns: 1fr; } }
@media (max-width: 620px) { .service-facts, .service-authority-grid, .peptide-product-grid, .peptide-quality-grid { grid-template-columns: 1fr; }.service-authority-card { min-height: 220px; }.service-authority-steps li { grid-template-columns: 42px 1fr; }.peptide-product-grid article, .peptide-quality-grid article { min-height: 0; }.service-toc .container { grid-template-columns: 1fr; gap: .5rem; }.service-toc .container > div { display: grid; gap: .45rem; }.peptide-availability { align-items: flex-start; flex-direction: column; }.peptide-availability .btn { width: 100%; text-align: center; } }
@media (max-width: 760px) { .wp-prep-grid { grid-template-columns:1fr; }.wp-fact-chips { justify-content:flex-start; }.wp-reviewed { text-align:left; } }

/* Lab packages */
.lab-package-cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; margin-top: 2.25rem; background: var(--border); border: 1px solid var(--border); }
.lab-package-cards article { display: flex; flex-direction: column; min-height: 520px; padding: 1.65rem; background: var(--cream-2); }
.lab-package-cards h3 { margin: .75rem 0 .25rem; font-size: clamp(1.3rem, 2vw, 1.7rem); }
.lab-package-cards article > p:not(.lab-package-label):not(.lab-price) { font-family: var(--serif); }
.lab-package-cards ul { margin: auto 0 0; padding: 1.1rem 0 0 1.15rem; border-top: 1px solid var(--border-soft); }
.lab-package-cards li { margin: .45rem 0; font-size: .84rem; }
.lab-package-label { align-self: flex-start; margin: 0; padding: .35rem .6rem; border-radius: 999px; background: var(--forest); color: white; font-size: .64rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.lab-package-label--blue { background: #168ca1; }
.lab-price { margin: .65rem 0 1rem; color: var(--olive); font-size: 1.35rem; font-weight: 700; }
.lab-menu-image { max-width: 880px; margin: 3rem auto 0; text-align: center; }
.lab-menu-image a { display: block; border: 1px solid var(--border); background: white; box-shadow: 0 18px 50px rgba(22, 50, 38, .08); }
.lab-menu-image img { display: block; width: 100%; height: auto; }
.lab-menu-image p, .lab-menu-image figcaption, .lab-testing-note { color: var(--muted); font-size: .82rem; }
.lab-menu-image figcaption { margin-top: .8rem; }
.iv-drip-menu .lab-menu-image { max-width: 360px; }
.iv-lead { max-width: 75ch; margin: 1.25rem 0 2rem; }
.pcos-section { scroll-margin-top: 100px; }
.pcos-section p { font-size: 1rem; line-height: 1.8; }
.pcos-panel-grid { display: grid; grid-template-columns: 1fr 1.5fr; gap: 3rem; }
.pcos-panel-grid .pcos-price { font-family: var(--serif); font-size: 3rem; color: var(--forest); margin: .5rem 0; }
.pcos-panel-grid .btn { margin-top: 1.5rem; }
.pcos-included { columns: 2; padding-left: 1.25rem; margin-top: 1.5rem; }
.pcos-included li { break-inside: avoid; margin-bottom: .75rem; }
.pcos-marker-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.5rem 2.5rem; margin-top: 2rem; }
.pcos-marker-grid article { padding-top: 1.25rem; border-top: 1px solid var(--border); }
.pcos-marker-grid h3 { font-size: 1.45rem; margin-bottom: .8rem; }
.pcos-graphic { max-width: 820px; margin: 0 auto 3rem; }
.pcos-graphic img { display: block; width: 100%; height: auto; border-radius: var(--radius); }
.pcos-graphic figcaption { font-size: .9rem; line-height: 1.7; margin-top: 1rem; color: var(--muted); }
@media (max-width: 700px) { .pcos-panel-grid, .pcos-marker-grid { grid-template-columns: 1fr; gap: 1.5rem; } .pcos-included { columns: 1; } }
#iv-overview, #quick-iv-drips, #iv-drip-menu, #understanding-iv, #iv-treatment-guides, #iv-visit, #iv-faq { scroll-margin-top: 100px; }
.iv-premium-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; }
.iv-premium-card { display: flex; flex-direction: column; gap: 1rem; padding: 2rem; border: 1px solid var(--border-soft); border-radius: var(--radius); background: var(--cream); }
.iv-premium-card h3 { margin: 0; font-size: 1.65rem; }
.iv-premium-card > p { line-height: 1.75; }
.iv-premium-card > .text-link { align-self: flex-start; margin-top: auto; }
.iv-rate-list { list-style: none; padding: 0; margin: 0; }
.iv-rate-list li { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem 1rem; padding: .65rem 0; border-bottom: 1px solid var(--border-soft); }
.iv-rate-list strong { color: var(--forest); font-size: 1.25rem; }
.iv-screening-note, .iv-evidence-note { margin-top: 1.75rem; padding: 1rem 1.25rem; border-left: 3px solid var(--sage); font-size: .95rem; line-height: 1.75; }
.iv-formula-note { padding-top: .8rem; border-top: 1px solid var(--border-soft); }
.quick-drip-card > .text-link { margin-top: auto; padding-top: 1rem; }
.iv-related-links { display: flex; flex-wrap: wrap; gap: 1rem 2rem; padding-top: 2rem; padding-bottom: 2rem; }
.iv-detail-section { scroll-margin-top: 110px; }
.iv-detail-section .authority-answer-grid h2 { max-width: 20ch; }
.iv-detail-section .authority-answer-grid p { margin-top: 0; line-height: 1.85; }
.iv-detail-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; margin-top: 2rem; }
.iv-detail-options .iv-premium-card > p { margin: 0; }
.iv-detail-options .iv-premium-card > .iv-detail-price { line-height: 1.2; padding: .5rem 0; }
.iv-education-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem 3rem; margin-top: 2.5rem; }
.iv-education-grid article { border-top: 1px solid var(--border); padding-top: 1.5rem; scroll-margin-top: 110px; }
.iv-education-grid h3 { font-size: 1.5rem; line-height: 1.3; }
.iv-education-grid p { line-height: 1.85; margin-bottom: 0; }
.iv-comparison { margin-top: 2rem; }
.iv-comparison table { width: 100%; table-layout: fixed; border-collapse: collapse; font-size: .95rem; }
.iv-comparison caption { text-align: left; font-weight: 600; margin-bottom: 1rem; }
.iv-comparison th, .iv-comparison td { padding: 1rem; text-align: left; vertical-align: top; border-bottom: 1px solid var(--border); overflow-wrap: anywhere; }
.iv-comparison thead { background: var(--forest); color: var(--cream); }
.iv-comparison th:first-child { width: 20%; }
@media (max-width: 700px) { .iv-education-grid { grid-template-columns: 1fr; } .iv-comparison th, .iv-comparison td { padding: .65rem .4rem; } .iv-comparison table { font-size: .85rem; } }
.iv-detail-price { font-size: clamp(2rem, 4vw, 3rem); font-family: var(--serif); color: var(--forest); line-height: 1.2; }
@media (max-width: 700px) { .iv-detail-options { grid-template-columns: 1fr; } }
#understanding-iv .lab-guide-grid { margin-top: 2rem; }
#quick-iv-drips .quick-drip-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
#quick-iv-drips .quick-drip-card { min-height: 0; padding: 1.75rem; }
#quick-iv-drips .quick-drip-card > p { font-family: var(--sans); font-size: 1rem; line-height: 1.75; }
#quick-iv-drips .quick-drip-top span { font-size: .8rem; letter-spacing: .04em; }
#quick-iv-drips .quick-drip-card h3 { font-size: 1.6rem; }
.quick-drip-guide { padding-top: 1rem; scroll-margin-top: 100px; }
.quick-drip-guide .lab-guide-grid { grid-template-columns: 1fr; margin-top: 2rem; }
.quick-drip-guide article { display: grid; grid-template-columns: 1fr 2fr; gap: 2rem; }
@media (max-width: 700px) { #quick-iv-drips .quick-drip-grid, .quick-drip-guide article { grid-template-columns: 1fr; } .quick-drip-guide article { gap: .5rem; } }
@media (max-width: 700px) { .iv-premium-grid { grid-template-columns: 1fr; } .iv-premium-card { padding: 1.5rem; } }
.iv-drip-menu .compare { min-width: 780px; margin-top: 2.25rem; }
.iv-drip-menu .compare tbody th { width: 31%; }
.iv-formula-ingredients { display: block; margin-top: .45rem; color: var(--muted); font-family: var(--serif); font-size: .8rem; font-weight: 400; line-height: 1.45; }
.quick-drip-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; margin-top: 2.25rem; }
.quick-drip-card { position: relative; display: flex; flex-direction: column; min-height: 430px; padding: 1.55rem; overflow: hidden; border: 1px solid var(--border-soft); border-radius: var(--radius); background: var(--cream-2); box-shadow: var(--shadow-sm); }
.quick-drip-card::before { content: ""; position: absolute; inset: 0 0 auto; height: 5px; background: var(--sage); }
.quick-drip-card--pink::before { background: #d7a2aa; }
.quick-drip-card--orange::before { background: #d38b52; }
.quick-drip-card--yellow::before { background: #d8bb57; }
.quick-drip-card--clear::before { background: #a7c8bd; }
.quick-drip-top { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1.35rem; }
.quick-drip-top span { color: var(--muted); font-size: .68rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.quick-drip-top strong { color: var(--forest); font-family: var(--serif); font-size: 1.35rem; }
.quick-drip-card h3 { margin-bottom: .75rem; font-size: 1.35rem; }
.quick-drip-card > p { color: var(--body); font-family: var(--serif); font-size: .98rem; }
.quick-drip-card dl { margin: auto 0 1.25rem; padding-top: 1rem; border-top: 1px solid var(--border-soft); }
.quick-drip-card dl div { display: flex; justify-content: space-between; gap: 1rem; padding: .28rem 0; }
.quick-drip-card dt { color: var(--muted); font-size: .7rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.quick-drip-card dd { margin: 0; color: var(--ink); font-size: .78rem; text-align: right; }
.quick-drip-card .text-link { align-self: flex-start; }
.quick-drip-note { display: flex; align-items: center; gap: 1.25rem; margin-top: 1.25rem; padding: 1rem 1.2rem; border-left: 3px solid var(--sage); background: var(--cream-2); }
.quick-drip-note strong { color: var(--forest); white-space: nowrap; }
.quick-drip-note span { color: var(--muted); font-size: .86rem; }
@media (max-width: 1050px) { .quick-drip-grid { grid-template-columns: 1fr 1fr; }.quick-drip-card { min-height: 360px; } }
@media (max-width: 620px) { .quick-drip-grid { grid-template-columns: 1fr; }.quick-drip-card { min-height: 0; }.quick-drip-card dl { margin-top: 1.2rem; }.quick-drip-note { align-items: flex-start; flex-direction: column; gap: .35rem; }.quick-drip-note strong { white-space: normal; } }
.lab-comparison .compare { min-width: 900px; }
.additional-testing .service-authority-grid { grid-template-columns: repeat(3, 1fr); margin-top: 2rem; }
.lab-testing-note { max-width: 850px; margin: 1.5rem 0 0; padding: 1rem 1.2rem; border-left: 3px solid var(--sage); background: var(--cream-2); }
@media (max-width: 1050px) { .lab-package-cards { grid-template-columns: 1fr 1fr; }.lab-package-cards article { min-height: 440px; } }
@media (max-width: 760px) { .lab-package-cards, .additional-testing .service-authority-grid { grid-template-columns: 1fr; }.lab-package-cards article { min-height: 0; }.lab-package-cards ul { margin-top: 1rem; } }

.sti-packages .service-authority-card { height: auto; min-height: 0; }
.package-targets { margin-top: 1.1rem; border-top: 1px solid var(--border-soft); padding-top: .9rem; }
.package-targets summary { cursor: pointer; color: var(--forest); font-size: .78rem; font-weight: 700; letter-spacing: .02em; }
.package-targets ol, .package-targets ul { margin: .8rem 0 0; padding-left: 1.15rem; columns: 1; }
.package-targets li { margin: .35rem 0; color: var(--muted); font-size: .76rem; line-height: 1.45; break-inside: avoid; }

/* ---------- Icon cards (who we help / who this is for) ---------- */
.icon-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 1.2rem; }
.icon-card {
  background: var(--cream-2); border: 1px solid var(--border-soft); border-radius: var(--radius);
  padding: 1.9rem 1.7rem; transition: transform var(--t), box-shadow var(--t);
}
.icon-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-sm); }
.icon-card .ic { font-size: 1.8rem; line-height: 1; margin-bottom: .9rem; display: block; }
.icon-card h3 { font-size: 1.02rem; font-family: var(--sans); font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--forest); margin-bottom: .5rem; }
.icon-card p { font-family: var(--serif); font-size: 1rem; color: var(--body); margin: 0; }

/* ---------- Split feature (clinic / facilities) ---------- */
.split { display: grid; grid-template-columns: 1.05fr 1fr; gap: clamp(2rem, 5vw, 4.5rem); align-items: center; }
.split--rev .split-media { order: 2; }
.split-media img { border-radius: var(--radius-lg); box-shadow: var(--shadow-md); width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.split-media { position: relative; }
.media-caption { font-size: .72rem; letter-spacing: .16em; text-transform: uppercase; color: var(--muted); margin-top: .9rem; }
.check-list { list-style: none; display: grid; gap: .7rem; margin: 1.4rem 0 0; }
.check-list li { position: relative; padding-left: 1.9rem; font-family: var(--serif); color: var(--body); }
.check-list li::before {
  content: ""; position: absolute; left: 0; top: .5em; width: 12px; height: 12px; border-radius: 50%;
  background: var(--olive-soft); box-shadow: 0 0 0 4px rgba(138,154,91,.18);
}

.tri-media { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.tri-media figure { margin: 0; }
.tri-media img { border-radius: var(--radius); box-shadow: var(--shadow-sm); aspect-ratio: 4/3; object-fit: cover; width: 100%; }
.tri-media figcaption { font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); margin-top: .7rem; }

/* ---------- Process / numbered steps ---------- */
.process { display: grid; gap: 1rem; }
.process-row {
  display: grid; grid-template-columns: 72px 1fr; gap: 1.5rem; align-items: start;
  padding: 1.7rem; background: var(--cream-2); border: 1px solid var(--border-soft); border-radius: var(--radius);
}
.process-num { font-family: var(--serif); font-size: 2.1rem; color: var(--olive-soft); line-height: 1; }
.process-row h3 { font-size: 1.25rem; margin-bottom: .4rem; }
.process-row p { font-family: var(--serif); margin: 0; color: var(--body); }

/* Journey (compact numbered on forest or cream) */
.journey { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1.4rem; counter-reset: j; }
.journey-item { position: relative; padding-top: 3.4rem; }
.journey-item .jn { position: absolute; top: 0; left: 0; width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; background: var(--forest); color: var(--mint); font-family: var(--serif); font-size: 1.2rem; }
.journey-item h3 { font-size: 1.1rem; margin-bottom: .4rem; }
.journey-item p { font-family: var(--serif); font-size: .98rem; margin: 0; color: var(--body); }

/* ---------- Detailed step cards (service pages) ---------- */
.steps { display: grid; gap: 1.2rem; }
.step-card {
  background: var(--cream-2); border: 1px solid var(--border-soft); border-radius: var(--radius-lg);
  padding: clamp(1.6rem, 3vw, 2.4rem); display: grid; grid-template-columns: 1fr; gap: 1.2rem;
}
@media (min-width: 820px) { .step-card { grid-template-columns: 1fr 1fr; } }
.step-head .step-kicker { font-family: var(--sans); font-size: .72rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--olive); }
.step-head h3 { font-size: 1.5rem; margin: .5rem 0 .3rem; }
.step-head .step-sub { font-family: var(--serif); font-style: italic; color: var(--muted); }
.step-head p { font-family: var(--serif); margin-top: 1rem; color: var(--body); }
.step-included { background: var(--cream); border-radius: var(--radius); padding: 1.3rem 1.4rem; }
.step-included .il { font-family: var(--sans); font-size: .68rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--forest); margin-bottom: .8rem; }
.step-included ul { list-style: none; display: grid; gap: .55rem; }
.step-included li { position: relative; padding-left: 1.4rem; font-size: .95rem; font-family: var(--serif); color: var(--body); }
.step-included li::before { content: ""; position: absolute; left: 0; top: .55em; width: 7px; height: 7px; border-radius: 50%; background: var(--olive-soft); }
.step-included li.step-foot { padding-left: 0; margin-top: .5rem; font-style: italic; color: var(--muted); font-size: .9rem; }
.step-included li.step-foot::before { display: none; }

/* ---------- Comparison table ---------- */
.compare-wrap { overflow-x: auto; border-radius: var(--radius-lg); border: 1px solid var(--border-soft); box-shadow: var(--shadow-sm); }
table.compare { width: 100%; border-collapse: collapse; min-width: 640px; background: var(--cream-2); font-size: .96rem; }
table.compare th, table.compare td { text-align: left; padding: 1.05rem 1.3rem; border-bottom: 1px solid var(--border-soft); vertical-align: top; }
table.compare thead th { font-family: var(--sans); font-size: .74rem; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); font-weight: 700; }
table.compare thead th:last-child { color: var(--forest); }
table.compare tbody th { font-family: var(--sans); font-weight: 600; color: var(--ink); font-size: .9rem; width: 22%; }
table.compare td { font-family: var(--serif); color: var(--body); }
table.compare td:last-child { color: var(--forest); background: rgba(18,64,59,.04); }
table.compare tbody tr:last-child th, table.compare tbody tr:last-child td { border-bottom: 0; }

/* ---------- FAQ ---------- */
.faq { display: grid; gap: .8rem; max-width: 820px; margin-inline: auto; }
.faq-item { background: var(--cream-2); border: 1px solid var(--border-soft); border-radius: var(--radius); overflow: hidden; }
.faq-q {
  width: 100%; text-align: left; background: transparent; border: 0; cursor: pointer;
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  padding: 1.25rem 1.4rem; font-family: var(--serif); font-size: 1.12rem; color: var(--ink);
}
.faq-q .sign { flex: none; width: 26px; height: 26px; position: relative; transition: transform var(--t); color: var(--olive); }
.faq-q .sign::before, .faq-q .sign::after { content: ""; position: absolute; background: currentColor; border-radius: 2px; inset: 0; margin: auto; }
.faq-q .sign::before { width: 15px; height: 2px; }
.faq-q .sign::after { width: 2px; height: 15px; transition: transform var(--t); }
.faq-item[open] .faq-q .sign::after { transform: rotate(90deg); opacity: 0; }
.faq-a { padding: 0 1.4rem; max-height: 0; overflow: hidden; transition: max-height var(--t), padding var(--t); }
.faq-item[open] .faq-a { padding: 0 1.4rem 1.4rem; max-height: 600px; }
.faq-a p { font-family: var(--serif); color: var(--body); margin: 0; }

/* ---------- Prose blocks ---------- */
.prose p { font-family: var(--serif); font-size: 1.12rem; color: var(--body); }
.prose p.lead { font-size: clamp(1.15rem, 1.8vw, 1.4rem); }

/* Flow arrow row (peptide) */
.flow { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: .8rem; margin: 1.6rem 0; }
.flow .node { background: var(--cream-2); border: 1px solid var(--border-soft); border-radius: 999px; padding: .6rem 1.3rem; font-family: var(--sans); font-size: .85rem; font-weight: 600; color: var(--forest); }
.flow .arrow { color: var(--olive-soft); font-size: 1.2rem; }

/* ---------- Sections on forest ---------- */
.on-forest { background: var(--forest); color: var(--mint); }
.on-forest h1, .on-forest h2, .on-forest h3 { color: #fff; }
.on-forest .section-intro { color: var(--mint-dim); }
.on-forest .eyebrow { color: var(--sage); }
.on-forest .journey-item .jn { background: var(--mint); color: var(--forest); }
.on-forest .journey-item p { color: var(--mint-dim); }

/* ---------- CTA band ---------- */
.cta-band { background: var(--forest); color: var(--mint); text-align: center; border-radius: var(--radius-lg); padding: clamp(2.6rem, 6vw, 4.5rem); }
.cta-band h2 { color: #fff; }
.cta-band p { color: var(--mint-dim); max-width: 52ch; margin-inline: auto; margin-top: 1rem; }
.cta-band .btn-row { margin-top: 2rem; justify-content: center; }

/* Large parent-service invitation at the end of every child guide. */
.service-return { padding-top: 2rem; }
.service-return-card {
  background: var(--mint);
  border: 1px solid var(--sage);
  border-top: 5px solid var(--forest);
  border-radius: var(--radius-lg);
  padding: clamp(1.6rem, 5vw, 3.5rem);
  text-align: center;
}
.service-return-card h2 { color: var(--forest-deep); max-width: 30ch; margin-inline: auto; }
.service-return-card p { color: var(--body); max-width: 62ch; margin: 1.2rem auto 1.8rem; }
.service-return-link { max-width: 100%; white-space: normal; text-wrap: balance; }
.service-return-link:focus-visible { outline: 3px solid var(--forest); outline-offset: 5px; }

/* STI hub: quick comparison first, progressive detail second. */
.sti-section .authority-answer-grid { align-items: start; }
.sti-section .authority-answer-grid > p { line-height: 1.85; }
.sti-compare { margin-top: 2.4rem; }
.sti-compare caption { text-align: left; font-weight: 600; padding: 0 0 .8rem; color: var(--forest); }
.sti-compare table { min-width: 560px; }
.sti-compare a { color: var(--forest); text-decoration: underline; text-underline-offset: .2em; }
.sti-package-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.2rem; margin-top: 2rem; align-items: start; }
.sti-package-card { background: var(--cream-2); border: 1px solid var(--border); border-top: 4px solid var(--forest); border-radius: var(--radius-lg); padding: clamp(1.2rem, 2.5vw, 2rem); scroll-margin-top: 110px; }
.sti-package-card:nth-child(2) { border-top-color: var(--olive); }
.sti-package-number { font-size: .8rem; font-weight: 600; color: var(--muted); letter-spacing: .15em; }
.sti-package-card h3 { margin: .9rem 0; font-size: 1.5rem; line-height: 1.3; }
.sti-package-card .sti-package-price { font-size: 2rem; color: var(--forest); font-weight: 600; margin: 0 0 1rem; }
.sti-package-card p { line-height: 1.75; }
.sti-package-card dl { margin: 1.3rem 0; border-top: 1px solid var(--border-soft); }
.sti-package-card dl > div { display: flex; gap: 1rem; justify-content: space-between; padding: .65rem 0; border-bottom: 1px solid var(--border-soft); }
.sti-package-card dt { color: var(--muted); }
.sti-package-card dd { margin: 0; text-align: right; font-weight: 600; }
.sti-package-card summary { cursor: pointer; font-weight: 600; color: var(--forest); padding: .8rem 0; }
.sti-package-card ol { padding-left: 1.3rem; font-size: .88rem; }
.sti-package-card li { margin-bottom: .65rem; overflow-wrap: anywhere; }
.sti-package-card .sti-package-note { font-size: .86rem; color: var(--muted); margin: 1rem 0 1.3rem; }
.sti-package-card .text-link { white-space: normal; }
.sti-timing-note { margin: 1.6rem 0 0; font-size: .9rem; color: var(--muted); max-width: 85ch; }
.sti-education-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.2rem; margin-top: 2rem; }
.sti-education-grid--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sti-education-grid--single { grid-template-columns: 1fr; }
.sti-education-grid article { background: var(--cream-2); padding: clamp(1.3rem, 2.5vw, 2rem); border: 1px solid var(--border-soft); border-radius: var(--radius); }
.sti-education-grid h3 { font-size: 1.3rem; line-height: 1.4; margin-bottom: .8rem; }
.sti-education-grid p { line-height: 1.8; }
.sti-urgent-note { border-left: 4px solid var(--forest); background: var(--mint); color: var(--forest-deep); padding: 1.4rem 1.6rem; margin-top: 1.4rem; border-radius: 0 var(--radius) var(--radius) 0; }
.sti-urgent-note p { margin: 0; line-height: 1.8; }
.sti-location-links { margin-top: 1.6rem; align-items: center; }
@media (max-width: 900px) {
  .sti-package-grid { grid-template-columns: 1fr; }
  .sti-education-grid { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  .sti-compare table.compare { min-width: 0; table-layout: fixed; }
  /* Package names already identify blood/urine; keep prices and timing in view. */
  .sti-compare tr > :nth-child(2) { display: none; }
  .sti-compare table.compare th, .sti-compare table.compare td { padding: .9rem .55rem; font-size: .8rem; overflow-wrap: anywhere; }
  .sti-compare table.compare th:first-child { width: 44%; }
  .sti-compare table.compare th:nth-child(3) { width: 26%; }
  .sti-compare table.compare th:last-child { width: 30%; }
  .sti-compare table.compare thead th { font-size: .68rem; letter-spacing: .03em; }
  .sti-compare caption { padding: .8rem; font-size: .85rem; }
}

/* STI guides: readable answers, connected education and clinic options. */
.sti-guide-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.1rem; margin-top: 2rem; }
.sti-guide-card { border: 1px solid var(--border); border-radius: var(--radius); background: var(--cream-2); padding: 1.6rem; display: flex; flex-direction: column; align-items: flex-start; }
.sti-guide-card h3 { font-size: 1.45rem; margin-bottom: .7rem; }
.sti-guide-card h3 a { color: var(--forest); }
.sti-guide-card p { line-height: 1.75; margin-bottom: 1.3rem; }
.sti-guide-card .text-link { margin-top: auto; white-space: normal; }
.sti-guide-card a:focus-visible { outline: 2px solid var(--forest); outline-offset: 4px; }
.sti-guide-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 2rem; border-block: 1px solid var(--border); }
.sti-guide-facts > div { padding: 1.3rem; }
.sti-guide-facts dt { color: var(--muted); font-size: .8rem; margin-bottom: .6rem; }
.sti-guide-facts dd { margin: 0; font-weight: 600; line-height: 1.6; color: var(--forest); }
.sti-guide-facts > div + div { border-left: 1px solid var(--border); }
.sti-guide-reading { max-width: 780px; margin-inline: auto; }

/* Certificate guides: answer-first overview followed by readable editorial sections. */
.certificate-process-heading { text-align: center; margin-bottom: clamp(2rem, 4vw, 3.2rem); }
.certificate-process-heading h2 { max-width: 26ch; margin-inline: auto; }
.certificate-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; margin: 2.6rem 0 0; border: 1px solid var(--border); border-radius: var(--radius); background: var(--cream-2); }
.certificate-facts > div { padding: 1.5rem; }
.certificate-facts > div + div { border-left: 1px solid var(--border); }
.certificate-facts dt { font-size: .82rem; color: var(--muted); margin-bottom: .65rem; }
.certificate-facts dd { margin: 0; font-size: 1.1rem; font-weight: 600; line-height: 1.55; color: var(--forest-deep); }
.certificate-editorial { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.4fr); gap: clamp(2rem, 5vw, 5rem); align-items: start; }
.certificate-section-heading > span { display: block; color: var(--muted); font-size: .82rem; letter-spacing: .12em; margin-bottom: 1.1rem; }
.certificate-section-heading h2 { font-size: clamp(1.8rem, 3vw, 2.5rem); max-width: 24ch; line-height: 1.2; }
.certificate-reading > p { line-height: 1.9; margin: 0 0 1.3rem; }
.certificate-reading > p:first-child { color: var(--forest-deep); font-size: 1.07rem; }
.certificate-section--key .certificate-reading { border-left: 3px solid var(--forest); padding-left: 1.5rem; }
.certificate-citations { list-style: none; padding: 0; margin: 1.5rem 0 0; display: grid; gap: .7rem; }
.certificate-citations a { color: var(--forest); font-size: .85rem; line-height: 1.6; text-decoration: underline; text-underline-offset: 3px; overflow-wrap: anywhere; }
.certificate-source-inner { max-width: 900px; }
.certificate-source-inner > p { line-height: 1.85; margin-top: 1.3rem; }
.certificate-related h2 { margin-bottom: 1.8rem; }
.certificate-related .service-related-links a { white-space: normal; }
.certificate-table { width: 100%; border-collapse: collapse; font-size: .95rem; line-height: 1.7; margin: 1.5rem 0; }
.certificate-table caption.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.certificate-table th, .certificate-table td { text-align: left; padding: 1rem; border-bottom: 1px solid var(--border); vertical-align: top; }
.certificate-table th { color: var(--forest-deep); width: 32%; }
@media (max-width: 760px) {
  .certificate-editorial { grid-template-columns: 1fr; gap: 1.5rem; }
  .certificate-section-heading h2 { max-width: none; }
  .certificate-facts { grid-template-columns: 1fr; }
  .certificate-facts > div + div { border-left: none; border-top: 1px solid var(--border); }
  .certificate-facts > div { padding: 1.1rem 1.3rem; }
  .certificate-table th, .certificate-table td { padding: .8rem .4rem; overflow-wrap: anywhere; }
  .certificate-table th { width: 42%; }
}
.sti-guide-reading h2 { max-width: 30ch; font-size: clamp(1.8rem, 3.1vw, 2.6rem); margin-bottom: 1.35rem; }
.sti-guide-reading > p { line-height: 1.95; font-size: 1.02rem; }
.sti-guide-citations { display: flex; gap: .7rem; margin-top: 1rem; font-size: .85rem; }
.sti-guide-citations a { color: var(--forest); text-decoration: underline; text-underline-offset: 3px; }
.sti-guide-options { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 290px), 1fr)); gap: 1.2rem; margin-top: 1.8rem; }
.sti-guide-individual { margin-top: 2rem; padding: clamp(1.2rem, 3vw, 2rem); background: var(--cream-2); border: 1px solid var(--border); border-radius: var(--radius); }
.sti-guide-individual h3 { font-size: 1.45rem; }
.sti-guide-individual ul { padding: 0; margin: 1rem 0; list-style: none; }
.sti-guide-individual li { display: flex; justify-content: space-between; gap: 1.4rem; padding: .9rem 0; border-bottom: 1px solid var(--border-soft); }
.sti-guide-individual li a { color: var(--forest); text-decoration: underline; text-underline-offset: .2em; overflow-wrap: anywhere; }
.sti-guide-individual li strong { flex-shrink: 0; }
.sti-guide-note { margin-top: 1.8rem; line-height: 1.8; max-width: 80ch; }
.sti-guide-medication { margin-top: 2rem; padding: clamp(1.4rem, 4vw, 2.4rem); background: var(--mint); border-left: 4px solid var(--forest); border-radius: var(--radius); }
.sti-guide-medication h3 { color: var(--forest-deep); font-size: 1.5rem; }
.sti-guide-medication p { color: var(--forest-deep); line-height: 1.8; margin: 1rem 0 1.4rem; max-width: 75ch; }
.service-sources li[id] { scroll-margin-top: 120px; }
@media (max-width: 950px) { .sti-guide-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 620px) {
  .sti-guide-grid, .sti-guide-facts { grid-template-columns: 1fr; }
  .sti-guide-facts > div { padding-inline: 0; }
  .sti-guide-facts > div + div { border-left: 0; border-top: 1px solid var(--border-soft); }
  .sti-guide-reading > p { font-size: 1rem; line-height: 1.85; }
}

/* ---------- Location ---------- */
.location { display: grid; grid-template-columns: 1.1fr 1fr; gap: clamp(2rem, 5vw, 4rem); align-items: stretch; }
.loc-facts { display: grid; gap: 1.6rem; align-content: center; }
.loc-facts h3 { font-size: 1.6rem; margin-bottom: .3rem; }
.loc-block .lk { font-family: var(--sans); font-size: .72rem; letter-spacing: .16em; text-transform: uppercase; color: var(--olive); margin-bottom: .35rem; }
.loc-block p { font-family: var(--serif); margin: 0; color: var(--body); }
.loc-map { border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-md); min-height: 340px; border: 0; width: 100%; }

/* ---------- Booking form ---------- */
.book-grid { display: grid; grid-template-columns: 1fr; gap: clamp(2rem, 5vw, 3.5rem); }
@media (min-width: 900px) { .book-grid { grid-template-columns: 1.1fr .9fr; } }
.form-card { background: var(--cream-2); border: 1px solid var(--border-soft); border-radius: var(--radius-lg); padding: clamp(1.6rem, 4vw, 2.6rem); box-shadow: var(--shadow-sm); }
.field { margin-bottom: 1.15rem; }
.field label { display: block; font-family: var(--sans); font-size: .82rem; font-weight: 600; letter-spacing: .04em; color: var(--ink); margin-bottom: .45rem; }
.field .req { color: var(--olive); }
.field input, .field select, .field textarea {
  width: 100%; font-family: var(--sans); font-size: 1rem; color: var(--ink);
  background: var(--cream); border: 1px solid var(--border); border-radius: var(--radius);
  padding: .8rem .95rem; transition: border var(--t), box-shadow var(--t);
}
.field textarea { min-height: 120px; resize: vertical; }
.field input:focus, .field select:focus, .field textarea:focus { outline: 0; border-color: var(--forest); box-shadow: 0 0 0 3px rgba(18,64,59,.12); }
.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
@media (max-width: 560px) { .field-row { grid-template-columns: 1fr; } }
.form-note { font-size: .85rem; color: var(--muted); margin-top: 1rem; }
.book-aside { display: grid; gap: 1.4rem; align-content: start; }
.aside-card { background: var(--forest); color: var(--mint); border-radius: var(--radius-lg); padding: 1.9rem; }
.aside-card h3 { color: #fff; font-size: 1.3rem; margin-bottom: 1rem; }
.aside-card .ac-row { display: flex; gap: .8rem; padding: .6rem 0; border-bottom: 1px solid rgba(255,255,255,.1); font-size: .95rem; color: var(--mint-dim); }
.aside-card .ac-row:last-child { border-bottom: 0; }
.aside-card .ac-row b { color: #fff; font-weight: 600; }

/* ---------- Footer ---------- */
.site-footer { background: var(--forest-deep); color: var(--mint-dim); padding-block: clamp(3rem, 6vw, 4.5rem) 2rem; }
.footer-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap: 2.4rem; }
.footer-brand .brand { color: var(--mint); margin-bottom: 1rem; }
.footer-brand p { font-size: .95rem; max-width: 30ch; }
.footer-col h4 { font-family: var(--sans); font-size: .78rem; letter-spacing: .16em; text-transform: uppercase; color: var(--sage); margin-bottom: 1.1rem; }
.footer-col ul { list-style: none; display: grid; gap: .6rem; }
.footer-col a, .footer-col li { font-size: .93rem; color: var(--mint-dim); transition: color var(--t); }
.footer-col a:hover { color: #fff; }
.footer-social { display: flex; gap: .8rem; margin-top: 1.2rem; }
.footer-social a { width: 38px; height: 38px; border-radius: 50%; display: grid; place-items: center; background: rgba(255,255,255,.08); color: var(--mint); transition: background var(--t); }
.footer-social a:hover { background: var(--sage); color: var(--forest-deep); }
.footer-social svg { width: 18px; height: 18px; }
.footer-bottom { margin-top: 2.6rem; padding-top: 1.6rem; border-top: 1px solid rgba(255,255,255,.1); display: flex; flex-wrap: wrap; gap: 1rem; justify-content: space-between; font-size: .85rem; }
.footer-bottom a { color: var(--mint-dim); }
.footer-bottom a:hover { color: #fff; }

/* ---------- Breadcrumb ---------- */
.breadcrumb { font-size: .82rem; color: var(--mint-dim); margin-bottom: 1.4rem; }
.breadcrumb ol { list-style: none; display: flex; flex-wrap: wrap; gap: .5rem; justify-content: center; }
.breadcrumb li::after { content: "/"; margin-left: .5rem; opacity: .5; }
.breadcrumb li:last-child::after { display: none; }
.breadcrumb a { color: var(--sage); }

/* ---------- Related services (internal linking) ---------- */
.related-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: .8rem; max-width: 960px; margin-inline: auto; }
.related-link {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  background: var(--cream-2); border: 1px solid var(--border-soft); border-left: 3px solid var(--olive-soft);
  border-radius: var(--radius); padding: 1.05rem 1.3rem; font-family: var(--serif); color: var(--ink);
  transition: transform var(--t), box-shadow var(--t), background var(--t);
}
.related-link:hover { transform: translateY(-2px); box-shadow: var(--shadow-sm); background: var(--cream); color: var(--forest); }
.related-link span:last-child { color: var(--olive); }

/* ---------- Disclaimer ---------- */
.disclaimer { font-size: .85rem; color: var(--muted); border-top: 1px solid var(--border-soft); padding-top: 1.6rem; max-width: 80ch; }

/* Answer-first medical content */
.answer-section { padding-bottom: 2rem; }
.answer-box { max-width: 920px; margin: 0 auto; padding: clamp(1.5rem, 4vw, 2.6rem); background: var(--cream-2); border: 1px solid var(--border-soft); border-left: 5px solid var(--sage); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); }
.answer-box h2 { margin-bottom: 1rem; }
.answer-lead { font-family: var(--serif); font-size: clamp(1.15rem, 2vw, 1.42rem); line-height: 1.7; color: var(--body); }
.source-note { margin-top: 1rem; color: var(--muted); font-size: .86rem; line-height: 1.55; }
.quick-answer-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; max-width: 920px; margin: 1.4rem auto 0; overflow: hidden; border: 1px solid var(--border-soft); border-radius: var(--radius); background: var(--border-soft); }
.quick-answer-grid > div { background: var(--cream); padding: 1.25rem; }
.quick-answer-grid span { display: block; margin-bottom: .45rem; color: var(--forest); font-size: .73rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.quick-answer-grid p { font-family: var(--serif); color: var(--body); font-size: .96rem; line-height: 1.55; }
.references { max-width: 920px; margin: 0 auto; padding: clamp(1.5rem, 4vw, 2.4rem); background: var(--cream-2); border: 1px solid var(--border-soft); border-radius: var(--radius-lg); }
.references ol { margin: 1.25rem 0 0; padding-left: 1.35rem; }
.references li { margin: .75rem 0; color: var(--body); line-height: 1.55; }
.references a { color: var(--forest); text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 820px) { .quick-answer-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .quick-answer-grid { grid-template-columns: 1fr; } }

/* Purpose-built TRT answer resource */
.trt-intro { padding-bottom: 2.5rem; }
.trt-intro-grid, .trt-split { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(280px, .65fr); gap: clamp(1.5rem, 4vw, 4rem); align-items: center; }
.trt-intro .answer-box { max-width: none; margin: 0; }
.trt-facts { padding: 1.6rem; border: 1px solid var(--border-soft); border-radius: var(--radius-lg); background: rgba(255,255,255,.34); }
.trt-facts h2 { font-size: 1.35rem; margin-bottom: .8rem; }
.trt-facts dl > div { padding: .75rem 0; border-top: 1px solid var(--border-soft); }
.trt-facts dt, .card-label { color: var(--forest); font: 700 .7rem/1.4 var(--sans); letter-spacing: .11em; text-transform: uppercase; }
.trt-facts dd { margin: .25rem 0 0; color: var(--body); font-family: var(--serif); line-height: 1.45; }
.trt-jump { display: flex; flex-wrap: wrap; gap: .65rem; align-items: center; margin-top: 1.5rem; }
.trt-jump span { font: 700 .72rem var(--sans); letter-spacing: .1em; text-transform: uppercase; }
.trt-jump a { padding: .55rem .8rem; border: 1px solid var(--border-soft); border-radius: 999px; color: var(--forest); font-size: .82rem; background: var(--cream-2); }
.trt-jump a:hover { border-color: var(--sage); transform: translateY(-1px); }
.section-copy .lead { font-size: 1.2rem; }
.symptom-groups { display: grid; gap: .75rem; }
.symptom-groups section, .plain-card { padding: 1.35rem 1.5rem; background: var(--cream-2); border: 1px solid var(--border-soft); border-radius: var(--radius); }
.symptom-groups h3 { font-size: 1.1rem; margin-bottom: .4rem; }
.symptom-groups ul, .candidate-card ul, .check-list { margin: 0; padding-left: 1.15rem; color: var(--body); }
.symptom-groups li, .candidate-card li, .check-list li { margin: .32rem 0; line-height: 1.5; }
.decision-path { max-width: 940px; margin: 2.2rem auto 0; padding: 0; list-style: none; }
.decision-path li { display: grid; grid-template-columns: 58px 1fr; gap: 1.2rem; padding: 1.35rem 0; border-top: 1px solid var(--border-soft); }
.decision-path li > span, .monitor-grid article > span { color: var(--sage); font: 700 .76rem var(--sans); letter-spacing: .1em; }
.decision-path h3, .monitor-grid h3 { margin-bottom: .35rem; font-size: 1.2rem; }
.decision-path p, .monitor-grid p { margin: 0; }
.context-note { max-width: 940px; margin: 1.5rem auto 0; padding: 1.2rem 1.4rem; border-left: 4px solid var(--sage); background: var(--cream-2); color: var(--body); }
.candidate-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-top: 2rem; }
.candidate-card { padding: clamp(1.4rem, 3vw, 2rem); border: 1px solid rgba(255,255,255,.25); border-radius: var(--radius-lg); background: #f6f3eb; }
.candidate-card--yes { background: #e6eee7; }
.candidate-card .card-label { color: var(--forest); margin-bottom: 1rem; }
.candidate-card ul { color: var(--body); }
.candidate-card li { margin: .6rem 0; }
.trt-split--top { align-items: start; }
.plain-card h3 { margin-bottom: 1rem; }
.check-list { list-style: none; padding: 0; }
.check-list li { position: relative; padding-left: 1.4rem; margin: .7rem 0; }
.check-list li::before { content: "✓"; position: absolute; left: 0; color: var(--sage); font-weight: 700; }
.monitor-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; margin-top: 2rem; background: var(--border-soft); border: 1px solid var(--border-soft); border-radius: var(--radius-lg); overflow: hidden; }
.monitor-grid article { padding: 1.5rem; background: var(--cream-2); }
.monitor-grid article > span { display: block; margin-bottom: 1rem; }
.local-care { padding: clamp(1.5rem, 4vw, 3rem); border: 1px solid var(--border-soft); border-radius: var(--radius-lg); background: var(--cream-2); box-shadow: var(--shadow-sm); }
.location-facts { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 1.2rem; padding: 1.4rem 0; margin: 1.2rem 0; border-top: 1px solid var(--border-soft); border-bottom: 1px solid var(--border-soft); }
.related-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.related-grid a { display: block; padding: 1.4rem; border: 1px solid var(--border-soft); border-radius: var(--radius); background: var(--cream-2); }
.related-grid span { color: var(--sage-dark); font: 700 .7rem var(--sans); letter-spacing: .1em; text-transform: uppercase; }
.related-grid strong { display: block; margin: .55rem 0; color: var(--ink); font: 500 1.2rem var(--serif); }
.related-grid p { margin: 0; font-size: .92rem; }
@media (max-width: 900px) { .trt-intro-grid, .trt-split { grid-template-columns: 1fr; } .monitor-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 680px) { .candidate-grid, .related-grid, .location-facts { grid-template-columns: 1fr; } .monitor-grid { grid-template-columns: 1fr; } .decision-path li { grid-template-columns: 42px 1fr; } }

/* ---------- Medical-certificate overview and chooser ---------- */
.certificate-hub-overview h2 { max-width: 21ch; }
.lang-th .certificate-hub-overview .answer-lead, .lang-zh .certificate-hub-overview .answer-lead { font-family: inherit; }
.certificate-hub-heading { max-width: 820px; margin-bottom: 2.2rem; }
.certificate-hub-heading h2 { margin-bottom: 1rem; }
.certificate-hub-heading p, .certificate-hub-type p, .certificate-hub-definitions dd,
.certificate-document-fields dd, .certificate-hub-prepare p, .certificate-hub-visit p { line-height: 1.8; }
.certificate-hub-table-wrap { overflow-x: auto; border: 1px solid var(--border-soft); border-radius: var(--radius); }
.certificate-hub-table-hint { display: none; font-size: .85rem; margin-bottom: .8rem; color: var(--forest); }
.certificate-hub-table-wrap:focus-visible { outline: 2px solid var(--forest); outline-offset: 4px; }
.certificate-hub-table { border-collapse: collapse; width: 100%; min-width: 780px; font-size: .95rem; line-height: 1.65; }
.certificate-hub-table th, .certificate-hub-table td { padding: 1.2rem; text-align: left; vertical-align: top; border-bottom: 1px solid var(--border-soft); }
.certificate-hub-table thead { background: var(--forest); color: #fff; }
.certificate-hub-table thead th { font-weight: 600; }
.certificate-hub-table tbody th { width: 23%; color: var(--forest); }
.certificate-hub-table td:nth-child(2) { width: 35%; }
.certificate-hub-table td:nth-child(3) { width: 19%; }
.certificate-hub-table tbody tr:last-child > * { border-bottom: 0; }
.certificate-hub-table tbody tr:hover { background: var(--cream); }
.certificate-hub-table a, .certificate-hub-validity a { text-decoration: underline; text-underline-offset: .2em; }
.certificate-hub-note { max-width: 90ch; font-size: .92rem; line-height: 1.75; margin-top: 1.2rem; }
.certificate-hub-type { display: grid; grid-template-columns: .8fr 1.4fr; gap: 3rem; border-top: 1px solid var(--border-soft); padding: 2.6rem 0; scroll-margin-top: 110px; }
.certificate-hub-type:last-child { padding-bottom: 0; }
.certificate-hub-number { display: block; color: var(--sage-dark); font-size: .85rem; letter-spacing: .1em; margin-bottom: 1rem; }
.certificate-hub-type h3 { font-size: clamp(1.6rem, 2.6vw, 2rem); line-height: 1.3; max-width: 22ch; }
.certificate-hub-type h3 a:hover { text-decoration: underline; text-underline-offset: .15em; }
.certificate-hub-type .certificate-citations { margin-top: 1.2rem; }
.certificate-hub-definitions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem 3rem; }
.certificate-hub-definitions > div { padding-top: 1.25rem; border-top: 1px solid var(--border-soft); }
.certificate-hub-definitions dt { color: var(--forest); font-weight: 600; margin-bottom: .6rem; }
.certificate-hub-definitions dd, .certificate-document-fields dd { margin: 0; }
.certificate-hub-reading { max-width: 960px; }
.certificate-document-fields > div { display: grid; grid-template-columns: 1fr 1.8fr; gap: 2rem; padding: 1.1rem 0; border-bottom: 1px solid var(--border-soft); }
.certificate-document-fields dt { font-weight: 600; color: var(--forest); }
.certificate-hub-prepare { display: grid; grid-template-columns: .8fr 1.4fr; gap: 3rem; }
.certificate-hub-prepare-section { background: var(--cream-2); }
.certificate-hub-prepare h2 { color: var(--forest); margin-bottom: 1rem; }
.certificate-hub-prepare p, .certificate-hub-prepare li { color: var(--body); }
.certificate-hub-prepare ul { padding-left: 1.2rem; margin-bottom: 1.5rem; }
.certificate-hub-prepare li { line-height: 1.8; margin-bottom: .8rem; }
.certificate-hub-validity th { width: 30%; text-align: left; color: var(--forest); }
.certificate-hub-validity th, .certificate-hub-validity td { line-height: 1.75; vertical-align: top; }
.certificate-hub-visit { display: grid; grid-template-columns: 1fr 1.1fr; align-items: center; gap: 3rem; }
.certificate-hub-visit figure { margin: 0; }
.certificate-hub-visit img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--radius-lg); }
.certificate-hub-visit h2 { margin-bottom: 1rem; }
.certificate-hub-visit address { font-style: normal; line-height: 1.8; margin-block: 1.2rem; }
.certificate-hub-visit .btn-row { margin-block: 1.5rem; }
.certificate-hub-visit .btn { white-space: normal; text-align: center; }
.certificate-visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
@media (max-width: 900px) {
  .certificate-hub-overview h2 { max-width: none; }
}
@media (max-width: 800px) {
  .certificate-hub-table-hint { display: block; }
  .certificate-hub-type, .certificate-hub-prepare, .certificate-hub-visit { grid-template-columns: 1fr; gap: 1.5rem; }
  .certificate-hub-type h3 { max-width: none; }
  .certificate-hub-visit img { aspect-ratio: 3 / 2; }
}
@media (max-width: 560px) {
  .certificate-hub-definitions { grid-template-columns: 1fr; }
  .certificate-document-fields > div { grid-template-columns: 1fr; gap: .4rem; }
  .certificate-hub-validity th { width: 38%; }
  .certificate-hub-validity th, .certificate-hub-validity td { padding: .9rem .6rem; font-size: .9rem; }
}

/* ---------- Skip link & a11y ---------- */
.skip-link { position: absolute; left: -999px; top: 0; background: var(--mint); color: var(--forest); padding: .7rem 1.2rem; z-index: 100; border-radius: 0 0 8px 0; }
.skip-link:focus { left: 0; }
:focus-visible { outline: 2px solid var(--olive); outline-offset: 2px; }

/* ---------- Floating LINE button ---------- */
.line-fab { position: fixed; right: 20px; bottom: 20px; z-index: 50; display: inline-flex; align-items: center; gap: .55rem; background: #06C755; color: #fff; padding: .8rem 1.2rem; border-radius: 999px; font-family: var(--sans); font-weight: 700; font-size: .9rem; box-shadow: var(--shadow-md); transition: transform var(--t); }
.line-fab:hover { transform: translateY(-3px); }
.line-fab svg { width: 20px; height: 20px; }

/* ---------- Reveal on scroll ----------
   Only hides when JS is active (html.js). Without JS, or if the observer
   never fires, content is fully visible — it can never be permanently hidden. */
html.js .reveal { opacity: 0; transform: translateY(22px); transition: opacity .6s ease, transform .6s cubic-bezier(.2,.6,.2,1); }
html.js .reveal.in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  html.js .reveal { opacity: 1; transform: none; transition: none; }
  html { scroll-behavior: auto; }
}

/* ---------- Responsive ---------- */
@media (max-width: 960px) {
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 2rem; }
  .location { grid-template-columns: 1fr; }
  .loc-map { min-height: 300px; }
}
@media (max-width: 860px) {
  .nav-links, .nav-actions .btn, .nav-actions .lang { display: none; }
  .hamburger { display: inline-flex; }
  .split { grid-template-columns: 1fr; }
  .split--rev .split-media { order: 0; }
  .tri-media { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  body { font-size: 16px; }
  .footer-grid { grid-template-columns: 1fr; }
  .process-row { grid-template-columns: 52px 1fr; gap: 1rem; padding: 1.3rem; }
  .hero-badges { gap: 1rem 1.6rem; }
}
/* Bilingual navigation and Thai typography */
.language-switcher{display:inline-flex;align-items:center;gap:.38rem;padding:.38rem .55rem;border:1px solid rgba(255,255,255,.32);border-radius:999px;font-size:.76rem;line-height:1;color:rgba(255,255,255,.64);white-space:nowrap}
.language-switcher a{color:inherit;text-decoration:none;font-weight:600;letter-spacing:.04em}
.language-switcher a:hover,.language-switcher a:focus-visible,.language-switcher .is-active{color:#fff}
.language-switcher .is-active{text-decoration:underline;text-underline-offset:.2em}
.mobile-language{padding:.5rem 0 .75rem}
.mobile-language .language-switcher{border-color:var(--border-soft);color:var(--body)}
.mobile-language .language-switcher a:hover,.mobile-language .language-switcher a:focus-visible,.mobile-language .language-switcher .is-active{color:var(--forest)}
.lang-th{font-family:"Noto Sans Thai","Leelawadee UI",Tahoma,sans-serif;line-height:1.72}
.lang-th h1,.lang-th h2,.lang-th h3,.lang-th h4,.lang-th .btn{font-family:"Noto Sans Thai","Leelawadee UI",Tahoma,sans-serif}
.lang-th h1,.lang-th h2,.lang-th h3{line-height:1.28;letter-spacing:0}
.lang-th .btn{line-height:1.35;padding-block:.82rem;white-space:normal;text-align:center}
.lang-th .nav-links a{letter-spacing:0}
.lang-zh{font-family:"Noto Sans SC","PingFang SC","Microsoft YaHei",sans-serif;line-height:1.72}
.lang-zh h1,.lang-zh h2,.lang-zh h3,.lang-zh h4,.lang-zh .btn{font-family:"Noto Sans SC","PingFang SC","Microsoft YaHei",sans-serif}
.lang-zh h1,.lang-zh h2,.lang-zh h3{line-height:1.3;letter-spacing:0}
.lang-zh .btn{line-height:1.4;padding-block:.82rem;white-space:normal;text-align:center}
.lang-zh .nav-links a{letter-spacing:0}
@media (max-width:900px){.nav-actions .language-switcher{display:none}}
.translation-notice{margin-top:1.25rem;padding:1rem 1.2rem;border:1px solid var(--border-soft);border-radius:12px;background:var(--cream-2);color:var(--body)}
.mobile-drawer .mobile-language .language-switcher{border-color:rgba(255,255,255,.55);color:rgba(255,255,255,.72)}
.mobile-drawer .mobile-language .language-switcher a:hover,.mobile-drawer .mobile-language .language-switcher a:focus-visible,.mobile-drawer .mobile-language .language-switcher .is-active{color:#fff}

/* Work-permit page hero media */
.lab-test-details{margin-top:1rem;border-top:1px solid var(--border);padding-top:1rem}
.lab-education h2{max-width:28ch;margin-bottom:2rem}
.lab-guide-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem 3rem}
.lab-guide-grid article{border-top:1px solid var(--border);padding-top:1.25rem;scroll-margin-top:110px}
.lab-guide-grid h3{font-size:1.4rem;line-height:1.35;margin-bottom:.8rem}
.lab-guide-grid p{font-family:var(--sans);font-size:1rem;line-height:1.8;color:var(--body)}
.lab-guide-next{margin-top:2rem}
.lab-guide-next .btn{white-space:normal;text-align:center}
@media(max-width:700px){.lab-guide-grid{grid-template-columns:1fr;gap:1.5rem}.lab-guide-grid h3{font-size:1.25rem}}
.lab-test-details summary{cursor:pointer;font-weight:600;color:var(--forest);line-height:1.6}
.lab-test-details summary:focus-visible{outline:2px solid var(--forest);outline-offset:5px}
.lab-test-details[open] summary{margin-bottom:.75rem}
.lab-test-details ul{padding-left:1.25rem;line-height:1.8}
.lab-test-details p{overflow-wrap:anywhere}
.lab-price{font-size:1.5rem;font-weight:600;color:var(--forest)}
.footer-lab-children{padding-left:1rem!important;border-left:1px solid var(--mint-dim);margin-top:.6rem!important}
.wp-hero-image{max-width:760px;margin:2.25rem auto 0;border-radius:18px;overflow:hidden;box-shadow:0 24px 60px rgba(0,0,0,.2)}
.wp-hero-image img{display:block;width:100%;height:280px;object-fit:cover;object-position:center 44%}
@media (max-width:620px){.wp-hero-image{margin-top:1.5rem;border-radius:12px}.wp-hero-image img{height:190px}}

/* Vaccine education: readable answers, factual comparisons and clear next steps. */
.vaccine-reading-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.35fr);gap:clamp(2rem,6vw,5.5rem);align-items:start}
.vaccine-reading-grid h2{color:var(--forest);font-size:clamp(1.8rem,3vw,2.7rem);line-height:1.16;max-width:24ch;margin:0}
.vaccine-reading-grid p,.vaccine-copy li{color:var(--body);font-size:1rem;line-height:1.85}
.vaccine-copy p+p{margin-top:1.15rem}
.vaccine-copy ul{padding-left:1.25rem;margin-block:1.2rem}
.vaccine-section--tint{background:var(--cream-2)}
.vaccine-section,.vaccine-overview,.vaccine-visit,.vaccine-sources{scroll-margin-top:100px}
.vaccine-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem;border-block:1px solid var(--border);padding-block:1.7rem;margin:2.5rem 0 0}
.vaccine-facts dt{color:var(--muted);font-size:.82rem;line-height:1.5;margin-bottom:.5rem}
.vaccine-facts dd{color:var(--forest);font-size:1.15rem;font-weight:600;line-height:1.5;margin:0}
.vaccine-copy .vaccine-inline-sources{font-size:.8rem;line-height:1.6;margin-top:1.5rem}
.vaccine-inline-sources a{display:inline-block;padding:.15rem .3rem;color:var(--forest);text-decoration:underline;text-underline-offset:3px}
.vaccine-table-wrap{margin-top:2.5rem;overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius);background:var(--cream-2)}
.vaccine-table-hint{display:none}
.vaccine-table{width:100%;border-collapse:collapse;text-align:left;font-size:.95rem;line-height:1.7}
.vaccine-table caption{text-align:left;padding:1.3rem 1.5rem;font-weight:600;color:var(--forest)}
.vaccine-table thead{background:var(--forest);color:white}
.vaccine-table th,.vaccine-table td{padding:1rem 1.5rem;vertical-align:top}
.vaccine-table tbody th{font-weight:500;color:var(--forest);width:32%}
.vaccine-table tbody td{color:var(--body);width:34%}
.vaccine-table tbody tr+tr{border-top:1px solid var(--border-soft)}
.vaccine-visit-inner{max-width:900px;margin-inline:auto;padding:clamp(1.5rem,4vw,3rem);background:var(--cream-2);border:1px solid var(--border);border-radius:var(--radius-lg)}
.vaccine-visit h2{color:var(--forest);margin-bottom:1.25rem}
.vaccine-visit p{color:var(--body);line-height:1.8}
.vaccine-visit .vaccine-location{font-weight:600;margin-top:1.5rem}
.vaccine-visit .btn-row{margin-block:1.5rem}
.vaccine-directions,.vaccine-crosslink a{color:var(--forest);text-decoration:underline;text-underline-offset:4px}
.vaccine-crosslink{padding-block:1.5rem}
.vaccine-urgent{margin-block:2rem;background:#fff5e8;border-left:4px solid #9c542f;border-radius:0 var(--radius) var(--radius) 0;padding:1.5rem 2rem;color:#433124}
.vaccine-urgent h2{scroll-margin-top:100px}
.vaccine-urgent h2{font-size:1.6rem;line-height:1.3;color:#6b361c;margin-bottom:.75rem}
.vaccine-urgent p{line-height:1.8;color:#433124;max-width:90ch}
.vaccine-urgent a{color:#6b361c;text-decoration:underline;text-underline-offset:4px}
.vaccine-visit .vaccine-visit-urgent{border-left:3px solid #9c542f;padding-left:1rem;margin-top:1.25rem}
.vaccine-sources{padding-top:1rem;padding-bottom:2.5rem}
.vaccine-sources h2{font-size:1.5rem;color:var(--forest)}
.vaccine-sources p,.vaccine-sources li{font-size:.85rem;line-height:1.8;color:var(--body)}
.vaccine-sources ol{padding-left:1.4rem;display:grid;gap:.35rem}
.vaccine-sources li{scroll-margin-top:120px}
.vaccine-sources a{color:var(--forest);text-decoration:underline;text-underline-offset:3px}
.vaccine-guide-list{list-style:none;margin:2rem 0 0;padding:0;border-top:1px solid var(--border)}
.vaccine-guide-list li{border-bottom:1px solid var(--border)}
.vaccine-guide-list a{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:2rem 1rem;transition:background var(--t)}
.vaccine-guide-list a:hover{background:var(--cream-2)}
.vaccine-guide-list h3{color:var(--forest);font-size:1.7rem;margin-bottom:.6rem}
.vaccine-guide-list p{color:var(--body);max-width:70ch;line-height:1.7;margin:0}
.vaccine-guide-list a>span{color:var(--forest);font-size:.9rem;flex-shrink:0}
.vaccine-hub h2{color:var(--forest)}
@media(max-width:760px){
  .vaccine-reading-grid{grid-template-columns:1fr;gap:1.5rem}
  .vaccine-reading-grid h2{max-width:none}
  .vaccine-facts{gap:1.25rem}
  .vaccine-table{min-width:530px}
  .vaccine-table-hint{display:block;margin:2rem 0 .75rem;color:var(--muted);font-size:.85rem}
  .vaccine-table-wrap{margin-top:.75rem}
  .vaccine-table th,.vaccine-table td{padding:.8rem 1rem}
  .vaccine-guide-list a{flex-direction:column;align-items:flex-start;gap:1rem;padding:1.5rem 0}
  .vaccine-urgent{max-width:calc(100% - 2 * var(--gutter));padding:1.25rem}
}
@media(max-width:620px){.service-toc .vaccine-toc>div{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem 1rem}}
@media(max-width:480px){.vaccine-facts{grid-template-columns:1fr;gap:1rem}.vaccine-facts>div+div{border-top:1px solid var(--border-soft);padding-top:1rem}.vaccine-visit .btn{width:100%;text-align:center;white-space:normal}}

/* Vaccine hub: a comparison-led overview, distinct from the detailed guides. */
.vaccine-hub-heading{max-width:780px;text-align:center;margin:0 auto 2.5rem}
.vaccine-hub-heading h2{color:var(--forest);font-size:clamp(2rem,3.2vw,2.8rem);line-height:1.2;margin-bottom:1rem}
.vaccine-hub-heading p{color:var(--body);line-height:1.8;margin-bottom:0}
.vaccine-hub-comparison,.vaccine-choice,.vaccine-appointment,.vaccine-hub-location{scroll-margin-top:100px}
.vaccine-hub-table{min-width:850px;table-layout:fixed;font-size:.94rem}
.vaccine-hub-table th,.vaccine-hub-table td{padding:1.25rem 1.2rem}
.vaccine-hub-table thead th:nth-child(1),.vaccine-hub-table tbody th{width:20%}
.vaccine-hub-table thead th:nth-child(2),.vaccine-hub-table tbody td:nth-child(2){width:26%}
.vaccine-hub-table thead th:nth-child(3),.vaccine-hub-table tbody td:nth-child(3){width:24%}
.vaccine-hub-table thead th:nth-child(4),.vaccine-hub-table tbody td:nth-child(4){width:30%}
.vaccine-hub-table tbody th a{display:inline-block;color:var(--forest);font-size:1.08rem;font-weight:600;text-decoration:underline;text-underline-offset:5px}
.vaccine-hub-table tbody tr:nth-child(even){background:var(--cream)}
.vaccine-hub-table .vaccine-inline-sources{font-size:.76rem;line-height:1.5;margin:.75rem 0 0}
.vaccine-hub-table-note{color:var(--body);font-size:.9rem;line-height:1.8;margin:1.2rem 0 0;max-width:100ch}
.vaccine-choice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2.25rem}
.vaccine-choice-grid article{border-top:2px solid var(--forest);padding-top:1.5rem}
.vaccine-choice-grid h3,.vaccine-steps h3{color:var(--forest);font-size:1.55rem;line-height:1.3;margin:0 0 1rem}
.vaccine-choice-grid p,.vaccine-steps p{color:var(--body);line-height:1.8;margin:0}
.vaccine-choice>.container>.vaccine-inline-sources,.vaccine-faq-sources .vaccine-inline-sources{color:var(--body);font-size:.8rem;line-height:1.8;margin-top:1.5rem}
.vaccine-steps{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2.5rem;margin:0;padding:0}
.vaccine-steps li{padding-top:1.25rem;border-top:1px solid var(--border)}
.vaccine-step-number{display:block;color:var(--forest);font-size:.85rem;font-weight:600;letter-spacing:.15em;margin-bottom:1.25rem}
.vaccine-faq-sources{max-width:800px;margin-top:-2rem;padding-bottom:2rem}
.vaccine-hub-location{background:var(--cream-2)}
.vaccine-location-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(2rem,5vw,5rem);align-items:center}
.vaccine-location-grid figure{margin:0}
.vaccine-location-grid img{display:block;width:100%;height:480px;object-fit:cover;border-radius:var(--radius-lg)}
.vaccine-location-grid h2{color:var(--forest);font-size:clamp(2rem,3vw,2.7rem);line-height:1.2;margin-bottom:1.2rem}
.vaccine-location-grid p{color:var(--body);line-height:1.8}
.vaccine-location-grid .eyebrow{color:var(--forest)}
.vaccine-location-grid .btn-row{margin-block:1.5rem}
.vaccine-hub-sources{padding-top:3rem}
.vaccine-hub-sources ol{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:3rem;row-gap:.7rem}
.vaccine-hub-sources li{padding-left:.25rem;overflow-wrap:anywhere}
@media(max-width:1000px){
  .vaccine-hub-comparison .vaccine-table-hint{display:block;font-size:.85rem;color:var(--body);margin-bottom:.75rem}
  .vaccine-hub-comparison .vaccine-table-wrap{margin-top:.75rem}
}
@media(max-width:760px){
  .vaccine-hub-heading{text-align:left;margin-bottom:2rem}
  .vaccine-appointment .vaccine-hub-heading{text-align:center}
  .vaccine-choice-grid,.vaccine-steps,.vaccine-location-grid{grid-template-columns:1fr;gap:2rem}
  .vaccine-location-grid img{height:280px;object-position:center 46%}
  .vaccine-hub-sources ol{grid-template-columns:1fr}
  .vaccine-location-grid .btn{white-space:normal;text-align:center}
}

/* Symptom-led general practice hub and educational guides. */
.gp-facts{background:var(--cream-2);border-bottom:1px solid var(--border-soft)}
.gp-facts>.container{display:flex;justify-content:center;gap:3rem;padding-block:1.3rem;flex-wrap:wrap;color:var(--forest);font-size:.9rem}
.gp-facts strong{margin-left:.6rem}
.service-toc .gp-toc{display:grid;grid-template-columns:130px minmax(0,1fr);gap:1.5rem;align-items:start}
.service-toc .gp-toc>p{font-size:.75rem;text-transform:uppercase;letter-spacing:.12em;color:var(--forest);margin:.25rem 0}
.service-toc .gp-toc>div{display:flex;flex-wrap:wrap;gap:.6rem 1.5rem}
.service-toc .gp-toc a{font-size:.82rem;line-height:1.6;max-width:36ch;text-decoration:underline;text-underline-offset:4px}
.gp-directory-intro{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center;margin-bottom:2.5rem}
.gp-directory-intro h2,.gp-reading h2,.gp-related h2{font-size:clamp(1.9rem,3vw,2.7rem);line-height:1.2;color:var(--forest)}
.gp-directory-intro p,.gp-guide-link p,.gp-steps p,.gp-copy p,.gp-copy li{color:var(--body);line-height:1.85}
.gp-guide-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:3.5rem}
.gp-guide-link{display:grid;grid-template-columns:2rem 1fr;gap:1rem;padding:2rem 0;border-top:1px solid var(--border);text-decoration:none;transition:background .2s}
.gp-guide-link:hover{background:var(--cream-2)}
.gp-guide-link:focus-visible{outline:2px solid var(--forest);outline-offset:6px}
.gp-guide-number{font-size:.75rem;letter-spacing:.1em;color:var(--forest);padding-top:.45rem}
.gp-guide-link h3,.gp-steps h3{font-size:1.5rem;line-height:1.3;color:var(--forest);margin:0 0 .8rem}
.gp-guide-link p{font-size:.95rem;margin:0 0 1rem;max-width:48ch}
.gp-guide-action{display:flex;justify-content:space-between;color:var(--forest);font-size:.82rem;font-weight:600}
.gp-guide-link:last-child{grid-column:1 / -1;max-width:none;background:var(--cream-2);padding:2rem}
.gp-guide-link:last-child p{max-width:80ch}
.gp-section,.gp-directory,.gp-urgent,.gp-visit,.gp-related,.gp-sources,#appointment{scroll-margin-top:110px}
.gp-section--tint{background:var(--cream-2)}
.gp-reading{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(2rem,6vw,6rem)}
.gp-reading h2{max-width:18ch;margin:0}
.gp-copy{font-size:1rem;max-width:70ch}
.gp-copy p{margin:0 0 1.2rem}
.gp-copy p:last-child{margin-bottom:0}
.gp-copy ul{padding-left:1.2rem;margin:1.2rem 0 0}
.gp-copy li+li{margin-top:.65rem}
.gp-copy .gp-inline-sources{font-size:.76rem;line-height:1.8;color:var(--body);margin-top:1.5rem}
.gp-inline-sources a,.gp-sources a{color:var(--forest);text-decoration:underline;text-underline-offset:3px}
.gp-step-heading{max-width:680px;margin:0 auto 2.7rem}
.gp-step-heading h2{color:var(--forest);font-size:clamp(2rem,3vw,2.8rem);line-height:1.2}
.gp-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2.5rem;list-style:none;padding:0;margin:0}
.gp-steps li{border-top:1px solid var(--border);padding-top:1.4rem}
.gp-steps li>span{display:block;color:var(--forest);letter-spacing:.15em;font-size:.8rem;margin-bottom:1.3rem}
.gp-steps p{font-size:.95rem;margin:0}
.gp-follow-link{padding-block:1.3rem;font-size:.9rem}
.gp-follow-link a{color:var(--forest);text-decoration:underline;text-underline-offset:5px}
.gp-urgent{max-width:calc(var(--max-width,1120px));background:#f3ece2;border-left:3px solid #936434;padding:1.75rem 2rem;margin-block:1.5rem 3rem}
.gp-urgent h2{color:var(--forest);font-size:1.6rem;margin:0 0 .8rem}
.gp-urgent p{color:#3e3d36;line-height:1.8;margin:0;max-width:100ch}
.gp-related{padding-top:2rem}
.gp-related>div>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:3rem;margin-top:1.5rem}
.gp-related a{display:flex;justify-content:space-between;gap:1rem;border-bottom:1px solid var(--border);padding:1.2rem 0;color:var(--forest);text-decoration:none}
.gp-visit{padding-top:1.5rem}
.gp-visit-card{background:var(--forest);padding:clamp(2rem,6vw,4.5rem);text-align:center;border-radius:var(--radius-lg)}
.gp-visit-card h2{font-size:clamp(2rem,3.2vw,2.8rem);color:var(--cream);line-height:1.2;margin-bottom:1.25rem}
.gp-visit-card p{max-width:75ch;margin:0 auto 1rem;color:#e4eae4;line-height:1.8}
.gp-visit-card .eyebrow{color:#d0d9bf}
.gp-visit-card .gp-visit-price{margin-top:1.5rem;color:white;font-size:1.1rem}
.gp-visit-card .gp-fee-note{font-size:.83rem;max-width:72ch;margin-bottom:1.5rem}
.gp-visit-card .btn-row{justify-content:center;margin:1.75rem 0}
.gp-visit-card .btn{background:var(--cream);color:var(--forest)}
.gp-visit-card .btn--ghost{background:transparent;color:var(--cream);border-color:#a3b8ae}
.gp-text-link{color:var(--cream);text-decoration:underline;text-underline-offset:5px;font-size:.85rem}
.gp-sources{padding-top:1rem}
.gp-sources h2{color:var(--forest);font-size:1.45rem}
.gp-sources p,.gp-sources li{color:var(--body);font-size:.8rem;line-height:1.8}
.gp-sources ol{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem 3rem;padding-left:1.2rem}
.gp-sources li{scroll-margin-top:110px;overflow-wrap:anywhere;padding-left:.2rem}
@media(max-width:760px){
  .gp-facts>.container{gap:.7rem 1.5rem;padding-block:1rem;justify-content:flex-start}
  .service-toc .gp-toc{grid-template-columns:1fr;gap:.8rem}
  .service-toc .gp-toc>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem 1rem}
  .gp-directory-intro,.gp-guide-grid,.gp-reading,.gp-steps{grid-template-columns:1fr;gap:1.5rem}
  .gp-guide-grid{gap:0}
  .gp-guide-link{padding:1.5rem 0}
  .gp-guide-link:last-child{padding:1.5rem 1rem}
  .gp-reading h2{max-width:none}
  .gp-steps{gap:2rem}
  .gp-urgent{max-width:calc(100% - 2 * var(--gutter));padding:1.25rem}
  .gp-related>div>div,.gp-sources ol{grid-template-columns:1fr}
  .gp-visit-card .btn{white-space:normal;text-align:center;width:100%}
}
