/**
 * Homepage Sections
 *
 * Direction 2: Editorial / Premium-Clinical Design
 * Navy/Gold/Cream palette with Newsreader + Mulish typography
 */

/* ═══════════════════════════════════════════════════════════════════════════
   SHARED HERO BUTTONS
   ═══════════════════════════════════════════════════════════════════════════ */

/* Phone button - white outline style */
.btn-phone {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: transparent;
  color: #fff;
  padding: 16px 28px;
  font-weight: var(--font-weight-bold);
  letter-spacing: 0.3px;
  border-radius: var(--border-radius-pill);
  text-decoration: none;
  border: 2px solid rgba(255, 255, 255, 0.5);
  transition: all var(--transition-base);
}

.btn-phone:hover {
  background: rgba(255, 255, 255, 0.1);
  color: #fff;
  border-color: #fff;
}

.btn-phone svg {
  width: 16px;
  height: 16px;
  opacity: 0.9;
}

/* ═══════════════════════════════════════════════════════════════════════════
   HERO STATS BAR
   ═══════════════════════════════════════════════════════════════════════════ */

.hero-stats {
  background: var(--color-navy-700);
  padding: 0;
}

.hero-stats__inner {
  max-width: var(--container-wide);
  margin: 0 auto;
  padding: 0 40px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
}

.hero-stats__item {
  padding: 28px 20px;
  text-align: center;
  border-left: 1px solid rgba(255, 255, 255, 0.1);
}

.hero-stats__item:first-child {
  border-left: none;
}

.hero-stats__number {
  font-family: var(--font-heading);
  font-size: 42px;
  font-weight: var(--font-weight-medium);
  color: #fff;
  display: block;
  line-height: 1;
}

.hero-stats__label {
  font-weight: var(--font-weight-medium);
  letter-spacing: 0.5px;
  color: rgba(255, 255, 255, 0.75);
  display: block;
  margin-top: 8px;
}

/* Hero Stats Responsive */
@media (max-width: 992px) {
  .hero-stats__inner {
    grid-template-columns: repeat(2, 1fr);
    padding: 0 30px;
  }

  .hero-stats__item {
    border-left: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  }

  .hero-stats__item:nth-child(2n) {
    border-left: 1px solid rgba(255, 255, 255, 0.1);
  }
}


/* ═══════════════════════════════════════════════════════════════════════════
   HERO FRAMED VARIANT
   ═══════════════════════════════════════════════════════════════════════════ */

.hero-framed {
  background: var(--color-navy);
  position: relative;
  min-height: 77vh;
  display: flex;
  align-items: center;
}

.hero-framed::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(90% 120% at 88% 12%, rgba(212, 147, 58, 0.16), transparent 60%);
}

.hero-framed__inner {
  position: relative;
  width: 100%;
  max-width: var(--container-max-width);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 0.92fr;
  align-items: center;
  gap: 30px;
  padding: 60px var(--container-padding);
}

.hero-framed__kicker {
  display: inline-flex;
  align-items: center;
  gap: 11px;
  font-weight: 800;
  letter-spacing: 2.6px;
  text-transform: uppercase;
  margin-bottom: 22px;
  color: var(--color-gold-bright);
}

.hero-framed__kicker::before {
  content: "—";
  color: var(--color-gold-bright);
}

.hero-framed__title {
  color: #fff;
  font-size: clamp(42px, 5vw, 56px);
  font-weight: var(--font-weight-medium);
  letter-spacing: -1.4px;
  line-height: 1.04;
  margin: 0;
}

.hero-framed__title em {
  font-style: italic;
  color: var(--color-gold-bright);
}

.hero-framed__sub {
  color: #dbe5f0;
  font-size: 21px;
  line-height: 1.55;
  margin-top: 22px;
}

.hero-framed__rating {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin-top: 26px;
  padding: 10px 18px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 999px;
}

.hero-framed__stars {
  display: inline-flex;
  gap: 2px;
}

.hero-framed__stars svg {
  width: 18px;
  height: 18px;
  fill: var(--color-gold-bright);
  flex: none;
}

.hero-framed__rating-text {
  color: #dbe5f0;
  font-size: 15px;
  line-height: 1;
}

.hero-framed__rating-text strong {
  color: #fff;
  font-weight: 700;
}

.hero-framed__btns {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 30px;
}

.hero-framed__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 30px;
}

.hero-framed__chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 700;
  color: #fff;
  background: rgba(255, 255, 255, 0.07);
  border: 1px solid rgba(255, 255, 255, 0.15);
  padding: 9px 16px;
  border-radius: 999px;
}

.hero-framed__chip svg {
  width: 16px;
  height: 16px;
  fill: var(--color-gold-bright);
  flex: none;
}

.hero-framed__figure {
  position: relative;
  justify-self: center;
}

.hero-framed__frame {
  position: relative;
  width: 540px;
  height: 480px;
  border-radius: 24px;
  overflow: hidden;
  box-shadow: 0 34px 80px rgba(20, 32, 46, 0.28);
  z-index: 2;
}

.hero-framed__frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 30%;
}

.hero-framed__figure::before {
  content: "";
  position: absolute;
  inset: -16px -16px 28px 24px;
  border: 2px solid var(--color-gold-bright);
  border-radius: 26px;
  z-index: 1;
}

.hero-framed__badge {
  position: absolute;
  left: -30px;
  bottom: 46px;
  z-index: 3;
  background: #fff;
  border-radius: 16px;
  border-left: 5px solid var(--color-gold);
  box-shadow: 0 16px 40px rgba(20, 32, 46, 0.12);
  padding: 18px 24px;
  display: flex;
  align-items: center;
  gap: 15px;
}

.hero-framed__badge-icon {
  width: 30px;
  height: 30px;
  flex: none;
  fill: var(--color-gold);
}

.hero-framed__badge-num {
  font-family: var(--font-heading);
  font-size: 23px;
  font-weight: 600;
  color: var(--color-navy);
  line-height: 1.05;
  display: block;
}

.hero-framed__badge-lbl {
  font-size: 14px;
  font-weight: 700;
  line-height: 1.3;
  color: var(--color-muted, #677583);
  display: block;
  margin-top: 3px;
}

/* Keep the hero two-column across tablets (incl. iPad Pro portrait 1024px);
   only stack it on phones. */
@media (max-width: 768px) {
  .hero-framed__inner {
    grid-template-columns: 1fr;
    text-align: left;
    padding: 40px var(--container-padding) 60px;
  }

  .hero-framed__kicker {
    justify-content: flex-start;
  }

  .hero-framed__sub {
    max-width: 100%;
    margin-left: 0;
    margin-right: 0;
  }

  .hero-framed__btns {
    justify-content: flex-start;
    width: 100%;
  }

  .hero-framed__btns .btn-primary {
    width: 100%;
    justify-content: center;
  }

  .hero-framed__rating {
    width: 100%;
    justify-content: flex-start;
  }

  .hero-framed__chips {
    justify-content: flex-start;
  }

  /* Content sits above the photo on small screens */
  .hero-framed__figure {
    order: 2;
    margin-top: 24px;
    margin-bottom: 0;
  }

  .hero-framed__frame {
    width: 280px;
    height: 340px;
  }

  .hero-framed__badge {
    left: auto;
    right: -10px;
    bottom: 30px;
  }
}

/* Light button variant for dark backgrounds */
.btn-phone--light {
  background: #fff;
  color: var(--color-navy);
}

.btn-phone--light:hover {
  background: var(--color-cream);
}

/* ═══════════════════════════════════════════════════════════════════════════
   WELCOME SECTION
   ═══════════════════════════════════════════════════════════════════════════ */

.welcome {
  padding: var(--section-padding-y) 0;
  background: var(--color-cream);
  position: relative;
  overflow: hidden;
}

/* Faint decorative logo symbol */
.welcome__symbol {
  position: absolute;
  right: -80px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--color-gold);
  opacity: 0.06;
  pointer-events: none;
  z-index: 0;
}

.welcome__symbol svg {
  width: 500px;
  height: 500px;
}

/* Welcome title - fit in one line */
.welcome__title {
  white-space: nowrap;
}

.welcome__inner {
  max-width: var(--container-wide);
  margin: 0 auto;
  padding: 0 40px;
  position: relative;
  z-index: 1;
}

/* Two-column header */
.welcome__header {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: start;
}

.welcome__header-left .h-sec {
  max-width: 380px;
}

.welcome__header-right {
  padding-top: 40px;
}

.welcome__intro {
  margin: 0;
}

/* 4-column feature grid */
.welcome__features {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  margin-top: 70px;
  border-top: 1px solid var(--color-line-cream);
}

.welcome__feature {
  padding: 40px 30px;
  border-right: 1px solid var(--color-line-cream);
  text-align: left;
}

.welcome__feature:last-child {
  border-right: none;
}

.welcome__feature-icon {
  margin-bottom: 18px;
}

.welcome__feature-icon svg {
  width: 32px;
  height: 32px;
  stroke: var(--color-gold);
  fill: none;
  stroke-width: 1.5;
}

.welcome__feature-title {
  font-weight: var(--font-weight-bold);
  color: var(--color-ink);
  line-height: 1.35;
  margin: 0;
  min-height: 2.7em;
}

.welcome__feature-text {
  margin: 8px 0 0;
  font-size: 15px;
  line-height: 1.5;
  color: var(--color-body);
}

/* Pull-quote beneath the intro */
.welcome__quote {
  font-family: var(--font-heading);
  font-size: clamp(24px, 2.6vw, 32px);
  font-style: italic;
  font-weight: var(--font-weight-medium);
  line-height: 1.35;
  color: var(--color-navy);
  margin: 24px 0 0;
  padding-left: 22px;
  border-left: var(--border-width-accent) solid var(--color-gold);
}

.welcome__cta {
  margin-top: 28px;
}

/* Welcome Responsive */
@media (max-width: 992px) {
  .welcome__header {
    grid-template-columns: 1fr;
    gap: 30px;
  }

  .welcome__header-right {
    padding-top: 0;
  }

  .welcome__features {
    grid-template-columns: repeat(2, 1fr);
  }

  .welcome__feature:nth-child(2) {
    border-right: none;
  }

  .welcome__feature:nth-child(1),
  .welcome__feature:nth-child(2) {
    border-bottom: 1px solid var(--color-line-cream);
  }
}

@media (max-width: 576px) {
  .welcome__inner {
    padding: 0 20px;
  }

  .welcome__features {
    grid-template-columns: 1fr;
  }

  .welcome__feature {
    border-right: none;
    border-bottom: 1px solid var(--color-line-cream);
    padding: 30px 0;
  }

  .welcome__feature:last-child {
    border-bottom: none;
  }
}

/* ═══════════════════════════════════════════════════════════════════════════
   QUOTE SECTION
   ═══════════════════════════════════════════════════════════════════════════ */

.quote-section {
  background: var(--color-navy);
  color: #fff;
  padding: 100px 0;
  text-align: center;
  position: relative;
  overflow: hidden;
}

/* Faint decorative background quote */
.quote-section__bg-quote {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 500px;
  height: 500px;
  color: rgba(255, 255, 255, 0.03);
  pointer-events: none;
  z-index: 0;
}

.quote-section__inner {
  max-width: 900px;
  margin: 0 auto;
  position: relative;
  z-index: 1;
  padding: 0 40px;
  display: flex;
  flex-direction: column;
  align-items: center;
}

/* Quote icon */
.quote-section__icon {
  margin-bottom: 30px;
}

.quote-section__icon svg {
  width: 50px;
  height: 50px;
  color: rgba(255, 255, 255, 0.25);
}

.quote-section .kicker {
  margin-bottom: 30px;
}

.quote-section__text {
  font-family: var(--font-heading);
  font-size: clamp(22px, 2.5vw, 30px);
  font-weight: var(--font-weight-regular);
  color: #fff;
  font-style: italic;
  border: none;
  padding: 0;
  margin: 0;
  text-align: center;
  max-width: 820px;
}

.quote-section__author {
  display: block;
  margin-top: 36px;
  font-weight: var(--font-weight-bold);
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--color-gold-bright);
  font-style: normal;
}

/* Quote Responsive */
@media (max-width: 768px) {
  .quote-section {
    padding: 70px 0;
  }

  .quote-section__icon svg {
    width: 40px;
    height: 40px;
  }

  .quote-section__inner {
    padding: 0 20px;
  }
}

/* ═══════════════════════════════════════════════════════════════════════════
   SERVICES - Editorial Bands
   ═══════════════════════════════════════════════════════════════════════════ */

.services,
.band {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: stretch;
  min-height: 600px;
  padding: 0;
  overflow: hidden;
}

.services--oncology,
.band--oncology {
  background: var(--color-bg-primary);
}

.services--hematology {
  background: var(--color-cream);
}

.band--hematology {
  background: var(--color-cream);
}

.band--hematology .band-copy {
  background: var(--color-cream);
}

/* Hematology layout - image on left, copy on right */
.band--hematology-layout {
  background: var(--color-bg-primary);
}

.band--hematology-layout .band-copy {
  background: var(--color-bg-primary);
}

.checklist--hematology {
  margin-bottom: 24px;
}

.services__inner {
  display: contents;
}

.services__content,
.band-copy {
  padding: 96px clamp(34px, 5.5vw, 90px);
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.band-copy .sec-no {
  font-weight: var(--font-weight-bold);
  color: var(--color-gold);
  letter-spacing: var(--letter-spacing-widest);
  text-transform: uppercase;
  margin-bottom: 14px;
}

.services__text,
.band-copy p {
  line-height: var(--line-height-relaxed);
  margin-bottom: 16px;
}

.band-copy .btn {
  margin-top: 16px;
  align-self: flex-start;
}

.services__image,
.band-media {
  position: relative;
  overflow: hidden;
  min-height: 440px;
}

.services__image img,
.band-media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Tags Row */
.tagrow {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin: 8px 0 26px;
}

.tag {
  font-weight: var(--font-weight-bold);
  color: var(--color-navy);
  background: var(--color-ice);
  padding: 7px 15px;
  border-radius: var(--border-radius-pill);
}

/* Checklist (oncology) */
.checklist {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px 24px;
  list-style: none;
  margin: 8px 0 26px;
  padding: 0;
}

.checklist li {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--color-navy);
  font-weight: var(--font-weight-semibold);
}

.checklist li svg {
  width: 18px;
  height: 18px;
  fill: var(--color-gold-bright);
  flex-shrink: 0;
}

/* Conditions Panel */
.condpanel {
  background: var(--color-navy);
  color: #fff;
  padding: 80px clamp(34px, 5vw, 70px);
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.condpanel .kicker {
  color: var(--color-gold-bright);
  margin-bottom: 14px;
}

.condpanel .kicker::before {
  color: var(--color-gold-bright);
}

.condpanel h3 {
  color: #fff;
  font-weight: var(--font-weight-medium);
  margin-bottom: 8px;
}

.condpanel .sub {
  color: #bccadb;
  margin-bottom: 30px;
}

.condlist {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px 24px;
  list-style: none;
}

.condlist li {
  display: flex;
  align-items: center;
  gap: 12px;
  color: #e7edf4;
  font-weight: var(--font-weight-semibold);
}

.condlist li svg {
  width: 20px;
  height: 20px;
  fill: var(--color-gold-bright);
  flex-shrink: 0;
}

/* ═══════════════════════════════════════════════════════════════════════════
   WHY US - Editorial Numbered List
   ═══════════════════════════════════════════════════════════════════════════ */

.difference,
.why {
  padding: var(--section-padding-y) 0;
  background: var(--color-bg-primary);
}

.difference__inner,
.why-wrap {
  max-width: var(--container-max-width);
  margin: 0 auto;
  padding: 0 var(--container-padding);
  display: grid;
  grid-template-columns: 0.82fr 1.18fr;
  gap: 64px;
  align-items: start;
}

/* Why Us - Sticky intro column */
.why-intro {
  position: sticky;
  top: 140px;
}

.why-intro .kicker {
  margin-bottom: 16px;
}

.why-intro .h-sec {
  margin-bottom: 20px;
}

.why-rating {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 22px;
  flex-wrap: wrap;
}

.why-rating__stars {
  display: inline-flex;
  gap: 2px;
}

.why-rating__stars svg {
  width: 20px;
  height: 20px;
  fill: var(--color-gold-bright);
  flex: none;
}

.why-rating__text {
  color: var(--color-charcoal);
  font-size: 15px;
  line-height: 1;
}

.why-rating__text strong {
  color: var(--color-ink);
  font-weight: var(--font-weight-bold);
}

.difference__subtitle {
  max-width: 620px;
  line-height: var(--line-height-relaxed);
  text-align: left;
  padding-bottom: 0;
  margin-bottom: 0;
}

.difference__grid,
.why-list {
  display: flex;
  flex-direction: column;
  margin-top: 10px;
}

.difference__card,
.wrow {
  display: flex;
  gap: 26px;
  padding: 30px 0;
  border-top: 1px solid var(--color-line);
  align-items: flex-start;
  background: transparent;
  border-radius: 0;
  box-shadow: none;
  text-align: left;
}

.difference__card:first-child,
.wrow:first-child {
  padding-top: 0;
  border-top: none;
}

.difference__number,
.wrow .num {
  font-family: var(--font-heading);
  font-size: 42px;
  font-weight: var(--font-weight-semibold);
  color: var(--color-gold-soft);
  line-height: 1;
  -webkit-text-stroke: 1px var(--color-gold);
  flex-shrink: 0;
  min-width: 56px;
}

.difference__title,
.wrow h3 {
  font-weight: var(--font-weight-medium);
  margin-bottom: 8px;
  color: var(--color-ink);
}

.difference__text,
.wrow p {
  margin: 0;
}

/* ═══════════════════════════════════════════════════════════════════════════
   ABOUT SECTION
   ═══════════════════════════════════════════════════════════════════════════ */

.about {
  padding: var(--section-padding-y) 0;
  background: var(--color-cream);
}

.about__inner,
.about-grid {
  max-width: var(--container-max-width);
  margin: 0 auto;
  padding: 0 var(--container-padding);
  display: grid;
  grid-template-columns: 1.06fr 1fr;
  gap: 64px;
  align-items: center;
}

.about-content .kicker {
  margin-bottom: 16px;
}

.about-content .h-sec {
  margin-bottom: 24px;
}

.about-content p {
  line-height: var(--line-height-relaxed);
  margin-bottom: 18px;
}

.about-content .btn {
  margin-top: 12px;
}

.about-media {
  position: relative;
}

.about-media img {
  width: 100%;
  border-radius: var(--border-radius-xl);
  box-shadow: var(--shadow-md);
}

.about-chip {
  position: absolute;
  left: -24px;
  bottom: -24px;
  background: #fff;
  border-radius: 16px;
  box-shadow: var(--shadow-lg);
  padding: 22px 28px;
  border-left: 5px solid var(--color-gold);
}

.about-chip b {
  font-family: var(--font-heading);
  font-weight: var(--font-weight-medium);
  color: var(--color-navy);
  display: block;
  line-height: 1;
  margin-bottom: 4px;
}

.about-chip span {
  font-weight: var(--font-weight-semibold);
}

/* ═══════════════════════════════════════════════════════════════════════════
   INSURANCE SECTION
   ═══════════════════════════════════════════════════════════════════════════ */

.insurance,
.ins {
  padding: 96px 0;
  background: var(--color-bg-primary);
}

.insurance__inner {
  max-width: var(--container-max-width);
  margin: 0 auto;
  padding: 0 var(--container-padding);
  text-align: center;
}

.insurance__subtitle {
  max-width: 700px;
  margin: 0 auto var(--spacing-xl);
  line-height: var(--line-height-relaxed);
}

.insurance__carousel-wrap,
.cwrap {
  position: relative;
  margin-top: 50px;
  padding: 0 52px;
}

.insurance__carousel,
.ins-track {
  display: flex;
  gap: 18px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  padding: 4px;
}

.insurance__carousel::-webkit-scrollbar,
.ins-track::-webkit-scrollbar {
  display: none;
}

.insurance__item,
.ins-item {
  flex: 0 0 auto;
  background: none;
  border: none;
  border-radius: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  scroll-snap-align: start;
  padding: 12px 24px;
  transition: opacity 0.2s;
}

.insurance__item:hover,
.ins-item:hover {
  opacity: 0.6;
}

.insurance__name,
.ins-item span {
  font-weight: var(--font-weight-extrabold);
  text-align: center;
  line-height: 1;
  white-space: nowrap;
}

.insurance__carousel-btn,
.cbtn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: #fff;
  border: 1px solid var(--color-line);
  color: var(--color-navy);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: var(--shadow-sm);
  transition: background 0.2s, color 0.2s, border-color 0.2s;
  z-index: 5;
}

