@import url("https://fonts.googleapis.com/css2?family=Fredoka:wght@600;700&display=swap");

:root {
  /* DCLC brand palette — navy (#0B318F) + sky blue (#00A3E6) */
  --brand-red: #0B318F;
  --brand-red-dark: #092a78;
  --brand-red-deep: #071f5c;
  --brand-red-rgb: 11, 49, 143;
  --nav-bg: #0093D0;
  --nav-bg-active: #0B318F;
  --btn-red: var(--brand-red);
  --btn-red-hover: #00A3E6;
  --btn-red-pressed: var(--brand-red-deep);
  /* Footer map/phone use emoji color; clock SVG uses this to match that tone */
  --footer-emoji-icon: #d83b6f;
  --footer-bg: #112a41;
  --brand-yellow: #ffd700;
  --brand-yellow-bright: #fff200;
  --brand-amber: #ffbf00;
  --brand-blue: #00A3E6;
  --brand-blue-deep: #0088c4;
  --white: #ffffff;
  --text-body: #333333;
  --text-muted: rgba(51, 51, 51, 0.82);
  --border-subtle: rgba(var(--brand-red-rgb), 0.14);
  --font: "Segoe UI", system-ui, -apple-system, Roboto, "Helvetica Neue", Arial, sans-serif;
  /* Rounded display for navbar wordmark (Fredoka ~ chunky / friendly) */
  --font-brand-display: "Fredoka", var(--font);
  /* Sitewide body copy (headings / labels keep their own sizes) */
  --text-base: 1.22rem;
  --text-footer: 1.12rem;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  font-size: 125%;
  /* Reserve scrollbar space on the right only — avoids left white strip beside full-width nav */
  scrollbar-gutter: stable;
}

body {
  margin: 0;
  font-family: var(--font);
  font-size: var(--text-base);
  color: var(--text-body);
  background: var(--white);
  line-height: 1.55;
}

/* Main content: one body size; h1–h6 keep component heading styles */
.site-main :where(p, li, address, label, td, th, .page-lead, .location-hours, .location-soon, .job-card__desc, .job-card__meta-row, .prose-block p) {
  font-size: var(--text-base);
}

.site-main a {
  font-size: inherit;
}

a {
  color: inherit;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

/* ——— Sticky top wrapper (logo + red nav) ——— */
.site-top {
  position: sticky;
  top: 0;
  z-index: 130;
}

/* ——— Top header ——— */
.site-header {
  background: var(--white);
  border-bottom: 1px solid var(--border-subtle);
}

.header-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 1rem 1.25rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  transition: padding 0.28s ease, gap 0.28s ease;
}

.logo {
  display: flex;
  align-items: center;
  gap: 1.05rem;
  text-decoration: none;
  color: inherit;
  min-width: 0;
}

.logo-img {
  display: block;
  width: clamp(4.75rem, 10vw, 5.75rem);
  height: clamp(4.75rem, 10vw, 5.75rem);
  max-width: none;
  border-radius: 50%;
  object-fit: cover;
  background: #fff;
  box-shadow: 0 2px 10px rgba(4, 22, 64, 0.14);
  flex-shrink: 0;
  transition: width 0.28s ease, height 0.28s ease;
}

.logo-text {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.28rem;
  line-height: 1.08;
  min-width: 0;
  font-size: clamp(1.35rem, 2.4vw + 0.4rem, 1.85rem);
}

.logo-title {
  font-family: var(--font);
  font-size: 1em;
  font-weight: 800;
  letter-spacing: 0.04em;
  color: var(--brand-red);
  text-transform: uppercase;
  line-height: 1.08;
  max-width: none;
  transition: font-size 0.28s ease, color 0.2s ease;
}

.logo-sub {
  font-family: var(--font);
  font-size: 0.72em;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--brand-blue);
  line-height: 1.15;
  opacity: 1;
  transition: font-size 0.28s ease;
}

.logo:hover .logo-title {
  color: var(--brand-red-dark);
}

.logo:hover .logo-sub {
  color: var(--brand-blue-deep);
}

.header-actions {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: 1fr;
  gap: 0.5rem;
  align-items: stretch;
  flex-shrink: 0;
}

.site-nav-toggle {
  display: none;
  width: 2.55rem;
  height: 2.55rem;
  padding: 0;
  border: 1px solid rgba(11, 49, 143, 0.18);
  border-radius: 10px;
  background: #fff;
  cursor: pointer;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 0.28rem;
  flex-shrink: 0;
}

.site-nav-toggle span {
  display: block;
  width: 1.15rem;
  height: 2px;
  border-radius: 999px;
  background: var(--brand-red);
  transition: transform 0.2s ease, opacity 0.2s ease;
}

.site-nav-toggle[aria-expanded="true"] span:nth-child(1) {
  transform: translateY(6.5px) rotate(45deg);
}

.site-nav-toggle[aria-expanded="true"] span:nth-child(2) {
  opacity: 0;
}

.site-nav-toggle[aria-expanded="true"] span:nth-child(3) {
  transform: translateY(-6.5px) rotate(-45deg);
}

.site-nav-backdrop,
.site-nav-drawer-head,
.site-nav-drawer-foot,
.header-mobile-actions {
  display: none;
}

/* Online Results header dropdown */
.header-results-dropdown,
.header-signin-dropdown {
  position: relative;
  z-index: 60;
  display: inline-flex;
  flex-direction: column;
  align-items: stretch;
  flex-shrink: 0;
}

/* Hidden only when site settings disable patient portal (default: visible) */
html.dclc-patient-nav-hidden .header-results-dropdown,
body.dclc-patient-nav-hidden .header-results-dropdown {
  display: none !important;
}

.header-results-dropdown__toggle {
  gap: 0.35rem;
}

.header-results-dropdown__toggle::after {
  content: "";
  display: inline-block;
  width: 0;
  height: 0;
  margin-left: 0.15rem;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-top: 5px solid currentColor;
  flex-shrink: 0;
  transition: transform 0.2s ease;
}

.header-results-dropdown:hover .header-results-dropdown__toggle::after,
.header-results-dropdown:focus-within .header-results-dropdown__toggle::after,
.header-signin-dropdown:hover .header-results-dropdown__toggle::after,
.header-signin-dropdown:focus-within .header-results-dropdown__toggle::after {
  transform: rotate(180deg);
}

.header-results-dropdown__menu {
  position: absolute;
  right: 0;
  top: calc(100% + 6px);
  min-width: 100%;
  width: max-content;
  box-sizing: border-box;
  margin: 0;
  padding: 0.5rem 0;
  list-style: none;
  background: linear-gradient(180deg, #ffffff 0%, #fafafa 100%);
  border-radius: 10px;
  border: 1px solid rgba(0, 0, 0, 0.06);
  border-top: 3px solid var(--brand-red);
  box-shadow:
    0 4px 6px rgba(0, 0, 0, 0.04),
    0 16px 40px rgba(0, 0, 0, 0.12);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-5px);
  transition: opacity 0.22s ease, visibility 0.22s ease, transform 0.22s ease;
  pointer-events: none;
}

.header-results-dropdown__menu::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 100%;
  height: 8px;
}

.header-results-dropdown:hover .header-results-dropdown__menu,
.header-results-dropdown:focus-within .header-results-dropdown__menu,
.header-signin-dropdown:hover .header-results-dropdown__menu,
.header-signin-dropdown:focus-within .header-results-dropdown__menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  pointer-events: auto;
}

.header-results-dropdown__menu a,
.header-results-dropdown__menu .header-results-dropdown__item {
  display: block;
  padding: 0.78rem 1.15rem;
  font-size: 1.2rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  line-height: 1.4;
  color: var(--text-body);
  text-decoration: none;
  white-space: nowrap;
}

.header-results-dropdown__menu .header-results-dropdown__item.is-disabled {
  color: rgba(51, 51, 51, 0.42);
  cursor: not-allowed;
  user-select: none;
}

.header-results-dropdown__menu a:hover,
.header-results-dropdown__menu a:focus-visible {
  background: rgba(0, 163, 230, 0.14);
  color: var(--brand-red-deep);
  outline: none;
}

.header-actions .btn-teal,
.header-actions .header-results-dropdown__toggle {
  width: 100%;
  padding: 0.95rem 1.35rem;
  min-height: 0;
  font-size: 1.2rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  line-height: 1.25;
  text-transform: uppercase;
}

.btn-teal {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.45rem 1rem;
  min-height: 2.125rem;
  box-sizing: border-box;
  line-height: 1.25;
  font-size: 0.78rem;
  font-weight: 700;
  text-transform: capitalize;
  text-decoration: none;
  color: var(--white);
  background: var(--btn-red);
  border-radius: 6px;
  border: none;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease, padding 0.28s ease, font-size 0.28s ease, min-height 0.28s ease;
}

.btn-teal:hover {
  background: var(--brand-blue);
  color: var(--white);
}

.btn-teal:focus-visible {
  outline: 2px solid var(--brand-blue);
  outline-offset: 2px;
}

button.btn-teal {
  font-family: inherit;
  margin: 0;
  appearance: none;
  -webkit-appearance: none;
}

.logo:focus-visible {
  outline: 2px solid var(--brand-red);
  outline-offset: 4px;
  border-radius: var(--radius-sm, 6px);
}

.logo:focus-visible .logo-img {
  border-radius: var(--radius-sm, 6px);
}

/* ——— Nav bar ——— */
.site-nav {
  background: var(--nav-bg);
  transition: box-shadow 0.24s ease, background-color 0.24s ease;
}

.site-nav-inner {
  max-width: 1200px;
  width: 100%;
  margin: 0 auto;
  padding: 0 1.25rem;
  box-sizing: border-box;
}

/* Only the primary row uses horizontal flex — do not use `.site-nav ul` or nested dropdowns inherit flex-wrap grids */
.site-nav > .site-nav-inner > ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: nowrap;
  justify-content: stretch;
  align-items: stretch;
  gap: 0;
  width: 100%;
}

.site-nav > .site-nav-inner > ul > li {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  align-items: stretch;
}

.site-nav a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  box-sizing: border-box;
  padding: 0.95rem 0.65rem;
  font-size: 1.2rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: var(--white);
  text-decoration: none;
  text-transform: uppercase;
  text-align: center;
  transition: background 0.15s ease, color 0.15s ease, padding 0.28s ease, font-size 0.28s ease;
  white-space: nowrap;
}

/* Scales with the six equal slots so "Test Directory" + icon + chevron keeps side room at every width. */
.site-nav {
  --nav-font-size: clamp(0.92rem, calc(1.75vw - 5.6px), 1.25rem);
}

.site-nav > .site-nav-inner > ul > li > a {
  gap: 0.45rem;
  padding-left: 0.45rem;
  padding-right: 0.45rem;
  font-size: var(--nav-font-size);
  letter-spacing: 0.03em;
}

.site-nav > .site-nav-inner > ul > li > a:is([href="/"], [href="/locations"], [href="/services"], [href="/test-directory"], [href="/careers"], [href="/about-us"])::before {
  content: "";
  flex-shrink: 0;
  width: 1.15em;
  height: 1.15em;
  background-color: currentColor;
  -webkit-mask: var(--nav-icon) center / contain no-repeat;
  mask: var(--nav-icon) center / contain no-repeat;
}

.site-nav a[href="/"] {
  --nav-icon: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 10.5 12 3l9 7.5'/%3E%3Cpath d='M5 9.5V21h14V9.5'/%3E%3Cpath d='M9.5 21v-6h5v6'/%3E%3C/svg%3E");
}

.site-nav a[href="/locations"] {
  --nav-icon: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-6.2-7-11.5a7 7 0 0 1 14 0C19 14.8 12 21 12 21z'/%3E%3Ccircle cx='12' cy='9.5' r='2.5'/%3E%3C/svg%3E");
}

.site-nav a[href="/services"] {
  --nav-icon: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 3H4a2 2 0 0 0-2 2v4a6 6 0 0 0 12 0V5a2 2 0 0 0-2-2h-1'/%3E%3Cpath d='M8 15a6 6 0 0 0 12 0v-3'/%3E%3Ccircle cx='20' cy='10' r='2'/%3E%3C/svg%3E");
}

.site-nav a[href="/test-directory"] {
  --nav-icon: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 3h6'/%3E%3Cpath d='M10 3v6.5L4.5 19a1.5 1.5 0 0 0 1.3 2h12.4a1.5 1.5 0 0 0 1.3-2L14 9.5V3'/%3E%3Cpath d='M7 15h10'/%3E%3C/svg%3E");
}

.site-nav a[href="/careers"] {
  --nav-icon: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='7' width='18' height='13' rx='2'/%3E%3Cpath d='M8 7V5a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2'/%3E%3Cpath d='M3 13h18'/%3E%3C/svg%3E");
}

.site-nav a[href="/about-us"] {
  --nav-icon: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 11v5'/%3E%3Cpath d='M12 8h.01'/%3E%3C/svg%3E");
}

.site-nav a:hover {
  background: var(--nav-bg-active);
  color: var(--white);
}

.site-nav a:focus-visible {
  outline: 2px solid var(--white);
  outline-offset: -2px;
}

.site-nav a.is-active {
  background: var(--brand-red-deep);
  color: var(--white);
}

.site-nav a.is-active:hover {
  background: var(--brand-red-dark);
  color: var(--white);
}

.site-nav li.has-dropdown {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: stretch;
}

.site-nav li.has-dropdown:hover,
.site-nav li.has-dropdown:focus-within {
  z-index: 210;
}

/* Chevron: indicates submenu (not shown on other nav links) */
.site-nav li.has-dropdown > a {
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
}

.site-nav li.has-dropdown > a::after {
  content: "";
  flex-shrink: 0;
  width: 0;
  height: 0;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-top: 5px solid currentColor;
  opacity: 0.88;
  transition: transform 0.2s ease, opacity 0.15s ease;
}

.site-nav li.has-dropdown:hover > a::after,
.site-nav li.has-dropdown:focus-within > a::after {
  transform: rotate(180deg);
  opacity: 1;
}

/* Parent stays “pressed” while menu is open (matches active bar look) */
.site-nav li.has-dropdown:hover > a,
.site-nav li.has-dropdown:focus-within > a {
  background: var(--nav-bg-active);
  color: var(--white);
}

.site-nav li.has-dropdown:hover > a:hover,
.site-nav li.has-dropdown:focus-within > a:hover {
  background: var(--nav-bg-active);
  color: var(--white);
}

.site-nav li.has-dropdown > a.is-active:hover {
  color: var(--white);
}

.site-nav .nav-dropdown {
  position: absolute;
  left: 0;
  top: 100%;
  min-width: 18.5rem;
  margin: 0;
  padding: 0.5rem 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  align-items: stretch;
  text-align: left;
  background: linear-gradient(180deg, #ffffff 0%, #fafafa 100%);
  border-radius: 10px;
  box-shadow:
    0 4px 6px rgba(0, 0, 0, 0.04),
    0 16px 40px rgba(0, 0, 0, 0.12);
  border: 1px solid rgba(0, 0, 0, 0.06);
  border-top: 3px solid var(--brand-red);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-5px);
  transition: opacity 0.22s ease, visibility 0.22s ease, transform 0.22s ease;
  pointer-events: none;
}

/* Invisible hover bridge so moving from “Services” into the panel doesn’t close the menu */
.site-nav .nav-dropdown::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 100%;
  height: 10px;
}

.site-nav li.has-dropdown:hover .nav-dropdown,
.site-nav li.has-dropdown:focus-within .nav-dropdown {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  pointer-events: auto;
}

.site-nav .nav-dropdown li {
  margin: 0;
  width: 100%;
  flex: 0 0 auto;
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

.site-nav .nav-dropdown li:last-child {
  border-bottom: none;
}

.site-nav .nav-dropdown a {
  position: relative;
  padding: 0.85rem 1.2rem;
  font-size: 1.2rem;
  font-weight: 700;
  letter-spacing: 0.01em;
  line-height: 1.4;
  text-transform: none;
  color: var(--text-body);
  white-space: nowrap;
  border-radius: 0;
  transition: background 0.15s ease, color 0.15s ease, padding-left 0.15s ease;
}

.site-nav .nav-dropdown a::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 0;
  background: var(--brand-red);
  transition: width 0.15s ease;
}

.site-nav .nav-dropdown a:hover,
.site-nav .nav-dropdown a:focus-visible {
  background: rgba(0, 163, 230, 0.14);
  color: var(--brand-red-deep);
  padding-left: 1.3rem;
}

.site-nav .nav-dropdown a:hover::before,
.site-nav .nav-dropdown a:focus-visible::before {
  width: 3px;
}

.site-nav .nav-dropdown a:focus-visible {
  outline: none;
  box-shadow: inset 0 0 0 2px var(--brand-red);
}

body.is-scrolled .site-top {
  box-shadow: 0 8px 22px rgba(0, 0, 0, 0.16);
}

body.is-compact-nav .header-inner {
  padding-top: 0.3rem;
  padding-bottom: 0.3rem;
  gap: 0.45rem;
}

body.is-compact-nav .logo-img {
  width: clamp(3.4rem, 7vw, 4.1rem);
  height: clamp(3.4rem, 7vw, 4.1rem);
}

body.is-compact-nav .logo-text {
  font-size: clamp(1.1rem, 1.8vw + 0.35rem, 1.4rem);
  gap: 0.16rem;
}

body.is-compact-nav .logo-title {
  font-size: 1em;
}

body.is-compact-nav .logo-sub {
  font-size: 0.7em;
}

/* Only header CTAs shrink on scroll — avoid animating page-content buttons (e.g. Careers Learn more). */
body.is-compact-nav .header-actions .btn-teal,
body.is-compact-nav .header-actions .header-results-dropdown__toggle {
  padding: 0.5rem 0.85rem;
  min-height: 0;
  font-size: 1.2rem;
  letter-spacing: 0.04em;
  border-radius: 4px;
}

body.is-compact-nav .header-results-dropdown__menu a {
  padding: 0.7rem 1.05rem;
  font-size: 1.2rem;
}

body.is-compact-nav .site-nav > .site-nav-inner > ul > li > a {
  padding: 0.55rem 0.4rem;
  font-size: calc(var(--nav-font-size) * 0.93);
  letter-spacing: 0.03em;
}

body.is-compact-nav .site-nav .nav-dropdown a {
  padding: 0.7rem 1.05rem;
  font-size: 1.2rem;
  letter-spacing: 0.01em;
}

body.is-compact-nav .site-nav li.has-dropdown > a::after {
  border-left-width: 3px;
  border-right-width: 3px;
  border-top-width: 4px;
}

@media (prefers-reduced-motion: reduce) {
  .site-nav,
  .header-inner,
  .logo-img,
  .logo-text,
  .logo-title,
  .logo-sub,
  .btn-teal,
  .site-nav a,
  .site-nav .nav-dropdown,
  .site-nav li.has-dropdown > a::after,
  .site-nav .nav-dropdown a,
  .site-nav .nav-dropdown a::before {
    transition: none;
  }
}

@media (max-width: 900px) {
  .logo-text {
    display: none;
  }

  .site-nav-toggle {
    display: inline-flex;
  }

  .header-actions {
    gap: 0.4rem;
  }

  .header-actions .btn-teal,
  .header-results-dropdown__toggle {
    font-size: 1rem;
    padding: 0.5rem 0.75rem;
  }

  /* Attribute is set by navbar-scroll.js once the drawer (which repeats these actions) exists. */
  [data-site-nav-mobile-bound] .site-header .header-actions {
    display: none;
  }

  [data-site-nav-mobile-bound] .site-header .logo-text {
    display: flex;
  }

  /* Kept at two-class specificity so body.is-compact-nav can still shrink the logo on scroll. */
  .site-header .logo-img {
    width: clamp(4.4rem, 15vw, 5.5rem);
    height: clamp(4.4rem, 15vw, 5.5rem);
  }

  .site-header .logo-text {
    font-size: clamp(1.35rem, 5.2vw, 1.85rem);
  }

  /* Grid keeps the hamburger on the logo row at every width; the action row spans underneath. */
  [data-site-nav-mobile-bound] .site-header .header-inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
  }

  .header-mobile-actions {
    display: grid;
    grid-column: 1 / -1;
    grid-auto-flow: column;
    grid-auto-columns: minmax(0, 1fr);
    gap: 0.6rem;
    margin-top: 0.2rem;
  }

  .header-mobile-actions__btn {
    width: 100%;
    height: 100%;
    min-height: 3.5rem;
    padding: 0.7rem 0.75rem;
    font-size: 1.2rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    border-radius: 8px;
  }

  .header-mobile-menu {
    position: relative;
    display: grid;
  }

  .header-mobile-menu[hidden],
  html.dclc-patient-nav-hidden .header-mobile-menu[data-mobile-menu="results"],
  body.dclc-patient-nav-hidden .header-mobile-menu[data-mobile-menu="results"] {
    display: none;
  }

  .header-mobile-menu__toggle {
    gap: 0.45rem;
  }

  .header-mobile-menu__toggle::after {
    content: "";
    width: 0;
    height: 0;
    border-left: 4px solid transparent;
    border-right: 4px solid transparent;
    border-top: 5px solid currentColor;
    transition: transform 0.2s ease;
  }

  .header-mobile-menu__toggle[aria-expanded="true"]::after {
    transform: rotate(180deg);
  }

  .header-mobile-menu__menu {
    position: absolute;
    right: 0;
    top: calc(100% + 6px);
    z-index: 5;
    display: flex;
    flex-direction: column;
    min-width: 100%;
    box-sizing: border-box;
    padding: 0.4rem 0;
    background: #fff;
    border: 1px solid rgba(0, 0, 0, 0.06);
    border-top: 3px solid var(--brand-red);
    border-radius: 10px;
    box-shadow:
      0 4px 6px rgba(0, 0, 0, 0.04),
      0 16px 40px rgba(0, 0, 0, 0.12);
  }

  .header-mobile-menu__menu[hidden],
  .header-mobile-menu__menu button[hidden] {
    display: none;
  }

  .header-mobile-menu__menu button {
    display: block;
    width: 100%;
    padding: 0.85rem 1.1rem;
    border: 0;
    background: none;
    font: inherit;
    font-size: 1.2rem;
    font-weight: 600;
    text-align: left;
    color: var(--text-body);
    cursor: pointer;
  }

  .header-mobile-menu__menu button:hover,
  .header-mobile-menu__menu button:focus-visible {
    background: rgba(0, 163, 230, 0.14);
    color: var(--brand-red-deep);
    outline: none;
  }

  .site-nav-backdrop {
    display: block;
    position: fixed;
    inset: 0;
    z-index: 140;
    background: rgba(15, 23, 42, 0.45);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.2s ease, visibility 0.2s ease;
  }

  body.site-nav-open .site-nav-backdrop {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }

  body.site-nav-open {
    overflow: hidden;
  }

  .site-nav {
    --nav-font-size: 1.4rem;
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    z-index: 150;
    width: min(320px, 84vw);
    background: var(--nav-bg-active, #0B318F);
    box-shadow: -12px 0 40px rgba(7, 31, 92, 0.35);
    transform: translateX(105%);
    transition: transform 0.28s ease;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }

  body.site-nav-open .site-nav {
    transform: translateX(0);
  }

  .site-nav > .site-nav-inner {
    padding: 1rem 0.85rem 1.5rem;
  }

  .site-nav > .site-nav-inner > ul {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    flex-wrap: nowrap;
    gap: 0.25rem;
    overflow: visible;
  }

  .site-nav > .site-nav-inner > ul > li {
    width: 100%;
  }

  .site-nav > .site-nav-inner > ul > li > a {
    display: flex;
    justify-content: flex-start;
    width: 100%;
    padding: 0.85rem 1rem;
    border-radius: 10px;
    white-space: normal;
    text-align: left;
  }

  .site-nav li.has-dropdown {
    flex-direction: column;
  }

  .site-nav li.has-dropdown .nav-dropdown {
    position: static;
    left: auto;
    min-width: 0;
    transform: none;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    display: none;
    width: 100%;
    margin: 0.15rem 0 0.35rem;
    padding: 0.25rem;
    box-shadow: none;
    border: 0;
    background: rgba(255, 255, 255, 0.08);
    border-radius: 10px;
  }

  .site-nav li.has-dropdown.is-open .nav-dropdown {
    display: block;
    transform: none;
  }

  .site-nav .nav-dropdown::before {
    display: none;
  }

  .site-nav li.has-dropdown .nav-dropdown a {
    display: block;
    padding: 0.7rem 0.9rem 0.7rem 2.75rem;
    white-space: normal;
    text-align: left;
    font-size: 1.2rem;
    color: rgba(255, 255, 255, 0.88);
    border-radius: 8px;
  }

  .site-nav li.has-dropdown .nav-dropdown a:hover,
  .site-nav li.has-dropdown .nav-dropdown a:focus-visible {
    background: rgba(255, 255, 255, 0.12);
    color: var(--white);
    padding-left: 3rem;
  }

  .site-nav .nav-dropdown li {
    border-bottom-color: rgba(255, 255, 255, 0.08);
  }

  /* Accordion chevron sits at the right edge and only flips when the section is expanded. */
  .site-nav li.has-dropdown > a::after {
    margin-left: auto;
    border-left-width: 5px;
    border-right-width: 5px;
    border-top-width: 6px;
  }

  .site-nav li.has-dropdown:not(.is-open) > a::after {
    transform: none;
  }

  .site-nav li.has-dropdown.is-open > a::after {
    transform: rotate(180deg);
  }

  .site-nav li.has-dropdown:not(.is-open) > a:not(.is-active) {
    background: transparent;
  }

  .site-nav li.has-dropdown.is-open > a:not(.is-active) {
    background: rgba(255, 255, 255, 0.1);
  }

  .site-nav {
    display: flex;
    flex-direction: column;
  }

  .site-nav > * {
    flex-shrink: 0;
  }

  body.site-nav-open .dclc-care-bot {
    display: none;
  }

  .site-nav-drawer-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 1.1rem 1rem 1rem 1.25rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.14);
  }

  .site-nav-drawer-brand {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    min-width: 0;
    color: var(--white);
  }

  .site-nav-drawer-brand img {
    flex-shrink: 0;
    width: 3.6rem;
    height: 3.6rem;
    padding: 2px;
    border-radius: 50%;
    background: var(--white);
    object-fit: contain;
  }

  .site-nav-drawer-brand span {
    display: flex;
    flex-direction: column;
    min-width: 0;
    font-size: 1.3rem;
    font-weight: 700;
    line-height: 1.2;
    white-space: nowrap;
  }

  .site-nav-drawer-brand small {
    font-size: 1.05rem;
    font-weight: 500;
    opacity: 0.75;
  }

  .site-nav-close {
    position: relative;
    flex-shrink: 0;
    width: 3.4rem;
    height: 3.4rem;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, 0.28);
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.08);
    color: var(--white);
    cursor: pointer;
  }

  .site-nav-close::before,
  .site-nav-close::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: 1.35rem;
    height: 2px;
    border-radius: 2px;
    background: currentColor;
    transform: translate(-50%, -50%) rotate(45deg);
  }

  .site-nav-close::after {
    transform: translate(-50%, -50%) rotate(-45deg);
  }

  .site-nav-close:hover {
    background: rgba(255, 255, 255, 0.16);
  }

  .site-nav-close:focus-visible,
  .site-nav-drawer-cta:focus-visible,
  .site-nav-drawer-btn:focus-visible {
    outline: 2px solid var(--white);
    outline-offset: 2px;
  }

  .site-nav-drawer-foot {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    margin-top: auto;
    padding: 1.1rem 1rem calc(1.4rem + env(safe-area-inset-bottom, 0px));
    border-top: 1px solid rgba(255, 255, 255, 0.14);
  }

  .site-nav-drawer-cta,
  .site-nav-drawer-btn {
    width: 100%;
    font: inherit;
    font-weight: 700;
    color: var(--white);
    cursor: pointer;
    border-radius: 10px;
    transition: background 0.15s ease;
  }

  .site-nav-drawer-cta {
    padding: 0.95rem 1rem;
    border: 0;
    background: var(--brand-blue);
    font-size: 1.3rem;
  }

  .site-nav-drawer-cta:hover {
    background: var(--brand-blue-deep);
  }

  .site-nav-drawer-btn {
    padding: 0.8rem 0.75rem;
    border: 1px solid rgba(255, 255, 255, 0.3);
    background: transparent;
    font-size: 1.15rem;
  }

  .site-nav-drawer-btn:hover {
    background: rgba(255, 255, 255, 0.1);
  }

  .site-nav-drawer-group {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
  }

  .site-nav-drawer-label {
    font-size: 0.95rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.65);
  }

  .site-nav-drawer-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem;
  }

  .site-nav-drawer-foot [hidden] {
    display: none;
  }
}

