/* ==========================================================================
   PrimaryMD Homepage v4 overrides
   Loaded after primarymd-home-v3 CSS on the review page only.
   Scope: .pmd-v3_page[data-pmd-v4] (set on the review page root element).
   Motion states are driven by primarymd-home-v4-motion.js (GSAP 3.13).
   ========================================================================== */

.pmd-v3_page[data-pmd-v4] {
  --v4-amber-light: #e5bd98;
  --v4-amber-soft: rgba(229, 189, 152, 0.9);
  --v4-sand-line: rgba(21, 42, 68, 0.12);
  --v4-navy-line: rgba(255, 255, 255, 0.12);
}

/* --------------------------------------------------------------------------
   0. Section rhythm (new order): alternate backgrounds so adjacent sections
      never merge into one long block.
   -------------------------------------------------------------------------- */
.pmd-v3_page[data-pmd-v4] .pmd-v3_origin-story { background: var(--pmd-cream-100); }
.pmd-v3_page[data-pmd-v4] .pmd-v3_insights { background: var(--pmd-white); }
.pmd-v3_page[data-pmd-v4] .pmd-v3_faq { background: var(--pmd-cream-100); }

/* Stats ribbon + Why Now read as one dark chapter */
.pmd-v3_page[data-pmd-v4] .pmd-v3_proof-ribbon { border-bottom: 1px solid var(--v4-navy-line); }
.pmd-v3_page[data-pmd-v4] .pmd-v3_judgment-gap { padding-top: 96px; }
@media (max-width: 768px) {
  .pmd-v3_page[data-pmd-v4] .pmd-v3_judgment-gap { padding-top: 56px; }
}

/* --------------------------------------------------------------------------
   1. Desktop section headers: use the empty right column
   -------------------------------------------------------------------------- */
@media (min-width: 1101px) {
  .pmd-v3_page[data-pmd-v4] .pmd-v3_section-header,
  .pmd-v3_page[data-pmd-v4] .pmd-v3_locations-heading,
  .pmd-v3_page[data-pmd-v4] .pmd-v3_insights-heading {
    display: grid;
    max-width: none;
    grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
    column-gap: 72px;
    align-items: end;
  }
  .pmd-v3_page[data-pmd-v4] .pmd-v3_section-header > .pmd-v3_eyebrow,
  .pmd-v3_page[data-pmd-v4] .pmd-v3_section-header > .pmd-v3_h2,
  .pmd-v3_page[data-pmd-v4] .pmd-v3_locations-heading > .pmd-v3_eyebrow,
  .pmd-v3_page[data-pmd-v4] .pmd-v3_locations-heading > .pmd-v3_h2,
  .pmd-v3_page[data-pmd-v4] .pmd-v3_insights-heading > .pmd-v3_eyebrow,
  .pmd-v3_page[data-pmd-v4] .pmd-v3_insights-heading > .pmd-v3_h2 {
    grid-column: 1;
  }
  .pmd-v3_page[data-pmd-v4] .pmd-v3_section-header > .pmd-v3_h2,
  .pmd-v3_page[data-pmd-v4] .pmd-v3_locations-heading > .pmd-v3_h2,
  .pmd-v3_page[data-pmd-v4] .pmd-v3_insights-heading > .pmd-v3_h2 {
    margin-bottom: 0;
  }
  .pmd-v3_page[data-pmd-v4] .pmd-v3_section-header > .pmd-v3_body,
  .pmd-v3_page[data-pmd-v4] .pmd-v3_locations-heading > .pmd-v3_body,
  .pmd-v3_page[data-pmd-v4] .pmd-v3_insights-heading > .pmd-v3_body {
    grid-column: 2;
    grid-row: 1 / span 2;
    align-self: end;
    margin: 0;
    padding-bottom: 6px;
  }
}

/* --------------------------------------------------------------------------
   2. Hero
   -------------------------------------------------------------------------- */
.pmd-v3_page[data-pmd-v4] .pmd-v3_hero-image { object-position: 62% 45%; filter: saturate(0.95) contrast(0.99); }
@media (min-width: 1101px) {
  .pmd-v3_page[data-pmd-v4] .pmd-v3_hero { min-height: 0; padding-top: 64px; padding-bottom: 104px; }
  .pmd-v3_page[data-pmd-v4] .pmd-v3_hero-media,
  .pmd-v3_page[data-pmd-v4] .pmd-v3_hero-image {
    height: clamp(500px, calc(100vh - 250px), 680px);
    min-height: 0;
  }
}

@media (min-width: 769px) {
  /* Card overlaps the photo's lower-left edge instead of covering the subject */
  .pmd-v3_page[data-pmd-v4] .pmd-v3_hero-media { overflow: visible; }
  .pmd-v3_page[data-pmd-v4] .pmd-v3_hero-callouts {
    right: auto;
    bottom: -28px;
    left: -36px;
    z-index: 3;
    width: min(88%, 440px);
    box-shadow: 0 18px 40px rgba(21, 42, 68, 0.22);
  }
}
@media (min-width: 769px) and (max-width: 1100px) {
  .pmd-v3_page[data-pmd-v4] .pmd-v3_hero-callouts { left: -20px; width: 92%; }
}

/* Mobile: tighter type so the photo shows on the first screen;
   the 8px callout card is unreadable at this size, so it hides here and
   the same idea is told by the Judgment diagram right below. */
@media (max-width: 768px) {
  .pmd-v3_page[data-pmd-v4] .pmd-v3_hero { padding-top: 36px; }
  .pmd-v3_page[data-pmd-v4] .pmd-v3_hero .pmd-v3_eyebrow {
    margin-bottom: 14px;
    font-size: 11px;
    letter-spacing: 0.12em;
  }
  .pmd-v3_page[data-pmd-v4] .pmd-v3_hero .pmd-v3_h1 { margin-bottom: 16px; }
  .pmd-v3_page[data-pmd-v4] .pmd-v3_hero-body { font-size: 16px; line-height: 1.55; }
  .pmd-v3_page[data-pmd-v4] .pmd-v3_hero-media { margin-top: 24px; }
}
@media (max-width: 479px) {
  .pmd-v3_page[data-pmd-v4] .pmd-v3_hero .pmd-v3_h1 { font-size: clamp(32px, 9vw, 38px); }
  .pmd-v3_page[data-pmd-v4] .pmd-v3_hero-callouts { display: none; }
  .pmd-v3_page[data-pmd-v4] .pmd-v3_hero-actions { gap: 4px; }
}