.insurance__carousel-btn:hover,
.cbtn:hover {
  background: var(--color-navy);
  color: #fff;
  border-color: var(--color-navy);
}

.insurance__carousel-btn--prev,
.cbtn.prev {
  left: 0;
}

.insurance__carousel-btn--next,
.cbtn.next {
  right: 0;
}

.insurance__footer,
.ins-note {
  text-align: center;
  margin-top: 28px;
}

.insurance__footer a,
.ins-note a {
  color: var(--color-gold);
  font-weight: var(--font-weight-extrabold);
  text-decoration: none;
}

/* Logo Grid */
.logo-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 20px;
  margin-top: 50px;
}

.logo-grid__item {
  background: #fff;
  border-radius: 12px;
  padding: 24px 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 90px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

.logo-grid__item img {
  max-width: 100%;
  max-height: 50px;
  object-fit: contain;
}

/* Physician Logos Section */
.physician-logos {
  margin-top: 80px;
  padding: 70px 0 0;
}

.physician-logos__title {
  display: block;
  text-align: center;
  font-weight: var(--font-weight-bold);
  letter-spacing: var(--letter-spacing-widest);
  text-transform: uppercase;
  color: var(--color-charcoal);
  margin-bottom: 40px;
}

.logo-grid--physicians {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 20px;
}

.logo-grid--physicians .logo-grid__item {
  flex: 0 0 calc(25% - 15px);
  max-width: calc(25% - 15px);
}

@media (max-width: 1024px) {
  .logo-grid {
    grid-template-columns: repeat(3, 1fr);
  }

  .logo-grid--physicians .logo-grid__item {
    flex: 0 0 calc(33.333% - 14px);
    max-width: calc(33.333% - 14px);
  }
}

@media (max-width: 768px) {
  .logo-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
  }

  .logo-grid--physicians {
    gap: 12px;
  }

  .logo-grid--physicians .logo-grid__item {
    flex: 0 0 calc(50% - 6px);
    max-width: calc(50% - 6px);
  }

  .logo-grid__item {
    padding: 20px 16px;
    min-height: 70px;
  }

  .logo-grid__item img {
    max-height: 40px;
  }

  .physician-logos {
    margin-top: 50px;
    padding-top: 40px;
  }
}

/* ═══════════════════════════════════════════════════════════════════════════
   PROVIDERS SECTION - Stacking Cards
   ═══════════════════════════════════════════════════════════════════════════ */

.providers,
.prov {
  padding: var(--section-padding-y) 0;
  background: var(--color-cream);
}

.providers__inner {
  max-width: var(--container-max-width);
  margin: 0 auto;
  padding: 0 var(--container-padding);
  text-align: center;
}

.providers__grid,
.prov-grid {
  display: flex;
  flex-direction: column;
  gap: 40px;
  max-width: 940px;
  margin: 58px auto 0;
}

.provider-card,
.pcard {
  position: sticky;
  display: grid;
  grid-template-columns: 320px 1fr;
  gap: 40px;
  align-items: stretch;
  background: #fff;
  border: 1px solid var(--color-line-cream);
  border-radius: var(--border-radius-xl);
  overflow: hidden;
  box-shadow: var(--shadow-md);
  transition: box-shadow 0.22s;
  text-align: left;
  max-width: 1100px;
  margin: 0 auto;
}

.provider-card:nth-child(1),
.pcard:nth-child(1) {
  top: 106px;
}

.provider-card:nth-child(2),
.pcard:nth-child(2) {
  top: 126px;
}

.provider-card:nth-child(3),
.pcard:nth-child(3) {
  top: 146px;
}

.provider-card:hover,
.pcard:hover {
  box-shadow: var(--shadow-lg);
}

.provider-card__image,
.pcard .photo {
  aspect-ratio: auto;
  height: 100%;
  min-height: 280px;
  overflow: hidden;
  background: var(--color-ice);
}

.provider-card__image,
.pcard .photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}

.provider-info,
.pcard .info {
  padding: 36px 44px 36px 0;
  align-self: center;
  text-align: left;
}

.provider-info h3,
.pcard h3 {
  font-weight: var(--font-weight-medium);
  margin-bottom: 4px;
}

.specialty,
.pcard .spec {
  font-weight: var(--font-weight-extrabold);
  letter-spacing: var(--letter-spacing-wide);
  text-transform: uppercase;
  color: var(--color-gold);
  margin-bottom: 15px;
}

.provider-info p,
.pcard p {
  margin-bottom: 18px;
}

/* ═══════════════════════════════════════════════════════════════════════════
   CREDENTIALS SECTION
   ═══════════════════════════════════════════════════════════════════════════ */

.credentials,
.creds {
  background: var(--color-cream);
  padding: 0 0 80px;
}

.credentials__inner {
  max-width: var(--container-max-width);
  margin: 0 auto;
  padding: 0 var(--container-padding);
}

.credentials .lab,
.creds .lab {
  text-align: center;
  font-weight: var(--font-weight-extrabold);
  letter-spacing: var(--letter-spacing-wider);
  text-transform: uppercase;
  margin-bottom: 28px;
}

.credentials__grid,
.cred-track {
  display: flex;
  gap: 16px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  padding: 4px;
}

.cred-track::-webkit-scrollbar {
  display: none;
}

.credential-item,
.cred-item {
  flex: 0 0 auto;
  background: none;
  border: none;
  border-radius: 0;
  padding: 10px 22px;
  text-align: left;
  scroll-snap-align: start;
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 12px;
}

.credential-item .seal,
.cred-item .seal {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-heading);
  font-weight: var(--font-weight-bold);
  color: #fff;
}

.credential-item span,
.cred-item span {
  font-weight: var(--font-weight-extrabold);
  color: var(--color-ink);
  line-height: 1.35;
}

/* ═══════════════════════════════════════════════════════════════════════════
   AWARDS SECTION
   ═══════════════════════════════════════════════════════════════════════════ */

.awards {
  padding: var(--section-padding-y) 0;
  background: #fff;
  border-top: 1px solid var(--color-line-cream);
  position: relative;
  overflow: hidden;
}

.awards__inner {
  max-width: var(--container-max-width);
  margin: 0 auto;
  padding: 0 var(--container-padding);
  text-align: center;
}

.awards .section-eyebrow,
.awards .kicker {
  display: flex;
  justify-content: center;
  width: 100%;
  color: var(--color-gold);
}

.awards .section-eyebrow::before,
.awards .kicker::before {
  color: var(--color-gold);
}

.awards .section-title,
.awards .h-sec {
  color: var(--color-ink);
}

.awards__subtitle,
.awards .lead {
  color: var(--color-body);
  margin: 0 auto;
}

.awards__carousel-wrap {
  position: relative;
  margin-top: 48px;
  padding: 0 28px;
}

.awards__carousel,
.award-track {
  display: flex;
  gap: 22px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  padding: 4px;
}

.awards__carousel::-webkit-scrollbar,
.award-track::-webkit-scrollbar {
  display: none;
}

.awards__card,
.acard {
  flex: 0 0 auto;
  width: 332px;
  background: none;
  border: none;
  border-left: 2px solid var(--color-gold-soft);
  border-radius: 0;
  padding: 8px 0 8px 28px;
  scroll-snap-align: start;
  text-align: left;
  display: flex;
  flex-direction: column;
}

.awards__logo,
.abadge-logo {
  display: inline-flex;
  align-items: center;
  height: 56px;
  margin-bottom: 20px;
}

.awards__logo img,
.abadge-logo img {
  max-height: 56px;
  max-width: 184px;
  width: auto;
  object-fit: contain;
  opacity: 0.92;
  transition: opacity 0.2s ease;
}

.awards__logo:hover img,
.abadge-logo:hover img {
  opacity: 1;
}

.awards__title,
.acard h4 {
  font-family: var(--font-heading);
  font-weight: var(--font-weight-medium);
  color: var(--color-ink);
  margin-bottom: 10px;
  line-height: 1.3;
}

.awards__text,
.acard p {
  color: var(--color-body);
  margin-bottom: 0;
}

.awards__year {
  display: inline-block;
  font-weight: var(--font-weight-semibold);
  color: var(--color-gold);
  margin-top: auto;
  padding-top: 12px;
}

/* Mobile: award cards show only the logo + date */
@media (max-width: 768px) {
  .awards__title,
  .awards__text {
    display: none;
  }
  .awards__year {
    padding-top: 0;
  }
}

/* Carousel Navigation Buttons */
.cbtn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: #fff;
  border: 1px solid var(--color-line);
  color: var(--color-navy);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: var(--shadow-sm);
  transition: all 0.2s ease;
  z-index: 5;
}

.cbtn:hover {
  background: var(--color-navy);
  color: #fff;
  border-color: var(--color-navy);
}

.cbtn.prev {
  left: 0;
}

.cbtn.next {
  right: 0;
}

/* Awards section specific button styling (light theme) */
.awards .cbtn {
  background: #fff;
  border-color: var(--color-line-cream);
  color: var(--color-ink);
}

.awards .cbtn:hover {
  background: var(--color-gold);
  border-color: var(--color-gold);
  color: #fff;
}

/* ═══════════════════════════════════════════════════════════════════════════
   TESTIMONIALS SECTION
   ═══════════════════════════════════════════════════════════════════════════ */

.testimonials {
  padding: var(--section-padding-y) 0;
  background: var(--color-cream);
}

.testimonials__inner {
  max-width: var(--container-max-width);
  margin: 0 auto;
  padding: 0 var(--container-padding);
  text-align: center;
}

.testimonials__carousel {
  display: flex;
  gap: var(--spacing-lg);
  overflow-x: auto;
  scroll-behavior: smooth;
  padding: var(--spacing-lg) 0;
  -webkit-overflow-scrolling: touch;
}

.testimonials__carousel::-webkit-scrollbar {
  display: none;
}

.testimonials__viewport {
  position: relative;
}

.testimonials__nav {
  display: flex;
  justify-content: center;
  gap: var(--spacing-md);
  margin-top: var(--spacing-lg);
}

.testimonials__nav-btn {
  width: 44px;
  height: 44px;
  border: 2px solid var(--color-line);
  border-radius: var(--border-radius-pill);
  background: var(--color-white);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all var(--transition-base);
}

.testimonials__nav-btn:hover {
  border-color: var(--color-gold);
  color: var(--color-gold);
}

/* Testimonial Cards */
.testimonial-card {
  flex: 0 0 calc(33.333% - 20px);
  min-width: 300px;
  text-align: left;
  padding: 10px 0;
  display: flex;
  flex-direction: column;
}

.testimonial-card__stars {
  color: var(--color-gold);
  letter-spacing: 2px;
  margin-bottom: 20px;
}

.testimonial-card__quote {
  color: var(--color-charcoal);
  margin-bottom: 24px;
}

.testimonial-card__footer {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: auto;
}

.testimonial-card__avatar {
  width: 46px;
  height: 46px;
  background: var(--color-navy);
  color: #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: var(--font-weight-semibold);
}

.testimonial-card__info {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.testimonial-card__author {
  font-weight: var(--font-weight-bold);
  color: var(--color-navy);
}

.testimonial-card__source {
  font-weight: var(--font-weight-bold);
  letter-spacing: 1px;
  text-transform: uppercase;
}

/* Testimonials header subtitle + rating summary */
.testimonials__subtitle {
  max-width: 620px;
  margin: 18px auto 0;
  color: var(--color-body);
  font-size: 18px;
  line-height: 1.6;
}

.testimonials__rating {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  margin-top: 26px;
}

.testimonials__rating-row {
  display: flex;
  align-items: center;
  gap: 14px;
}

.testimonials__rating-score {
  font-family: var(--font-heading);
  color: var(--color-ink);
  line-height: 1;
}

.testimonials__rating-score strong {
  font-size: 34px;
  font-weight: var(--font-weight-medium);
}

.testimonials__rating-max {
  font-size: 20px;
  color: var(--color-muted, #677583);
}

.testimonials__rating-stars {
  color: var(--color-gold);
  font-size: 22px;
  letter-spacing: 3px;
}

.testimonials__rating-count {
  font-weight: var(--font-weight-semibold);
  color: var(--color-muted, #677583);
}

@media (max-width: 768px) {
  /* Inset the cards so their text clears the side arrows */
  .testimonials__carousel {
    padding-left: 52px;
    padding-right: 52px;
  }

  .testimonial-card {
    flex: 0 0 100%;
    min-width: 0;
  }

  /* Keep the header (title, subtitle, stars) centered on mobile */
  .testimonials__inner > .text-center {
    text-align: center;
  }

  .testimonials__subtitle {
    margin-left: auto;
    margin-right: auto;
  }

  /* Move the carousel arrows to the sides, flanking the cards */
  .testimonials__nav {
    position: absolute;
    inset: 0;
    margin: 0;
    align-items: center;
    justify-content: space-between;
    pointer-events: none;
    z-index: 4;
  }

  .testimonials__nav-btn {
    pointer-events: auto;
    background: rgba(255, 255, 255, 0.94);
    box-shadow: var(--shadow-md);
  }
}

/* Testimonials Dark Variant (for About page) */
.testimonials--dark {
  background: var(--color-navy);
}

.testimonials--dark .section-eyebrow {
  display: flex;
  justify-content: center;
  width: 100%;
  color: var(--color-gold);
}

.testimonials--dark .section-eyebrow::before {
  color: var(--color-gold);
}

.testimonials--dark .section-title {
  color: #fff;
}

.testimonials--dark .testimonial-card__quote {
  color: rgba(255, 255, 255, 0.9);
}

.testimonials--dark .testimonial-card__avatar {
  background: var(--color-gold);
  color: var(--color-navy);
}

.testimonials--dark .testimonial-card__author {
  color: #fff;
}

.testimonials--dark .testimonial-card__source {
  color: rgba(255, 255, 255, 0.6);
}

.testimonials--dark .testimonials__nav-btn {
  background: transparent;
  border-color: rgba(255, 255, 255, 0.3);
  color: #fff;
}

.testimonials--dark .testimonials__nav-btn:hover {
  border-color: var(--color-gold);
  color: var(--color-gold);
}

/* ═══════════════════════════════════════════════════════════════════════════
   BLOG SECTION
   ═══════════════════════════════════════════════════════════════════════════ */

.blog {
  background: #fff;
}

.blog__inner {
  max-width: var(--container-max-width);
  margin: 0 auto;
  padding: 0 var(--container-padding);
  text-align: center;
}

.blog__subtitle {
  max-width: 600px;
  margin: 0 auto;
  line-height: var(--line-height-relaxed);
}

.blog__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
  margin-top: 48px;
}

.blog-card {
  background: var(--color-cream);
  border: 1px solid var(--color-line);
  border-radius: var(--border-radius-lg);
  overflow: hidden;
  text-align: left;
  transition: box-shadow 0.2s, transform 0.2s;
  display: flex;
  flex-direction: column;
}

.blog-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.09);
}

.blog-card__thumb {
  height: 200px;
  overflow: hidden;
}

.blog-card__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s;
}

.blog-card:hover .blog-card__thumb img {
  transform: scale(1.04);
}

.blog-card__body {
  padding: 22px 20px;
  display: flex;
  flex-direction: column;
  flex: 1;
}

.blog-card__tag {
  display: inline-block;
  background: rgba(78, 111, 82, 0.12);
  color: var(--color-navy-600);
  font-weight: var(--font-weight-semibold);
  letter-spacing: var(--letter-spacing-wide);
  text-transform: uppercase;
  padding: 4px 12px;
  border-radius: 20px;
  margin-bottom: 10px;
}

.blog-card__title {
  font-family: var(--font-heading);
  color: var(--color-ink);
  margin-bottom: 8px;
  line-height: 1.3;
}

.blog-card__excerpt {
}

.blog-card__meta {
  margin-top: auto;
  padding-top: 14px;
}

.blog__more {
  text-align: center;
  margin-top: 36px;
}

/* ═══════════════════════════════════════════════════════════════════════════
   CONTACT FORM SECTION
   ═══════════════════════════════════════════════════════════════════════════ */

.contact-form-section {
  padding: var(--section-padding-y) 0;
  background: var(--color-cream);
}

.contact-form-section .container {
  max-width: var(--container-max-width);
  margin: 0 auto;
  padding: 0 var(--container-padding);
}

.form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: start;
}

.form-info h2 {
  color: var(--color-ink);
  margin-bottom: 12px;
}

.form-info p {
  margin-bottom: 24px;
}