@media (max-width: 640px) {
  .header-inner {
    gap: 0.55rem;
  }

  .header-actions {
    grid-auto-flow: row;
  }

  .logo-img {
    width: 3.75rem;
    height: 3.75rem;
  }

  .logo-text {
    font-size: 1.15rem;
  }

  .header-actions .btn-teal,
  .header-results-dropdown__toggle {
    font-size: 0.95rem;
    padding: 0.45rem 0.65rem;
  }

  .footer-info li,
  .footer-contact-text {
    overflow-wrap: anywhere;
    word-break: break-word;
  }
}

/* ——— Hero: full-width image slider (homepage) ——— */
.hero.hero--slider-full {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  background: var(--white);
}

.hero.hero--slider-full .hero-photo {
  position: relative;
  width: 100%;
  min-height: clamp(16rem, 65vh, 56rem);
  height: clamp(18rem, 72vh, 58rem);
  overflow: hidden;
}

/* ——— Hero image slider ——— */
.hero-photo--slider {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
}

.hero-slider-viewport {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: inherit;
  overflow: hidden;
}

.hero-slider-viewport::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(
    105deg,
    rgba(var(--brand-red-rgb), 0.14) 0%,
    transparent 38%,
    rgba(0, 0, 0, 0.12) 100%
  );
}

.hero-slider-track {
  display: flex;
  height: 100%;
  min-height: inherit;
  transition: transform 0.55s cubic-bezier(0.25, 0.08, 0.25, 1);
  will-change: transform;
}

.hero-photo--slider .hero-slider-track {
  opacity: 0;
  transition:
    transform 0.55s cubic-bezier(0.25, 0.08, 0.25, 1),
    opacity 0.25s ease;
}

.hero-photo--slider.hero-photo--slider-ready .hero-slider-track {
  opacity: 1;
}

.hero-slide {
  flex: 0 0 100%;
  margin: 0;
  height: 100%;
  min-height: inherit;
}

.hero-slide img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.hero-slider-btn {
  position: absolute;
  top: 50%;
  z-index: 5;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3rem;
  height: 3rem;
  margin: 0;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, 0.55);
  border-radius: 999px;
  background: linear-gradient(155deg, rgba(255, 255, 255, 0.96), rgba(255, 255, 255, 0.82));
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  color: var(--brand-red-dark);
  font-size: 1.35rem;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 10px 30px rgba(13, 22, 37, 0.28);
  transform: translateY(-50%);
  opacity: 0;
  pointer-events: none;
  transition:
    opacity 0.2s ease,
    background 0.22s ease,
    color 0.22s ease,
    transform 0.22s ease,
    box-shadow 0.22s ease,
    border-color 0.22s ease;
}

.hero-photo--slider:hover .hero-slider-btn,
.hero-photo--slider:focus-within .hero-slider-btn,
.info-cards-slider:hover .hero-slider-btn,
.info-cards-slider:focus-within .hero-slider-btn,
.hero-slider-btn:focus-visible {
  opacity: 1;
  pointer-events: auto;
}

.hero-slider-btn[hidden] {
  display: none !important;
}

.hero-slider-btn__icon {
  display: block;
  width: 1rem;
  height: 1rem;
  pointer-events: none;
}

.hero-slider-btn:hover {
  background: linear-gradient(155deg, #ffffff, rgba(255, 255, 255, 0.9));
  color: var(--brand-red-deep);
  border-color: rgba(255, 255, 255, 0.95);
  box-shadow: 0 14px 36px rgba(13, 22, 37, 0.34);
  transform: translateY(-50%) scale(1.07);
  opacity: 1;
  pointer-events: auto;
}

.hero-slider-btn:active {
  transform: translateY(-50%) scale(0.98);
  box-shadow: 0 7px 20px rgba(13, 22, 37, 0.24);
}

.hero-slider-btn:focus-visible {
  outline: 2px solid #ffffff;
  outline-offset: 3px;
}

.hero-slider-prev {
  left: 1rem;
}

.hero-slider-next {
  right: 1rem;
}

.hero-slider-dots {
  position: absolute;
  bottom: 1rem;
  left: 50%;
  z-index: 3;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.5rem;
  max-width: calc(100% - 2rem);
  transform: translateX(-50%);
}

.hero-slider-dots button {
  width: 0.5rem;
  height: 0.5rem;
  margin: 0;
  padding: 0;
  border: none;
  border-radius: 999px;
  background: rgba(148, 163, 184, 0.68);
  border: 1px solid rgba(71, 85, 105, 0.24);
  cursor: pointer;
  transition:
    background 0.2s ease,
    transform 0.2s ease,
    box-shadow 0.2s ease;
}

.hero-slider-dots button:hover {
  background: rgba(100, 116, 139, 0.9);
}

.hero-slider-dots button[aria-selected="true"] {
  background: #fff;
  transform: scale(1.4);
  box-shadow: 0 0 0 2px var(--brand-red);
}

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

@media (prefers-reduced-motion: reduce) {
  .hero-slider-track {
    transition: none;
  }

  .home-load-animate .hero-content-panel > *,
  .home-load-animate .hero.hero--split .hero-photo,
  .home-load-animate .info-cards-carousel,
  .locations-load-animate .page-intro > *,
  .locations-load-animate .locations-grid .location-card,
  .services-first-load-animate .page-intro > *,
  .services-first-load-animate .find-doctor-image-card,
  .services-first-load-animate .find-doctor-image-card__img,
  .services-first-load-animate .find-doctor-image-card__frame,
  .services-first-load-animate .home-service-wizard > .wizard-steps,
  .services-first-load-animate .home-service-wizard > .wizard-form,
  .test-directory-first-load-animate .page-intro > *,
  .test-directory-first-load-animate .test-table-wrap,
  .test-directory-first-load-animate .card-grid > .info-card,
  .test-directory-first-load-animate .test-packages-grid > .test-package-card,
  .test-directory-first-load-animate .services-offered__intro > *,
  .test-directory-first-load-animate .services-offered__grid .service-offer-card {
    animation: none;
  }

  .services-first-load-animate .hmo-partner-card,
  .services-first-load-animate .hmo-partners__note {
    animation: none;
  }

  .test-package-card,
  .test-package-card__media img {
    transition: none;
  }

  .test-package-card:hover,
  .test-package-card:focus-within {
    transform: none;
  }

  .test-package-card:hover .test-package-card__media img,
  .test-package-card:focus-within .test-package-card__media img {
    transform: none;
  }
}

@media (max-width: 768px) {
  .hero.hero--slider-full .hero-photo {
    min-height: clamp(14rem, 52vh, 42rem);
    height: clamp(15rem, 58vh, 44rem);
  }

  .hero-slider-btn {
    width: 2.5rem;
    height: 2.5rem;
    font-size: 1.15rem;
    opacity: 1;
    pointer-events: auto;
  }

  .hero-slider-prev {
    left: 0.5rem;
  }

  .hero-slider-next {
    right: 0.5rem;
  }
}

@media (hover: none) {
  .hero-photo--slider .hero-slider-btn,
  .info-cards-slider .hero-slider-btn {
    opacity: 1;
    pointer-events: auto;
  }
}

@keyframes home-hero-photo-enter {
  from {
    opacity: 0;
    transform: translateX(26px);
  }

  to {
    opacity: 1;
    transform: translateX(0);
  }
}

/* Split hero redesign (homepage) */
.hero.hero--split {
  max-width: 1200px;
  margin: 0.5rem auto 0;
  padding: 0 1.25rem;
}

/* Homepage (index): first-load entrance — body.home-load-animate */
.home-load-animate .hero-content-panel > * {
  animation: job-card-enter 0.65s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.home-load-animate .hero-content-panel > *:nth-child(1) {
  animation-delay: 0.06s;
}

.home-load-animate .hero-content-panel > *:nth-child(2) {
  animation-delay: 0.14s;
}

.home-load-animate .hero-content-panel > *:nth-child(3) {
  animation-delay: 0.22s;
}

.home-load-animate .hero-content-panel > *:nth-child(4) {
  animation-delay: 0.3s;
}

.home-load-animate .hero-content-panel > *:nth-child(n + 5) {
  animation-delay: 0.38s;
}

.home-load-animate .hero.hero--split .hero-photo {
  animation: home-hero-photo-enter 0.72s cubic-bezier(0.22, 1, 0.36, 1) 0.16s both;
}

.home-load-animate .info-cards-carousel {
  animation: job-card-enter 0.72s cubic-bezier(0.22, 1, 0.36, 1) 0.4s both;
}

/* Locations, Services submenu & Test Directory: page intro first-load */
.locations-load-animate .page-intro > *,
.services-first-load-animate .page-intro > *,
.test-directory-first-load-animate .page-intro > * {
  animation: job-card-enter 0.65s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.locations-load-animate .page-intro > *:nth-child(1),
.services-first-load-animate .page-intro > *:nth-child(1),
.test-directory-first-load-animate .page-intro > *:nth-child(1) {
  animation-delay: 0.06s;
}

.locations-load-animate .page-intro > *:nth-child(2),
.services-first-load-animate .page-intro > *:nth-child(2),
.test-directory-first-load-animate .page-intro > *:nth-child(2) {
  animation-delay: 0.14s;
}

.locations-load-animate .page-intro > *:nth-child(n + 3),
.services-first-load-animate .page-intro > *:nth-child(n + 3),
.test-directory-first-load-animate .page-intro > *:nth-child(n + 3) {
  animation-delay: 0.22s;
}

/* Test Directory submenu pages — body.test-directory-first-load-animate */
.test-directory-first-load-animate .test-table-wrap {
  animation: job-card-enter 0.68s cubic-bezier(0.22, 1, 0.36, 1) 0.22s both;
}

.test-directory-first-load-animate .card-grid > .info-card {
  animation: job-card-enter 0.68s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.test-directory-first-load-animate .card-grid > .info-card:nth-child(1) {
  animation-delay: 0.26s;
}

.test-directory-first-load-animate .card-grid > .info-card:nth-child(2) {
  animation-delay: 0.34s;
}

.test-directory-first-load-animate .card-grid > .info-card:nth-child(3) {
  animation-delay: 0.42s;
}

.test-directory-first-load-animate .card-grid > .info-card:nth-child(4) {
  animation-delay: 0.5s;
}

.test-directory-first-load-animate .card-grid > .info-card:nth-child(5) {
  animation-delay: 0.58s;
}

.test-directory-first-load-animate .card-grid > .info-card:nth-child(6) {
  animation-delay: 0.66s;
}

.test-directory-first-load-animate .card-grid > .info-card:nth-child(n + 7) {
  animation-delay: 0.74s;
}

.test-directory-first-load-animate .test-packages-grid > .test-package-card {
  animation: test-package-enter 0.82s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.test-packages-grid.is-hydrated > .test-package-card {
  animation: none !important;
  opacity: 1;
  transform: none;
}

.test-directory-first-load-animate .test-packages-grid > .test-package-card:nth-child(1) {
  animation-delay: 0.18s;
}

.test-directory-first-load-animate .test-packages-grid > .test-package-card:nth-child(2) {
  animation-delay: 0.32s;
}

.test-directory-first-load-animate .test-packages-grid > .test-package-card:nth-child(3) {
  animation-delay: 0.46s;
}

@keyframes test-package-enter {
  from {
    opacity: 0;
    transform: translateY(28px) scale(0.96);
  }

  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.test-directory-first-load-animate .services-offered__intro > * {
  animation: job-card-enter 0.65s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.test-directory-first-load-animate .services-offered__intro > *:nth-child(1) {
  animation-delay: 0.06s;
}

.test-directory-first-load-animate .services-offered__intro > *:nth-child(2) {
  animation-delay: 0.14s;
}

.test-directory-first-load-animate .services-offered__intro > *:nth-child(n + 3) {
  animation-delay: 0.22s;
}

.test-directory-first-load-animate .services-offered__grid .service-offer-card {
  animation: job-card-enter 0.68s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.test-directory-first-load-animate .services-offered__grid .service-offer-card:nth-child(1) {
  animation-delay: 0.26s;
}

.test-directory-first-load-animate .services-offered__grid .service-offer-card:nth-child(2) {
  animation-delay: 0.34s;
}

.test-directory-first-load-animate .services-offered__grid .service-offer-card:nth-child(3) {
  animation-delay: 0.42s;
}

.test-directory-first-load-animate .services-offered__grid .service-offer-card:nth-child(4) {
  animation-delay: 0.5s;
}

.test-directory-first-load-animate .services-offered__grid .service-offer-card:nth-child(5) {
  animation-delay: 0.58s;
}

.test-directory-first-load-animate .services-offered__grid .service-offer-card:nth-child(6) {
  animation-delay: 0.66s;
}

.test-directory-first-load-animate .services-offered__grid .service-offer-card:nth-child(n + 7) {
  animation-delay: 0.74s;
}

/* Find a Doctor & Home Service — body.services-first-load-animate */
.services-first-load-animate .find-doctor-image-card {
  animation: job-card-enter 0.68s cubic-bezier(0.22, 1, 0.36, 1) 0.22s both;
}

.services-first-load-animate .find-doctor-image-card__img {
  animation: find-doctor-image-reveal 1.05s cubic-bezier(0.22, 1, 0.36, 1) 0.38s both;
}

.services-first-load-animate .find-doctor-image-card__frame {
  animation: find-doctor-image-float 7s ease-in-out 1.45s infinite;
}

.services-first-load-animate .home-service-wizard > .wizard-steps {
  animation: job-card-enter 0.68s cubic-bezier(0.22, 1, 0.36, 1) 0.22s both;
}

.services-first-load-animate .home-service-wizard > .wizard-form {
  animation: job-card-enter 0.68s cubic-bezier(0.22, 1, 0.36, 1) 0.34s both;
}

.locations-load-animate .locations-grid .location-card {
  animation: job-card-enter 0.68s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.locations-load-animate .locations-grid .location-card:nth-child(1) {
  animation-delay: 0.26s;
}

.locations-load-animate .locations-grid .location-card:nth-child(2) {
  animation-delay: 0.34s;
}

.locations-load-animate .locations-grid .location-card:nth-child(3) {
  animation-delay: 0.42s;
}

.locations-load-animate .locations-grid .location-card:nth-child(4) {
  animation-delay: 0.5s;
}

.locations-load-animate .locations-grid .location-card:nth-child(5) {
  animation-delay: 0.58s;
}

.locations-load-animate .locations-grid .location-card:nth-child(6) {
  animation-delay: 0.66s;
}

.locations-load-animate .locations-grid .location-card:nth-child(n + 7) {
  animation-delay: 0.74s;
}

.hero-inner {
  display: grid;
  grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.35fr);
  background: #f5f7fa;
  border-radius: 16px;
  overflow: hidden;
  min-height: clamp(12rem, 27vw, 16rem);
}

.hero-content-panel {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: stretch;
  text-align: left;
  gap: 0.55rem;
  padding: clamp(1rem, 2.2vw, 1.6rem) clamp(1rem, 2.2vw, 1.6rem) clamp(1rem, 2.2vw, 1.6rem) clamp(1rem, 2.2vw, 1.6rem);
  background:
    radial-gradient(circle at 12% 12%, rgba(var(--brand-red-rgb), 0.1) 0, transparent 44%),
    radial-gradient(circle at 88% 18%, rgba(93, 173, 226, 0.14) 0, transparent 48%),
    linear-gradient(145deg, #f8fafd 0%, #eef2f7 100%);
}

.hero-brand {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  align-self: flex-start;
  width: min(100%, 31rem);
  max-width: 100%;
  box-sizing: border-box;
  gap: 1.15rem;
  padding: 0.85rem 1.55rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.82);
  box-shadow: 0 8px 20px rgba(15, 23, 42, 0.08);
  border: 1px solid rgba(30, 41, 59, 0.08);
}

.hero-brand strong {
  display: block;
  font-size: clamp(1.12rem, 1.5vw, 1.32rem);
  letter-spacing: 0.02em;
  color: #0f172a;
}

.hero-brand span {
  display: block;
  font-size: clamp(1.02rem, 1.28vw, 1.18rem);
  color: #526176;
}

.hero-content-panel h1 {
  margin: 0.25rem 0 0.1rem 0.75rem;
  max-width: 22ch;
  align-self: flex-start;
  font-size: clamp(2rem, 4.4vw, 3rem) !important;
  line-height: 1.12;
  font-weight: 850;
  letter-spacing: -0.02em;
  color: #0f172a;
}

.hero-content-panel p {
  margin: 0 0 0.35rem 0.75rem;
  max-width: 40ch;
  align-self: flex-start;
  font-size: clamp(1.18rem, 1.55vw, 1.38rem);
  color: #415166;
}

.hero-search {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  background: #fff;
  border-radius: 999px;
  border: 1px solid rgba(15, 23, 42, 0.14);
  box-shadow: 0 8px 18px rgba(15, 23, 42, 0.1);
  padding: 0.25rem 0.35rem 0.25rem 0.72rem;
  max-width: 520px;
}

.hero-search input {
  flex: 1;
  min-width: 0;
  border: 0;
  background: transparent;
  font-size: 0.86rem;
  color: #1f2937;
}

.hero-search input:focus {
  outline: none;
}

.hero-search button {
  width: 1.95rem;
  height: 1.95rem;
  border: 0;
  border-radius: 999px;
  color: var(--brand-red-deep);
  background: rgba(var(--brand-red-rgb), 0.08);
  cursor: pointer;
}

.hero-content-panel .hero-cta {
  margin-left: 0.75rem;
}

.hero-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 0.55rem;
  width: fit-content;
  min-width: 180px;
  padding: 0.58rem 1.05rem;
  border-radius: 10px;
  border: 1px solid var(--btn-red);
  text-decoration: none;
  text-transform: none;
  font-size: var(--text-base);
  font-weight: 600;
  letter-spacing: 0.01em;
  color: #fff;
  background: var(--btn-red);
  box-shadow: 0 4px 10px rgba(var(--brand-red-rgb), 0.2);
  transition: background-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.hero-cta:hover {
  background: var(--brand-blue);
  color: var(--white);
  border-color: #0088c4;
  transform: translateY(-1px);
  box-shadow: 0 6px 14px rgba(0, 163, 230, 0.32);
}

.hero.hero--split .hero-photo {
  min-height: 100%;
  height: clamp(22rem, 52vw, 36rem);
}

.info-cards-carousel {
  max-width: 1200px;
  margin: 0.45rem auto 1rem;
  padding: 0 1.25rem;
}

.info-cards-slider {
  position: relative;
  border-radius: 14px;
  background: #fff;
  border: 1px solid rgba(15, 23, 42, 0.08);
  box-shadow: 0 10px 28px rgba(16, 24, 40, 0.1);
  overflow: hidden;
}

.info-cards-slider .hero-slider-viewport {
  min-height: 124px;
  height: auto;
}

.info-slide {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 0.9rem 2.6rem 0.9rem 4.2rem;
  min-height: 124px;
  background: linear-gradient(135deg, #fffdf7 0%, #f7fbff 100%);
}

.info-slide h2 {
  margin: 0 0 0.4rem;
  font-size: clamp(1.02rem, 1.7vw, 1.2rem);
  color: var(--brand-red-deep);
}

.info-slide p {
  margin: 0;
  max-width: 760px;
  font-size: var(--text-base);
  line-height: 1.5;
  color: var(--text-muted);
}

.info-cards-slider .hero-slider-btn {
  width: 2rem;
  height: 2rem;
}

.info-cards-slider .hero-slider-prev {
  left: 0.65rem;
}

.info-cards-slider .hero-slider-next {
  right: 0.65rem;
}

.info-cards-slider .hero-slider-dots {
  bottom: 0.6rem;
}

.appointment-modal[hidden] {
  display: none;
}

.appointment-modal {
  position: fixed;
  inset: 0;
  z-index: 440;
  display: grid;
  place-items: center;
  padding: 1rem;
}

.appointment-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.58);
}

.appointment-modal__dialog {
  position: relative;
  z-index: 1;
  width: min(620px, 100%);
  max-height: min(86vh, 680px);
  overflow: auto;
  border-radius: 14px;
  border: 1px solid rgba(15, 23, 42, 0.1);
  background: #fff;
  box-shadow: 0 30px 70px rgba(15, 23, 42, 0.4);
  padding: 1rem 1.05rem 0.95rem;
}

.appointment-modal__dialog h2 {
  margin: 0;
  font-size: clamp(1.35rem, 2.5vw, 1.85rem);
  text-align: center;
  color: #1e293b;
}

.appointment-modal__dialog > p {
  margin: 0.35rem 0 0.75rem;
  text-align: center;
  font-size: var(--text-base);
  color: #475569;
}

.appointment-modal__close {
  position: absolute;
  top: 0.65rem;
  right: 0.65rem;
  width: 1.9rem;
  height: 1.9rem;
  border: 0;
  border-radius: 999px;
  background: var(--btn-red);
  color: #fff;
  font-size: 1.25rem;
  line-height: 1;
  cursor: pointer;
}

.appointment-modal__close:hover {
  background: var(--btn-red-hover);
}

.appointment-form {
  display: flex;
  flex-direction: column;
  gap: 0.9rem;
}

.appointment-form__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.95rem 1.1rem;
}

.appointment-form__name-row,
.appointment-form__contact-row {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.95rem 1.1rem;
}

.appointment-form__name-row > label,
.appointment-form__contact-row > label {
  width: 100%;
}

.appointment-form__grid > label {
  width: 100%;
}

.appointment-form label {
  display: flex;
  flex-direction: column;
  gap: 0.38rem;
  font-size: 0.92rem;
  font-weight: 700;
  color: #334155;
}

.field-with-icon {
  position: relative;
}

.field-icon {
  position: absolute;
  left: 0.62rem;
  top: 50%;
  transform: translateY(-50%);
  color: var(--brand-red-dark);
  pointer-events: none;
}

.field-icon svg {
  width: 1.08rem;
  height: 1.08rem;
  display: block;
  fill: currentColor;
}

.field-with-icon--textarea .field-icon {
  top: 0.95rem;
  transform: none;
}

.appointment-form input,
.appointment-form select,
.appointment-form textarea {
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  padding: 0.62rem 0.88rem 0.62rem 2.35rem;
  font-size: 1.02rem;
  color: #0f172a;
  background: #fff;
}

.appointment-form input,
.appointment-form select {
  width: 100%;
  height: 2.6rem;
}

.appointment-form textarea {
  resize: none;
  overflow-y: auto;
  width: 100%;
  min-height: 92px;
}

.appointment-form__submit {
  margin-top: 0.2rem;
  border: 0;
  border-radius: 9px;
  padding: 0.66rem 1rem;
  color: #fff;
  font-size: 1rem;
  font-weight: 500;
  background: var(--btn-red);
  cursor: pointer;
  transition: background-color 0.2s ease;
}

.appointment-form__submit:hover {
  background: var(--btn-red-hover);
}

.appointment-form__counter {
  font-size: 0.86rem;
  font-weight: 600;
  color: #64748b;
}

.appointment-form__label-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
}

.dclc-gcash-qr-panel {
  margin: 0.35rem 0 0.85rem;
  padding: 0.85rem 1rem;
  border: 1px solid #dbe3ef;
  border-radius: 12px;
  background: #f8fafc;
}

.dclc-gcash-qr-panel__title {
  margin: 0 0 0.25rem;
  font-size: 0.92rem;
  font-weight: 700;
  color: #0f172a;
}

.dclc-gcash-qr-panel__branch {
  margin: 0 0 0.65rem;
  font-size: 0.82rem;
}

.dclc-gcash-qr-panel__frame {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.65rem;
  border-radius: 10px;
  background: #fff;
  border: 1px dashed #cbd5e1;
}

.dclc-gcash-qr-panel__image {
  display: block;
  width: min(100%, 28rem);
  max-width: 100%;
  height: auto;
  object-fit: contain;
}

.dclc-gcash-qr-panel__image[hidden] {
  display: none !important;
}

.dclc-gcash-qr-panel__message {
  margin: 0;
  font-size: 0.84rem;
  line-height: 1.45;
  text-align: center;
  max-width: 22rem;
}

.dclc-gcash-qr-panel__hint {
  margin: 0.55rem 0 0;
  font-size: 0.78rem;
  line-height: 1.4;
}

@media (max-width: 900px) {
  /* The text panel is flattened so the photo can sit between the brand pill and the heading. */
  .hero-inner {
    grid-template-columns: 1fr;
    min-height: 0;
    gap: 0.55rem;
    padding: 1rem;
    background:
      radial-gradient(circle at 12% 12%, rgba(var(--brand-red-rgb), 0.1) 0, transparent 44%),
      radial-gradient(circle at 88% 18%, rgba(93, 173, 226, 0.14) 0, transparent 48%),
      linear-gradient(145deg, #f8fafd 0%, #eef2f7 100%);
  }

  .hero-content-panel {
    display: contents;
  }

  .hero-brand {
    order: 1;
    width: 100%;
    max-width: 100%;
    padding: 0.75rem 1.25rem;
    gap: 1rem;
  }

  .hero.hero--split .hero-photo {
    order: 2;
    min-height: clamp(18rem, 78vw, 30rem);
    height: clamp(18rem, 78vw, 30rem);
    margin: 0.2rem 0 0.35rem;
    border-radius: 12px;
    overflow: hidden;
  }

  .hero-content-panel h1 {
    order: 3;
    font-size: clamp(1.65rem, 7vw, 2.1rem) !important;
  }

  .hero-content-panel p {
    order: 4;
    font-size: 0.98rem;
  }

  .hero-content-panel .hero-cta {
    order: 5;
  }

  .hero-search input {
    font-size: 0.8rem;
  }

  /* Grows to the longest card so text never runs under the dots. */
  .info-cards-slider .hero-slider-viewport {
    min-height: 120px;
    height: auto;
  }

  .info-slide {
    height: auto;
    padding: 1rem 2.5rem 2rem 3.6rem;
  }

  .appointment-form__grid {
    grid-template-columns: 1fr;
  }

  .appointment-form__name-row,
  .appointment-form__contact-row {
    grid-template-columns: 1fr;
  }
}

/* ——— Inner pages ——— */
.site-main {
  max-width: 1200px;
  margin: 0 auto;
  padding: 2rem 1.25rem 3.5rem;
}

.page-intro {
  margin-bottom: 2rem;
}

.page-title {
  margin: 0 0 0.4rem;
  font-size: clamp(1.65rem, 4vw, 2.2rem);
  font-weight: 700;
  color: var(--brand-red);
  letter-spacing: 0.02em;
  line-height: 1.25;
}

.page-lead {
  margin: 0;
  max-width: 44rem;
  font-size: var(--text-base);
  color: var(--text-muted);
}

.card-grid {
  display: grid;
  gap: 1.1rem;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
}

.info-card {
  border: 1px solid var(--border-subtle);
  border-radius: 10px;
  padding: 1.25rem 1.35rem;
  background: var(--white);
}

.info-card h2 {
  margin: 0 0 0.45rem;
  font-size: 1.08rem;
  font-weight: 700;
  color: var(--brand-blue-deep);
}

.info-card p,
.info-card address {
  margin: 0;
  font-size: var(--text-base);
  font-style: normal;
  color: var(--text-muted);
}

.test-packages-grid {
  display: grid;
  gap: 1.75rem;
  grid-template-columns: 1fr;
}

.test-packages-grid.is-pending {
  min-height: 22rem;
}

html.dclc-tp-wait .test-packages-grid:not(.is-hydrated) > .test-package-card {
  display: none !important;
}

@media (min-width: 720px) {
  .test-packages-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1024px) {
  .test-packages-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 2rem;
  }
}

.test-packages-page .site-main {
  max-width: 1280px;
}

.test-package-card {
  border: 1px solid var(--border-subtle);
  border-radius: 14px;
  background: var(--white);
  overflow: hidden;
  box-shadow: 0 10px 28px rgba(31, 43, 63, 0.08);
  transition:
    transform 0.38s cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 0.38s ease,
    border-color 0.38s ease;
}

.test-package-card:hover {
  transform: translateY(-8px);
  border-color: rgba(var(--brand-red-rgb), 0.22);
  box-shadow: 0 20px 44px rgba(var(--brand-red-rgb), 0.14);
}

.test-package-card__media {
  appearance: none;
  display: block;
  width: 100%;
  padding: 0;
  border: 0;
  background: linear-gradient(180deg, #f8fafc 0%, #eef2f7 100%);
  cursor: zoom-in;
  overflow: hidden;
}

.test-package-card__media img {
  display: block;
  width: 100%;
  height: auto;
  min-height: 16.5rem;
  aspect-ratio: 4 / 3;
  object-fit: contain;
  object-position: center;
  transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}

.test-package-card:hover .test-package-card__media img,
.test-package-card:focus-within .test-package-card__media img {
  transform: scale(1.045);
}

.test-package-card__media:hover img,
.test-package-card__media:focus-visible img {
  opacity: 1;
}

.test-package-card__media:focus-visible {
  outline: 2px solid var(--brand-teal);
  outline-offset: -2px;
}

.test-package-card__body {
  padding: 1.15rem 1.25rem 1.35rem;
}

.test-package-card__body h2 {
  margin: 0 0 0.5rem;
  font-size: 1.2rem;
  font-weight: 700;
  color: var(--brand-red);
}

.test-package-card__body p {
  margin: 0;
  font-size: 1.12rem;
  color: var(--text-muted);
  line-height: 1.6;
}

@media (min-width: 1024px) {
  .test-package-card__media img {
    min-height: 18.5rem;
  }

  .test-package-card__body h2 {
    font-size: 1.28rem;
  }
}

.test-package-lightbox {
  position: fixed;
  inset: 0;
  z-index: 1200;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.75rem;
}

.test-package-lightbox[hidden] {
  display: none !important;
}

.test-package-lightbox__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 10, 12, 0.72);
}

.test-package-lightbox__dialog {
  position: relative;
  width: min(98vw, 72rem);
  max-height: 96vh;
  overflow: auto;
  background: #fff;
  border-radius: 16px;
  padding: 0.85rem 0.85rem 1rem;
  box-shadow: 0 28px 64px rgba(0, 0, 0, 0.32);
  display: flex;
  flex-direction: column;
}

.test-package-lightbox__title {
  margin: 0 0 0.5rem;
  padding-right: 2.25rem;
  font-size: 1.12rem;
  font-weight: 700;
  color: var(--brand-red);
  flex-shrink: 0;
}

.test-package-lightbox__close {
  position: absolute;
  top: 0.7rem;
  right: 0.7rem;
  width: 2.25rem;
  height: 2.25rem;
  border: 1px solid var(--border-subtle);
  border-radius: 999px;
  background: #fff;
  color: var(--text-muted);
  font-size: 1.35rem;
  line-height: 1;
  cursor: pointer;
  z-index: 1;
}

.test-package-lightbox__close:hover {
  color: var(--brand-red);
  border-color: rgba(227, 27, 35, 0.25);
}

.test-package-lightbox__dialog img {
  display: block;
  width: 100%;
  height: auto;
  max-height: calc(96vh - 4.25rem);
  object-fit: contain;
  border-radius: 10px;
}

.location-hours {
  margin-top: 0.65rem;
  margin-bottom: 0;
  font-size: var(--text-base);
  color: var(--text-muted);
}

.location-soon {
  margin: 0;
  font-size: var(--text-base);
  font-weight: 700;
  color: var(--brand-blue-deep);
}

.location-badge {
  font-size: 0.72em;
  font-weight: 700;
  color: var(--brand-blue-dark);
  letter-spacing: 0.01em;
}

.locations-grid {
  gap: 1.4rem;
  grid-template-columns: 1fr;
}

.locations-grid--showcase {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  align-items: stretch;
}

@media (max-width: 1024px) {
  .locations-grid--showcase {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .locations-grid--showcase {
    grid-template-columns: 1fr;
  }
}

.location-card {
  min-height: 0;
  padding: 1.25rem 1.3rem;
  border-radius: 14px;
  background: var(--white);
  border-color: rgba(148, 163, 184, 0.28);
  box-shadow: 0 10px 22px rgba(15, 23, 42, 0.08);
  transition: transform 0.24s ease, box-shadow 0.24s ease, border-color 0.24s ease, background-color 0.24s ease;
}

/* Branch showcase cards (3-column compact layout) */
.location-card--showcase {
  --showcase-accent: var(--brand-red);
  --showcase-accent-hover: var(--brand-red-dark);
  --showcase-secondary: #3d4654;
  --showcase-secondary-hover: #2f3640;
  min-width: 0;
  padding: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.location-showcase__header {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.65rem 0.7rem;
  background: var(--showcase-accent);
  text-align: center;
}

.location-showcase__header h2 {
  margin: 0;
  width: 100%;
  font-size: 0.92rem;
  font-weight: 700;
  color: var(--white);
  letter-spacing: 0.02em;
  line-height: 1.25;
  text-align: center;
}

.location-showcase__badge {
  display: inline-block;
  margin-left: 0.35rem;
  padding: 0.1rem 0.35rem;
  font-size: 0.62rem;
  font-weight: 700;
  vertical-align: middle;
  border-radius: 4px;
  background: rgba(255, 255, 255, 0.22);
}

.location-showcase__photo img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  max-height: 220px;
  object-fit: contain;
  object-position: center;
  background: #f8fafc;
}

.location-showcase__body {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  padding: 0.6rem 0.65rem 0.65rem;
  flex: 1 1 auto;
}

.location-showcase__details {
  flex: 1 1 auto;
}

.location-showcase__branch {
  margin: 0 0 0.35rem;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.35;
  color: #1e293b;
}

.location-showcase__address-row {
  display: flex;
  align-items: flex-start;
  gap: 0.35rem;
  margin-bottom: 0.35rem;
}

.location-showcase__address-row address {
  flex: 1;
  margin: 0;
  font-style: normal;
  font-size: 0.7rem;
  line-height: 1.4;
  color: #475569;
}

.location-showcase__map-link {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.55rem;
  height: 1.55rem;
  border-radius: 999px;
  color: #64748b;
  background: #f1f5f9;
  transition: background 0.15s ease, color 0.15s ease;
}

.location-showcase__map-link:hover {
  color: var(--showcase-accent);
  background: rgba(var(--brand-red-rgb), 0.12);
}

.location-showcase__meta {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.28rem;
}

.location-showcase__meta li {
  display: flex;
  align-items: flex-start;
  gap: 0.35rem;
  font-size: 0.68rem;
  line-height: 1.35;
  color: #475569;
}

.location-showcase__meta a {
  color: var(--showcase-accent);
  text-decoration: underline;
  text-underline-offset: 2px;
  word-break: break-word;
}

.location-showcase__meta a:hover {
  color: var(--showcase-accent-hover);
}

.location-showcase__icon {
  flex-shrink: 0;
  display: inline-flex;
  margin-top: 0.05rem;
  color: #94a3b8;
}

.location-showcase__actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.35rem;
  margin-top: auto;
}

.location-showcase__actions--with-social {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.site-main .location-showcase__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  width: 100%;
  padding: 0.48rem 0.55rem;
  border: none;
  border-radius: 999px;
  font-family: inherit;
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-decoration: none;
  text-align: center;
  line-height: 1.2;
  cursor: pointer;
  appearance: none;
  transition: background 0.15s ease;
}

.location-showcase__btn-icon {
  display: inline-flex;
  flex: 0 0 auto;
  width: 0.95rem;
  height: 0.95rem;
  line-height: 0;
}

.location-showcase__btn-icon svg {
  display: block;
  width: 100%;
  height: 100%;
}

.location-showcase__btn--primary {
  color: var(--white);
  background: var(--showcase-accent);
}

.location-showcase__btn--primary:hover {
  background: var(--showcase-accent-hover);
  color: var(--white);
}

.location-showcase__btn--secondary {
  color: var(--white);
  background: var(--showcase-secondary);
}

.location-showcase__btn--secondary:hover {
  background: var(--showcase-secondary-hover);
  color: var(--white);
}

.location-showcase__map {
  min-height: 128px;
}

.location-showcase__map iframe {
  min-height: 128px;
  border-radius: 0;
}

.location-showcase__map .location-map__trigger {
  border-radius: 0;
}

.location-showcase__map .location-map__hint {
  font-size: 0.58rem;
  padding: 0.28rem 0.5rem;
}

.location-card--showcase:hover,
.location-card--showcase:focus-within {
  transform: translateY(-3px);
}

.location-card--showcase .location-showcase__header h2 {
  color: var(--white);
}

.location-row {
  display: grid;
  grid-template-columns: minmax(280px, 1fr) minmax(400px, 1.2fr);
  gap: 1.25rem;
  align-items: stretch;
}

.location-info {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding-left: 1.5rem;
}

.location-map {
  position: relative;
  min-height: 230px;
}

.location-map iframe {
  width: 100%;
  height: 100%;
  min-height: 230px;
  border: 0;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.72);
  pointer-events: none;
}

.location-map__trigger {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 10px;
  background: transparent;
  cursor: zoom-in;
  font: inherit;
}

.location-map__trigger:hover,
.location-map__trigger:focus-visible {
  background: rgba(15, 23, 42, 0.08);
}

.location-map__trigger:focus-visible {
  outline: 2px solid var(--brand-red);
  outline-offset: 2px;
}

.location-map__hint {
  position: absolute;
  right: 0.55rem;
  bottom: 0.55rem;
  padding: 0.38rem 0.72rem;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--brand-red-deep);
  background: rgba(255, 255, 255, 0.94);
  border-radius: 999px;
  box-shadow: 0 2px 10px rgba(15, 23, 42, 0.16);
  pointer-events: none;
}

.location-map__trigger:hover .location-map__hint,
.location-map__trigger:focus-visible .location-map__hint {
  background: var(--brand-blue);
}

.location-map-modal[hidden] {
  display: none;
}

.location-map-modal {
  position: fixed;
  inset: 0;
  z-index: 450;
  display: grid;
  place-items: center;
  padding: 1rem;
}

.location-map-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.58);
}

