/* urgentmed-core components. Colors/spacing come from theme.json presets (CSS custom properties);
   sensible fallbacks keep the blocks usable with any theme. */
:root {
  --um-red: var(--wp--preset--color--brand-red, #cf1f27);
  --um-red-dark: var(--wp--preset--color--brand-red-dark, #a8161d);
  --um-navy: var(--wp--preset--color--navy, #1f4e79);
  --um-sky: var(--wp--preset--color--sky, #007fb0);          /* logo blue, darkened to 4.5:1 with white */
  --um-sky-deep: var(--wp--preset--color--sky-deep, #0078a8);
  --um-navy-deep: var(--wp--preset--color--navy-deep, #12304f);
  --um-navy-soft: var(--wp--preset--color--navy-soft, #e8eff7);
  --um-ink: var(--wp--preset--color--ink, #16202b);
  --um-muted: var(--wp--preset--color--ink-muted, #4a5866);
  --um-line: var(--wp--preset--color--line, #d9e0e7);
  --um-surface: var(--wp--preset--color--surface, #fff);
  --um-surface-alt: var(--wp--preset--color--surface-alt, #f5f7fa);
  --um-success: var(--wp--preset--color--success, #1e7f4f);
  --um-warning: var(--wp--preset--color--warning, #9a6400);
  --um-emergency: var(--wp--preset--color--emergency, #b3261e);
  --um-radius-sm: 6px; --um-radius-md: 12px; --um-radius-lg: 20px;
  --um-shadow-card: 0 1px 2px rgba(18,48,79,.06), 0 8px 24px rgba(18,48,79,.08);
  --um-shadow-float: 0 12px 32px rgba(18,48,79,.16);
  --um-focus: 0 0 0 3px var(--um-navy);
}
.um-icon { width: 1.25em; height: 1.25em; flex: none; }
.um-muted { color: var(--um-muted); }
.um-eyebrow { font-size: .8125rem; letter-spacing: .08em; text-transform: uppercase; color: var(--um-navy); font-weight: 600; margin: 0 0 .5rem; }
.um-section__title { margin: 0 0 1.25rem; }

/* Buttons */
.um-block, .um-block * { box-sizing: border-box; }
.um-btn { box-sizing: border-box; display: inline-flex; align-items: center; gap: .5rem; min-height: 44px; padding: .625rem 1.25rem; border-radius: 999px; font-weight: 600; font-size: .9375rem; line-height: 1.2; text-decoration: none; border: 1.5px solid transparent; transition: background-color .16s ease-out, color .16s ease-out, border-color .16s ease-out; cursor: pointer; }
.um-btn:focus-visible, .um-tel:focus-visible, .um-cta-bar__btn:focus-visible, .um-service-card__link:focus-visible, .um-faq__q:focus-visible { outline: none; box-shadow: var(--um-focus); }
.um-btn--primary { background: var(--um-red); color: #fff; }
.um-btn--primary:hover { background: var(--um-red-dark); color: #fff; }
.um-btn--secondary { background: var(--um-surface); color: var(--um-navy); border-color: var(--um-navy); }
.um-btn--secondary:hover { background: var(--um-navy-soft); }
.um-btn--ghost { background: transparent; color: var(--um-navy); padding-left: .5rem; padding-right: .5rem; }
.um-btn--ghost:hover { text-decoration: underline; }
/* Every call button on the site — header, hero, location cards, NAP, final CTA band, sticky mobile bar —
   is the same logo-blue pill with white icon and text, selected by what it does (a tel: link) rather
   than by which block rendered it, so a new block cannot ship an off-brand call button. */
.um-btn[href^="tel:"], .um-cta-bar__btn[href^="tel:"], .um-mega__actions a[href^="tel:"] { background: var(--um-sky); border-color: var(--um-sky); color: #fff; }
.um-btn[href^="tel:"]:hover, .um-btn[href^="tel:"]:focus-visible, .um-cta-bar__btn[href^="tel:"]:hover, .um-cta-bar__btn[href^="tel:"]:focus-visible, .um-mega__actions a[href^="tel:"]:hover { background: var(--um-sky-deep); border-color: var(--um-sky-deep); color: #fff; text-decoration: none; }
.um-btn[href^="tel:"] .um-icon, .um-btn[href^="tel:"] svg, .um-cta-bar__btn[href^="tel:"] .um-icon, .um-cta-bar__btn[href^="tel:"] svg, .um-mega__actions a[href^="tel:"] svg { color: #fff; fill: currentColor; stroke: currentColor; }
.um-btn--ghost[href^="tel:"] { padding-left: 1rem; padding-right: 1rem; }
.um-context-employer .um-btn--primary { background: var(--um-navy); }
.um-context-employer .um-btn--primary:hover { background: var(--um-navy-deep); }
.um-tel { display: inline-flex; align-items: center; gap: .375rem; font-weight: 600; font-variant-numeric: tabular-nums; color: var(--um-navy); text-decoration: none; }
.um-tel:hover { text-decoration: underline; }

/* Badge */
.um-badge { display: inline-flex; align-items: center; gap: .4rem; font-size: .875rem; font-weight: 600; margin: 0 0 .5rem; }
.um-badge__dot { width: .6rem; height: .6rem; border-radius: 50%; background: currentColor; }
.um-badge--open { color: var(--um-success); }
.um-badge--closed { color: var(--um-muted); }

/* Location card */
.um-locations-band__grid { display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr)); }
.um-loc { background: var(--um-surface); border: 1px solid var(--um-line); border-radius: var(--um-radius-md); box-shadow: var(--um-shadow-card); overflow: hidden; display: flex; flex-direction: column; container-type: inline-size; }
.um-loc__photo { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; }
.um-loc__body { padding: 1.25rem; display: flex; flex-direction: column; gap: .5rem; }
.um-loc__name { margin: 0; font-size: 1.25rem; }
.um-loc__name a { color: var(--um-navy-deep); text-decoration: none; }
.um-loc__name a:hover { text-decoration: underline; }
.um-loc__rating { display: flex; align-items: center; gap: .4rem; margin: 0; font-size: .9375rem; }
.um-loc__stars { display: inline-flex; color: #F5A623; }
.um-loc__stars .um-icon { width: 1rem; height: 1rem; }
.um-loc__stars .um-icon--star { fill: currentColor; stroke: currentColor; }
.um-loc__rating a { color: var(--um-muted); }
.um-loc__addr { font-style: normal; color: var(--um-ink); }
.um-loc__landmark { display: block; color: var(--um-muted); font-size: .9375rem; }
.um-hours { display: grid; gap: .125rem; font-size: .9375rem; margin: .25rem 0 .5rem; }
.um-hours__row { display: flex; justify-content: space-between; gap: 1rem; border-bottom: 1px dashed var(--um-line); padding: .25rem 0; }
.um-hours__row span:last-child { font-variant-numeric: tabular-nums; font-weight: 600; }
.um-loc__actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: auto; padding-top: .5rem; }
.um-loc--compact { box-shadow: none; }
.um-loc--compact .um-loc__body { padding: 1rem; }

/* Location hero */
.um-location-hero { display: grid; gap: 2rem; align-items: center; grid-template-columns: 1fr; }
@media (min-width: 900px) { .um-location-hero { grid-template-columns: 1.1fr 1fr; } }
.um-location-hero__photo { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--um-radius-lg); box-shadow: var(--um-shadow-card); }
.um-location-hero__title { margin: 0 0 .5rem; }
.um-location-hero__addr { font-style: normal; font-size: 1.125rem; margin: .5rem 0 1rem; }
.um-location-hero__actions { display: flex; flex-wrap: wrap; gap: .625rem; }
.um-location-hero__note { margin-top: 1rem; }

/* Hours table */
.um-hours-table { width: 100%; border-collapse: collapse; font-size: .9375rem; }
.um-hours-table th, .um-hours-table td { text-align: left; padding: .5rem .25rem; border-bottom: 1px solid var(--um-line); }
.um-hours-table td { text-align: right; font-variant-numeric: tabular-nums; font-weight: 600; }
.um-hours-table .is-today { background: var(--um-navy-soft); }
.um-hours-table .is-today th::after { content: " · today"; color: var(--um-navy); font-weight: 500; }

/* NAP */
.um-nap { font-size: .9375rem; }
.um-nap__name { font-weight: 700; margin: 0 0 .25rem; }
.um-nap__name a { color: inherit; text-decoration: none; }
.um-nap__addr { font-style: normal; margin: 0 0 .25rem; }
.um-nap__phone { margin: 0 0 .25rem; }
.um-nap__hours { margin: 0; font-size: .875rem; }

/* Notices */
.um-notice { display: flex; gap: .75rem; align-items: flex-start; padding: 1rem 1.25rem; border-radius: var(--um-radius-md); border: 1px solid var(--um-line); border-left-width: 4px; background: var(--um-surface); }
.um-notice p { margin: 0; }
.um-notice--emergency { border-left-color: var(--um-emergency); }
.um-notice--emergency .um-icon { color: var(--um-emergency); width: 1.5rem; height: 1.5rem; }
.um-notice--warning { border-left-color: var(--um-warning); }
.um-notice.is-compact { padding: .625rem 1rem; font-size: .9375rem; }

/* Service grid */
.um-service-grid__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 16rem), 1fr)); }
.um-service-grid--cols-2 .um-service-grid__list { grid-template-columns: repeat(auto-fill, minmax(min(100%, 22rem), 1fr)); }
.um-service-grid--cols-4 .um-service-grid__list { grid-template-columns: repeat(auto-fill, minmax(min(100%, 13rem), 1fr)); }
.um-service-card { margin: 0; }
.um-service-card__link { display: flex; flex-direction: column; gap: .5rem; height: 100%; padding: 1.25rem; background: var(--um-surface); border: 1px solid var(--um-line); border-radius: var(--um-radius-md); text-decoration: none; color: var(--um-ink); transition: border-color .16s ease-out, box-shadow .16s ease-out; }
.um-service-card__link:hover { border-color: var(--um-navy); box-shadow: var(--um-shadow-card); }
.um-service-card__icon { width: 2rem; height: 2rem; color: var(--um-red); }
.um-context-employer .um-service-card__icon { color: var(--um-navy); }
.um-service-card__title { margin: 0; font-size: 1.125rem; color: var(--um-navy-deep); }
.um-service-card__desc { margin: 0; color: var(--um-muted); font-size: .9375rem; }
.um-service-card__avail { margin-top: auto; font-size: .8125rem; color: var(--um-navy); font-weight: 600; }

/* Provider grid */
.um-provider-grid { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 14rem), 1fr)); }
.um-provider-card a { display: block; text-decoration: none; color: inherit; }
.um-provider-card__photo { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: var(--um-radius-md); }
.um-provider-card__name { margin: .75rem 0 .125rem; font-size: 1.0625rem; }
.um-provider-card__role { margin: 0; color: var(--um-muted); font-size: .9375rem; }

/* FAQ */
.um-faq__item { border-top: 1px solid var(--um-line); }
.um-faq__item:last-of-type { border-bottom: 1px solid var(--um-line); }
.um-faq__q { cursor: pointer; padding: 1rem 2rem 1rem 0; font-weight: 600; list-style: none; position: relative; color: var(--um-navy-deep); }
.um-faq__q::-webkit-details-marker { display: none; }
.um-faq__q::after { content: ""; position: absolute; right: .5rem; top: 50%; width: .6rem; height: .6rem; border-right: 2px solid var(--um-navy); border-bottom: 2px solid var(--um-navy); transform: translateY(-70%) rotate(45deg); transition: transform .16s ease-out; }
.um-faq__item[open] .um-faq__q::after { transform: translateY(-30%) rotate(-135deg); }
.um-faq__a { padding: 0 0 1rem; color: var(--um-ink); }

/* Byline */
.um-byline { font-size: .875rem; color: var(--um-muted); border-top: 1px solid var(--um-line); padding-top: .75rem; }

/* Sticky CTA bar (mobile only) */
.um-cta-bar { position: fixed; inset: auto 0 0 0; z-index: 60; display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: 1px; background: var(--um-line); box-shadow: var(--um-shadow-float); padding-bottom: env(safe-area-inset-bottom); transform: translateY(0); transition: transform .2s ease-out; }
.um-cta-bar.is-hidden { transform: translateY(110%); }
.um-cta-bar__btn { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .125rem; min-height: 56px; padding: .5rem .25rem; background: var(--um-surface); color: var(--um-navy); font-size: .75rem; font-weight: 600; text-decoration: none; }
.um-cta-bar__btn .um-icon { width: 1.35rem; height: 1.35rem; }
.um-cta-bar__btn--primary { background: var(--um-red); color: #fff; }
.um-context-employer .um-cta-bar__btn--primary { background: var(--um-navy); }
/* Nav compression. Widened 2026-09-03 (D-66) from 1280–1439 to 1280–1679.
   Adding the Specialty Therapies tab put ~173px into the bar, and at 1440 — where the old rule
   stopped applying — the nav ran to 1338px while the Call Now / Check In buttons began at 1228px:
   the last two tabs, Pay My Bill and About, were rendering UNDERNEATH the buttons. Measured, not
   guessed; the collision was invisible in code review and obvious in a screenshot.
   The band now extends past every common laptop width, and the panel geometry above no longer
   depends on how many tabs there are, so the next tab will not silently reintroduce this. */
@media (min-width: 1280px) and (max-width: 1679px) { .um-mega__link { font-size: .84rem; padding: .7rem .3rem; } .um-mega__top { gap: 0; } .um-header__actions .um-btn { padding: .55rem .8rem; font-size: .9rem; } }
@media (min-width: 1024px) { .um-cta-bar { display: none; } }
body:has(.um-cta-bar) { padding-bottom: calc(60px + env(safe-area-inset-bottom)); }
html:has(.um-cta-bar) { scroll-padding-bottom: calc(72px + env(safe-area-inset-bottom)); } /* WCAG 2.4.11: focused/anchored elements are never hidden under the bar */
@media (forced-colors: active) { .um-cta-bar__btn, .um-btn { border: 1px solid ButtonText; } }
@media (min-width: 1024px) { body:has(.um-cta-bar) { padding-bottom: 0; } }

@media (prefers-reduced-motion: reduce) { .um-btn, .um-cta-bar, .um-faq__q::after, .um-service-card__link { transition: none; } }
.um-service-grid--cols-3 .um-service-grid__list { grid-template-columns: repeat(auto-fill, minmax(min(100%, 19rem), 1fr)); }
.um-service-card { display: flex; }
.um-service-card__link { flex: 1 1 auto; height: auto; min-height: 100%; }

/* Reviews (GBP display; no fabricated ratings) */
.um-reviews { margin-block: var(--wp--preset--spacing--80, 3rem); }
.um-reviews__title { text-align: center; margin-bottom: 1.5rem; }
.um-reviews__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr)); gap: 1.25rem; }
.um-review { margin: 0; padding: 1.25rem 1.5rem; border: 1px solid var(--wp--preset--color--line, #e5e7eb); border-radius: 12px; background: var(--wp--preset--color--surface, #fff); }
.um-review__stars { display: inline-flex; gap: 2px; color: #F5A623; margin-bottom: .5rem; }
.um-review__stars .um-icon { width: 1.05rem; height: 1.05rem; }
.um-review__stars .um-icon--star { fill: currentColor; stroke: currentColor; }
.um-review__quote { margin: 0 0 .75rem; font-size: var(--wp--preset--font-size--m, 1.05rem); line-height: 1.5; border: 0; padding: 0; }
.um-review__by { font-size: var(--wp--preset--font-size--s, .9rem); font-weight: 600; color: var(--wp--preset--color--ink, #1f2937); }
.um-review__src { font-weight: 400; color: var(--wp--preset--color--ink-muted, #6b7280); }
.um-reviews__more { text-align: center; margin-top: 1.25rem; }

/* Employer form (non-PHI) */
.um-employer-form { max-width: 56rem; margin-inline: auto; }
.um-employer-form__intro { color: var(--wp--preset--color--ink-muted, #4B5563); }
.um-form__group { border: 1px solid var(--wp--preset--color--line, #e5e7eb); border-radius: 12px; padding: 1.25rem 1.25rem .75rem; margin: 0 0 1.25rem; }
.um-form__group > legend { font-weight: 700; padding: 0 .5rem; color: var(--wp--preset--color--navy, #1F4E79); }
.um-form__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); gap: .9rem 1.25rem; }
.um-field { display: flex; flex-direction: column; gap: .3rem; margin-bottom: .5rem; }
.um-field--wide, .um-field--checks, .um-field--consent { grid-column: 1 / -1; }
.um-field label, .um-field legend { font-size: var(--wp--preset--font-size--s, .9rem); font-weight: 600; }
.um-field input:not([type=checkbox]), .um-field select, .um-field textarea { font: inherit; padding: .65rem .8rem; border: 1px solid var(--wp--preset--color--line, #cbd5e1); border-radius: 8px; background: #fff; min-height: 44px; }
.um-field input:focus-visible, .um-field select:focus-visible, .um-field textarea:focus-visible { outline: 3px solid var(--wp--preset--color--navy, #1F4E79); outline-offset: 2px; }
.um-field--checks { border: 0; padding: 0; margin: 0 0 .5rem; }
.um-checks { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr)); gap: .4rem .9rem; }
.um-check { display: flex; align-items: flex-start; gap: .55rem; font-weight: 400; min-height: 44px; padding: .35rem 0; }
.um-check input { width: 1.15rem; height: 1.15rem; margin-top: .2rem; accent-color: var(--wp--preset--color--navy, #1F4E79); flex: none; }
.um-req { color: var(--wp--preset--color--brand-red, #CF1F27); }
.um-hp { position: absolute !important; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.um-form__privacy { font-size: var(--wp--preset--font-size--xs, .8rem); color: var(--wp--preset--color--ink-muted, #4B5563); }
.um-notice--success { background: #ecfdf5; border: 1px solid #10b981; color: #065f46; border-radius: 10px; padding: .9rem 1rem; margin-bottom: 1rem; }
.um-notice[hidden] { display: none; }
.um-notice--error { background: #fef2f2; border: 1px solid #ef4444; color: #7f1d1d; border-radius: 10px; padding: .9rem 1rem; margin-bottom: 1rem; }
.um-form.is-busy button[type=submit] { opacity: .6; pointer-events: none; }
/* Contact page: topic chooser + one section per audience (details beside a short form). */
.um-choose { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); gap: 1rem; margin: 1.5rem 0 0; padding: 0; list-style: none; }
.um-choose__card { display: flex; flex-direction: column; gap: .35rem; padding: 1.1rem 1.2rem 1.2rem; border: 1px solid var(--wp--preset--color--line, #e5e7eb); border-radius: var(--um-radius-md, 12px); background: #fff; color: inherit; text-decoration: none; box-shadow: 0 1px 2px rgba(16,24,40,.05); transition: border-color .15s, box-shadow .15s, transform .15s; }
.um-choose__card:hover, .um-choose__card:focus-visible { border-color: var(--um-sky, #3B82F6); box-shadow: 0 6px 18px rgba(31,78,121,.12); transform: translateY(-2px); text-decoration: none; }
.um-choose__card[aria-current="true"] { border-color: var(--wp--preset--color--navy, #1F4E79); box-shadow: inset 0 0 0 2px var(--wp--preset--color--navy, #1F4E79); }
.um-choose__card .um-icon { width: 1.75rem; height: 1.75rem; color: var(--um-sky, #3B82F6); }
.um-choose__title { font-weight: 700; font-size: 1.1rem; color: var(--wp--preset--color--navy, #1F4E79); margin: .2rem 0 0; }
.um-choose__desc { margin: 0; font-size: .9375rem; color: var(--wp--preset--color--ink-muted, #4B5563); }
.um-choose__cta { margin-top: auto; padding-top: .5rem; font-weight: 600; color: var(--wp--preset--color--navy, #1F4E79); }
.um-contact-section { scroll-margin-top: 6rem; padding-top: 1rem; }
.um-contact-section.is-active .um-contact-section__title { color: var(--wp--preset--color--navy, #1F4E79); }
.um-contact-split { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 2rem 3rem; align-items: start; }
@media (max-width: 899px) { .um-contact-split { grid-template-columns: 1fr; } }
.um-contact-split__details > h3:first-child { margin-top: 0; }
.um-contact-split__details .wp-block-list { padding-left: 1.1rem; }
.um-contact-split__details li { margin-bottom: .55rem; }
.um-contact-form { background: var(--wp--preset--color--surface-alt, #F5F8FB); border: 1px solid var(--wp--preset--color--line, #e5e7eb); border-radius: var(--um-radius-md, 12px); padding: 1.25rem 1.25rem 1rem; }
.um-contact-form__title { margin: 0 0 .25rem; font-size: 1.15rem; }
.um-contact-form__intro { margin: 0 0 .9rem; font-size: .9375rem; color: var(--wp--preset--color--ink-muted, #4B5563); }
.um-form--compact .um-form__grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr)); gap: .7rem 1rem; }
.um-form--compact .um-field { margin-bottom: .25rem; }
.um-form--compact .um-form__actions { margin: .75rem 0 0; }
.um-form--compact .um-form__privacy { margin: .75rem 0 0; }
.um-quick { display: flex; flex-wrap: wrap; gap: .6rem; margin: .25rem 0 1rem; }
.um-quick .um-btn { min-height: 44px; }

/* ── Primary navigation: mega panels (desktop) / accordion overlay (mobile) ─────────────── */
.um-mega { position: relative; }
.um-mega__top { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: .25rem; }
.um-mega__item { position: relative; }
.um-mega__link { display: inline-flex; align-items: center; gap: .3rem; padding: .7rem .55rem; font-weight: 600; font-size: .92rem; white-space: nowrap; color: var(--um-navy, #1F4E79); background: none; border: 0; text-decoration: none; cursor: pointer; border-radius: 8px; line-height: 1.2; font-family: inherit; }
.um-mega__link:hover { background: var(--um-navy-soft, #eef3f8); color: var(--um-navy-deep, #12304F); }
.um-mega__link--pay { color: var(--um-red, #CF1F27); }
.um-mega__link:focus-visible { outline: 3px solid var(--um-navy, #1F4E79); outline-offset: 2px; }
/* Hub link + caret button read as ONE tab. (2026-09-03, D-65 — the tab used to be a single
   <button>; it is now an <a> to the hub with an adjacent <button> carrying the disclosure state.)
   The pair is joined visually: the anchor loses its right padding and its right radius, the button
   loses its left padding and left radius, and hover/expanded state is painted on both so the split
   is invisible to a sighted user while remaining two distinct controls to assistive technology. */
.um-mega__item--has-panel { display: inline-flex; align-items: center; }
.um-mega__hub { padding-right: .18rem; border-top-right-radius: 0; border-bottom-right-radius: 0; }
.um-mega__button { padding-left: .18rem; border-top-left-radius: 0; border-bottom-left-radius: 0; }
.um-mega__item--has-panel:hover .um-mega__hub,
.um-mega__item--has-panel:hover .um-mega__button,
.um-mega__item--has-panel:focus-within .um-mega__hub { background: var(--um-navy-soft, #eef3f8); color: var(--um-navy-deep, #12304F); }
.um-mega__hub:has(+ .um-mega__button[aria-expanded="true"]) { background: var(--um-navy-soft, #eef3f8); }
.um-mega__caret { width: .5rem; height: .5rem; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg) translateY(-2px); transition: transform .15s ease; }
.um-mega__button[aria-expanded="true"] { background: var(--um-navy-soft, #eef3f8); }
.um-mega__button[aria-expanded="true"] .um-mega__caret { transform: rotate(225deg) translateY(-2px); }

/* ── Mega panel geometry. Rewritten 2026-09-03 (D-66) after measuring every panel at three
   viewports. Two failures, both structural rather than cosmetic:

   1. HEIGHT. The Urgent Care panel measured 1,087px and overflowed the viewport at every size
      tested — 245px cut off at 1440x900, 345px at 1280x800, and still 65px at 1920x1080. "All
      urgent care services" and part of two columns were simply unreachable on a laptop. The cause
      was the grid wrapping five groups into two rows, so the tallest column (Physicals, 13 items)
      set the height of the first row and the second row stacked underneath it, leaving a large
      void beside "Care options" as well. Letting the groups sit in ONE row at wide viewports turns
      1,087px into roughly the height of the tallest column.

   2. RIGHT EDGE. Panels were right-aligned by POSITION — `:last-child, :nth-last-child(2)` — which
      is a rule about how many tabs exist, not about where the panel actually lands. Adding the
      Specialty Therapies tab shifted every position and four panels started overflowing the right
      edge (Locations by 356px at 1440, 478px at 1280). Positional alignment breaks every time a tab
      is added or removed; core.js now measures the panel and clamps it, so it is correct for any
      number of tabs and any label length.

   max-height + overflow-y stays as the safety net: content grows, and a panel should scroll rather
   than hide its own bottom. */
.um-mega__panel { position: absolute; top: calc(100% + .4rem); left: 0; z-index: 70; background: #fff; border: 1px solid var(--um-line, #e5e7eb); border-radius: 14px; box-shadow: 0 18px 44px rgba(16,32,52,.16); padding: 1.25rem 1.4rem 1rem; width: clamp(22rem, calc(var(--um-cols, 3) * 12.5rem + 3rem), calc(100vw - 2rem)); max-height: calc(100vh - 8.5rem); overflow-y: auto; overscroll-behavior: contain; }
/* One column per group, always in a single row. `auto-fit` was wrapping five groups into two rows
   inside a fixed 46rem panel, which is what made the Urgent Care panel 1,087px tall and left a void
   beside "Care options"; the width above now follows --um-cols (emitted per panel by render.php),
   so a five-group panel is wide and a one-group panel is narrow. */
.um-mega__inner { display: grid; grid-template-columns: repeat(var(--um-cols, 3), minmax(0, 1fr)); gap: .5rem 1.5rem; align-items: start; }
.um-mega__group { min-width: 0; }
.um-mega__heading { margin: 0 0 .5rem; font-size: .72rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; color: var(--um-ink-muted, #6b7280); }
.um-mega__heading-link { color: inherit; text-decoration: none; }
.um-mega__heading-link:hover { color: var(--um-red, #CF1F27); }
.um-mega__list { list-style: none; margin: 0 0 .9rem; padding: 0; }
.um-mega__list li + li { margin-top: .1rem; }
.um-mega__list a { display: block; padding: .42rem .55rem; margin-left: -.55rem; border-radius: 7px; color: var(--um-ink, #1f2937); text-decoration: none; font-size: .93rem; line-height: 1.35; }
.um-mega__list a:hover { background: var(--um-navy-soft, #eef3f8); color: var(--um-navy-deep, #12304F); }
.um-mega__footer { margin-top: .35rem; padding-top: .7rem; border-top: 1px solid var(--um-line, #e5e7eb); }
.um-mega__footer a { font-weight: 700; color: var(--um-red, #CF1F27); text-decoration: none; font-size: .93rem; }
.um-mega__footer a:hover { text-decoration: underline; }
.um-mega__group--loc .um-mega__addr { font-style: normal; font-size: .9rem; color: var(--um-ink, #1f2937); margin: 0 0 .3rem; }
.um-mega__meta { font-size: .82rem; color: var(--um-ink-muted, #6b7280); margin: 0 0 .5rem; }
.um-mega__actions { display: flex; gap: .5rem; flex-wrap: wrap; margin: 0 0 .9rem; }
.um-mega__actions a { font-size: .85rem; font-weight: 600; text-decoration: none; padding: .4rem .7rem; border-radius: 999px; border: 1px solid var(--um-line, #e5e7eb); color: var(--um-navy, #1F4E79); display: inline-flex; align-items: center; gap: .3rem; }
.um-mega__actions .um-mega__solv { background: var(--um-red, #CF1F27); color: #fff; border-color: transparent; }
.um-mega__toggle { display: none; }

@media (max-width: 1279px) {
  .um-mega__toggle { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border: 1px solid var(--um-line, #e5e7eb); border-radius: 10px; background: #fff; cursor: pointer; }
  .um-mega__bars, .um-mega__bars::before, .um-mega__bars::after { display: block; width: 20px; height: 2px; background: var(--um-navy-deep, #12304F); border-radius: 2px; position: relative; }
  .um-mega__bars::before, .um-mega__bars::after { content: ""; position: absolute; left: 0; }
  .um-mega__bars::before { top: -6px; } .um-mega__bars::after { top: 6px; }
  .um-mega__toggle[aria-expanded="true"] .um-mega__bars { background: transparent; }
  .um-mega__toggle[aria-expanded="true"] .um-mega__bars::before { top: 0; transform: rotate(45deg); }
  .um-mega__toggle[aria-expanded="true"] .um-mega__bars::after { top: 0; transform: rotate(-45deg); }
  .um-mega__top { display: none; position: fixed; inset: var(--um-header-h, 64px) 0 0 0; z-index: 80; flex-direction: column; align-items: stretch; gap: 0; background: #fff; padding: .5rem 1rem 6rem; overflow-y: auto; border-top: 1px solid var(--um-line, #e5e7eb); }
  .um-mega.is-open .um-mega__top { display: flex; }
  .um-mega__item { border-bottom: 1px solid var(--um-line, #f1f3f5); }
  .um-mega__link { width: 100%; justify-content: space-between; padding: .95rem .25rem; font-size: 1.02rem; border-radius: 0; }
  /* Mobile keeps the same split, laid out as one full-width row: tap the name to go to the hub,
     tap the caret to open the panel. Previously the label could only expand, so on a phone the hub
     pages were reachable only by opening a panel and scrolling to its footer. */
  .um-mega__item--has-panel { display: flex; flex-wrap: wrap; }
  .um-mega__hub { flex: 1 1 auto; width: auto; justify-content: flex-start; padding-right: .25rem; }
  .um-mega__button { flex: 0 0 auto; width: auto; padding-left: .75rem; padding-right: .25rem; }
  .um-mega__panel { flex: 1 0 100%; }
  .um-mega__panel { position: static; min-width: 0; max-width: none; border: 0; box-shadow: none; border-radius: 0; padding: 0 0 .6rem .25rem; }
  .um-mega__inner { grid-template-columns: 1fr; gap: 0; }
  .um-mega__heading { margin-top: .5rem; }
  .um-mega__list a { padding: .6rem .55rem; font-size: .97rem; }
}
@media (prefers-reduced-motion: reduce) { .um-mega__caret { transition: none; } }

/* Expandable service tiles — native <details>, icon-led, keyboard accessible */
.um-service-grid.is-expandable .um-service-grid__list { align-items: start; }
.um-service-card--expand { padding: 0; border: 0; background: none; }
.um-service-card__d { border: 1px solid var(--um-line, #e5e7eb); border-radius: 14px; background: var(--um-surface, #fff); overflow: hidden; transition: box-shadow .15s ease, border-color .15s ease; }
.um-service-card__d[open] { border-color: var(--um-navy, #1F4E79); box-shadow: 0 10px 28px rgba(16,32,52,.10); }
.um-service-card__summary { display: grid; grid-template-columns: auto 1fr auto; align-items: start; gap: .8rem; padding: 1.1rem 1.15rem; cursor: pointer; list-style: none; min-height: 44px; }
.um-service-card__summary::-webkit-details-marker { display: none; }
.um-service-card__summary:hover { background: var(--um-navy-soft, #eef3f8); }
.um-service-card__summary:focus-visible { outline: 3px solid var(--um-navy, #1F4E79); outline-offset: -3px; }
.um-service-card--expand .um-service-card__icon { color: var(--um-red, #CF1F27); width: 1.6rem; height: 1.6rem; margin-top: .1rem; }
.um-service-card__head { display: block; min-width: 0; }
.um-service-card--expand .um-service-card__title { display: block; font-family: var(--wp--preset--font-family--heading); font-weight: 700; font-size: 1.02rem; line-height: 1.25; color: var(--um-navy-deep, #12304F); margin: 0 0 .2rem; }
.um-service-card--expand .um-service-card__desc { display: block; font-size: .88rem; line-height: 1.45; color: var(--um-ink-muted, #6b7280); margin: 0; }
.um-service-card__chev { width: .55rem; height: .55rem; margin-top: .45rem; border-right: 2px solid var(--um-ink-muted, #6b7280); border-bottom: 2px solid var(--um-ink-muted, #6b7280); transform: rotate(45deg); transition: transform .18s ease; flex: none; }
.um-service-card__d[open] .um-service-card__chev { transform: rotate(225deg); }
.um-service-card__body { padding: 0 1.15rem 1.1rem 3.55rem; }
.um-service-card__points { list-style: none; margin: 0 0 .8rem; padding: 0; }
.um-service-card__points li { position: relative; padding-left: 1.1rem; font-size: .88rem; line-height: 1.5; color: var(--um-ink, #1f2937); margin-bottom: .3rem; }
.um-service-card__points li::before { content: ""; position: absolute; left: 0; top: .55em; width: .38rem; height: .38rem; border-radius: 50%; background: var(--um-red, #CF1F27); }
.um-service-card__actions { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; margin: 0 0 .5rem; }
.um-service-card__more { font-weight: 600; font-size: .88rem; color: var(--um-navy, #1F4E79); text-decoration: none; border-bottom: 1px solid currentColor; }
.um-service-card__more:hover { color: var(--um-red, #CF1F27); }
.um-service-card__cta { display: inline-flex; align-items: center; gap: .3rem; font-size: .82rem; font-weight: 700; padding: .4rem .8rem; border-radius: 999px; background: var(--um-red, #CF1F27); color: #fff; text-decoration: none; min-height: 34px; }
.um-service-card--expand .um-service-card__avail { display: block; font-size: .78rem; color: var(--um-ink-muted, #6b7280); font-weight: 600; }
@media (prefers-reduced-motion: reduce) { .um-service-card__chev, .um-service-card__d { transition: none; } }

/* related-intents: the deferral links that keep one intent per page */
.um-related { margin: 2rem 0 0; padding: 1.25rem 1.4rem; border: 1px solid var(--um-line, #e5e7eb); border-radius: 14px; background: var(--um-surface-alt, #f6f8fb); }
.um-related__title { margin: 0 0 .75rem; font-size: 1.05rem; }
.um-related__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); gap: .5rem .9rem; }
.um-related__link { display: flex; flex-direction: column; gap: .1rem; padding: .55rem .7rem; border-radius: 9px; text-decoration: none; background: #fff; border: 1px solid var(--um-line, #e5e7eb); }
.um-related__link:hover { border-color: var(--um-navy, #1F4E79); }
.um-related__phrase { font-size: .8rem; color: var(--um-ink-muted, #6b7280); }
.um-related__target { font-weight: 600; color: var(--um-navy, #1F4E79); }

/* service hero: text left, photo right; stacks on mobile with the photo first so the page opens on an image */
.um-service-hero { background: var(--um-surface-alt, #f6f8fb); padding: clamp(1.75rem, 4vw, 3.5rem) 0; }
.um-service-hero__inner { max-width: 84rem; margin: 0 auto; padding: 0 var(--wp--style--root--padding-right, 1.25rem) 0 var(--wp--style--root--padding-left, 1.25rem); display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: clamp(1.5rem, 4vw, 3.5rem); align-items: center; }
.um-service-hero:not(.has-photo) .um-service-hero__inner { grid-template-columns: minmax(0, 1fr); }
.um-service-hero__title { font-size: clamp(2rem, 3.6vw, 3rem); line-height: 1.1; margin: .25rem 0 .75rem; max-width: 22ch; }
.um-service-hero__media { margin: 0; border-radius: 18px; overflow: hidden; box-shadow: 0 18px 44px rgba(16,32,52,.14); aspect-ratio: 4 / 3; background: #dfe6ee; }
.um-service-hero__img { width: 100%; height: 100%; object-fit: cover; display: block; }
.um-service-hero__actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1rem; }
.um-service-hero__chips { list-style: none; margin: 1.25rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem .9rem; }
.um-service-hero__chips li { display: inline-flex; align-items: center; gap: .35rem; font-size: .9rem; font-weight: 600; color: var(--um-navy-deep, #12304F); }
.um-service-hero__chips .um-icon { width: 1rem; height: 1rem; color: var(--um-sky); }
@media (max-width: 899px) { .um-service-hero__inner { grid-template-columns: minmax(0, 1fr); } .um-service-hero__media { order: -1; aspect-ratio: 16 / 9; } }

/* mid-page conversion band */
.um-service-cta { margin: 2.5rem 0 0; padding: 1.75rem; border-radius: 16px; background: var(--um-navy-deep, #12304F); color: #fff; }
.um-service-cta__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.25rem 2rem; }
.um-service-cta__title { margin: 0 0 .35rem; color: #fff; font-size: 1.4rem; }
.um-service-cta__copy { margin: 0; color: rgba(255,255,255,.85); max-width: 40rem; }
.um-service-cta__copy a { color: #fff; text-decoration: underline; text-underline-offset: .15em; }
.um-service-cta__copy a:hover, .um-service-cta__copy a:focus-visible { color: #fff; text-decoration-thickness: 2px; }
.um-service-cta__actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.um-service-cta .um-btn--ghost { color: #fff; }

/* location-map — GBP place embed */
.um-location-map__frame { position: relative; aspect-ratio: 4 / 3; border-radius: 14px; overflow: hidden; background: #dfe6ee; margin: 0 0 .75rem; }
.um-location-map__frame iframe, .um-location-map__frame .um-map__canvas { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; border-radius: 0; }
.um-location-map__frame .um-map__embed { position: absolute; inset: 0; aspect-ratio: auto; border-radius: 0; }
.um-location-map__addr { display: flex; gap: .5rem; align-items: flex-start; margin: 0 0 .75rem; font-size: .9375rem; }
.um-location-map__addr .um-icon { flex: none; width: 1.1rem; height: 1.1rem; margin-top: .1rem; color: var(--um-sky); }
.um-location-map__page { margin: -.25rem 0 .75rem; font-size: .9375rem; }
.um-location-map__page a { font-weight: 600; }
.um-nap__fax { margin: -.25rem 0 .5rem; font-size: .9375rem; }
.um-location-map__links { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0; }
.um-location-map__links .um-btn { min-height: 40px; padding: .45rem .9rem; font-size: .9rem; }
.um-location-map__title { font-size: var(--wp--preset--font-size--l, 1.25rem); margin: 0 0 .75rem; }
.um-locations-hub .um-location-map { margin-top: 1rem; }

/* ── Locations finder (list + unified map) ─────────────────────────────────────────── */
.um-finder { margin: 1.5rem 0 2rem; }
.um-finder__heading { margin: 0 0 1rem; }
.um-finder__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 1.25rem; align-items: start; }
.um-finder__list { display: flex; flex-direction: column; gap: .875rem; }
.um-finder__card { position: relative; background: var(--um-surface); border: 1px solid var(--um-line); border-radius: var(--um-radius-md); padding: 1.1rem 1.25rem; box-shadow: 0 1px 2px rgba(16, 24, 40, .04); cursor: pointer; transition: border-color .15s, box-shadow .15s; }
.um-finder__card:hover, .um-finder__card.is-focus { border-color: var(--um-sky); }
.um-finder__card.is-active { border-color: var(--um-sky); box-shadow: 0 0 0 3px rgba(0, 127, 176, .18); }
.um-finder__card--tele { cursor: default; background: var(--um-surface-alt); }
.um-finder__name { margin: 0 0 .35rem; font-size: 1.375rem; line-height: 1.2; }
.um-finder__name a { color: var(--um-navy-deep); text-decoration: none; }
.um-finder__name a:hover { text-decoration: underline; }
.um-finder__rating { display: flex; align-items: center; gap: .4rem; margin: 0 0 .35rem; font-size: .9375rem; }
.um-finder__stars { display: inline-flex; color: #F5A623; }
.um-finder__stars .um-icon { width: 1rem; height: 1rem; }
.um-finder__stars .um-icon--star { fill: currentColor; stroke: currentColor; }
.um-finder__rating a { color: var(--um-muted); }
.um-finder__card .um-badge { margin: 0 0 .35rem; }
.um-finder__addr { font-style: normal; margin: 0 0 .75rem; color: var(--um-ink); }
.um-finder__actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: .75rem; }
.um-finder__actions .um-btn { min-height: 42px; padding: .5rem .95rem; font-size: .9375rem; }
.um-finder__more { border-top: 1px solid var(--um-line); padding-top: .6rem; }
.um-finder__more summary { cursor: pointer; font-weight: 600; color: var(--um-navy-deep); list-style: none; display: flex; align-items: center; gap: .5rem; }
.um-finder__more summary::-webkit-details-marker { display: none; }
.um-finder__more summary::before { content: ''; width: .5rem; height: .5rem; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(-45deg); transition: transform .15s; flex: none; }
.um-finder__more[open] summary::before { transform: rotate(45deg); }
.um-finder__panel { padding-top: .75rem; font-size: .9375rem; }
.um-finder__panel .um-hours { margin-bottom: .75rem; }
.um-finder__label { margin: .5rem 0 .25rem; font-weight: 600; color: var(--um-navy-deep); }
.um-finder__onsite { columns: 2; column-gap: 1rem; margin: 0 0 .5rem; padding-left: 1.1rem; }
.um-finder__onsite li { break-inside: avoid; margin: 0 0 .2rem; }
.um-finder__landmark { display: flex; gap: .5rem; align-items: flex-start; margin: 0 0 .4rem; color: var(--um-ink); }
.um-finder__landmark .um-icon { flex: none; width: 1.1rem; height: 1.1rem; margin-top: .15rem; color: var(--um-sky); }
.um-finder__areas { margin: 0 0 .4rem; color: var(--um-muted); }
.um-finder__page { margin: .75rem 0 0; font-weight: 600; }
.um-finder__tele { margin: 0 0 .75rem; color: var(--um-ink); }
.um-finder__map { position: sticky; top: 5.5rem; }
.um-map__canvas { width: 100%; border-radius: var(--um-radius-md); overflow: hidden; background: #e9eef3; position: relative; z-index: 0; }
.um-finder__canvas { min-height: 560px; height: min(72vh, 680px); }
.um-map__fallback { display: grid; gap: .75rem; }
.um-map__embed { aspect-ratio: 4 / 3; border-radius: var(--um-radius-md); overflow: hidden; background: #e9eef3; position: relative; }
.um-map__embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.um-map__iw { font-size: 14px; line-height: 1.4; max-width: 240px; }
.um-map__iw strong { display: block; margin-bottom: .2rem; font-size: 15px; color: var(--um-navy-deep); }
.um-map__iw-status { color: #667085; }
.um-map__iw-status.is-open { color: #1e7f4f; font-weight: 600; }
.um-map__iw-links { margin-top: .35rem; }
@media (max-width: 900px) {
  .um-finder__grid { grid-template-columns: 1fr; }
  .um-finder__map { position: static; order: -1; }
  .um-finder__canvas { min-height: 320px; height: 46vh; }
  .um-finder__onsite { columns: 1; }
}
/* finder — Leaflet engine */
.um-map__canvas.leaflet-container { font-family: inherit; font-size: .875rem; background: #e9eef3; }
.um-pin { background: none; border: 0; }
.um-pin img { display: block; width: 56px; height: 66px; transition: transform .15s; transform-origin: 50% 100%; }
.leaflet-marker-icon.um-pin:hover img, .leaflet-marker-icon.um-pin:focus img, .leaflet-marker-icon.um-pin.is-active img { transform: scale(1.1); }
.leaflet-popup-content-wrapper { border-radius: var(--um-radius-md); box-shadow: var(--um-shadow-float); }
.leaflet-control-zoom a { color: var(--um-navy-deep); }
.leaflet-bar { border: 0 !important; box-shadow: var(--um-shadow-card) !important; border-radius: 10px !important; overflow: hidden; }
.leaflet-popup-content { margin: .8rem .95rem; line-height: 1.4; }
.um-map__iw-rating { color: #9a6400; font-weight: 600; }
.um-map__iw-links a { color: var(--um-sky); font-weight: 600; }
.um-finder__maplinks { margin: .75rem 0 0; }
.um-finder__maplinks .um-btn { min-height: 40px; padding: .45rem .9rem; font-size: .9rem; }
.leaflet-control-attribution { font-size: .68rem; background: rgba(255,255,255,.75); color: #667085; }
.um-map__canvas .leaflet-control-attribution a { color: #667085; text-decoration: underline; }

/* ── Insurance payer lists ─────────────────────────────────────────────────────────── */
.um-payers { margin: 1rem 0 1.5rem; }
.um-payers__heading { margin: 0 0 .6rem; font-size: 1.125rem; }
.um-payers__chips { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.um-payers__chip { display: inline-flex; align-items: center; gap: .4rem; padding: .45rem .85rem; border: 1px solid var(--um-line); border-radius: 999px; background: var(--um-surface); color: var(--um-navy-deep); font-weight: 600; font-size: .9375rem; text-decoration: none; transition: border-color .15s, background .15s; }
a.um-payers__chip:hover, a.um-payers__chip:focus-visible { border-color: var(--um-sky); background: var(--um-navy-soft); text-decoration: none; }
.um-payers__chip--static { color: var(--um-ink); font-weight: 500; background: var(--um-surface-alt); }
.um-payers__badge { font-size: .7rem; text-transform: uppercase; letter-spacing: .04em; color: var(--um-success); border: 1px solid currentColor; border-radius: 999px; padding: .05rem .4rem; }
.um-payers__list { columns: 3; column-gap: 2rem; margin: 0; padding-left: 1.1rem; font-size: .9375rem; }
.um-payers__list li { break-inside: avoid; margin: 0 0 .25rem; }
.um-payers__type { color: var(--um-muted); font-size: .8125rem; }
.um-payers__cats { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); }
.um-payers__cat { display: flex; flex-direction: column; gap: .35rem; padding: 1.1rem 1.2rem; border: 1px solid var(--um-line); border-radius: var(--um-radius-md); background: var(--um-surface); text-decoration: none; color: var(--um-ink); box-shadow: var(--um-shadow-card); transition: border-color .15s, transform .15s; }
.um-payers__cat:hover, .um-payers__cat:focus-visible { border-color: var(--um-sky); transform: translateY(-2px); text-decoration: none; }
.um-payers__cat-title { font-weight: 700; color: var(--um-navy-deep); font-size: 1.1rem; }
.um-payers__cat-desc { font-size: .9375rem; color: var(--um-muted); }
.um-payers__cat-count { font-size: .8125rem; color: var(--um-sky); font-weight: 600; margin-top: auto; }
@media (max-width: 900px) { .um-payers__list { columns: 2; } }
@media (max-width: 560px) { .um-payers__list { columns: 1; } }