.form-contact-items {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.form-contact-item {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  padding: 16px 0;
  border-bottom: 1px solid var(--color-line);
}

.form-contact-item:last-child {
  border-bottom: none;
}

.contact-icon {
  width: auto;
  height: auto;
  background: none;
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.contact-icon svg {
  width: 28px;
  height: 28px;
  fill: var(--color-gold);
}

.contact-detail h5 {
  font-weight: var(--font-weight-bold);
  color: var(--color-navy);
  margin-bottom: 1px;
}

.contact-detail p {
  margin: 0;
}

.contact-detail a {
  color: var(--color-navy);
  font-weight: var(--font-weight-regular);
  text-decoration: none;
}

.contact-detail a:hover {
  text-decoration: underline;
}

.appointment-form {
  background: #fff;
  border-radius: var(--border-radius-lg);
  padding: 36px 32px;
  border: 1px solid var(--color-line);
  box-shadow: var(--shadow-md);
}

.appointment-form h3 {
  color: var(--color-ink);
  margin-bottom: 24px;
}

.form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

.form-group {
  margin-bottom: 16px;
}

.form-group label {
  display: block;
  font-weight: var(--font-weight-semibold);
  color: var(--color-ink);
  margin-bottom: 6px;
  letter-spacing: 0.3px;
}

.form-group input,
.form-group select,
.form-group textarea {
  width: 100%;
  padding: 10px 14px;
  border: 1.5px solid var(--color-line);
  border-radius: 6px;
  color: var(--color-ink);
  background: #fff;
  transition: border-color 0.2s, box-shadow 0.2s;
  outline: none;
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
  border-color: var(--color-gold);
  box-shadow: 0 0 0 3px rgba(168, 110, 22, 0.08);
}

.form-group textarea {
  resize: vertical;
  min-height: 90px;
}

.form-consent {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 20px;
  padding: 14px 16px;
  background: var(--color-cream);
  border: 1px solid var(--color-line);
  border-radius: 6px;
}

.form-consent input[type="checkbox"] {
  margin-top: 2px;
  min-width: 16px;
  height: 16px;
  flex-shrink: 0;
  accent-color: var(--color-gold);
  cursor: pointer;
}

.form-consent label {
  cursor: pointer;
}

.form-submit {
  width: 100%;
  padding: 13px;
  background: var(--color-gold);
  color: #fff;
  border: none;
  border-radius: var(--border-radius-pill);
  font-weight: var(--font-weight-bold);
  cursor: pointer;
  transition: background 0.2s, transform 0.15s;
  letter-spacing: 0.5px;
}

.form-submit:hover {
  background: var(--color-gold-dark);
  transform: translateY(-2px);
}

.form-note {
  text-align: center;
  margin-top: 12px;
}

/* ── Contact Form 7 compatibility (shared by the homepage contact section
   `.appointment-form` and the Contact page `.form-wrap`) ── */
.appointment-form .wpcf7-form-control-wrap,
.form-wrap .wpcf7-form-control-wrap {
  display: block;
}

/* CF7's wpautop wraps each field in a <p> and adds a <br> after the label —
   drop the <br> and the extra <p> margin so the label sits on the field. */
.appointment-form .wpcf7-form br,
.form-wrap .wpcf7-form br {
  display: none;
}

.appointment-form .form-group p,
.form-wrap .form-group p {
  margin: 0;
}

/* Shorter message box */
.appointment-form textarea,
.form-wrap .wpcf7-form textarea,
.form-wrap textarea.wpcf7-form-control {
  min-height: 64px;
  height: 64px;
}

/* Hidden spinner shouldn't reserve horizontal space */
.appointment-form .wpcf7-spinner,
.form-wrap .wpcf7-spinner {
  display: none;
}

/* Plain-text consent line (no checkbox, no frame) */
.appointment-form .form-disclaimer,
.form-wrap .form-disclaimer {
  margin-bottom: 20px;
  color: var(--color-muted, #677583);
  font-size: 15px;
  line-height: 1.5;
}

/* CF7 submit inherits the gold pill button */
.appointment-form .wpcf7-submit,
.form-wrap .wpcf7-submit {
  width: 100%;
  padding: 13px;
  background: var(--color-gold);
  color: #fff;
  border: none;
  border-radius: var(--border-radius-pill);
  font-weight: var(--font-weight-bold);
  cursor: pointer;
  transition: background 0.2s, transform 0.15s;
  letter-spacing: 0.5px;
}

.appointment-form .wpcf7-submit:hover,
.form-wrap .wpcf7-submit:hover {
  background: var(--color-gold-dark);
  transform: translateY(-2px);
}

/* CF7 validation + response messages */
.appointment-form .wpcf7-not-valid-tip,
.form-wrap .wpcf7-not-valid-tip {
  color: #c0392b;
  font-size: 13.5px;
  margin-top: 5px;
}

.appointment-form .wpcf7-response-output,
.form-wrap .wpcf7-response-output {
  margin: 18px 0 0;
  padding: 12px 16px;
  border-radius: 6px;
  font-size: 15px;
}

.appointment-form .wpcf7-form.invalid .wpcf7-response-output,
.appointment-form .wpcf7-form.unaccepted .wpcf7-response-output,
.form-wrap .wpcf7-form.invalid .wpcf7-response-output,
.form-wrap .wpcf7-form.unaccepted .wpcf7-response-output {
  border-color: #c0392b;
  color: #c0392b;
}

/* ═══════════════════════════════════════════════════════════════════════════
   MAP / LOCATIONS SECTION
   ═══════════════════════════════════════════════════════════════════════════ */

/* Locations Section */
.locations {
  padding: 90px 0;
  background: #fff;
}

.locations__header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 60px;
  margin-bottom: 50px;
}

.locations__header-left {
  flex: 1;
}

.locations__header-left .h-sec {
  margin-bottom: 0;
}

.locations__header-right {
  flex: 1;
  max-width: 480px;
}

.locations__header-right p {
  margin: 0;
}

.locations__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 30px;
}

.location-card {
  border-radius: var(--border-radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-md);
  display: flex;
  flex-direction: column;
}

.location-card__map {
  height: 300px;
  background: var(--color-line);
}

.location-card__map iframe {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

.location-card__footer {
  background: var(--color-navy);
  padding: 30px 35px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}

.location-card__info {
  flex: 1;
}

.location-card__num {
  display: block;
  font-family: var(--font-heading);
  font-weight: var(--font-weight-semibold);
  color: var(--color-gold);
  margin-bottom: 6px;
}

.location-card h3 {
  font-weight: var(--font-weight-medium);
  color: #fff;
  margin: 0;
}

.location-card__image {
  width: 180px;
  height: 120px;
  flex-shrink: 0;
  border-radius: var(--border-radius-md);
  overflow: hidden;
}

.location-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media (max-width: 900px) {
  .locations__grid {
    grid-template-columns: 1fr;
    gap: 30px;
  }
}

@media (max-width: 768px) {
  .locations__header {
    flex-direction: column;
    gap: 20px;
  }

  .locations__header-right {
    max-width: 100%;
  }

  .location-card__map {
    height: 240px;
    order: 1; /* Move the map below the location info on mobile */
  }

  .location-card__footer {
    padding: 24px;
    flex-direction: column;
    align-items: flex-start;
  }

  .location-card__image {
    width: 100%;
    height: 140px;
  }
}

/* ═══════════════════════════════════════════════════════════════════════════
   CTA SECTION
   ═══════════════════════════════════════════════════════════════════════════ */

.cta {
  background: linear-gradient(120deg, var(--color-cream), var(--color-gold-soft));
  padding: 100px 0;
  text-align: center;
  position: relative;
  overflow: hidden;
  border-top: 1px solid var(--color-line-cream);
}

.cta::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(680px 420px at 82% -10%, rgba(168, 110, 22, 0.12), transparent 60%);
  pointer-events: none;
}

.cta h2 {
  color: var(--color-ink);
  font-family: var(--font-heading);
  font-size: clamp(33px, 4.2vw, 50px);
  font-weight: 500;
  margin-bottom: 16px;
  position: relative;
}

.cta p {
  max-width: 660px;
  margin: 0 auto 34px;
  position: relative;
  line-height: 1.65;
}

.cta-btns {
  display: flex;
  gap: 14px;
  justify-content: center;
  flex-wrap: wrap;
  position: relative;
}

/* Dark outline button for CTA */
.btn-outline-dark {
  background: transparent;
  color: var(--color-navy);
  border: 2px solid var(--color-navy);
  padding: 14px 30px;
  font-weight: var(--font-weight-bold);
  letter-spacing: 0.3px;
  border-radius: var(--border-radius-pill);
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  transition: all var(--transition-base);
}

.btn-outline-dark:hover {
  background: var(--color-navy);
  color: var(--color-white);
}

/* ═══════════════════════════════════════════════════════════════════════════
   RESPONSIVE
   ═══════════════════════════════════════════════════════════════════════════ */

@media (max-width: 992px) {
  .hero-stats-inner {
    grid-template-columns: repeat(2, 1fr);
  }

  .stat-item {
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  }

  .stat-item:nth-child(odd) {
    border-left: none;
  }

  .welcome__top,
  .about__inner,
  .about-grid,
  .services,
  .form-grid {
    grid-template-columns: 1fr;
  }

  .about-chip {
    left: 16px;
    bottom: -20px;
    padding: 16px 20px;
  }

  .about-media {
    margin-bottom: 40px;
  }

  .difference__inner,
  .why-wrap {
    grid-template-columns: 1fr;
    gap: 40px;
  }

  .why-intro {
    position: static;
  }

  .provider-card,
  .pcard {
    grid-template-columns: 1fr;
    /* Drop the scroll "stack" effect once the cards are single-column. */
    position: static;
    top: auto;
  }

  .provider-card__image,
  .pcard .photo {
    min-height: 300px;
  }

  /* When stacked, the copy needs padding on both sides (desktop has left:0) */
  .provider-info,
  .pcard .info {
    padding: 32px 28px;
  }

  .blog__grid {
    grid-template-columns: repeat(2, 1fr);
  }

}

@media (max-width: 768px) {
  .hero-stats-inner {
    grid-template-columns: 1fr;
  }

  .stat-item {
    border-left: none;
    padding: 20px 0;
  }

  .services__content,
  .band-copy {
    padding: 60px 24px;
  }

  .services__image,
  .band-media {
    min-height: 300px;
  }

  .difference__card,
  .wrow {
    flex-direction: column;
    gap: 16px;
  }

  .difference__number,
  .wrow .num {
    font-size: 36px;
  }

  .welcome__features,
  .welcome-feats {
    flex-direction: column;
  }

  .welcome__feature,
  .wfeat {
    border-right: none;
    border-bottom: 1px solid var(--color-line-cream);
    padding: 24px 0;
  }

  .welcome__feature:last-child,
  .wfeat:last-child {
    border-bottom: none;
  }

  .blog__grid,
  .condlist,
  .checklist {
    grid-template-columns: 1fr;
  }

  .condpanel {
    padding: 50px 24px;
  }

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

  .awards__card,
  .acard {
    width: 280px;
  }
}

/* ═══════════════════════════════════════════════════════════════════════════
   SERVICE PAGE TEMPLATE
   ═══════════════════════════════════════════════════════════════════════════ */

/* Service Hero */
.service-hero {
  background: var(--color-navy-700);
  color: #fff;
  position: relative;
  overflow: hidden;
}

/* Golden decorative gradient at bottom of hero */
.service-hero::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 120px;
  background: linear-gradient(
    to top,
    rgba(212, 175, 55, 0.15) 0%,
    rgba(212, 175, 55, 0.08) 30%,
    transparent 100%
  );
  pointer-events: none;
}

/* Golden sun glow on right side */
.service-hero::before {
  content: "";
  position: absolute;
  right: -100px;
  top: 50%;
  transform: translateY(-50%);
  width: 400px;
  height: 400px;
  border-radius: 50%;
  background: radial-gradient(
    circle,
    rgba(212, 175, 55, 0.12) 0%,
    rgba(212, 175, 55, 0.05) 40%,
    transparent 70%
  );
  pointer-events: none;
}

.service-hero__band {
  max-width: var(--container-max-width);
  width: 100%;
  margin: 0 auto;
  padding: 54px var(--container-padding) 58px;
  position: relative;
  z-index: 1;
}

.service-hero__content {
  position: relative;
  z-index: 1;
}

.breadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  letter-spacing: 0.4px;
  color: rgba(255, 255, 255, 0.7);
  margin-bottom: 18px;
}

.breadcrumb a,
.breadcrumb .current {
  white-space: nowrap;
}

.breadcrumb a {
  color: rgba(255, 255, 255, 0.7);
  text-decoration: none;
  transition: color var(--transition-base);
}

.breadcrumb a:hover {
  color: #fff;
}

.breadcrumb .sep {
  color: rgba(255, 255, 255, 0.45);
}

.breadcrumb .current {
  color: var(--color-gold);
}

/* Hero eyebrow - extends .section-eyebrow with tighter margin */
.hero-eyebrow {
  margin-bottom: 14px;
}

.service-hero h1 {
  font-size: clamp(34px, 5vw, 56px);
  font-weight: var(--font-weight-bold);
  color: #fff;
  line-height: 1.1;
  margin-bottom: 14px;
}

.hero-sub {
  color: rgba(255, 255, 255, 0.9);
  font-size: 21px;
}

/* ═══════════════════════════════════════════════════════════════════════════
   ACCEPTED INSURANCE PAGE
   ═══════════════════════════════════════════════════════════════════════════ */

.acins {
  padding: 80px 0 96px;
}

.acins-head {
  margin-bottom: 42px;
}

.acins-head h2 {
  font-family: var(--font-heading);
  font-size: clamp(28px, 3.4vw, 42px);
  font-weight: 500;
  letter-spacing: -0.4px;
  color: var(--color-ink);
}

.acins-head p {
  font-size: 18px;
  color: var(--color-charcoal);
  line-height: 1.7;
  margin-top: 16px;
}

.acins-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}

.acins-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  background: #fff;
  border: 1px solid var(--color-border);
  border-radius: 13px;
  padding: 22px 26px;
  text-decoration: none;
  transition: transform 0.16s, border-color 0.16s, background 0.16s, box-shadow 0.16s;
}

.acins-card:hover {
  border-color: var(--color-gold);
  background: var(--color-cream);
  transform: translateY(-3px);
  box-shadow: 0 1px 3px rgba(20, 32, 46, 0.07);
}

.acins-card .nm {
  font-family: var(--font-heading);
  font-size: 19px;
  font-weight: 500;
  color: var(--color-ink);
  line-height: 1.25;
}

.acins-card .logo {
  display: flex;
  align-items: center;
  min-height: 34px;
}

.acins-card .logo img {
  max-height: 34px;
  max-width: 160px;
  width: auto;
  height: auto;
  display: block;
}

.acins-card .ext {
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  color: var(--color-border-warm);
  transition: color 0.16s, transform 0.16s;
}

.acins-card .ext svg {
  width: 18px;
  height: 18px;
  stroke: currentColor;
  fill: none;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  display: block;
}

.acins-card:hover .nm {
  color: var(--color-gold);
}

.acins-card:hover .ext {
  color: var(--color-gold);
  transform: translate(2px, -2px);
}

.acins-note {
  margin-top: 34px;
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  background: var(--color-cream);
  border: 1px solid var(--color-border-warm);
  border-radius: 16px;
  padding: 24px 28px;
}

.acins-note svg {
  width: 26px;
  height: 26px;
  fill: var(--color-gold);
  flex-shrink: 0;
}

.acins-note p {
  font-size: 16.5px;
  color: var(--color-charcoal);
  line-height: 1.5;
  margin: 0;
}

.acins-note a {
  color: var(--color-navy);
  font-weight: 800;
  text-decoration: none;
}

.acins-note a:hover {
  color: var(--color-gold);
}

@media (max-width: 1080px) {
  .acins-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 760px) {
  .acins {
    padding: 56px 0 72px;
  }
  .acins-grid {
    grid-template-columns: 1fr;
  }
}

/* ═══════════════════════════════════════════════════════════════════════════
   SITE CONTENTS / SITE MAP PAGE
   ═══════════════════════════════════════════════════════════════════════════ */

.sitemap {
  padding: 84px 0 100px;
}

.sitemap-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 26px;
  align-items: start;
}

.sitemap-col {
  display: flex;
  flex-direction: column;
  gap: 26px;
}

.sitemap-group {
  background: #fff;
  border: 1px solid var(--color-border);
  border-radius: 16px;
  padding: 30px 30px 26px;
}

.sitemap-group h2 {
  display: flex;
  align-items: center;
  gap: 12px;
  font-family: var(--font-heading);
  font-size: 24px;
  font-weight: 500;
  color: var(--color-ink);
  padding-bottom: 16px;
  margin-bottom: 14px;
  border-bottom: 1px solid var(--color-border);
}

.sitemap-group h2 a {
  color: var(--color-ink);
  text-decoration: none;
  transition: color 0.16s;
}

.sitemap-group h2 a:hover {
  color: var(--color-gold);
}

.sitemap-ic {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  background: var(--color-gold-soft);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.sitemap-ic svg {
  width: 20px;
  height: 20px;
  stroke: var(--color-gold);
  fill: none;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.sitemap-group ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
}

.sitemap-group li a {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 2px;
  font-size: 16px;
  font-weight: 600;
  color: var(--color-charcoal);
  text-decoration: none;
  border-radius: 8px;
  transition: color 0.16s;
}

.sitemap-group li a::before {
  content: "";
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--color-gold);
  flex-shrink: 0;
  opacity: 0.55;
  transition: opacity 0.16s;
}

.sitemap-group li a:hover {
  color: var(--color-navy);
}

.sitemap-group li a:hover::before {
  opacity: 1;
}

.sitemap-group li .sitemap-sub {
  padding-left: 26px;
  font-weight: 500;
  font-size: 15px;
}

.sitemap-ext {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.8px;
  text-transform: uppercase;
  color: var(--color-muted);
  margin-left: auto;
}

.sitemap-group--two ul {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 18px;
  grid-auto-flow: column;
  grid-template-rows: repeat(10, auto);
  align-items: center;
}

.sitemap-group--two li a {
  white-space: nowrap;
}

@media (max-width: 1080px) {
  .sitemap-grid {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 760px) {
  .sitemap {
    padding: 56px 0 72px;
  }
  .sitemap-grid {
    grid-template-columns: 1fr;
  }
  .sitemap-group--two ul {
    grid-template-columns: 1fr;
    grid-auto-flow: row;
    grid-template-rows: none;
  }
  .sitemap-group--two li a {
    white-space: normal;
  }
}

/* Patient Resources Page */
.pr-resources {
  padding: 84px 0 90px;
}

.pr-res-head {
  max-width: 680px;
  margin-bottom: 44px;
}

.pr-res-head h2 {
  font-family: var(--font-heading);
  font-size: clamp(28px, 3.4vw, 42px);
  font-weight: 500;
  letter-spacing: -0.4px;
  color: var(--color-ink);
}

.pr-res-head p {
  font-size: 18px;
  color: var(--color-body);
  line-height: 1.7;
  margin-top: 16px;
}

.pr-res-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}

.pr-res-card {
  display: flex;
  flex-direction: column;
  gap: 16px;
  background: #fff;
  border: 1px solid var(--color-border);
  border-radius: 16px;
  padding: 30px 28px;
  text-decoration: none;
  transition: transform 0.16s, border-color 0.16s, box-shadow 0.16s;
}

.pr-res-card:hover {
  border-color: var(--color-gold);
  transform: translateY(-3px);
  box-shadow: var(--shadow-md);
}

.pr-res-card .ic {
  width: 56px;
  height: 56px;
  border-radius: 13px;
  background: var(--color-gold-soft);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.pr-res-card .ic svg {
  width: 27px;
  height: 27px;
  stroke: var(--color-gold);
  fill: none;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.pr-res-card h3 {
  font-family: var(--font-heading);
  font-size: 22px;
  font-weight: 500;
  color: var(--color-ink);
  line-height: 1.25;
}

.pr-res-card p {
  font-size: 15.5px;
  color: var(--color-body);
  line-height: 1.6;
  flex: 1;
}

.pr-res-card .go {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 14px;
  font-weight: 800;
  color: var(--color-navy);
  transition: color 0.16s;
}

.pr-res-card .go svg {
  width: 17px;
  height: 17px;
  stroke: currentColor;
  fill: none;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: transform 0.16s;
}

.pr-res-card:hover .go {
  color: var(--color-gold);
}

.pr-res-card:hover .go svg {
  transform: translateX(3px);
}

.pr-res-card .ext {
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--color-muted, #677583);
}

/* Patient Resources - Locations */
.pr-locs {
  padding: 0 0 100px;
}

.pr-locs-head {
  max-width: 680px;
  margin-bottom: 36px;
}

.pr-locs-head h2 {
  font-family: var(--font-heading);
  font-size: clamp(26px, 3vw, 38px);
  font-weight: 500;
  letter-spacing: -0.4px;
  color: var(--color-ink);
}

.pr-loc-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}

.pr-loc-card {
  display: flex;
  flex-direction: column;
  gap: 14px;
  background: var(--color-cream);
  border: 1px solid var(--color-border-warm);
  border-radius: 16px;
  padding: 30px;
  text-decoration: none;
  transition: transform 0.16s, border-color 0.16s, box-shadow 0.16s;
}

.pr-loc-card:hover {
  border-color: var(--color-gold);
  transform: translateY(-3px);
  box-shadow: var(--shadow-md);
}

.pr-loc-card .tag {
  align-self: flex-start;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  color: var(--color-gold);
  background: #fff;
  border: 1px solid var(--color-border-warm);
}

.pr-loc-card h3 {
  font-family: var(--font-heading);
  font-size: 26px;
  font-weight: 500;
  color: var(--color-ink);
}

.pr-loc-card .addr {
  font-size: 16px;
  color: var(--color-body);
  line-height: 1.6;
}

.pr-loc-card .tel {
  font-size: 17px;
  font-weight: 800;
  color: var(--color-navy);
  white-space: nowrap;
}

.pr-loc-card:hover .tel {
  color: var(--color-gold);
}

.pr-loc-card .loc-cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: auto;
  align-self: flex-start;
  font-size: 14px;
  font-weight: 800;
  color: var(--color-navy);
  background: #fff;
  border: 1.5px solid var(--color-navy);
  border-radius: 999px;
  padding: 11px 22px;
  transition: background 0.16s, color 0.16s, border-color 0.16s;
}

.pr-loc-card .loc-cta svg {
  width: 16px;
  height: 16px;
  stroke: currentColor;
  fill: none;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: transform 0.16s;
}

.pr-loc-card:hover .loc-cta {
  background: var(--color-navy);
  color: #fff;
}

.pr-loc-card:hover .loc-cta svg {
  transform: translateX(3px);
}

@media (max-width: 1080px) {
  .pr-res-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 760px) {
  .pr-resources {
    padding: 56px 0 64px;
  }
  .pr-locs {
    padding: 0 0 72px;
  }
  .pr-res-grid,
  .pr-loc-grid {
    grid-template-columns: 1fr;
  }
}

/* Service Page Layout */
.service-page {
  background: var(--color-bg-primary);
}

.service-layout {
  max-width: var(--container-max-width);
  margin: 0 auto;
  padding: 72px var(--container-padding) 96px;
  display: grid;
  grid-template-columns: 1fr 360px;
  gap: 64px;
  align-items: start;
}

/* Service Article */
.service-article {
  background: transparent;
  min-width: 0; /* allow the grid column to shrink so wide content can't overflow */
}

.article-figure {
  border-radius: 14px;
  overflow: hidden;
  margin-bottom: 36px;
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.08);
  line-height: 0;
}

.article-figure img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: 400px;
  object-fit: cover;
  object-position: center 32%;
}

/* Uses base .eyebrow.eyebrow--navy class */
.service-article .eyebrow {
  margin-bottom: 10px;
}