.location-map-modal__dialog {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  width: min(960px, 100%);
  max-height: min(90vh, 820px);
  border-radius: 14px;
  border: 1px solid rgba(15, 23, 42, 0.1);
  background: #fff;
  box-shadow: 0 30px 70px rgba(15, 23, 42, 0.4);
  padding: 1rem 1.05rem 1.05rem;
}

.location-map-modal__dialog h2 {
  margin: 0 2.2rem 0.75rem 0;
  font-size: clamp(1.2rem, 2.2vw, 1.65rem);
  color: var(--brand-red);
}

.location-map-modal__close {
  position: absolute;
  top: 0.65rem;
  right: 0.65rem;
  width: 1.9rem;
  height: 1.9rem;
  border: 0;
  border-radius: 999px;
  background: var(--btn-red);
  color: #fff;
  font-size: 1.25rem;
  line-height: 1;
  cursor: pointer;
}

.location-map-modal__close:hover {
  background: var(--btn-red-hover);
}

.location-map-modal__frame-wrap {
  flex: 1;
  min-height: 0;
}

.location-map-modal__frame-wrap iframe {
  display: block;
  width: 100%;
  height: min(62vh, 560px);
  min-height: 320px;
  border: 0;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.72);
}

.location-book-modal[hidden] {
  display: none;
}

.location-book-modal {
  position: fixed;
  inset: 0;
  z-index: 460;
  display: grid;
  place-items: center;
  padding: 1rem;
}

.location-book-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.58);
}

.location-book-modal__dialog {
  position: relative;
  z-index: 1;
  width: min(420px, 100%);
  border-radius: 14px;
  border: 1px solid rgba(15, 23, 42, 0.1);
  background: #fff;
  box-shadow: 0 30px 70px rgba(15, 23, 42, 0.4);
  padding: 1.1rem 1.15rem 1.15rem;
}

.location-book-modal__dialog h2 {
  margin: 0 2rem 0.45rem 0;
  font-size: clamp(1.15rem, 2vw, 1.45rem);
  color: var(--brand-red);
}

.location-book-modal__lead {
  margin: 0 0 1rem;
  font-size: 0.88rem;
  line-height: 1.45;
  color: #475569;
}

.location-book-modal__options {
  display: grid;
  gap: 0.55rem;
}

.location-book-modal__option {
  display: block;
  width: 100%;
  padding: 0.72rem 1rem;
  border: 0;
  border-radius: 999px;
  font-family: inherit;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-align: center;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease;
}

.location-book-modal__option--clinic {
  color: var(--white);
  background: var(--brand-red);
}

.location-book-modal__option--clinic:hover {
  background: var(--brand-red-dark);
}

.location-book-modal__option--home {
  color: var(--white);
  background: var(--showcase-secondary, #3d4654);
}

.location-book-modal__option--home:hover {
  background: #2f3640;
}

.location-book-modal__close {
  position: absolute;
  top: 0.65rem;
  right: 0.65rem;
  width: 1.9rem;
  height: 1.9rem;
  border: 0;
  border-radius: 999px;
  background: var(--btn-red);
  color: #fff;
  font-size: 1.25rem;
  line-height: 1;
  cursor: pointer;
}

.location-book-modal__close:hover {
  background: var(--btn-red-hover);
}

@media (max-width: 760px) {
  .location-map {
    min-height: 200px;
  }

  .location-map iframe {
    min-height: 200px;
  }

  .location-map-modal__frame-wrap iframe {
    min-height: 240px;
    height: min(52vh, 420px);
  }
}

.location-card:hover,
.location-card:focus-within {
  transform: translateY(-6px);
  background: var(--white);
  border-color: rgba(100, 116, 139, 0.36);
  box-shadow: 0 16px 32px rgba(15, 23, 42, 0.14);
}

.location-card h2 {
  font-size: 1.75rem;
  margin-bottom: 0.7rem;
  color: var(--brand-red);
}

.location-card address,
.location-card .location-hours,
.location-card .location-soon {
  font-size: var(--text-base);
  line-height: 1.55;
}

@media (max-width: 760px) {
  .location-card {
    min-height: 0;
    padding: 1.25rem 1.3rem;
  }

  .location-card--showcase {
    padding: 0;
  }

  .location-showcase__actions {
    grid-template-columns: 1fr;
  }

  .location-row {
    grid-template-columns: 1fr;
  }

  .location-card h2 {
    font-size: 1.35rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .location-card {
    transition: none;
  }
}

.service-highlights {
  margin-bottom: 2rem;
}

.service-anchor {
  scroll-margin-top: 6rem;
}

.services-offered {
  width: min(1180px, 100%);
  margin: 0 auto;
}

.services-offered__intro {
  text-align: center;
  margin-bottom: 1rem;
}

.services-offered__intro h1 {
  margin: 0;
  font-size: clamp(1.45rem, 3vw, 2rem);
  color: #1f2937;
}

.services-offered__intro p {
  margin: 0.15rem 0 0;
  color: #4b5563;
  font-size: var(--text-base);
}

.services-offered__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.9rem;
}

.service-offer-card {
  border-radius: 10px;
  overflow: hidden;
  background: #ffffff;
  border: 1px solid rgba(15, 23, 42, 0.12);
  box-shadow: 0 8px 18px rgba(15, 23, 42, 0.08);
  cursor: pointer;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.service-offer-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 14px 26px rgba(15, 23, 42, 0.12);
}

.service-offer-card:focus-visible {
  outline: 2px solid var(--brand-red);
  outline-offset: 2px;
}

.service-offer-card__media {
  position: relative;
  min-height: clamp(9.25rem, 26vw, 11.5rem);
  background-size: cover;
  background-position: center;
  padding: 0.85rem 0.85rem 0.75rem;
  display: flex;
  align-items: flex-end;
}

.service-offer-card__media::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(15, 23, 42, 0.12) 0%, rgba(15, 23, 42, 0.7) 100%);
}

.service-offer-card__media h2 {
  margin: 0;
  position: relative;
  z-index: 1;
  color: #ffffff;
  font-size: clamp(1.12rem, 2.5vw, 1.35rem);
  font-weight: 700;
  letter-spacing: 0.01em;
}

.service-offer-card__icon {
  position: absolute;
  top: 0.65rem;
  right: 0.65rem;
  z-index: 1;
  width: 3rem;
  height: 3rem;
  border-radius: 999px;
  background: var(--brand-red);
  color: #ffffff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: var(--text-base);
  box-shadow: 0 6px 12px rgba(var(--brand-red-rgb), 0.28);
}

.service-offer-card__icon svg {
  display: block;
  flex-shrink: 0;
  width: 1.5rem;
  height: 1.5rem;
}

.service-offer-card__body {
  padding: 1rem 1rem 1.05rem;
  min-height: 7rem;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}

.service-offer-card__body p {
  margin: 0;
  color: #4b5563;
  font-size: var(--text-base);
  line-height: 1.5;
}

.service-offer-card__link {
  margin-top: auto;
  padding-top: 0.55rem;
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  color: var(--brand-red-deep);
  font-size: var(--text-base);
  font-weight: 600;
  pointer-events: none;
}

@media (max-width: 980px) {
  .services-offered__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .services-offered__grid {
    grid-template-columns: 1fr;
  }
}

.service-detail-modal[hidden] {
  display: none;
}

.service-detail-modal {
  position: fixed;
  inset: 0;
  z-index: 420;
  display: grid;
  place-items: center;
  padding: 1rem;
}

.service-detail-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.52);
}

.service-detail-modal__dialog {
  position: relative;
  z-index: 1;
  width: min(440px, 100%);
  max-height: min(88vh, 640px);
  overflow: auto;
  border-radius: 14px;
  border: 1px solid rgba(15, 23, 42, 0.1);
  background: #ffffff;
  box-shadow: 0 26px 56px rgba(15, 23, 42, 0.36);
  padding: 0;
}