/* --------------------------------------------------------------------------
   3. Stats ribbon: 2 x 2 on phones, no stray indent
   -------------------------------------------------------------------------- */
@media (max-width: 479px) {
  .pmd-v3_page[data-pmd-v4] .pmd-v3_proof-ribbon { padding-block: 8px; }
  .pmd-v3_page[data-pmd-v4] .pmd-v3_proof-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0;
  }
  .pmd-v3_page[data-pmd-v4] .pmd-v3_proof-item {
    grid-column: auto;
    padding: 20px 14px 20px 0 !important;
    border-right: 0 !important;
    border-bottom: 1px solid var(--v4-navy-line) !important;
  }
  .pmd-v3_page[data-pmd-v4] .pmd-v3_proof-item:nth-child(even) {
    padding-left: 16px !important;
    padding-right: 0 !important;
    border-left: 1px solid var(--v4-navy-line);
  }
  .pmd-v3_page[data-pmd-v4] .pmd-v3_proof-item:nth-last-child(-n + 2) { border-bottom: 0 !important; }
  .pmd-v3_page[data-pmd-v4] .pmd-v3_proof-value { margin-bottom: 4px; font-size: 15px; }
  .pmd-v3_page[data-pmd-v4] .pmd-v3_proof-detail { font-size: 12px; }
}

/* --------------------------------------------------------------------------
   4. Judgment Gap diagram
   -------------------------------------------------------------------------- */