.article-headline {
  font-size: clamp(26px, 3vw, 34px);
  color: var(--color-navy);
  line-height: 1.25;
  margin-bottom: 6px;
}

.article-loc {
  font-weight: 500;
  margin-bottom: 22px;
}

.service-article .section-line {
  display: block; /* re-enable: base.css hides .section-line globally */
  width: 50px;
  height: 3px;
  background: var(--color-gold);
  margin: 0 0 28px;
}

.service-article .lead {
  line-height: 1.75;
  color: var(--color-charcoal);
  margin-bottom: 14px;
}

/* Q&A Section */
.qa-band {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 16px;
  margin: 48px 0 8px;
}

.qa-band h2 {
  font-size: 26px;
  color: var(--color-navy);
  min-width: 0;
  overflow-wrap: break-word;
}

.qa-band .rule {
  flex: 1;
  height: 1px;
  background: var(--color-line);
}

.qa-block {
  margin-top: 38px;
}

/* Every H3 in the article body shares one look, style and spacing —
   template section headings and headings typed/pasted into rich-text fields
   (which sit outside .qa-block) alike. */
.service-article h3,
.service-article .qa-block h3 {
  font-size: 22px;
  color: var(--color-navy);
  margin-top: 28px;
  margin-bottom: 14px;
}

.service-article p {
  margin-bottom: 16px;
}

.service-article p strong {
  color: var(--color-charcoal);
}

/* FAQ / Q&A accordion (native <details>, no JS) */
.faq-accordion {
  margin: 6px 0 24px;
}

.faq-accordion .faq-item {
  border: 1px solid var(--color-border);
  border-radius: 12px;
  background: #fff;
  margin-bottom: 12px;
  overflow: hidden;
  transition: box-shadow 0.2s, border-color 0.2s;
}

.faq-accordion .faq-item[open] {
  box-shadow: var(--shadow-sm);
  border-color: var(--color-border-warm);
}

.faq-accordion .faq-q {
  list-style: none;
  cursor: pointer;
  padding: 20px 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  font-family: var(--font-heading);
  font-size: 20px;
  font-weight: 500;
  line-height: 1.35;
  color: var(--color-ink);
}

.faq-accordion .faq-q::-webkit-details-marker {
  display: none;
}

/* Plus/minus toggle */
.faq-accordion .faq-tog {
  position: relative;
  width: 22px;
  height: 22px;
  flex-shrink: 0;
}

.faq-accordion .faq-tog::before,
.faq-accordion .faq-tog::after {
  content: '';
  position: absolute;
  background: var(--color-gold);
  border-radius: 2px;
  transition: transform 0.25s;
}

.faq-accordion .faq-tog::before {
  top: 10px;
  left: 2px;
  width: 18px;
  height: 2.5px;
}

.faq-accordion .faq-tog::after {
  top: 2px;
  left: 10px;
  width: 2.5px;
  height: 18px;
}

.faq-accordion .faq-item[open] .faq-tog::after {
  transform: scaleY(0);
}

.faq-accordion .faq-a {
  padding: 0 24px 22px;
  color: var(--color-body);
  line-height: 1.72;
}

.faq-accordion .faq-a > :last-child {
  margin-bottom: 0;
}

/* Feature List */
.feature-list {
  list-style: none;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px 28px;
  margin: 4px 0 22px;
  padding: 0;
}

.feature-list li {
  position: relative;
  padding-left: 26px;
  color: var(--color-charcoal);
}

/* Items containing bold text take a full row instead of a grid column */
.feature-list li.is-wide {
  grid-column: 1 / -1;
}

.feature-list li b,
.feature-list li strong {
  font-weight: 700;
  color: var(--color-navy-700, var(--color-charcoal));
}

.feature-list li::before {
  content: '';
  position: absolute;
  left: 2px;
  top: 4px;
  width: 6px;
  height: 11px;
  border: solid var(--color-navy-600);
  border-width: 0 2.5px 2.5px 0;
  transform: rotate(45deg);
}

/* Journey checklist (General Oncology) — gold check markers */
.journey-list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin: 6px 0 24px;
  padding: 0;
}

.journey-list li {
  position: relative;
  padding-left: 28px;
  color: var(--color-body);
  line-height: 1.65;
}

.journey-list li::before {
  content: '';
  position: absolute;
  left: 3px;
  top: 8px;
  width: 7px;
  height: 12px;
  border: solid var(--color-gold);
  border-width: 0 2.5px 2.5px 0;
  transform: rotate(45deg);
}

.journey-list li strong {
  color: var(--color-ink);
  font-weight: 700;
}

/* Lists authored in the rich-text (WYSIWYG) body — e.g. pasted from Word.
   Excludes the dedicated .feature-list / .journey-list markup. */
.service-article ul:not(.feature-list):not(.journey-list),
.service-article ol {
  list-style: none;
  margin: 8px 0 22px;
  padding-left: 2px;
}

.service-article ul:not(.feature-list):not(.journey-list) li,
.service-article ol li {
  position: relative;
  padding-left: 26px;
  margin-bottom: 10px;
  color: var(--color-body);
  line-height: 1.65;
}

.service-article ul:not(.feature-list):not(.journey-list) li:last-child,
.service-article ol li:last-child {
  margin-bottom: 0;
}

/* Gold dot marker for unordered lists */
.service-article ul:not(.feature-list):not(.journey-list) li::before {
  content: '';
  position: absolute;
  left: 6px;
  top: 9px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--color-gold);
}

/* Nested unordered lists get a hollow marker and indent */
.service-article ul:not(.feature-list):not(.journey-list) ul {
  margin: 10px 0 4px;
  padding-left: 18px;
}

.service-article ul:not(.feature-list):not(.journey-list) ul li::before {
  background: transparent;
  border: 2px solid var(--color-gold);
}

/* Numbered markers for ordered lists */
.service-article ol {
  counter-reset: woh-ol;
}

.service-article ol li {
  counter-increment: woh-ol;
}

.service-article ol li::before {
  content: counter(woh-ol) '.';
  position: absolute;
  left: 0;
  top: 0;
  font-weight: 700;
  color: var(--color-gold);
}

.service-article ul:not(.feature-list):not(.journey-list) li strong,
.service-article ol li strong {
  color: var(--color-ink);
  font-weight: 700;
}

/* Callout Box */
.callout {
  background: var(--color-ice);
  border-left: 4px solid var(--color-navy-600);
  border-radius: 0 10px 10px 0;
  padding: 26px 30px;
  margin: 40px 0 8px;
}

.callout p {
  color: var(--color-charcoal);
  margin: 0;
}

.callout .btn-primary {
  margin-top: 18px;
}

/* Optional small-print disclaimer after the FAQs */
.service-disclaimer {
  margin: 34px 0 8px;
  padding-top: 20px;
  border-top: 1px solid var(--color-border);
  font-size: 13.5px;
  line-height: 1.7;
  color: var(--color-muted, #677583);
}

.service-disclaimer p {
  margin: 0 0 10px;
}

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

.service-disclaimer a {
  color: var(--color-gold);
  text-decoration: underline;
}

/* Sidebar */
.sidebar {
  position: sticky;
  top: 32px;
  display: flex;
  flex-direction: column;
  gap: 28px;
}

.panel {
  background: #fff;
  border: 1px solid var(--color-line);
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.06);
}

.panel-head {
  padding: 22px 26px 18px;
  border-bottom: 1px solid var(--color-line-light, #F0F0F0);
}

/* Uses base .eyebrow.eyebrow--navy class */
.panel-head .eyebrow {
  margin-bottom: 6px;
}

.panel-head h4 {
  font-size: 21px;
  color: var(--color-navy);
}

.spec-list {
  list-style: none;
  max-height: 440px;
  overflow-y: auto;
  padding: 0;
  margin: 0;
}

.spec-list li {
  border-bottom: 1px solid var(--color-line-light, #F0F0F0);
}

.spec-list li:last-child {
  border-bottom: none;
}

.spec-list a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 13px 26px;
  color: var(--color-charcoal);
  text-decoration: none;
  transition: background 0.15s, color 0.15s, padding 0.15s;
}

.spec-list a::after {
  content: '\203A';
  font-size: 18px;
  color: var(--color-line);
  transition: color 0.15s, transform 0.15s;
}

.spec-list a:hover {
  background: var(--color-bg-secondary, #F7F7F7);
  color: var(--color-gold);
  padding-left: 30px;
}

.spec-list a:hover::after {
  color: var(--color-gold);
  transform: translateX(3px);
}

.spec-list li.active a {
  background: var(--color-cream);
  color: var(--color-gold);
  font-weight: var(--font-weight-semibold);
  border-left: 3px solid var(--color-gold);
  padding-left: 23px;
}

.spec-list li.active a::after {
  content: '';
}

/* Scrollbar styling */
.spec-list::-webkit-scrollbar {
  width: 6px;
}

.spec-list::-webkit-scrollbar-thumb {
  background: var(--color-line);
  border-radius: 3px;
}

/* CTA Panel */
.cta-panel {
  background: var(--color-ice);
  border: 1px solid #D0DEE8;
  border-radius: 14px;
  padding: 30px 28px;
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.05);
}

/* Uses base .eyebrow.eyebrow--navy class */
.cta-panel .eyebrow {
  margin-bottom: 8px;
}

.cta-panel h4 {
  font-size: 23px;
  color: var(--color-navy);
  line-height: 1.25;
  margin-bottom: 10px;
}

.cta-panel > p {
  margin-bottom: 4px;
}

.cta-btn {
  display: block;
  text-align: center;
  background: var(--color-gold);
  color: #fff;
  padding: 14px;
  border-radius: 7px;
  font-weight: var(--font-weight-semibold);
  letter-spacing: 0.5px;
  text-decoration: none;
  transition: background 0.2s, transform 0.2s;
  margin-top: 22px;
}

.cta-btn:hover {
  background: var(--color-gold-light, #E2A84B);
  transform: translateY(-1px);
}

.cta-phones {
  margin-top: 20px;
  display: flex;
  flex-direction: column;
}

.cta-phone-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 14px;
  padding: 14px 0;
  border-top: 1px solid #D0DEE8;
}

.cta-phone-row .city {
  font-family: var(--font-heading);
  font-weight: var(--font-weight-semibold);
  color: var(--color-navy);
}

.cta-phone-row .phone {
  white-space: nowrap;
  font-size: 18px;
  font-weight: var(--font-weight-semibold);
  color: var(--color-gold);
  text-decoration: none;
  letter-spacing: 0.5px;
}

.cta-phone-row .phone:hover {
  color: var(--color-navy-600);
}

/* Service Page Responsive */
@media (max-width: 980px) {
  .service-layout {
    grid-template-columns: 1fr;
    gap: 48px;
  }

  .sidebar {
    position: static;
  }

  .spec-list {
    max-height: none;
  }
}

@media (max-width: 620px) {
  /* Hide the specializations directory + "Get in Touch" sidebar on mobile */
  .sidebar {
    display: none;
  }

  .service-hero__band {
    padding: 48px 22px 36px;
  }

  .service-layout {
    padding: 48px 22px 72px;
  }

  .article-figure img {
    height: 280px;
  }

  .feature-list {
    grid-template-columns: 1fr;
  }
}

/* ═══════════════════════════════════════════════════════════════════════════
   PROVIDER PAGE STYLES
   ═══════════════════════════════════════════════════════════════════════════ */

/* Provider Layout */
.provider-layout {
  display: grid;
  grid-template-columns: 1fr 380px;
  gap: 60px;
  max-width: var(--container-wide);
  margin: 0 auto;
  padding: 60px 40px 80px;
}

.provider-main {
  min-width: 0;
}

/* Provider Profile Section */
.provider-profile {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 48px;
  margin-bottom: 48px;
  padding-bottom: 48px;
  border-bottom: 1px solid var(--color-border);
}

.provider-profile__photo {
  aspect-ratio: 3 / 4;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 8px 32px rgba(21, 38, 63, 0.12);
}

.provider-profile__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.provider-profile__facts {
  display: flex;
  flex-direction: column;
  gap: 0;
}

/* Quick Facts with Icons */
.fact-row {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding: 20px 0;
  border-bottom: 1px solid var(--color-border-light);
}

.fact-row:first-child {
  padding-top: 0;
}

.fact-row:last-child {
  border-bottom: none;
}

.fact-row__icon {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--color-gold-pale);
  border-radius: 8px;
  color: var(--color-gold);
}

.fact-row__content {
  flex: 1;
}

.fact-row__content dt {
  font-weight: var(--font-weight-semibold);
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--color-gold);
  margin-bottom: 4px;
}

.fact-row__content dd {
  font-weight: var(--font-weight-medium);
  color: var(--color-navy);
  margin: 0;
  line-height: 1.4;
}

/* Provider Bio Section */
.provider-bio {
  margin-bottom: 48px;
}

.provider-bio__title {
  font-family: var(--font-heading);
  font-size: 32px;
  font-weight: var(--font-weight-medium);
  color: var(--color-navy);
  margin: 0 0 24px;
}

.provider-bio__content p {
  margin: 0 0 20px;
}

.provider-bio__content p:last-child {
  margin-bottom: 0;
}

.provider-bio__pullquote {
  margin: 32px 0;
  padding: 28px 32px;
  background: var(--color-ice);
  border-left: 4px solid var(--color-gold);
  border-radius: 0 8px 8px 0;
}

.provider-bio__pullquote p {
  font-family: var(--font-heading);
  font-size: 19px;
  font-style: italic;
  font-weight: var(--font-weight-normal);
  color: var(--color-navy);
  margin: 0;
}

/* Provider Credentials Section */
.provider-credentials {
  margin-bottom: 40px;
}

.provider-credentials__title {
  font-family: var(--font-heading);
  font-size: 32px;
  font-weight: var(--font-weight-medium);
  color: var(--color-navy);
  margin: 0 0 32px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--color-border);
}

.provider-credentials__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
}

.credential-card {
  background: #fff;
  border: 1px solid var(--color-border);
  border-radius: 8px;
  padding: 24px;
}

.credential-card--full {
  grid-column: 1 / -1;
}

.credential-card__header {
  font-family: var(--font-body);
  font-weight: var(--font-weight-semibold);
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--color-gold);
  margin: 0 0 16px;
  font-size: 17px;
}

.credential-card__list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.credential-card__list li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 10px 0;
  border-bottom: 1px solid var(--color-border-light);
}

.credential-card__list li:first-child {
  padding-top: 0;
}

.credential-card__list li:last-child {
  border-bottom: none;
  padding-bottom: 0;
}

.credential-card__list li .checkmark {
  flex-shrink: 0;
  color: var(--color-navy-600);
  margin-top: 3px;
}

.credential-card__list li span {
  flex: 1;
}

.credential-card__list li strong {
  color: var(--color-navy);
  font-weight: var(--font-weight-semibold);
}

/* Language Pills */
.credential-card__pills {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.language-pill {
  display: inline-block;
  padding: 10px 20px;
  background: #fff;
  border: 1px solid var(--color-border);
  border-radius: 6px;
  font-weight: var(--font-weight-medium);
  color: var(--color-navy);
}

/* Provider Sidebar */
.provider-sidebar {
  position: sticky;
  top: 100px;
  align-self: start;
}

/* CTA Panel - Provider Page Style */
.provider-sidebar .cta-panel {
  background: var(--color-ice);
  border: none;
  border-radius: 12px;
  padding: 28px;
}

/* Uses base .eyebrow class */
.provider-sidebar .cta-panel__eyebrow {
  margin-bottom: 8px;
}

.provider-sidebar .cta-panel__title {
  font-family: var(--font-heading);
  font-size: 24px;
  font-weight: var(--font-weight-semibold);
  color: var(--color-navy);
  margin: 0 0 12px;
}

.provider-sidebar .cta-panel__text {
  margin: 0 0 20px;
}

.provider-sidebar .cta-phone-row {
  border-top: 1px solid rgba(21, 38, 63, 0.1);
  padding: 14px 0;
}

.provider-sidebar .cta-phone-row:first-of-type {
  margin-top: 0;
}

.provider-sidebar .cta-phone-row .phone {
}

.provider-sidebar .btn-primary {
  margin-top: 20px;
}

/* Other Providers */
.other-providers {
  background: #fff;
  border: 1px solid var(--color-border);
  border-radius: 12px;
  padding: 24px;
  margin-top: 20px;
}

/* Uses base .eyebrow class */
.other-providers__eyebrow {
  margin-bottom: 6px;
}

.other-providers__title {
  font-family: var(--font-heading);
  font-size: 21px;
  font-weight: var(--font-weight-semibold);
  color: var(--color-navy);
  margin: 0 0 20px;
}

.other-providers__list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.other-providers__item {
  border-bottom: 1px solid var(--color-border-light);
}

.other-providers__item:last-child {
  border-bottom: none;
}

.other-providers__item a {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 0;
  text-decoration: none;
  transition: opacity 0.2s ease;
}

.other-providers__item a:hover {
  opacity: 0.8;
}

.other-providers__item img {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  object-fit: cover;
}

.other-providers__info {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.other-providers__name {
  font-family: var(--font-heading);
  font-weight: var(--font-weight-semibold);
  color: var(--color-gold);
}

.other-providers__specialty {
}

/* Provider Page Responsive */
@media (max-width: 1080px) {
  .provider-layout {
    grid-template-columns: 1fr;
    gap: 48px;
  }

  .provider-sidebar {
    position: static;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
  }

  .other-providers {
    margin-top: 0;
  }
}

@media (max-width: 768px) {
  .provider-layout {
    padding: 48px 24px 60px;
  }

  .provider-profile {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .provider-profile__photo {
    max-width: 280px;
  }

  .provider-credentials__grid {
    grid-template-columns: 1fr;
  }

  .credential-card--full {
    grid-column: auto;
  }

  .provider-sidebar {
    grid-template-columns: 1fr;
  }

  .provider-bio__pullquote {
    padding: 24px;
    margin: 24px 0;
  }

  .provider-bio__pullquote p {
  }
}

@media (max-width: 480px) {
  .credential-card {
    padding: 20px;
  }

  .fact-row__icon {
    width: 36px;
    height: 36px;
  }
}

/* ═══════════════════════════════════════════════════════════════════════════
   PROVIDERS DIRECTORY PAGE
   ═══════════════════════════════════════════════════════════════════════════ */

/* Section Eyebrow - uses base.css styles, centered variant below */

/* Providers Section */
.providers-section {
  padding: 80px 0;
  background: var(--color-cream);
}

.providers-section__head {
  text-align: center;
  max-width: 700px;
  margin: 0 auto 60px;
}

.providers-section__head .section-eyebrow,
.team-section__head .section-eyebrow,
.testimonials__inner .section-eyebrow,
.blog__inner .section-eyebrow,
.insurance__inner .section-eyebrow,
.providers__inner .section-eyebrow,
.credentials__inner .section-eyebrow {
  display: flex;
  justify-content: center;
  width: 100%;
}

.providers-section__head h2 {
  font-family: var(--font-heading);
  font-size: clamp(32px, 4vw, 44px);
  font-weight: var(--font-weight-medium);
  color: var(--color-navy);
  margin: 0 0 16px;
}

.providers-section__head .lead {
  margin: 0;
}

/* Provider cards — simplified: a photo, name and specialty; the whole card
   links to the profile. Scoped to .providers-section so the homepage's
   sticky-stacking .provider-card (top of this file) stays untouched. */
.providers-section .providers-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
}

.providers-section .provider-card {
  position: static;
  display: block;
  grid-template-columns: none;
  gap: 0;
  max-width: none;
  margin: 0;
  background: #fff;
  border: var(--border-width) solid var(--color-border-warm);
  border-radius: 14px;
  overflow: hidden;
  box-shadow: var(--shadow-sm);
  text-align: center;
  text-decoration: none;
  color: inherit;
  transition: transform 0.22s ease, box-shadow 0.22s ease;
}

.providers-section .provider-card:hover {
  transform: translateY(-5px);
  box-shadow: var(--shadow-lg);
}

.providers-section .provider-card__photo {
  aspect-ratio: 4 / 5;
  overflow: hidden;
  background: var(--color-ice);
}

.providers-section .provider-card__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  transition: transform 0.7s cubic-bezier(0.2, 0.7, 0.3, 1);
}

.providers-section .provider-card:hover .provider-card__photo img {
  transform: scale(1.04);
}

.providers-section .provider-card__info {
  padding: 26px 28px 30px;
  display: block;
  text-align: center;
}

.providers-section .provider-card__info h3 {
  font-family: var(--font-heading);
  font-size: 24px;
  font-weight: var(--font-weight-medium);
  color: var(--color-navy);
  line-height: 1.25;
  margin: 0 0 8px;
}

.providers-section .provider-card__spec {
  font-size: 12.5px;
  font-weight: var(--font-weight-extrabold);
  letter-spacing: 1.6px;
  text-transform: uppercase;
  color: var(--color-gold);
  margin: 0;
}

/* Team Section */
.team-section {
  padding: 80px 0;
  background: #fff;
}

.team-section__head {
  text-align: center;
  max-width: 700px;
  margin: 0 auto 60px;
}

.team-section__head h2 {
  font-family: var(--font-heading);
  font-size: clamp(32px, 4vw, 44px);
  font-weight: var(--font-weight-medium);
  color: var(--color-navy);
  margin: 0 0 16px;
}

.team-section__head .lead {
  margin: 0;
}

/* Team Grid */
.team-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

.team-member {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 22px 24px;
  background: var(--color-cream);
  border: var(--border-width) solid var(--color-border-warm);
  border-radius: 16px;
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.team-member:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow-sm);
}