.service-detail-modal__dialog--rich {
  width: min(560px, 100%);
  max-height: min(92vh, 720px);
}

.service-detail-modal__close {
  position: absolute;
  top: 0.55rem;
  right: 0.55rem;
  z-index: 2;
  width: 2rem;
  height: 2rem;
  border: 0;
  border-radius: 999px;
  background: var(--btn-red);
  color: #ffffff;
  font-size: 1.35rem;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 4px 10px rgba(var(--brand-red-rgb), 0.25);
}

.service-detail-modal__close:hover {
  background: var(--btn-red-hover);
}

.service-detail-modal__content {
  padding: 0 1.2rem 1.15rem;
}

.service-detail-modal__dialog--rich .service-detail-modal__content {
  padding-top: 2.95rem;
}

.service-detail-modal__media {
  margin: 0;
  border-radius: 14px 14px 0 0;
  overflow: hidden;
  background: #e2e8f0;
  max-height: 200px;
}

.service-detail-modal__media img {
  display: block;
  width: 100%;
  height: 180px;
  object-fit: cover;
}

.service-detail-modal__content h2 {
  margin: 0.75rem 0 0.5rem;
  font-size: clamp(1.25rem, 2.6vw, 1.55rem) !important;
  color: #1e293b;
}

.service-detail-modal__dialog--rich .service-detail-modal__content h2 {
  margin-top: 0;
}

.service-detail-modal__desc {
  margin: 0 0 1rem;
  font-size: 1rem;
  line-height: 1.55;
  color: #475569;
}

.service-detail-modal__richtext p {
  margin: 0 0 0.85rem;
  font-size: 1rem;
  line-height: 1.55;
  color: #475569;
}

.service-detail-modal__richtext p:last-child {
  margin-bottom: 0;
}

.service-detail-modal__select-wrap {
  margin: 0.85rem 0 1.05rem;
}

.service-detail-modal__select-lead {
  margin: 0 0 0.45rem;
  font-size: 0.98rem;
  font-weight: 600;
  color: #334155;
}

.service-detail-modal__select {
  display: block;
  width: 100%;
  padding: 0.55rem 0.75rem;
  border-radius: 8px;
  border: 1px solid rgba(185, 28, 28, 0.32);
  background: #fce8ea;
  color: var(--brand-red-deep);
  font-family: inherit;
  font-size: 1rem;
  font-weight: 600;
  cursor: pointer;
  box-sizing: border-box;
  appearance: auto;
}

.service-detail-modal__select:focus-visible {
  outline: 2px solid var(--brand-red);
  outline-offset: 2px;
}

.service-detail-modal__list-lead {
  margin: 1rem 0 0.35rem;
  font-size: 0.98rem;
  font-weight: 600;
  color: #334155;
}

.service-detail-modal__subhead {
  margin: 1.1rem 0 0.45rem;
  font-size: var(--text-base);
  font-weight: 700;
  color: #0f172a;
}

.service-detail-modal__list {
  margin: 0 0 0.5rem;
  padding-left: 1.15rem;
  font-size: 0.98rem;
  line-height: 1.5;
  color: #64748b;
}

.service-detail-modal__list li {
  margin-bottom: 0.25rem;
}

.service-detail-modal__list--includes {
  list-style-type: disc;
}

.service-detail-modal__list--benefits {
  list-style: none;
  padding-left: 0;
}

.service-detail-modal__list--benefits li {
  position: relative;
  padding-left: 0.9rem;
}

.service-detail-modal__list--benefits li::before {
  content: "–";
  position: absolute;
  left: 0;
  color: var(--brand-red-deep);
  font-weight: 700;
}

.service-detail-modal__list--benefits.service-detail-modal__list--benefits-square li::before {
  content: "";
  top: 0.52em;
  width: 5px;
  height: 5px;
  background: var(--brand-red-deep);
  border-radius: 1px;
  font-weight: 400;
}

.service-detail-modal__list--benefits.service-detail-modal__list--benefits-dot li::before {
  content: "";
  top: 0.58em;
  width: 5px;
  height: 5px;
  background: var(--brand-red-deep);
  border-radius: 50%;
  font-weight: 400;
}

.service-detail-modal__actions {
  margin-top: 1.15rem;
}

.service-detail-modal__actions--dual {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  align-items: center;
}

.service-detail-modal__actions--dual .service-detail-modal__cta {
  flex: 1 1 calc(50% - 0.3rem);
  min-width: 10rem;
  text-align: center;
}

.service-detail-modal__btn-outline {
  flex: 1 1 calc(50% - 0.3rem);
  min-width: 10rem;
  padding: 0.5rem 1rem;
  border-radius: 8px;
  border: 2px solid var(--brand-red-deep);
  background: #ffffff;
  color: var(--brand-red-deep);
  font-family: inherit;
  font-size: 0.92rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease;
}

.service-detail-modal__btn-outline:hover {
  background: rgba(var(--brand-red-rgb), 0.06);
}

.service-detail-modal__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.55rem 1.15rem;
  border-radius: 8px;
  font-size: var(--text-base);
  font-weight: 600;
  text-decoration: none;
  color: #ffffff;
  background: var(--btn-red);
  border: none;
  box-sizing: border-box;
}

.service-detail-modal__cta:hover {
  background: var(--brand-blue);
  color: var(--white);
}

.test-directory-section {
  scroll-margin-top: 6rem;
  margin-bottom: 2.5rem;
}

.test-directory-section:last-child {
  margin-bottom: 0;
}

.test-directory-heading {
  margin: 0 0 0.5rem;
  font-size: clamp(1.2rem, 2.8vw, 1.45rem);
  font-weight: 700;
  color: var(--brand-red);
  letter-spacing: -0.02em;
}

.test-directory-lead {
  margin: 0 0 1.1rem;
  max-width: 44rem;
  font-size: 1rem;
  color: var(--text-muted);
}

.info-card h3 {
  margin: 0 0 0.4rem;
  font-size: 1rem;
  font-weight: 700;
  color: var(--brand-blue-deep);
}

.test-directory-list {
  margin: 0;
  padding-left: 1.35rem;
  max-width: 40rem;
  color: var(--text-muted);
  line-height: 1.55;
}

.test-directory-list li {
  margin-bottom: 0.35rem;
}

.test-table-wrap {
  overflow-x: auto;
  border: 1px solid var(--border-subtle);
  border-radius: 10px;
}

.test-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.92rem;
}

.test-table th,
.test-table td {
  padding: 0.65rem 1rem;
  text-align: left;
  border-bottom: 1px solid rgba(51, 51, 51, 0.08);
}

.test-table th {
  background: rgba(var(--brand-red-rgb), 0.08);
  font-weight: 700;
  color: var(--brand-red);
  white-space: nowrap;
}

.test-table tbody tr:last-child td {
  border-bottom: none;
}

.test-table tbody tr:hover {
  background: rgba(93, 173, 226, 0.06);
}

.find-doctor-image-card {
  margin: 0;
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid rgba(15, 23, 42, 0.1);
  background: linear-gradient(115deg, rgba(248, 223, 229, 0.85) 0%, rgba(235, 244, 255, 0.88) 100%);
  box-shadow: 0 10px 22px rgba(15, 23, 42, 0.08);
}

.find-doctor-image-card__frame {
  overflow: hidden;
  will-change: transform;
}

.find-doctor-image-card__img {
  display: block;
  width: 100%;
  height: auto;
  transform-origin: center center;
  will-change: transform, opacity;
}

@keyframes find-doctor-image-reveal {
  from {
    opacity: 0;
    transform: scale(1.05) translateY(20px);
  }

  to {
    opacity: 1;
    transform: scale(1) translateY(0);
  }
}

@keyframes find-doctor-image-float {
  0%,
  100% {
    transform: translateY(0);
  }

  50% {
    transform: translateY(-8px);
  }
}

.home-service-wizard {
  border-radius: 14px;
  border: 1px solid rgba(0, 147, 208, 0.22);
  background: linear-gradient(115deg, rgba(227, 242, 253, 0.95) 0%, rgba(186, 224, 247, 0.88) 100%);
  box-shadow: 0 14px 36px rgba(11, 49, 143, 0.16);
  padding: 1.8rem 2.4rem;
  font-size: 12px;
}

.wizard-steps {
  list-style: none;
  margin: 0 0 1.1rem;
  padding: 0;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.45rem;
  flex-wrap: nowrap;
  overflow-x: auto;
}

.wizard-steps li {
  position: relative;
  min-width: 112px;
  text-align: center;
  font-size: 12px;
  color: var(--brand-red-deep);
  flex: 1 1 0;
}

.wizard-steps li span {
  display: inline-flex;
  width: 2.8rem;
  height: 2.8rem;
  border-radius: 999px;
  align-items: center;
  justify-content: center;
  font-size: 1.35rem;
  font-weight: 800;
  color: #fff;
  background: var(--btn-red-pressed);
  margin-bottom: 0.3rem;
}

.wizard-steps li strong {
  display: block;
  font-size: 12px;
  font-weight: 600;
}

.wizard-steps li:not(:last-child)::after {
  content: "\2192";
  position: absolute;
  top: 0.82rem;
  right: -0.35rem;
  color: var(--brand-blue);
  font-size: 1.5rem;
  font-weight: 700;
}

.wizard-steps li.is-active span,
.wizard-steps li.is-complete span {
  background: var(--btn-red);
}

.wizard-form {
  background: rgba(255, 255, 255, 0.74);
  border: 1px solid rgba(15, 23, 42, 0.1);
  border-radius: 12px;
  padding: 1.35rem;
}

.wizard-panel {
  display: none;
}

.wizard-panel.is-active {
  display: block;
}

.wizard-panel h2 {
  margin: 0;
  text-align: center;
  text-transform: uppercase;
  color: var(--brand-red-deep);
  font-size: 12px;
}

.wizard-panel > p {
  margin: 0.35rem 0 1rem;
  text-align: center;
  color: var(--brand-red);
  font-size: 12px;
}

.wizard-grid {
  display: grid;
  gap: 0.65rem 1.4rem;
}

.wizard-grid.two-col {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  max-width: 720px;
  margin: 0 auto;
}

.wizard-grid.three-col {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  max-width: 860px;
  margin: 0 auto;
}

.wizard-panel[data-step="3"] .wizard-grid.two-col,
.wizard-panel[data-step="3"] > label,
.wizard-panel[data-step="3"] .wizard-checks,
.wizard-panel[data-step="3"] .wizard-actions {
  max-width: 860px;
  margin-left: auto;
  margin-right: auto;
}

.wizard-panel[data-step="3"] > label {
  margin-top: 0.9rem;
}

.wizard-grid label,
.wizard-panel > label {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  font-size: 12px;
  font-weight: 700;
  color: #334155;
}

.wizard-grid input,
.wizard-grid select,
.wizard-panel textarea,
.wizard-grid input[type="file"] {
  border: 1px solid rgba(15, 23, 42, 0.22);
  border-radius: 8px;
  padding: 0.42rem 0.55rem;
  font-size: 12px;
  background: #fff;
}

.wizard-grid input,
.wizard-grid select {
  min-height: 2rem;
}

.wizard-panel textarea {
  width: 100%;
  min-height: 105px;
  resize: vertical;
}

.wizard-hotline {
  margin: 1rem 0 0;
  color: var(--brand-red-deep);
  font-size: 12px;
}

.wizard-hotline a {
  color: var(--brand-red);
  text-decoration: none;
  font-weight: 700;
}

.wizard-hotline a:hover {
  text-decoration: underline;
}

.wizard-checks {
  margin-top: 0.8rem;
  display: grid;
  gap: 0.45rem;
}

.wizard-checks label {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 12px;
  color: #334155;
}

.wizard-actions {
  margin-top: 1rem;
  display: flex;
  justify-content: space-between;
  gap: 0.7rem;
}

.wizard-btn {
  border: 0;
  border-radius: 8px;
  background: var(--btn-red);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  padding: 0.6rem 1.15rem;
  cursor: pointer;
  transition: background-color 0.2s ease;
}

.wizard-btn:hover:not([disabled]) {
  background: var(--btn-red-hover);
}

.wizard-btn--secondary {
  background: var(--btn-red);
}

.wizard-btn[disabled] {
  opacity: 1;
  cursor: not-allowed;
}

.wizard-btn--secondary[disabled] {
  background: var(--btn-red-pressed);
}

.wizard-summary {
  display: grid;
  gap: 0.8rem;
  max-width: 860px;
  margin: 0 auto;
}

.wizard-summary-block {
  border: 1px solid rgba(15, 23, 42, 0.12);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.84);
  padding: 0.75rem 0.85rem;
}

.wizard-summary-block h3 {
  margin: 0 0 0.5rem;
  font-size: 12px;
  color: var(--brand-red-deep);
}

.wizard-summary-block dl {
  margin: 0;
  display: grid;
  gap: 0.32rem;
}

.wizard-summary-block dl div {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) 1.5fr;
  gap: 0.6rem;
  border-bottom: 1px dashed rgba(15, 23, 42, 0.12);
  padding-bottom: 0.2rem;
}

.wizard-summary-block dl div:last-child {
  border-bottom: 0;
}

.wizard-summary-block dt {
  margin: 0;
  font-weight: 700;
  color: #334155;
  font-size: 12px;
}

.wizard-summary-block dd {
  margin: 0;
  color: #0f172a;
  font-size: 12px;
  word-break: break-word;
}

@media (max-width: 900px) {
  .wizard-grid.two-col,
  .wizard-grid.three-col {
    grid-template-columns: 1fr;
  }

  .wizard-actions {
    flex-direction: column;
  }

  .wizard-summary-block dl div {
    grid-template-columns: 1fr;
    gap: 0.2rem;
  }
}

@keyframes job-card-enter {
  from {
    opacity: 0;
    transform: translateY(22px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.job-list {
  display: grid;
  gap: 1.25rem;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr));
  align-items: stretch;
}

.job-card {
  display: flex;
  flex-direction: column;
  background: var(--white);
  border-radius: 10px;
  padding: 1.25rem 1.35rem 1.15rem;
  box-shadow: 0 4px 22px rgba(0, 0, 0, 0.08);
  border: 1px solid rgba(0, 0, 0, 0.06);
  animation: job-card-enter 0.65s cubic-bezier(0.22, 1, 0.36, 1) both;
  transition:
    transform 0.42s cubic-bezier(0.34, 1.45, 0.52, 1),
    box-shadow 0.42s cubic-bezier(0.34, 1.45, 0.52, 1),
    border-color 0.35s ease;
}

.job-card:nth-child(1) {
  animation-delay: 0.06s;
}

.job-card:nth-child(2) {
  animation-delay: 0.12s;
}

.job-card:nth-child(3) {
  animation-delay: 0.18s;
}

.job-card:nth-child(4) {
  animation-delay: 0.24s;
}

.job-card:nth-child(5) {
  animation-delay: 0.3s;
}

.job-card:nth-child(6) {
  animation-delay: 0.36s;
}

.job-card:nth-child(7) {
  animation-delay: 0.42s;
}

.job-card:nth-child(8) {
  animation-delay: 0.48s;
}

.job-card:nth-child(n + 9) {
  animation-delay: 0.54s;
}

.job-card:hover {
  transform: translateY(-8px) scale(1.02);
  box-shadow:
    0 18px 42px rgba(var(--brand-red-rgb), 0.16),
    0 8px 22px rgba(0, 0, 0, 0.1);
  border-color: rgba(var(--brand-red-rgb), 0.28);
}

@media (prefers-reduced-motion: reduce) {
  .job-card {
    animation: none;
    transition: none;
  }

  .job-card:hover {
    transform: none;
    box-shadow: 0 4px 22px rgba(0, 0, 0, 0.08);
    border-color: rgba(0, 0, 0, 0.06);
  }

  .job-card:hover .job-card__title {
    color: var(--brand-red-deep);
  }

  .job-card:hover .job-card__watermark {
    opacity: 0.11;
    transform: none;
  }

  .job-card:hover .job-card__cta {
    transform: none;
    box-shadow: none;
  }

  .about-cards .prose-block {
    animation: none;
    transition: none;
  }

  .about-cards .prose-block:hover {
    transform: none;
    box-shadow: 0 4px 22px rgba(0, 0, 0, 0.08);
    border-color: rgba(0, 0, 0, 0.06);
  }

  .about-cards .prose-block:hover h2 {
    color: var(--brand-red-deep);
  }
}

.job-card__title {
  margin: 0;
  font-size: var(--text-base);
  font-weight: 800;
  color: var(--brand-red-deep);
  letter-spacing: -0.02em;
  line-height: 1.25;
  transition: color 0.3s ease;
}

.job-card:hover .job-card__title {
  color: var(--brand-red);
}

.job-card__rule {
  height: 1px;
  margin: 0.65rem 0 0.75rem;
  background: rgba(0, 0, 0, 0.1);
  border: none;
}

.job-card__meta {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

.job-card__meta-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.35rem 0.5rem;
  font-size: var(--text-base);
  line-height: 1.45;
  color: var(--text-body);
}

.job-card__meta-icon {
  display: inline-flex;
  flex-shrink: 0;
  color: var(--brand-red-deep);
}

.job-card__meta-icon svg {
  display: block;
}

.job-card__meta-label {
  font-weight: 700;
}

.job-card__meta-value {
  font-weight: 400;
}

.job-card__body {
  position: relative;
  flex: 1 1 auto;
  min-height: 5.5rem;
  padding-right: 0.25rem;
}

.job-card__desc {
  position: relative;
  z-index: 1;
  margin: 0;
  font-size: var(--text-base);
  line-height: 1.55;
  color: var(--text-body);
}

.job-card__watermark {
  position: absolute;
  right: -0.35rem;
  bottom: -0.25rem;
  width: 6.75rem;
  height: 6.75rem;
  color: var(--text-body);
  opacity: 0.11;
  pointer-events: none;
  transform: scale(1);
  transform-origin: bottom right;
  transition:
    opacity 0.4s ease,
    transform 0.42s cubic-bezier(0.34, 1.45, 0.52, 1);
}

.job-card:hover .job-card__watermark {
  opacity: 0.18;
  transform: scale(1.08);
}

.job-card__watermark svg {
  width: 100%;
  height: 100%;
}

.job-card__footer {
  display: flex;
  justify-content: flex-end;
  margin-top: 1.1rem;
  padding-top: 0.25rem;
}

.job-card__cta {
  position: relative;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.45rem 1.15rem;
  font-size: 0.82rem;
  font-weight: 700;
  font-family: inherit;
  text-decoration: none;
  color: var(--white);
  background: var(--btn-red);
  border: 0;
  border-radius: 6px;
  cursor: pointer;
  appearance: none;
  transition:
    background 0.2s ease,
    color 0.2s ease,
    transform 0.38s cubic-bezier(0.34, 1.45, 0.52, 1),
    box-shadow 0.38s ease;
}

.job-card:hover .job-card__cta {
  transform: translateY(-3px);
  box-shadow: 0 8px 22px rgba(var(--brand-red-rgb), 0.38);
}

.job-card__cta:hover {
  background: var(--btn-red-hover);
  color: var(--white);
}

.job-card__cta:focus-visible {
  outline: 2px solid var(--brand-blue);
  outline-offset: 2px;
}

.job-detail-modal .service-detail-modal__dialog {
  width: min(32rem, 100%);
}

.job-detail-modal__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 1.25rem;
  margin: 0 0 1rem;
  font-size: var(--text-base);
  line-height: 1.45;
  color: #334155;
}

.job-detail-modal__apply-note {
  margin: 0 0 0.85rem;
  font-size: 0.95rem;
  line-height: 1.5;
  color: #475569;
}

.job-detail-modal__apply-note a {
  color: var(--brand-blue-deep);
  font-weight: 600;
}

.careers-apply-hint {
  margin: 0.75rem 0 0;
  max-width: 52rem;
  font-size: var(--text-base);
  line-height: 1.45;
  color: var(--text-muted);
}

.careers-apply-hint a {
  color: var(--brand-blue-deep);
  font-weight: 600;
}

.content-columns {
  display: grid;
  gap: 1.5rem;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}

.prose-block h2 {
  margin: 0 0 0.5rem;
  font-size: 1.15rem;
  color: var(--brand-red);
}

.prose-block p {
  margin: 0;
  font-size: var(--text-base);
  color: var(--text-muted);
}

/* About Us: match Careers job-card entrance + hover motion */
.about-cards .prose-block {
  display: flex;
  flex-direction: column;
  background: var(--white);
  border-radius: 10px;
  padding: 1.25rem 1.35rem 1.15rem;
  box-shadow: 0 4px 22px rgba(0, 0, 0, 0.08);
  border: 1px solid rgba(0, 0, 0, 0.06);
  animation: job-card-enter 0.65s cubic-bezier(0.22, 1, 0.36, 1) both;
  transition:
    transform 0.42s cubic-bezier(0.34, 1.45, 0.52, 1),
    box-shadow 0.42s cubic-bezier(0.34, 1.45, 0.52, 1),
    border-color 0.35s ease;
}

.about-cards .prose-block:nth-child(1) {
  animation-delay: 0.06s;
}

.about-cards .prose-block:nth-child(2) {
  animation-delay: 0.12s;
}

.about-cards .prose-block:nth-child(3) {
  animation-delay: 0.18s;
}

.about-cards .prose-block:nth-child(4) {
  animation-delay: 0.24s;
}

.about-cards .prose-block:nth-child(5) {
  animation-delay: 0.3s;
}

.about-cards .prose-block:nth-child(6) {
  animation-delay: 0.36s;
}

.about-cards .prose-block:nth-child(7) {
  animation-delay: 0.42s;
}

.about-cards .prose-block:nth-child(8) {
  animation-delay: 0.48s;
}

.about-cards .prose-block:nth-child(n + 9) {
  animation-delay: 0.54s;
}

.about-cards .prose-block:hover {
  transform: translateY(-8px) scale(1.02);
  box-shadow:
    0 18px 42px rgba(var(--brand-red-rgb), 0.16),
    0 8px 22px rgba(0, 0, 0, 0.1);
  border-color: rgba(var(--brand-red-rgb), 0.28);
}

.about-cards .prose-block h2 {
  margin: 0 0 0.5rem;
  font-size: var(--text-base);
  font-weight: 800;
  color: var(--brand-red-deep);
  letter-spacing: -0.02em;
  line-height: 1.25;
  transition: color 0.3s ease;
}

.about-cards .prose-block:hover h2 {
  color: var(--brand-red);
}

.about-cards .prose-block p {
  color: var(--text-body);
  line-height: 1.5;
}

.results-login-card {
  max-width: 460px;
  margin: 0 auto;
  border-radius: 12px;
  border: 1px solid rgba(15, 23, 42, 0.12);
  background: linear-gradient(115deg, rgba(248, 223, 229, 0.82) 0%, rgba(235, 244, 255, 0.86) 100%);
  box-shadow: 0 10px 22px rgba(15, 23, 42, 0.08);
  padding: 1rem;
}

.results-login-card h2 {
  margin: 0;
  color: var(--brand-red-deep);
}

.results-login-card p {
  margin: 0.35rem 0 0.85rem;
  color: var(--text-muted);
}

.results-login-form {
  display: grid;
  gap: 0.65rem;
}

.results-login-form label {
  display: flex;
  flex-direction: column;
  gap: 0.26rem;
  font-size: 12px;
  font-weight: 700;
  color: #334155;
}

.results-login-form input {
  border: 1px solid rgba(15, 23, 42, 0.2);
  border-radius: 8px;
  padding: 0.58rem 0.7rem;
  font-size: 12px;
  background: #fff;
}

.results-login-form button {
  margin-top: 0.25rem;
  border: 0;
  border-radius: 8px;
  background: var(--btn-red);
  color: #fff;
  padding: 0.62rem 1rem;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  transition: background-color 0.2s ease;
}

.results-login-form button:hover {
  background: var(--btn-red-hover);
}

.results-modal[hidden] {
  display: none;
}

.results-modal {
  position: fixed;
  inset: 0;
  z-index: 430;
  display: grid;
  place-items: center;
  padding: 1rem;
}

.results-modal__backdrop {
  position: absolute;
  inset: 0;
  background: linear-gradient(120deg, rgba(241, 246, 252, 0.56) 0%, rgba(222, 236, 249, 0.54) 46%, rgba(243, 248, 253, 0.56) 100%);
  backdrop-filter: blur(0.8px);
}

.results-modal__backdrop::before {
  content: "";
  position: absolute;
  inset: 0;
  background: url("../images/dna-login-bg.png") center / cover no-repeat;
  opacity: 0.64;
  filter: brightness(1.2) contrast(1.28);
  mix-blend-mode: screen;
  pointer-events: none;
}