.pmd-v3_page[data-pmd-v4] .pmd-v3_judgment-diagram { position: relative; }
.pmd-v3_page[data-pmd-v4] .pmd-v3_judgment-inputs,
.pmd-v3_page[data-pmd-v4] .pmd-v3_judgment-center,
.pmd-v3_page[data-pmd-v4] .pmd-v3_judgment-output { position: relative; z-index: 2; }
.pmd-v3_page[data-pmd-v4] .v4-judgment-lines {
  position: absolute;
  z-index: 1;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: visible;
  pointer-events: none;
}
.pmd-v3_page[data-pmd-v4] .v4-judgment-lines path {
  fill: none;
  stroke: rgba(229, 189, 152, 0.55);
  stroke-width: 1;
  vector-effect: non-scaling-stroke;
}
.pmd-v3_page[data-pmd-v4] .v4-judgment-lines circle {
  fill: none;
  stroke: rgba(229, 189, 152, 0.5);
  stroke-width: 1;
}
@media (max-width: 479px) {
  .pmd-v3_page[data-pmd-v4] .pmd-v3_judgment-diagram { padding: 22px 18px; }
  .pmd-v3_page[data-pmd-v4] .pmd-v3_judgment-inputs { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .pmd-v3_page[data-pmd-v4] .pmd-v3_judgment-chip { min-height: 38px; padding: 6px 8px; font-size: 12px; }
  .pmd-v3_page[data-pmd-v4] .pmd-v3_judgment-center { width: 150px; }
  .pmd-v3_page[data-pmd-v4] .pmd-v3_judgment-center-value { font-size: 27px; }
  .pmd-v3_page[data-pmd-v4] .pmd-v3_judgment-arrow { height: 36px; }
  .pmd-v3_page[data-pmd-v4] .pmd-v3_judgment-output { padding: 16px; font-size: 16px; }
}

/* --------------------------------------------------------------------------
   5. Model: "You" orbit
   -------------------------------------------------------------------------- */
.pmd-v3_page[data-pmd-v4] .pmd-v3_model-ring,
.pmd-v3_page[data-pmd-v4] .pmd-v3_model-orbit-center,
.pmd-v3_page[data-pmd-v4] .pmd-v3_model-feature {
  transition:
    border-color 0.45s var(--pmd-ease),
    background-color 0.45s var(--pmd-ease),
    box-shadow 0.45s var(--pmd-ease),
    opacity 0.45s var(--pmd-ease);
}
/* SVG rings injected by the motion script replace the pseudo-element rings */
.pmd-v3_page[data-pmd-v4] .pmd-v3_model-orbit[data-v4-svg]::before,
.pmd-v3_page[data-pmd-v4] .pmd-v3_model-orbit[data-v4-svg]::after { display: none; }
.pmd-v3_page[data-pmd-v4] .v4-orbit-rings {
  position: absolute;
  z-index: 1;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}
.pmd-v3_page[data-pmd-v4] .v4-orbit-rings circle {
  fill: none;
  stroke: rgba(255, 255, 255, 0.2);
  stroke-width: 1;
  vector-effect: non-scaling-stroke;
  transition: stroke 0.45s var(--pmd-ease);
}
.pmd-v3_page[data-pmd-v4] .v4-orbit-rings .v4-orbit-dot { fill: var(--v4-amber-light); stroke: none; }

/* Step highlights (data-v4-step set by the motion script) */
/* Dimming only while the grid is pinned (desktop, tall screens); stacked layouts keep full-strength text */
.pmd-v3_page[data-pmd-v4] .pmd-v3_model-grid[data-v4-pin][data-v4-step] .pmd-v3_model-feature { opacity: 0.5; }
.pmd-v3_page[data-pmd-v4] .pmd-v3_model-grid[data-v4-pin][data-v4-step="1"] .pmd-v3_model-feature:nth-child(1),
.pmd-v3_page[data-pmd-v4] .pmd-v3_model-grid[data-v4-pin][data-v4-step="2"] .pmd-v3_model-feature:nth-child(2),
.pmd-v3_page[data-pmd-v4] .pmd-v3_model-grid[data-v4-pin][data-v4-step="3"] .pmd-v3_model-feature:nth-child(3),
.pmd-v3_page[data-pmd-v4] .pmd-v3_model-grid[data-v4-pin][data-v4-step="4"] .pmd-v3_model-feature:nth-child(4) { opacity: 1; }

.pmd-v3_page[data-pmd-v4] .pmd-v3_model-grid[data-v4-step="1"] .pmd-v3_model-ring--inner,
.pmd-v3_page[data-pmd-v4] .pmd-v3_model-grid[data-v4-step="2"] .pmd-v3_model-ring--middle,
.pmd-v3_page[data-pmd-v4] .pmd-v3_model-grid[data-v4-step="4"] .pmd-v3_model-ring--outer {
  border-color: rgba(229, 189, 152, 0.85);
  box-shadow: 0 0 0 1px rgba(229, 189, 152, 0.25), 0 14px 34px rgba(0, 0, 0, 0.28);
}
.pmd-v3_page[data-pmd-v4] .pmd-v3_model-grid[data-v4-step="3"] .pmd-v3_model-orbit-center {
  box-shadow: 0 0 0 14px rgba(229, 189, 152, 0.14), 0 0 0 30px rgba(229, 189, 152, 0.06);
}
.pmd-v3_page[data-pmd-v4] .pmd-v3_model-grid[data-v4-pin][data-v4-step="3"] .pmd-v3_model-ring { opacity: 0.6; }
.pmd-v3_page[data-pmd-v4] .pmd-v3_model-grid[data-v4-step="1"] .v4-orbit-rings .v4-ring-outer,
.pmd-v3_page[data-pmd-v4] .pmd-v3_model-grid[data-v4-step="4"] .v4-orbit-rings .v4-ring-outer,
.pmd-v3_page[data-pmd-v4] .pmd-v3_model-grid[data-v4-step="2"] .v4-orbit-rings .v4-ring-inner,
.pmd-v3_page[data-pmd-v4] .pmd-v3_model-grid[data-v4-step="3"] .v4-orbit-rings circle:not(.v4-orbit-dot) {
  stroke: rgba(229, 189, 152, 0.7);
}

/* Mobile: keep a real orbit instead of a flat "You" bar */
@media (max-width: 768px) {
  .pmd-v3_page[data-pmd-v4] .pmd-v3_model-orbit {
    position: relative;
    display: grid;
    padding: 272px 18px 18px;
    overflow: visible;
    background: var(--pmd-blue-900);
  }
  .pmd-v3_page[data-pmd-v4] .pmd-v3_model-orbit::before,
  .pmd-v3_page[data-pmd-v4] .pmd-v3_model-orbit::after {
    display: block;
    top: 136px;
  }
  .pmd-v3_page[data-pmd-v4] .pmd-v3_model-orbit::before { width: 232px; }
  .pmd-v3_page[data-pmd-v4] .pmd-v3_model-orbit::after { width: 150px; }
  .pmd-v3_page[data-pmd-v4] .pmd-v3_model-orbit-center {
    position: absolute;
    top: 136px;
    left: 50%;
    width: 88px;
    min-height: 0;
    aspect-ratio: 1;
    border-radius: 50%;
    transform: translate(-50%, -50%);
  }
  .pmd-v3_page[data-pmd-v4] .pmd-v3_model-you { font-size: 24px; }
  .pmd-v3_page[data-pmd-v4] .pmd-v3_model-ring {
    position: relative;
    inset: auto;
    max-width: none;
    padding: 18px 18px 18px 40px;
    transform: none;
  }
  .pmd-v3_page[data-pmd-v4] .pmd-v3_model-ring::before {
    position: absolute;
    top: 21px;
    left: 18px;
    width: 9px;
    height: 9px;
    border: 1px solid var(--v4-amber-light);
    border-radius: 50%;
    content: "";
  }
  .pmd-v3_page[data-pmd-v4] .pmd-v3_model-ring-list li { font-size: 13px; }

  /* Sticky mini orbit injected by the motion script */
  .pmd-v3_page[data-pmd-v4] .pmd-v3_model-orbit[data-v4-mini] { padding-top: 18px; }
  .pmd-v3_page[data-pmd-v4] .pmd-v3_model-orbit[data-v4-mini]::before,
  .pmd-v3_page[data-pmd-v4] .pmd-v3_model-orbit[data-v4-mini]::after,
  .pmd-v3_page[data-pmd-v4] .pmd-v3_model-orbit[data-v4-mini] .pmd-v3_model-orbit-center { display: none; }
  .pmd-v3_page[data-pmd-v4] .v4-orbit-mini {
    position: sticky;
    z-index: 4;
    top: 0;
    display: flex;
    height: 176px;
    margin: 0 -18px 4px;
    align-items: center;
    justify-content: center;
    border-radius: 16px 16px 0 0;
    background: linear-gradient(var(--pmd-blue-900) 90%, rgba(21, 42, 68, 0));
  }
  .pmd-v3_page[data-pmd-v4] .v4-orbit-mini svg { width: 164px; height: 164px; overflow: visible; }
  .pmd-v3_page[data-pmd-v4] .v4-orbit-mini circle { fill: none; stroke: rgba(255, 255, 255, 0.22); stroke-width: 1; transition: stroke 0.4s var(--pmd-ease), stroke-width 0.4s var(--pmd-ease); }
  .pmd-v3_page[data-pmd-v4] .v4-orbit-mini .v4-mini-you { fill: url(#v4-you-gradient); stroke: rgba(255, 255, 255, 0.35); }
  .pmd-v3_page[data-pmd-v4] .v4-orbit-mini text { fill: #fff; font-family: Librecaslontext, Georgia, serif; font-size: 20px; font-style: italic; }
  .pmd-v3_page[data-pmd-v4] .v4-orbit-mini .v4-mini-label { fill: rgba(229, 189, 152, 0.95); font-family: Montserrat, Arial, sans-serif; font-size: 8px; font-style: normal; font-weight: 700; letter-spacing: 0.14em; }
  .pmd-v3_page[data-pmd-v4] .pmd-v3_model-orbit[data-v4-active="inner"] .v4-mini-r1,
  .pmd-v3_page[data-pmd-v4] .pmd-v3_model-orbit[data-v4-active="middle"] .v4-mini-r2,
  .pmd-v3_page[data-pmd-v4] .pmd-v3_model-orbit[data-v4-active="outer"] .v4-mini-r3 { stroke: var(--v4-amber-light); stroke-width: 2; }
  .pmd-v3_page[data-pmd-v4] .pmd-v3_model-orbit[data-v4-active] .pmd-v3_model-ring { opacity: 0.66; }
  .pmd-v3_page[data-pmd-v4] .pmd-v3_model-orbit[data-v4-active="inner"] .pmd-v3_model-ring--inner,
  .pmd-v3_page[data-pmd-v4] .pmd-v3_model-orbit[data-v4-active="middle"] .pmd-v3_model-ring--middle,
  .pmd-v3_page[data-pmd-v4] .pmd-v3_model-orbit[data-v4-active="outer"] .pmd-v3_model-ring--outer {
    opacity: 1;
    border-color: rgba(229, 189, 152, 0.8);
  }
}

/* --------------------------------------------------------------------------
   6. Care loop (was the hidden "model in one glance" section)
   -------------------------------------------------------------------------- */
.pmd-v3_page[data-pmd-v4] [data-pmd-v4-section="care-loop"] {
  display: block;
  overflow: hidden;
  color: var(--pmd-white);
  background: var(--pmd-blue-900);
}
.pmd-v3_page[data-pmd-v4] [data-pmd-v4-section="care-loop"] .pmd-v3_section-intro {
  max-width: 760px;
  margin: 0 auto 72px;
  text-align: center;
}
.pmd-v3_page[data-pmd-v4] [data-pmd-v4-section="care-loop"] .pmd-v3_eyebrow { color: var(--v4-amber-light); }
.pmd-v3_page[data-pmd-v4] [data-pmd-v4-section="care-loop"] .pmd-v3_h2 { margin-bottom: 20px; color: var(--pmd-white); }
.pmd-v3_page[data-pmd-v4] [data-pmd-v4-section="care-loop"] .pmd-v3_body { margin: 0 auto; color: rgba(255, 255, 255, 0.76); }

.pmd-v3_page[data-pmd-v4] .pmd-v3_value-grid {
  position: relative;
  display: grid;
  max-width: 1040px;
  margin: 0 auto;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 28px 300px;
}
.pmd-v3_page[data-pmd-v4] .pmd-v3_value-grid::before {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 250px;
  aspect-ratio: 1;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 50%;
  content: "";
  transform: translate(-50%, -50%);
}
.pmd-v3_page[data-pmd-v4] .pmd-v3_value-grid[data-v4-svg]::before { display: none; }
.pmd-v3_page[data-pmd-v4] .pmd-v3_value-grid::after {
  position: absolute;
  top: 50%;
  left: 50%;
  content: "Your plan";
  content: "Your plan" / "";
  color: rgba(255, 255, 255, 0.9);
  font-family: Librecaslontext, Georgia, serif;
  font-size: 26px;
  font-style: italic;
  transform: translate(-50%, -50%);
  pointer-events: none;
}
.pmd-v3_page[data-pmd-v4] .pmd-v3_value-card {
  position: relative;
  z-index: 2;
  padding: 26px 26px 24px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: var(--pmd-radius-card);
  background: rgba(255, 255, 255, 0.04);
  transition: border-color 0.45s var(--pmd-ease), background-color 0.45s var(--pmd-ease), opacity 0.45s var(--pmd-ease);
}
/* clockwise: 01 top-left, 02 top-right, 03 bottom-right, 04 bottom-left */
.pmd-v3_page[data-pmd-v4] .pmd-v3_value-card:nth-child(3) { grid-column: 2; grid-row: 2; }
.pmd-v3_page[data-pmd-v4] .pmd-v3_value-card:nth-child(4) { grid-column: 1; grid-row: 2; }
.pmd-v3_page[data-pmd-v4] .pmd-v3_value-number {
  display: block;
  margin-bottom: 14px;
  color: var(--v4-amber-light);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.12em;
}
.pmd-v3_page[data-pmd-v4] .pmd-v3_value-card .pmd-v3_h3 {
  margin: 0 0 8px;
  color: var(--pmd-white);
  font-size: clamp(22px, 2vw, 28px);
  font-weight: 500;
  line-height: 1.15;
  letter-spacing: -0.03em;
}
.pmd-v3_page[data-pmd-v4] .pmd-v3_value-copy {
  margin: 0;
  color: rgba(255, 255, 255, 0.72);
  font-size: 14px;
  line-height: 1.6;
}
.pmd-v3_page[data-pmd-v4] .pmd-v3_value-grid[data-v4-step] .pmd-v3_value-card { opacity: 0.66; }
.pmd-v3_page[data-pmd-v4] .pmd-v3_value-grid[data-v4-step="1"] .pmd-v3_value-card:nth-child(1),
.pmd-v3_page[data-pmd-v4] .pmd-v3_value-grid[data-v4-step="2"] .pmd-v3_value-card:nth-child(2),
.pmd-v3_page[data-pmd-v4] .pmd-v3_value-grid[data-v4-step="3"] .pmd-v3_value-card:nth-child(3),
.pmd-v3_page[data-pmd-v4] .pmd-v3_value-grid[data-v4-step="4"] .pmd-v3_value-card:nth-child(4) {
  opacity: 1;
  border-color: rgba(229, 189, 152, 0.7);
  background: rgba(229, 189, 152, 0.08);
}
.pmd-v3_page[data-pmd-v4] .v4-loop-ring {
  position: absolute;
  z-index: 1;
  top: 50%;
  left: 50%;
  width: 250px;
  height: 250px;
  overflow: visible;
  transform: translate(-50%, -50%);
  pointer-events: none;
}
.pmd-v3_page[data-pmd-v4] .v4-loop-ring .v4-loop-track { fill: none; stroke: rgba(255, 255, 255, 0.2); stroke-width: 1; }
.pmd-v3_page[data-pmd-v4] .v4-loop-ring .v4-loop-progress { fill: none; stroke: var(--v4-amber-light); stroke-width: 2; stroke-linecap: round; }
.pmd-v3_page[data-pmd-v4] .v4-loop-ring .v4-loop-node { fill: var(--pmd-blue-900); stroke: rgba(255, 255, 255, 0.45); stroke-width: 1; }
.pmd-v3_page[data-pmd-v4] .v4-loop-ring .v4-loop-dot { fill: var(--v4-amber-light); }

/* Route cards under the loop */
.pmd-v3_page[data-pmd-v4] .pmd-v3_home-route-grid {
  display: grid;
  max-width: 1040px;
  margin: 72px auto 0;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}
.pmd-v3_page[data-pmd-v4] .pmd-v3_home-route-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 30px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: var(--pmd-radius-card);
  color: var(--pmd-blue-900);
  background: var(--pmd-cream-100);
}
.pmd-v3_page[data-pmd-v4] .pmd-v3_home-route-card--dark { color: var(--pmd-white); background: transparent; }
.pmd-v3_page[data-pmd-v4] .pmd-v3_card-label {
  margin: 0 0 12px;
  color: var(--pmd-amber-700);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.pmd-v3_page[data-pmd-v4] .pmd-v3_card-label--light { color: var(--v4-amber-light); }
.pmd-v3_page[data-pmd-v4] .pmd-v3_home-route-card .pmd-v3_h3 {
  margin: 0 0 10px;
  font-size: clamp(22px, 2vw, 26px);
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: -0.03em;
}
.pmd-v3_page[data-pmd-v4] .pmd-v3_card-copy { margin: 0 0 18px; color: var(--pmd-ink-muted); font-size: 14px; line-height: 1.6; }
.pmd-v3_page[data-pmd-v4] .pmd-v3_card-copy--light { color: rgba(255, 255, 255, 0.72); }
.pmd-v3_page[data-pmd-v4] .pmd-v3_home-route-link {
  display: inline-flex;
  min-height: 44px;
  margin-top: auto;
  align-items: center;
  color: var(--pmd-blue-900);
  font-size: 14px;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 5px;
}
.pmd-v3_page[data-pmd-v4] .pmd-v3_home-route-link::after { margin-left: 8px; content: "↗"; transition: transform 0.25s var(--pmd-ease); }
.pmd-v3_page[data-pmd-v4] .pmd-v3_home-route-link:hover::after { transform: translate(2px, -2px); }
.pmd-v3_page[data-pmd-v4] .pmd-v3_home-route-link--light { color: var(--pmd-white); }

@media (max-width: 991px) {
  .pmd-v3_page[data-pmd-v4] .pmd-v3_value-grid { gap: 20px 220px; }
  .pmd-v3_page[data-pmd-v4] .pmd-v3_value-grid::before,
  .pmd-v3_page[data-pmd-v4] .v4-loop-ring { width: 190px; height: 190px; }
  .pmd-v3_page[data-pmd-v4] .pmd-v3_value-grid::after { font-size: 21px; }
}
@media (max-width: 767px) {
  .pmd-v3_page[data-pmd-v4] [data-pmd-v4-section="care-loop"] .pmd-v3_section-intro { margin-bottom: 40px; text-align: left; }
  .pmd-v3_page[data-pmd-v4] .pmd-v3_value-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 14px;
    padding-left: 34px;
  }
  .pmd-v3_page[data-pmd-v4] .pmd-v3_value-card:nth-child(n) { grid-column: 1; grid-row: auto; }
  .pmd-v3_page[data-pmd-v4] .pmd-v3_value-grid::before {
    top: 12px;
    bottom: 12px;
    left: 8px;
    width: 1px;
    aspect-ratio: auto;
    border: 0;
    border-radius: 0;
    background: rgba(255, 255, 255, 0.2);
    transform: none;
  }
  .pmd-v3_page[data-pmd-v4] .pmd-v3_value-grid[data-v4-svg]::before { display: block; }
  .pmd-v3_page[data-pmd-v4] .pmd-v3_value-grid::after {
    position: static;
    grid-column: 1;
    padding: 6px 0 0 2px;
    content: "Then back to 01, all year.";
    content: "Then back to 01, all year." / "";
    color: rgba(229, 189, 152, 0.9);
    font-family: Montserrat, Arial, sans-serif;
    font-size: 12px;
    font-style: normal;
    font-weight: 700;
    letter-spacing: 0.06em;
    transform: none;
  }
  .pmd-v3_page[data-pmd-v4] .pmd-v3_value-card { padding: 20px; }
  .pmd-v3_page[data-pmd-v4] .pmd-v3_value-card::before {
    position: absolute;
    top: 24px;
    left: -31px;
    width: 11px;
    height: 11px;
    border: 1px solid rgba(255, 255, 255, 0.5);
    border-radius: 50%;
    background: var(--pmd-blue-900);
    content: "";
    transition: background-color 0.35s var(--pmd-ease), border-color 0.35s var(--pmd-ease);
  }
  .pmd-v3_page[data-pmd-v4] .pmd-v3_value-grid[data-v4-step="1"] .pmd-v3_value-card:nth-child(1)::before,
  .pmd-v3_page[data-pmd-v4] .pmd-v3_value-grid[data-v4-step="2"] .pmd-v3_value-card:nth-child(2)::before,
  .pmd-v3_page[data-pmd-v4] .pmd-v3_value-grid[data-v4-step="3"] .pmd-v3_value-card:nth-child(3)::before,
  .pmd-v3_page[data-pmd-v4] .pmd-v3_value-grid[data-v4-step="4"] .pmd-v3_value-card:nth-child(4)::before {
    border-color: var(--v4-amber-light);
    background: var(--v4-amber-light);
  }
  .pmd-v3_page[data-pmd-v4] .v4-loop-ring { display: none; }
  .pmd-v3_page[data-pmd-v4] .v4-loop-rail {
    position: absolute;
    z-index: 1;
    top: 12px;
    left: 8px;
    width: 2px;
    height: 0;
    background: var(--v4-amber-light);
    transform-origin: top;
  }
  .pmd-v3_page[data-pmd-v4] .pmd-v3_home-route-grid { margin-top: 44px; grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .pmd-v3_page[data-pmd-v4] .pmd-v3_home-route-card { padding: 22px; }
}

/* --------------------------------------------------------------------------
   7. Physicians + care team
   -------------------------------------------------------------------------- */
.pmd-v3_page[data-pmd-v4] .pmd-v3_physician-image { transition: transform 0.6s var(--pmd-ease); }
.pmd-v3_page[data-pmd-v4] .pmd-v3_physician-card { overflow: hidden; }
@media (hover: hover) {
  .pmd-v3_page[data-pmd-v4] .pmd-v3_physician-card-link:hover .pmd-v3_physician-image { transform: scale(1.03); }
}
@media (max-width: 479px) {
  .pmd-v3_page[data-pmd-v4] .pmd-v3_care-team { padding: 20px 16px; }
  .pmd-v3_page[data-pmd-v4] .pmd-v3_team-card { padding: 20px 18px; }
}

/* --------------------------------------------------------------------------
   8. Origin story: smaller play control, less of the frame covered
   -------------------------------------------------------------------------- */
.pmd-v3_page[data-pmd-v4] .pmd-v3_video-play {
  /* top-left: keeps the video's lower-third name caption visible */
  top: 20px;
  right: auto;
  bottom: auto;
  left: 20px;
  min-height: 52px;
  padding: 8px 18px 8px 9px;
  gap: 14px;
  border-radius: 999px;
}
.pmd-v3_page[data-pmd-v4] .pmd-v3_video-play::before { margin-right: 0; }
.pmd-v3_page[data-pmd-v4] .pmd-v3_video-play span { margin-right: 0; }
.pmd-v3_page[data-pmd-v4] .pmd-v3_video::after { background: linear-gradient(180deg, transparent 58%, rgba(15, 34, 57, 0.55) 100%); }
.pmd-v3_page[data-pmd-v4] .pmd-v3_video-fallback { min-height: 44px; color: var(--pmd-ink-muted); font-weight: 600; }
html.pmd-v4-js .pmd-v3_page[data-pmd-v4] .pmd-v3_video-fallback {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  white-space: nowrap !important;
}
@media (max-width: 768px) {
  /* compact play + duration chip, bottom-right, clear of the face and the name caption.
     The link keeps its full aria-label, so the hidden title text is not lost to screen readers. */
  .pmd-v3_page[data-pmd-v4] .pmd-v3_video-play { top: auto; right: 12px; bottom: 12px; left: auto; min-height: 46px; padding: 6px 16px 6px 7px; gap: 10px; }
  .pmd-v3_page[data-pmd-v4] .pmd-v3_video-play span {
    position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap;
  }
  .pmd-v3_page[data-pmd-v4] .pmd-v3_video-play time { display: inline-block; font-size: 13px; font-weight: 700; }
}

/* --------------------------------------------------------------------------
   9. Testimonials: one quote device, brand-color rule
   -------------------------------------------------------------------------- */
.pmd-v3_page[data-pmd-v4] .pmd-v3_testimonial::before { display: none; }
.pmd-v3_page[data-pmd-v4] .pmd-v3_testimonial blockquote {
  padding: 0 0 0 24px;
  border-left: 2px solid var(--pmd-amber-700);
}
.pmd-v3_page[data-pmd-v4] .pmd-v3_testimonial-featured blockquote { border-left-color: var(--v4-amber-light); }
.pmd-v3_page[data-pmd-v4] .pmd-v3_testimonial figcaption,
.pmd-v3_page[data-pmd-v4] .pmd-v3_testimonial cite { padding-left: 26px; text-align: left; }
@media (max-width: 479px) {
  .pmd-v3_page[data-pmd-v4] .pmd-v3_testimonial blockquote { padding-left: 18px; }
  .pmd-v3_page[data-pmd-v4] .pmd-v3_testimonial figcaption,
  .pmd-v3_page[data-pmd-v4] .pmd-v3_testimonial cite { padding-left: 20px; }
}

/* --------------------------------------------------------------------------
   10. Footprint: tidy list, aligned cards, map first on phones
   -------------------------------------------------------------------------- */
.pmd-v3_page[data-pmd-v4] .pmd-v3_locations-supporting { display: none; }
.pmd-v3_page[data-pmd-v4] .pmd-v3_locations-network--verified { align-items: stretch; }
.pmd-v3_page[data-pmd-v4] .pmd-v3_locations-list { min-height: 0; padding: 28px; }
.pmd-v3_page[data-pmd-v4] .pmd-v3_locations-list-heading { margin-bottom: 18px; font-size: clamp(19px, 1.7vw, 23px); }
.pmd-v3_page[data-pmd-v4] .pmd-v3_locations-group { padding-block: 16px; }
.pmd-v3_page[data-pmd-v4] .pmd-v3_locations-group-heading { margin-bottom: 10px; }
.pmd-v3_page[data-pmd-v4] .pmd-v3_locations-records-1 {
  display: grid;
  margin: 0;
  padding: 0;
  gap: 6px;
  list-style: none;
}
.pmd-v3_page[data-pmd-v4] .pmd-v3_locations-records-1 li {
  position: relative;
  display: grid;
  padding-left: 16px;
  color: var(--pmd-blue-900);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.4;
}
.pmd-v3_page[data-pmd-v4] .pmd-v3_locations-records-1 li::before {
  position: absolute;
  top: 0.5em;
  left: 0;
  width: 6px;
  height: 6px;
  border: 1px solid var(--pmd-amber-700);
  border-radius: 50%;
  content: "";
}
.pmd-v3_page[data-pmd-v4] .pmd-v3_locations-group:last-child .pmd-v3_locations-records-1 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 12px;
}
.pmd-v3_page[data-pmd-v4] .pmd-v3_locations-record-meta { font-size: 11px; font-weight: 500; }
.pmd-v3_page[data-pmd-v4] .pmd-v3_locations-network--verified .pmd-v3_locations-map--geographic {
  display: flex;
  align-self: stretch;
  flex-direction: column;
  justify-content: center;
}
.pmd-v3_page[data-pmd-v4] .v4-map-links path {
  fill: none;
  stroke: rgba(229, 167, 116, 0.6);
  stroke-width: 1.2;
  stroke-dasharray: 3 4;
  vector-effect: non-scaling-stroke;
}
@media (max-width: 1100px) {
  .pmd-v3_page[data-pmd-v4] .pmd-v3_locations-map--geographic { order: -1; }
}
@media (max-width: 479px) {
  .pmd-v3_page[data-pmd-v4] .pmd-v3_locations-list { padding: 22px 20px; }
  .pmd-v3_page[data-pmd-v4] .pmd-v3_locations-records-1 { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 12px; }
  .pmd-v3_page[data-pmd-v4] .pmd-v3_locations-group:nth-child(3) .pmd-v3_locations-records-1 { grid-template-columns: minmax(0, 1fr); }
}

/* --------------------------------------------------------------------------
   11. Insights: no decorative circles or glow
   -------------------------------------------------------------------------- */
.pmd-v3_page[data-pmd-v4] .pmd-v3_insight-card::before { display: none; }
.pmd-v3_page[data-pmd-v4] .pmd-v3_insight-card-featured { background: var(--pmd-blue-900); }
.pmd-v3_page[data-pmd-v4] .pmd-v3_insight-card { transition: border-color 0.3s var(--pmd-ease), transform 0.3s var(--pmd-ease); }
@media (hover: hover) {
  .pmd-v3_page[data-pmd-v4] .pmd-v3_insight-card-supporting:hover { border-color: rgba(21, 42, 68, 0.4); }
}

/* --------------------------------------------------------------------------
   12. Final CTA: no decorative circle or glow
   -------------------------------------------------------------------------- */
.pmd-v3_page[data-pmd-v4] .pmd-v3_final-cta { background: var(--pmd-blue-900); }
.pmd-v3_page[data-pmd-v4] .pmd-v3_final-cta::after { display: none; }

/* --------------------------------------------------------------------------
   13. Buttons: arrow nudge on text links
   -------------------------------------------------------------------------- */
.pmd-v3_page[data-pmd-v4] .pmd-v3_button--text::after { display: inline-block; transition: transform 0.25s var(--pmd-ease); }
.pmd-v3_page[data-pmd-v4] .pmd-v3_button--text:hover::after { transform: translate(2px, -2px); }

/* --------------------------------------------------------------------------
   14. Header (page-scoped): calmer Contact button on phones
   -------------------------------------------------------------------------- */
@media (max-width: 479px) {
  .pmd-v3_page[data-pmd-v4] .pmd-nav-v3__actions .membership-cta_button {
    min-height: 40px;
    padding: 9px 14px;
    font-size: 13px;
  }
}

/* --------------------------------------------------------------------------
   15. Sticky "See if we're a fit" bar (phones only)
   -------------------------------------------------------------------------- */
.pmd-v3_page[data-pmd-v4] [data-pmd-v4-sticky] { display: none; }
@media (max-width: 767px) {
  .pmd-v3_page[data-pmd-v4] [data-pmd-v4-sticky] {
    position: fixed;
    z-index: 900;
    right: 12px;
    bottom: calc(12px + env(safe-area-inset-bottom, 0px));
    left: 12px;
    display: block;
    visibility: hidden;
    transform: translateY(calc(100% + 24px));
    transition: transform 0.35s var(--pmd-ease), visibility 0s linear 0.35s;
  }
  .pmd-v3_page[data-pmd-v4] [data-pmd-v4-sticky].is-visible {
    visibility: visible;
    transform: none;
    transition: transform 0.35s var(--pmd-ease), visibility 0s;
  }
  .pmd-v3_page[data-pmd-v4] [data-pmd-v4-sticky] .cta-copy-experiment,
  .pmd-v3_page[data-pmd-v4] [data-pmd-v4-sticky] .membership-cta_button {
    display: flex;
    width: 100%;
  }
  .pmd-v3_page[data-pmd-v4] [data-pmd-v4-sticky] .membership-cta_button {
    min-height: 52px;
    justify-content: center;
    box-shadow: 0 12px 30px rgba(21, 42, 68, 0.28);
  }
}

/* --------------------------------------------------------------------------
   16. Footer alignment + tap targets (page-scoped)
   -------------------------------------------------------------------------- */
body .footer2_component .padding-global { padding-right: 0; padding-left: 0; }
body .footer2_component .container-large { width: min(calc(100% - 48px), 1240px); max-width: none; margin-inline: auto; }
body .footer2_component .footer2_link,
body .footer2_component .footer2_legal-link { display: inline-flex; min-height: 44px; align-items: center; }
body .footer2_component div.footer2_link { display: block; min-height: 0; }
@media (max-width: 768px) {
  body .footer2_component .container-large { width: min(calc(100% - 40px), 1240px); }
}
@media (max-width: 390px) {
  body .footer2_component .container-large { width: min(calc(100% - 32px), 1240px); }
}

/* --------------------------------------------------------------------------
   17. Motion failsafe: hero card starts hidden only when JS is present,
       and reveals itself after 2.5s if the motion script never runs.
   -------------------------------------------------------------------------- */
@keyframes pmdV4Reveal { to { opacity: 1; } }
@media (min-width: 769px) and (prefers-reduced-motion: no-preference) {
  html.pmd-v4-intro .pmd-v3_page[data-pmd-v4] .pmd-v3_hero-callouts {
    opacity: 0;
    animation: pmdV4Reveal 0.01s linear 2.5s forwards;
  }
}
@media (prefers-reduced-motion: reduce) {
  .pmd-v3_page[data-pmd-v4] *,
  .pmd-v3_page[data-pmd-v4] *::before,
  .pmd-v3_page[data-pmd-v4] *::after {
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
  }
}

/* --------------------------------------------------------------------------
   18. QA round 1 (1.0.3): tablet layouts, orbit spacing, contrast, focus,
       headline wrapping, paint cost
   -------------------------------------------------------------------------- */

/* Headlines: no one-word last lines ("year.", "plan."); body copy avoids orphans */
.pmd-v3_page[data-pmd-v4] :where(.pmd-v3_h2, .pmd-v3_h3, .pmd-v3_model-feature-heading, .pmd-v3_value-card h3, .pmd-v3_care-team h3) { text-wrap: balance; }
.pmd-v3_page[data-pmd-v4] :where(.pmd-v3_body, .pmd-v3_hero-body, p) { text-wrap: pretty; }

/* Tablet hero (769-1100px): keep the plan card as one row across the photo edge.
   Webflow's shared CSS stacks it into 1 column at this width. */
@media (min-width: 769px) and (max-width: 1100px) {
  .pmd-v3_page[data-pmd-v4] .pmd-v3_hero-callouts {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    bottom: -24px;
    left: -48px;
    width: calc(100% + 48px);
  }
  .pmd-v3_page[data-pmd-v4] .pmd-v3_hero-callout {
    min-height: 40px;
    padding: 6px 4px;
    border-right: 1px solid var(--pmd-blue-line);
    border-bottom: 0;
    font-size: 9px;
    letter-spacing: 0.06em;
  }
  .pmd-v3_page[data-pmd-v4] .pmd-v3_hero-callout:nth-child(3) { border-right: 0; }
  .pmd-v3_page[data-pmd-v4] .pmd-v3_hero-review-state { grid-column: 1 / -1; }
}

/* Stats ribbon, tablet: clean 2 x 2 (480-991px) and 4 across (992-1100px), no stray indent */
@media (min-width: 480px) and (max-width: 991px) {
  .pmd-v3_page[data-pmd-v4] .pmd-v3_proof-ribbon { padding-block: 12px; }
  .pmd-v3_page[data-pmd-v4] .pmd-v3_proof-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; }
  .pmd-v3_page[data-pmd-v4] .pmd-v3_proof-item {
    grid-column: auto;
    padding: 22px 20px 22px 0 !important;
    border-right: 0 !important;
    border-bottom: 1px solid var(--v4-navy-line) !important;
  }
  .pmd-v3_page[data-pmd-v4] .pmd-v3_proof-item:nth-child(even) {
    padding-left: 24px !important;
    padding-right: 0 !important;
    border-left: 1px solid var(--v4-navy-line);
  }
  .pmd-v3_page[data-pmd-v4] .pmd-v3_proof-item:nth-last-child(-n + 2) { border-bottom: 0 !important; }
}
@media (min-width: 992px) and (max-width: 1100px) {
  .pmd-v3_page[data-pmd-v4] .pmd-v3_proof-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; }
  .pmd-v3_page[data-pmd-v4] .pmd-v3_proof-item { grid-column: auto; padding: 4px 20px; }
  .pmd-v3_page[data-pmd-v4] .pmd-v3_proof-item:first-child { padding-left: 0; }
  .pmd-v3_page[data-pmd-v4] .pmd-v3_proof-item:last-child { padding-right: 0; }
}

/* Orbit, desktop: give the diagram 7 of 12 columns so the ring cards clear "You" */
@media (min-width: 1101px) {
  .pmd-v3_page[data-pmd-v4] .pmd-v3_model-grid > .pmd-v3_model-orbit { grid-column: span 7; }
  .pmd-v3_page[data-pmd-v4] .pmd-v3_model-grid > .pmd-v3_model-features { grid-column: span 5; }
}
/* The ring cards sit on a flat navy panel, so the backdrop blur costs paint and adds nothing */
.pmd-v3_page[data-pmd-v4] .pmd-v3_model-ring { -webkit-backdrop-filter: none; backdrop-filter: none; background: rgba(21, 42, 68, 0.94); }

/* Testimonials, tablet: supporting card sizes to its quote */
@media (max-width: 1100px) {
  .pmd-v3_page[data-pmd-v4] .pmd-v3_testimonial-supporting { min-height: 0; }
}

/* Contrast (WCAG AA): feature numbers on cream, footer secondary text on navy */
.pmd-v3_page[data-pmd-v4] .pmd-v3_model-feature-number { color: #7a5a3e; }
body .footer2_component .footer-title,
body .footer2_component .text-color-light,
body .footer2_component .footer2_credit-text,
body .footer2_component .footer2_legal-link { color: #9aa5b3; }

/* Focus: one two-tone ring that reads on cream, white and navy (3:1 non-text contrast) */
.pmd-v3_page[data-pmd-v4] :where(a, button, summary, [tabindex]):focus-visible,
body .footer2_component a:focus-visible {
  outline: 3px solid #e5b07a;
  outline-offset: 2px;
  box-shadow: 0 0 0 2px #152a44;
}


/* --------------------------------------------------------------------------
   19. Go-live (1.0.4): clinic names link to their clinic pages
   -------------------------------------------------------------------------- */
.pmd-v3_page[data-pmd-v4] [data-pmd-v4-clinic-link] {
  display: inline-block;
  padding-block: 3px;
  color: inherit;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-decoration-color: rgba(122, 90, 62, 0.55);
  text-underline-offset: 3px;
  transition: text-decoration-color 0.2s var(--pmd-ease);
}
.pmd-v3_page[data-pmd-v4] [data-pmd-v4-clinic-link]:hover { text-decoration-color: currentColor; }