/* Square photos with rounded corners (was a 50% circle) */
.team-member__avatar {
  flex-shrink: 0;
  width: 120px;
  height: 140px;
  border-radius: 12px;
  overflow: hidden;
  background: var(--color-ice);
  display: flex;
  align-items: center;
  justify-content: center;
}

.team-member__avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.team-member__initials {
  font-family: var(--font-heading);
  font-size: 36px;
  font-weight: var(--font-weight-semibold);
  color: var(--color-navy-600);
}

.team-member__info {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.team-member__info strong {
  display: block;
  font-size: 18px;
  font-weight: var(--font-weight-extrabold);
  color: var(--color-navy);
  line-height: 1.25;
  margin-bottom: 4px;
}

.team-member__info span {
  font-size: 14.5px;
  font-weight: var(--font-weight-semibold);
  color: var(--color-body);
}

/* Providers Directory Responsive */
@media (max-width: 900px) {
  .providers-section .providers-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .team-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 600px) {
  .providers-section,
  .team-section {
    padding: 60px 0;
  }

  .providers-section__head,
  .team-section__head {
    margin-bottom: 40px;
  }

  .providers-section .providers-grid {
    grid-template-columns: 1fr;
    max-width: 420px;
    margin-inline: auto;
  }

  .team-grid {
    grid-template-columns: 1fr;
  }
}

/* ==========================================================================
   ABOUT PAGE
   ========================================================================== */

/* About Intro Section */
.about-intro {
  padding: 80px 0;
}

.about-intro__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  align-items: center;
}

.about-intro__head .section-eyebrow {
  margin-bottom: 16px;
}

.about-intro__head h2 {
  font-size: clamp(28px, 3.5vw, 42px);
  font-weight: var(--font-weight-medium);
  color: var(--color-navy);
  margin-bottom: 20px;
}

.about-intro__loc {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-weight: var(--font-weight-semibold);
  color: var(--color-navy);
  margin-bottom: 28px;
}

.about-intro__loc svg {
  width: 20px;
  height: 20px;
  fill: var(--color-gold);
}

.about-intro__figure {
  margin: 0;
  border-radius: 16px;
  overflow: hidden;
  max-width: 420px;
}

.about-intro__figure img {
  width: 100%;
  height: auto;
  display: block;
}

.about-intro__figure figcaption {
  padding: 16px 20px;
  background: var(--color-cream);
  font-style: italic;
}

.about-intro__body p {
  margin-bottom: 1.5em;
}

.about-intro__body p:last-child {
  margin-bottom: 0;
}

.about-intro__cta {
  margin-top: 32px;
}

/* About Mission Section */
.about-mission {
  padding: 90px 0;
  background: var(--color-navy);
  position: relative;
  overflow: hidden;
}

.about-mission__sun {
  position: absolute;
  right: -80px;
  top: 50%;
  transform: translateY(-50%);
  width: 500px;
  height: 500px;
  opacity: 0.08;
}

.about-mission__sun svg {
  width: 100%;
  height: 100%;
}

.about-mission__content {
  max-width: 720px;
  margin: 0 auto;
  text-align: center;
  position: relative;
  z-index: 1;
}

.section-eyebrow--light {
  color: var(--color-gold);
}

.about-mission__content .section-eyebrow--light {
  display: flex;
  justify-content: center;
  width: 100%;
}

.about-mission__text {
  font-family: var(--font-heading);
  font-size: clamp(20px, 2.5vw, 26px);
  color: #fff;
  margin: 24px 0;
  font-style: italic;
}

.about-mission__signoff {
  font-weight: var(--font-weight-semibold);
  color: var(--color-gold);
}

/* About Difference Section */
.about-diff {
  padding: 80px 0;
  background: var(--color-cream);
}

.about-diff__head {
  margin-bottom: 48px;
}

.about-diff__head .section-eyebrow {
  margin-bottom: 16px;
}

.about-diff__head h2 {
  font-size: clamp(28px, 3.5vw, 44px);
  font-weight: var(--font-weight-medium);
  color: var(--color-navy);
  margin-bottom: 16px;
}

.about-diff__head .lead {
  font-size: 21px;
  line-height: 1.65;
}

.about-diff__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
}

.diff-card {
  background: #fff;
  border: 1px solid var(--color-line);
  border-radius: 18px;
  padding: 36px;
  box-shadow: 0 2px 12px rgba(21, 38, 63, 0.06);
}

.diff-card__icon {
  width: 54px;
  height: 54px;
  border-radius: 14px;
  background: var(--color-gold-soft);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 20px;
}

.diff-card__icon svg {
  width: 28px;
  height: 28px;
  stroke: var(--color-gold);
  fill: none;
  stroke-width: 1.7;
}

.diff-card h3 {
  font-size: 22px;
  font-weight: var(--font-weight-medium);
  color: var(--color-navy);
  margin-bottom: 12px;
}

.diff-card p {
  line-height: 1.65;
}

/* About Offices Section */
.about-offices {
  padding: 80px 0;
  background: var(--color-cream);
}

.about-offices__head {
  margin-bottom: 40px;
}

.about-offices__head .section-eyebrow {
  margin-bottom: 16px;
}

.about-offices__head h2 {
  font-size: clamp(28px, 3.5vw, 44px);
  font-weight: var(--font-weight-medium);
  color: var(--color-navy);
  margin-bottom: 16px;
}

.about-offices__head .lead {
  line-height: 1.65;
  margin-bottom: 24px;
}

.about-offices__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.onsite-chip {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  font-weight: var(--font-weight-bold);
  color: var(--color-navy);
  background: #fff;
  border: 1px solid var(--color-line);
  padding: 10px 16px;
  border-radius: 100px;
}

.onsite-chip svg {
  width: 17px;
  height: 17px;
  fill: var(--color-gold);
  flex-shrink: 0;
}

.about-offices__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 32px;
}

.office-card {
  background: #fff;
  border: 1px solid var(--color-line);
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 4px 20px rgba(21, 38, 63, 0.08);
  transition: box-shadow 0.22s, transform 0.22s;
}

.office-card:hover {
  box-shadow: 0 8px 32px rgba(21, 38, 63, 0.12);
  transform: translateY(-4px);
}

.office-card__figure {
  position: relative;
  line-height: 0;
}

.office-card__figure img {
  width: 100%;
  height: 280px;
  object-fit: cover;
}

.office-card__pin {
  position: absolute;
  left: 20px;
  top: 20px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(21, 38, 63, 0.88);
  color: #fff;
  font-weight: var(--font-weight-bold);
  letter-spacing: 1.5px;
  text-transform: uppercase;
  padding: 8px 15px;
  border-radius: 100px;
}

.office-card__pin svg {
  width: 14px;
  height: 14px;
  fill: var(--color-gold);
}

.office-card__body {
  padding: 32px;
}

.office-card__body h3 {
  font-size: 24px;
  font-weight: var(--font-weight-medium);
  color: var(--color-navy);
  margin-bottom: 20px;
}

.office-card__line {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 14px;
  line-height: 1.55;
}

.office-card__line svg {
  width: 20px;
  height: 20px;
  fill: var(--color-gold);
  flex-shrink: 0;
  margin-top: 2px;
}

.office-card__line a {
  color: var(--color-navy);
  font-weight: var(--font-weight-bold);
  text-decoration: none;
}

.office-card__line a:hover {
  color: var(--color-gold);
}

.office-card__body .btn {
  margin-top: 20px;
}

/* About Languages Section */
.about-langs {
  padding: 80px 0;
}

.about-langs__grid {
  display: grid;
  grid-template-columns: 0.85fr 1.15fr;
  gap: 56px;
  align-items: center;
}

.about-langs__head h2 {
  font-size: clamp(26px, 3vw, 40px);
  font-weight: var(--font-weight-medium);
  color: var(--color-navy);
  margin-bottom: 16px;
}

.about-langs__head .lead {
  font-size: 21px;
  line-height: 1.65;
  color: var(--color-body);
}

.about-langs__cards {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
}

.lang-card {
  background: var(--color-cream);
  border: 1px solid var(--color-line);
  border-radius: 16px;
  padding: 24px 26px;
  display: flex;
  align-items: center;
  gap: 18px;
}

.lang-card__glyph {
  font-family: var(--font-heading);
  font-size: 28px;
  font-weight: var(--font-weight-semibold);
  color: var(--color-gold);
  width: 52px;
  height: 52px;
  border-radius: 12px;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  box-shadow: 0 2px 8px rgba(21, 38, 63, 0.06);
}

.lang-card__info strong {
  font-family: var(--font-heading);
  font-size: 21px;
  font-weight: var(--font-weight-semibold);
  color: var(--color-navy);
  display: block;
  line-height: 1.1;
}

.lang-card__info span {
  font-weight: var(--font-weight-bold);
  color: var(--color-muted);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

/* About Page Responsive */
@media (max-width: 1080px) {
  .about-intro__grid,
  .about-langs__grid,
  .about-offices__grid {
    grid-template-columns: 1fr;
    gap: 40px;
  }
}

@media (max-width: 768px) {
  .about-intro,
  .about-diff,
  .about-offices,
  .about-langs {
    padding: 60px 0;
  }

  .about-mission {
    padding: 70px 0;
  }

  .about-mission__sun {
    width: 400px;
    right: -150px;
  }

  .about-diff__grid,
  .about-langs__cards {
    grid-template-columns: 1fr;
  }

  .diff-card {
    padding: 28px;
  }
}

/* ═══════════════════════════════════════════════════════════════════════════
   CANCER SPECIALIZATIONS PAGE
   ═══════════════════════════════════════════════════════════════════════════ */

/* Comprehensive Care Section */
.spec-care {
  background: var(--color-bg-primary);
}

/* Tighten the gap between Comprehensive Care and What We Treat.
   Scoped to the Specializations page (where spec-treat directly follows
   spec-care) so the Services Directory spacing is unaffected. */
.spec-care {
  padding-bottom: calc(var(--section-padding-y) * 0.4);
}

.spec-care + .spec-treat {
  padding-top: calc(var(--section-padding-y) * 0.4);
}

.spec-care__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
}

.spec-care__content h2 {
  font-family: var(--font-heading);
  font-size: clamp(32px, 4vw, 44px);
  font-weight: var(--font-weight-medium);
  color: var(--color-navy);
  line-height: 1.15;
  margin-bottom: 24px;
}

.spec-care__content .lead {
  font-size: 19px;
  line-height: 1.7;
  color: var(--color-body);
  margin-bottom: 32px;
}

.spec-care__features {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px 40px;
  list-style: none;
  padding: 0;
  margin: 0;
}

.spec-care__features li {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 16px;
  font-weight: var(--font-weight-semibold);
  color: var(--color-navy);
}

.spec-care__features svg {
  color: var(--color-gold);
  flex-shrink: 0;
}