.results-modal__backdrop::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 82% 18%, rgba(255, 255, 255, 0.2) 0 2px, transparent 4px),
    radial-gradient(circle at 78% 24%, rgba(255, 255, 255, 0.18) 0 2px, transparent 4px),
    radial-gradient(circle at 22% 82%, rgba(255, 255, 255, 0.2) 0 2px, transparent 4px),
    radial-gradient(circle at 28% 74%, rgba(255, 255, 255, 0.18) 0 2px, transparent 4px);
  pointer-events: none;
}

.results-modal__dialog {
  position: relative;
  z-index: 1;
  width: min(390px, 100%);
  border: 1px solid rgba(15, 23, 42, 0.14);
  border-radius: 18px;
  background: #ffffff;
  box-shadow: 0 26px 56px rgba(15, 23, 42, 0.36), 0 10px 22px rgba(15, 23, 42, 0.26);
  padding: 1.2rem 1.1rem 1.05rem;
}

.results-modal__close {
  position: absolute;
  right: 0.75rem;
  top: 0.72rem;
  width: 2.1rem;
  height: 2.1rem;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: #6b7280;
  font-size: 2.05rem;
  line-height: 1;
  cursor: pointer;
}

.results-modal__titlebar {
  display: flex;
  align-items: center;
  flex-direction: column;
  gap: 0.55rem;
  margin-bottom: 0.95rem;
}

.results-modal__titlebar img {
  width: 4.1rem;
  height: 4.1rem;
  border-radius: 999px;
}

.results-modal__dialog h2 {
  margin: 0;
  font-size: 18px !important;
  font-weight: 500;
  color: #1f2937;
  text-align: center;
}

.results-modal-form {
  display: grid;
  gap: 0.8rem;
  max-width: 340px;
  margin: 0 auto;
}

.results-modal-form label {
  display: flex;
  flex-direction: column;
  gap: 0.28rem;
  font-size: 12px;
  font-weight: 700;
  color: #6b7280;
}

.results-field {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  border: 1px solid rgba(148, 163, 184, 0.45);
  border-radius: 10px;
  padding: 0.46rem 0.62rem;
  background: rgba(245, 248, 255, 0.9);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.35);
}

.results-field__icon {
  color: var(--brand-red);
  font-size: var(--text-base);
  line-height: 1;
}

.results-field__icon-right {
  color: var(--brand-red);
  font-size: var(--text-base);
}

.results-field__toggle {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--brand-red);
  cursor: pointer;
  line-height: 1;
}

.results-field__toggle:hover {
  color: var(--btn-red-hover);
}

.results-field__toggle:focus-visible {
  outline: 2px solid rgba(var(--brand-red-rgb), 0.45);
  outline-offset: 2px;
  border-radius: 4px;
}

.results-field__icon svg,
.results-field__icon-right svg,
.results-field__toggle svg {
  display: block;
}

.results-modal-form input {
  border: 0;
  outline: 0;
  width: 100%;
  background: transparent;
  font-size: 12px;
}

.results-modal-form__message {
  margin: 0;
  padding: 0.45rem 0.55rem;
  border-radius: 8px;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.35;
  text-align: center;
}

.results-modal-form__message--error {
  color: #991b1b;
  background: rgba(254, 226, 226, 0.95);
  border: 1px solid rgba(248, 113, 113, 0.45);
}

.results-modal-form__message--success {
  color: #14532d;
  background: rgba(220, 252, 231, 0.95);
  border: 1px solid rgba(74, 222, 128, 0.45);
}

.results-modal-form button[type="submit"] {
  width: 100%;
  border: 0;
  border-radius: 8px;
  background: var(--btn-red);
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  padding: 0.6rem 1rem;
  box-shadow: inset 0 -2px 0 rgba(0, 0, 0, 0.18), 0 8px 16px rgba(var(--brand-red-rgb), 0.3);
  cursor: pointer;
  transition: background 0.25s ease, color 0.25s ease, transform 0.2s ease, box-shadow 0.25s ease;
}

.results-modal-form button[type="submit"]:hover {
  background: var(--brand-blue);
  color: var(--white);
  transform: translateY(-1px);
  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.14), 0 10px 18px rgba(var(--brand-red-rgb), 0.28);
}

.results-modal-form button[type="submit"]:disabled {
  opacity: 0.65;
  cursor: not-allowed;
  transform: none;
}

.results-modal-form__actions {
  margin-top: 0.15rem;
}

.results-modal-form__forgot {
  display: block;
  text-align: center;
  margin-top: 0.4rem;
  color: var(--brand-red-deep);
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
}

.results-modal-form__forgot:hover {
  text-decoration: underline;
}

/* ——— Footer ——— */
.site-footer {
  margin-top: 2.5rem;
  background: var(--footer-bg);
  color: #e8edf3;
  font-size: var(--text-footer);
}

.site-footer-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 2.2rem 1.5rem 1.75rem;
  display: grid;
  /* Visual order: brand | Quick Links | Contact Us | Business Hours */
  /* Quick column: max-content so it doesn’t stretch and leave a wide gap before Contact */
  grid-template-columns: minmax(240px, 1.15fr) minmax(0, max-content) minmax(280px, max-content) minmax(200px, max-content);
  column-gap: 1rem;
  row-gap: 1.85rem;
}

.site-footer-inner > * {
  min-width: 0;
}

.site-footer-inner > .footer-brand {
  order: 1;
}

.site-footer-inner > div:nth-child(2) {
  order: 2;
  padding-left: 0.35rem;
  padding-right: 0.75rem;
}

.site-footer-inner > div:nth-child(3) {
  order: 3;
  padding-left: 0.65rem;
  padding-right: 0.75rem;
  margin-left: 0.15rem;
  min-width: 280px;
}

.site-footer-inner > div:nth-child(4) {
  order: 4;
  justify-self: start;
  padding-left: 0.65rem;
  margin-left: 0.15rem;
  padding-right: 0;
}

.footer-brand {
  max-width: 420px;
}

.footer-brand-link {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  text-decoration: none;
  margin-bottom: 0.55rem;
}

.footer-brand-name {
  color: #ffffff;
  font-size: var(--text-footer);
  font-weight: 700;
}

.footer-logo {
  width: 42px;
  height: 42px;
  object-fit: cover;
  border-radius: 50%;
}

.footer-brand p {
  margin: 0;
  font-size: var(--text-footer);
  line-height: 1.42;
  color: rgba(232, 237, 243, 0.84);
  max-width: 56ch;
}

.footer-title {
  margin: 0 0 0.7rem;
  font-size: 1.12rem;
  color: #ffffff;
}

.footer-links,
.footer-info {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.55rem;
}

/* Contact Us: keep address + phone rows close without overlap (no negative margins) */
.footer-info:not(.footer-hours) {
  gap: 0.22rem;
  row-gap: 0.22rem;
}

.footer-info:not(.footer-hours) > li:nth-child(2) {
  margin-bottom: 0.38rem;
}

.footer-links a,
.footer-info a {
  font-size: var(--text-footer);
  color: #d7e6ff;
  text-decoration: none;
}

.footer-links a:hover,
.footer-info a:hover {
  color: #ffffff;
  text-decoration: underline;
}

.footer-info li {
  font-size: var(--text-footer);
  color: rgba(232, 237, 243, 0.92);
  overflow-wrap: normal;
}

/* Contact Us: icon column + text block so address aligns with branch title */
.footer-info:not(.footer-hours) > li {
  display: flex;
  align-items: flex-start;
  gap: 0.35rem;
}

.footer-info:not(.footer-hours) > li > .footer-icon {
  flex-shrink: 0;
  margin-right: 0;
  margin-top: 0.06em;
  color: #fff;
}

.footer-info .footer-contact-text > .footer-icon {
  display: inline-block;
  vertical-align: text-top;
  width: 1.1rem;
  margin-right: 0.25rem;
  margin-top: 0;
  color: #fff;
}

.footer-info .footer-contact-text > .footer-icon--clock,
.footer-info .footer-contact-text > .footer-icon--pin,
.footer-info .footer-contact-text > .footer-icon--phone,
.footer-info:not(.footer-hours) > li > .footer-icon--pin,
.footer-info:not(.footer-hours) > li > .footer-icon--phone,
.footer-info:not(.footer-hours) > li > .footer-icon,
.site-footer .footer-icon {
  width: 1.2rem;
  height: 1.2rem;
  margin-right: 0.32rem;
  margin-top: 0.02em;
  color: #fff;
  vertical-align: text-top;
  line-height: 0;
  flex-shrink: 0;
}

.footer-info .footer-contact-text > .footer-icon--clock svg,
.footer-info .footer-contact-text > .footer-icon--pin svg,
.footer-info .footer-contact-text > .footer-icon--phone svg,
.footer-info:not(.footer-hours) > li > .footer-icon--pin svg,
.footer-info:not(.footer-hours) > li > .footer-icon--phone svg {
  display: block;
  width: 1.2rem;
  height: 1.2rem;
}

.footer-info .footer-contact-text {
  flex: 1;
  min-width: 0;
  line-height: 1.4;
  overflow-wrap: normal;
  word-break: normal;
}

.footer-icon {
  display: inline-block;
  width: 1.1rem;
  margin-right: 0.2rem;
}

.footer-hours li {
  display: block;
  margin: 0;
  padding: 0;
}

.footer-info.footer-hours {
  gap: 0.42rem;
}

.footer-hours strong {
  color: #ffffff;
  font-weight: 700;
}

.footer-social-inline {
  list-style: none;
  margin: 0.8rem 0 0;
  padding: 0;
  display: flex;
  gap: 0.7rem;
}

.footer-social-inline a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3rem;
  height: 3rem;
  border-radius: 999px;
  color: #d7e6ff;
  text-decoration: none;
  border: 1px solid rgba(255, 255, 255, 0.16);
}

.footer-social-inline a:hover {
  color: #fff;
  border-color: rgba(255, 255, 255, 0.42);
  background: rgba(255, 255, 255, 0.08);
}

.footer-social-inline .social-icon svg {
  width: 1.55rem;
  height: 1.55rem;
  fill: currentColor;
}

.footer-social-inline .social-icon svg path {
  fill: currentColor;
}

.footer-social-trigger {
  margin: 0.8rem 0 0;
}

.footer-social-open {
  appearance: none;
  -webkit-appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  max-width: 100%;
  margin: 0;
  padding: 0.55rem 1rem 0.55rem 0.75rem;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  background: rgba(255, 255, 255, 0.04);
  color: #d7e6ff;
  font: inherit;
  font-size: 0.92rem;
  font-weight: 600;
  line-height: 1.2;
  cursor: pointer;
  box-sizing: border-box;
}

.footer-social-open:hover,
.footer-social-open:focus-visible {
  color: #fff;
  border-color: rgba(255, 255, 255, 0.42);
  background: rgba(255, 255, 255, 0.08);
}

.footer-social-open__icon {
  display: inline-flex;
  flex: 0 0 auto;
  width: 1.55rem;
  height: 1.55rem;
  line-height: 0;
}

.footer-social-open__icon svg {
  display: block;
  width: 1.55rem;
  height: 1.55rem;
  max-width: 1.55rem;
  max-height: 1.55rem;
  fill: currentColor;
}

.footer-social-open__label {
  white-space: nowrap;
}

.site-nav .nav-dropdown button {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0.72rem 1.15rem;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  font-size: 0.92rem;
  font-weight: 600;
  text-align: left;
  cursor: pointer;
}

.site-nav .nav-dropdown button:hover,
.site-nav .nav-dropdown button:focus-visible {
  color: var(--teal, #0f766e);
  background: rgba(15, 118, 110, 0.08);
  outline: none;
}

.dclc-location-social-modal[hidden] {
  display: none !important;
}

.dclc-location-social-modal {
  position: fixed;
  inset: 0;
  z-index: 12000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
}

.dclc-location-social-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.58);
}

.dclc-location-social-modal__dialog {
  position: relative;
  width: min(100%, 28rem);
  max-height: min(88vh, 48rem);
  overflow-x: hidden;
  overflow-y: auto;
  padding: 1.45rem 1.35rem 1.25rem;
  border-radius: 1.1rem;
  border: 1px solid rgba(var(--brand-red-rgb), 0.16);
  background:
    linear-gradient(180deg, rgba(var(--brand-red-rgb), 0.06) 0%, rgba(255, 255, 255, 0) 7.5rem),
    #fff;
  box-shadow: 0 24px 60px rgba(17, 42, 65, 0.28);
  scrollbar-width: thin;
  scrollbar-color: rgba(var(--brand-red-rgb), 0.45) transparent;
  transition: width 0.15s ease;
}

.dclc-location-social-modal__dialog::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--brand-red) 0%, var(--brand-blue) 100%);
  border-radius: 1.1rem 1.1rem 0 0;
}

.dclc-location-social-modal__dialog--single,
.dclc-location-social-modal__dialog--count-1 {
  width: min(100%, 28rem);
}

.dclc-location-social-modal__dialog--count-2 {
  width: min(100%, 44rem);
}

.dclc-location-social-modal__dialog--count-3,
.dclc-location-social-modal__dialog--count-many {
  width: min(100%, 62rem);
}

.dclc-location-social-modal__dialog::-webkit-scrollbar {
  width: 8px;
}

.dclc-location-social-modal__dialog::-webkit-scrollbar-track {
  margin: 0.75rem 0;
  background: transparent;
}

.dclc-location-social-modal__dialog::-webkit-scrollbar-thumb {
  border-radius: 999px;
  background: rgba(var(--brand-red-rgb), 0.4);
  border: 2px solid transparent;
  background-clip: padding-box;
}

.dclc-location-social-modal__dialog::-webkit-scrollbar-thumb:hover {
  background: rgba(var(--brand-red-rgb), 0.62);
  border: 2px solid transparent;
  background-clip: padding-box;
}

.dclc-location-social-modal__dialog::-webkit-scrollbar-button {
  display: none;
  height: 0;
  width: 0;
}

.dclc-location-social-modal__close {
  position: absolute;
  top: 0.65rem;
  right: 0.65rem;
  width: 2rem;
  height: 2rem;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: var(--brand-red);
  font-size: 1.45rem;
  line-height: 1;
  cursor: pointer;
}

.dclc-location-social-modal__close:hover,
.dclc-location-social-modal__close:focus-visible {
  background: rgba(var(--brand-red-rgb), 0.1);
  color: var(--brand-red-deep);
}

.dclc-location-social-modal__title {
  margin: 0 2rem 0.45rem 0;
  font-size: 1.95rem;
  color: var(--brand-red-deep);
}

.dclc-location-social-modal__intro {
  margin: 0 0 1.2rem;
  color: #4b647c;
  font-size: 1.2rem;
}

.dclc-location-social-modal__body {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}

.dclc-location-social-modal__body--grid[data-columns="2"] {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.dclc-location-social-modal__body--grid[data-columns="3"] {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.dclc-location-social-modal__location {
  padding: 0.95rem 1rem;
  border: 1px solid rgba(var(--brand-red-rgb), 0.16);
  border-radius: 0.85rem;
  background: rgba(var(--brand-red-rgb), 0.04);
  min-width: 0;
}

.dclc-location-social-modal__location-title {
  margin: 0 0 0.9rem;
  font-size: 1.35rem;
  color: var(--brand-red-deep);
}

@media (max-width: 720px) {
  .dclc-location-social-modal__dialog--count-2,
  .dclc-location-social-modal__dialog--count-3,
  .dclc-location-social-modal__dialog--count-many {
    width: min(100%, 28rem);
  }

  .dclc-location-social-modal__body--grid[data-columns="2"],
  .dclc-location-social-modal__body--grid[data-columns="3"] {
    grid-template-columns: 1fr;
  }
}

.dclc-location-social-modal__links {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.55rem;
}

.dclc-location-social-modal__link {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.8rem 0.95rem;
  border-radius: 0.65rem;
  background: #fff;
  border: 1px solid rgba(var(--brand-red-rgb), 0.14);
  color: var(--brand-red-deep);
  text-decoration: none;
  font-size: 1.18rem;
  font-weight: 700;
}

.dclc-location-social-modal__link:hover,
.dclc-location-social-modal__link:focus-visible {
  border-color: var(--brand-red);
  background: var(--brand-red);
  color: #fff;
}

.dclc-location-social-modal__link-icon {
  display: inline-flex;
  width: 1.65rem;
  height: 1.65rem;
  flex: 0 0 auto;
}

.dclc-location-social-modal__link-icon svg {
  width: 100%;
  height: 100%;
  max-width: 1.65rem;
  max-height: 1.65rem;
}

.dclc-location-social-modal__empty {
  margin: 0;
  color: #64748b;
}

.location-showcase__btn--social {
  font-size: 0.82rem;
  letter-spacing: 0.01em;
}

.location-showcase__btn--social:hover,
.location-showcase__btn--social:focus-visible {
  color: var(--white);
  background: var(--showcase-accent-hover);
}

.footer-bottom {
  border-top: 1px solid rgba(255, 255, 255, 0.14);
  text-align: center;
  padding: 0.95rem 1rem 1.1rem;
  font-size: var(--text-footer);
  color: rgba(232, 237, 243, 0.88);
}

@media (max-width: 980px) {
  .site-footer-inner {
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  }

  .site-footer-inner > div:nth-child(2) {
    padding-left: 0;
    padding-right: 0;
  }

  .site-footer-inner > div:nth-child(3) {
    margin-left: 0;
    padding-left: 0;
    padding-right: 0;
  }

  .site-footer-inner > div:nth-child(4) {
    justify-self: start;
    padding-left: 0;
    margin-left: 0;
    padding-right: 0;
  }
}

/* Global typography override */
html {
  font-size: 12px;
}

body {
  font-size: 12px;
}

h1,
h2,
h3,
h4,
h5,
h6,
.page-title {
  font-size: 18px !important;
}

/* Footer column heads only — slightly larger than footer body */
.site-footer .footer-title {
  font-size: 1.12rem !important;
}

/* Patient online results */
.patient-results-panel {
  max-width: 920px;
  margin: 0 auto;
  border-radius: 14px;
  border: 1px solid rgba(15, 23, 42, 0.1);
  background: #fff;
  box-shadow: 0 10px 28px rgba(15, 23, 42, 0.08);
  padding: 1.25rem 1.35rem 1.5rem;
}

.patient-results-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.1rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid rgba(15, 23, 42, 0.08);
}

.patient-results-meta h2 {
  margin: 0 0 0.25rem;
  color: var(--brand-red-deep);
}

.patient-results-meta p {
  margin: 0;
  color: var(--text-muted);
}

.patient-results-signout {
  border: 1px solid rgba(15, 23, 42, 0.16);
  border-radius: 8px;
  background: #fff;
  color: var(--brand-red-deep);
  font-size: 12px;
  font-weight: 700;
  padding: 0.5rem 0.85rem;
  cursor: pointer;
}

.patient-results-signout:hover {
  border-color: rgba(var(--brand-red-rgb), 0.35);
  color: var(--brand-red);
}

.patient-results-note {
  margin: 0 0 1rem;
  padding: 0.65rem 0.75rem;
  border-radius: 8px;
  background: rgba(93, 173, 226, 0.12);
  color: #334155;
  font-size: 11px;
  line-height: 1.45;
}

.patient-results-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.65rem;
}

.patient-results-date-filter {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  min-width: min(100%, 16rem);
}

.patient-results-date-filter span {
  font-size: 0.95rem;
  font-weight: 700;
  color: #334155;
}

.patient-results-date-filter select {
  min-width: 16rem;
  padding: 0.55rem 0.8rem;
  border: 1px solid rgba(15, 23, 42, 0.14);
  border-radius: 8px;
  background: #fff;
  color: #0f172a;
  font-size: 1.1rem;
}

.patient-results-date-filter select:disabled {
  background: #f8fafc;
  color: #64748b;
  cursor: not-allowed;
}

.patient-result-list {
  display: grid;
  gap: 1rem;
}

.patient-result-list__message {
  margin: 0;
  padding: 1.25rem;
  border: 1px dashed rgba(15, 23, 42, 0.2);
  border-radius: 12px;
  color: #64748b;
  text-align: center;
}

.patient-result-card {
  padding: 1.2rem;
  border: 1px solid rgba(15, 23, 42, 0.12);
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 5px 18px rgba(15, 23, 42, 0.045);
}

.patient-result-card__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding-bottom: 0.9rem;
  border-bottom: 1px solid rgba(15, 23, 42, 0.08);
}

.patient-result-card__title-wrap {
  min-width: 0;
}

.patient-result-card__actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.patient-result-card__export {
  flex: 0 0 auto;
  min-height: 2rem;
  padding: 0.35rem 0.7rem;
  font-size: 0.82rem;
}

.patient-result-card__reports {
  display: grid;
  justify-items: center;
  gap: 0.65rem;
  padding-top: 0.85rem;
}

.patient-result-card__report {
  display: grid;
  justify-items: center;
  gap: 0.65rem;
  width: min(100%, 34rem);
  text-align: center;
}