/* Care Images - Stacked Layout */
.spec-care__images {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.spec-care__img {
  border-radius: 16px;
  overflow: hidden;
  width: 100%;
  height: auto;
  object-fit: cover;
}

.spec-care__img--1 {
  aspect-ratio: 21 / 9;
}

.spec-care__img--2 {
  aspect-ratio: 21 / 9;
}

.spec-care__img--placeholder {
  background: linear-gradient(135deg, var(--color-bg-subtle) 0%, #e8e6e1 100%);
}

/* What We Treat Section */
.spec-treat {
  background: var(--color-bg-primary);
}

.spec-treat__head {
  margin-bottom: 48px;
}

.spec-treat__head h2 {
  font-family: var(--font-heading);
  font-size: clamp(32px, 4vw, 44px);
  font-weight: var(--font-weight-medium);
  color: var(--color-navy);
  line-height: 1.15;
  margin-bottom: 20px;
}

.spec-treat__head .lead {
  font-size: 19px;
  line-height: 1.7;
  color: var(--color-body);
}

.spec-treat__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

/* Specialization Link Card */
.spec-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 22px 28px;
  background: #fff;
  border: 1px solid var(--color-border-light);
  border-radius: 12px;
  text-decoration: none;
  transition: border-color var(--transition-base), box-shadow var(--transition-base);
}

.spec-link:hover {
  border-color: var(--color-border);
  box-shadow: 0 4px 16px rgba(21, 38, 63, 0.08);
}

.spec-link span {
  font-family: var(--font-heading);
  font-size: 18px;
  font-weight: var(--font-weight-medium);
  color: var(--color-navy);
}

.spec-link svg {
  color: var(--color-muted);
  transition: transform var(--transition-base), color var(--transition-base);
}

.spec-link:hover svg {
  transform: translateX(3px);
  color: var(--color-gold);
}

/* No Services Message */
.no-services {
  grid-column: 1 / -1;
  text-align: center;
  padding: 60px 20px;
  color: var(--color-muted);
  font-size: 18px;
}

/* CTA Section - Cream Background */
.spec-cta {
  background: linear-gradient(180deg, #f5f1e8 0%, #ebe5d8 100%);
  text-align: center;
}

.spec-cta__content {
  margin: 0 auto;
}

.spec-cta__content .section-eyebrow {
  color: var(--color-gold);
  margin-bottom: 20px;
}

.spec-cta__content h2 {
  font-family: var(--font-heading);
  font-size: clamp(32px, 4.5vw, 48px);
  font-weight: var(--font-weight-medium);
  color: var(--color-navy);
  margin-bottom: 20px;
  line-height: 1.15;
}

.spec-cta__content .lead {
  font-size: 19px;
  line-height: 1.65;
  color: var(--color-body);
  margin-bottom: 36px;
}

.spec-cta__buttons {
  display: flex;
  justify-content: center;
  gap: 16px;
  flex-wrap: wrap;
}

.spec-cta .btn-outline {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 28px;
  background: transparent;
  border: 2px solid var(--color-navy);
  border-radius: var(--border-radius-pill);
  color: var(--color-navy);
  font-size: 16px;
  font-weight: var(--font-weight-semibold);
  text-decoration: none;
  transition: all var(--transition-base);
}

.spec-cta .btn-outline:hover {
  background: var(--color-navy);
  color: #fff;
}

.spec-cta .btn-outline svg {
  flex-shrink: 0;
}

/* Responsive */
@media (max-width: 1024px) {
  .spec-care__grid {
    gap: 50px;
  }

  .spec-treat__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 768px) {
  .spec-care__grid {
    grid-template-columns: 1fr;
    gap: 40px;
  }

  .spec-care__images {
    order: -1;
  }

  .spec-care__features {
    grid-template-columns: 1fr;
  }

  .spec-treat__grid {
    grid-template-columns: 1fr;
  }

  .spec-cta__buttons {
    flex-direction: column;
    align-items: center;
  }
}

/* ═══════════════════════════════════════════════════════════════════════════
   CLINICAL TRIALS  (template-clinical-trials.php, template-clinical-trial-list.php)
   Layout only — headings, body copy and .lead inherit the global type scale.
   ═══════════════════════════════════════════════════════════════════════════ */

/* Intro */
.trial-intro__content h2,
.trial-intro__content .lead {
  margin-bottom: 24px;
}

.trial-intro__cta {
  margin-top: 36px;
}

/* Intro and bands share one white surface, so drop the seam between them
   and let the band padding alone set the gap. */
.trial-intro {
  padding-bottom: 0;
}

/* Alternating image / copy bands — background inherited from body (white) */
.trial-band {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: 64px;
  max-width: var(--container-max-width);
  margin: 0 auto;
  /* Tighter than a standalone section: these read as one continuous block */
  padding: calc(var(--section-padding-y) * 0.55) var(--container-padding);
}

/* Consecutive bands share one block of vertical rhythm */
.trial-band + .trial-band {
  padding-top: 0;
}

.trial-band--reverse .trial-band__media {
  order: 2;
}

.trial-band__media img,
.trial-band__placeholder {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: var(--border-radius-xl);
}

.trial-band__placeholder {
  background: linear-gradient(135deg, var(--color-cream) 0%, var(--color-cream-deep) 100%);
}

.trial-band__copy h2 {
  margin-bottom: 20px;
}

/* Trial list */
.trial-list__head {
  margin-bottom: 56px;
}

.trial-list__back {
  white-space: nowrap;
  font-weight: var(--font-weight-semibold);
  color: var(--color-gold);
  text-decoration: none;
}

.trial-list__back:hover {
  text-decoration: underline;
}

.trial-list__group + .trial-list__group {
  margin-top: 56px;
}

.trial-list__group-head {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-bottom: 24px;
}

.trial-list__group-head h2 {
  font-size: var(--font-size-2xl);
}

.trial-list__rule {
  flex: 1;
  height: 1px;
  background: var(--color-line);
}

.trial-item {
  display: flex;
  gap: 20px;
  padding: 26px 28px;
  background: var(--color-white);
  border: var(--border-width) solid var(--color-line);
  border-radius: var(--border-radius-lg);
  transition: border-color var(--transition-base), box-shadow var(--transition-base);
}

.trial-item + .trial-item {
  margin-top: 16px;
}

.trial-item:hover {
  border-color: var(--color-gold);
  box-shadow: var(--shadow-sm);
}

/* Whole card is a link when a study URL is set */
.trial-item--link {
  text-decoration: none;
  color: inherit;
  cursor: pointer;
}

.trial-item__body {
  flex: 1;
  min-width: 0;
}

/* External-link arrow affordance on clickable cards */
.trial-item__go {
  flex-shrink: 0;
  align-self: center;
  display: grid;
  place-items: center;
  color: var(--color-navy-600);
  transition: color var(--transition-base), transform var(--transition-base);
}

.trial-item__go svg {
  width: 18px;
  height: 18px;
}

.trial-item--link:hover .trial-item__go {
  color: var(--color-gold);
  transform: translate(2px, -2px);
}

.trial-item__icon {
  flex-shrink: 0;
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: var(--border-radius-full);
  background: var(--color-gold-soft);
  color: var(--color-gold);
}

.trial-item__icon svg {
  width: 21px;
  height: 21px;
}

/* Subtitle + recruitment badge share one row above the study name */
.trial-item__rowhead {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin-bottom: 9px;
}

.trial-item__sub {
  display: block;
  font-size: 13px;
  font-weight: var(--font-weight-semibold);
  letter-spacing: var(--letter-spacing-wide);
  text-transform: uppercase;
  color: var(--color-gold);
}

/* Recruitment status badge (neutral by default, green when enrolling) */
.trial-item__status {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 11.5px;
  font-weight: var(--font-weight-bold);
  letter-spacing: 1.1px;
  text-transform: uppercase;
  color: #6d6455;
  background: #f1ede4;
  border: var(--border-width) solid var(--color-line);
  border-radius: 999px;
  padding: 5px 12px;
}

.trial-item__status .trial-item__dot {
  width: 6px;
  height: 6px;
  border-radius: var(--border-radius-full);
  background: #a9a091;
}

.trial-item__status--open {
  color: #2f6b4f;
  background: #eaf2ec;
  border-color: #cbdfd1;
}

.trial-item__status--open .trial-item__dot {
  background: #3e8a63;
}

/* Study names run long, so they sit below the global h3 size */
.trial-item__title {
  font-size: 19px;
  line-height: 1.5;
  margin-bottom: 0;
}

.trial-list__empty {
  max-width: 640px;
}

/* Responsive */
@media (max-width: 1024px) {
  .trial-band {
    gap: 44px;
  }
}

@media (max-width: 768px) {
  .trial-band {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  /* Image always leads on mobile, both bands alike */
  .trial-band--reverse .trial-band__media {
    order: 0;
  }

  .trial-list__group-head {
    gap: 14px;
  }

  .trial-item {
    gap: 16px;
    padding: 22px;
  }
}

/* ═══════════════════════════════════════════════════════════════════════════
   IMAGING CENTER  (template-imaging-center.php)
   Reuses the .service-hero banner, .trial-band image/copy rows and .spec-cta.
   New here: the intro spacing tweak and the PET/CT scan-types card grid.
   ═══════════════════════════════════════════════════════════════════════════ */

/* Intro reuses one .trial-band inside a .section, so zero the band's own
   vertical padding and let the section's top/bottom padding set the rhythm
   (the Scan Types section below is a contrasting cream band, so the intro
   keeps its full bottom padding). */
.imaging-intro .trial-band {
  padding-top: 0;
  padding-bottom: 0;
}

.imaging-intro__cta {
  margin-top: 32px;
}

/* Bands share one white surface with the intro above them */
.imaging-bands {
  padding-top: calc(var(--section-padding-y) * 0.75);
}

/* PET/CT scan types — card grid on the cream surface */
.imaging-scans {
  background: var(--color-cream);
  padding: var(--section-padding-y) 0;
  border-top: var(--border-width) solid var(--color-border-warm);
  border-bottom: var(--border-width) solid var(--color-border-warm);
}

.imaging-scans__head {
  max-width: 720px;
  margin-bottom: 48px;
}

.imaging-scans__head h2 {
  margin-top: 6px;
}

.imaging-scans__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 22px;
}

.imaging-scan {
  background: var(--color-white);
  border: var(--border-width) solid var(--color-border-warm);
  border-radius: var(--border-radius-lg);
  padding: 34px 38px;
  box-shadow: var(--shadow-sm);
}

.imaging-scan__tag {
  display: inline-block;
  margin-bottom: 16px;
  padding: 5px 13px;
  font-size: 12px;
  font-weight: var(--font-weight-extrabold, 800);
  letter-spacing: var(--letter-spacing-wider);
  text-transform: uppercase;
  color: var(--color-gold);
  background: var(--color-gold-soft);
  border: var(--border-width) solid var(--color-gold-soft);
  border-radius: var(--border-radius-full);
}

.imaging-scan h3 {
  font-size: 23px;
  line-height: 1.25;
}

.imaging-scan p {
  margin-top: 12px;
}

/* In-copy hyperlinks (scan cards, intro, story bands) — gold with a soft
   underline, since the theme's base <a> inherits its color. Scoped to links
   inside paragraphs so the .btn-primary CTA keeps its own white-on-gold style. */
.imaging-scan__body a,
.imaging-intro .trial-band__copy p a,
.imaging-bands .trial-band__copy p a {
  color: var(--color-gold);
  font-weight: var(--font-weight-semibold);
  text-decoration: none;
  border-bottom: var(--border-width) solid rgba(168, 110, 22, 0.35);
  transition: border-color var(--transition-base);
}

.imaging-scan__body a:hover,
.imaging-intro .trial-band__copy p a:hover,
.imaging-bands .trial-band__copy p a:hover {
  border-bottom-color: var(--color-gold);
}

/* CTA copy: two short paragraphs. Matches the .lead sizing the single-
   paragraph .spec-cta normally uses, and keeps a clear gap before the
   buttons. */
.imaging-cta__text {
  max-width: 71ch;
  margin: 0 auto 36px;
  font-size: 19px;
  line-height: 1.65;
  color: var(--color-body);
}

.imaging-cta__text p + p {
  margin-top: 16px;
}

@media (max-width: 960px) {
  .imaging-scans__grid {
    grid-template-columns: 1fr;
  }
}

/* ═══════════════════════════════════════════════════════════════════════════
   NEW PATIENT FORMS  (template-patient-forms.php)
   Layout only — headings and .lead inherit the global type scale.
   ═══════════════════════════════════════════════════════════════════════════ */

.forms__head {
  margin-bottom: 48px;
}

.forms__head h2 {
  margin-bottom: 20px;
}

.form-list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}

.form-card {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 24px 28px;
  background: var(--color-white);
  border: var(--border-width) solid var(--color-line);
  border-radius: var(--border-radius-lg);
  text-decoration: none;
  transition: border-color var(--transition-base), box-shadow var(--transition-base),
    transform var(--transition-base);
}

.form-card:hover {
  border-color: var(--color-gold);
  box-shadow: var(--shadow-sm);
  transform: translateY(-2px);
}

.form-card__doc {
  flex-shrink: 0;
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  border-radius: var(--border-radius-md);
  background: var(--color-gold-soft);
  color: var(--color-gold);
}

.form-card__doc svg {
  width: 22px;
  height: 22px;
}

.form-card__meta {
  flex: 1;
  min-width: 0;
}

.form-card__title {
  display: block;
  font-family: var(--font-heading);
  font-size: 19px;
  line-height: 1.35;
  color: var(--color-ink);
  margin-bottom: 3px;
}

.form-card__type {
  display: block;
  font-size: 13px;
  letter-spacing: var(--letter-spacing-wide);
  text-transform: uppercase;
  color: var(--color-charcoal);
}

.form-card__dl {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 15px;
  font-weight: var(--font-weight-semibold);
  color: var(--color-navy-600);
  transition: color var(--transition-base);
}

.form-card:hover .form-card__dl {
  color: var(--color-gold);
}

.form-card__dl svg {
  width: 16px;
  height: 16px;
}

/* Help note */
.forms__help {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  margin-top: 40px;
  padding: 20px 24px;
  background: var(--color-bg-secondary);
  border-radius: var(--border-radius-lg);
}

.forms__help svg {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  margin-top: 3px;
  color: var(--color-gold);
}

.forms__help p {
  margin-bottom: 0;
}

.forms__help a {
  font-weight: var(--font-weight-semibold);
  color: var(--color-navy-600);
}

/* Responsive */
@media (max-width: 860px) {
  .form-list {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 560px) {
  .form-card {
    flex-wrap: wrap;
    gap: 14px;
    padding: 20px;
  }

  /* Download cue drops below the title rather than squeezing it */
  .form-card__dl {
    width: 100%;
    padding-left: 60px;
  }
}

/* ═══════════════════════════════════════════════════════════════════════════
   SERVICES DIRECTORY  (template-services.php)
   Reuses .spec-treat, .spec-link, .spec-care__features and .spec-cta.
   Only the centred intro, group header and divider are new.
   ═══════════════════════════════════════════════════════════════════════════ */

/* Intro sits directly above the oncology grid; drop its bottom padding so the
   two sections' padding doesn't stack into one oversized gap. */
.services-intro {
  padding-bottom: 0;
}

.services-intro__inner {
  max-width: 780px;
  margin: 0 auto;
  text-align: center;
}

.services-intro__inner h2 {
  margin-bottom: 20px;
}

/* Lay the shared feature list out as a centred 2×2 grid */
.services-intro__features {
  display: grid;
  grid-template-columns: repeat(2, auto);
  justify-content: center;
  justify-items: start;
  gap: 16px 48px;
  margin-top: 28px;
}

/* Stack to a single centred column on small screens */
@media (max-width: 560px) {
  .services-intro__features {
    grid-template-columns: auto;
    justify-content: center;
  }
}

/* Group header: title on the left, "View all" on the right */
.services-group__head {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 20px;
  flex-wrap: wrap;
  margin-bottom: 32px;
}

.services-group__head h2 {
  margin-top: 8px;
}

.services-group__viewall {
  font-weight: var(--font-weight-bold);
  font-size: 15px;
  white-space: nowrap;
  color: var(--color-gold);
  text-decoration: none;
}

.services-group__viewall:hover {
  text-decoration: underline;
}

/* Divider before the second group */
.services-group--divided {
  margin-top: 66px;
  padding-top: 54px;
  border-top: 1px solid var(--color-line);
}

/* ═══════════════════════════════════════════════════════════════════════════
   LEGAL PAGES (Terms, Privacy, etc.)
   Banner + spec-cta are shared. Body comes from the WP editor; the sidebar
   is auto-built from its <h2> headings.
   ═══════════════════════════════════════════════════════════════════════════ */

/* Optional "Last Updated" line under the banner subtitle */
.legal-hero__meta {
  display: inline-block;
  margin-top: 18px;
  font-size: 14px;
  font-weight: var(--font-weight-semibold);
  letter-spacing: var(--letter-spacing-wide);
  text-transform: uppercase;
  color: var(--color-gold-soft);
}

/* Two columns: sticky table of contents + article */
.legal-wrap {
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: 64px;
  align-items: start;
}

.legal-wrap--single {
  grid-template-columns: 1fr;
  max-width: var(--container-narrow);
  margin: 0 auto;
}

/* Table of contents */
.legal-toc {
  position: sticky;
  top: 120px;
}

.legal-toc__title {
  font-family: var(--font-body);
  font-size: 12px;
  font-weight: var(--font-weight-bold);
  letter-spacing: var(--letter-spacing-wider);
  text-transform: uppercase;
  color: var(--color-gold);
  margin-bottom: 18px;
}

.legal-toc__list {
  list-style: none;
  counter-reset: toc;
  margin: 0;
  padding: 0;
  border-left: 1px solid var(--color-line);
}

.legal-toc__list li {
  counter-increment: toc;
  margin: 0;
}

.legal-toc__list a {
  display: block;
  padding: 7px 0 7px 18px;
  margin-left: -1px;
  border-left: 2px solid transparent;
  font-size: 14px;
  line-height: 1.4;
  color: var(--color-body);
  text-decoration: none;
  transition: color var(--transition-fast), border-color var(--transition-fast);
}

.legal-toc__list a::before {
  content: counter(toc, decimal-leading-zero) ".  ";
  color: var(--color-gold);
  font-weight: var(--font-weight-bold);
}

.legal-toc__list a:hover {
  color: var(--color-navy);
  border-left-color: var(--color-line-strong, var(--color-line));
}

/* Scroll-spy: the section currently in view gets the gold line marker.
   Because each item shares the list's left border, the active item's gold
   segment reads as a single indicator travelling down as you scroll. */
.legal-toc__list a.is-active {
  color: var(--color-navy);
  font-weight: var(--font-weight-semibold);
  border-left-color: var(--color-gold);
}

/* Article body — editor content, numbered legal sections */
.legal-body {
  counter-reset: legal;
  max-width: 760px;
}

.legal-body > h2 {
  counter-increment: legal;
  scroll-margin-top: 120px;
  margin-top: 52px;
  margin-bottom: 18px;
  padding-top: 30px;
  border-top: 1px solid var(--color-line);
  font-size: var(--font-size-2xl);
  line-height: 1.2;
}

.legal-body > h2::before {
  content: counter(legal, decimal-leading-zero);
  display: inline-block;
  margin-right: 14px;
  font-family: var(--font-body);
  font-size: 15px;
  font-weight: var(--font-weight-bold);
  color: var(--color-gold);
  vertical-align: middle;
}

/* First section shouldn't carry the top rule/space */
.legal-body > h2:first-child,
.legal-body > .intro + h2,
.legal-body > p:first-child + h2 {
  border-top: 0;
}

.legal-body p {
  margin-bottom: 18px;
  line-height: var(--line-height-relaxed);
  color: var(--color-body);
}

.legal-body h3 {
  margin-top: 30px;
  margin-bottom: 12px;
  font-size: var(--font-size-lg);
}

.legal-body ol {
  margin: 0 0 18px 22px;
  padding: 0;
}

/* Custom gold bullet markers */
.legal-body ul {
  list-style: none;
  margin: 0 0 18px 0;
  padding: 0;
}

.legal-body ul li {
  position: relative;
  padding-left: 26px;
}

.legal-body ul li::before {
  content: "";
  position: absolute;
  left: 4px;
  top: 0.62em;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--color-gold);
  transform: translateY(-50%);
}

/* Nested lists use a lighter ring marker */
.legal-body ul ul {
  margin: 8px 0 0 0;
}

.legal-body ul ul li::before {
  background: transparent;
  border: 1.5px solid var(--color-gold);
}

.legal-body li {
  margin-bottom: 8px;
  line-height: var(--line-height-relaxed);
  color: var(--color-body);
}

.legal-body a {
  color: var(--color-gold);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.legal-body .intro {
  font-size: var(--font-size-lg);
  line-height: var(--line-height-relaxed);
  color: var(--color-navy-700);
}

/* Emphasis callout (e.g. emergency notice) if used in the editor */
.legal-body .legal-callout {
  display: flex;
  gap: 14px;
  margin: 24px 0;
  padding: 20px 24px;
  border-radius: var(--border-radius-lg);
  background: var(--color-gold-soft);
  border: 1px solid var(--color-line-cream);
}

.legal-body .legal-callout p {
  margin: 0;
  font-weight: var(--font-weight-semibold);
  color: var(--color-navy);
}

/* Default contact box appended to the end of every legal page */
.legal-contact {
  margin-top: 8px;
  padding: 28px 32px;
  border: 1px solid var(--color-line);
  border-radius: var(--border-radius-lg);
  background: var(--color-cream);
}

.legal-contact__name {
  font-family: var(--font-heading);
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-semibold);
  color: var(--color-navy);
  margin-bottom: 16px;
}

.legal-contact dl {
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 20px 20px;
  margin: 0;
}

.legal-contact dt {
  font-size: 12px;
  font-weight: var(--font-weight-bold);
  letter-spacing: var(--letter-spacing-wider);
  text-transform: uppercase;
  color: var(--color-slate, var(--color-body));
  padding-top: 3px;
}

.legal-contact dd {
  margin: 0;
  line-height: var(--line-height-base);
  color: var(--color-body);
}

/* Each phone/address on its own row, with clear separation between them */
.legal-contact__line {
  padding: 2px 0;
}

.legal-contact__line + .legal-contact__line {
  margin-top: 6px;
}

/* Bold navy emphasis for the website + phone numbers, per design */
.legal-contact__strong {
  font-weight: var(--font-weight-bold);
  color: var(--color-navy);
  text-decoration: none;
}

.legal-contact__strong:hover {
  color: var(--color-gold);
}

.legal-contact dd a {
  color: var(--color-gold);
  text-decoration: none;
}

.legal-contact dd a:hover {
  text-decoration: underline;
}

@media (max-width: 560px) {
  .legal-contact dl {
    grid-template-columns: 1fr;
    gap: 4px 0;
  }

  .legal-contact dt {
    padding-top: 12px;
  }
}

/* Stack the sidebar above the article on tablets/phones */
@media (max-width: 900px) {
  .legal-wrap {
    grid-template-columns: 1fr;
    gap: 40px;
  }

  .legal-toc {
    position: static;
    top: auto;
    padding: 22px 24px;
    border-radius: var(--border-radius-lg);
    background: var(--color-cream);
  }

  .legal-body {
    max-width: none;
  }
}

/* ═══════════════════════════════════════════════════════════════════════════
   CONTACT PAGES

   Ported from the approved contact designs. The banner reuses .service-hero
   and the closing CTA reuses .spec-cta; everything below is contact-specific
   and mapped onto the global palette / type / shadow variables.
   ═══════════════════════════════════════════════════════════════════════════ */

/* Gold italic accent in interior-page headings (banner + CTA). */
.service-hero h1 em,
.spec-cta__content h2 em {
  font-style: italic;
  color: var(--color-gold-bright);
}

/* ── Quick contact strip ── */
.qstrip {
  background: var(--color-cream);
  border-bottom: 1px solid var(--color-line-cream);
}

.qstrip-in {
  max-width: var(--container-max-width);
  margin: 0 auto;
  padding: 34px var(--container-padding);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
}

.qitem {
  display: flex;
  align-items: flex-start;
  gap: 15px;
}

.qic {
  width: 48px;
  height: 48px;
  border-radius: 13px;
  background: var(--color-gold-soft);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.qic svg {
  width: 23px;
  height: 23px;
  fill: var(--color-gold);
}

.qitem .lbl {
  font-size: 12px;
  font-weight: var(--font-weight-extrabold);
  letter-spacing: 1.4px;
  text-transform: uppercase;
  color: #677583;
  margin-bottom: 4px;
}

.qitem .val {
  font-size: 16.5px;
  font-weight: var(--font-weight-bold);
  color: var(--color-ink);
  line-height: 1.45;
}

.qitem .val a {
  color: var(--color-ink);
  text-decoration: none;
  transition: color var(--transition-base);
}

.qitem .val a:hover {
  color: var(--color-gold);
}

.qitem .sub {
  color: #677583;
  font-weight: var(--font-weight-semibold);
  margin-top: 2px;
}

/* ── Section head (offices / maps / location detail) ── */
.sec-head {
  margin-bottom: 52px;
}

.sec-head h2 {
  font-size: clamp(30px, 3.8vw, 46px);
  font-weight: var(--font-weight-medium);
  letter-spacing: -0.4px;
}

.sec-head p {
  font-size: 18px;
  color: var(--color-body);
  line-height: 1.7;
  margin-top: 16px;
}

/* ── Offices ── */
.offices {
  padding: 80px 0 34px;
}

.offices-in,
.maps-in,
.loc-in,
.detail-in,
.mapfull-in {
  max-width: var(--container-max-width);
  margin: 0 auto;
  padding: 0 var(--container-padding);
}

.ogrid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 30px;
}

.ocard {
  background: #fff;
  border: 1px solid var(--color-line-cream);
  border-radius: 20px;
  overflow: hidden;
  box-shadow: var(--shadow-sm);
  display: flex;
  flex-direction: column;
  transition: box-shadow 0.22s, transform 0.22s;
}

.ocard:hover {
  box-shadow: var(--shadow-lg);
  transform: translateY(-4px);
}

.ofig {
  position: relative;
  aspect-ratio: 16 / 9;
  overflow: hidden;
}

.ofig img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.ofig .pin {
  position: absolute;
  top: 16px;
  left: 16px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  background: rgba(21, 38, 63, 0.92);
  color: #fff;
  font-size: 13px;
  font-weight: var(--font-weight-extrabold);
  letter-spacing: 0.5px;
  padding: 8px 15px;
  border-radius: var(--border-radius-pill);
}

.ofig .pin svg {
  width: 15px;
  height: 15px;
  fill: var(--color-gold-bright);
}

.obody {
  padding: 32px 32px 34px;
  display: flex;
  flex-direction: column;
  flex: 1;
}

.obody h3 {
  font-size: 27px;
  font-weight: var(--font-weight-semibold);
  margin-bottom: 18px;
}

.oline {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 13px;
  font-size: 16px;
  color: var(--color-body);
  line-height: 1.5;
}

.oline svg {
  width: 20px;
  height: 20px;
  fill: var(--color-gold);
  flex-shrink: 0;
  margin-top: 2px;
}

.oline a {
  color: var(--color-body);
  text-decoration: none;
  transition: color var(--transition-base);
  font-weight: var(--font-weight-semibold);
}

.oline a:hover {
  color: var(--color-gold);
}

.obtns {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: auto;
  padding-top: 24px;
}

.obtns .btn {
  font-size: 15px;
  padding: 13px 24px;
}

/* ── Map strip ── */
.maps {
  padding: 0 0 90px;
}

.mgrid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
}

.mbox {
  border-radius: 20px;
  overflow: hidden;
  border: 1px solid var(--color-line-cream);
  box-shadow: var(--shadow-sm);
}

.mbox iframe {
  width: 100%;
  height: 340px;
  border: 0;
  display: block;
  filter: grayscale(0.15);
}

.mcap {
  background: #fff;
  padding: 18px 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  flex-wrap: wrap;
}

.mcap .mn {
  font-family: var(--font-heading);
  font-size: 20px;
  font-weight: var(--font-weight-semibold);
  color: var(--color-ink);
}

.mcap a {
  font-size: 14px;
  font-weight: var(--font-weight-extrabold);
  color: var(--color-gold);
  text-decoration: none;
  letter-spacing: 0.3px;
}

.mcap a:hover {
  text-decoration: underline;
}

/* ── Form + info (main page: form left, aside right) ── */
.contact {
  padding: 60px 0 88px;
}

.contact-in {
  max-width: var(--container-max-width);
  margin: 0 auto;
  padding: 0 var(--container-padding);
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: 56px;
  align-items: start;
}

/* Location pages: a single, centered form (no aside). */
.contact--solo .contact-in {
  display: block;
  max-width: 900px;
}

.form-wrap {
  background: #fff;
  border: 1px solid var(--color-line-cream);
  border-radius: 22px;
  box-shadow: var(--shadow-md);
  padding: 44px 44px 46px;
}

.form-wrap h2 {
  font-size: 32px;
  font-weight: var(--font-weight-semibold);
  letter-spacing: -0.3px;
  margin-bottom: 10px;
}

.form-wrap .fp {
  font-size: 16.5px;
  color: var(--color-body);
  line-height: 1.6;
  margin-bottom: 32px;
}

.form-wrap .sec-head {
  text-align: center;
  margin: 0 auto 34px;
}

.form-wrap .sec-head .kicker {
  justify-content: center;
}

.frow {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  margin-bottom: 18px;
}

.field {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.field.full {
  grid-column: 1 / -1;
  margin-bottom: 18px;
}

.field label {
  font-size: 13.5px;
  font-weight: var(--font-weight-extrabold);
  letter-spacing: 0.4px;
  color: var(--color-ink);
}

.field label .req {
  color: var(--color-gold);
}

.field input,
.field select,
.field textarea {
  font-family: var(--font-body);
  font-size: 16px;
  color: var(--color-ink);
  padding: 14px 16px;
  border: 1.5px solid var(--color-line);
  border-radius: 12px;
  background: var(--color-white);
  transition: border 0.2s, box-shadow 0.2s;
  width: 100%;
}

.field textarea {
  resize: vertical;
  min-height: 130px;
  line-height: 1.55;
}

.field input:focus,
.field select:focus,
.field textarea:focus {
  outline: none;
  border-color: var(--color-gold);
  box-shadow: 0 0 0 3px rgba(168, 110, 22, 0.12);
}

.form-wrap .form-submit {
  margin-top: 8px;
  border-radius: var(--border-radius-pill);
  font-size: 16.5px;
  padding: 17px 30px;
}

.form-note {
  font-size: 13px;
  color: #677583;
  line-height: 1.6;
  margin-top: 18px;
  text-align: center;
}

.form-msg {
  display: none;
  background: #ebf1ea;
  border: 1px solid #cfe0cd;
  color: #4e6f52;
  font-weight: var(--font-weight-bold);
  font-size: 15.5px;
  padding: 16px 20px;
  border-radius: 12px;
  margin-bottom: 24px;
}

/* Aside boxes (main page) */
.aside .abox {
  background: var(--color-navy);
  color: #cdd8e6;
  border-radius: 22px;
  padding: 40px 38px;
  margin-bottom: 24px;
}

.aside .abox h3 {
  color: #fff;
  font-size: 24px;
  font-weight: var(--font-weight-semibold);
  margin-bottom: 22px;
}

.aside .aline {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  margin-bottom: 20px;
}

.aside .aline:last-child {
  margin-bottom: 0;
}

.aside .aic {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: var(--color-navy-700);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.aside .aic svg {
  width: 21px;
  height: 21px;
  fill: var(--color-gold-bright);
}

.aside .aline .lbl {
  font-size: 12px;
  font-weight: var(--font-weight-extrabold);
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: #8ea3bd;
  margin-bottom: 3px;
}

.aside .aline .txt {
  font-size: 16px;
  font-weight: var(--font-weight-semibold);
  color: #fff;
  line-height: 1.5;
}

.aside .aline .txt a {
  color: #fff;
  text-decoration: none;
  transition: color var(--transition-base);
}

.aside .aline .txt a:hover {
  color: var(--color-gold-bright);
}

.aside .abox.hours {
  background: var(--color-cream);
  color: var(--color-body);
  border: 1px solid var(--color-line-cream);
}

.aside .abox.hours h3 {
  color: var(--color-ink);
}

.hrow {
  display: flex;
  justify-content: space-between;
  padding: 11px 0;
  border-bottom: 1px solid var(--color-line-cream);
  font-size: 16px;
}

.hrow:last-child {
  border-bottom: none;
}

.hrow .d {
  font-weight: var(--font-weight-bold);
  color: var(--color-ink);
}

.hrow .t {
  color: var(--color-body);
  font-weight: var(--font-weight-semibold);
}

.hrow .t.closed {
  color: #677583;
}

/* ── Location overview (West Hills / Tarzana) ── */
.loc {
  padding: 80px 0 20px;
}

.loc-in {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 56px;
  align-items: center;
}

.loc-fig {
  border-radius: 22px;
  overflow: hidden;
  box-shadow: var(--shadow-md);
  border: 1px solid var(--color-line-cream);
}

.loc-fig img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  aspect-ratio: 4 / 3;
}

.loc-info h2 {
  font-size: clamp(28px, 3.4vw, 42px);
  font-weight: var(--font-weight-medium);
  letter-spacing: -0.4px;
  margin-bottom: 14px;
}

.loc-info .lead {
  font-size: 18px;
  color: var(--color-body);
  line-height: 1.7;
  margin-bottom: 30px;
}

.infocard {
  background: var(--color-cream);
  border: 1px solid var(--color-line-cream);
  border-radius: 16px;
  padding: 26px 28px;
  margin-bottom: 22px;
}

.iline {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  margin-bottom: 16px;
}

.iline:last-child {
  margin-bottom: 0;
}

.iline .iic {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: var(--color-gold-soft);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.iline .iic svg {
  width: 21px;
  height: 21px;
  fill: var(--color-gold);
}

.iline .lbl {
  font-size: 12px;
  font-weight: var(--font-weight-extrabold);
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: #677583;
  margin-bottom: 3px;
}

.iline .txt {
  font-size: 16.5px;
  font-weight: var(--font-weight-bold);
  color: var(--color-ink);
  line-height: 1.5;
}

.iline .txt a {
  color: var(--color-ink);
  text-decoration: none;
  transition: color var(--transition-base);
}

.iline .txt a:hover {
  color: var(--color-gold);
}

.loc-btns {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}

/* ── Detail cards ── */
.detail {
  padding: 64px 0 20px;
}

.detail-in {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 26px;
}

.dcard {
  background: #fff;
  border: 1px solid var(--color-line-cream);
  border-radius: 18px;
  padding: 32px 30px;
  box-shadow: var(--shadow-sm);
}

.dcard .dic {
  width: 50px;
  height: 50px;
  border-radius: 13px;
  background: var(--color-navy);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 18px;
}

.dcard .dic svg {
  width: 24px;
  height: 24px;
  fill: var(--color-gold-bright);
}

.dcard h3 {
  font-size: 21px;
  font-weight: var(--font-weight-semibold);
  margin-bottom: 12px;
}

.dcard p {
  font-size: 15.5px;
  color: var(--color-body);
  line-height: 1.7;
}

/* ── Full-width map (location pages) ── */
.mapfull {
  padding: 56px 0 20px;
}

.mapfull .sec-head {
  max-width: none;
  margin-bottom: 34px;
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 28px;
  flex-wrap: wrap;
}

.mapfull .sec-head .btn {
  flex-shrink: 0;
}

.mapfull .sec-head h2 {
  font-size: clamp(28px, 3.4vw, 42px);
  font-weight: var(--font-weight-medium);
  letter-spacing: -0.4px;
}

.mapfull .sec-head p {
  font-size: 18px;
  color: var(--color-body);
  line-height: 1.7;
  margin-top: 14px;
}

.mapbox {
  border-radius: 22px;
  overflow: hidden;
  border: 1px solid var(--color-line-cream);
  box-shadow: var(--shadow-sm);
}

.mapbox iframe {
  width: 100%;
  height: 440px;
  border: 0;
  display: block;
  filter: grayscale(0.15);
}

/* ── Other location strip ── */
.other {
  background: var(--color-cream);
  border-top: 1px solid var(--color-line-cream);
  border-bottom: 1px solid var(--color-line-cream);
}

.other-in {
  max-width: var(--container-max-width);
  margin: 0 auto;
  padding: 44px var(--container-padding);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 26px;
  flex-wrap: wrap;
}

.other-txt .lbl {
  font-size: 12px;
  font-weight: var(--font-weight-extrabold);
  letter-spacing: 1.6px;
  text-transform: uppercase;
  color: var(--color-gold);
  margin-bottom: 6px;
}

.other-txt h3 {
  font-size: 26px;
  font-weight: var(--font-weight-semibold);
  color: var(--color-ink);
}

.other-txt p {
  font-size: 16px;
  color: var(--color-body);
  margin-top: 4px;
}

/* ── Contact-page responsive ── */
@media (max-width: 960px) {
  .qstrip-in {
    grid-template-columns: 1fr 1fr;
    gap: 26px;
  }

  .contact-in {
    grid-template-columns: 1fr;
    gap: 40px;
  }

  .ogrid,
  .mgrid,
  .loc-in,
  .detail-in {
    grid-template-columns: 1fr;
  }

  .loc-in {
    gap: 38px;
  }
}

@media (max-width: 760px) {
  .qstrip-in {
    grid-template-columns: 1fr;
  }

  .offices {
    padding: 56px 0 24px;
  }

  .frow {
    grid-template-columns: 1fr;
  }

  .form-wrap {
    padding: 32px 26px 34px;
  }

  .other-in {
    flex-direction: column;
    align-items: flex-start;
  }
}

/* ═══════════════════════════════════════════════════════════════════════════
   AWARDS PAGE

   Ported from the approved awards design. Banner reuses .service-hero, the
   section head reuses .sec-head, and the closing CTA reuses .spec-cta.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Stats band ── */
.stats {
  background: var(--color-cream);
  border-bottom: 1px solid var(--color-line-cream);
}

.stats-in {
  max-width: var(--container-max-width);
  margin: 0 auto;
  padding: 44px var(--container-padding);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
}

.stat {
  text-align: center;
}

.stat .n {
  font-family: var(--font-heading);
  font-size: clamp(40px, 5vw, 58px);
  font-weight: var(--font-weight-semibold);
  color: var(--color-gold);
  line-height: 1;
}

.stat .l {
  font-size: 15px;
  font-weight: var(--font-weight-bold);
  color: var(--color-body);
  margin-top: 10px;
  letter-spacing: 0.2px;
}

/* ── Awards grid ── */
.awards-list {
  padding: 80px 0 40px;
}

.awards-in {
  max-width: var(--container-max-width);
  margin: 0 auto;
  padding: 0 var(--container-padding);
}

.agrid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 26px;
}

.award-card {
  background: #fff;
  border: 1px solid var(--color-line-cream);
  border-radius: 20px;
  padding: 36px 34px 34px;
  box-shadow: var(--shadow-sm);
  display: flex;
  flex-direction: column;
  transition: box-shadow 0.22s, transform 0.22s;
}

.award-card:hover {
  box-shadow: var(--shadow-lg);
  transform: translateY(-4px);
}

.award-badge {
  width: 60px;
  height: 60px;
  border-radius: 15px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 22px;
  background: var(--color-gold-soft);
}

.award-badge svg {
  width: 30px;
  height: 30px;
  fill: var(--color-gold);
}

.abadge-logo {
  width: 100%;
  height: 66px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  margin-bottom: 22px;
}

.abadge-logo img {
  max-height: 66px;
  max-width: 180px;
  width: auto;
  object-fit: contain;
}

.award-card h3 {
  font-family: var(--font-heading);
  font-size: 23px;
  font-weight: var(--font-weight-semibold);
  color: var(--color-ink);
  line-height: 1.2;
  margin-bottom: 12px;
}

.award-card p {
  font-size: 15.5px;
  color: var(--color-body);
  line-height: 1.65;
  margin-bottom: 22px;
  flex: 1;
}

.ayear {
  font-size: 12.5px;
  font-weight: var(--font-weight-extrabold);
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--color-gold);
  background: var(--color-gold-soft);
  align-self: flex-start;
  padding: 6px 14px;
  border-radius: var(--border-radius-pill);
}

/* ── Verification note ── */
.note {
  padding: 20px 0 84px;
}

.note-in {
  max-width: var(--container-max-width);
  margin: 0 auto;
  padding: 0 var(--container-padding);
}

.note-box {
  background: #ebf1ea;
  border: 1px solid #cfe0cd;
  border-radius: 16px;
  padding: 26px 30px;
  display: flex;
  align-items: flex-start;
  gap: 16px;
}

.note-box svg {
  width: 26px;
  height: 26px;
  fill: #4e6f52;
  flex-shrink: 0;
  margin-top: 2px;
}

.note-box p {
  font-size: 15.5px;
  color: var(--color-body);
  line-height: 1.65;
}

.note-box a {
  color: #4e6f52;
  font-weight: var(--font-weight-bold);
}

/* ── Awards-page responsive ── */
@media (max-width: 1000px) {
  .agrid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 760px) {
  .awards-list {
    padding: 56px 0 24px;
  }

  .agrid {
    grid-template-columns: 1fr;
  }

  .stats-in {
    grid-template-columns: 1fr;
    gap: 24px;
  }
}

/* ═══════════════════════════════════════════════════════════════════════════
   TESTIMONIALS PAGE

   Ported from the approved testimonials design. Banner reuses .service-hero
   and the closing CTA reuses .spec-cta.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Rating summary band ── */
.summary {
  background: var(--color-cream);
  border-bottom: 1px solid var(--color-line-cream);
}

.summary-in {
  max-width: var(--container-max-width);
  margin: 0 auto;
  padding: 44px var(--container-padding);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  flex-wrap: wrap;
}

.sum-score {
  display: flex;
  align-items: center;
  gap: 24px;
}

.sum-num {
  font-family: var(--font-heading);
  font-size: 76px;
  font-weight: var(--font-weight-semibold);
  color: var(--color-ink);
  line-height: 0.9;
}

.sum-num em {
  font-style: normal;
  color: var(--color-gold);
  font-size: 40px;
}

.sum-detail .stars {
  color: var(--color-gold-bright);
  font-size: 24px;
  letter-spacing: 5px;
}

.sum-detail .lbl {
  font-size: 15px;
  font-weight: var(--font-weight-bold);
  color: #677583;
  margin-top: 8px;
}

.sum-detail .lbl b {
  color: var(--color-ink);
}

.sum-note {
  max-width: 460px;
  font-size: 16px;
  line-height: 1.7;
  color: var(--color-body);
}

/* ── Reviews grid ── */
.reviews {
  padding: 74px 0;
}

.reviews-in {
  max-width: var(--container-max-width);
  margin: 0 auto;
  padding: 0 var(--container-padding);
}

.reviews-head {
  margin-bottom: 40px;
}

.reviews-head h2 {
  font-size: clamp(30px, 3.8vw, 46px);
  font-weight: var(--font-weight-medium);
  letter-spacing: -0.4px;
}

.reviews-head p {
  font-size: 18px;
  color: var(--color-body);
  line-height: 1.7;
  margin-top: 16px;
}

.rgrid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

.rcard {
  background: #fff;
  border: 1px solid var(--color-line-cream);
  border-radius: 18px;
  padding: 34px 32px;
  box-shadow: var(--shadow-sm);
  display: flex;
  flex-direction: column;
  transition: box-shadow 0.22s, transform 0.22s;
}

.rcard:hover {
  box-shadow: var(--shadow-lg);
  transform: translateY(-4px);
}

.rc-stars {
  color: var(--color-gold-bright);
  font-size: 17px;
  letter-spacing: 3px;
  margin-bottom: 18px;
}

.rc-text {
  font-family: var(--font-heading);
  font-size: 18px;
  line-height: 1.6;
  color: var(--color-body);
  font-style: italic;
  margin-bottom: 26px;
  flex: 1;
}

.rc-foot {
  display: flex;
  align-items: center;
  gap: 13px;
  flex-wrap: wrap;
  padding-top: 20px;
  border-top: 1px solid var(--color-line-cream);
}

.rc-av {
  width: 46px;
  height: 46px;
  border-radius: 50%;
  background: var(--color-gold);
  color: #fff;
  font-family: var(--font-heading);
  font-size: 19px;
  font-weight: var(--font-weight-semibold);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.rc-meta {
  flex: 1;
  min-width: 0;
}

.rc-nm {
  font-weight: var(--font-weight-extrabold);
  color: var(--color-ink);
  font-size: 15.5px;
}

.rc-src {
  font-size: 12px;
  font-weight: var(--font-weight-bold);
  letter-spacing: 0.5px;
  color: #677583;
  margin-top: 2px;
}

.rc-tag {
  font-size: 12px;
  font-weight: var(--font-weight-extrabold);
  letter-spacing: 0.4px;
  color: var(--color-gold);
  background: var(--color-gold-soft);
  padding: 6px 12px;
  border-radius: var(--border-radius-pill);
  white-space: nowrap;
}

/* ── Review widget placeholder ── */
.widget {
  padding: 0 0 84px;
}

.widget-in {
  max-width: var(--container-max-width);
  margin: 0 auto;
  padding: 0 var(--container-padding);
}

.widget-box {
  border: 2px dashed var(--color-gold);
  border-radius: 20px;
  background: linear-gradient(120deg, var(--color-cream), var(--color-gold-soft));
  padding: 56px 40px;
  text-align: center;
  position: relative;
}

.widget-box .wtag {
  display: inline-block;
  font-size: 12px;
  font-weight: var(--font-weight-extrabold);
  letter-spacing: 1.6px;
  text-transform: uppercase;
  color: var(--color-gold);
  background: #fff;
  border: 1px solid var(--color-gold-soft);
  padding: 7px 16px;
  border-radius: var(--border-radius-pill);
  margin-bottom: 20px;
}

.widget-box h3 {
  font-size: clamp(24px, 3vw, 34px);
  font-weight: var(--font-weight-medium);
  color: var(--color-ink);
  margin-bottom: 12px;
}

.widget-box p {
  font-size: 17px;
  color: var(--color-body);
  line-height: 1.65;
  max-width: 560px;
  margin: 0 auto 8px;
}

.widget-box .hint {
  font-size: 13.5px;
  color: #677583;
  margin-top: 18px;
  font-style: italic;
}

/* ── Testimonials-page responsive ── */
@media (max-width: 1080px) {
  .rgrid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 760px) {
  .reviews {
    padding: 60px 0;
  }

  .rgrid {
    grid-template-columns: 1fr;
  }

  .summary-in {
    flex-direction: column;
    align-items: flex-start;
    gap: 26px;
  }

  .sum-num {
    font-size: 60px;
  }
}

/* ═══════════════════════════════════════════════════════════════════════════
   PROCESS SECTION (Your Care Starts Here)
   ═══════════════════════════════════════════════════════════════════════════ */

.process {
  padding: var(--section-padding-y) 0;
  background: var(--color-navy);
  position: relative;
  overflow: hidden;
}

/* Faint decorative mark */
.process__mark {
  position: absolute;
  top: -90px;
  right: -90px;
  width: 420px;
  height: 420px;
  color: var(--color-gold);
  opacity: 0.09;
  pointer-events: none;
}

.process__inner {
  max-width: var(--container-max-width);
  margin: 0 auto;
  padding: 0 var(--container-padding);
  position: relative;
  z-index: 1;
}

.process .kicker {
  color: var(--color-gold-bright);
}

.process .kicker::before {
  color: var(--color-gold-bright);
}

.process .h-sec {
  color: var(--color-white);
}

.process__lead {
  color: #c3d0df;
  margin-top: 18px;
}

.process__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 26px;
  margin-top: 58px;
}

.process__step {
  position: relative;
  background: var(--color-white);
  border: 1px solid var(--color-line-cream);
  border-radius: var(--border-radius-xl);
  padding: 44px 38px;
  box-shadow: var(--shadow-md);
  transition: transform var(--transition-slow), box-shadow var(--transition-slow);
}

.process__step:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-lg);
}

.process__num {
  font-family: var(--font-heading);
  font-size: 22px;
  font-weight: var(--font-weight-semibold);
  color: var(--color-gold);
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: var(--color-gold-soft);
  border: 1px solid rgba(168, 110, 22, 0.2);
}

.process__step h4 {
  font-family: var(--font-heading);
  font-size: 24px;
  font-weight: var(--font-weight-semibold);
  color: var(--color-ink);
  line-height: 1.3;
  margin-top: 26px;
}