.patient-result-card__file {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  padding: 0.7rem 0.85rem;
  border: 1px solid #dbe3ed;
  border-radius: 12px;
  background: linear-gradient(135deg, #f8fafc, #f1f5f9);
  text-align: left;
}

.patient-result-card__file-icon {
  position: relative;
  display: grid;
  place-items: center;
  flex: 0 0 2.65rem;
  height: 3.1rem;
  border: 1px solid #fecaca;
  border-radius: 8px;
  background: #fff;
  color: #b91c1c;
  box-shadow: 0 2px 5px rgba(15, 23, 42, 0.06);
}

.patient-result-card__file-icon::before {
  position: absolute;
  top: 0.4rem;
  width: 0.85rem;
  height: 0.12rem;
  border-radius: 2px;
  background: #fecaca;
  content: "";
}

.patient-result-card__file-icon span {
  margin-top: 0.45rem;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.04em;
}

.patient-result-card__file-copy {
  display: grid;
  gap: 0.18rem;
  min-width: 0;
}

.patient-result-card__report-name {
  color: #1e293b;
  font-size: 0.98rem;
  font-weight: 600;
  line-height: 1.4;
  overflow-wrap: anywhere;
}

.patient-result-card__file-type {
  color: #64748b;
  font-size: 0.82rem;
  font-weight: 500;
}

.patient-result-card__report-actions {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.patient-result-card__report-btn {
  min-height: 2rem;
  padding: 0.35rem 0.7rem;
  border-radius: 7px;
  font-size: 0.78rem;
  font-weight: 600;
}

.patient-result-card__report-btn.patient-portal-btn--primary {
  color: #fff;
}

.patient-result-card__title {
  margin: 0;
  color: #0f172a;
  font-size: 1.2rem;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.patient-result-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1.25rem;
  padding: 0.8rem 0;
  color: #475569;
  font-size: 0.9rem;
}

.patient-result-card__meta-item span,
.patient-result-card__reference span {
  margin-right: 0.35rem;
  color: #64748b;
  font-weight: 700;
}

.patient-result-card__section {
  margin-top: 0.8rem;
}

.patient-result-card__section h3 {
  margin: 0 0 0.55rem;
  color: #334155;
  font-size: 0.95rem;
}

.patient-result-card__reference {
  margin-top: 0.9rem;
  padding-top: 0.75rem;
  border-top: 1px solid rgba(15, 23, 42, 0.08);
  color: #475569;
  font-size: 0.9rem;
}

.patient-result-attachments {
  margin-top: 1rem;
  padding: 1rem;
  border: 1px solid rgba(15, 23, 42, 0.1);
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 5px 18px rgba(15, 23, 42, 0.035);
}

.patient-result-attachments h2 {
  margin: 0 0 0.75rem;
  color: #334155;
  font-size: 1.1rem;
}

.patient-result-attachments ul {
  display: grid;
  gap: 0.55rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.patient-result-attachments li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.8rem;
  padding: 0.65rem 0.75rem;
  border: 1px solid rgba(15, 23, 42, 0.1);
  border-radius: 9px;
  background: #f8fafc;
}

.patient-result-attachments__name {
  min-width: 0;
  color: #334155;
  font-size: 0.9rem;
  overflow-wrap: anywhere;
}

.patient-result-attachments__preview {
  flex: 0 0 auto;
  padding: 0.4rem 0.7rem;
  border: 1px solid rgba(var(--brand-red-rgb), 0.25);
  border-radius: 7px;
  background: #fff;
  color: var(--brand-red-deep);
  font: inherit;
  font-size: 0.85rem;
  font-weight: 700;
  cursor: pointer;
}

.patient-result-attachments__preview:hover:not(:disabled) {
  background: rgba(var(--brand-red-rgb), 0.06);
}

.patient-result-attachments__preview:disabled {
  opacity: 0.65;
  cursor: wait;
}

.patient-result-card__summary {
  margin: 0;
  color: #0f172a;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.patient-result-field-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 9.5rem), 1fr));
  gap: 0.55rem;
}

.patient-result-field {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  min-width: 0;
  padding: 0.75rem;
  border: 1px solid rgba(15, 23, 42, 0.09);
  border-radius: 10px;
  background: #f8fafc;
}

.patient-result-field__label {
  color: #64748b;
  font-size: 0.88rem;
  font-weight: 700;
  line-height: 1.25;
}

.patient-result-field__value {
  color: #0f172a;
  font-size: 1.05rem;
  font-weight: 700;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.patient-result-field__unit {
  margin-left: 0.25rem;
  color: #64748b;
  font-size: 0.82rem;
}

.patient-result-field__conventional-value {
  display: block;
  margin-top: 0.35rem;
  color: #475569;
  font-size: 0.82rem;
  font-weight: 600;
}

.patient-result-field__reference {
  display: block;
  margin-top: 0.35rem;
  color: #64748b;
  font-size: 0.72rem;
  line-height: 1.4;
  font-weight: 500;
}

.patient-results-status {
  display: inline-block;
  border-radius: 999px;
  padding: 0.25rem 0.7rem;
  font-size: 0.9rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.patient-results-status--normal {
  background: rgba(34, 197, 94, 0.15);
  color: #166534;
}

.patient-results-status--sample {
  background: rgba(148, 163, 184, 0.2);
  color: #475569;
}

.patient-results-status--abnormal {
  background: rgba(234, 179, 8, 0.22);
  color: #854d0e;
}

.patient-results-denied,
.patient-results-loading {
  max-width: 520px;
  margin: 2rem auto;
  text-align: center;
  color: var(--text-muted);
}

/* Patient login page (full-screen, same look as Online Results modal) */
.patient-login-body {
  margin: 0;
  min-height: 100vh;
  font-family: system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: 1.0625rem;
}

.patient-login-scene.results-modal {
  position: fixed;
  inset: 0;
  z-index: 1;
}

.patient-login-back {
  position: absolute;
  left: 1.25rem;
  top: 1.1rem;
  z-index: 2;
  font-size: 15px;
  font-weight: 600;
  color: var(--brand-blue-dark, #1e6fa8);
  text-decoration: none;
  background: rgba(255, 255, 255, 0.72);
  padding: 0.35rem 0.65rem;
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.08);
}

.patient-login-back:hover {
  color: var(--brand-red, #0B318F);
}

.patient-login-dialog {
  margin-top: 0.5rem;
}

.patient-login-checking {
  margin: 2rem 1rem;
  text-align: center;
  font-size: 17px;
  color: #64748b;
}

.patient-login-hint {
  margin: 0.5rem 0 0;
  font-size: 15px;
  color: #64748b;
  text-align: center;
  line-height: 1.45;
}

.patient-login-hint a {
  color: var(--brand-blue-dark, #1e6fa8);
  font-weight: 600;
}

.patient-login-force-note {
  max-width: 340px;
  margin: 0 auto .8rem;
  padding: .65rem .8rem;
  border: 1px solid rgba(234, 88, 12, .28);
  border-radius: 10px;
  background: rgba(234, 88, 12, .1);
  color: #9a3412;
  font-size: .9rem;
  line-height: 1.45;
}

.patient-login-force-intro {
  max-width: 340px;
  margin: 0 auto .8rem;
  color: #64748b;
  font-size: .9rem;
  line-height: 1.45;
}

.patient-login-force-form input {
  box-sizing: border-box;
  min-height: 2.5rem;
  padding: .5rem .65rem;
  border: 1px solid rgba(148, 163, 184, .45);
  border-radius: 9px;
  background: #fff;
  color: #1f2937;
  font-size: .95rem;
}

.patient-login-force-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .55rem;
}

.patient-login-force-actions .patient-login-secondary {
  width: 100%;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  background: #fff;
  color: #0b318f;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}

.patient-login-force-actions .patient-login-secondary:hover {
  background: #f8fafc;
}

.patient-login-force-actions button:disabled {
  opacity: .65;
  cursor: not-allowed;
}

/* Corporate login page — same flow as patient, distinct navy/slate styling */
.corporate-login-body {
  margin: 0;
  min-height: 100vh;
  font-family: system-ui, -apple-system, "Segoe UI", sans-serif;
}

.corporate-login-scene.results-modal {
  position: fixed;
  inset: 0;
  z-index: 1;
}

.corporate-login-backdrop {
  background: linear-gradient(135deg, rgba(15, 23, 42, 0.72) 0%, rgba(11, 49, 143, 0.58) 52%, rgba(30, 41, 59, 0.68) 100%);
}

.corporate-login-backdrop::before {
  opacity: 0.28;
  filter: grayscale(0.35) brightness(0.82);
}

.corporate-login-dialog {
  border-color: rgba(11, 49, 143, 0.22);
  box-shadow: 0 28px 60px rgba(11, 49, 143, 0.28), 0 12px 24px rgba(15, 23, 42, 0.22);
}

.corporate-login-titlebar {
  margin-bottom: 0.75rem;
}

.corporate-login-kicker {
  margin: 0;
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #475569;
}

.corporate-login-subtitle {
  margin: 0.15rem 0 0;
  max-width: 18rem;
  font-size: 0.92rem;
  line-height: 1.45;
  text-align: center;
  color: #64748b;
}

.corporate-login-checking {
  margin: 2rem 1rem;
  text-align: center;
  font-size: 17px;
  color: #64748b;
}

.corporate-login-hint {
  margin: 0.5rem 0 0;
  font-size: 13px;
  color: #64748b;
  text-align: center;
  line-height: 1.45;
}

.corporate-login-hint a {
  color: #0b318f;
  font-weight: 600;
}

.corporate-login-field {
  border-color: rgba(11, 49, 143, 0.22);
  background: rgba(248, 250, 252, 0.96);
}

.corporate-login-form .results-field__icon,
.corporate-login-form .results-field__toggle {
  color: #0b318f;
}

.corporate-login-form button[type="submit"] {
  background: linear-gradient(135deg, #0b318f 0%, #1e6fa8 100%);
  box-shadow: inset 0 -2px 0 rgba(0, 0, 0, 0.16), 0 8px 16px rgba(11, 49, 143, 0.28);
}

.corporate-login-form button[type="submit"]:hover {
  background: linear-gradient(135deg, #102a63 0%, #0b318f 100%);
  color: #fff;
  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.14), 0 10px 18px rgba(11, 49, 143, 0.32);
}

/* Patient portal shell */
.patient-portal-body {
  margin: 0;
  height: 100%;
  min-height: 100vh;
  min-height: 100dvh;
  overflow: hidden;
  background: #eef1f5;
  font-family: system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: 1.0625rem; /* pp-font-bump */
}

html:has(.patient-portal-body) {
  height: 100%;
  overflow: hidden;
}

.patient-portal-gate {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #eef1f5;
  color: #64748b;
  font-size: 17px;
}

.patient-portal-gate[hidden] {
  display: none !important;
}

.patient-portal-app {
  height: 100vh;
  height: 100dvh;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.patient-portal-app[hidden] {
  display: none !important;
}

.patient-portal-topbar {
  position: sticky;
  top: 0;
  z-index: 30;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.85rem;
  padding: 0.7rem 1.35rem;
  background: #fff;
  border-bottom: 1px solid rgba(15, 23, 42, 0.1);
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.06);
}

.patient-portal-topbar__brand {
  display: flex;
  align-items: center;
  gap: 0.9rem;
  text-decoration: none;
  color: #111;
  min-width: 0;
  flex: 0 1 auto;
}

.patient-portal-topbar__brand img {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
  box-shadow: 0 2px 10px rgba(4, 22, 64, 0.12);
}

.patient-portal-topbar__brand-text {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.12rem;
  line-height: 1.05;
  min-width: 0;
}

.patient-portal-topbar__brand-title {
  font-size: clamp(1.42rem, 2.2vw, 1.83rem);
  font-weight: 800;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: #111;
}

.patient-portal-topbar__brand-sub {
  font-size: clamp(1rem, 1.5vw, 1.24rem);
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #555;
}

.patient-portal-topbar__portal-label {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  margin-right: auto;
  margin-left: 0.15rem;
  padding: 0.45rem 0.95rem;
  border-radius: 999px;
  border: 1px solid rgba(11, 49, 143, 0.18);
  background: rgba(0, 122, 185, 0.1);
  color: var(--brand-red-deep, #041638);
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: 0.01em;
  line-height: 1.2;
  white-space: nowrap;
}

.patient-portal-topbar__right {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-left: auto;
}

.patient-portal-bell {
  width: 2.85rem;
  height: 2.85rem;
  border-radius: 50%;
  border: 1px solid rgba(var(--brand-red-rgb), 0.15);
  background: linear-gradient(180deg, #fff 0%, #f4f6f8 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: #6d141c;
  transition: transform 0.2s ease, border-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}

.patient-portal-bell svg {
  width: 1.35rem;
  height: 1.35rem;
}

.patient-portal-bell:hover {
  border-color: rgba(var(--brand-red-rgb), 0.35);
  color: var(--brand-red, #0B318F);
  transform: scale(1.06);
  box-shadow: 0 4px 12px rgba(var(--brand-red-rgb), 0.12);
}

.patient-portal-user-menu {
  position: relative;
}

.patient-portal-top-user {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  font: inherit;
  color: inherit;
  cursor: pointer;
  padding: 0.35rem 0.75rem 0.35rem 0.35rem;
  border-radius: 999px;
  background: transparent;
  border: 1px solid transparent;
  transition: background 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.patient-portal-top-user:hover,
.patient-portal-user-menu.is-open .patient-portal-top-user {
  background: rgba(var(--brand-red-rgb), 0.08);
  border-color: rgba(var(--brand-red-rgb), 0.12);
  box-shadow: 0 0 0 1px rgba(var(--brand-red-rgb), 0.08);
}

.patient-portal-avatar {
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: var(--brand-red, #0B318F);
  color: #fff;
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  flex-shrink: 0;
}

.patient-portal-avatar__photo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: cover;
}

.patient-portal-avatar__photo[hidden] {
  display: none;
}

.patient-portal-avatar.is-photo-loading {
  background: #e8edf5;
}

.patient-portal-avatar.is-photo-loading #patient-portal-avatar-initials {
  visibility: hidden;
}

.patient-portal-photo-upload.is-photo-loading .patient-portal-info-card__avatar {
  visibility: hidden;
}

.patient-portal-top-user__name {
  font-size: 1.2rem;
  font-weight: 600;
  max-width: 14rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.patient-portal-top-user__chevron {
  flex-shrink: 0;
  width: 1.2rem;
  height: 1.2rem;
  color: #64748b;
  transition: transform 0.2s ease, color 0.2s ease;
}

.patient-portal-user-menu.is-open .patient-portal-top-user__chevron {
  transform: rotate(180deg);
  color: var(--brand-red, #0B318F);
}

.patient-portal-user-menu__dropdown {
  position: absolute;
  top: calc(100% + 0.45rem);
  right: 0;
  min-width: 14rem;
  padding: 0.45rem;
  background: #fff;
  border: 1px solid rgba(15, 23, 42, 0.1);
  border-radius: 12px;
  box-shadow: 0 12px 32px rgba(74, 12, 16, 0.14);
  z-index: 40;
}

.patient-portal-user-menu__dropdown[hidden] {
  display: none;
}

.patient-portal-user-menu__item {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  width: 100%;
  padding: 0.75rem 0.85rem;
  border-radius: 8px;
  font-size: 1.15rem;
  font-weight: 600;
  color: #1a1416;
  text-decoration: none;
  border: none;
  background: transparent;
  font-family: inherit;
  text-align: left;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease;
}

.patient-portal-user-menu__item:hover {
  background: rgba(var(--brand-red-rgb), 0.08);
  color: var(--brand-red, #0B318F);
}

.patient-portal-user-menu__item svg {
  width: 1.2rem;
  height: 1.2rem;
  flex-shrink: 0;
  opacity: 0.85;
}

.patient-portal-user-menu__item--danger:hover {
  color: #991b1b;
}

.patient-portal-topbar__link {
  font-size: 14px;
  font-weight: 600;
  color: var(--brand-blue-dark, #1e6fa8);
  text-decoration: none;
}

.patient-portal-topbar__link:hover {
  color: var(--brand-red, #0B318F);
}

.patient-portal-layout {
  flex: 1;
  display: flex;
  min-height: 0;
}

.patient-portal-sidebar {
  --pp-sidebar-bg: #003399;
  --pp-sidebar-bg-deep: #002d84;
  --pp-sidebar-active: #007ab9;
  --pp-sidebar-hover: rgba(0, 122, 185, 0.34);
  --pp-sidebar-hover-strong: #007ab9;
  --pp-sidebar-text: #ffffff;
  --pp-sidebar-muted: rgba(255, 255, 255, 0.78);
  --pp-sidebar-border: rgba(255, 255, 255, 0.22);
  width: 19rem;
  flex-shrink: 0;
  background:
    radial-gradient(ellipse 120% 50% at 20% 0%, rgba(255, 255, 255, 0.04) 0%, transparent 48%),
    linear-gradient(180deg, var(--pp-sidebar-bg) 0%, var(--pp-sidebar-bg-deep) 100%);
  color: var(--pp-sidebar-text);
  display: flex;
  flex-direction: column;
  border-right: 2px solid var(--pp-sidebar-border);
  box-shadow: 6px 0 28px rgba(0, 35, 102, 0.28);
  padding: 0;
  position: relative;
  z-index: 20;
  overflow: hidden;
}

.patient-portal-quick {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  padding: 1.1rem 0.65rem 0.9rem;
  flex-shrink: 0;
}

.patient-portal-quick a {
  flex-shrink: 0;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.24);
  color: #fff;
  text-decoration: none;
  border: 1px solid rgba(255, 255, 255, 0.34);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.18);
  transition: background 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}

.patient-portal-quick a svg {
  width: 20px;
  height: 20px;
  display: block;
  color: currentColor;
}

.patient-portal-quick a:hover {
  background: var(--pp-sidebar-hover-strong);
  color: #fff;
}

.patient-portal-quick a.is-active {
  background: #ffffff;
  border-color: #ffffff;
  color: var(--brand-red, #0B318F);
  box-shadow: 0 4px 14px rgba(4, 22, 64, 0.2);
}

.patient-portal-sidebar-scroll {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  padding-bottom: 0.75rem;
}

.patient-portal-nav-section-label {
  font-size: 0.92rem;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-weight: 600;
  color: var(--pp-sidebar-muted);
  padding: 0.75rem 1.15rem 0.4rem;
  scroll-margin-top: 0.75rem;
  border-top: 1px solid rgba(255, 255, 255, 0.14);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
  flex-shrink: 0;
}

.patient-portal-quick + .patient-portal-sidebar-scroll .patient-portal-nav-section-label:first-child {
  border-top: none;
  padding-top: 0.15rem;
  box-shadow: none;
}

.patient-portal-side-nav {
  display: flex;
  flex-direction: column;
  padding: 0;
  margin: 0 0 0.2rem;
}

.patient-portal-side-nav a {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  min-height: 3rem;
  padding: 0.8rem 1.05rem 0.8rem 1.15rem;
  margin: 0 0.4rem 0.25rem;
  border-radius: 12px;
  color: var(--pp-sidebar-text);
  text-decoration: none;
  font-size: 1.15rem;
  font-weight: 500;
  line-height: 1.35;
  border: 1px solid transparent;
  transition: background 0.2s ease, box-shadow 0.2s ease;
}

.patient-portal-side-nav a svg {
  width: 1.35rem;
  height: 1.35rem;
  flex-shrink: 0;
  opacity: 0.92;
  color: currentColor;
}

.patient-portal-side-nav__text {
  flex: 1;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.patient-portal-side-nav a:hover {
  background: var(--pp-sidebar-hover);
  color: #fff;
}

.patient-portal-side-nav a.is-active {
  background: var(--pp-sidebar-active);
  color: #fff;
  font-weight: 600;
  border-color: rgba(0, 174, 239, 0.28);
  box-shadow: inset 4px 0 0 #ffffff;
}

.patient-portal-side-nav a.is-active svg {
  opacity: 1;
}

/* Corporate / accordion sidebar content shell */
.patient-portal-nav--primary {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding: 0.75rem 0.45rem 1rem;
}

.patient-portal-info-card {
  max-width: 520px;
  background: #fff;
  border-radius: 12px;
  border: 1px solid rgba(15, 23, 42, 0.1);
  padding: 1.35rem 1.5rem;
  box-shadow: 0 4px 14px rgba(15, 23, 42, 0.06);
}

.patient-portal-info-card--modal {
  display: flex;
  align-items: flex-start;
  gap: 1.5rem;
  max-width: none;
  margin-top: 0.25rem;
  box-shadow: none;
  border-color: rgba(15, 23, 42, 0.08);
  background: #f8fafc;
}

.patient-portal-info-card__photo-column {
  flex: 0 0 190px;
}

.patient-portal-photo-upload {
  display: flex;
  width: 100%;
  min-height: 225px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  padding: 1rem;
  border: 2px dashed #b7c5d8;
  border-radius: 12px;
  background: #fff;
  color: #334155;
  font: inherit;
  text-align: center;
  cursor: pointer;
  transition: border-color 0.15s ease, background 0.15s ease;
}

.patient-portal-photo-upload:hover,
.patient-portal-photo-upload:focus-visible,
.patient-portal-photo-upload.is-dragging {
  border-color: var(--brand-blue-dark, #1e6fa8);
  background: #eff8fc;
}

.patient-portal-photo-upload:focus-visible {
  outline: 3px solid rgba(0, 163, 230, 0.25);
  outline-offset: 2px;
}

.patient-portal-photo-upload:disabled {
  cursor: wait;
  opacity: 0.7;
}

.patient-portal-photo-upload__image {
  width: 7.5rem;
  height: 7.5rem;
  border-radius: 50%;
  object-fit: cover;
}

.patient-portal-photo-upload__image[hidden],
.patient-portal-info-card__avatar[hidden] {
  display: none;
}

.patient-portal-photo-upload .patient-portal-info-card__avatar {
  width: 7.5rem;
  height: 7.5rem;
  margin: 0;
}

.patient-portal-photo-upload__label {
  font-size: 0.95rem;
  font-weight: 700;
}

.patient-portal-photo-upload__choose {
  color: var(--brand-blue-dark, #1e6fa8);
  font-size: 0.9rem;
  font-weight: 700;
}

.patient-portal-photo-upload__hint {
  color: #64748b;
  font-size: 0.76rem;
}

.patient-portal-photo-upload__status {
  min-height: 1.1rem;
  margin: 0.45rem 0 0;
  color: #166534;
  font-size: 0.82rem;
}

.patient-portal-photo-upload__status.is-error {
  color: #b91c1c;
}

.patient-portal-info-card__details {
  flex: 1;
  min-width: 0;
}

.patient-portal-info-card__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.patient-portal-info-card__avatar {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 4rem;
  height: 4rem;
  border-radius: 50%;
  background: var(--brand-red, #0B318F);
  color: #fff;
  font-size: 1.18rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  margin-bottom: 1rem;
}

.patient-portal-info-list {
  margin: 0 0 1rem;
  display: grid;
  gap: 0.85rem;
}

.patient-portal-info-list--modal {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 1rem;
}

.patient-portal-info-list--modal > div:nth-child(3) {
  grid-column: 1 / -1;
}

.patient-portal-info-list div {
  display: grid;
  gap: 0.2rem;
}

.patient-portal-info-list dt {
  margin: 0;
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #64748b;
}

.patient-portal-info-list dd {
  margin: 0;
  font-size: 18px;
  font-weight: 600;
  color: var(--brand-red-deep, #4a0c10);
  word-break: break-word;
}

.patient-portal-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  border-radius: 8px;
  border: 1px solid rgba(15, 23, 42, 0.14);
  background: #fff;
  color: var(--brand-red-deep, #4a0c10);
  font-size: 17px;
  font-weight: 600;
  padding: 0.55rem 1rem;
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.patient-portal-btn:hover {
  border-color: rgba(var(--brand-red-rgb), 0.45);
  color: var(--brand-red, #0B318F);
}

.patient-portal-btn--primary {
  background: var(--btn-red);
  border-color: var(--btn-red);
  color: #fff;
}

.patient-portal-btn--primary:hover {
  background: var(--btn-red-hover);
  border-color: var(--btn-red-hover);
  color: #fff;
}

.patient-portal-btn--ghost {
  background: transparent;
}

.patient-portal-btn:disabled {
  opacity: 0.65;
  cursor: not-allowed;
}

.patient-portal-modal[hidden] {
  display: none;
}

.patient-portal-modal {
  position: fixed;
  inset: 0;
  z-index: 500;
  display: grid;
  place-items: center;
  padding: 1rem;
}

.patient-portal-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.58);
}

.patient-portal-modal__dialog {
  position: relative;
  z-index: 1;
  width: min(420px, 100%);
  border-radius: 14px;
  border: 1px solid rgba(15, 23, 42, 0.1);
  background: #fff;
  box-shadow: 0 30px 70px rgba(15, 23, 42, 0.35);
  padding: 1.25rem 1.35rem 1.15rem;
}

.patient-portal-modal__dialog--info {
  width: min(800px, 100%);
  max-height: min(92vh, 900px);
  overflow: auto;
}

.patient-portal-modal__dialog h2 {
  margin: 0 0 0.35rem;
  font-size: 1.59rem;
  color: #1e293b;
}

.patient-portal-modal__dialog > p {
  margin: 0 0 1rem;
  font-size: 1.09rem;
  color: #64748b;
}

.patient-portal-modal__close {
  position: absolute;
  top: 0.65rem;
  right: 0.65rem;
  width: 2rem;
  height: 2rem;
  border: none;
  border-radius: 8px;
  background: transparent;
  color: #64748b;
  font-size: 1.77rem;
  line-height: 1;
  cursor: pointer;
}

.patient-portal-modal__close:hover {
  background: #f1f5f9;
  color: #1e293b;
}

.patient-portal-pdf-filter {
  margin-bottom: 0.85rem;
}

.patient-portal-pdf-filter__label {
  display: inline-grid;
  gap: 0.35rem;
  font-size: 1rem;
  color: #475569;
}

.patient-portal-pdf-filter__label select {
  min-width: 12rem;
  padding: 0.45rem 0.65rem;
  border: 1px solid rgba(15, 23, 42, 0.14);
  border-radius: 8px;
  background: #fff;
  color: #0f172a;
}

.patient-portal-pdf-category {
  margin: 0 0 1.25rem;
  padding: 1rem 1.1rem;
  border: 1px solid rgba(15, 23, 42, 0.1);
  border-radius: 12px;
  background: #f8fafc;
}

.patient-portal-pdf-category__title {
  margin: 0 0 0.35rem;
  font-size: 1.4rem;
  color: #0f172a;
}

.patient-portal-pdf-category__note {
  margin: 0 0 0.75rem;
  font-size: 1.15rem;
  color: #64748b;
}

.patient-portal-pdf-table-wrap {
  overflow-x: auto;
}

.patient-portal-pdf-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 1.2rem;
}

.patient-portal-pdf-table th,
.patient-portal-pdf-table td {
  padding: 0.85rem 0.95rem;
  text-align: left;
  border-bottom: 1px solid rgba(15, 23, 42, 0.08);
  vertical-align: top;
  line-height: 1.45;
}

.patient-portal-pdf-table th {
  font-size: 1rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #64748b;
}

.patient-portal-modal__dialog--pdf {
  width: min(1400px, 96vw);
  height: min(94vh, 1200px);
  display: flex;
  flex-direction: column;
}

.patient-portal-modal__dialog--pdf h2 {
  padding-right: 2.5rem;
}

.patient-portal-modal__dialog--pdf > p {
  margin-bottom: 0.75rem;
}

.patient-portal-pdf-viewer {
  position: relative;
  flex: 1;
  min-height: 0;
  border: 1px solid rgba(15, 23, 42, 0.12);
  border-radius: 10px;
  background: #f1f5f9;
  overflow: hidden;
}

.patient-portal-pdf-viewer iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
  background: #fff;
}

.patient-portal-pdf-viewer__status {
  margin: 0;
  padding: 1.25rem;
  font-size: 1.09rem;
  color: #64748b;
}

.patient-portal-pdf-viewer__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.5rem;
  margin-top: 0.85rem;
}

@media (max-width: 640px) {
  .patient-portal-modal:has(.patient-portal-modal__dialog--pdf) {
    padding: 0.5rem;
  }

  .patient-portal-modal__dialog--pdf {
    height: 94vh;
    padding: 1rem;
  }
}

.patient-password-strength {
  margin: 0.15rem 0 0.15rem;
  padding: 0.75rem 0.85rem;
  background: #f8fafc;
  border: 1px solid rgba(15, 23, 42, 0.1);
  border-radius: 10px;
}

.patient-password-strength[hidden] {
  display: none !important;
}

.patient-password-strength__title {
  margin: 0 0 0.55rem;
  font-size: 0.89rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #64748b;
}

.patient-password-strength__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.4rem;
}

.patient-password-strength__item {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  font-size: 0.97rem;
  color: #64748b;
}

.patient-password-strength__item.is-met {
  color: #15803d;
}

.patient-password-strength__item.is-unmet {
  color: #b45309;
}

.patient-password-strength__icon {
  flex-shrink: 0;
  width: 1.05rem;
  height: 1.05rem;
  border-radius: 50%;
  border: 1.5px solid rgba(15, 23, 42, 0.14);
  background: #fff;
  position: relative;
}

.patient-password-strength__item.is-met .patient-password-strength__icon {
  border-color: #15803d;
  background: #15803d;
}

.patient-password-strength__item.is-met .patient-password-strength__icon::after {
  content: "";
  position: absolute;
  left: 0.28rem;
  top: 0.12rem;
  width: 0.28rem;
  height: 0.48rem;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}

.patient-password-strength__item.is-unmet .patient-password-strength__icon {
  border-color: #d97706;
  background: #fff7ed;
}

.patient-password-strength__match {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  margin-top: 0.65rem;
  padding-top: 0.55rem;
  border-top: 1px solid rgba(15, 23, 42, 0.08);
  font-size: 0.97rem;
  color: #64748b;
}

.patient-password-strength__match.is-match {
  color: #15803d;
}

.patient-password-strength__match.is-mismatch {
  color: #b91c1c;
}

.patient-portal-password-force-note {
  margin: 0 0 0.75rem;
  padding: 0.7rem 0.85rem;
  border-radius: 10px;
  background: rgba(234, 88, 12, 0.1);
  border: 1px solid rgba(234, 88, 12, 0.28);
  color: #9a3412;
  font-size: 1.06rem;
  line-height: 1.45;
}

.patient-portal-password-force-note[hidden] {
  display: none;
}

.patient-portal-modal.is-force-password .patient-portal-modal__backdrop {
  pointer-events: none;
}

.patient-portal-password-form {
  display: grid;
  gap: 0.85rem;
}

.patient-portal-password-form label {
  display: grid;
  gap: 0.35rem;
  font-size: 0.97rem;
  font-weight: 600;
  color: #334155;
}

.patient-portal-password-form input {
  width: 100%;
  border: 1px solid rgba(15, 23, 42, 0.16);
  border-radius: 8px;
  padding: 0.55rem 0.65rem;
  font-size: 18px;
}

.patient-portal-password-form input:focus-visible {
  outline: 2px solid rgba(var(--brand-red-rgb), 0.35);
  outline-offset: 1px;
}

.patient-portal-password-form__message {
  margin: 0;
  font-size: 1rem;
  padding: 0.5rem 0.65rem;
  border-radius: 8px;
}

.patient-portal-password-form__message--error {
  background: #fef2f2;
  color: var(--brand-red-deep);
}

.patient-portal-password-form__message--success {
  background: #f0fdf4;
  color: #15803d;
}

.patient-portal-password-form__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: flex-end;
  margin-top: 0.25rem;
}

/* Accordion nav (corporate portal + legacy) */
.patient-portal-nav__top {
  list-style: none;
  margin: 0 0 0.75rem;
  padding: 0;
}

.patient-portal-nav__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.25rem;
  height: 1.25rem;
  flex-shrink: 0;
  color: inherit;
  opacity: 0.92;
}

.patient-portal-nav__icon svg {
  width: 100%;
  height: 100%;
  display: block;
}

.patient-portal-nav__top-link {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.6rem 0.75rem;
  border-radius: 8px;
  font-family: inherit;
  font-size: 1.05rem;
  font-weight: 600;
  line-height: 1.35;
  color: #e2e8f0;
  text-decoration: none;
}

.patient-portal-nav__top-link:hover {
  background: rgba(255, 255, 255, 0.08);
  color: #fff;
}

.patient-portal-nav__top-link.is-active {
  background: var(--pp-sidebar-active, #007ab9);
  color: #fff;
  box-shadow: inset 4px 0 0 #ffffff;
}

.patient-portal-nav__module {
  margin-bottom: 0.35rem;
}

.patient-portal-nav__module-toggle {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  border: none;
  background: transparent;
  color: #f1f5f9;
  font: inherit;
  font-size: 1.05rem;
  font-weight: 600;
  line-height: 1.35;
  padding: 0.6rem 0.65rem;
  border-radius: 8px;
  cursor: pointer;
  text-align: left;
}

.patient-portal-nav__toggle-label {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  min-width: 0;
}

.patient-portal-nav__module-toggle:hover,
.patient-portal-nav__module.is-open .patient-portal-nav__module-toggle {
  background: var(--pp-sidebar-hover, rgba(0, 122, 185, 0.34));
  color: #fff;
}

.patient-portal-nav__chevron {
  width: 8px;
  height: 8px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg);
  transition: transform 0.2s ease;
  flex-shrink: 0;
}

.patient-portal-nav__module.is-open .patient-portal-nav__chevron {
  transform: rotate(-135deg);
  margin-top: 4px;
}

.patient-portal-nav__sub {
  list-style: none;
  margin: 0.15rem 0 0.5rem;
  padding: 0 0 0 0.5rem;
}

.patient-portal-nav__sub a {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 0.75rem;
  border-radius: 8px;
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.35;
  color: #cbd5e1;
  text-decoration: none;
}

.patient-portal-nav__sub a:hover {
  background: var(--pp-sidebar-hover, rgba(0, 122, 185, 0.34));
  color: #fff;
}

.patient-portal-nav__sub a.is-active {
  background: var(--pp-sidebar-active, #007ab9);
  color: #fff;
  font-weight: 600;
  box-shadow: inset 4px 0 0 #ffffff;
}

.patient-portal-main {
  flex: 1;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding: 1.75rem 1.85rem calc(7rem + env(safe-area-inset-bottom, 0px));
}

.patient-portal-panel__head h1 {
  margin: 0 0 0.45rem;
  font-size: clamp(2.15rem, 3vw, 2.75rem);
  color: var(--brand-red-deep, #4a0c10);
}

.patient-portal-panel__head p {
  margin: 0;
  color: #64748b;
  font-size: 1.35rem;
  line-height: 1.45;
  max-width: 46rem;
}

[data-panel="appointments-home"] .patient-portal-panel__head h1,
[data-panel="appointments-clinic"] .patient-portal-panel__head h1 {
  font-size: clamp(2.35rem, 3.4vw, 3rem);
}

[data-panel="appointments-home"] .patient-portal-panel__head p,
[data-panel="appointments-clinic"] .patient-portal-panel__head p {
  font-size: 1.4rem;
}

.patient-dashboard-stats {
  display: grid;
  gap: 1rem;
  margin: 1.5rem 0 1.15rem;
  grid-template-columns: 1fr;
}

@media (min-width: 720px) {
  .patient-dashboard-stats {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.patient-dashboard-stat {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  overflow: hidden;
  background: #fff;
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 16px;
  padding: 1.2rem 1.25rem 1.25rem;
  box-shadow: 0 8px 22px rgba(15, 23, 42, 0.06);
}

.patient-dashboard-stat::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 5px;
  background: var(--stat-accent, var(--brand-red));
}

.patient-dashboard-stat--results {
  --stat-accent: #0B318F;
  --stat-soft: rgba(11, 49, 143, 0.1);
  background: linear-gradient(145deg, #fff 55%, rgba(11, 49, 143, 0.06));
}

.patient-dashboard-stat--pdfs {
  --stat-accent: #00A3E6;
  --stat-soft: rgba(0, 163, 230, 0.12);
  background: linear-gradient(145deg, #fff 55%, rgba(0, 163, 230, 0.08));
}

.patient-dashboard-stat--flags {
  --stat-accent: #ea580c;
  --stat-soft: rgba(234, 88, 12, 0.12);
  background: linear-gradient(145deg, #fff 55%, rgba(234, 88, 12, 0.07));
}

.patient-dashboard-stat__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 3rem;
  height: 3rem;
  border-radius: 12px;
  background: var(--stat-soft);
  color: var(--stat-accent);
  flex-shrink: 0;
}

.patient-dashboard-stat__icon svg {
  width: 1.35rem;
  height: 1.35rem;
}

.patient-dashboard-stat__body {
  min-width: 0;
  flex: 1;
}

.patient-dashboard-stat__label {
  margin: 0;
  font-size: 0.92rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #64748b;
}

.patient-dashboard-stat__value {
  margin: 0.4rem 0 0.25rem;
  font-size: clamp(2.42rem, 3.2vw, 3.01rem);
  font-weight: 800;
  line-height: 1.05;
  color: var(--brand-red-deep, #071f5c);
}

.patient-dashboard-stat__hint {
  margin: 0;
  font-size: 1.04rem;
  color: #94a3b8;
}

.patient-appt-status {
  display: inline-block;
  border-radius: 999px;
  padding: 0.2rem 0.6rem;
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.patient-appt-status--pending {
  background: rgba(234, 179, 8, 0.16);
  color: #a16207;
}

.patient-appt-status--confirmed {
  background: rgba(11, 49, 143, 0.12);
  color: #0B318F;
}

.patient-appt-status--completed {
  background: rgba(22, 163, 74, 0.14);
  color: #15803d;
}

.patient-appt-status--cancelled {
  background: rgba(220, 38, 38, 0.12);
  color: #b91c1c;
}

.patient-appt-history-table td {
  vertical-align: top;
}

.patient-dashboard-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.7rem;
  margin: 0 0 1.35rem;
}

.patient-dashboard-charts {
  display: grid;
  gap: 1.15rem;
  margin: 0 0 1.35rem;
  grid-template-columns: 1fr;
}

@media (min-width: 900px) {
  .patient-dashboard-charts {
    grid-template-columns: 1fr 1fr;
    align-items: stretch;
  }
}

@media (min-width: 1200px) {
  .patient-dashboard-charts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.patient-dashboard-grid {
  display: grid;
  gap: 1.15rem;
  margin: 1.25rem 0 1.35rem;
  grid-template-columns: 1fr;
}

@media (min-width: 960px) {
  .patient-dashboard-grid {
    grid-template-columns: 1fr;
    align-items: start;
  }
}

.patient-dashboard-card {
  background: #fff;
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 16px;
  padding: 1.2rem 1.25rem 1.3rem;
  box-shadow: 0 8px 22px rgba(15, 23, 42, 0.06);
}

.patient-dashboard-card--chart {
  display: flex;
  flex-direction: column;
  min-height: 20rem;
}

.patient-dashboard-card__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.75rem;
  flex-wrap: wrap;
  margin-bottom: 0.9rem;
}

.patient-dashboard-card__head h2 {
  margin: 0;
  font-size: 1.36rem;
  color: var(--brand-red-deep, #071f5c);
}

.patient-dashboard-card__meta {
  margin: 0;
  font-size: 0.97rem;
  color: #94a3b8;
}

.patient-dashboard-card__head a {
  font-size: 1.09rem;
  font-weight: 600;
  color: var(--brand-red, #0B318F);
  text-decoration: none;
}

.patient-dashboard-card__head a:hover {
  text-decoration: underline;
}

.patient-dashboard-chart-wrap {
  position: relative;
  flex: 1;
  min-height: 15rem;
}

.patient-dashboard-chart-wrap--pie {
  max-width: 22rem;
  margin: 0 auto;
  width: 100%;
}

.patient-dashboard-chart-empty {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  margin: 0;
  padding: 1rem;
  text-align: center;
  color: #94a3b8;
  font-size: 1.09rem;
}

.patient-dashboard-chart-empty[hidden] {
  display: none;
}

.patient-dashboard-card .patient-results-table-wrap {
  margin: 0;
}

.patient-dashboard-card .patient-results-table {
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
  font-size: 1rem;
}

.patient-dashboard-results__type {
  width: 18%;
}

.patient-dashboard-results__branch {
  width: 19%;
}

.patient-dashboard-results__test {
  width: 30%;
}

.patient-dashboard-results__status {
  width: 14%;
}

.patient-dashboard-results__reported {
  width: 19%;
}

.patient-dashboard-card .patient-results-table th,
.patient-dashboard-card .patient-results-table td {
  padding: 0.75rem 0.65rem;
  text-align: left;
  vertical-align: middle;
  line-height: 1.4;
  overflow-wrap: anywhere;
}

.patient-dashboard-card .patient-results-table th {
  border-bottom: 1px solid rgba(15, 23, 42, 0.12);
  color: #64748b;
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.035em;
  text-transform: uppercase;
}

.patient-dashboard-card .patient-results-table td {
  border-bottom: 1px solid rgba(15, 23, 42, 0.07);
}

.patient-dashboard-card .patient-results-table tbody tr:last-child td {
  border-bottom: 0;
}

.patient-dashboard-card .patient-results-table td[data-label="Status"] {
  white-space: nowrap;
}

.patient-dashboard-card .patient-portal-btn {
  font-size: 0.97rem;
  padding: 0.45rem 0.75rem;
}

.patient-portal-note {
  margin: 1rem 0;
  padding: 0.8rem 0.95rem;
  border-radius: 8px;
  background: rgba(93, 173, 226, 0.12);
  color: #334155;
  font-size: 1.1rem;
  line-height: 1.5;
}

.patient-portal-cards {
  display: grid;
  gap: 1rem;
  margin-top: 1rem;
  max-width: 720px;
}

@media (min-width: 640px) {
  .patient-portal-cards {
    grid-template-columns: 1fr 1fr;
  }
}

.patient-portal-card {
  background: #fff;
  border-radius: 12px;
  border: 1px solid rgba(15, 23, 42, 0.1);
  padding: 1.1rem 1.2rem;
  box-shadow: 0 4px 14px rgba(15, 23, 42, 0.06);
}

.patient-portal-card h2 {
  margin: 0 0 0.65rem;
  font-size: 17px;
  color: var(--brand-red-deep, #4a0c10);
}

.patient-portal-card__empty,
.patient-portal-card__meta,
.patient-portal-card__hint {
  margin: 0 0 0.75rem;
  font-size: 15px;
  color: #475569;
  line-height: 1.45;
}

.patient-portal-card__hint {
  font-size: 13px;
  color: #94a3b8;
}

.patient-portal-card__action {
  display: inline-block;
  font-size: 14px;
  font-weight: 700;
  color: #fff;
  background: var(--btn-red);
  padding: 0.45rem 0.85rem;
  border-radius: 8px;
  text-decoration: none;
}

.patient-portal-card__action:hover {
  background: var(--btn-red-hover);
}

.patient-portal-list {
  margin: 0;
  padding-left: 1.1rem;
  font-size: 15px;
  color: #475569;
  line-height: 1.5;
}

.patient-portal-cards--compact {
  margin-bottom: 1.25rem;
}

.patient-portal-booking {
  margin-top: 0.5rem;
}

.patient-portal-booking__lead {
  margin: 0 0 0.85rem;
  font-size: 1.25rem;
  color: #64748b;
  max-width: 52rem;
}

.patient-portal-booking__hint {
  margin: 0 0 0.75rem;
  font-size: 14px;
  color: #64748b;
  text-align: center;
}

.patient-portal-booking__message {
  margin: 0 0 1rem;
  padding: 0.65rem 0.85rem;
  border-radius: 8px;
  font-size: 15px;
}

.patient-portal-booking__message--success {
  background: #f0fdf4;
  color: #15803d;
  border: 1px solid rgba(21, 128, 61, 0.2);
}

.patient-portal-booking__message--error {
  background: #fef2f2;
  color: var(--brand-red-deep);
  border: 1px solid rgba(185, 28, 28, 0.2);
}

.patient-portal-booking__wizard {
  margin-top: 0.25rem;
}

.patient-portal-body .home-service-wizard,
.patient-portal-body .patient-portal-booking__wizard.home-service-wizard,
.patient-portal-body .wizard-steps li,
.patient-portal-body .wizard-panel > p,
.patient-portal-body .wizard-panel > label,
.patient-portal-body .wizard-panel input,
.patient-portal-body .wizard-panel select,
.patient-portal-body .wizard-panel textarea,
.patient-portal-body .wizard-panel button,
.patient-portal-body .appointment-form label,
.patient-portal-body .appointment-form input,
.patient-portal-body .appointment-form select,
.patient-portal-body .appointment-form textarea,
.patient-portal-body .appointment-form button {
  font-size: 1.15rem;
}

.patient-portal-body .wizard-panel h2 {
  font-size: 1.55rem;
}

.patient-portal-body .wizard-steps li span {
  font-size: 1.1rem;
}

.patient-portal-booking__form.appointment-form input,
.patient-portal-booking__form.appointment-form select,
.patient-portal-booking__form.appointment-form textarea {
  padding-left: 0.75rem;
}

.patient-portal-booking__form.appointment-form textarea {
  min-height: 88px;
}

.patient-portal-booking__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: flex-end;
  margin-top: 0.85rem;
}

.patient-portal-booking__preview {
  background: #fff;
  border: 1px solid rgba(15, 23, 42, 0.1);
  border-radius: 12px;
  padding: 1.15rem 1.25rem;
  margin-bottom: 0.75rem;
}

.patient-portal-booking__preview h2 {
  margin: 0 0 0.35rem;
  font-size: 1.36rem;
  color: var(--brand-red-deep, #4a0c10);
}

.patient-portal-booking__preview > p {
  margin: 0 0 1rem;
  font-size: 15px;
  color: #64748b;
}

.patient-portal-booking__preview-list {
  margin: 0;
  display: grid;
  gap: 0.65rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.patient-portal-booking__preview-list div {
  display: grid;
  gap: 0.15rem;
}

.patient-portal-booking__preview-list dt {
  margin: 0;
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #64748b;
}

.patient-portal-booking__preview-list dd {
  margin: 0;
  font-size: 17px;
  font-weight: 600;
  color: #1e293b;
  word-break: break-word;
}

.patient-portal-booking__preview-full {
  grid-column: 1 / -1;
}

@media (max-width: 720px) {
  .patient-portal-booking__preview-list {
    grid-template-columns: 1fr;
  }

  .patient-portal-booking .wizard-grid.two-col,
  .patient-portal-booking .wizard-grid.three-col {
    grid-template-columns: 1fr;
  }
}

.patient-portal-menu-btn {
  display: none;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  flex-shrink: 0;
  border: 1px solid rgba(15, 23, 42, 0.12);
  border-radius: 10px;
  background: #fff;
  color: var(--brand-red-deep, #4a0c10);
  font-size: 0.97rem;
  font-weight: 700;
  padding: 0.55rem 0.7rem;
  cursor: pointer;
  box-shadow: 0 1px 4px rgba(15, 23, 42, 0.06);
}

.patient-portal-menu-btn__bars {
  position: relative;
  width: 1.15rem;
  height: 0.85rem;
  display: block;
  background: linear-gradient(currentColor, currentColor) center / 100% 2px no-repeat;
}

.patient-portal-menu-btn__bars::before,
.patient-portal-menu-btn__bars::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  height: 2px;
  border-radius: 2px;
  background: currentColor;
}

.patient-portal-menu-btn__bars::before {
  top: 0;
}

.patient-portal-menu-btn__bars::after {
  bottom: 0;
}

.patient-portal-menu-btn__label {
  display: none;
}

.patient-portal-sidebar-backdrop {
  display: none;
}

@media (max-width: 900px) {
  .patient-portal-layout {
    flex-direction: column;
  }

  .patient-portal-menu-btn {
    display: inline-flex;
  }

  .patient-portal-sidebar-backdrop {
    display: block;
    position: fixed;
    inset: 0;
    z-index: 24;
    background: rgba(15, 23, 42, 0.45);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.2s ease, visibility 0.2s ease;
  }

  .patient-portal-sidebar-backdrop.is-visible {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }

  .patient-portal-sidebar {
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    width: min(20rem, 90vw);
    z-index: 25;
    transform: translateX(-105%);
    transition: transform 0.25s ease;
    box-shadow: 4px 0 24px rgba(0, 35, 102, 0.35);
    padding-top: 0;
  }

  .patient-portal-sidebar.is-mobile-open {
    transform: translateX(0);
  }

  .patient-portal-side-nav a {
    min-height: 3.1rem;
    font-size: 1.15rem;
  }

  .patient-portal-quick a {
    width: 2.85rem;
    height: 2.85rem;
  }

  .patient-portal-quick {
    padding-top: max(1rem, env(safe-area-inset-top, 0px));
  }

  .patient-portal-main {
    padding: 1.25rem 1rem calc(7rem + env(safe-area-inset-bottom, 0px));
  }

  .patient-portal-topbar {
    padding-top: 0.65rem;
    padding-bottom: 0.65rem;
    padding-left: max(0.75rem, env(safe-area-inset-left, 0px));
    padding-right: max(0.75rem, env(safe-area-inset-right, 0px));
    gap: 0.65rem;
  }

  .patient-portal-topbar__brand {
    gap: 0.7rem;
  }

  .patient-portal-topbar__brand img {
    width: 58px;
    height: 58px;
  }

  .patient-portal-topbar__brand-title {
    font-size: 1.24rem;
  }

  .patient-portal-topbar__brand-sub {
    font-size: 0.92rem;
  }

  .patient-portal-topbar__portal-label {
    font-size: 0.95rem;
    padding: 0.35rem 0.75rem;
  }

  .patient-portal-top-user__name {
    max-width: 8rem;
    font-size: 1.1rem;
  }

  .patient-portal-avatar {
    width: 44px;
    height: 44px;
    font-size: 0.98rem;
  }

  .patient-portal-bell {
    width: 2.6rem;
    height: 2.6rem;
  }

  .patient-dashboard-actions .patient-portal-btn {
    flex: 1 1 calc(50% - 0.35rem);
    min-height: 2.75rem;
  }

  .patient-dashboard-card--chart {
    min-height: 18rem;
  }

  .patient-dashboard-chart-wrap {
    min-height: 14rem;
  }

  .patient-dashboard-card .patient-portal-btn {
    font-size: 1.04rem;
    padding: 0.55rem 0.8rem;
    min-height: 2.4rem;
  }

  .patient-results-toolbar {
    flex-direction: column;
    align-items: stretch;
  }

  .patient-results-date-filter,
  .patient-results-date-filter select {
    min-width: 0;
    width: 100%;
  }

  .patient-results-toolbar .patient-portal-btn {
    width: 100%;
    min-height: 2.75rem;
  }

  .patient-result-card {
    padding: 0.95rem;
    border-radius: 13px;
  }

  .patient-result-card__head {
    gap: 0.65rem;
  }

  .patient-result-card__actions {
    gap: 0.35rem;
  }

  .patient-result-card__title {
    font-size: 1.08rem;
  }

  .patient-result-card__meta {
    flex-direction: column;
    gap: 0.45rem;
  }

  .patient-result-attachments li {
    align-items: stretch;
    flex-direction: column;
  }

  .patient-result-attachments__preview {
    width: 100%;
  }

  .patient-result-field-grid {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 8rem), 1fr));
  }

  .patient-results-table-wrap,
  .patient-portal-pdf-table-wrap {
    overflow: visible;
    margin-left: 0;
    margin-right: 0;
  }

  .patient-results-table,
  .patient-portal-pdf-table,
  .patient-appt-history-table {
    width: 100%;
    border: 0;
    font-size: 1.15rem;
  }

  .patient-results-table thead,
  .patient-portal-pdf-table thead,
  .patient-appt-history-table thead {
    display: none;
  }

  .patient-results-table tbody,
  .patient-portal-pdf-table tbody,
  .patient-appt-history-table tbody {
    display: block;
  }

  .patient-results-table tbody tr,
  .patient-portal-pdf-table tbody tr,
  .patient-appt-history-table tbody tr {
    display: block;
    background: #fff;
    border: 1px solid rgba(15, 23, 42, 0.1);
    border-radius: 12px;
    margin-bottom: 0.75rem;
    padding: 0.25rem 0.85rem 0.35rem;
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.05);
  }

  .patient-results-table tbody tr:nth-child(even),
  .patient-portal-pdf-table tbody tr:nth-child(even),
  .patient-appt-history-table tbody tr:nth-child(even) {
    background: #fff;
  }

  .patient-results-table td,
  .patient-portal-pdf-table td,
  .patient-appt-history-table td {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.85rem;
    width: 100%;
    border: 0;
    border-bottom: 1px solid rgba(15, 23, 42, 0.08);
    padding: 0.65rem 0;
    text-align: right;
    white-space: normal;
    word-break: break-word;
  }

  .patient-results-table td:last-child,
  .patient-portal-pdf-table td:last-child,
  .patient-appt-history-table td:last-child {
    border-bottom: 0;
  }

  .patient-results-table td::before,
  .patient-portal-pdf-table td::before,
  .patient-appt-history-table td::before {
    content: attr(data-label);
    flex: 0 0 38%;
    max-width: 8.5rem;
    text-align: left;
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: #64748b;
  }

  .patient-results-table td[colspan],
  .patient-portal-pdf-table td[colspan],
  .patient-appt-history-table td[colspan],
  .patient-results-table td.muted,
  .patient-portal-pdf-table td.muted,
  .patient-appt-history-table td.muted {
    display: block;
    text-align: left;
    border-bottom: 0;
    padding: 0.85rem 0.15rem;
  }

  .patient-results-table td[colspan]::before,
  .patient-portal-pdf-table td[colspan]::before,
  .patient-appt-history-table td[colspan]::before,
  .patient-results-table td.muted::before,
  .patient-portal-pdf-table td.muted::before,
  .patient-appt-history-table td.muted::before {
    content: none;
  }

  .patient-portal-pdf-actions {
    flex-wrap: wrap;
    justify-content: flex-end;
  }

  .patient-portal-pdf-actions .patient-portal-btn {
    margin: 0.15rem 0 0.15rem 0.35rem;
  }

  body.patient-portal-nav-open {
    overflow: hidden;
  }

  .dclc-care-bot {
    bottom: max(1.25rem, calc(1rem + env(safe-area-inset-bottom, 0px)));
  }
}

@media (max-width: 640px) {
  .patient-portal-cards,
  .patient-portal-stats,
  .patient-dashboard-stats {
    grid-template-columns: 1fr;
  }

  .patient-portal-topbar__right {
    gap: 0.45rem;
  }

  .patient-portal-top-user__name,
  .patient-portal-top-user__chevron {
    display: none;
  }

  .patient-portal-topbar__brand img {
    width: 54px;
    height: 54px;
  }

  .patient-portal-topbar__brand-title {
    font-size: 1.16rem;
  }

  .patient-portal-topbar__brand-sub {
    display: none;
  }

  .patient-portal-topbar__portal-label {
    font-size: 0.88rem;
    padding: 0.3rem 0.65rem;
  }

  .patient-dashboard-actions .patient-portal-btn {
    flex: 1 1 100%;
  }

  .patient-dashboard-stat {
    padding: 1.05rem 1.1rem;
  }

  .patient-dashboard-stat__icon {
    width: 2.65rem;
    height: 2.65rem;
  }

  .patient-dashboard-card__head {
    flex-wrap: wrap;
  }

  .patient-dashboard-chart-wrap--pie {
    max-width: none;
  }

  .test-table-wrap {
    margin-left: -0.35rem;
    margin-right: -0.35rem;
    -webkit-overflow-scrolling: touch;
  }

  .patient-portal-modal__dialog,
  .patient-portal-modal__dialog--info {
    width: min(100%, calc(100vw - 1rem));
    max-height: min(92vh, 900px);
  }

  .patient-portal-info-card--modal {
    flex-direction: column;
  }

  .patient-portal-info-card__photo-column {
    width: 100%;
    flex-basis: auto;
  }

  .patient-portal-photo-upload {
    min-height: 200px;
  }

  .patient-portal-info-list--modal {
    grid-template-columns: 1fr;
  }

  .patient-portal-info-list--modal > div:nth-child(3) {
    grid-column: auto;
  }
}

.patient-results-denied a {
  color: var(--brand-blue-dark);
  font-weight: 700;
}

/* Booking feedback modal (success / error) */
.dclc-feedback-modal[hidden] {
  display: none;
}

.dclc-feedback-modal {
  position: fixed;
  inset: 0;
  z-index: 500;
  display: grid;
  place-items: center;
  padding: 1rem;
}

.dclc-feedback-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.55);
}

.dclc-feedback-modal__dialog {
  position: relative;
  z-index: 1;
  width: min(420px, 100%);
  padding: 1.75rem 1.5rem 1.35rem;
  border-radius: 16px;
  border: 1px solid rgba(15, 23, 42, 0.08);
  background: #fff;
  box-shadow: 0 24px 60px rgba(15, 23, 42, 0.28);
  text-align: center;
}

.dclc-feedback-modal__close {
  position: absolute;
  top: 0.65rem;
  right: 0.65rem;
  width: 2rem;
  height: 2rem;
  border: 0;
  border-radius: 999px;
  background: #f1f5f9;
  color: #64748b;
  font-size: 1.35rem;
  line-height: 1;
  cursor: pointer;
}

.dclc-feedback-modal__close:hover {
  background: #e2e8f0;
  color: #1e293b;
}

.dclc-feedback-modal__icon {
  width: 3.25rem;
  height: 3.25rem;
  margin: 0 auto 0.85rem;
  border-radius: 999px;
  display: grid;
  place-items: center;
  font-size: 1.5rem;
  font-weight: 800;
  line-height: 1;
}

.dclc-feedback-modal--success .dclc-feedback-modal__icon {
  background: #ecfdf5;
  color: #15803d;
  border: 2px solid #bbf7d0;
}

.dclc-feedback-modal--error .dclc-feedback-modal__icon {
  background: #fef2f2;
  color: var(--brand-red-deep);
  border: 2px solid #fecaca;
}

.dclc-feedback-modal--info .dclc-feedback-modal__icon {
  background: #eff6ff;
  color: #1d4ed8;
  border: 2px solid #bfdbfe;
}

.dclc-feedback-modal__title {
  margin: 0 0 0.5rem;
  font-size: 1.35rem;
  font-weight: 800;
  color: #1e293b;
}

.dclc-feedback-modal__message {
  margin: 0 0 0.85rem;
  font-size: 0.98rem;
  line-height: 1.5;
  color: #475569;
}

.dclc-feedback-modal__reference {
  margin: 0 0 1.1rem;
  padding: 0.65rem 0.85rem;
  border-radius: 10px;
  background: #f8fafc;
  border: 1px dashed #cbd5e1;
  display: grid;
  gap: 0.2rem;
}

.dclc-feedback-modal__reference-label {
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #64748b;
}

.dclc-feedback-modal__reference-value {
  font-size: var(--text-base);
  color: #0f172a;
  letter-spacing: 0.02em;
}

.dclc-feedback-modal__actions {
  display: flex;
  justify-content: center;
}

.dclc-feedback-modal__ok {
  min-width: 7.5rem;
  margin: 0;
  border: 0;
  border-radius: 9px;
  padding: 0.66rem 1.5rem;
  color: #fff;
  font-size: 1rem;
  font-weight: 600;
  background: var(--btn-red);
  cursor: pointer;
  transition: background-color 0.2s ease, filter 0.2s ease;
}

.dclc-feedback-modal__ok:hover {
  background: var(--btn-red-hover);
  filter: none;
}

.dclc-feedback-modal__ok:focus-visible {
  outline: 2px solid #1e6fa8;
  outline-offset: 2px;
}

/* ——— Floating DCLC Care Bot ——— */
.dclc-care-bot {
  position: fixed;
  right: max(2rem, calc(1rem + env(safe-area-inset-right, 0px)));
  bottom: max(2rem, calc(1rem + env(safe-area-inset-bottom, 0px)));
  z-index: 450;
  font-family: var(--font);
}

.dclc-care-bot__launcher {
  position: relative;
  display: grid;
  place-items: center;
  width: 4.5rem;
  height: 4.5rem;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  box-shadow: none;
  cursor: pointer;
  transition: transform 0.25s ease, filter 0.25s ease;
  animation: dclc-care-bot-float 3.2s ease-in-out infinite;
}

.dclc-care-bot__launcher:hover {
  transform: translateY(-3px) scale(1.04);
  filter: drop-shadow(0 14px 28px rgba(0, 147, 208, 0.45));
}

.dclc-care-bot__launcher:focus-visible {
  outline: 3px solid var(--brand-blue);
  outline-offset: 3px;
}

.dclc-care-bot--open .dclc-care-bot__launcher {
  transform: scale(0.92);
  animation: none;
  opacity: 0;
  pointer-events: none;
}

.dclc-care-bot__launcher-badge {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  overflow: hidden;
  background: radial-gradient(circle at 32% 24%, #5ecaf3 0%, var(--brand-blue) 44%, #0b318f 100%);
  border: 3px solid rgba(255, 255, 255, 0.92);
  box-shadow:
    0 10px 24px rgba(11, 49, 143, 0.34),
    inset 0 0 0 1px rgba(255, 255, 255, 0.28);
}

.dclc-care-bot__launcher-icon {
  display: block;
  width: 94%;
  height: 94%;
  border-radius: 0;
  object-fit: contain;
  object-position: center center;
  filter: drop-shadow(0 2px 5px rgba(7, 31, 92, 0.22));
  pointer-events: none;
}

.dclc-care-bot__launcher-pulse {
  position: absolute;
  inset: -2px;
  border-radius: 50%;
  border: 2px solid rgba(0, 163, 230, 0.45);
  animation: dclc-care-bot-pulse 2.4s ease-out infinite;
  pointer-events: none;
}

.dclc-care-bot__panel {
  position: absolute;
  right: 0;
  bottom: 0;
  display: flex;
  flex-direction: column;
  width: min(32rem, calc(100vw - 2rem));
  max-height: min(42rem, calc(100vh - 2rem));
  border-radius: 20px;
  overflow: hidden;
  background: #fff;
  box-shadow:
    0 22px 50px rgba(15, 23, 42, 0.28),
    0 0 0 1px rgba(11, 49, 143, 0.08);
  transform-origin: right bottom;
  animation: dclc-care-bot-panel-in 0.28s ease;
}

.dclc-care-bot__panel[hidden] {
  display: none;
}

.dclc-care-bot__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.85rem;
  padding: 1.05rem 1.15rem;
  color: #fff;
  background: linear-gradient(135deg, var(--brand-red) 0%, var(--nav-bg) 100%);
}

.dclc-care-bot__header-brand {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  min-width: 0;
}

.dclc-care-bot__avatar {
  display: grid;
  place-items: center;
  width: 2.85rem;
  height: 2.85rem;
  border-radius: 50%;
  background: radial-gradient(circle at 32% 24%, #5ecaf3 0%, var(--brand-blue) 44%, #0b318f 100%);
  border: 2px solid rgba(255, 255, 255, 0.78);
  flex-shrink: 0;
  overflow: hidden;
}

.dclc-care-bot__avatar img {
  width: 88%;
  height: 88%;
  border-radius: 0;
  object-fit: contain;
  object-position: center center;
  background: transparent;
  filter: drop-shadow(0 1px 3px rgba(7, 31, 92, 0.2));
}

.dclc-care-bot__title {
  display: block;
  font-size: 1.12rem;
  line-height: 1.2;
}

.dclc-care-bot__subtitle {
  display: block;
  font-size: 0.88rem;
  opacity: 0.88;
}

.dclc-care-bot__close {
  border: 0;
  border-radius: 8px;
  width: 2.25rem;
  height: 2.25rem;
  color: #fff;
  font-size: 1.55rem;
  line-height: 1;
  background: rgba(255, 255, 255, 0.14);
  cursor: pointer;
}

.dclc-care-bot__close:hover {
  background: rgba(255, 255, 255, 0.24);
}

.dclc-care-bot__messages {
  flex: 1 1 auto;
  min-height: 18rem;
  max-height: 26rem;
  overflow-y: auto;
  padding: 1.15rem 1rem;
  background: linear-gradient(180deg, #f5f9fc 0%, #fff 100%);
}

.dclc-care-bot__message {
  display: flex;
  gap: 0.55rem;
  margin-bottom: 0.9rem;
}

.dclc-care-bot__message--user {
  justify-content: flex-end;
}

.dclc-care-bot__message--user .dclc-care-bot__bubble {
  background: var(--brand-red);
  color: #fff;
  border-bottom-right-radius: 4px;
}

.dclc-care-bot__message--bot .dclc-care-bot__bubble {
  background: #fff;
  color: var(--text-body);
  border: 1px solid rgba(11, 49, 143, 0.1);
  border-bottom-left-radius: 4px;
}

.dclc-care-bot__bubble {
  max-width: 85%;
  padding: 0.75rem 0.95rem;
  border-radius: 14px;
  font-size: 1.02rem;
  line-height: 1.5;
}

.dclc-care-bot__bubble a {
  color: var(--brand-blue-deep);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.dclc-care-bot__message--user .dclc-care-bot__bubble a {
  color: #fff;
}

.dclc-care-bot__bubble--typing {
  display: inline-flex;
  align-items: center;
  gap: 0.28rem;
  min-height: 2rem;
}

.dclc-care-bot__bubble--typing span {
  width: 0.42rem;
  height: 0.42rem;
  border-radius: 50%;
  background: var(--brand-blue);
  animation: dclc-care-bot-dot 1.1s ease-in-out infinite;
}

.dclc-care-bot__bubble--typing span:nth-child(2) {
  animation-delay: 0.15s;
}

.dclc-care-bot__bubble--typing span:nth-child(3) {
  animation-delay: 0.3s;
}

.dclc-care-bot__quick {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  padding: 0 1rem 0.8rem;
  background: #fff;
}

.dclc-care-bot__chip {
  border: 1px solid rgba(11, 49, 143, 0.18);
  border-radius: 999px;
  padding: 0.42rem 0.85rem;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--brand-red);
  background: #f4f8fc;
  cursor: pointer;
  transition: background-color 0.2s ease, border-color 0.2s ease;
}

.dclc-care-bot__chip:hover {
  background: rgba(0, 163, 230, 0.12);
  border-color: rgba(0, 163, 230, 0.45);
}

.dclc-care-bot__composer {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.85rem 1rem 1rem;
  border-top: 1px solid rgba(11, 49, 143, 0.08);
  background: #fff;
}

.dclc-care-bot__input {
  flex: 1 1 auto;
  min-width: 0;
  border: 1px solid rgba(11, 49, 143, 0.18);
  border-radius: 999px;
  padding: 0.7rem 1.05rem;
  font: inherit;
  font-size: 1.02rem;
}

.dclc-care-bot__input:focus {
  outline: 2px solid rgba(0, 163, 230, 0.35);
  border-color: var(--brand-blue);
}

.dclc-care-bot__send {
  display: grid;
  place-items: center;
  width: 2.75rem;
  height: 2.75rem;
  border: 0;
  border-radius: 50%;
  color: #fff;
  background: var(--brand-red);
  cursor: pointer;
  flex-shrink: 0;
}

.dclc-care-bot__send:hover:not(:disabled) {
  background: var(--btn-red-hover);
}

.dclc-care-bot__send:disabled {
  opacity: 0.55;
  cursor: wait;
}

@keyframes dclc-care-bot-float {
  0%,
  100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-5px);
  }
}

@keyframes dclc-care-bot-pulse {
  0% {
    transform: scale(1);
    opacity: 0.75;
  }
  100% {
    transform: scale(1.35);
    opacity: 0;
  }
}

@keyframes dclc-care-bot-panel-in {
  from {
    opacity: 0;
    transform: translateY(12px) scale(0.96);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

@keyframes dclc-care-bot-dot {
  0%,
  80%,
  100% {
    transform: translateY(0);
    opacity: 0.45;
  }
  40% {
    transform: translateY(-4px);
    opacity: 1;
  }
}

@media (max-width: 480px) {
  .dclc-care-bot {
    right: max(1.35rem, calc(0.75rem + env(safe-area-inset-right, 0px)));
    bottom: max(1.35rem, calc(0.75rem + env(safe-area-inset-bottom, 0px)));
  }

  .dclc-care-bot__panel {
    width: min(32rem, calc(100vw - 2.7rem));
    max-height: min(40rem, calc(100vh - 2.7rem));
  }

  .dclc-care-bot__messages {
    min-height: 15rem;
    max-height: 22rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .dclc-care-bot__launcher,
  .dclc-care-bot__launcher-pulse,
  .dclc-care-bot__panel {
    animation: none;
  }
}

/* ——— Accredited HMOs / Partner logos ——— */
.hmo-partners {
  display: grid;
  gap: 2rem;
}

.hmo-partners__panel {
  position: relative;
  overflow: hidden;
  border-radius: 16px;
  border: 1px solid rgba(var(--brand-red-rgb), 0.12);
  background:
    radial-gradient(circle at 8% 92%, rgba(0, 163, 230, 0.08) 0, transparent 42%),
    radial-gradient(circle at 94% 8%, rgba(0, 163, 230, 0.1) 0, transparent 38%),
    linear-gradient(180deg, #f8fbff 0%, #ffffff 100%);
  padding: clamp(1.35rem, 3vw, 2rem);
  box-shadow: 0 10px 28px rgba(15, 23, 42, 0.06);
}

.hmo-partners__panel::before,
.hmo-partners__panel::after {
  content: "";
  position: absolute;
  width: 9rem;
  height: 9rem;
  opacity: 0.14;
  pointer-events: none;
  background-image:
    linear-gradient(rgba(0, 163, 230, 0.55), rgba(0, 163, 230, 0.55)),
    linear-gradient(rgba(0, 163, 230, 0.55), rgba(0, 163, 230, 0.55));
  background-size: 18px 4px, 4px 18px;
  background-position: 0 0, 7px 7px;
  background-repeat: no-repeat;
}

.hmo-partners__panel::before {
  left: -1.2rem;
  bottom: -1.2rem;
  transform: rotate(12deg);
}

.hmo-partners__panel::after {
  right: -1rem;
  top: -1rem;
  transform: rotate(-8deg);
}

.hmo-partners__heading {
  position: relative;
  z-index: 1;
  text-align: center;
  margin-bottom: 1.35rem;
}

.hmo-partners__heading h2 {
  margin: 0;
  font-size: clamp(1.35rem, 2.8vw, 1.75rem);
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--brand-red);
}

.hmo-partners__heading p {
  margin: 0.45rem auto 0;
  max-width: 36rem;
  color: var(--text-muted);
  font-size: var(--text-base);
}

.hmo-partners__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.35rem;
  height: 2.35rem;
  margin-bottom: 0.55rem;
  border-radius: 999px;
  background: rgba(0, 163, 230, 0.12);
  color: var(--brand-blue-deep);
}

.hmo-partners__icon svg {
  width: 1.35rem;
  height: 1.35rem;
  display: block;
}

.hmo-partners__grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  perspective: 1200px;
}

.hmo-partner-card {
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 0.75rem;
  min-height: 14rem;
  height: auto;
  padding: 1.35rem 1rem 1.65rem;
  border-radius: 12px;
  border: 1px solid rgba(15, 23, 42, 0.1);
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 6px 16px rgba(15, 23, 42, 0.06);
  transform-style: preserve-3d;
  transition:
    transform 0.45s cubic-bezier(0.34, 1.35, 0.64, 1),
    box-shadow 0.45s ease,
    border-color 0.45s ease;
}

.hmo-partner-card::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    115deg,
    transparent 28%,
    rgba(0, 163, 230, 0.22) 50%,
    transparent 72%
  );
  transform: translateX(-130%);
  transition: transform 0.7s ease;
  pointer-events: none;
}

.hmo-partner-card::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  width: 0;
  height: 3px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--brand-blue), var(--brand-red));
  transform: translateX(-50%);
  transition: width 0.42s cubic-bezier(0.22, 1, 0.36, 1);
  pointer-events: none;
}

.hmo-partner-card:hover,
.hmo-partner-card:focus-within {
  transform: translateY(-5px) rotateX(4deg) rotateY(-3deg);
  border-color: rgba(0, 163, 230, 0.38);
  box-shadow:
    0 18px 34px rgba(11, 49, 143, 0.14),
    0 4px 12px rgba(0, 163, 230, 0.12);
}

.hmo-partner-card:hover::before,
.hmo-partner-card:focus-within::before {
  transform: translateX(130%);
}

.hmo-partner-card:hover::after,
.hmo-partner-card:focus-within::after {
  width: 70%;
}

.hmo-partner-card__logo {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  flex: 1 1 auto;
  min-height: 7rem;
  padding: 0.4rem 0.35rem 0.15rem;
}

.hmo-partner-card__logo img {
  display: block;
  max-width: min(100%, 16rem);
  max-height: 7.75rem;
  width: auto;
  height: auto;
  object-fit: contain;
  transform: translateY(0);
  filter: saturate(0.92);
  transition:
    transform 0.45s cubic-bezier(0.34, 1.35, 0.64, 1),
    filter 0.45s ease;
}

.hmo-partner-card:hover .hmo-partner-card__logo img,
.hmo-partner-card:focus-within .hmo-partner-card__logo img {
  transform: translateY(-6px);
  filter: saturate(1.08);
}

.hmo-partner-card__name {
  margin: 0;
  flex-shrink: 0;
  position: relative;
  z-index: 1;
  padding: 0 0.35rem 0.15rem;
  font-size: 0.98rem;
  font-weight: 700;
  color: var(--brand-blue-deep);
  text-align: center;
  line-height: 1.35;
  transform: translateY(0);
  transition:
    color 0.35s ease,
    transform 0.35s ease;
}

.hmo-partner-card:hover .hmo-partner-card__name,
.hmo-partner-card:focus-within .hmo-partner-card__name {
  color: var(--brand-red);
  transform: translateY(-2px);
}

.hmo-partners__programs {
  position: relative;
  z-index: 1;
  margin-top: 0.35rem;
  padding-top: 1.35rem;
  border-top: 1px solid rgba(var(--brand-red-rgb), 0.12);
}

.hmo-partners__programs h3 {
  margin: 0 0 0.85rem;
  text-align: center;
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--brand-red-deep);
}

.hmo-partners__programs-grid {
  display: flex;
  justify-content: center;
}

.hmo-partner-card--valucare .hmo-partner-card__logo {
  min-height: 9rem;
}

.hmo-partner-card--valucare .hmo-partner-card__logo img {
  max-height: 10rem;
  max-width: min(100%, 20rem);
}

.hmo-partner-card--featured {
  width: min(100%, 34rem);
  min-height: 14.5rem;
}

.hmo-partner-card--featured .hmo-partner-card__logo {
  min-height: 9.5rem;
}

.hmo-partner-card--featured .hmo-partner-card__logo img {
  max-height: 10.25rem;
  max-width: min(100%, 26rem);
}

.hmo-partners__note {
  border-radius: 12px;
  border: 1px solid rgba(var(--brand-red-rgb), 0.14);
  background: rgba(0, 163, 230, 0.06);
  padding: 1.1rem 1.25rem;
}

.hmo-partners__note h2 {
  margin: 0 0 0.45rem;
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--brand-red);
}

.hmo-partners__note p {
  margin: 0;
  color: var(--text-muted);
}

.hmo-partners__note ul {
  margin: 0.65rem 0 0;
  padding-left: 1.2rem;
  color: var(--text-muted);
}

.hmo-partners__note li + li {
  margin-top: 0.35rem;
}

.services-first-load-animate .hmo-partner-card {
  animation: job-card-enter 0.65s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.services-first-load-animate .hmo-partner-card:nth-child(1) { animation-delay: 0.2s; }
.services-first-load-animate .hmo-partner-card:nth-child(2) { animation-delay: 0.26s; }
.services-first-load-animate .hmo-partner-card:nth-child(3) { animation-delay: 0.32s; }
.services-first-load-animate .hmo-partner-card:nth-child(4) { animation-delay: 0.38s; }
.services-first-load-animate .hmo-partner-card:nth-child(5) { animation-delay: 0.44s; }
.services-first-load-animate .hmo-partner-card:nth-child(6) { animation-delay: 0.5s; }
.services-first-load-animate .hmo-partner-card--featured { animation-delay: 0.56s; }
.services-first-load-animate .hmo-partners__note { animation: job-card-enter 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.62s both; }

@media (max-width: 900px) {
  .hmo-partners__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 560px) {
  .hmo-partners__grid {
    grid-template-columns: 1fr;
  }

  .hmo-partner-card {
    min-height: 13rem;
    padding-bottom: 1.5rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .services-first-load-animate .hmo-partner-card,
  .services-first-load-animate .hmo-partners__note {
    animation: none;
  }

  .hmo-partner-card,
  .hmo-partner-card__logo img,
  .hmo-partner-card__name,
  .hmo-partner-card::before,
  .hmo-partner-card::after {
    transition: none;
  }

  .hmo-partner-card:hover,
  .hmo-partner-card:focus-within {
    transform: none;
  }

  .hmo-partner-card:hover::before,
  .hmo-partner-card:focus-within::before {
    transform: translateX(-130%);
  }

  .hmo-partner-card:hover::after,
  .hmo-partner-card:focus-within::after {
    width: 0;
  }

  .hmo-partner-card:hover .hmo-partner-card__logo img,
  .hmo-partner-card:focus-within .hmo-partner-card__logo img {
    transform: none;
    filter: none;
  }

  .hmo-partner-card:hover .hmo-partner-card__name,
  .hmo-partner-card:focus-within .hmo-partner-card__name {
    transform: none;
  }
}