.process__step p {
  font-size: 16px;
  line-height: 1.65;
  color: var(--color-body);
  margin-top: 14px;
}

.process__cta {
  text-align: center;
  margin-top: 46px;
}

@media (max-width: 860px) {
  .process__grid {
    grid-template-columns: 1fr;
  }
}

/* ── Providers subtitle ── */
.providers__subtitle {
  max-width: 760px;
  margin: 18px auto 0;
  color: var(--color-body);
}

@media (max-width: 768px) {
  /* More breathing room on the sides of the provider cards */
  .providers__inner {
    padding-left: 24px;
    padding-right: 24px;
  }

  /* "Your Path Forward" header reads better left-aligned on phones */
  .process .text-center {
    text-align: left;
  }
}

/* ── Areas We Serve ── */
.areas {
  padding: 90px 0;
  background: #fff;
  border-top: 1px solid var(--color-line-cream);
}

.areas__inner {
  max-width: var(--container-max-width);
  margin: 0 auto;
  padding: 0 var(--container-padding);
  text-align: center;
}

.areas .h-sec {
  max-width: 840px;
  margin: 14px auto 0;
}

.areas__subtitle {
  max-width: 640px;
  margin: 20px auto 0;
  color: var(--color-body);
}

.areas__tags {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 14px;
  margin: 38px auto 0;
  max-width: 760px;
}

.areas__tag {
  font-family: var(--font-body);
  font-size: 15px;
  font-weight: 600;
  white-space: nowrap;
  color: var(--color-ink);
  background: #fff;
  border: 1px solid var(--color-line-cream);
  border-radius: var(--border-radius-pill);
  padding: 12px 24px;
  box-shadow: var(--shadow-sm);
}

/* ═══════════════════════════════════════════════════════════════════════════
   iPad / TABLET TIER (861–1180px)
   The homepage card grids don't collapse until 992px, so iPad Pro 12.9"
   portrait (1024px) and landscape tablets (1080–1180px) render the full
   desktop column counts and look cramped. This band drops the 3–4 column
   card grids to 2 columns — mirroring the optimized iPad comp. Bounded with
   min-width:861px so it never overrides the existing ≤860/≤768 mobile rules
   (which already handle the 2→1 collapse), keeping phones untouched.
   ═══════════════════════════════════════════════════════════════════════════ */
@media (min-width: 861px) and (max-width: 1180px) {
  .welcome__features {
    grid-template-columns: repeat(2, 1fr);
  }

  .blog__grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .process__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* ═══════════════════════════════════════════════════════════════════════════
   SERVICE BANDS — TABLET STACK (≤1180px)
   Oncology / Hematology bands are 2-column with a tall image on desktop. On
   tablets (incl. iPad Pro portrait 1024px and landscape 1080–1180px) stack
   them: a compact banner image on top, full-width copy below — so the content
   takes the width instead of sharing it with a large image.
   ═══════════════════════════════════════════════════════════════════════════ */
@media (max-width: 1180px) {
  .band {
    grid-template-columns: 1fr;
    min-height: 0;
  }

  /* Image above the copy (hematology is already media-first in the DOM) */
  .band--oncology .band-media {
    order: -1;
  }

  /* A lot shorter than the desktop 440–600px so the copy dominates */
  .band-media {
    min-height: 0;
    height: 260px;
  }

  .band-copy {
    padding: 48px clamp(24px, 5vw, 64px);
  }
}

/* ═══════════════════════════════════════════════════════════════════════════
   HERO IMAGE — TABLET SIZING (769–1180px)
   The hero frame is a fixed 540×480 for desktop. On tablets the two-column
   hero keeps that frame, so it overflows the narrower image column and spills
   off-screen. Make it fluid and cap it smaller so it fits and the copy keeps
   the width. Aspect-ratio preserves the desktop proportions (no distortion).
   ═══════════════════════════════════════════════════════════════════════════ */
@media (min-width: 769px) and (max-width: 1180px) {
  .hero-framed__frame {
    width: 100%;
    max-width: 360px;
    height: auto;
    aspect-ratio: 540 / 480;
  }
}

/* ═══════════════════════════════════════════════════════════════════════════
   HERO VIDEO BANNER
   Full-bleed brand video that autoplays muted. A centered play button appears
   only while paused; a sound toggle lets visitors opt into audio.
   ═══════════════════════════════════════════════════════════════════════════ */
.hvid {
  position: relative;
  background: var(--color-navy);
  overflow: hidden;
}

.hvid-wrap {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  min-height: 695px;
  max-height: 93vh;
  background: var(--color-navy);
}

.hvid-video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Centered play control — only visible when the video is paused. */
.hvid-play {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 0;
}

.hvid-play span {
  width: 92px;
  height: 92px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.14);
  border: 1.5px solid rgba(255, 255, 255, 0.5);
  backdrop-filter: blur(4px);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.25s, transform 0.25s;
}

.hvid-play:hover span {
  background: rgba(212, 147, 58, 0.92);
  transform: scale(1.06);
}

.hvid-play svg {
  width: 30px;
  height: 30px;
  fill: #fff;
  margin-left: 4px;
}

.hvid-play.is-hidden {
  display: none;
}

/* Sound toggle — bottom-right pill. */
.hvid-sound {
  position: absolute;
  right: 20px;
  bottom: 20px;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 10px 16px;
  border-radius: 999px;
  background: rgba(21, 38, 63, 0.55);
  border: 1px solid rgba(255, 255, 255, 0.35);
  backdrop-filter: blur(6px);
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.2px;
  cursor: pointer;
  transition: background 0.2s, transform 0.2s;
}

.hvid-sound:hover {
  background: rgba(168, 110, 22, 0.92);
  transform: translateY(-1px);
}

.hvid-sound__icon {
  width: 20px;
  height: 20px;
  fill: #fff;
  flex: none;
}

/* Show the correct speaker icon for the current mute state. */
.hvid-sound__icon--on {
  display: none;
}

.hvid-sound.is-muted .hvid-sound__icon--on {
  display: none;
}

.hvid-sound.is-muted .hvid-sound__icon--muted {
  display: block;
}

.hvid-sound:not(.is-muted) .hvid-sound__icon--muted {
  display: none;
}

.hvid-sound:not(.is-muted) .hvid-sound__icon--on {
  display: block;
}

/* The "Tap for sound" hint only reads while muted. */
.hvid-sound:not(.is-muted) .hvid-sound__label {
  display: none;
}

/* Tablets — scale the height floor down so it stays proportional. */
@media (max-width: 1024px) {
  .hvid-wrap {
    min-height: 590px;
  }
}

@media (max-width: 760px) {
  .hvid-wrap {
    /* Wider ratio on phones so the 16:9 video isn't cropped so hard. The
       lower floor lets the aspect-ratio govern height instead of forcing a
       tall box (which is what pushed the crop in). No vh cap so it breathes. */
    aspect-ratio: 3 / 2;
    min-height: 300px;
    max-height: none;
  }

  .hvid-play span {
    width: 64px;
    height: 64px;
  }

  .hvid-play svg {
    width: 22px;
    height: 22px;
  }

  .hvid-sound {
    right: 14px;
    bottom: 14px;
    padding: 9px 13px;
    font-size: 13px;
  }
}

/* Honor reduced-motion — JS pauses the video, so surface the play button. */
@media (prefers-reduced-motion: reduce) {
  .hvid-play.is-hidden {
    display: flex;
  }
}

/* ═══════════════════════════════════════════════════════════════════════════
   HOSPITAL PRIVILEGES / AFFILIATIONS
   ═══════════════════════════════════════════════════════════════════════════ */
.hosp {
  background: var(--color-white);
  padding: 96px 0;
  border-top: 1px solid var(--color-border-warm);
}

.hosp-grid {
  display: grid;
  grid-template-columns: 1.08fr 0.92fr;
  gap: 64px;
  align-items: center;
}

.hosp-copy .h-sec {
  font-size: clamp(30px, 3vw, 42px);
  letter-spacing: -0.5px;
  line-height: 1.16;
  text-wrap: pretty;
}

.hosp-lead {
  margin-top: 18px;
}

.hosp-p {
  margin-top: 20px;
  font-size: 17.5px;
  line-height: 1.7;
  color: var(--color-body);
  text-wrap: pretty;
}

.hosp-cards {
  display: grid;
  gap: 20px;
}

.hosp-card {
  background: var(--color-cream);
  border: 1px solid var(--color-border-warm);
  border-radius: 6px;
  padding: 28px 30px;
}

.hosp-logo {
  height: 44px;
  margin-bottom: 18px;
}

.hosp-logo img {
  height: 100%;
  width: auto;
  object-fit: contain;
}

.hosp-card h3 {
  font-size: 22px;
  line-height: 1.25;
  color: var(--color-ink);
}

.hosp-card p {
  font-size: 15.5px;
  color: var(--color-muted, #677583);
  margin-top: 8px;
}

.hosp-note {
  font-size: 15.5px;
  color: var(--color-muted, #677583);
}

.hosp-note a {
  color: var(--color-gold);
  font-weight: 700;
  text-decoration: none;
}

.hosp-note a:hover {
  text-decoration: underline;
}

@media (max-width: 960px) {
  .hosp {
    padding: 64px 0;
  }

  .hosp-grid {
    grid-template-columns: 1fr;
    gap: 38px;
  }
}

/* ============================================================
   Provider "In Practice" Gallery — two auto-scrolling photo
   rows that pause on hover; click a photo to open the lightbox.
   ============================================================ */
.pgal {
  background: var(--color-cream);
  border-top: 1px solid var(--color-border-warm);
  padding: 78px 0 86px;
  overflow: hidden;
}

.pgal-in {
  max-width: var(--container-max-width);
  margin: 0 auto;
  padding: 0 40px;
}

.pgal-in.full {
  max-width: none;
  padding: 0;
}

.pgal-head {
  margin-bottom: 44px;
}

.pgal-head-in {
  max-width: var(--container-max-width);
  margin-left: auto;
  margin-right: auto;
  padding: 0 40px;
}

.pgal-head .kicker {
  margin-bottom: 0;
}

.pgal-head h2 {
  font-family: var(--font-heading);
  font-size: clamp(25px, 2.6vw, 38px);
  font-weight: 500;
  letter-spacing: -0.4px;
  line-height: 1.18;
  margin-top: 14px;
  white-space: nowrap;
}

.pgal-rows {
  display: grid;
  gap: 16px;
}

.pgal-row {
  overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 5%, #000 95%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 5%, #000 95%, transparent);
}

.pgal-track {
  display: flex;
  width: max-content;
  animation: pgalslide 120s linear infinite;
}

.pgal-row.rev .pgal-track {
  animation-duration: 145s;
  animation-direction: reverse;
}

.pgal-rows:hover .pgal-track,
.pgal-rows.paused .pgal-track {
  animation-play-state: paused;
}

@keyframes pgalslide {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

.gtile {
  flex: 0 0 auto;
  height: 280px;
  margin-right: 16px;
  position: relative;
  padding: 0;
  border: none;
  background: var(--color-ice);
  border-radius: 6px;
  overflow: hidden;
  cursor: zoom-in;
  box-shadow: var(--shadow-sm);
  transition: transform 0.4s cubic-bezier(0.2, 0.7, 0.3, 1), box-shadow 0.4s;
}

.gtile img {
  height: 100%;
  width: auto;
  max-width: none;
  display: block;
  object-fit: cover;
  transition: transform 0.8s cubic-bezier(0.2, 0.7, 0.3, 1);
}

.gtile::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 58%, rgba(20, 32, 48, 0.3));
  opacity: 0;
  transition: opacity 0.4s;
}

.gtile:hover {
  transform: translateY(-5px);
  box-shadow: var(--shadow-md);
}

.gtile:hover img {
  transform: scale(1.06);
}

.gtile:hover::after {
  opacity: 1;
}

.gtile:focus-visible {
  outline: 2px solid var(--color-gold);
  outline-offset: 3px;
}

/* Lightbox */
.glb {
  position: fixed;
  inset: 0;
  z-index: 200;
  background: rgba(12, 20, 32, 0.94);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 48px;
  animation: glbin 0.28s ease;
}

.glb[hidden] {
  display: none;
}

@keyframes glbin {
  from { opacity: 0; }
  to   { opacity: 1; }
}

.glb-fig {
  max-width: min(1100px, 92vw);
  max-height: 86vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  margin: 0;
}

.glb-fig img {
  max-width: 100%;
  max-height: 78vh;
  object-fit: contain;
  border-radius: 4px;
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.5);
}

.glb-fig figcaption {
  color: #C9D4E2;
  font-size: 15px;
  text-align: center;
}

.glb-close,
.glb-nav {
  position: absolute;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.28);
  color: #fff;
  cursor: pointer;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.25s;
}

.glb-close:hover,
.glb-nav:hover {
  background: var(--color-gold-bright);
}

.glb-close {
  top: 22px;
  right: 26px;
  width: 46px;
  height: 46px;
  font-size: 26px;
  line-height: 1;
}

.glb-nav {
  top: 50%;
  transform: translateY(-50%);
  width: 54px;
  height: 54px;
  font-size: 32px;
  line-height: 1;
  padding-bottom: 4px;
}

.glb-nav.prev { left: 22px; }
.glb-nav.next { right: 22px; }

@media (max-width: 760px) {
  .pgal {
    padding: 54px 0 60px;
  }

  .pgal-head {
    margin-bottom: 30px;
  }

  .pgal-head h2 {
    white-space: normal;
    font-size: clamp(24px, 6.4vw, 30px);
  }

  .pgal-head-in {
    padding: 0 22px;
  }

  .gtile {
    height: 190px;
    margin-right: 10px;
  }

  .pgal-rows {
    gap: 10px;
  }

  .glb {
    padding: 16px;
  }

  .glb-nav {
    width: 42px;
    height: 42px;
    font-size: 24px;
  }

  .glb-nav.prev { left: 8px; }
  .glb-nav.next { right: 8px; }
}

@media (prefers-reduced-motion: reduce) {
  .pgal-track {
    animation: none;
  }
}

/* ============================================================
   Hero Intro — quiet second-hero band under the video.
   ============================================================ */
.hintro {
  background: var(--color-cream);
  border-bottom: 1px solid var(--color-border-warm);
}

.hintro-in {
  max-width: 980px;
  margin: 0 auto;
  padding: 64px 30px 58px;
  text-align: center;
}

.hintro .kicker {
  margin-bottom: 16px;
}

.hintro h2 {
  font-family: var(--font-heading);
  font-size: clamp(30px, 3.2vw, 44px);
  font-weight: 500;
  letter-spacing: -0.6px;
  line-height: 1.18;
  max-width: 24ch;
  margin: 0 auto;
}

.hintro h2 em {
  font-style: italic;
  color: var(--color-gold);
}

.hintro .hero-sub {
  color: var(--color-body);
  font-size: 19px;
  line-height: 1.65;
  margin: 20px auto 0;
  max-width: 66ch;
  text-wrap: pretty;
}

.hintro-act {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 12px 22px;
  margin-top: 26px;
}

.hintro-div {
  width: 1px;
  height: 20px;
  background: var(--color-border-warm);
}

.hintro-cta {
  margin-top: 26px;
}

.hintro-chip {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  font-size: 15px;
  color: var(--color-muted, #677583);
}

.hintro-chip b {
  color: var(--color-ink);
}

.hintro-chip svg {
  width: 19px;
  height: 19px;
  fill: var(--color-gold);
  flex-shrink: 0;
}

.hintro-chip .hr-stars {
  color: var(--color-gold);
  font-size: 14px;
  letter-spacing: 2px;
  line-height: 1;
}

@media (max-width: 760px) {
  .hintro-in {
    padding: 46px 24px 42px;
  }

  .hintro h2 {
    font-size: clamp(26px, 7.2vw, 32px);
  }

  .hintro .hero-sub {
    font-size: 17px;
  }

  .hintro-act {
    gap: 10px 16px;
  }

  .hintro-div {
    display: none;
  }

  .hintro-cta {
    margin-top: 22px;
  }

  .hintro-cta .btn {
    width: 100%;
    justify-content: center;
    text-align: center;
    box-sizing: border-box;
  }
}

/* ============================================================
   Clinical Trials Program band (ice background).
   ============================================================ */
.trials {
  background: var(--color-ice);
  padding: 58px 0;
  border-top: 1px solid var(--color-border);
  border-bottom: 1px solid var(--color-border);
}

.trials-in {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 48px;
  align-items: center;
}

.trials h2 {
  font-family: var(--font-heading);
  font-weight: 500;
  font-size: clamp(25px, 2.2vw, 32px);
  letter-spacing: -0.4px;
  line-height: 1.22;
  max-width: 26ch;
  text-wrap: pretty;
}

.trials p {
  color: var(--color-body);
  font-size: 16.5px;
  line-height: 1.65;
  margin-top: 14px;
  max-width: 64ch;
  text-wrap: pretty;
}

.trials-btns {
  display: flex;
  flex-direction: column;
  gap: 12px;
  flex-shrink: 0;
}

.trials-btns .btn {
  justify-content: center;
  text-align: center;
}

@media (max-width: 860px) {
  .trials-in {
    grid-template-columns: 1fr;
    gap: 24px;
  }
}

@media (max-width: 760px) {
  .trials {
    padding: 44px 0;
  }

  .trials h2 {
    font-size: clamp(24px, 6.4vw, 29px);
  }

  .trials p {
    font-size: 16.5px;
  }

  .trials-btns .btn {
    width: 100%;
    justify-content: center;
    text-align: center;
    box-sizing: border-box;
  }
}

/* ============================================================
   Office Gallery — two auto-scrolling photo rows (shares the
   .gtile / .glb lightbox styles with the provider gallery).
   ============================================================ */
.gal {
  padding: 56px 0 60px;
  overflow: hidden;
}

.gal-head {
  max-width: 760px;
  margin-bottom: 40px;
  text-align: left;
}

.gal-head h2 {
  font-family: var(--font-heading);
  font-weight: 500;
  font-size: clamp(28px, 2.6vw, 38px);
  letter-spacing: -0.5px;
  line-height: 1.18;
  margin-top: 14px;
}

.gal-head p {
  color: var(--color-body);
  font-size: 17px;
  line-height: 1.65;
  margin-top: 14px;
  max-width: 62ch;
  text-wrap: pretty;
}

.gal-rows {
  display: grid;
  gap: 18px;
}

.gal-row {
  overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}

.gal-track {
  display: flex;
  width: max-content;
  animation: galslide 140s linear infinite;
}

.gal-row.rev .gal-track {
  animation-duration: 170s;
  animation-direction: reverse;
}

/* Pause while the lightbox is open (JS-driven), on any device. */
.gal-rows.paused .gal-track {
  animation-play-state: paused;
}

/* Pause on hover only where a real hover pointer exists — this keeps the
   marquee running on touch devices, where a tap otherwise leaves a sticky
   hover state that freezes the rows when you stop scrolling. */
@media (hover: hover) and (pointer: fine) {
  .gal-rows:hover .gal-track {
    animation-play-state: paused;
  }
}

@keyframes galslide {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

@media (max-width: 760px) {
  .gal {
    padding: 48px 0 52px;
  }

  .gal-head {
    margin-bottom: 26px;
  }

  .gal-head h2 {
    font-size: clamp(25px, 6.8vw, 31px);
  }

  .gal-head p {
    font-size: 16.5px;
  }

  .gal-rows {
    gap: 10px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .gal-track {
    animation: none;
  }
}

/* ═══════════════════════════════════════════════════════════════════════════
   REVIEWS WIDGET (third-party embed)
   ═══════════════════════════════════════════════════════════════════════════ */

/* Standalone testimonials section (contact page) — its own distinct band. */
.contact-reviews {
  padding: var(--section-padding-y) 0 calc(var(--section-padding-y) + 60px);
  background: var(--color-ice);
}

.contact-reviews .container {
  max-width: var(--container-max-width);
  margin: 0 auto;
  padding: 0 var(--container-padding);
}

.contact-reviews .sec-head {
  text-align: center;
  max-width: 720px;
  margin: 0 auto 44px;
}

/* The embed itself — centered, full-width within its wrapper. */
.review-embed {
  width: 100%;
  margin: 0 auto;
}

/* Widget nested inside the homepage testimonials section. */
.testimonials__widget {
  max-width: var(--container-max-width);
  margin: 40px auto 0;
}
