﻿/* ═══════════════════════════════════════════════════════════════════
   HOUSTON SENIOR LIVING GUIDE — Design System
   Translated from halg-homepage-v4.jsx GlobalStyles
   "Warm Editorial Guide" — Texas Monthly meets Consumer Reports
   ═══════════════════════════════════════════════════════════════════ */

/* ── Color System ── */
:root {
  --teal:        #2A7B88;
  --teal-mid:    #1E6875;
  --teal-soft:   #EBF5F7;
  --coral:       #DF4C73;
  --coral-soft:  #FDF0F4;
  --navy:        #002846;
  --navy-mid:    #003560;
  --cream:       #F9F3E9;
  --sand:        #EDE4D3;
  --sand-deep:   #DDD3BF;
  --white:       #FFFFFF;
  --text-mid:    #4A5568;
  --text-light:  #8896A4;
  --border:      #E5E7EB;
  --gold:        #B8860B;
  --gold-soft:   #FDF8EE;
}

/* ── Light Theme ── */
[data-theme="light"] {
  --bg:           #F9F3E9;
  --bg-alt:       #EDE4D3;
  --surface:      #FFFFFF;
  --surface-tint: #F7F2EC;
  --headline:     #002846;
  --body:         #4A5568;
  --body-light:   #8896A4;
  --border-col:   #E5E7EB;
  --nav-bg:       rgba(255,255,255,0.96);
  --card-shadow:  0 2px 16px rgba(0,40,70,0.07);
  --card-hover:   0 8px 32px rgba(0,40,70,0.13);
  --warm-shadow:  0 4px 20px rgba(139,90,43,0.10);
  --section-dark: #002846;
  --section-dark-text: rgba(255,255,255,0.75);
}

/* ── Dark Theme ── */
[data-theme="dark"] {
  --bg:           #0C1A2B;
  --bg-alt:       #101F30;
  --surface:      #152537;
  --surface-tint: #1A2D3F;
  --headline:     #EDE8DC;
  --body:         #A8B4BE;
  --body-light:   #6A7D8C;
  --border-col:   #1E3347;
  --nav-bg:       rgba(12,26,43,0.96);
  --card-shadow:  0 2px 16px rgba(0,0,0,0.25);
  --card-hover:   0 8px 32px rgba(0,0,0,0.40);
  --warm-shadow:  0 4px 20px rgba(0,0,0,0.30);
  --section-dark: #0A1520;
  --section-dark-text: rgba(237,232,220,0.65);
  --teal-soft:    rgba(42,123,136,0.15);
  --coral-soft:   rgba(223,76,115,0.12);
}

/* ── Reset ── */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  font-size: 18px;
  scroll-behavior: smooth;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body {
  font-family: 'Source Sans 3', sans-serif;
  background: var(--bg);
  color: var(--body);
  line-height: 1.65;
  transition: background 0.4s ease, color 0.4s ease;
}

/* ── Typography ── */
.serif { font-family: 'Lora', serif; }

h1, h2, h3 {
  font-family: 'Lora', serif;
  color: var(--headline);
}

h1 { font-size: clamp(2rem, 4vw, 3.25rem); line-height: 1.18; font-weight: 700; letter-spacing: -0.01em; }
h2 { font-size: clamp(1.6rem, 3vw, 2.2rem); font-weight: 700; }
h3 { font-size: 1.2rem; font-weight: 700; }

input, select, textarea { font-family: 'Source Sans 3', sans-serif; }
::placeholder { color: var(--body-light); }
a { color: var(--teal); text-decoration: none; }
a:hover { text-decoration: underline; }

/* ── Focus States ── */
button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible {
  outline: 3px solid var(--teal);
  outline-offset: 3px;
  border-radius: 4px;
}

/* ── Layout Utilities ── */
.wrap {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px;
}

.grid-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }
.grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }

/* ── Paper Grain Texture (light mode only) ── */
[data-theme="light"] .grain::after {
  content: '';
  position: absolute;
  inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.03'/%3E%3C/svg%3E");
  pointer-events: none;
  opacity: 0.4;
  z-index: 0;
}

/* ── Scroll Reveal ── */
.reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.75s ease-out, transform 0.75s ease-out;
}
.reveal.vis { opacity: 1; transform: translateY(0); }
.reveal.d1 { transition-delay: 0.1s; }
.reveal.d2 { transition-delay: 0.2s; }
.reveal.d3 { transition-delay: 0.3s; }
.reveal.d4 { transition-delay: 0.4s; }

/* ── Section Eyebrow ── */
.eyebrow {
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--teal);
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
}
.eyebrow::before {
  content: '';
  width: 28px;
  height: 2px;
  background: var(--teal);
  border-radius: 1px;
  flex-shrink: 0;
}
.eyebrow--center { justify-content: center; }

/* ── Section Divider ── */
.divider {
  height: 1px;
  background: var(--border-col);
  margin: 0 auto;
  max-width: 1200px;
}

/* ── Wave Section Top ── */
.wave-top::before {
  content: '';
  display: block;
  height: 48px;
  background: var(--bg);
  clip-path: ellipse(55% 100% at 50% 0%);
  margin-bottom: -2px;
}

/* ── Teal Accent Bar (blockquote) ── */
.teal-bar {
  border-left: 4px solid var(--teal);
  padding-left: 24px;
}

/* ── Large Quote Mark ── */
.quote-mark {
  font-family: 'Lora', serif;
  font-size: 5rem;
  line-height: 0.8;
  color: var(--teal);
  opacity: 0.25;
  display: block;
  margin-bottom: -12px;
}
.quote-mark--sm {
  font-family: 'Lora', serif;
  font-size: 3rem;
  line-height: 0.7;
  color: var(--teal);
  opacity: 0.2;
  display: block;
  margin-bottom: 4px;
}

/* ── Pill Badge ── */
.pill {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 10px;
  border-radius: 4px;
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.02em;
}
.pill-teal { background: var(--teal); color: white; }
.pill-teal-soft { background: var(--teal-soft); color: var(--teal); }
.pill-coral-soft { background: var(--coral-soft); color: var(--coral); }
.pill-gold { background: var(--gold); color: white; }
.pill-navy { background: var(--navy); color: white; }

/* ── Editorial tagline (Learning Hub + pipeline articles) ── */
.hslg-tagline {
  font-size: 13px;
  font-style: italic;
  color: #2A7B88;
  letter-spacing: 0.04em;
  margin: 0 0 24px 0;
}

/* ── Navigation ── */
.nav {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 100;
  background: var(--nav-bg);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid transparent;
  height: 96px;
  display: flex;
  align-items: center;
  transition: border-color 0.3s, box-shadow 0.3s;
}
.nav.scrolled {
  border-bottom-color: var(--border-col);
  box-shadow: 0 2px 20px rgba(0,40,70,0.07);
}

.nav-link {
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.9rem;
  font-weight: 500;
  color: var(--body);
  text-decoration: none;
  padding: 6px 2px;
  border-bottom: 2px solid transparent;
  transition: color 0.2s, border-color 0.2s;
}
.nav-link:hover {
  color: var(--teal);
  border-bottom-color: var(--teal);
  text-decoration: none;
}

.nav__logo { display: flex; align-items: center; gap: 12px; text-decoration: none; }
.nav__logo:hover { text-decoration: none; }
.nav__logo-img { height: 80px; width: auto; display: block; background: white; border-radius: 8px; padding: 4px; }
.nav__logo-text { display: flex; flex-direction: column; gap: 0; line-height: 1.15; }
.nav__logo-houston { font-family: 'Lora', serif; font-size: 1.25rem; color: var(--teal); font-weight: 700; line-height: 1.2; }
.nav__logo-senior { font-family: 'Source Sans 3', sans-serif; font-size: 0.95rem; color: var(--headline); font-weight: 600; line-height: 1.2; }
.nav__logo-guide { font-family: 'Source Sans 3', sans-serif; font-size: 0.95rem; color: var(--headline); font-weight: 600; line-height: 1.2; }

.nav__desktop { display: flex; align-items: center; gap: 32px; }
.nav__mobile-controls { display: none; gap: 12px; align-items: center; }

/* ── Mobile Menu ── */
.mobile-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.4);
  z-index: 150;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s;
}
.mobile-overlay.open { opacity: 1; pointer-events: auto; }

.mobile-menu {
  position: fixed;
  top: 0; right: 0; bottom: 0;
  width: min(320px, 85vw);
  background: var(--surface);
  box-shadow: -8px 0 40px rgba(0,0,0,0.15);
  z-index: 200;
  padding: 72px 28px 32px;
  transform: translateX(100%);
  transition: transform 0.3s cubic-bezier(0.32, 0, 0.67, 0);
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
}
.mobile-menu.open {
  transform: translateX(0);
  transition: transform 0.3s cubic-bezier(0.33, 1, 0.68, 1);
}

.mobile-menu__close {
  /* Fixed within the transformed .mobile-menu ancestor — stays pinned at the
     top-right of the panel while the menu body scrolls. The transform on the
     ancestor creates a containing block, so this moves off-screen with the
     menu when closed (no visibility rule needed). */
  position: fixed;
  top: 18px;
  right: 18px;
  background: var(--surface);
  border: 1px solid rgba(0,0,0,0.06);
  cursor: pointer;
  color: var(--body);
  padding: 6px;
  border-radius: 50%;
  z-index: 201;
  box-shadow: 0 2px 10px rgba(0,0,0,0.12);
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.mobile-menu__close svg { width: 20px; height: 20px; }

.mobile-menu__link {
  display: block;
  padding: 14px 0;
  font-family: 'Source Sans 3', sans-serif;
  font-weight: 500;
  font-size: 1.05rem;
  color: var(--headline);
  border-bottom: 1px solid var(--border-col);
  text-decoration: none;
}
.mobile-menu__link:hover { text-decoration: none; color: var(--teal); }

/* ── Buttons ── */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 8px;
  font-family: 'Source Sans 3', sans-serif;
  font-weight: 700;
  font-size: 0.95rem;
  border: none;
  border-radius: 8px;
  cursor: pointer;
  text-decoration: none;
  transition: transform 0.15s, box-shadow 0.15s, background 0.2s, border-color 0.2s;
}
.btn:hover { text-decoration: none; }

.btn--coral {
  background: var(--coral);
  color: white;
  height: 56px;
  padding: 0 36px;
  letter-spacing: 0.01em;
  box-shadow: 0 4px 18px rgba(223,76,115,0.30);
}
.btn--coral:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 22px rgba(223,76,115,0.38);
}

.btn--coral-sm {
  background: var(--coral);
  color: white;
  height: 52px;
  padding: 0 28px;
  font-size: 0.92rem;
  box-shadow: 0 4px 16px rgba(223,76,115,0.35);
}

.btn--teal {
  background: var(--teal);
  color: white;
  height: 44px;
  padding: 0 20px;
  font-size: 0.88rem;
  font-weight: 600;
}
.btn--teal:hover { background: var(--teal-mid); }

.btn--teal-full {
  background: var(--teal);
  color: white;
  width: 100%;
  height: 52px;
  font-size: 0.95rem;
}
.btn--teal-full:hover { background: var(--teal-mid); }

.btn--outline-teal {
  background: transparent;
  border: 1.5px solid var(--teal);
  color: var(--teal);
  height: 44px;
  padding: 0 20px;
  font-size: 0.85rem;
  font-weight: 600;
}
.btn--outline-teal:hover { background: var(--teal); color: white; }

.btn--outline-white {
  background: transparent;
  color: white;
  border: 2px solid rgba(255,255,255,0.45);
  height: 52px;
  padding: 0 28px;
  font-size: 0.92rem;
  font-weight: 600;
}
.btn--outline-white:hover { border-color: rgba(255,255,255,0.9); }

.btn--theme-toggle {
  background: none;
  border: 1px solid var(--border-col);
  border-radius: 8px;
  width: 38px;
  height: 38px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--body-light);
  transition: border-color 0.2s;
}

/* ── Cards ── */
.card {
  background: var(--surface);
  border: 1px solid var(--border-col);
  border-radius: 16px;
  overflow: hidden;
  box-shadow: var(--card-shadow);
  transition: box-shadow 0.3s ease, transform 0.3s ease;
}
.card:hover {
  box-shadow: var(--card-hover);
  transform: translateY(-3px);
}

.card__photo {
  height: 200px;
  position: relative;
}
.card__photo-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, transparent 40%, rgba(0,40,70,0.5) 100%);
}
.card__body { padding: 20px 22px; }

/* Photo gradient placeholders */
.photo-warm-1 { background: linear-gradient(135deg, #C8A882 0%, #E8C99A 40%, #D4B896 100%); }
.photo-warm-2 { background: linear-gradient(135deg, #8BAF9E 0%, #A8C5B5 40%, #7A9E8E 100%); }
.photo-warm-3 { background: linear-gradient(135deg, #B8A09A 0%, #D4BDB7 40%, #C4ADA7 100%); }

/* ── Neighborhood Card ── */
.nbhd-card {
  background: var(--surface);
  border: 1px solid var(--border-col);
  border-radius: 12px;
  height: 90px;
  display: flex;
  align-items: center;
  overflow: hidden;
  cursor: pointer;
  transition: box-shadow 0.25s ease, transform 0.25s ease;
  text-decoration: none;
}
.nbhd-card:hover {
  box-shadow: var(--card-hover);
  transform: translateY(-2px);
  text-decoration: none;
}
.nbhd-card__accent {
  width: 4px;
  align-self: stretch;
  flex-shrink: 0;
  background: var(--teal);
  border-radius: 12px 0 0 12px;
  transition: background 0.25s;
}
.nbhd-card:hover .nbhd-card__accent { background: var(--coral); }
.nbhd-card__body { flex: 1; padding: 14px 16px; }
.nbhd-card__name { font-family: 'Lora', serif; font-size: 0.98rem; color: var(--headline); font-weight: 700; line-height: 1.2; }
.nbhd-card__count { font-size: 0.73rem; color: var(--body-light); font-family: 'Source Sans 3', sans-serif; margin-top: 3px; }
.nbhd-card__tag { font-size: 0.68rem; color: var(--teal); font-family: 'Source Sans 3', sans-serif; margin-top: 4px; font-weight: 600; }
.nbhd-card__arrow {
  color: var(--body-light);
  margin-right: 14px;
  flex-shrink: 0;
  transition: transform 0.2s, color 0.2s;
}
.nbhd-card:hover .nbhd-card__arrow { color: var(--teal); transform: translateX(3px); }

/* ── Review Card ── */
.review-card {
  background: var(--surface-tint);
  border: 1px solid var(--border-col);
  border-radius: 16px;
  padding: 28px 24px;
  box-shadow: var(--card-shadow);
  display: flex;
  flex-direction: column;
}

/* ── Stars ── */
.star-filled { color: #F59E0B; }
.star-empty { color: var(--border-col); }
.stars { display: flex; gap: 3px; }

/* ── Journey Button ── */
.journey-btn {
  width: 100%;
  text-align: left;
  padding: 14px 16px;
  background: transparent;
  border: 1.5px solid var(--border-col);
  border-left-width: 4px;
  border-left-color: var(--border-col);
  border-radius: 10px;
  cursor: pointer;
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.88rem;
  font-weight: 500;
  color: var(--headline);
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 56px;
  transition: all 0.2s ease;
}
.journey-btn:hover {
  background: var(--bg);
  border-color: var(--teal);
}
.journey-btn.selected {
  background: var(--teal-soft);
  border-color: var(--teal);
}
.journey-btn__dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  flex-shrink: 0;
}

/* ── Form Elements ── */
.form-label {
  display: block;
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--body);
  margin-bottom: 6px;
  font-family: 'Source Sans 3', sans-serif;
}

.form-input {
  width: 100%;
  height: 54px;
  padding: 0 16px;
  border: 1.5px solid var(--border-col);
  border-radius: 8px;
  font-size: 1rem;
  color: var(--headline);
  background: var(--surface);
}
.form-input:focus {
  outline: none;
  border-color: var(--teal);
  box-shadow: 0 0 0 3px rgba(42,123,136,0.12);
}

.form-select {
  width: 100%;
  height: 54px;
  padding: 0 14px;
  border: 1.5px solid var(--border-col);
  border-radius: 8px;
  font-size: 1rem;
  color: var(--headline);
  background: var(--surface);
  cursor: pointer;
}

/* ── Section: Dark (navy) ── */
.section-dark {
  background: var(--section-dark);
  color: white;
  position: relative;
  overflow: hidden;
}
.section-dark__stat-num {
  font-family: 'Lora', serif;
  font-size: 3.2rem;
  color: var(--teal);
  font-weight: 700;
  line-height: 1;
}
.section-dark__stat-unit {
  font-size: 1rem;
  color: rgba(255,255,255,0.5);
  font-family: 'Source Sans 3', sans-serif;
  font-weight: 500;
}
.section-dark__stat-label {
  font-size: 0.88rem;
  font-weight: 700;
  color: rgba(255,255,255,0.9);
  font-family: 'Source Sans 3', sans-serif;
  letter-spacing: 0.01em;
}
.section-dark__stat-desc {
  font-size: 0.82rem;
  color: var(--section-dark-text);
  font-family: 'Source Sans 3', sans-serif;
  line-height: 1.6;
}

/* ── Section: CTA Strip ── */
.section-cta {
  background: var(--teal);
  padding: 72px 0;
}

/* ── Footer ── */
.footer {
  background: var(--navy);
  padding: 72px 0 0;
  position: relative;
  overflow: hidden;
  color: white;
}
.footer__col-head {
  color: rgba(255,255,255,0.25);
  font-weight: 700;
  font-size: 0.65rem;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  margin-bottom: 16px;
  font-family: 'Source Sans 3', sans-serif;
}
.footer__link {
  display: block;
  color: rgba(255,255,255,0.45);
  text-decoration: none;
  font-size: 0.83rem;
  padding: 5px 0;
  font-family: 'Source Sans 3', sans-serif;
  transition: color 0.2s;
}
.footer__link:hover { color: rgba(255,255,255,0.9); text-decoration: none; }

.footer__disclosure {
  color: rgba(255,255,255,0.28);
  font-size: 0.74rem;
  line-height: 1.7;
  max-width: 780px;
  font-family: 'Source Sans 3', sans-serif;
}
.footer__copyright {
  color: rgba(255,255,255,0.18);
  font-size: 0.74rem;
  font-family: 'Source Sans 3', sans-serif;
}
.footer__legal-link {
  color: rgba(255,255,255,0.18);
  font-size: 0.74rem;
  text-decoration: none;
  font-family: 'Source Sans 3', sans-serif;
}
.footer__legal-link:hover { color: rgba(255,255,255,0.5); text-decoration: none; }

/* ── Skyline SVG ── */
.skyline-svg {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  opacity: 0.07;
  pointer-events: none;
}

/* ── FAQ Accordion ── */
.faq-accordion details {
  border: 1px solid var(--border-col);
  border-radius: 12px;
  margin-bottom: 12px;
  background: var(--surface);
  overflow: hidden;
}
.faq-accordion summary {
  padding: 18px 22px;
  font-family: 'Lora', serif;
  font-size: 1rem;
  font-weight: 600;
  color: var(--headline);
  cursor: pointer;
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.faq-accordion summary::-webkit-details-marker { display: none; }
.faq-accordion summary::after {
  content: '+';
  font-family: 'Source Sans 3', sans-serif;
  font-size: 1.4rem;
  font-weight: 300;
  color: var(--teal);
  flex-shrink: 0;
  transition: transform 0.2s;
}
.faq-accordion details[open] summary::after {
  content: '−';
}
.faq-accordion .faq-answer {
  padding: 0 22px 18px;
  font-size: 0.92rem;
  color: var(--body);
  line-height: 1.7;
}

/* ── Breadcrumb ── */
.breadcrumb {
  display: none;
  align-items: center;
  gap: 8px;
  font-size: 0.82rem;
  color: var(--body-light);
  font-family: 'Source Sans 3', sans-serif;
  margin-bottom: 0;
  flex-wrap: wrap;
}
.breadcrumb a { color: var(--teal); text-decoration: none; }
.breadcrumb a:hover { text-decoration: underline; }
.breadcrumb__sep { color: var(--border-col); }

/* ── Data Panel (facility page) ── */
.data-panel {
  background: var(--surface);
  border: 1px solid var(--border-col);
  border-radius: 16px;
  padding: 28px 24px;
  box-shadow: var(--card-shadow);
}
.data-panel__row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  padding: 20px 0;
  border-top: 1px solid var(--border-col);
  border-bottom: 1px solid var(--border-col);
  margin: 20px 0;
}
.data-panel__label {
  display: block;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--body-light);
  margin-bottom: 4px;
  font-family: 'Source Sans 3', sans-serif;
}
.data-panel__value {
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--headline);
  font-family: 'Source Sans 3', sans-serif;
}

/* ── HHSC Transparency Banner ── */
.hhsc-banner {
  background: var(--navy);
  color: white;
  border-radius: 14px;
  padding: 28px 24px;
  box-shadow: var(--card-shadow);
}

/* ── Claim Badge ── */
.badge { display: inline-flex; align-items: center; gap: 6px; padding: 6px 14px; border-radius: 6px; font-size: 0.78rem; font-weight: 700; font-family: 'Source Sans 3', sans-serif; }
.badge--basic { background: var(--teal-soft); color: var(--teal); border: 1px solid var(--teal); }
.badge--enhanced { background: var(--gold-soft); color: var(--gold); border: 1px solid var(--gold); }
.badge--partner { background: var(--navy); color: white; }

/* ── Social Proof Avatars ── */
.avatar-stack { display: flex; }
.avatar-stack__dot {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  border: 2px solid var(--surface);
}
.avatar-stack__dot + .avatar-stack__dot { margin-left: -8px; }

/* ── Scroll Hint Animation ── */
.scroll-hint { animation: bounce-subtle 2s ease-in-out infinite; }
@keyframes bounce-subtle {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(4px); }
}

/* ── Theme Transitions ── */
*, *::before, *::after {
  transition-property: background-color, border-color, color, box-shadow;
  transition-duration: 0.3s;
  transition-timing-function: ease;
}
.no-transition, .no-transition * { transition: none !important; }



/* ── AI Guide CTA ── */
.ai-guide-cta {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 16px;
  padding: 16px 20px;
  background: linear-gradient(135deg, #0d3d3d 0%, #1a6b6b 50%, #2a7b88 100%);
  border-radius: 12px;
  text-decoration: none;
  color: #fff;
  transition: transform 0.2s, box-shadow 0.2s;
  box-shadow: 0 4px 16px rgba(42,123,136,0.25);
  cursor: pointer;
}
.ai-guide-cta:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 24px rgba(42,123,136,0.35);
}
.ai-guide-cta__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  background: rgba(255,255,255,0.15);
  border-radius: 50%;
  flex-shrink: 0;
  animation: ai-guide-pulse 3s ease-in-out infinite;
}
@keyframes ai-guide-pulse {
  0%, 100% { background: rgba(255,255,255,0.15); }
  50% { background: rgba(255,255,255,0.25); }
}
.ai-guide-cta__text {
  display: flex;
  flex-direction: column;
  gap: 2px;
  flex: 1;
}
.ai-guide-cta__text strong {
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.02em;
}
.ai-guide-cta__text span {
  font-size: 0.82rem;
  opacity: 0.85;
  font-family: 'Source Sans 3', sans-serif;
}
.ai-guide-cta__arrow {
  font-size: 1.2rem;
  opacity: 0.7;
  flex-shrink: 0;
  animation: ai-arrow-bounce 2s ease-in-out infinite;
}
@keyframes ai-arrow-bounce {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(4px); }
}
[data-theme="dark"] .ai-guide-cta {
  background: linear-gradient(135deg, #0a2e2e 0%, #145555 50%, #1e6b7a 100%);
  box-shadow: 0 4px 16px rgba(42,123,136,0.15);
}

/* ── Print Styles ── */
@media print {
  .nav, .footer, .mobile-menu, .mobile-overlay,
  .btn--coral, .btn--teal, .section-cta { display: none !important; }
  body { background: white; color: black; font-size: 12pt; }
  .card { box-shadow: none; border: 1px solid #ccc; break-inside: avoid; }
  a { color: black; }
  a[href]::after { content: " (" attr(href) ")"; font-size: 0.8em; }
}

/* ── Responsive ── */
@media (max-width: 768px) {
  .hide-mob { display: none !important; }
  html { font-size: 16px; }

  .nav__desktop { display: none !important; }
  .nav__mobile-controls { display: flex !important; }

  .grid-2, .grid-3, .grid-4 { grid-template-columns: 1fr; }

  .hero-grid { grid-template-columns: 1fr !important; gap: 32px !important; }

  .section-dark .grid-3 { grid-template-columns: 1fr; gap: 32px; }
  .section-dark .grid-3 > div { border-left: none !important; padding: 0 !important; text-align: left; }

  /* Footer: override inline display:grid to force single-column stack */
  .footer .grid-footer {
    display: flex !important;
    flex-direction: column !important;
    gap: 32px !important;
    padding-bottom: 32px !important;
  }

  /* Prevent horizontal overflow/scroll from any fixed-width element */
  html, body { overflow-x: hidden; }

  .email-grid { grid-template-columns: 1fr !important; gap: 24px !important; }
  .why-grid { grid-template-columns: 1fr !important; gap: 32px !important; }
  .search-grid { grid-template-columns: 1fr !important; }

  .data-panel__row { grid-template-columns: 1fr; }

  /* Facility page: switch to flex column on mobile — bypasses grid entirely */
  .layout-facility {
    display: flex !important;
    flex-direction: column !important;
    gap: 20px !important;
  }
  .layout-facility__sidebar {
    position: static !important;
    width: 100% !important;
  }
  /* Legacy facility pages built with inline grid (pre-layout-facility class) */
  .wrap > div[style*="grid-template-columns:2fr 1fr"] {
    display: flex !important;
    flex-direction: column !important;
    gap: 20px !important;
  }
  .wrap > div[style*="grid-template-columns:2fr 1fr"] > aside[style*="position:sticky"] {
    position: static !important;
    width: 100% !important;
  }
  /* Show mobile "Schedule a Visit" jump link (needs !important — base rule at line ~957 comes later) */
  .mob-schedule-cta {
    display: inline-flex !important;
    margin-top: 0;
  }

  /* Suburb page: main content + hidden sidebar → full width on mobile */
  .suburb-layout {
    grid-template-columns: 1fr !important;
    gap: 0 !important;
  }

  /* Stats strips: 4-col → 2-col on mobile */
  .stats-grid-4 {
    grid-template-columns: repeat(2, 1fr) !important;
  }
  .quick-facts-strip {
    grid-template-columns: repeat(2, 1fr) !important;
  }
  .quick-facts-strip__item {
    border-right: none !important;
    border-bottom: 1px solid rgba(255,255,255,0.18);
  }
  .quick-facts-strip__item:nth-child(odd) {
    border-right: 1px solid rgba(255,255,255,0.18) !important;
  }
  .quick-facts-strip__item:nth-last-child(-n+2) {
    border-bottom: none;
  }

  /* Suburb editorial/intro 3fr 2fr → stack on mobile */
  .suburb-editorial {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }

  /* Section padding: reduce large inline padding on mobile */
  section {
    padding-top: 40px !important;
    padding-bottom: 40px !important;
  }

  /* Mobile nav: keep compact since logo image is hidden */
  .nav { height: 72px; }

  /* Main content top offset: reduce on mobile */
  #main-content {
    padding-top: 56px;
  }

  /* Nav logo: reduce size on small phones so hamburger stays in viewport */
  .nav__logo-houston { font-size: 1rem !important; }
  .nav__logo-senior { font-size: 0.78rem !important; }
  .nav__logo-guide { font-size: 0.78rem !important; }
}

@media (min-width: 769px) {
  .hide-desk { display: none !important; }
}

@media (max-width: 1024px) {
  .grid-4 { grid-template-columns: repeat(2, 1fr); }
}

/* ── Suburb Page Layout Utilities ────────────────────────────── */
.suburb-layout {
  display: grid;
  grid-template-columns: 240px 1fr;
  gap: 32px;
}
.stats-grid-4 {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}
.quick-facts-strip {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
}
.quick-facts-strip__item {
  text-align: center;
  padding: 20px 12px;
  border-right: 1px solid rgba(255,255,255,0.18);
}
.quick-facts-strip__item:last-child {
  border-right: none;
}
.suburb-editorial {
  display: grid;
  grid-template-columns: 3fr 2fr;
  gap: 48px;
  align-items: flex-start;
}

/* ── Facility Page: Content + Sidebar Layout ──────────────────── */
.layout-facility {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
  gap: 32px;
  align-items: flex-start;
}
.layout-facility__sidebar {
  position: sticky;
  top: 96px;
  display: flex;
  flex-direction: column;
  gap: 20px;
}
/* Mobile-only "Schedule a Visit" jump link — hidden on desktop */
.mob-schedule-cta {
  display: none;
}

/* ── Verified Member Badge ─────────────────────────────────────── */
.verified-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: #2A7B88;
  color: #fff;
  font-size: 0.72rem;
  font-family: 'Source Sans 3', sans-serif;
  padding: 3px 10px;
  border-radius: 100px;
  vertical-align: middle;
  margin-left: 8px;
  letter-spacing: 0.02em;
}

/* ── Claimed Listing Badge (free-tier claimed, not yet paid verified) ── */
.claimed-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: var(--teal-soft, #E6F3F5);
  color: #1B6B76;
  font-size: 0.72rem;
  font-family: 'Source Sans 3', sans-serif;
  padding: 3px 10px;
  border-radius: 100px;
  border: 1px solid rgba(42,123,136,0.35);
  vertical-align: middle;
  margin-left: 8px;
  letter-spacing: 0.02em;
}

.accessibility-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: #ECFDF5;
  color: #065F46;
  font-size: 0.78rem;
  font-weight: 600;
  font-family: 'Source Sans 3', sans-serif;
  padding: 4px 12px;
  border-radius: 20px;
  border: 1px solid rgba(6,95,70,0.2);
}

/* E2-A: Internal Linking Components */
.medicaid-resource-link { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.medicaid-learn-more { font-size: 0.78rem; color: var(--teal); text-decoration: none; font-family: 'Source Sans 3', sans-serif; font-weight: 500; }
.medicaid-learn-more:hover { text-decoration: underline; }
.cross-care-suggestions { display: flex; flex-direction: column; gap: 8px; }
.cross-care-card { display: flex; align-items: center; gap: 10px; padding: 12px 14px; background: var(--surface); border: 1px solid var(--border-col); border-radius: 10px; text-decoration: none; color: var(--headline); font-family: 'Source Sans 3', sans-serif; transition: border-color 0.2s, box-shadow 0.2s; }
.cross-care-card:hover { border-color: var(--teal); box-shadow: 0 2px 8px rgba(42,123,136,0.1); }
.care-type-pill { display: inline-block; padding: 2px 10px; font-size: 0.72rem; font-weight: 700; color: var(--teal); background: var(--teal-soft, rgba(42,123,136,0.08)); border-radius: 20px; white-space: nowrap; }
.cross-care-name { font-size: 0.88rem; font-weight: 600; flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cross-care-rating { font-size: 0.82rem; color: #F59E0B; font-weight: 600; white-space: nowrap; }

.social-link {
  font-size: 0.85rem;
  color: var(--teal);
  font-family: 'Source Sans 3', sans-serif;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.social-link:hover { text-decoration: underline; }

/* ── Footer Google Disclaimer ─────────────────────────────────── */
.footer-disclaimer {
  font-size: 0.72rem;
  color: rgba(255, 255, 255, 0.35);
  font-family: 'Source Sans 3', sans-serif;
  line-height: 1.5;
  margin-top: 0;
  margin-bottom: 0;
  max-width: 640px;
}

/* ── Flood Zone & Emergency Info (Session 30) ────────────────────── */
.fz-section {
  background: var(--surface);
  border: 1px solid var(--border-col);
  border-radius: 14px;
  padding: 24px 28px;
  box-shadow: var(--card-shadow);
}
.fz-card {
  margin-top: 4px;
}
.fz-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 5px 14px;
  border-radius: 99px;
  font-size: 0.82rem;
  font-weight: 700;
  font-family: 'Source Sans 3', sans-serif;
  letter-spacing: 0.01em;
  margin-bottom: 12px;
}
.fz-badge--high    { background: #FEE2E2; color: #991B1B; border: 1px solid #FECACA; }
.fz-badge--moderate{ background: #FEF3C7; color: #92400E; border: 1px solid #FDE68A; }
.fz-badge--low     { background: #D1FAE5; color: #065F46; border: 1px solid #A7F3D0; }
.fz-badge--unknown { background: #F3F4F6; color: #4B5563; border: 1px solid #E5E7EB; }

.fz-detail {
  font-size: 0.88rem;
  color: var(--body);
  font-family: 'Source Sans 3', sans-serif;
  line-height: 1.6;
  margin-bottom: 10px;
}
.fz-callout {
  border-radius: 0 6px 6px 0;
  padding: 10px 14px;
  font-size: 0.82rem;
  font-family: 'Source Sans 3', sans-serif;
  line-height: 1.5;
  margin-bottom: 14px;
}
.fz-callout--high {
  background: #FFF5F5;
  border-left: 3px solid #DC2626;
  color: #7F1D1D;
}
.fz-emergency-row {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin-top: 10px;
  font-size: 0.83rem;
  font-family: 'Source Sans 3', sans-serif;
  color: var(--body);
}
.fz-emergency-icon {
  font-size: 0.9rem;
  flex-shrink: 0;
  opacity: 0.6;
  margin-top: 1px;
}
.fz-emergency-icon--yes { opacity: 1; }
.fz-emergency-text { line-height: 1.4; }
.fz-source {
  font-size: 0.74rem;
  color: var(--body-light);
  font-family: 'Source Sans 3', sans-serif;
  margin-top: 14px;
  border-top: 1px solid var(--border-col);
  padding-top: 10px;
}
.fz-link {
  color: var(--teal);
  text-decoration: none;
}
.fz-link:hover { text-decoration: underline; }

/* Dark mode: badge backgrounds stay hardcoded (intentional) */

/* ── Home Health (Session 39) ────────────────────────────── */
.hh-filter-bar { display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: center; margin-bottom: 1.5rem; }
.hh-filter-bar select { padding: 0.4rem 0.75rem; border: 1px solid var(--border-col); border-radius: 6px; background: var(--surface); color: var(--body); font-family: 'Source Sans 3', sans-serif; font-size: 0.9rem; }
.hh-filter-label { display: flex; align-items: center; gap: 0.4rem; font-size: 0.9rem; font-family: 'Source Sans 3', sans-serif; color: var(--body); }
.hh-results-count { margin-left: auto; font-size: 0.85rem; color: var(--body-light); font-family: 'Source Sans 3', sans-serif; }
.hh-zone-chip { background: var(--teal-soft); color: var(--teal); font-size: 0.75rem; padding: 2px 8px; border-radius: 12px; }
.hh-zone-badge { background: var(--teal-soft); color: var(--teal); font-size: 0.85rem; padding: 3px 10px; border-radius: 12px; display: inline-block; }
.hh-provider-card { background: var(--surface); border: 1px solid var(--border-col); border-radius: 12px; padding: 20px; box-shadow: var(--card-shadow); }
.hh-traffic-callout { background: var(--bg-alt); border-left: 3px solid var(--teal); padding: 1rem 1.25rem; margin: 1.5rem 0; border-radius: 0 6px 6px 0; }
.hh-traffic-table { width: 100%; border-collapse: collapse; margin: 0.5rem 0; }
.hh-traffic-table td { padding: 0.3rem 0.5rem; font-size: 0.9rem; font-family: 'Source Sans 3', sans-serif; color: var(--body); border-bottom: 1px solid var(--border-col); }
.hh-traffic-source { font-size: 0.75rem; color: var(--body-light); margin-top: 8px; font-family: 'Source Sans 3', sans-serif; }
.drive-time-table { width: 100%; border-collapse: collapse; font-size: 0.85rem; }
.drive-time-table td { padding: 0.2rem 0; }
.drive-time-table td:last-child { text-align: right; color: var(--teal); font-weight: 600; }
.drive-time-note { font-size: 0.75rem; color: var(--body-light); margin-top: 0.5rem; }

/* HH hub: initially hidden cards (shown by JS) */
.hh-provider-card.hh-hidden { display: none; }

/* ── Jobs / Careers (Session 43) ─────────────────────────── */
.badge-hiring { background: #DBEAFE; color: #1E40AF; font-size: 0.75rem; padding: 2px 8px; border-radius: 4px; font-weight: 600; display: inline-block; }
.job-card { background: var(--surface); border: 1px solid var(--border-col); border-radius: 8px; padding: 1.25rem; transition: box-shadow 0.2s; text-decoration: none; color: inherit; display: block; }
.job-card:hover { box-shadow: 0 2px 8px rgba(0,0,0,0.08); }
.job-card__title { font-size: 1rem; font-weight: 700; color: var(--headline); margin-bottom: 4px; font-family: 'Lora', serif; }
.job-card__employer { font-size: 0.85rem; color: var(--teal); margin-bottom: 6px; }
.job-card__meta { font-size: 0.8rem; color: var(--body-light); display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.job-type-badge { display: inline-block; font-size: 0.72rem; padding: 2px 8px; border-radius: 4px; font-weight: 600; }
.job-type-badge--full-time { background: #D1FAE5; color: #065F46; }
.job-type-badge--part-time { background: #FEF3C7; color: #92400E; }
.job-type-badge--contract { background: #E0E7FF; color: #3730A3; }
.job-type-badge--prn { background: #E0E7FF; color: #3730A3; }
.jobs-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 1rem; }
.jobs-mini-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 1rem; }
.job-mini-card { display: block; padding: 1rem; border: 1px solid var(--border-col); border-radius: 6px; text-decoration: none; color: inherit; background: var(--surface); }
.job-mini-card:hover { border-color: var(--teal); }
.salary { color: var(--teal); font-weight: 600; font-size: 0.85rem; }
.careers-suburb-section { margin-top: 3rem; padding-top: 2rem; border-top: 1px solid var(--border-col); }
.careers-at-facility { margin: 2rem 0; }
.jobs-hero { background: linear-gradient(135deg, #002846 0%, #2A7B88 100%); color: #fff; padding: 3rem 0; margin-bottom: 2rem; }
.jobs-hero h1 { font-family: 'Lora', serif; font-size: 2rem; margin-bottom: 0.5rem; color: #fff !important; }
.jobs-hero p { font-size: 1rem; opacity: 0.85; max-width: 600px; color: #fff !important; }
.jobs-filter-bar { display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: center; margin-bottom: 1.5rem; padding: 1rem; background: var(--bg-alt); border-radius: 8px; }
.jobs-filter-bar select { padding: 0.4rem 0.75rem; border: 1px solid var(--border-col); border-radius: 6px; background: var(--surface); color: var(--body); font-size: 0.9rem; }
.jobs-browse-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 0.75rem; }
.jobs-browse-card { display: flex; align-items: center; justify-content: space-between; padding: 0.75rem 1rem; border: 1px solid var(--border-col); border-radius: 6px; text-decoration: none; color: var(--headline); font-size: 0.9rem; background: var(--surface); }
.jobs-browse-card:hover { border-color: var(--teal); background: var(--bg-alt); }
.jobs-browse-card__count { background: var(--teal-soft); color: var(--teal); font-size: 0.75rem; padding: 2px 8px; border-radius: 12px; font-weight: 600; }
.jobs-insights-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 1rem; margin: 1.5rem 0; }
.jobs-insight-card { background: var(--surface); border: 1px solid var(--border-col); border-radius: 8px; padding: 1rem; text-align: center; }
.jobs-insight-card__title { font-weight: 700; font-size: 0.9rem; color: var(--headline); margin-bottom: 4px; }
.jobs-insight-card__salary { color: var(--teal); font-weight: 700; font-size: 1.1rem; margin-bottom: 4px; }
.jobs-insight-card__demand { font-size: 0.75rem; color: var(--body-light); }
.jobs-employer-card { display: flex; align-items: center; gap: 1rem; padding: 1rem; border: 1px solid var(--border-col); border-radius: 8px; text-decoration: none; color: inherit; background: var(--surface); }
.jobs-employer-card:hover { border-color: var(--teal); }
.jobs-employer-card__rating { color: #F59E0B; font-weight: 700; }
.jobs-cta-box { background: var(--teal-soft); border: 2px solid var(--teal); border-radius: 12px; padding: 2rem; text-align: center; margin: 2rem 0; }
.jobs-cta-box h3 { color: var(--headline); margin-bottom: 0.5rem; }
.jobs-cta-box p { color: var(--body); margin-bottom: 1rem; }

/* Dark mode overrides */
[data-theme="dark"] .badge-hiring { background: #1E3A5F; color: #93C5FD; }
[data-theme="dark"] .job-card { border-color: var(--border-col); }
[data-theme="dark"] .jobs-hero { background: linear-gradient(135deg, #0C1A2B 0%, #1a5c66 100%); }
[data-theme="dark"] .jobs-cta-box { background: rgba(42,123,136,0.15); border-color: var(--teal); }

/* Jobs: DOL/DEED attribution */
.job-description-body { font-size: 0.95rem; line-height: 1.75; }
.job-description-body b, .job-description-body strong { font-weight: 600; }
.job-full-details-cta { margin-top: 1.5rem; padding: 1.25rem 1.5rem; background: var(--bg-alt); border-left: 4px solid var(--teal); border-radius: 0 8px 8px 0; }
.job-full-details-cta__text { font-size: 0.9rem; color: var(--body); line-height: 1.6; margin: 0 0 0.75rem 0; }
.jobs-attribution { margin-top: 3rem; padding-top: 1.5rem; border-top: 1px solid var(--border-col); }

/* Facility Snapshot on job detail pages */
.facility-snapshot .snapshot-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 0.75rem; margin-bottom: 0.75rem; }
.facility-snapshot .snapshot-item { display: flex; flex-direction: column; gap: 2px; }
.facility-snapshot .snapshot-label { font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--body-light); font-family: 'Source Sans 3', sans-serif; }
.facility-snapshot .snapshot-value { font-size: 0.9rem; font-weight: 600; color: var(--headline); font-family: 'Source Sans 3', sans-serif; }
.facility-snapshot .fz-badge-green { color: #166534; }
.facility-snapshot .fz-badge-amber { color: #92400E; }
.facility-snapshot .fz-badge-red { color: #991B1B; }
[data-theme="dark"] .facility-snapshot .fz-badge-green { color: #86EFAC; }
[data-theme="dark"] .facility-snapshot .fz-badge-amber { color: #FCD34D; }
[data-theme="dark"] .facility-snapshot .fz-badge-red { color: #FCA5A5; }
.jobs-attribution p { font-size: 0.8rem; color: var(--body-light); line-height: 1.6; margin: 0; }
.jobs-attribution a { color: var(--teal); text-decoration: underline; }

/* ── Featured Employer job card ── */
.job-card--featured {
  border-left: 4px solid #D97706;
  background: #FFFBEB;
  position: relative;
  display: flex;
  flex-direction: column;
  padding: 16px 20px;
}
.badge-featured {
  display: inline-block;
  background: #FEF3C7;
  color: #92400E;
  font-size: 0.7rem;
  padding: 2px 8px;
  border-radius: 4px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 6px;
  font-family: 'Source Sans 3', sans-serif;
}
.job-badge--featured {
  display: inline-block;
  background: #FEF3C7;
  color: #92400E;
  font-size: 0.72rem;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: 4px;
  font-family: 'Source Sans 3', sans-serif;
  margin-bottom: 8px;
}
/* Verified Employer badge — operator-posted jobs (teal, distinct from gold Featured) */
.job-badge--verified-employer {
  display: inline-block;
  background: #E6F7F9;
  color: #1A6B77;
  font-size: 0.72rem;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: 4px;
  font-family: 'Source Sans 3', sans-serif;
  margin-bottom: 8px;
  border: 1px solid #A5D8E0;
}
[data-theme="dark"] .job-badge--verified-employer {
  background: rgba(42, 123, 136, 0.2);
  color: #5DD4E4;
  border-color: rgba(93, 212, 228, 0.3);
}
.job-card-photo {
  width: 80px;
  height: 80px;
  border-radius: 8px;
  object-fit: cover;
  flex-shrink: 0;
}
.job-card-rating {
  font-size: 0.82rem;
  color: #92400E;
  font-weight: 600;
  margin-top: 2px;
}
.job-card-benefits {
  font-size: 0.82rem;
  color: var(--body-light);
}
.job-card--featured .availability-badge {
  font-size: 0.75rem;
  margin-top: 8px;
}
/* Matched (local employer) job cards — subtle teal accent */
.job-card--matched {
  border-left: 3px solid var(--teal);
}
.job-badge--local {
  display: inline-block;
  font-size: 0.68rem;
  font-weight: 600;
  font-family: 'Source Sans 3', sans-serif;
  background: #E6F7F9;
  color: #1A6B77;
  padding: 2px 8px;
  border-radius: 4px;
  white-space: nowrap;
  flex-shrink: 0;
}
[data-theme="dark"] .job-card--matched {
  border-left-color: #3AAFBF;
}
[data-theme="dark"] .job-badge--local {
  background: rgba(42, 123, 136, 0.15);
  color: #5DD4E4;
}
[data-theme="dark"] .job-card--featured {
  background: rgba(217, 119, 6, 0.08);
  border-left-color: #F59E0B;
}
[data-theme="dark"] .badge-featured,
[data-theme="dark"] .job-badge--featured {
  background: #451A03;
  color: #FCD34D;
}
[data-theme="dark"] .job-card-rating {
  color: #FCD34D;
}

/* ── Operator job detail page enhancements ── */
.job-detail-operator-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: #D1FAE5;
  color: #065F46;
  border: 1px solid #6EE7B7;
  padding: 4px 12px;
  border-radius: 20px;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  margin-bottom: 10px;
}
[data-theme="dark"] .job-detail-operator-badge {
  background: rgba(6,95,70,0.2);
  color: #6EE7B7;
  border-color: rgba(110,231,183,0.3);
}
.job-fact-chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 12px;
  border-radius: 20px;
  font-size: 0.78rem;
  font-weight: 500;
  border: 1px solid transparent;
}
.job-fact-chip--direct { background:#F0FDF4; color:#065F46; border-color:#BBF7D0; font-weight:600; }
.job-fact-chip--level  { background:#EFF6FF; color:#1D4ED8; border-color:#BFDBFE; }
.job-fact-chip--type   { background:#F5F3FF; color:#6D28D9; border-color:#DDD6FE; }
.job-fact-chip--meta   { background:var(--bg-alt); color:var(--body-light); border-color:var(--border-col); }
[data-theme="dark"] .job-fact-chip--direct { background:rgba(6,95,70,0.15);   color:#6EE7B7; border-color:rgba(110,231,183,0.25); }
[data-theme="dark"] .job-fact-chip--level  { background:rgba(59,130,246,0.12); color:#93C5FD; border-color:rgba(147,197,253,0.3); }
[data-theme="dark"] .job-fact-chip--type   { background:rgba(109,40,217,0.12); color:#C4B5FD; border-color:rgba(196,181,253,0.3); }
.job-operator-why-card {
  background: #F0FDF4;
  border: 1px solid #BBF7D0;
  border-left: 4px solid #10B981;
  border-radius: 12px;
  padding: 1.5rem;
  margin-bottom: 2rem;
}
.job-operator-why-card h2 { color: #065F46; }
[data-theme="dark"] .job-operator-why-card {
  background: rgba(6,95,70,0.08);
  border-color: rgba(110,231,183,0.2);
  border-left-color: #10B981;
}
[data-theme="dark"] .job-operator-why-card h2 { color: #6EE7B7; }
.job-benefit-chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: #FFFFFF;
  border: 1px solid #6EE7B7;
  color: #065F46;
  padding: 4px 10px;
  border-radius: 20px;
  font-size: 0.78rem;
  font-weight: 500;
}
[data-theme="dark"] .job-benefit-chip {
  background: rgba(6,95,70,0.12);
  border-color: rgba(110,231,183,0.3);
  color: #6EE7B7;
}

/* ── Photo strip (job detail — paid member facility gallery) ── */
.photo-strip {
  display: flex;
  gap: 10px;
  overflow-x: auto;
  padding-bottom: 8px;
  -webkit-overflow-scrolling: touch;
}
.photo-strip img {
  width: 160px;
  height: 120px;
  object-fit: cover;
  border-radius: 8px;
  flex-shrink: 0;
}
@media (max-width: 768px) {
  .photo-strip img {
    width: 130px;
    height: 100px;
  }
}

/* ── Why Work Here section ── */
.why-work-here {
  background: var(--bg-alt);
  border: 1px solid var(--border-col);
  border-left: 4px solid var(--teal);
  border-radius: 8px;
  padding: 1.25rem 1.5rem;
  line-height: 1.7;
}

/* ── Tour Reviews Teaser (job detail) ── */
.job-reviews-teaser {
  background: var(--bg-alt);
  border: 1px solid var(--border-col);
  border-radius: 8px;
  padding: 1.25rem 1.5rem;
}

/* ── Referral sidebar CTA (facility pages) ── */
.referral-sidebar-cta {
  background: var(--teal-soft);
  border: 1px solid rgba(42,123,136,0.15);
  border-radius: 12px;
  padding: 16px 20px;
}
.referral-sidebar-cta__head {
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--headline);
  font-family: 'Source Sans 3', sans-serif;
  margin-bottom: 4px;
}
.referral-sidebar-cta__text {
  font-size: 0.78rem;
  color: var(--body-light);
  font-family: 'Source Sans 3', sans-serif;
  margin-bottom: 8px;
  line-height: 1.5;
}
.referral-sidebar-cta__link {
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--teal);
  text-decoration: none;
  font-family: 'Source Sans 3', sans-serif;
}
.referral-sidebar-cta__link:hover { text-decoration: underline; }
[data-theme="dark"] .referral-sidebar-cta {
  background: rgba(42,123,136,0.12);
  border-color: rgba(42,123,136,0.25);
}
[data-theme="dark"] .referral-sidebar-cta__head { color: #EDE8DC; }
[data-theme="dark"] .referral-sidebar-cta__text { color: #8CA0AE; }

/* ── Referral landing page ── */
.referral-steps-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 1.25rem;
}
.referral-step-card {
  background: var(--surface);
  border: 1px solid var(--border-col);
  border-radius: 12px;
  padding: 24px;
  text-align: center;
}
.referral-step-card__number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: var(--teal);
  color: #fff;
  font-weight: 700;
  font-size: 1.1rem;
  font-family: 'Lora', serif;
  margin-bottom: 12px;
}
.referral-step-card__title {
  font-family: 'Lora', serif;
  font-size: 1rem;
  font-weight: 700;
  color: var(--headline);
  margin-bottom: 8px;
}
.referral-step-card__text {
  font-size: 0.88rem;
  color: var(--body);
  line-height: 1.6;
  font-family: 'Source Sans 3', sans-serif;
}
.referral-eligibility {
  margin-top: 2rem;
  padding: 1.25rem 1.5rem;
  background: var(--bg-alt);
  border-left: 3px solid var(--teal);
  border-radius: 0 8px 8px 0;
}
.referral-trust-bar {
  margin-top: 3rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--border-col);
  margin-bottom: 3rem;
}
.referral-trust-bar p {
  font-size: 0.82rem;
  color: var(--body-light);
  font-family: 'Source Sans 3', sans-serif;
  text-align: center;
}

/* Mobile: stack job cards single column */
@media (max-width: 768px) {
  .jobs-grid { grid-template-columns: 1fr; }
  .jobs-browse-grid { grid-template-columns: 1fr 1fr; }
  .jobs-insights-grid { grid-template-columns: 1fr 1fr; }
  .jobs-hero h1 { font-size: 1.5rem; }
  .referral-steps-grid { grid-template-columns: 1fr; }
}

/* ═══ Content Refresh Components ═══ */
.refresh-jump-links{background:#F9F3E9;border:1px solid #B2DFDB;border-left:4px solid #2A7B88;border-radius:0 12px 12px 0;padding:18px 22px;margin:0 0 2em}
.refresh-jump-links__title{font-size:0.82rem;font-weight:700;color:#2A7B88;text-transform:uppercase;letter-spacing:0.05em;margin-bottom:10px}
.refresh-jump-links a{display:block;padding:6px 0;color:#2A7B88;text-decoration:none;font-size:0.92rem;border-bottom:1px solid rgba(42,123,136,0.1)}
.refresh-jump-links a:last-child{border-bottom:none}
.refresh-jump-links a:hover{text-decoration:underline}
.refresh-infographic{margin:2em 0;border:1px solid #B2DFDB;border-radius:14px;padding:24px;background:#F9F3E9}
.refresh-related-articles{margin-top:48px;padding:24px;background:var(--bg-alt);border-radius:14px}
.refresh-related-articles__title{font-size:1rem;font-weight:700;color:var(--headline);margin-bottom:16px}
.refresh-related-card{display:block;padding:14px 18px;background:var(--surface);border:1px solid var(--border-col);border-radius:10px;margin-bottom:10px;text-decoration:none;color:var(--headline);font-size:0.92rem;transition:border-color 0.15s}
.refresh-related-card:hover{border-color:#2A7B88}
.sponsor-callout{margin-top:48px;background:#FFFBEB;border:1px solid #FDE68A;border-left:4px solid #F59E0B;border-radius:0 12px 12px 0;padding:22px 24px}
.sponsor-callout__label{font-size:0.72rem;font-weight:700;text-transform:uppercase;letter-spacing:0.06em;color:#92400E;margin-bottom:6px}
.sponsor-callout__name{font-size:1.05rem;font-weight:700;color:#002846;margin-bottom:8px}
.sponsor-callout__ftc{font-size:0.78rem;color:#92400E;line-height:1.5;margin-bottom:12px}
.sponsor-callout__btn{display:inline-block;padding:10px 20px;background:#2A7B88;color:#fff;border-radius:8px;text-decoration:none;font-weight:600;font-size:0.88rem}
.sponsor-callout__btn:hover{background:#1F6570}
.sponsor-callout__waitlist{font-size:0.78rem;color:var(--body-light);margin-top:12px}
.sponsor-callout__waitlist a{color:#2A7B88}
.sponsor-fallback{margin-top:48px;padding:24px;background:var(--bg-alt);border:1px solid var(--border-col);border-radius:14px}
.sponsor-fallback__seeker{margin-bottom:16px}
.sponsor-fallback__seeker strong{display:block;margin-bottom:6px;color:var(--headline)}
.sponsor-fallback__divider{border:none;border-top:1px solid var(--border-col);margin:16px 0}
.sponsor-fallback__operator strong{display:block;margin-bottom:4px;color:var(--headline)}
.sponsor-fallback__operator p{font-size:0.88rem;color:var(--body);margin-bottom:10px}
.sponsor-fallback__operator-link{color:#2A7B88;font-weight:600;font-size:0.88rem}

/* ═══ Verified Member Paid Features (Session 02 Merger) ═══ */

/* Availability Banner */
.availability-banner{padding:14px 20px;border-radius:10px;font-weight:600;font-family:'Source Sans 3',sans-serif;font-size:0.95rem;text-align:center}
.availability--accepting{background:#ECFDF5;color:#065F46;border:1px solid #A7F3D0}
.availability--call{background:#FFFBEB;color:#92400E;border:1px solid #FDE68A}
.availability--waitlist{background:var(--bg-alt);color:var(--body);border:1px solid var(--border-col)}
[data-theme="dark"] .availability--accepting{background:rgba(6,95,70,0.15);color:#6EE7B7;border-color:rgba(110,231,183,0.25)}
[data-theme="dark"] .availability--call{background:rgba(146,64,14,0.15);color:#FCD34D;border-color:rgba(252,211,77,0.25)}

/* Pinned Update */
.pinned-update{border-left:4px solid var(--teal) !important}
.pinned-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px}
.pinned-badge{font-size:0.82rem;font-weight:600;color:var(--teal);font-family:'Source Sans 3',sans-serif}
.pinned-date{font-size:0.78rem;color:var(--body-light);font-family:'Source Sans 3',sans-serif}
.pinned-photo{width:100%;max-height:300px;object-fit:cover;border-radius:8px;margin-top:12px}

/* Photo Gallery */
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.gallery-thumb{aspect-ratio:4/3;overflow:hidden;border-radius:8px;cursor:pointer;position:relative}
.gallery-thumb img{width:100%;height:100%;object-fit:cover;transition:transform 0.2s}
.gallery-thumb:hover img{transform:scale(1.05)}
@media(max-width:768px){.gallery-grid{grid-template-columns:repeat(2,1fr)}}

/* Gallery Lightbox */
.gallery-lightbox{display:none;position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,0.92);align-items:center;justify-content:center;flex-direction:column}
.gl-img{max-width:90vw;max-height:80vh;object-fit:contain;border-radius:8px}
.gl-close{position:absolute;top:16px;right:20px;background:none;border:none;color:#fff;font-size:2.2rem;cursor:pointer;z-index:10;line-height:1}
.gl-prev,.gl-next{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,0.15);border:none;color:#fff;font-size:2rem;cursor:pointer;padding:12px 16px;border-radius:8px;backdrop-filter:blur(4px)}
.gl-prev{left:16px}
.gl-next{right:16px}
.gl-prev:hover,.gl-next:hover{background:rgba(255,255,255,0.25)}
.gl-counter{color:rgba(255,255,255,0.7);font-size:0.85rem;font-family:'Source Sans 3',sans-serif;margin-top:12px}

/* Virtual Tour */
.video-embed{aspect-ratio:16/9;border-radius:12px;overflow:hidden}
.video-embed iframe{width:100%;height:100%;border:none}

/* Pricing Display */
.pricing-display{border-top:3px solid var(--teal)}
.pricing-table{width:100%;border-collapse:collapse;font-family:'Source Sans 3',sans-serif;font-size:0.92rem}
.pricing-table td{padding:10px 0;border-bottom:1px solid var(--border-col)}
.pricing-table td:first-child{color:var(--body-light);font-weight:500}
.pricing-table td:last-child{text-align:right;font-weight:700;color:var(--headline)}
.pricing-table tr:last-child td{border-bottom:none}
.pricing-note{font-size:0.78rem;color:var(--body-light);font-family:'Source Sans 3',sans-serif;margin-top:8px;font-style:italic}

/* Staff Spotlight */
.staff-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.staff-card{text-align:center;padding:16px 12px}
.staff-photo{width:80px;height:80px;border-radius:50%;object-fit:cover;margin:0 auto 8px;display:block;border:2px solid var(--teal-soft)}
.staff-photo-placeholder{width:80px;height:80px;border-radius:50%;background:var(--teal-soft);display:flex;align-items:center;justify-content:center;margin:0 auto 8px;color:var(--teal)}
.staff-title{font-size:0.82rem;color:var(--teal);font-weight:600;font-family:'Source Sans 3',sans-serif;margin:0}
.staff-bio{font-size:0.82rem;color:var(--body-light);font-family:'Source Sans 3',sans-serif;line-height:1.5;margin-top:6px}
@media(max-width:768px){.staff-grid{grid-template-columns:1fr}}

/* ── Hiring Pages (Session 13) ── */
.hiring-employer-card { background: var(--bg-alt); border: 1px solid var(--border); border-left: 4px solid var(--teal); border-radius: 8px; padding: 1.25rem 1.5rem; margin-bottom: 2rem; line-height: 1.7; }
.hiring-job-card { background: var(--surface); border: 1px solid var(--border-col); border-radius: 8px; padding: 1rem 1.25rem; margin-bottom: 0.75rem; transition: box-shadow 0.2s; }
.hiring-job-card:hover { box-shadow: 0 2px 8px rgba(0,0,0,0.08); }
.hiring-expired-notice { background: #FFF5F5; border: 2px solid var(--coral); border-radius: 12px; padding: 2rem; margin-bottom: 2rem; text-align: center; }
.hiring-sidebar { position: sticky; top: 1rem; }
.hiring-layout { display: grid; grid-template-columns: 1fr 280px; gap: 2rem; align-items: start; }
@media(max-width:768px) {
  .hiring-layout { grid-template-columns: 1fr; }
  .hiring-sidebar { position: static; }
}
[data-theme="dark"] .hiring-employer-card { background: var(--bg-alt); border-color: var(--border); border-left-color: var(--teal); }
[data-theme="dark"] .hiring-job-card { background: var(--surface); border-color: var(--border-col); }
[data-theme="dark"] .hiring-expired-notice { background: rgba(223,76,115,0.08); border-color: var(--coral); }

/* ── EEAT Editorial Callout ── */
.eeat-callout {
  border-left: 4px solid var(--teal);
  background: rgba(42,123,136,0.06);
  padding: 16px 20px;
  margin: 24px 0;
  border-radius: 0 8px 8px 0;
  font-size: 0.9rem;
  line-height: 1.6;
  color: var(--text);
}
.eeat-callout p { margin: 0; }
.eeat-callout strong { color: var(--headline); }
[data-theme="dark"] .eeat-callout { background: rgba(42,123,136,0.12); }

/* ── Editorial Block Quote (blog articles) ── */
.article-content blockquote,
.article-body blockquote,
.blog-body blockquote {
  border-left: 4px solid var(--teal);
  background: rgba(42,123,136,0.04);
  padding: 20px 24px;
  margin: 32px 0;
  border-radius: 0 8px 8px 0;
  font-style: italic;
}
.article-content blockquote p:first-child,
.article-body blockquote p:first-child,
.blog-body blockquote p:first-child {
  font-size: 1.05rem;
  line-height: 1.7;
  color: var(--text);
  margin-bottom: 8px;
}
.article-content blockquote p:last-child,
.article-body blockquote p:last-child,
.blog-body blockquote p:last-child {
  font-style: normal;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--teal);
  margin-bottom: 0;
}
[data-theme="dark"] .article-content blockquote,
[data-theme="dark"] .article-body blockquote,
[data-theme="dark"] .blog-body blockquote {
  background: rgba(42,123,136,0.1);
}

/* ── Job Shortlist — Save Buttons ── */
.job-save-btn {
  background: none; border: none; cursor: pointer; padding: 6px;
  color: var(--body-light); transition: color 0.2s;
  display: inline-flex; align-items: center; gap: 4px;
  font-size: 0.88rem; font-family: 'Source Sans 3', sans-serif;
}
.job-save-btn:hover, .job-save-btn.is-saved {
  color: var(--coral);
}
.job-save-btn.is-saved .job-save-icon {
  fill: var(--coral); stroke: var(--coral);
}
.job-save-btn--card {
  position: absolute; top: 8px; right: 8px; z-index: 2;
  background: rgba(255,255,255,0.9); border-radius: 50%; padding: 6px;
  line-height: 1;
}
html[data-theme="dark"] .job-save-btn--card {
  background: rgba(30,30,30,0.9);
}

/* ── Job Shortlist — Floating Bar ── */
.job-shortlist-bar {
  position: fixed; bottom: 0; left: 0; right: 0; z-index: 900;
  background: var(--surface); border-top: 2px solid var(--teal);
  padding: 12px 20px; display: flex; align-items: center; gap: 16px;
  box-shadow: 0 -2px 12px rgba(0,0,0,0.1);
  font-family: 'Source Sans 3', sans-serif; font-size: 0.92rem;
}
.job-shortlist-bar__btn {
  background: var(--teal); color: #fff; padding: 6px 18px;
  border-radius: 6px; text-decoration: none; font-weight: 600;
  font-size: 0.88rem; white-space: nowrap;
}
.job-shortlist-bar__btn:hover { opacity: 0.9; }
.job-shortlist-bar__clear {
  background: none; border: none; cursor: pointer; font-size: 1.2rem;
  color: var(--body-light); margin-left: auto; padding: 4px 8px;
}
.job-shortlist-bar__clear:hover { color: var(--coral); }

/* ── Job Shortlist — Toast ── */
.job-toast {
  position: fixed; bottom: 70px; right: 20px; z-index: 950;
  background: var(--headline); color: #fff; padding: 10px 20px;
  border-radius: 8px; font-size: 0.88rem; font-family: 'Source Sans 3', sans-serif;
  opacity: 0; transform: translateY(10px);
  transition: opacity 0.3s, transform 0.3s;
  pointer-events: none;
}
.job-toast.is-visible { opacity: 1; transform: translateY(0); }

/* ── Job Shortlist — Saved Jobs Page Cards ── */
.saved-job-card {
  display: flex; justify-content: space-between; align-items: center; gap: 16px;
  padding: 16px 20px; border: 1px solid var(--border-col); border-radius: 10px;
  background: var(--surface); margin-bottom: 12px;
  transition: border-color 0.2s;
}
.saved-job-card:hover { border-color: var(--teal); }
.saved-job-card__title {
  font-weight: 700; color: var(--headline); font-size: 1rem;
  text-decoration: none; display: block; margin-bottom: 2px;
}
.saved-job-card__title:hover { color: var(--teal); }
.saved-job-card__employer { font-size: 0.88rem; color: var(--body-light); margin-bottom: 6px; }
.saved-job-card__meta { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; font-size: 0.82rem; }
.saved-job-card__actions { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
.saved-job-card__remove {
  background: none; border: none; cursor: pointer; font-size: 1.4rem;
  color: var(--body-light); padding: 4px 8px; line-height: 1;
}
.saved-job-card__remove:hover { color: var(--coral); }

@media (max-width: 768px) {
  .job-shortlist-bar { flex-wrap: wrap; gap: 10px; padding: 10px 16px; }
  .job-shortlist-bar__clear { margin-left: 0; }
  .saved-job-card { flex-direction: column; align-items: flex-start; }
  .saved-job-card__actions { width: 100%; justify-content: space-between; }
}

/* ═══════════════════════════════════════════════════════════════════
   JOB DETAIL PAGE — 2-Column Layout + Sidebar (v=59)
   ═══════════════════════════════════════════════════════════════════ */
.job-detail-layout {
  max-width: 1060px; margin: 0 auto; padding-top: 1rem;
  display: grid; grid-template-columns: 1fr 300px;
  gap: 32px; align-items: start;
}
.job-detail-main { min-width: 0; grid-column: 1; grid-row: 1; }
.job-detail-sidebar {
  position: sticky; top: 24px;
  display: flex; flex-direction: column; gap: 16px;
  grid-column: 2; grid-row: 1;
}
/* Sidebar widget adjustments */
.job-detail-sidebar .job-feedback-widget { margin-bottom: 0; }
.job-detail-sidebar .interview-review-widget { margin: 0; padding-top: 0; border-top: none; }
.job-detail-sidebar .interview-review__cta { flex-direction: column; text-align: center; padding: 16px; }
.job-detail-sidebar .interview-review__cta .btn { width: 100%; text-align: center; }
.job-detail-sidebar .job-alert-inline { margin: 0; }
.job-detail-sidebar .job-alert-inline__form { flex-direction: column; }
.job-detail-sidebar .job-alert-inline__form .job-alert-email { width: 100%; }
.job-detail-sidebar .ir-field-row { flex-direction: column; gap: 0; }
.job-detail-sidebar .ir-difficulty-scale { flex-wrap: wrap; justify-content: center; }

/* Feedback subtitle */
.job-feedback__subtitle {
  font-size: 0.78rem; color: var(--body-light); margin: -4px 0 8px; text-align: center;
}

/* Sidebar AI CTA card */
.job-sidebar-chat-cta {
  display: flex; align-items: center; gap: 12px;
  padding: 14px 16px; border-radius: 12px;
  background: linear-gradient(135deg, rgba(42,123,136,0.08), rgba(42,123,136,0.16));
  border: 2px solid var(--teal); text-decoration: none; color: var(--headline);
  transition: background 0.2s, transform 0.15s;
}
.job-sidebar-chat-cta:hover {
  background: linear-gradient(135deg, rgba(42,123,136,0.14), rgba(42,123,136,0.22));
  transform: translateY(-1px);
}
.job-sidebar-chat-cta__icon {
  width: 40px; height: 40px; border-radius: 50%; flex-shrink: 0;
  background: var(--teal); color: #fff;
  display: flex; align-items: center; justify-content: center;
}
.job-sidebar-chat-cta__text { flex: 1; }
.job-sidebar-chat-cta__text strong {
  display: block; font-size: 0.95rem; color: var(--headline); margin-bottom: 2px;
}
.job-sidebar-chat-cta__text span {
  display: block; font-size: 0.8rem; color: var(--body-light); line-height: 1.35;
}
.job-sidebar-chat-cta__arrow {
  font-size: 1.2rem; color: var(--teal); font-weight: 700; flex-shrink: 0;
}

/* Desktop: sidebar-bottom is just part of the sidebar flex column — no special rules needed */
.job-sidebar-bottom { display: contents; }

/* Mobile: aside unwraps so children become direct flex children of layout for order control */
@media (max-width: 768px) {
  .job-detail-layout {
    display: flex; flex-direction: column;
    max-width: 800px; gap: 20px;
  }
  .job-detail-sidebar {
    position: static; display: contents;
  }
  .job-detail-main { order: 1; }
  /* AI CTA + interview review: before description */
  .job-sidebar-chat-cta { order: 0; }
  .interview-review-widget { order: 0; }
  /* Feedback + alerts: after description */
  .job-sidebar-bottom {
    display: flex; flex-direction: column; gap: 16px;
    order: 10;
  }
  .job-sidebar-bottom .job-alert-inline__form { flex-direction: row; }
  .interview-review__cta { flex-direction: row; text-align: left; }
  .interview-review__cta .btn { width: auto; }
  .ir-field-row { flex-direction: row; gap: 12px; }
}

/* ═══════════════════════════════════════════════════════════════════
   JOB CHAT WIDGET — Inline Embedded AI Assistant (v=59)
   ═══════════════════════════════════════════════════════════════════ */
.job-chat-section {
  max-width: 1060px; margin: 0 auto; padding: 32px 0;
}
.job-chat-section__header {
  text-align: center; margin-bottom: 20px;
}
.job-chat-section__header h2 {
  font-size: 1.4rem; margin-bottom: 6px; color: var(--headline);
}
.job-chat-section__header p {
  font-size: 0.92rem; color: var(--body-light); margin: 0;
}

.job-chat-widget {
  max-width: 720px; margin: 0 auto;
  border: 1px solid var(--border-col, #e5e7eb);
  border-radius: 20px; box-shadow: 0 4px 24px rgba(0,40,70,0.10);
  overflow: hidden; display: flex; flex-direction: column;
  height: 520px; max-height: 80vh;
  background: var(--card-bg, #fff);
}
.job-chat-widget__header {
  padding: 14px 20px; display: flex; align-items: center; gap: 12px;
  background: var(--teal); color: #fff; flex-shrink: 0;
}
.job-chat-widget__header-icon {
  width: 36px; height: 36px; border-radius: 50%;
  background: rgba(255,255,255,0.2);
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.job-chat-widget__header strong { font-size: 0.95rem; display: block; }
.job-chat-widget__header-sub {
  font-size: 0.75rem; color: rgba(255,255,255,0.6); display: block;
}
.job-chat-widget__messages {
  flex: 1; overflow-y: auto; padding: 20px 16px;
  display: flex; flex-direction: column; gap: 12px;
  scroll-behavior: smooth; font-size: 0.9rem; line-height: 1.55;
}
.job-chat-widget__input {
  padding: 12px 16px; border-top: 1px solid var(--border-col, #e5e7eb);
  display: flex; gap: 8px; flex-shrink: 0;
  background: var(--card-bg, #fff);
}
.job-chat-widget__input input {
  flex: 1; padding: 10px 14px; border: 1px solid var(--border-col, #e5e7eb);
  border-radius: 10px; font-size: 0.9rem;
  background: var(--bg-alt, #F9F3E9); color: var(--headline, #002846);
  font-family: 'Source Sans 3', sans-serif; outline: none;
}
.job-chat-widget__input input:focus { border-color: var(--teal); }
.job-chat-widget__input button {
  background: var(--teal); color: #fff; border: none;
  padding: 0 18px; border-radius: 10px; cursor: pointer;
  font-weight: 600; font-size: 0.88rem; white-space: nowrap;
  transition: background 0.2s;
}
.job-chat-widget__input button:hover { background: #235f6a; }
.job-chat-widget__input button:disabled { background: #94a3b8; cursor: default; }

/* Chat messages */
.job-chat-msg { margin-bottom: 0; }
.job-chat-msg--user { text-align: right; }
.job-chat-msg--user .job-chat-msg__bubble {
  background: var(--teal); color: #fff; display: inline-block;
  padding: 10px 15px; border-radius: 16px 16px 4px 16px; max-width: 84%;
  font-size: 0.9rem; line-height: 1.55;
}
.job-chat-msg--assistant .job-chat-msg__bubble {
  background: var(--bg-alt, #F9F3E9); color: var(--headline, #002846);
  display: inline-block;
  padding: 10px 15px; border-radius: 16px 16px 16px 4px; max-width: 84%;
  font-size: 0.9rem; line-height: 1.55;
}
.job-chat-msg__bubble a {
  color: var(--teal); text-decoration: underline; font-weight: 600;
}
.job-chat-msg__bubble a:hover { color: #1d5f6a; }
.job-chat-msg__bubble p { margin: 4px 0; }
.job-chat-msg__bubble ul, .job-chat-msg__bubble ol {
  margin: 6px 0; padding-left: 20px;
}
.job-chat-msg__bubble li { margin-bottom: 3px; }
.job-chat-msg__bubble h3 {
  font-family: 'Lora', serif; font-size: 1rem; font-weight: 700;
  margin: 8px 0 4px; color: var(--headline, #002846);
}
.job-chat-msg__bubble h3:first-child { margin-top: 0; }

/* Quick-start chips */
.job-chat-chips {
  display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px;
}
.job-chat-chip {
  background: var(--card-bg, #fff); border: 1px solid var(--teal); color: var(--teal);
  padding: 5px 12px; border-radius: 20px; font-size: 0.8rem;
  cursor: pointer; transition: background 0.2s, color 0.2s;
  font-family: 'Source Sans 3', sans-serif;
}
.job-chat-chip:hover { background: var(--teal); color: #fff; }

/* Typing indicator */
.job-chat-typing {
  display: flex; gap: 4px; padding: 8px 14px;
  align-self: flex-start;
  background: var(--bg-alt, #F9F3E9);
  border-radius: 16px 16px 16px 4px;
}
.job-chat-typing span {
  width: 7px; height: 7px; background: var(--teal, #2A7B88);
  border-radius: 50%; animation: jobChatBounce 1.2s infinite;
}
.job-chat-typing span:nth-child(2) { animation-delay: 0.2s; }
.job-chat-typing span:nth-child(3) { animation-delay: 0.4s; }
@keyframes jobChatBounce {
  0%, 80%, 100% { transform: translateY(0); }
  40% { transform: translateY(-6px); }
}

/* ═══════════════════════════════════════════════════════════════════
   JOB ALERT EMAIL SUBSCRIPTIONS (Session 02)
   ═══════════════════════════════════════════════════════════════════ */

/* ── Job Alert Banner (hub page) ── */
.job-alert-banner {
  background: linear-gradient(135deg, rgba(42,123,136,0.07) 0%, var(--card-bg, #fff) 100%);
  border: 1px solid rgba(42,123,136,0.25); border-radius: 12px;
  padding: 22px 24px; margin-bottom: 24px;
  position: relative;
}
.job-alert-banner__text {
  display: flex; align-items: flex-start; gap: 12px; margin-bottom: 16px;
}
.job-alert-banner__text strong {
  display: block; color: var(--headline);
  font-family: 'Lora', serif; font-size: 1.05rem; font-weight: 700; margin-bottom: 3px;
}
.job-alert-banner__text span { font-size: 0.85rem; color: var(--body-light); }
.job-alert-banner__form { display: flex; flex-direction: column; gap: 10px; }
.job-alert-banner__email-row { display: flex; gap: 8px; }
.job-alert-banner__email-row .job-alert-email { flex: 1; }
.job-alert-banner__filter-row { display: flex; gap: 8px; }
.job-alert-banner__filter-row .job-alert-select { flex: 1; }
.job-alert-banner__dismiss {
  position: absolute; top: 12px; right: 14px;
  background: none; border: none; cursor: pointer;
  font-size: 1.2rem; color: var(--body-light); line-height: 1;
}
.job-alert-banner__dismiss:hover { color: var(--headline); }
.job-alert-select, .job-alert-select--sm {
  padding: 8px 10px; border: 1px solid var(--border-col);
  border-radius: 6px; font-size: 0.85rem; background: var(--surface);
  color: var(--headline); font-family: 'Source Sans 3', sans-serif;
}
.job-alert-email {
  padding: 8px 12px; border: 1px solid var(--border-col);
  border-radius: 6px; font-size: 0.92rem; min-width: 0;
  background: var(--surface); color: var(--headline);
  font-family: 'Source Sans 3', sans-serif;
}
.job-alert-email::placeholder { color: var(--body-light); }

/* ── Inline (detail page) ── */
.job-alert-inline {
  background: var(--bg-alt, #F9F3E9); border-radius: 10px;
  padding: 20px; margin: 24px 0;
}
.job-alert-inline h3 { margin: 0 0 6px; font-size: 1rem; color: var(--headline); font-family: 'Lora', serif; }
.job-alert-inline p { margin: 0 0 12px; font-size: 0.88rem; color: var(--body-light); }
.job-alert-inline__form { display: flex; gap: 8px; }

/* ── Suburb page ── */
.job-alert-suburb {
  display: flex; flex-wrap: wrap; align-items: center; gap: 10px;
  padding: 12px 16px; background: var(--bg-alt, #F9F3E9); border-radius: 8px;
  margin-bottom: 20px; font-size: 0.9rem; color: var(--headline);
}
.job-alert-suburb__form { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }

/* ── Success state ── */
.job-alert-success {
  color: var(--teal); font-weight: 600; display: flex; align-items: center; gap: 6px;
  font-size: 0.92rem;
}
.job-alert-success::before { content: '\2713'; font-size: 1.1rem; }

/* ── Dark mode ── */
[data-theme="dark"] .job-alert-banner {
  background: linear-gradient(135deg, rgba(42,123,136,0.15) 0%, var(--card-bg) 100%);
  border-color: rgba(42,123,136,0.3);
}
[data-theme="dark"] .job-alert-inline,
[data-theme="dark"] .job-alert-suburb {
  background: rgba(42,123,136,0.1);
}

/* ── Mobile responsive ── */
@media (max-width: 640px) {
  .job-alert-banner { padding: 18px 16px; }
  .job-alert-banner__email-row { flex-direction: column; }
  .job-alert-banner__email-row .btn { width: 100%; }
  .job-alert-banner__filter-row { flex-direction: column; }
  .job-alert-email { width: 100%; }
  .job-alert-inline__form { flex-direction: column; }
  .job-alert-inline__form .job-alert-email { width: 100%; }
  .job-alert-suburb { flex-direction: column; align-items: stretch; }
  .job-alert-suburb__form { flex-direction: column; }
}

/* ═══════════════════════════════════════════════════════════
   Job Compare (v=57)
   ═══════════════════════════════════════════════════════════ */

/* ── Compare checkbox label ── */
.job-compare-label {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: 0.8rem; color: var(--body-light); cursor: pointer;
  user-select: none; margin-top: 8px;
}
.job-compare-label input[type="checkbox"] {
  accent-color: var(--teal); width: 16px; height: 16px;
  cursor: pointer;
}
.job-compare-label--detail { margin-left: 16px; margin-top: 0; }

/* ── Floating compare bar ── */
.job-compare-bar {
  position: fixed; bottom: 0; left: 0; right: 0; z-index: 900;
  background: var(--card-bg, #fff); border-top: 2px solid var(--coral);
  padding: 12px 20px; display: flex; align-items: center; gap: 16px;
  box-shadow: 0 -2px 12px rgba(0,0,0,0.1);
  font-family: 'Source Sans 3', sans-serif; font-size: 0.92rem;
}
.job-compare-bar__btn {
  background: var(--coral); color: #fff; padding: 6px 18px;
  border-radius: 6px; text-decoration: none; font-weight: 600;
  font-size: 0.88rem; white-space: nowrap;
}
.job-compare-bar__btn[disabled] {
  opacity: 0.5; pointer-events: none;
}
.job-compare-bar__clear {
  background: none; border: none; cursor: pointer; font-size: 1.2rem;
  color: var(--body-light); margin-left: auto; padding: 4px 8px;
}
.job-compare-bar__clear:hover { color: var(--coral); }

/* Stack shortlist bar above compare bar when both visible */
.job-shortlist-bar { transition: bottom 0.2s ease; }

/* ── Compare table ── */
.job-compare-table-wrap {
  overflow-x: auto; -webkit-overflow-scrolling: touch;
}
.job-compare-table {
  width: 100%; border-collapse: collapse;
  font-family: 'Source Sans 3', sans-serif;
}
.job-compare-table th {
  text-align: left; padding: 10px 14px; font-size: 0.82rem;
  color: var(--body-light); background: var(--bg-alt, #F9F3E9);
  border-bottom: 1px solid var(--border-col);
  white-space: nowrap; width: 140px; vertical-align: top;
}
.job-compare-table td {
  padding: 10px 14px; border-bottom: 1px solid var(--border-col);
  vertical-align: top; font-size: 0.9rem; text-align: center;
}

/* ── Salary indicators ── */
.salary-indicator--above { color: #16a34a; font-weight: 600; }
.salary-indicator--below { color: #dc2626; font-weight: 600; }
.salary-indicator--at { color: var(--body-light); }

/* ── Best value column highlight ── */
.job-compare-col--best {
  background: rgba(22,163,74,0.05);
  border-top: 3px solid #16a34a;
}

/* ── Remove button on compare table ── */
.job-compare-remove {
  font-size: 0.78rem; color: var(--body-light); background: none;
  border: none; cursor: pointer; text-decoration: underline;
}
.job-compare-remove:hover { color: var(--coral); }

/* ── Dark mode ── */
[data-theme="dark"] .job-compare-bar {
  background: var(--card-bg); border-top-color: var(--coral);
}
[data-theme="dark"] .job-compare-table th {
  background: rgba(42,123,136,0.1);
}
[data-theme="dark"] .job-compare-col--best {
  background: rgba(22,163,74,0.08);
}

/* ── Mobile responsive ── */
@media (max-width: 640px) {
  .job-compare-bar { flex-wrap: wrap; gap: 10px; padding: 10px 16px; }
  .job-compare-bar__clear { margin-left: 0; }
  .job-compare-table { min-width: 500px; }
  .job-compare-label--detail { margin-left: 0; margin-top: 8px; }
}

/* ═══════════════════════════════════════════════════════════
   Job Matcher Funnel (v=57)
   ═══════════════════════════════════════════════════════════ */

/* ── Progress bar ── */
.job-matcher-progress {
  display: flex; gap: 8px; margin-bottom: 28px;
}
.job-matcher-progress__step {
  flex: 1; text-align: center; padding: 10px 8px;
  background: var(--bg-alt); border-radius: 8px;
  font-size: 0.82rem; color: var(--body-light);
  transition: background 0.3s, color 0.3s;
}
.job-matcher-progress__step.is-active {
  background: var(--teal); color: #fff;
}
.job-matcher-progress__step.is-done {
  background: var(--teal-bg); color: var(--teal);
}
.job-matcher-progress__num {
  display: inline-block; width: 22px; height: 22px;
  border-radius: 50%; background: rgba(255,255,255,0.2);
  line-height: 22px; text-align: center; font-weight: 700;
  margin-right: 4px; font-size: 0.78rem;
}

/* ── Step cards (category selection) ── */
.job-matcher-options {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 12px; margin: 20px 0;
}
.job-matcher-option {
  padding: 16px; border: 2px solid var(--border-col); border-radius: 10px;
  cursor: pointer; text-align: center; transition: border-color 0.2s, background 0.2s;
  font-size: 0.92rem;
}
.job-matcher-option:hover { border-color: var(--teal); }
.job-matcher-option.is-selected {
  border-color: var(--teal); background: var(--teal-bg); color: var(--teal); font-weight: 600;
}
.job-matcher-option__icon { font-size: 1.5rem; display: block; margin-bottom: 6px; }

/* ── Area chips (multi-select) ── */
.job-matcher-chips {
  display: flex; flex-wrap: wrap; gap: 8px; margin: 16px 0;
}
.job-matcher-chip {
  padding: 8px 16px; border: 1px solid var(--border-col); border-radius: 20px;
  cursor: pointer; font-size: 0.85rem; transition: all 0.2s;
}
.job-matcher-chip:hover { border-color: var(--teal); }
.job-matcher-chip.is-selected {
  background: var(--teal); color: #fff; border-color: var(--teal);
}

/* ── Priorities (step 3) ── */
.job-matcher-priorities {
  display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0;
}
.job-matcher-priority {
  padding: 8px 14px; border: 1px solid var(--border-col); border-radius: 8px;
  cursor: pointer; font-size: 0.85rem; transition: all 0.2s;
}
.job-matcher-priority:hover { border-color: var(--coral); }
.job-matcher-priority.is-selected {
  background: var(--coral); color: #fff; border-color: var(--coral);
}
.job-matcher-priority.is-disabled {
  opacity: 0.4; cursor: not-allowed;
}

/* ── Salary input ── */
.job-matcher-salary {
  display: flex; align-items: center; gap: 8px; margin: 16px 0;
}
.job-matcher-salary input {
  width: 100px; padding: 8px 12px; border: 1px solid var(--border-col);
  border-radius: 8px; font-size: 0.92rem; background: var(--surface); color: var(--headline);
  font-family: 'Source Sans 3', sans-serif;
}

/* ── Navigation buttons ── */
.job-matcher-nav {
  display: flex; justify-content: space-between; margin-top: 24px;
}
.job-matcher-nav .btn { min-width: 120px; }

/* ── Results cards ── */
.job-matcher-results {
  display: flex; flex-direction: column; gap: 16px; margin-top: 20px;
}
.job-matcher-result {
  border: 1px solid var(--border-col); border-radius: 12px;
  padding: 20px; position: relative; transition: border-color 0.2s;
}
.job-matcher-result:hover { border-color: var(--teal); }
.job-matcher-result__score {
  position: absolute; top: 12px; right: 16px;
  font-weight: 700; font-size: 0.88rem; padding: 4px 10px;
  border-radius: 20px;
}
.job-matcher-result__score--high { background: #dcfce7; color: #16a34a; }
.job-matcher-result__score--medium { background: var(--teal-bg); color: var(--teal); }
.job-matcher-result__score--low { background: #fef3c7; color: #d97706; }

.job-matcher-result__title {
  font-size: 1.05rem; font-weight: 600; color: var(--headline);
  margin-bottom: 4px; padding-right: 80px;
}
.job-matcher-result__meta {
  font-size: 0.88rem; color: var(--body-light); margin-bottom: 8px;
}
.job-matcher-result__details {
  font-size: 0.85rem; display: flex; flex-wrap: wrap; gap: 8px;
  align-items: center; margin-bottom: 12px;
}
.job-matcher-result__actions {
  display: flex; gap: 8px;
}

/* ── Email capture ── */
.job-matcher-email {
  background: var(--bg-alt); border-radius: 12px; padding: 24px;
  margin-top: 24px; text-align: center;
}
.job-matcher-email h3 { font-size: 1.05rem; margin: 0 0 6px; color: var(--headline); font-family: 'Lora', serif; }
.job-matcher-email p { font-size: 0.88rem; color: var(--body-light); margin: 0 0 14px; }
.job-matcher-email__form {
  display: flex; gap: 8px; justify-content: center; max-width: 400px; margin: 0 auto;
}
.job-matcher-email__form input {
  flex: 1; padding: 8px 14px; border: 1px solid var(--border-col);
  border-radius: 8px; font-size: 0.9rem; background: var(--surface); color: var(--headline);
  font-family: 'Source Sans 3', sans-serif;
}
.job-matcher-email__form input::placeholder { color: var(--body-light); }

/* ── Job Matcher Sidebar Card ── */
.job-matcher-sidebar {
  background: linear-gradient(135deg, rgba(223,76,115,0.05) 0%, var(--card-bg, #fff) 100%);
  border: 1px solid rgba(223,76,115,0.25);
  border-left: 3px solid var(--coral, #df4c73);
  border-radius: 10px;
  padding: 16px 18px;
  margin-bottom: 16px;
}
.job-matcher-sidebar__heading {
  display: block;
  font-family: 'Lora', serif;
  font-size: 0.98rem;
  font-weight: 700;
  color: var(--headline);
  margin-bottom: 6px;
}
.job-matcher-sidebar__body {
  font-size: 0.85rem;
  color: var(--body-light);
  line-height: 1.5;
  margin: 0 0 12px;
}
[data-theme="dark"] .job-matcher-sidebar {
  background: linear-gradient(135deg, rgba(223,76,115,0.1) 0%, var(--surface) 100%);
  border-color: rgba(223,76,115,0.3);
}

/* ── Matcher promo CTA ── */
.job-matcher-promo {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px 28px;
  padding: 22px 28px;
  margin: 32px 0;
  background: linear-gradient(135deg, rgba(223,76,115,0.06) 0%, rgba(42,123,136,0.04) 100%);
  border: 1px solid rgba(223,76,115,0.30);
  border-left: 4px solid var(--coral, #df4c73);
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(10,30,40,0.04);
}
.job-matcher-promo__copy {
  flex: 1 1 360px;
  min-width: 0;
}
.job-matcher-promo strong {
  display: block;
  color: var(--headline);
  font-family: 'Lora', serif;
  font-size: 1.15rem;
  font-weight: 700;
  line-height: 1.3;
  margin-bottom: 6px;
}
.job-matcher-promo span {
  display: block;
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.92rem;
  color: var(--body, #4a4a4a);
  line-height: 1.5;
}
.job-matcher-promo .btn {
  flex-shrink: 0;
  white-space: nowrap;
  padding: 12px 22px;
  font-weight: 700;
  font-size: 0.95rem;
}
@media (max-width: 640px) {
  .job-matcher-promo {
    padding: 20px;
    gap: 14px;
  }
  .job-matcher-promo .btn { width: 100%; text-align: center; }
}

/* ── Dark mode (matches chat widget palette) ── */
[data-theme="dark"] .job-matcher-progress__step {
  background: var(--surface); color: var(--body-light);
}
[data-theme="dark"] .job-matcher-progress__step.is-active {
  background: var(--teal); color: #fff;
}
[data-theme="dark"] .job-matcher-progress__step.is-done {
  background: rgba(42,123,136,0.2); color: var(--teal);
}
[data-theme="dark"] .job-matcher-progress__num {
  background: rgba(255,255,255,0.1);
}
[data-theme="dark"] .job-matcher-option {
  border-color: var(--border-col); background: var(--surface);
}
[data-theme="dark"] .job-matcher-option:hover {
  border-color: var(--teal); background: var(--surface-tint);
}
[data-theme="dark"] .job-matcher-option.is-selected {
  border-color: var(--teal); background: rgba(42,123,136,0.2); color: var(--teal);
}
[data-theme="dark"] .job-matcher-chip {
  border-color: var(--border-col); background: var(--surface); color: var(--body);
}
[data-theme="dark"] .job-matcher-chip:hover {
  border-color: var(--teal); background: var(--surface-tint);
}
[data-theme="dark"] .job-matcher-chip.is-selected {
  background: var(--teal); color: #fff; border-color: var(--teal);
}
[data-theme="dark"] .job-matcher-priority {
  border-color: var(--border-col); background: var(--surface); color: var(--body);
}
[data-theme="dark"] .job-matcher-priority:hover {
  border-color: var(--coral);
}
[data-theme="dark"] .job-matcher-priority.is-selected {
  background: var(--coral); color: #fff; border-color: var(--coral);
}
[data-theme="dark"] .job-matcher-salary input {
  background: var(--surface); border-color: var(--border-col); color: var(--headline);
}
[data-theme="dark"] .job-matcher-result {
  border-color: var(--border-col); background: var(--surface);
}
[data-theme="dark"] .job-matcher-result:hover {
  border-color: var(--teal); background: var(--surface-tint);
}
[data-theme="dark"] .job-matcher-result__score--high {
  background: rgba(22,163,74,0.2); color: #86EFAC;
}
[data-theme="dark"] .job-matcher-result__score--medium {
  background: rgba(42,123,136,0.2); color: #67D2E0;
}
[data-theme="dark"] .job-matcher-result__score--low {
  background: rgba(217,119,6,0.2); color: #FCD34D;
}
[data-theme="dark"] .job-matcher-email {
  background: rgba(42,123,136,0.1); border: 1px solid var(--border-col);
}
[data-theme="dark"] .job-matcher-email__form input {
  background: var(--surface); border-color: var(--border-col); color: var(--headline);
}
[data-theme="dark"] .job-matcher-promo {
  background: linear-gradient(135deg, rgba(230,100,80,0.1) 0%, var(--surface) 100%);
  border-color: rgba(230,100,80,0.3);
}

/* ── Mobile responsive ── */
@media (max-width: 480px) {
  .job-matcher-options { grid-template-columns: 1fr; }
  .job-matcher-email__form { flex-direction: column; }
  .job-matcher-email__form input { width: 100%; }
  .job-matcher-salary { flex-wrap: wrap; }
  .job-matcher-result__title { padding-right: 0; }
  .job-matcher-result__score { position: static; margin-bottom: 8px; display: inline-block; }
  .job-matcher-result__details { flex-direction: column; align-items: flex-start; }
}

/* ═══════════════════════════════════════════════════════════
   In-Chat Rating Widget (v=58)
   ═══════════════════════════════════════════════════════════ */

.job-chat-rating {
  background: var(--bg-alt); border-radius: 12px;
  padding: 12px 14px; margin: 12px 0 4px;
  text-align: center; animation: jobChatRatingIn 0.4s ease;
}
@keyframes jobChatRatingIn {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}
.job-chat-rating__prompt {
  font-size: 0.82rem; color: var(--body-light); margin-bottom: 8px;
}
.job-chat-rating__stars {
  display: flex; justify-content: center; gap: 6px; margin-bottom: 6px;
}
.job-chat-rating__star {
  background: none; border: none; cursor: pointer;
  font-size: 1.6rem; color: var(--border); transition: color 0.15s;
  padding: 4px; line-height: 1; min-width: 44px; min-height: 44px;
}
.job-chat-rating__star:hover,
.job-chat-rating__star.is-hovered { color: #fbbf24; }
.job-chat-rating__star.is-active { color: #f59e0b; }
.job-chat-rating__dismiss {
  background: none; border: none; cursor: pointer;
  font-size: 0.75rem; color: var(--body-light); text-decoration: underline;
  padding: 4px 0;
}
.job-chat-rating--thanks {
  color: var(--teal); font-weight: 600; font-size: 0.88rem;
}
.job-chat-rating--fade {
  animation: jobChatRatingOut 0.5s ease forwards;
}
@keyframes jobChatRatingOut {
  to { opacity: 0; max-height: 0; padding: 0; margin: 0; overflow: hidden; }
}

/* ═══════════════════════════════════════════════════════════
   Session 06 — Job Feedback Widget + Interview Review Widget
   ═══════════════════════════════════════════════════════════ */

/* ── Job Feedback Widget ── */
.job-feedback-widget {
  background: var(--bg-alt); border-radius: 10px;
  padding: 16px; margin-bottom: 20px; text-align: center;
  position: relative;
}
.job-feedback__question {
  font-size: 0.92rem; font-weight: 600; color: var(--headline);
  margin: 0 0 12px;
}
.job-feedback__buttons { display: flex; gap: 8px; justify-content: center; }
.job-feedback__btn {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 8px 16px; border: 1px solid var(--border); border-radius: 8px;
  background: var(--bg); color: var(--body); cursor: pointer;
  font-size: 0.85rem; transition: all 0.2s;
  font-family: 'Source Sans 3', sans-serif;
}
.job-feedback__btn:hover { border-color: var(--teal); }
.job-feedback__btn--yes:hover { background: #dcfce7; border-color: #16a34a; color: #16a34a; }
.job-feedback__btn--no:hover { background: #fee2e2; border-color: #dc2626; color: #dc2626; }
html[data-theme="dark"] .job-feedback__btn--yes:hover { background: rgba(22,163,74,0.15); }
html[data-theme="dark"] .job-feedback__btn--no:hover { background: rgba(220,38,38,0.15); }
.job-feedback__comment { margin-top: 12px; }
.job-feedback__comment textarea {
  width: 100%; padding: 8px; border: 1px solid var(--border);
  border-radius: 6px; font-size: 0.85rem; resize: vertical;
  background: var(--bg); color: var(--body);
  font-family: 'Source Sans 3', sans-serif;
  box-sizing: border-box;
}
.job-feedback__comment .btn { margin-top: 8px; }
.job-feedback__thanks {
  color: var(--teal); font-weight: 600; font-size: 0.9rem;
  display: flex; flex-direction: column; align-items: center; gap: 4px;
}
.job-feedback__check { font-size: 1.3rem; }
.job-feedback__stat { font-size: 0.8rem; color: var(--body-light); font-weight: 400; }

/* ── Interview Review Widget ── */
.interview-review-widget {
  margin: 32px 0; padding-top: 24px;
  border-top: 1px solid var(--border);
}

/* CTA */
.interview-review__cta {
  background: linear-gradient(135deg, #fff5f5 0%, var(--bg-card, var(--bg-alt)) 100%);
  border: 1px solid var(--coral); border-radius: 12px;
  padding: 20px 24px; display: flex; flex-wrap: wrap;
  align-items: center; justify-content: space-between; gap: 12px;
}
html[data-theme="dark"] .interview-review__cta {
  background: linear-gradient(135deg, rgba(244,63,94,0.08) 0%, var(--bg-card, var(--bg-alt)) 100%);
}
.interview-review__cta-text strong {
  display: block; font-size: 1rem; color: var(--headline); margin-bottom: 2px;
}
.interview-review__cta-text span {
  font-size: 0.88rem; color: var(--body-light);
}

/* Aggregate display */
.interview-review__aggregate { margin-bottom: 24px; }
.interview-review__aggregate h3 { font-size: 1.15rem; margin-bottom: 16px; }

.ir-summary-header {
  display: flex; flex-wrap: wrap; align-items: baseline; gap: 12px;
  margin-bottom: 16px; font-size: 0.92rem;
}
.ir-summary-rating {
  font-size: 1.4rem; font-weight: 700; color: var(--headline);
}
.ir-summary-stars { color: #f59e0b; letter-spacing: 2px; }
.ir-summary-meta { color: var(--body-light); font-size: 0.85rem; }

/* Dimension bars */
.ir-dimension { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.ir-dimension__label {
  width: 180px; font-size: 0.82rem; color: var(--body); text-align: right; flex-shrink: 0;
}
.ir-dimension__bar-bg {
  flex: 1; height: 8px; background: var(--bg-alt); border-radius: 4px; overflow: hidden;
}
.ir-dimension__bar-fill {
  height: 100%; border-radius: 4px; background: var(--teal);
  transition: width 0.6s ease;
}
.ir-dimension__value {
  width: 32px; font-size: 0.82rem; color: var(--body-light); text-align: right;
}

/* Tips section */
.ir-tips { margin-top: 16px; }
.ir-tips h4 { font-size: 0.92rem; margin-bottom: 8px; }
.ir-tip-quote {
  background: var(--bg-alt); border-left: 3px solid var(--teal);
  padding: 10px 14px; margin-bottom: 8px; border-radius: 0 6px 6px 0;
  font-size: 0.88rem; font-style: italic; color: var(--body);
}

/* Form */
.interview-review__form-wrap {
  background: var(--bg-alt); border-radius: 12px;
  padding: 24px; margin-top: 16px;
}
.ir-field { margin-bottom: 16px; }
.ir-field label {
  display: block; font-size: 0.88rem; font-weight: 600;
  color: var(--headline); margin-bottom: 6px;
}
.ir-field .required { color: var(--coral); }
.ir-field input, .ir-field select, .ir-field textarea {
  width: 100%; padding: 8px 12px; border: 1px solid var(--border);
  border-radius: 6px; font-size: 0.88rem;
  background: var(--bg); color: var(--body);
  font-family: 'Source Sans 3', sans-serif;
  box-sizing: border-box;
}
.ir-field-row { display: flex; gap: 16px; }
.ir-field-row .ir-field { flex: 1; }
.ir-charcount {
  display: block; text-align: right; font-size: 0.75rem; color: var(--body-light); margin-top: 2px;
}

/* Star rating */
.ir-stars { display: flex; gap: 4px; }
.ir-star {
  font-size: 1.5rem; color: var(--border); cursor: pointer;
  transition: color 0.15s; user-select: none;
}
.ir-star:hover, .ir-star.is-hovered { color: #fbbf24; }
.ir-star.is-active { color: #f59e0b; }

/* Difficulty scale */
.ir-difficulty-scale { display: flex; gap: 6px; flex-wrap: wrap; }
.ir-diff-btn {
  padding: 6px 12px; border: 1px solid var(--border); border-radius: 20px;
  background: var(--bg); color: var(--body); cursor: pointer;
  font-size: 0.82rem; transition: all 0.2s;
  font-family: 'Source Sans 3', sans-serif;
}
.ir-diff-btn:hover { border-color: var(--coral); }
.ir-diff-btn.is-active {
  background: var(--coral); color: #fff; border-color: var(--coral);
}

/* Form actions */
.ir-actions { display: flex; gap: 10px; margin-top: 20px; }

/* Success */
.interview-review__success {
  text-align: center; padding: 32px 20px;
  background: var(--bg-alt); border-radius: 12px;
}
.ir-success-icon {
  font-size: 2rem; color: var(--teal); margin-bottom: 8px;
}

/* Responsive */
@media (max-width: 600px) {
  .ir-dimension__label { width: 120px; font-size: 0.78rem; }
  .ir-field-row { flex-direction: column; gap: 0; }
  .interview-review__cta { flex-direction: column; text-align: center; }
  .ir-difficulty-scale { justify-content: center; }
  .job-feedback__buttons { flex-direction: column; }
}

/* =====================================================================
   Session 02 — CMS Home Health Compare Panel (HHA rollout)
   Adds to home_health.html profile page + home_health_hub.html cards
   ===================================================================== */

/* Profile page: CMS quality panel */
.cms-hha-panel {
  border-left: 4px solid var(--teal);
  background: linear-gradient(
    to right,
    rgba(42, 123, 136, 0.04),
    var(--surface) 40%
  );
}
.cms-hha-panel .eyebrow {
  color: var(--teal);
  font-weight: 700;
}
.cms-hha-intro {
  font-size: 0.92rem;
  color: var(--body);
  font-family: 'Source Sans 3', sans-serif;
  line-height: 1.7;
  margin-bottom: 20px;
}
.cms-star-row {
  display: flex;
  gap: 32px;
  flex-wrap: wrap;
  margin-bottom: 24px;
  padding: 20px;
  background: var(--bg-alt);
  border-radius: 12px;
  border: 1px solid var(--border-col);
}
.cms-star-block {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 180px;
}
.cms-star-value {
  font-family: 'Lora', serif;
  font-size: 2.4rem;
  font-weight: 700;
  color: var(--headline);
  line-height: 1;
}
.cms-star-stars {
  display: flex;
  align-items: center;
  gap: 3px;
}
.cms-star-label {
  font-size: 0.82rem;
  color: var(--body-light);
  font-family: 'Source Sans 3', sans-serif;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}
.cms-measures-heading {
  font-size: 1rem;
  margin: 8px 0 14px;
  color: var(--headline);
}
.cms-measure-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 10px;
  margin-bottom: 18px;
}
.cms-measure {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 12px 14px;
  background: var(--surface);
  border: 1px solid var(--border-col);
  border-radius: 8px;
  font-family: 'Source Sans 3', sans-serif;
}
.cms-measure--lower-better {
  background: rgba(245, 158, 11, 0.04);
  border-color: rgba(245, 158, 11, 0.25);
}
.cms-measure-label {
  font-size: 0.85rem;
  color: var(--body);
  flex: 1;
  padding-right: 10px;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.cms-lower-hint {
  font-size: 0.68rem;
  color: var(--body-light);
  font-weight: 400;
  font-style: italic;
}
.cms-measure-value {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--teal);
  white-space: nowrap;
}
.cms-source-line {
  font-size: 0.75rem;
  color: var(--body-light);
  font-family: 'Source Sans 3', sans-serif;
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid var(--border-col);
  line-height: 1.6;
}
.cms-source-line a {
  color: var(--teal);
  text-decoration: none;
}
.cms-source-line a:hover {
  text-decoration: underline;
}

/* Hub page: CMS star pill badges */
.pill-cms-star {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 0.68rem;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 999px;
  background: rgba(245, 158, 11, 0.12);
  color: #B45309;
  border: 1px solid rgba(245, 158, 11, 0.35);
  font-family: 'Source Sans 3', sans-serif;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}
.pill-cms-star--gold {
  background: rgba(245, 158, 11, 0.22);
  color: #78350F;
  border-color: rgba(245, 158, 11, 0.55);
}

/* Hub filter toggle */
.hh-hub-filter {
  margin-bottom: 18px;
}
.hh-hub-filter__toggle {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 10px 16px;
  background: var(--bg-alt);
  border: 1px solid var(--border-col);
  border-radius: 10px;
  cursor: pointer;
  font-family: 'Source Sans 3', sans-serif;
  transition: background 0.15s, border-color 0.15s;
}
.hh-hub-filter__toggle:hover {
  background: rgba(42, 123, 136, 0.06);
  border-color: var(--teal);
}
.hh-hub-filter__toggle input {
  accent-color: var(--teal);
  width: 16px;
  height: 16px;
}
.hh-hub-filter__label {
  font-size: 0.88rem;
  color: var(--headline);
  font-weight: 600;
}
.hh-hub-cms-footnote {
  font-size: 0.8rem;
  color: var(--body-light);
  font-family: 'Source Sans 3', sans-serif;
  margin-top: 18px;
  line-height: 1.6;
}
.hh-hub-cms-footnote a {
  color: var(--teal);
  font-weight: 600;
}

/* Dark mode adjustments */
[data-theme="dark"] .cms-hha-panel {
  background: linear-gradient(
    to right,
    rgba(42, 123, 136, 0.1),
    var(--surface) 40%
  );
}
[data-theme="dark"] .cms-star-row {
  background: rgba(255, 255, 255, 0.03);
}
[data-theme="dark"] .cms-measure--lower-better {
  background: rgba(245, 158, 11, 0.08);
}
[data-theme="dark"] .pill-cms-star {
  background: rgba(245, 158, 11, 0.18);
  color: #FCD34D;
  border-color: rgba(245, 158, 11, 0.45);
}
[data-theme="dark"] .pill-cms-star--gold {
  background: rgba(245, 158, 11, 0.3);
  color: #FEF3C7;
}

/* Responsive */
@media (max-width: 600px) {
  .cms-star-row { flex-direction: column; gap: 20px; padding: 16px; }
  .cms-star-block { min-width: 0; }
  .cms-measure-grid { grid-template-columns: 1fr; }
}

/* ---------------------------------------------------------------------
   Session 03 — HHA Service-Type Disambiguation
   (subtype pills on profile + filter buttons on hub + sub-hubs)
   --------------------------------------------------------------------- */

/* Profile page subtype pills — one per subtype in the list */
.pill-subtype {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 0.72rem;
  font-weight: 700;
  padding: 5px 12px;
  border-radius: 999px;
  font-family: 'Source Sans 3', sans-serif;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  border: 1px solid transparent;
}

/* Skilled Home Health — teal (matches existing brand) */
.pill-subtype--skilled-home-health {
  background: rgba(42, 123, 136, 0.12);
  color: #1E5A66;
  border-color: rgba(42, 123, 136, 0.35);
}

/* Hospice — muted lavender/purple (calming, dignity-coded) */
.pill-subtype--hospice {
  background: rgba(124, 94, 153, 0.12);
  color: #5B4474;
  border-color: rgba(124, 94, 153, 0.35);
}

/* Personal Care / Home Care PAS — warm amber */
.pill-subtype--home-care-pas {
  background: rgba(217, 119, 6, 0.12);
  color: #92400E;
  border-color: rgba(217, 119, 6, 0.35);
}

/* Private Duty Nursing — deep slate blue */
.pill-subtype--private-duty-nursing {
  background: rgba(30, 64, 175, 0.12);
  color: #1E3A8A;
  border-color: rgba(30, 64, 175, 0.35);
}

/* Pediatric — rose pink */
.pill-subtype--pediatric-home-health {
  background: rgba(219, 39, 119, 0.12);
  color: #9D174D;
  border-color: rgba(219, 39, 119, 0.35);
}

/* Dark mode variants */
[data-theme="dark"] .pill-subtype--skilled-home-health {
  background: rgba(42, 123, 136, 0.25);
  color: #A5D8E0;
}
[data-theme="dark"] .pill-subtype--hospice {
  background: rgba(124, 94, 153, 0.25);
  color: #D8BFEE;
}
[data-theme="dark"] .pill-subtype--home-care-pas {
  background: rgba(217, 119, 6, 0.25);
  color: #FCD34D;
}
[data-theme="dark"] .pill-subtype--private-duty-nursing {
  background: rgba(59, 130, 246, 0.25);
  color: #BFDBFE;
}
[data-theme="dark"] .pill-subtype--pediatric-home-health {
  background: rgba(219, 39, 119, 0.25);
  color: #FBCFE8;
}

/* Hub page subtype filter buttons */
.hh-subtype-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 8px;
}
.hh-subtype-filter-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 18px;
  background: var(--surface);
  color: var(--headline);
  border: 1px solid var(--border-col);
  border-radius: 999px;
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.88rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s, border-color 0.15s, color 0.15s;
}
.hh-subtype-filter-btn:hover {
  border-color: var(--teal);
  color: var(--teal);
}
.hh-subtype-filter-btn.is-active {
  background: var(--teal);
  color: #fff;
  border-color: var(--teal);
}
.hh-subtype-filter-btn.is-active:hover {
  background: #1E5A66;
  border-color: #1E5A66;
  color: #fff;
}

/* Dark mode filter buttons */
[data-theme="dark"] .hh-subtype-filter-btn {
  background: var(--surface);
  color: var(--body);
}
[data-theme="dark"] .hh-subtype-filter-btn.is-active {
  background: var(--teal);
  color: #fff;
}

/* Sub-hub header buttons list */
.hh-subtype-links a:hover {
  text-decoration: underline;
}

/* Responsive filter bar — stack into a horizontal scroll strip on mobile */
@media (max-width: 600px) {
  .hh-subtype-filters {
    flex-wrap: nowrap;
    overflow-x: auto;
    padding-bottom: 6px;
    -webkit-overflow-scrolling: touch;
  }
  .hh-subtype-filter-btn {
    flex-shrink: 0;
    padding: 9px 14px;
    font-size: 0.82rem;
  }
}

/* ---------------------------------------------------------------------
   Session 04 — HHA Service Area ZIP Coverage
   --------------------------------------------------------------------- */

.service-area-panel .service-area-label {
  font-size: 0.82rem;
  color: var(--body-light);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: 10px;
  font-family: 'Source Sans 3', sans-serif;
}

.service-area-zips summary {
  cursor: pointer;
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--teal);
  padding: 8px 0;
  list-style: none;
  display: flex;
  align-items: center;
  gap: 6px;
}

.service-area-zips summary::-webkit-details-marker {
  display: none;
}

.service-area-zips summary::before {
  content: "+";
  font-size: 1.15rem;
  line-height: 1;
  color: var(--teal);
  display: inline-block;
  width: 14px;
  transition: transform 0.2s ease;
}

.service-area-zips[open] summary::before {
  content: "\2212";
}

.service-area-zips .zip-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(70px, 1fr));
  gap: 8px;
  padding: 12px 0 4px;
}

.service-area-zips .zip-chip {
  background: var(--teal-soft, #e7f5f7);
  color: var(--teal);
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.82rem;
  font-weight: 600;
  text-align: center;
  padding: 6px 8px;
  border-radius: 6px;
  letter-spacing: 0.02em;
}

.service-area-source-note {
  font-size: 0.78rem;
  color: var(--body-light);
  font-family: 'Source Sans 3', sans-serif;
  font-style: italic;
  margin: 10px 0 0;
}

/* ── ZIP checker widget ───────────────────────────────────────────── */
.hha-zip-checker {
  margin-top: 18px;
  padding: 18px;
  border: 1px solid var(--border-col);
  border-radius: 12px;
  background: var(--bg-alt, #fafafa);
  font-family: 'Source Sans 3', sans-serif;
}

.hha-zip-checker__head {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 6px;
  color: var(--teal);
}

.hha-zip-checker__icon {
  flex-shrink: 0;
}

.hha-zip-checker__title {
  margin: 0;
  font-family: 'Lora', Georgia, serif;
  font-size: 1.05rem;
  color: var(--headline);
  font-weight: 700;
}

.hha-zip-checker__sub {
  margin: 0 0 12px;
  font-size: 0.88rem;
  color: var(--body);
  line-height: 1.6;
}

.hha-zip-checker__form {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.hha-zip-checker__label {
  font-size: 0.78rem;
  color: var(--body-light);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-weight: 600;
}

.hha-zip-checker__row {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.hha-zip-checker input[type="text"] {
  flex: 1 1 160px;
  min-width: 140px;
  padding: 12px 14px;
  border: 1px solid var(--border-col);
  border-radius: 8px;
  font-size: 1rem;
  font-family: 'Source Sans 3', sans-serif;
  color: var(--headline);
  background: var(--surface, #ffffff);
}

.hha-zip-checker input[type="text"]:focus {
  outline: 2px solid var(--teal);
  outline-offset: 1px;
}

.hha-zip-checker__submit {
  flex: 0 0 auto;
  min-width: 150px;
}

.hha-zip-checker__error {
  color: var(--coral, #df4c73);
  font-size: 0.85rem;
  margin: 6px 0 0;
}

.hha-zip-checker__result {
  margin-top: 14px;
}

.hha-zip-checker__loading {
  color: var(--body-light);
  font-size: 0.88rem;
  margin: 6px 0 0;
}

.hha-zip-checker__ok,
.hha-zip-checker__miss {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  padding: 14px 16px;
  border-radius: 10px;
  margin: 4px 0 12px;
}

.hha-zip-checker__ok {
  background: rgba(22, 163, 74, 0.1);
  border: 1px solid rgba(22, 163, 74, 0.25);
}
.hha-zip-checker__ok-icon {
  color: #16a34a;
  flex-shrink: 0;
}
.hha-zip-checker__ok strong {
  color: #15803d;
  display: block;
  margin-bottom: 4px;
  font-size: 0.95rem;
}
.hha-zip-checker__ok p {
  color: var(--body);
  font-size: 0.85rem;
  margin: 0;
  line-height: 1.55;
}

.hha-zip-checker__miss {
  background: rgba(223, 76, 115, 0.08);
  border: 1px solid rgba(223, 76, 115, 0.25);
}
.hha-zip-checker__miss-icon {
  color: var(--coral, #df4c73);
  flex-shrink: 0;
}
.hha-zip-checker__miss strong {
  color: var(--coral, #df4c73);
  display: block;
  margin-bottom: 4px;
  font-size: 0.95rem;
}
.hha-zip-checker__miss p {
  color: var(--body);
  font-size: 0.85rem;
  margin: 0;
  line-height: 1.55;
}

.hha-zip-checker__alts-heading {
  font-family: 'Lora', Georgia, serif;
  font-size: 0.98rem;
  color: var(--headline);
  margin: 14px 0 10px;
}

.hha-zip-checker__alts {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.hha-zip-checker__alts a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 12px 14px;
  border: 1px solid var(--border-col);
  border-radius: 8px;
  background: var(--surface, #fff);
  text-decoration: none;
  color: var(--headline);
  transition: transform 0.15s ease, border-color 0.15s ease;
}

.hha-zip-checker__alts a:hover {
  border-color: var(--teal);
  transform: translateY(-1px);
}

.hha-zip-checker__alt-name {
  font-weight: 600;
  font-size: 0.92rem;
  flex: 1 1 auto;
}

.hha-zip-checker__alt-meta {
  display: inline-flex;
  gap: 6px;
  flex-shrink: 0;
}

.hha-zip-checker__verified {
  background: var(--teal);
  color: #fff;
  font-size: 0.7rem;
  font-weight: 700;
  padding: 3px 7px;
  border-radius: 4px;
  letter-spacing: 0.02em;
}

.hha-zip-checker__cms {
  background: #fef3c7;
  color: #92400e;
  font-size: 0.72rem;
  font-weight: 700;
  padding: 3px 7px;
  border-radius: 4px;
}

.hha-zip-checker__no-alts {
  font-size: 0.88rem;
  color: var(--body);
  margin: 8px 0 0;
}

/* Amber pill variant used for "Serves this area" badge on HH area hubs */
.pill-amber-soft {
  background: #fef3c7;
  color: #92400e;
  border: 1px solid #fcd34d;
  font-weight: 600;
}

/* Dark mode variants */
[data-theme="dark"] .hha-zip-checker {
  background: rgba(255, 255, 255, 0.03);
  border-color: rgba(255, 255, 255, 0.1);
}
[data-theme="dark"] .hha-zip-checker input[type="text"] {
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 255, 255, 0.15);
  color: #e6edf3;
}
[data-theme="dark"] .hha-zip-checker__ok {
  background: rgba(22, 163, 74, 0.15);
}
[data-theme="dark"] .hha-zip-checker__miss {
  background: rgba(223, 76, 115, 0.12);
}
[data-theme="dark"] .hha-zip-checker__alts a {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.1);
  color: #e6edf3;
}
[data-theme="dark"] .service-area-zips .zip-chip {
  background: rgba(42, 123, 136, 0.18);
  color: #8ac4cc;
}
[data-theme="dark"] .pill-amber-soft {
  background: rgba(252, 211, 77, 0.15);
  color: #fcd34d;
  border-color: rgba(252, 211, 77, 0.3);
}

/* Mobile */
@media (max-width: 600px) {
  .hha-zip-checker__row {
    flex-direction: column;
  }
  .hha-zip-checker__submit {
    width: 100%;
  }
}
/* END Session 04 — HHA Service Area ZIP Coverage */

/* ═══════════════════════════════════════════════════════════════════
   Session 05 — HHA Insurance & Eligibility Matrix + Coverage Quiz
   (home_health.html profile panel, /find-home-health/ quiz,
    home_health_hub.html insurance filter, /hha/insurance/ form)
   ═══════════════════════════════════════════════════════════════════ */

/* ── Profile page: grouped insurance panel ─────────────────────── */
.insurance-panel .insurance-category {
  margin-bottom: 14px;
}
.insurance-panel .insurance-category:last-of-type {
  margin-bottom: 10px;
}
.insurance-category-label {
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--body-light);
  margin: 6px 0 6px;
  font-weight: 600;
}
.insurance-pills {
  display: flex;
  gap: 6px 8px;
  flex-wrap: wrap;
}
.pill-insurance {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 0.72rem;
  line-height: 1.1;
  padding: 6px 11px;
  border-radius: 999px;
}
.insurance-disclaimer {
  font-size: 0.82rem;
  color: var(--body);
  font-family: 'Source Sans 3', sans-serif;
  line-height: 1.6;
  margin-top: 12px;
}
.verified-claim {
  margin: 10px 0 0;
  font-size: 0.78rem;
  color: #15803d;
  font-weight: 600;
  font-family: 'Source Sans 3', sans-serif;
}
.auto-claim {
  margin: 10px 0 0;
  font-size: 0.78rem;
  color: var(--body-light);
  font-style: italic;
  font-family: 'Source Sans 3', sans-serif;
}
.insurance-quiz-cta {
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px dashed var(--border-col);
}

[data-theme="dark"] .verified-claim {
  color: #34d399;
}

/* ── Home Health hub: insurance filter row ─────────────────────── */
.hh-insurance-filter-row {
  display: flex;
  gap: 12px;
  align-items: center;
  flex-wrap: wrap;
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px dashed var(--border-col);
}
.hh-insurance-filter-label {
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.82rem;
  color: var(--body-light);
  font-weight: 600;
}
.hh-insurance-filter {
  padding: 8px 12px;
  border: 1px solid var(--border-col);
  border-radius: 8px;
  background: var(--surface);
  color: var(--body);
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.88rem;
  min-width: 220px;
}
.hh-insurance-filter-quiz {
  font-size: 0.85rem;
  color: var(--teal);
  font-weight: 600;
  font-family: 'Source Sans 3', sans-serif;
  text-decoration: none;
  margin-left: auto;
}
.hh-insurance-filter-quiz:hover {
  text-decoration: underline;
}

/* ── Coverage quiz at /find-home-health/ ───────────────────────── */
.coverage-quiz {
  background: var(--surface);
  border: 1px solid var(--border-col);
  border-radius: 16px;
  box-shadow: var(--card-shadow);
  padding: 28px 28px 24px;
}
.coverage-quiz__steps {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  list-style: none;
  padding: 0;
  margin: 0 0 20px;
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.78rem;
  color: var(--body-light);
  border-bottom: 1px solid var(--border-col);
  padding-bottom: 14px;
}
.coverage-quiz__steps li {
  padding: 4px 10px;
  border-radius: 999px;
  background: var(--bg-alt);
  transition: background 0.2s, color 0.2s;
}
.coverage-quiz__steps li.is-active {
  background: var(--teal);
  color: #fff;
  font-weight: 600;
}
.coverage-quiz__step {
  animation: coverage-quiz-fade 0.25s ease-out;
}
.coverage-quiz__step[hidden] { display: none; }
@keyframes coverage-quiz-fade {
  from { opacity: 0; transform: translateY(4px); }
  to   { opacity: 1; transform: translateY(0); }
}
.coverage-quiz__hint {
  font-size: 0.88rem;
  color: var(--body-light);
  font-family: 'Source Sans 3', sans-serif;
  line-height: 1.6;
  margin: 0 0 16px;
}
.coverage-quiz__cat-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 10px;
}
.coverage-quiz__cat,
.coverage-quiz__type {
  display: block;
  border: 1.5px solid var(--border-col);
  border-radius: 12px;
  padding: 14px 16px;
  cursor: pointer;
  background: var(--surface);
  transition: border-color 0.15s, background 0.15s;
}
.coverage-quiz__cat input,
.coverage-quiz__type input {
  display: none;
}
.coverage-quiz__cat span,
.coverage-quiz__type span {
  display: block;
  font-weight: 600;
  color: var(--headline);
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.95rem;
}
.coverage-quiz__cat small,
.coverage-quiz__type small {
  display: block;
  font-size: 0.78rem;
  color: var(--body-light);
  margin-top: 3px;
  font-family: 'Source Sans 3', sans-serif;
}
.coverage-quiz__cat:hover,
.coverage-quiz__type:hover {
  border-color: var(--teal);
}
.coverage-quiz__cat:has(input:checked),
.coverage-quiz__type:has(input:checked) {
  border-color: var(--teal);
  background: rgba(42, 123, 136, 0.06);
}
.coverage-quiz__plan-picker {
  margin-top: 14px;
}
.coverage-quiz__plan-picker select {
  width: 100%;
  padding: 12px 14px;
  border: 1px solid var(--border-col);
  border-radius: 10px;
  background: var(--surface);
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.95rem;
}
.coverage-quiz__zip-input {
  width: 100%;
  max-width: 240px;
  padding: 14px;
  border: 1.5px solid var(--border-col);
  border-radius: 10px;
  font-family: 'Source Sans 3', sans-serif;
  font-size: 1.1rem;
  letter-spacing: 0.08em;
}
.coverage-quiz__zip-input:focus {
  outline: none;
  border-color: var(--teal);
}
.coverage-quiz__zip-error {
  color: var(--coral);
  font-size: 0.82rem;
  margin: 6px 0 0;
  font-family: 'Source Sans 3', sans-serif;
}
.coverage-quiz__type-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 10px;
}
.coverage-quiz__nav {
  margin-top: 24px;
  padding-top: 16px;
  border-top: 1px solid var(--border-col);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}
.btn--ghost {
  background: transparent;
  color: var(--teal);
  border: 1px solid var(--border-col);
  padding: 10px 18px;
  border-radius: 10px;
  font-weight: 600;
  text-decoration: none;
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.92rem;
  cursor: pointer;
}
.btn--ghost:hover { background: var(--bg-alt); }
.coverage-quiz__results-header {
  display: flex;
  gap: 12px;
  align-items: baseline;
  flex-wrap: wrap;
  margin-bottom: 16px;
}
.coverage-quiz__results-header button {
  margin-left: auto;
}
.coverage-quiz__loading {
  padding: 30px;
  text-align: center;
  color: var(--body-light);
  font-family: 'Source Sans 3', sans-serif;
}
.coverage-quiz__error {
  padding: 14px 18px;
  background: rgba(223, 76, 115, 0.08);
  border-left: 3px solid var(--coral);
  color: var(--coral);
  border-radius: 8px;
  font-family: 'Source Sans 3', sans-serif;
  margin-bottom: 14px;
}
.coverage-quiz__results-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.coverage-quiz__result {
  padding: 18px 20px;
  border: 1px solid var(--border-col);
  border-radius: 12px;
  background: var(--surface);
}
.coverage-quiz__result--empty {
  color: var(--body-light);
  text-align: center;
  font-style: italic;
}
.coverage-quiz__result-head {
  display: flex;
  gap: 10px;
  align-items: center;
  flex-wrap: wrap;
  margin-bottom: 8px;
}
.coverage-quiz__result-name {
  color: var(--headline);
  text-decoration: none;
  font-weight: 700;
  font-family: Lora, Georgia, serif;
  font-size: 1.05rem;
}
.coverage-quiz__result-name:hover { color: var(--teal); }
.coverage-quiz__result-verified {
  font-size: 0.68rem;
  background: rgba(42, 123, 136, 0.12);
  color: var(--teal);
  padding: 3px 8px;
  border-radius: 999px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.coverage-quiz__result-star {
  font-size: 0.72rem;
  background: rgba(245, 158, 11, 0.14);
  color: #b45309;
  padding: 3px 8px;
  border-radius: 999px;
  font-weight: 700;
}
[data-theme="dark"] .coverage-quiz__result-star { color: #f59e0b; }
.coverage-quiz__result-meta {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  font-size: 0.82rem;
  color: var(--body-light);
  font-family: 'Source Sans 3', sans-serif;
  margin-bottom: 10px;
}
.coverage-quiz__result-subtype {
  text-transform: capitalize;
}
.coverage-quiz__result-cta {
  display: inline-block;
  font-size: 0.82rem;
  padding: 8px 16px;
}
.coverage-quiz__email-capture {
  margin-top: 24px;
  padding: 20px;
  border-radius: 12px;
  background: var(--bg-alt);
  border: 1px solid var(--border-col);
}
.coverage-quiz__email-capture input[type="email"] {
  border: 1.5px solid var(--border-col);
  border-radius: 10px;
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.95rem;
}

/* ── /hha/insurance/ operator form ─────────────────────────────── */
.hha-ins-cat-list {
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.hha-ins-cat {
  border: 1px solid var(--border-col);
  border-radius: 12px;
  padding: 16px 18px 18px;
  margin: 0;
}
.hha-ins-cat legend {
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--teal);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 0 8px;
}
.hha-ins-cat__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 8px 14px;
  margin-top: 8px;
}
.hha-ins-plan {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.9rem;
  color: var(--body);
  padding: 6px 8px;
  border-radius: 8px;
  cursor: pointer;
}
.hha-ins-plan:hover {
  background: var(--bg-alt);
}
.hha-ins-plan input[type="checkbox"] {
  width: 16px;
  height: 16px;
  accent-color: var(--teal);
}

@media (max-width: 640px) {
  .coverage-quiz {
    padding: 22px 18px 20px;
  }
  .coverage-quiz__cat-grid,
  .coverage-quiz__type-grid,
  .hha-ins-cat__grid {
    grid-template-columns: 1fr;
  }
  .hh-insurance-filter-row {
    flex-direction: column;
    align-items: stretch;
  }
  .hh-insurance-filter {
    width: 100%;
  }
  .hh-insurance-filter-quiz {
    margin-left: 0;
  }
}
/* END Session 05 — HHA Insurance & Eligibility Matrix */

/* ═══════════════════════════════════════════════════════════════════
   Session 06 — Specialty Clinical Programs + Accreditation Badges
   ═══════════════════════════════════════════════════════════════════ */

/* ── Specialty grid on profile page ── */
.specialty-panel { /* inherits .data-panel */ }

.specialty-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 10px;
  margin-bottom: 8px;
}

.specialty-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  padding: 14px 10px;
  background: var(--teal-soft);
  border: 1px solid rgba(42,123,136,0.2);
  border-radius: 10px;
  text-decoration: none;
  transition: background 0.15s, border-color 0.15s;
  cursor: pointer;
}

.specialty-card:hover {
  background: rgba(42,123,136,0.15);
  border-color: var(--teal);
}

.specialty-icon {
  width: 28px;
  height: 28px;
  background: var(--teal);
  border-radius: 6px;
  display: inline-block;
  flex-shrink: 0;
}

.specialty-name {
  font-size: 0.78rem;
  font-family: 'Source Sans 3', sans-serif;
  font-weight: 600;
  color: var(--headline);
  text-align: center;
  line-height: 1.3;
}

/* ── Accreditation badges on profile page ── */
.accreditation-panel { /* inherits .data-panel */ }

.accreditation-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  margin-bottom: 10px;
}

.accreditation-badge {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  max-width: 90px;
  text-align: center;
}

.accreditation-badge img {
  width: 72px;
  height: 72px;
  object-fit: contain;
  border-radius: 10px;
}

.accreditation-label {
  font-size: 0.68rem;
  font-family: 'Source Sans 3', sans-serif;
  color: var(--body-light);
  line-height: 1.3;
}

.verified-tick {
  font-size: 0.65rem;
  font-family: 'Source Sans 3', sans-serif;
  color: #16A34A;
  font-weight: 700;
  background: #D1FAE5;
  border-radius: 4px;
  padding: 2px 6px;
}

/* ── Hub specialty multi-select filter ── */
.filter-multi.hh-specialty-filter {
  margin-top: 14px;
  border: 1px solid var(--border-col);
  border-radius: 10px;
  background: var(--surface);
  padding: 0;
  overflow: hidden;
}

.hh-specialty-filter-summary {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 16px;
  font-size: 0.9rem;
  font-family: 'Source Sans 3', sans-serif;
  font-weight: 600;
  color: var(--headline);
  cursor: pointer;
  list-style: none;
  background: var(--bg-alt);
  border-radius: 10px;
  transition: background 0.15s;
}

.hh-specialty-filter-summary::-webkit-details-marker { display: none; }

.hh-specialty-filter[open] .hh-specialty-filter-summary {
  border-radius: 10px 10px 0 0;
  border-bottom: 1px solid var(--border-col);
}

.hh-specialty-filter-summary::after {
  content: '▾';
  margin-left: auto;
  font-size: 0.8rem;
  color: var(--body-light);
}

.hh-specialty-filter[open] .hh-specialty-filter-summary::after {
  content: '▴';
}

.hh-specialty-filter-count {
  font-size: 0.72rem;
  background: var(--teal);
  color: #fff;
  border-radius: 10px;
  padding: 2px 8px;
}

.hh-specialty-filter-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 6px;
  padding: 14px 16px 8px;
}

.hh-specialty-check {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.85rem;
  font-family: 'Source Sans 3', sans-serif;
  color: var(--body);
  cursor: pointer;
  padding: 6px 8px;
  border-radius: 6px;
  transition: background 0.1s;
}

.hh-specialty-check:hover { background: var(--teal-soft); }

.hh-specialty-check input[type="checkbox"] {
  accent-color: var(--teal);
  width: 15px;
  height: 15px;
  flex-shrink: 0;
}

/* ── Operator specialty checkboxes (form page) ── */
.specialty-check-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
}

.specialty-check-label {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 12px 14px;
  border: 1px solid var(--border-col);
  border-radius: 10px;
  cursor: pointer;
  transition: background 0.15s, border-color 0.15s;
  font-family: 'Source Sans 3', sans-serif;
}

.specialty-check-label:hover { background: var(--teal-soft); border-color: var(--teal); }

.specialty-check-label input[type="checkbox"] {
  accent-color: var(--teal);
  width: 17px;
  height: 17px;
  flex-shrink: 0;
  margin-top: 2px;
}

.specialty-check-text {
  font-size: 0.9rem;
  color: var(--headline);
  line-height: 1.4;
}

/* ── Operator accreditation form rows ── */
.accred-form-row { margin-bottom: 0; }

.accred-detail {
  border-top: 1px solid var(--border-col);
  margin-top: 10px;
  padding-top: 12px;
}

/* ── Specialty hub pillar pages ── */
.specialty-hub-intro {
  font-size: 0.95rem;
  color: var(--body);
  font-family: 'Source Sans 3', sans-serif;
  line-height: 1.8;
}

/* ── Responsive ── */
@media (max-width: 640px) {
  .specialty-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .accreditation-badges {
    gap: 12px;
  }

  .accreditation-badge {
    max-width: 72px;
  }

  .accreditation-badge img {
    width: 56px;
    height: 56px;
  }

  .hh-specialty-filter-grid {
    grid-template-columns: 1fr;
  }

  .specialty-check-grid {
    grid-template-columns: 1fr;
  }
}
/* END Session 06 — Specialty Clinical Programs + Accreditation Badges */

/* ============================================================
   Session 07 — HHSC Enforcement + Trust Badges
   v=67
   ============================================================ */

/* --- Compliance panel (home_health.html) --- */
.hhsc-compliance-panel {
  border-left: 4px solid var(--border-col);
}
.hhsc-compliance-panel.trust-clean_record { border-left-color: #16A34A; }
.hhsc-compliance-panel.trust-minor_issues { border-left-color: #6B7280; }
.hhsc-compliance-panel.trust-attention    { border-left-color: #D97706; }
.hhsc-compliance-panel.trust-red_flag     { border-left-color: #DC2626; }

.trust-header {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 6px;
}

.trust-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 10px;
  border-radius: 20px;
  font-size: 0.78rem;
  font-weight: 700;
  font-family: 'Source Sans 3', sans-serif;
  letter-spacing: 0.02em;
}
.trust-badge.trust-clean_record {
  background: #DCFCE7;
  color: #166534;
}
.trust-badge.trust-minor_issues {
  background: #F3F4F6;
  color: #374151;
}
.trust-badge.trust-attention {
  background: #FEF3C7;
  color: #92400E;
}
.trust-badge.trust-red_flag {
  background: #FEE2E2;
  color: #991B1B;
}
.trust-badge.trust-unrated {
  background: var(--bg-alt);
  color: var(--body-light);
}

.trust-score {
  font-size: 0.78rem;
  color: var(--body-light);
  font-family: 'Source Sans 3', sans-serif;
}

/* Compliance stats definition list */
.compliance-stats {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0;
  margin: 14px 0;
  border: 1px solid var(--border-col);
  border-radius: 8px;
  overflow: hidden;
  font-family: 'Source Sans 3', sans-serif;
}
.compliance-stat {
  padding: 10px 14px;
  border-bottom: 1px solid var(--border-col);
}
.compliance-stat:last-child,
.compliance-stat:nth-last-child(2):nth-child(odd) {
  border-bottom: none;
}
.compliance-stat dt {
  font-size: 0.72rem;
  color: var(--body-light);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: 2px;
}
.compliance-stat dd {
  font-size: 0.9rem;
  color: var(--headline);
  margin: 0;
}
.compliance-survey-type {
  font-size: 0.75rem;
  color: var(--body-light);
}

/* Enforcement history accordion */
.enforcement-history {
  border: 1px solid var(--border-col);
  border-radius: 8px;
  overflow: hidden;
}
.enforcement-history-summary {
  padding: 10px 14px;
  cursor: pointer;
  font-size: 0.88rem;
  font-family: 'Source Sans 3', sans-serif;
  font-weight: 600;
  color: var(--body);
  background: var(--bg-alt);
  list-style: none;
  display: flex;
  align-items: center;
  gap: 6px;
}
.enforcement-history-summary::-webkit-details-marker { display: none; }
.enforcement-history-summary::before {
  content: '▶';
  font-size: 0.65rem;
  color: var(--body-light);
  transition: transform 0.15s;
}
details[open] .enforcement-history-summary::before {
  transform: rotate(90deg);
}
.enforcement-history-body {
  padding: 12px 14px;
}
.enforcement-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.82rem;
  font-family: 'Source Sans 3', sans-serif;
}
.enforcement-table th {
  text-align: left;
  padding: 6px 8px;
  color: var(--body-light);
  font-weight: 600;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  border-bottom: 2px solid var(--border-col);
}
.enforcement-table td {
  padding: 8px;
  border-bottom: 1px solid var(--border-col);
  color: var(--body);
  vertical-align: top;
  line-height: 1.5;
}
.enforcement-table tr:last-child td { border-bottom: none; }

/* Operator rebuttal block */
.operator-rebuttal {
  margin-top: 14px;
  padding: 12px 14px;
  background: #EFF6FF;
  border-left: 3px solid #3B82F6;
  border-radius: 0 6px 6px 0;
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.88rem;
}

/* Clean record note */
.compliance-clean-note {
  margin-top: 12px;
  font-size: 0.82rem;
  color: #166534;
  font-family: 'Source Sans 3', sans-serif;
  background: #F0FDF4;
  padding: 8px 12px;
  border-radius: 6px;
  line-height: 1.6;
}

/* --- Hub card trust badge corners (home_health_hub.html) --- */
.hh-provider-card { position: relative; }

.hh-trust-corner {
  position: absolute;
  top: 8px;
  right: 8px;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.75rem;
  font-weight: 700;
  z-index: 1;
  line-height: 1;
}
.hh-trust-corner--clean {
  background: #DCFCE7;
  color: #166534;
  title: "Clean Record";
}
.hh-trust-corner--attention {
  background: #FEF3C7;
  color: #92400E;
}
.hh-trust-corner--red {
  background: #FEE2E2;
  color: #991B1B;
}

/* --- Responsive --- */
@media (max-width: 600px) {
  .compliance-stats {
    grid-template-columns: 1fr;
  }
  .compliance-stat:nth-last-child(2):nth-child(odd) {
    border-bottom: 1px solid var(--border-col);
  }
  .compliance-stat:last-child {
    border-bottom: none;
  }
  .trust-header {
    gap: 8px;
  }
}
/* END Session 07 — HHSC Enforcement + Trust Badges */

/* ═══════════════════════════════════════════════════════════════════
   Session 09 — HHA-Native Review System
   ─────────────────────────────────────────────────────────────────── */

/* Review section on the profile */
.hha-reviews-section {
  background: var(--surface);
  border: 1px solid var(--border-col);
  border-radius: 16px;
  padding: 28px 24px;
  box-shadow: var(--card-shadow);
}

.review-aggregate {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 20px 28px;
  align-items: center;
  padding: 18px 20px;
  background: var(--bg-alt);
  border: 1px solid var(--border-col);
  border-radius: 12px;
  margin-bottom: 20px;
}
.overall-score {
  text-align: center;
  padding-right: 20px;
  border-right: 1px solid var(--border-col);
}
.big-score {
  display: block;
  font-family: Georgia, serif;
  font-size: 2.6rem;
  font-weight: 700;
  color: var(--teal);
  line-height: 1;
}
.big-score-label {
  display: block;
  font-size: 0.78rem;
  color: var(--body-light);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-top: 4px;
}
.dimension-scores {
  display: grid;
  gap: 6px;
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.88rem;
}
.dimension-scores > div {
  display: flex;
  justify-content: space-between;
  gap: 14px;
}
.dimension-scores span:first-child {
  color: var(--body);
}
.dimension-scores .stars {
  display: inline-flex;
  gap: 2px;
}
.recommend-pct {
  grid-column: 1 / -1;
  text-align: center;
  font-size: 0.92rem;
  font-weight: 600;
  color: var(--teal);
  padding-top: 8px;
  border-top: 1px dashed var(--border-col);
}

/* Individual review card */
.review-list {
  display: flex;
  flex-direction: column;
  gap: 18px;
  margin-bottom: 20px;
}
.review-card {
  padding: 18px 20px;
  background: var(--bg-alt);
  border: 1px solid var(--border-col);
  border-radius: 12px;
}
.review-card header {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: baseline;
  margin-bottom: 8px;
  font-family: 'Source Sans 3', sans-serif;
}
.review-card .reviewer {
  font-weight: 700;
  color: var(--headline);
}
.review-card .relationship {
  font-size: 0.82rem;
  color: var(--body-light);
  font-style: italic;
}
.review-card .date {
  font-size: 0.78rem;
  color: var(--body-light);
  margin-left: auto;
}
.review-card h3 {
  font-family: Georgia, serif;
  font-size: 1.05rem;
  margin: 8px 0 6px;
  color: var(--headline);
}
.review-card p[itemprop="reviewBody"] {
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.92rem;
  color: var(--body);
  line-height: 1.75;
  margin: 6px 0 10px;
  white-space: pre-wrap;
}
.review-card .review-stars {
  display: inline-flex;
  gap: 2px;
  margin-top: 2px;
}
.review-card .review-meta {
  font-size: 0.78rem;
  color: var(--body-light);
  font-family: 'Source Sans 3', sans-serif;
  margin-top: 8px;
}
.review-card .operator-response {
  margin-top: 12px;
  padding: 12px 14px;
  background: var(--teal-soft);
  border-left: 3px solid var(--teal);
  border-radius: 0 8px 8px 0;
  font-family: 'Source Sans 3', sans-serif;
}
.review-card .operator-response strong {
  display: block;
  color: var(--teal);
  font-size: 0.86rem;
  margin-bottom: 4px;
}
.review-card .operator-response p {
  margin: 0;
  font-size: 0.88rem;
  color: var(--body);
  line-height: 1.65;
}

/* Empty state on profile */
.hha-reviews-empty {
  text-align: center;
  padding: 22px;
  background: var(--bg-alt);
  border: 1px dashed var(--border-col);
  border-radius: 12px;
  color: var(--body-light);
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.92rem;
}

/* ─ Review submission form ─ */
.hha-review-fieldset {
  border: 1px solid var(--border-col);
  border-radius: 12px;
  padding: 18px 20px 8px;
  margin-bottom: 18px;
}
.hha-review-fieldset legend {
  font-family: Georgia, serif;
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--headline);
  padding: 0 8px;
}
.hha-review-fieldset-hint {
  font-size: 0.82rem;
  color: var(--body-light);
  font-family: 'Source Sans 3', sans-serif;
  margin: 0 0 10px;
}
.hha-review-rating-row {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 14px 18px;
  align-items: start;
  padding: 14px 0;
  border-bottom: 1px solid var(--border-col);
}
.hha-review-rating-row:last-child {
  border-bottom: none;
}
.hha-review-rating-label {
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--headline);
}
.hha-review-rating-hint {
  display: block;
  margin-top: 2px;
  font-size: 0.78rem;
  color: var(--body-light);
  font-weight: 400;
  font-style: italic;
}
.hha-review-stars {
  display: inline-flex;
  gap: 4px;
}
.hha-review-star {
  background: none;
  border: none;
  font-size: 1.8rem;
  line-height: 1;
  color: #d1d5db;
  cursor: pointer;
  padding: 0 2px;
  transition: color 0.15s ease, transform 0.1s ease;
}
.hha-review-star:hover,
.hha-review-star.is-hover {
  color: #f59e0b;
  transform: scale(1.1);
}
.hha-review-star.is-selected {
  color: #f59e0b;
}
.hha-review-recommend-row {
  grid-template-columns: 1fr;
}
.hha-review-recommend {
  display: flex;
  gap: 20px;
  margin-top: 6px;
  font-family: 'Source Sans 3', sans-serif;
}
.hha-review-recommend-option {
  display: inline-flex;
  gap: 6px;
  align-items: center;
  cursor: pointer;
}
.hha-review-label {
  display: block;
  margin: 12px 0 6px;
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--headline);
}
.hha-review-optional {
  color: var(--body-light);
  font-weight: 400;
  font-size: 0.82rem;
}
.hha-review-required {
  color: var(--coral);
  font-weight: 400;
  font-size: 0.82rem;
}
.hha-review-input {
  display: block;
  width: 100%;
  padding: 10px 12px;
  border: 1px solid var(--border-col);
  border-radius: 8px;
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.95rem;
  color: var(--body);
  background: #fff;
  box-sizing: border-box;
}
.hha-review-input:focus {
  outline: none;
  border-color: var(--teal);
  box-shadow: 0 0 0 3px rgba(42, 123, 136, 0.15);
}
.hha-review-textarea {
  min-height: 140px;
  resize: vertical;
  line-height: 1.55;
}
.hha-review-char-counter {
  font-size: 0.78rem;
  color: var(--body-light);
  font-family: 'Source Sans 3', sans-serif;
  margin-top: 4px;
  text-align: right;
}
.hha-review-char-low {
  color: var(--coral);
  font-weight: 600;
}
.hha-review-row-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
.hha-review-checkbox {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.9rem;
  color: var(--body);
  margin: 18px 0;
}
.hha-review-checkbox input {
  margin-top: 3px;
}
.hha-review-submit-row {
  display: flex;
  gap: 16px;
  align-items: center;
  margin-top: 14px;
}
.hha-review-submit {
  padding: 14px 28px;
  font-size: 1rem;
}
.hha-review-cancel {
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.9rem;
  color: var(--body-light);
  text-decoration: none;
}
.hha-review-cancel:hover {
  color: var(--teal);
}
.hha-review-status {
  margin-top: 14px;
  padding: 0;
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.92rem;
}
.hha-review-status--error {
  padding: 10px 14px;
  background: rgba(225, 72, 64, 0.08);
  border-left: 3px solid var(--coral);
  color: var(--coral);
  border-radius: 0 6px 6px 0;
}
.hha-review-status--success {
  padding: 10px 14px;
  background: var(--teal-soft);
  border-left: 3px solid var(--teal);
  color: var(--teal);
  border-radius: 0 6px 6px 0;
}
.hha-review-success {
  padding: 24px;
  text-align: center;
}

/* ─ Hub page review badge ─ */
.hh-card-review-row {
  display: flex;
  gap: 8px;
  align-items: center;
  margin-top: 4px;
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.78rem;
  color: var(--body-light);
}
.hh-card-review-row .hh-review-avg {
  color: var(--teal);
  font-weight: 700;
}
.hh-card-review-row .hh-review-count {
  color: var(--body-light);
}

@media (max-width: 640px) {
  .review-aggregate {
    grid-template-columns: 1fr;
  }
  .overall-score {
    padding-right: 0;
    padding-bottom: 12px;
    border-right: none;
    border-bottom: 1px solid var(--border-col);
  }
  .hha-review-rating-row {
    grid-template-columns: 1fr;
  }
  .hha-review-row-2 {
    grid-template-columns: 1fr;
  }
  .hha-review-submit-row {
    flex-direction: column;
    align-items: stretch;
  }
}
/* END Session 09 — HHA-Native Review System */

/* ═══════════════════════════════════════════════════════════════
   Session 10 — Caregiver Safety & Credentialing Disclosure (v=69)
   ═══════════════════════════════════════════════════════════════ */

.safety-disclosure-panel {
  position: relative;
  border-left: 4px solid var(--border-col);
}
.safety-disclosure-panel.safety-peace_of_mind_verified {
  border-left-color: #16A34A;
  background: linear-gradient(180deg, #F0FAF3 0%, #FFFFFF 70%);
}
.safety-disclosure-panel.safety-partial {
  border-left-color: #F59E0B;
  background: linear-gradient(180deg, #FFFBEB 0%, #FFFFFF 70%);
}

.safety-badge-header {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  margin: -20px -20px 16px;
  background: linear-gradient(90deg, #DCFCE7 0%, transparent 100%);
  border-radius: 12px 12px 0 0;
  flex-wrap: wrap;
}
.safety-badge-header--partial {
  background: linear-gradient(90deg, #FEF3C7 0%, transparent 100%);
}
.safety-badge-header .badge-shield {
  font-size: 1.8rem;
  line-height: 1;
  flex-shrink: 0;
}
.safety-badge-title {
  display: block;
  font-family: 'Source Sans 3', sans-serif;
  font-size: 1rem;
  font-weight: 700;
  color: #15803D;
}
.safety-badge-header--partial .safety-badge-title {
  color: #92400E;
}
.safety-badge-sub {
  font-size: 0.8rem;
  color: var(--body-light);
  font-family: 'Source Sans 3', sans-serif;
  margin: 2px 0 0;
}
.safety-badge-learn {
  margin-left: auto;
  font-size: 0.82rem;
  color: var(--teal);
  font-family: 'Source Sans 3', sans-serif;
  text-decoration: none;
  white-space: nowrap;
}
.safety-badge-learn:hover {
  text-decoration: underline;
}

.safety-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px 32px;
  margin-top: 8px;
}
.safety-section h3 {
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--teal);
  margin: 0 0 10px;
}
.safety-section ul {
  list-style: none;
  padding: 0;
  margin: 0;
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.9rem;
  color: var(--body);
  line-height: 1.6;
}
.safety-section li {
  position: relative;
  padding: 4px 0 4px 24px;
}
.safety-section li::before {
  content: '';
  position: absolute;
  left: 2px;
  top: 9px;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: var(--border-col);
}
.safety-section li.check {
  color: var(--body);
}
.safety-section li.check::before {
  background: #16A34A;
  box-shadow: inset 0 0 0 1.5px #FFFFFF, 0 0 0 1px #16A34A;
}
.safety-section li.check::after {
  content: '\2713';
  position: absolute;
  left: 4px;
  top: 4px;
  font-size: 0.7rem;
  color: #FFFFFF;
  font-weight: 700;
}
.safety-section li.no {
  color: var(--body-light);
}
.safety-section li.no::before {
  background: #FEE2E2;
  box-shadow: inset 0 0 0 1.5px #FFFFFF, 0 0 0 1px #F87171;
}
.safety-section li.partial {
  color: var(--body);
}
.safety-section li.partial::before {
  background: #FDE68A;
  box-shadow: inset 0 0 0 1.5px #FFFFFF, 0 0 0 1px #F59E0B;
}

.safety-sick-policy {
  font-size: 0.85rem;
  color: var(--body);
  font-family: 'Source Sans 3', sans-serif;
  line-height: 1.6;
  margin: 10px 0 0;
  padding: 10px 12px;
  background: var(--bg-alt);
  border-radius: 8px;
}

.safety-attestation {
  font-size: 0.78rem;
  color: var(--body-light);
  font-family: 'Source Sans 3', sans-serif;
  line-height: 1.55;
  margin: 22px 0 0;
  padding-top: 14px;
  border-top: 1px dashed var(--border-col);
}

.safety-disclosure-empty {
  border-left: 4px solid var(--teal);
  background: var(--bg-alt);
}

/* Hub card shield */
.safety-shield {
  display: inline-block;
  color: #16A34A;
  font-size: 0.95em;
  line-height: 1;
  vertical-align: -1px;
}
.card--safety-verified {
  border-color: #86EFAC;
  box-shadow: 0 0 0 1px #86EFAC, var(--card-shadow);
}
.safety-verified-ribbon {
  position: absolute;
  top: 10px;
  right: 10px;
  background: #16A34A;
  color: #FFFFFF;
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.64rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 4px 8px;
  border-radius: 999px;
  box-shadow: 0 2px 6px rgba(22, 163, 74, 0.25);
  z-index: 2;
}

/* ----- Disclosure form (/hha/safety-disclosure/) ----- */
.safety-form-wrap { max-width: 820px; margin: 0 auto; }

.safety-form-progress {
  margin-top: 16px;
}
.safety-form-progress__bar {
  width: 100%;
  height: 8px;
  background: var(--border-col);
  border-radius: 999px;
  overflow: hidden;
}
.safety-form-progress__fill {
  height: 100%;
  background: linear-gradient(90deg, #2A7B88 0%, #16A34A 100%);
  transition: width 0.35s ease;
}
.safety-form-progress__text {
  font-size: 0.82rem;
  color: var(--body-light);
  font-family: 'Source Sans 3', sans-serif;
  margin: 8px 0 0;
}

.safety-form .safety-step {
  border: 0;
  padding: 0;
  margin: 12px 0 8px;
}
.safety-step__legend {
  font-family: 'Lora', Georgia, serif;
  font-size: 1.2rem;
  color: var(--headline);
  margin-bottom: 4px;
  padding: 0;
}
.safety-step__hint {
  font-size: 0.88rem;
  color: var(--body-light);
  font-family: 'Source Sans 3', sans-serif;
  margin: 0 0 14px;
  line-height: 1.55;
}

.safety-field {
  display: block;
  margin: 12px 0;
}
.safety-field__label {
  display: block;
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--headline);
  font-family: 'Source Sans 3', sans-serif;
  margin-bottom: 6px;
}
.safety-field__input,
.safety-field__select {
  width: 100%;
  padding: 10px 12px;
  border: 1px solid var(--border-col);
  border-radius: 8px;
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.92rem;
  box-sizing: border-box;
  background: #FFFFFF;
}
.safety-field__input:focus,
.safety-field__select:focus {
  outline: none;
  border-color: var(--teal);
  box-shadow: 0 0 0 3px rgba(42, 123, 136, 0.15);
}
.safety-field textarea.safety-field__input {
  min-height: 70px;
  resize: vertical;
}

.safety-field-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px 18px;
  margin: 8px 0 12px;
}
.safety-check-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 4px 18px;
  margin: 6px 0 14px;
}
.safety-check {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.9rem;
  color: var(--body);
  padding: 6px 0;
  cursor: pointer;
}
.safety-check input[type="checkbox"] {
  width: 16px;
  height: 16px;
  accent-color: var(--teal);
  flex-shrink: 0;
}

.safety-final-note {
  margin-top: 16px;
  padding: 14px 16px;
  background: var(--bg-alt);
  border-radius: 10px;
  border-left: 3px solid var(--teal);
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.9rem;
  color: var(--body);
  line-height: 1.6;
}

.safety-nav {
  display: flex;
  gap: 10px;
  margin-top: 22px;
  flex-wrap: wrap;
  align-items: center;
}
.safety-nav .btn { min-width: 140px; }
.safety-nav .btn--ghost {
  background: transparent;
  color: var(--teal);
  border: 1px solid var(--teal);
}
.safety-nav .btn--ghost:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}
.safety-status {
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.9rem;
  margin-top: 14px;
  min-height: 1.4em;
}

@media (max-width: 640px) {
  .safety-grid,
  .safety-field-row,
  .safety-check-grid {
    grid-template-columns: 1fr;
  }
  .safety-badge-learn {
    margin-left: 0;
  }
}
/* END Session 10 — Caregiver Safety & Credentialing Disclosure */

/* ═══════════════════════════════════════════════════════════════ */
/* Session 11 — Caregiver Recruiting Booster                       */
/* ═══════════════════════════════════════════════════════════════ */

/* ── Hiring Now ribbon on hub cards ── */
.hh-hiring-ribbon {
  position: absolute;
  top: 10px;
  left: 10px;
  background: #10B981;
  color: #fff;
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.68rem;
  font-weight: 700;
  padding: 3px 9px;
  border-radius: 999px;
  letter-spacing: 0.02em;
  box-shadow: 0 1px 4px rgba(16, 185, 129, 0.25);
  z-index: 2;
  text-transform: uppercase;
}
.hh-featured-employer {
  position: absolute;
  top: 10px;
  right: 10px;
  background: #FEF3C7;
  color: #92400E;
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.66rem;
  font-weight: 700;
  padding: 3px 9px;
  border-radius: 999px;
  border: 1px solid #F59E0B;
  z-index: 2;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}
.pill-wage {
  background: #ECFDF5;
  color: #065F46;
  border: 1px solid #A7F3D0;
  font-size: 0.68rem;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

/* ── Hub filter row for Hiring Now ── */
.hh-hub-filter--hiring {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px;
}
.hh-hub-filter__cta {
  margin-left: auto;
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.85rem;
  color: var(--teal);
  text-decoration: none;
  font-weight: 600;
}
.hh-hub-filter__cta:hover { text-decoration: underline; }

/* ── Profile: Careers panel with Hiring badge + wage module ── */
.hha-careers-panel {
  background: var(--surface);
  border: 1px solid var(--border-col);
  border-radius: 14px;
  padding: 24px;
  margin-top: 18px;
}
.hha-hiring-header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 8px;
}
.hiring-now-badge {
  background: #10B981;
  color: #fff;
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.72rem;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 999px;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}
.hha-wage-panel {
  background: linear-gradient(135deg, #ECFDF5, #D1FAE5);
  border: 1px solid #A7F3D0;
  border-radius: 12px;
  padding: 16px 18px;
  margin: 14px 0 18px;
}
.hha-wage-panel__label {
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #065F46;
  font-weight: 600;
}
.hha-wage-panel__value {
  font-family: 'Lora', Georgia, serif;
  font-size: 1.6rem;
  color: #064E3B;
  font-weight: 700;
  margin-top: 4px;
}
.hha-wage-panel__unit {
  font-size: 0.95rem;
  font-weight: 500;
  color: #047857;
  margin-left: 4px;
}
.hha-wage-panel__note {
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.8rem;
  color: #047857;
  margin-top: 6px;
}
.hha-careers-actions {
  margin-top: 14px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px;
}
.hha-careers-actions .link-arrow {
  font-size: 0.88rem;
  color: var(--teal);
  font-family: 'Source Sans 3', sans-serif;
  font-weight: 600;
  text-decoration: none;
}
.hha-careers-actions .link-arrow:hover { text-decoration: underline; }
.hha-apply-cta { font-size: 0.88rem; padding: 10px 18px; }

/* ── Caregiver Insights (Interview Reviews) ── */
.hha-caregiver-insights {
  margin-top: 28px;
  padding-top: 24px;
  border-top: 1px solid var(--border-col);
}
.hha-caregiver-insights__lede {
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.92rem;
  color: var(--body);
  line-height: 1.7;
  margin-bottom: 18px;
}
.hha-caregiver-reviews {
  display: grid;
  gap: 14px;
}
.hha-caregiver-review {
  background: var(--bg-alt);
  border: 1px solid var(--border-col);
  border-radius: 10px;
  padding: 16px 18px;
}
.hha-caregiver-review__head {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 8px;
}
.hha-caregiver-review__stars {
  color: #F59E0B;
  letter-spacing: 1px;
  font-size: 1rem;
}
.hha-caregiver-review__name {
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.85rem;
  color: var(--headline);
  font-weight: 600;
}
.hha-caregiver-review__role {
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.82rem;
  color: var(--body-light);
}
.hha-caregiver-review__section {
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.88rem;
  color: var(--body);
  line-height: 1.6;
  margin: 6px 0;
}
.hha-caregiver-review__meta {
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.78rem;
  color: var(--body-light);
  margin-top: 8px;
}
.hha-caregiver-insights__disclaimer {
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.78rem;
  color: var(--body-light);
  line-height: 1.6;
  margin-top: 14px;
}

/* ── HHA Job Matcher quiz ── */
.matcher-chip-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 10px;
  margin-bottom: 18px;
}
.matcher-chip-grid--compact {
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
}
.matcher-chip {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 14px;
  background: var(--surface);
  border: 1px solid var(--border-col);
  border-radius: 10px;
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.9rem;
  color: var(--body);
  cursor: pointer;
  text-align: left;
  transition: all 0.15s ease;
}
.matcher-chip:hover {
  border-color: var(--teal);
  background: var(--bg-alt);
}
.matcher-chip.is-selected {
  border-color: var(--teal);
  background: var(--teal-soft);
  color: var(--headline);
  font-weight: 600;
}
.matcher-chip__icon { font-size: 1.1rem; }
.matcher-chip__label { flex: 1; }

.matcher-toggles {
  display: grid;
  gap: 8px;
  margin-bottom: 18px;
}
.matcher-toggle {
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.92rem;
  color: var(--body);
  cursor: pointer;
}
.matcher-nav {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin-top: 18px;
  flex-wrap: wrap;
}
.btn--ghost {
  background: transparent;
  color: var(--body-light);
  border: 1px solid var(--border-col);
  font-family: 'Source Sans 3', sans-serif;
  padding: 10px 18px;
  border-radius: 8px;
  cursor: pointer;
  font-weight: 600;
  font-size: 0.9rem;
}
.btn--ghost:hover { border-color: var(--teal); color: var(--teal); }

.matcher-results ol.matcher-result-list { list-style: none; padding: 0; margin: 0; }
.matcher-result-card {
  display: flex;
  gap: 14px;
  padding: 18px;
  border: 1px solid var(--border-col);
  border-radius: 12px;
  margin-bottom: 12px;
  background: var(--surface);
}
.matcher-result-card__rank {
  font-family: 'Lora', Georgia, serif;
  font-size: 1.5rem;
  color: var(--teal);
  font-weight: 700;
  min-width: 46px;
}
.matcher-result-card__body { flex: 1; }
.matcher-result-card__body h3 {
  font-size: 1.05rem;
  margin: 0 0 4px 0;
}
.matcher-result-card__body h3 a {
  color: var(--headline);
  text-decoration: none;
}
.matcher-result-card__body h3 a:hover { color: var(--teal); }
.matcher-result-card__meta,
.matcher-result-card__sub {
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.85rem;
  color: var(--body-light);
  margin: 2px 0;
}
.matcher-result-card__score {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 10px;
}
.matcher-score-bar {
  flex: 1;
  height: 8px;
  background: var(--bg-alt);
  border-radius: 4px;
  overflow: hidden;
}
.matcher-score-bar span {
  display: block;
  height: 100%;
  background: linear-gradient(90deg, #10B981, var(--teal));
  border-radius: 4px;
}
.matcher-score-pct {
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--teal);
  min-width: 60px;
}
.matcher-result-card__ctas {
  margin-top: 8px;
  font-size: 0.85rem;
  font-family: 'Source Sans 3', sans-serif;
}

/* ── Direct Apply form ── */
.hha-apply-form fieldset {
  border: 1px solid var(--border-col);
  border-radius: 12px;
  padding: 18px;
  margin-bottom: 18px;
}
.hha-apply-form legend {
  padding: 0 8px;
  font-family: 'Source Sans 3', sans-serif;
  color: var(--teal);
}
.hha-apply-form .form-row {
  display: block;
  margin-bottom: 14px;
  font-family: 'Source Sans 3', sans-serif;
}
.hha-apply-form .form-row > span {
  display: block;
  font-size: 0.85rem;
  color: var(--headline);
  font-weight: 600;
  margin-bottom: 6px;
}
.hha-apply-form input[type="text"],
.hha-apply-form input[type="email"],
.hha-apply-form input[type="tel"],
.hha-apply-form input[type="number"],
.hha-apply-form select,
.hha-apply-form textarea {
  width: 100%;
  padding: 10px 12px;
  border: 1px solid var(--border-col);
  border-radius: 8px;
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.95rem;
  background: var(--surface);
  color: var(--headline);
  box-sizing: border-box;
}
.hha-apply-form textarea { resize: vertical; min-height: 90px; }
.form-row--checks {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
}
.form-row--checks label {
  font-size: 0.88rem;
  color: var(--body);
}
.hha-apply-form__honeypot {
  position: absolute;
  left: -9999px;
  top: -9999px;
}
.hha-apply-form__submit { margin-top: 12px; }
.form-row__privacy {
  font-size: 0.78rem;
  color: var(--body-light);
  margin-top: 8px;
}
.hha-apply-form__status {
  margin-top: 18px;
  padding: 12px 14px;
  border-radius: 8px;
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.9rem;
  display: none;
}
.hha-apply-form__status.is-success {
  display: block;
  background: #ECFDF5;
  color: #065F46;
  border: 1px solid #A7F3D0;
}
.hha-apply-form__status.is-error {
  display: block;
  background: #FEF2F2;
  color: #991B1B;
  border: 1px solid #FCA5A5;
}

@media (max-width: 640px) {
  .matcher-result-card { flex-direction: column; }
  .matcher-result-card__rank { min-width: auto; }
  .hha-careers-actions { flex-direction: column; align-items: flex-start; }
}
/* END Session 11 — Caregiver Recruiting Booster */

/* ─────────────────────────────────────────────────────────────
   Session 12 — Hospital Discharge Planner Channel (v=71)
   ───────────────────────────────────────────────────────────── */

/* Profile-level panel */
.discharge-planner-panel {
  border-left: 4px solid var(--teal);
}
.discharge-planner-panel .intake-stats {
  display: grid;
  grid-template-columns: max-content 1fr;
  gap: 6px 16px;
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.92rem;
  margin: 0 0 14px;
}
.discharge-planner-panel .intake-stats dt {
  color: var(--body-light);
  font-weight: 500;
}
.discharge-planner-panel .intake-stats dd {
  margin: 0;
  color: var(--headline);
  font-weight: 600;
}
.discharge-planner-panel .intake-stats a {
  color: var(--teal);
  text-decoration: none;
}
.discharge-planner-panel .discharge-panel-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 8px;
}

.discharge-badge-header {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  margin: -8px -8px 16px;
  background: linear-gradient(135deg, rgba(42,123,136,0.1), rgba(42,123,136,0.03));
  border: 1px solid rgba(42,123,136,0.25);
  border-radius: 10px;
  flex-wrap: wrap;
}
.discharge-badge-header .dp-bolt {
  font-size: 1.6rem;
  line-height: 1;
}
.discharge-badge-header .discharge-badge-title {
  font-family: Georgia, serif;
  color: var(--teal);
  font-size: 1.05rem;
  display: block;
  font-weight: 700;
}
.discharge-badge-header .discharge-badge-sub {
  font-size: 0.82rem;
  color: var(--body-light);
  font-family: 'Source Sans 3', sans-serif;
  margin: 2px 0 0;
}
.discharge-badge-header .discharge-badge-learn {
  margin-left: auto;
  font-size: 0.82rem;
  color: var(--teal);
  font-family: 'Source Sans 3', sans-serif;
  white-space: nowrap;
  text-decoration: none;
}

/* Hub CTA banner */
.dp-cta-banner-wrap {
  padding: 18px 0 0;
}
.dp-cta-banner {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 14px 20px;
  background: var(--teal-soft, #ECF6F8);
  border: 1px solid rgba(42,123,136,0.25);
  border-left: 4px solid var(--teal);
  border-radius: 12px;
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.95rem;
  flex-wrap: wrap;
}
.dp-cta-banner .dp-cta-copy {
  flex: 1 1 320px;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.dp-cta-banner strong {
  color: var(--headline);
  font-weight: 700;
}
.dp-cta-banner span {
  color: var(--body);
}
.dp-cta-banner .dp-cta-link {
  white-space: nowrap;
}
.dp-cta-banner .dp-cta-dismiss {
  background: none;
  border: none;
  color: var(--body-light);
  font-size: 1.3rem;
  line-height: 1;
  cursor: pointer;
  padding: 4px 8px;
}
.dp-cta-banner .dp-cta-dismiss:hover { color: var(--headline); }

/* ── Discharge planner landing page ── */
.dp-hero-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 16px;
}
.dp-hero-chip {
  background: var(--surface);
  border: 1px solid var(--border-col);
  border-radius: 999px;
  padding: 6px 12px;
  font-size: 0.82rem;
  font-family: 'Source Sans 3', sans-serif;
  color: var(--headline);
  font-weight: 600;
}

.dp-search-layout {
  display: grid;
  grid-template-columns: 300px 1fr;
  gap: 32px;
  align-items: start;
}
@media (max-width: 880px) {
  .dp-search-layout { grid-template-columns: 1fr; }
}

.dp-filter-panel {
  background: var(--surface);
  border: 1px solid var(--border-col);
  border-radius: 12px;
  padding: 20px 18px;
  position: sticky;
  top: 88px;
}
.dp-filter-panel form { display: flex; flex-direction: column; gap: 18px; }
.dp-filter-group label {
  display: block;
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.82rem;
  color: var(--body-light);
  font-weight: 600;
  margin-bottom: 6px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.dp-filter-group select,
.dp-filter-group input[type="text"],
.dp-filter-group input[type="tel"],
.dp-filter-group input[type="email"],
.dp-filter-group input[type="number"] {
  width: 100%;
  padding: 9px 12px;
  border: 1px solid var(--border-col);
  border-radius: 8px;
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.95rem;
  background: #fff;
  color: var(--headline);
}
.dp-radio-stack,
.dp-checkbox-stack {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.dp-radio-stack label,
.dp-checkbox-stack label {
  font-size: 0.88rem;
  color: var(--body);
  text-transform: none;
  letter-spacing: 0;
  font-weight: 500;
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 0;
}
.dp-filter-checks {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding-top: 4px;
  border-top: 1px dashed var(--border-col);
  margin-top: 4px;
}
.dp-filter-checks label {
  font-size: 0.88rem;
  color: var(--body);
  display: flex;
  align-items: center;
  gap: 8px;
  font-weight: 500;
  text-transform: none;
  letter-spacing: 0;
}

.dp-results-panel {
  min-width: 0;
}
.dp-results-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 16px;
  flex-wrap: wrap;
}
.dp-results-header #dp-result-count {
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.95rem;
  color: var(--body-light);
}
.dp-results-header select {
  padding: 7px 12px;
  border: 1px solid var(--border-col);
  border-radius: 8px;
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.88rem;
  background: #fff;
}
.dp-results {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 16px;
}
.dp-results-empty {
  background: var(--bg-alt);
  border: 1px dashed var(--border-col);
  border-radius: 10px;
  padding: 32px 24px;
  text-align: center;
  font-family: 'Source Sans 3', sans-serif;
  color: var(--body-light);
  grid-column: 1 / -1;
}
.dp-overflow {
  grid-column: 1 / -1;
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.82rem;
  color: var(--body-light);
  text-align: center;
  padding-top: 6px;
}

.dp-card {
  background: var(--surface);
  border: 1px solid var(--border-col);
  border-radius: 12px;
  padding: 18px 18px 16px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  box-shadow: var(--card-shadow, 0 2px 6px rgba(0,0,0,0.04));
}
.dp-card--preferred {
  border-left: 4px solid var(--teal);
  background: linear-gradient(180deg, rgba(42,123,136,0.04), #fff 40%);
}
.dp-card-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 10px;
  flex-wrap: wrap;
}
.dp-card-name {
  font-size: 1.05rem;
  margin: 0 0 2px;
  color: var(--headline);
}
.dp-card-name a {
  color: inherit;
  text-decoration: none;
}
.dp-card-name a:hover { color: var(--teal); }
.dp-card-city {
  margin: 0;
  font-size: 0.82rem;
  color: var(--body-light);
  font-family: 'Source Sans 3', sans-serif;
}
.dp-card-badge {
  background: var(--teal);
  color: #fff;
  font-size: 0.72rem;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 999px;
  letter-spacing: 0.02em;
}
.dp-card-stats {
  display: grid;
  grid-template-columns: max-content 1fr;
  gap: 4px 14px;
  margin: 0;
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.88rem;
}
.dp-card-stats dt {
  color: var(--body-light);
  font-weight: 500;
}
.dp-card-stats dd {
  margin: 0;
  color: var(--headline);
  font-weight: 600;
}
.dp-card-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 4px;
}
.dp-card-actions .btn {
  padding: 8px 14px;
  font-size: 0.85rem;
}

/* How it works */
.dp-howitworks {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 18px;
}
.dp-howitworks li {
  background: var(--bg-alt);
  border: 1px solid var(--border-col);
  border-radius: 10px;
  padding: 18px;
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.92rem;
  line-height: 1.6;
  color: var(--body);
  position: relative;
}
.dp-howitworks strong { color: var(--headline); display: block; margin-bottom: 4px; }
.dp-step-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--teal);
  color: #fff;
  border-radius: 50%;
  width: 28px;
  height: 28px;
  font-weight: 700;
  margin-bottom: 8px;
}

/* Why + F2F layout */
.dp-why-layout {
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: 32px;
  align-items: start;
}
@media (max-width: 880px) {
  .dp-why-layout { grid-template-columns: 1fr; }
}
.dp-why-list {
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.95rem;
  line-height: 1.7;
  color: var(--body);
  padding-left: 18px;
}
.dp-why-list li { margin-bottom: 10px; }
.dp-why-list strong { color: var(--headline); }

.dp-f2f-card {
  background: var(--bg-alt);
  border: 1px solid var(--border-col);
  border-radius: 12px;
  padding: 22px 20px;
  position: sticky;
  top: 88px;
}
.dp-f2f-list {
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.88rem;
  line-height: 1.7;
  padding-left: 18px;
  color: var(--body);
}
.dp-f2f-note {
  font-size: 0.72rem;
  color: var(--body-light);
  font-family: 'Source Sans 3', sans-serif;
  margin: 10px 0 0;
  line-height: 1.5;
}
.dp-f2f-note a { color: var(--teal); }

/* Referral form modal */
.dp-modal {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: none;
}
.dp-modal.is-open { display: block; }
.dp-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0,40,70,0.55);
  animation: dpFadeIn 0.15s ease-out;
}
.dp-modal__panel {
  position: relative;
  max-width: 680px;
  margin: 48px auto;
  background: #fff;
  border-radius: 14px;
  box-shadow: 0 24px 48px rgba(0,0,0,0.25);
  padding: 28px 28px 24px;
  max-height: calc(100vh - 96px);
  overflow-y: auto;
}
.dp-modal__close {
  position: absolute;
  top: 12px; right: 16px;
  background: none;
  border: none;
  font-size: 1.6rem;
  line-height: 1;
  cursor: pointer;
  color: var(--body-light);
}
.dp-modal__close:hover { color: var(--headline); }
.dp-modal__header {
  margin-bottom: 16px;
  padding-right: 32px;
}
.dp-modal__subtitle {
  margin: 8px 0 0;
  font-size: 0.88rem;
  color: var(--body-light);
  font-family: 'Source Sans 3', sans-serif;
  line-height: 1.5;
}
.dp-modal__form { display: flex; flex-direction: column; gap: 14px; }
.dp-form-row label {
  display: block;
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--headline);
  margin-bottom: 4px;
}
.dp-form-row input[type="text"],
.dp-form-row input[type="email"],
.dp-form-row input[type="date"],
.dp-form-row input[type="tel"],
.dp-form-row input[type="number"],
.dp-form-row select,
.dp-form-row textarea {
  width: 100%;
  padding: 9px 12px;
  border: 1px solid var(--border-col);
  border-radius: 8px;
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.95rem;
  background: #fff;
  color: var(--headline);
  box-sizing: border-box;
}
.dp-form-row textarea { resize: vertical; min-height: 80px; }
.dp-form-help {
  margin: 4px 0 0;
  font-size: 0.76rem;
  color: var(--body-light);
  font-family: 'Source Sans 3', sans-serif;
  line-height: 1.5;
}
.dp-form-grid-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
@media (max-width: 560px) {
  .dp-form-grid-2 { grid-template-columns: 1fr; }
}
.dp-attest {
  background: var(--bg-alt);
  border: 1px solid var(--border-col);
  border-left: 4px solid var(--teal);
  padding: 12px 14px;
  border-radius: 8px;
}
.dp-attest label {
  font-size: 0.85rem;
  font-weight: 500;
  color: var(--body);
  display: flex;
  gap: 10px;
  align-items: flex-start;
  line-height: 1.5;
}
.dp-form-actions {
  display: flex;
  gap: 10px;
  justify-content: flex-end;
  margin-top: 6px;
}
.dp-form-status {
  margin: 4px 0 0;
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.88rem;
  min-height: 1.2em;
}
body.dp-modal-open { overflow: hidden; }
@keyframes dpFadeIn { from { opacity: 0; } to { opacity: 1; } }

/* END Session 12 — Hospital Discharge Planner Channel */

/* ═══════════════════════════════════════════════════════════
   Session 13 — Family Decision Tools
   ═══════════════════════════════════════════════════════════ */

/* ── Eligibility Quiz ── */
.eq-quiz { position: relative; }
.eq-progress { height: 4px; background: var(--border-col); border-radius: 2px; margin-bottom: 8px; }
.eq-progress__bar { height: 100%; background: var(--teal); border-radius: 2px; transition: width 0.3s ease; }
.eq-step-label { font-size: 0.78rem; color: var(--body-light); font-family: 'Source Sans 3', sans-serif; margin-bottom: 24px; }
.eq-options { display: flex; flex-direction: column; gap: 10px; }
.eq-option {
  display: block; width: 100%; text-align: left; padding: 16px 20px;
  background: var(--surface); border: 2px solid var(--border-col); border-radius: 12px;
  cursor: pointer; transition: border-color 0.15s, background 0.15s;
  font-family: 'Source Sans 3', sans-serif; font-size: 0.92rem; color: var(--body);
  line-height: 1.5;
}
.eq-option:hover { border-color: var(--teal); background: var(--teal-soft, rgba(42,123,136,0.06)); }
.eq-option.is-selected { border-color: var(--teal); background: var(--teal-soft, rgba(42,123,136,0.08)); }
.eq-option strong { display: block; color: var(--headline); font-weight: 600; margin-bottom: 2px; }
.eq-option span { font-size: 0.82rem; color: var(--body-light); }
.eq-zip-input {
  display: block; width: 100%; padding: 12px 16px; border: 2px solid var(--border-col);
  border-radius: 10px; font-size: 1rem; font-family: 'Source Sans 3', sans-serif;
  background: var(--surface); color: var(--body); box-sizing: border-box;
}
.eq-zip-input:focus { border-color: var(--teal); outline: none; }
.eq-result { margin-top: 16px; }
.eq-result__icon { font-size: 2.5rem; margin-bottom: 12px; }
.eq-result__title { font-size: 1.3rem; margin-bottom: 12px; }
.eq-result__body {
  font-size: 0.95rem; color: var(--body); font-family: 'Source Sans 3', sans-serif;
  line-height: 1.7; margin-bottom: 20px;
}
.eq-result__actions { margin-bottom: 24px; }
.eq-email-capture {
  background: var(--bg-alt); border: 1px solid var(--border-col); border-radius: 12px;
  padding: 20px; margin-top: 16px;
}
.eq-email-status {
  font-size: 0.82rem; color: var(--coral); font-family: 'Source Sans 3', sans-serif;
  margin-top: 8px; min-height: 1.2em;
}

/* ── Getting Started Timeline ── */
.gs-timeline { position: relative; padding-left: 48px; }
.gs-timeline::before {
  content: ''; position: absolute; left: 18px; top: 8px; bottom: 8px;
  width: 2px; background: var(--border-col);
}
.gs-step { position: relative; margin-bottom: 36px; }
.gs-step__marker { position: absolute; left: -48px; top: 0; text-align: center; }
.gs-step__day {
  display: block; font-size: 0.72rem; font-weight: 700; color: var(--teal);
  font-family: 'Source Sans 3', sans-serif; text-transform: uppercase;
  letter-spacing: 0.5px; margin-bottom: 4px; white-space: nowrap;
}
.gs-step__dot {
  display: block; width: 12px; height: 12px; background: var(--teal);
  border: 3px solid var(--surface); border-radius: 50%; margin: 0 auto;
  box-shadow: 0 0 0 2px var(--teal);
}
.gs-step__content { padding-top: 0; }
.gs-tip {
  background: var(--teal-soft, rgba(42,123,136,0.06)); border-left: 3px solid var(--teal);
  padding: 12px 16px; border-radius: 0 8px 8px 0; font-size: 0.85rem;
  font-family: 'Source Sans 3', sans-serif; color: var(--body); line-height: 1.6;
}
.gs-tip strong { color: var(--headline); }

/* ── Decision Center Hub ── */
.grid-2-dc {
  display: grid; grid-template-columns: 1fr 1fr; gap: 20px;
}
@media (max-width: 680px) { .grid-2-dc { grid-template-columns: 1fr; } }
.dc-tool-card {
  display: flex; gap: 16px; align-items: flex-start; padding: 24px;
  transition: box-shadow 0.2s, border-color 0.2s;
}
.dc-tool-card:hover { box-shadow: var(--card-hover); border-color: var(--teal); }
.dc-tool-card__icon { font-size: 2rem; flex-shrink: 0; line-height: 1; }
.dc-tool-card__body { flex: 1; }

/* ── Compare Table ── */
.hha-compare-table__scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.hha-compare-table table {
  width: 100%; border-collapse: collapse; font-family: 'Source Sans 3', sans-serif;
  font-size: 0.88rem;
}
.hha-compare-table th, .hha-compare-table td {
  padding: 12px 14px; border-bottom: 1px solid var(--border-col);
  vertical-align: top; text-align: left;
}
.hha-compare-table th { background: var(--bg-alt); font-weight: 600; min-width: 160px; }
.hha-cmp-label { font-weight: 600; color: var(--body-light); font-size: 0.82rem; white-space: nowrap; min-width: 120px; }
.hha-cmp-agency { min-width: 180px; }
.hha-cmp-best { background: rgba(22, 163, 74, 0.08); }
.hha-cmp-remove { margin-top: 6px; }
.btn--xs { padding: 4px 10px; font-size: 0.72rem; }

/* ── Compare Empty State ── */
.hha-compare-empty { max-width: 520px; margin: 0 auto; }

/* ── Save Button (Heart) ── */
.hha-save-btn {
  background: none; border: none; cursor: pointer; padding: 4px 8px;
  font-size: 1.1rem; line-height: 1; color: var(--body-light);
  transition: color 0.15s; display: inline-flex; align-items: center; gap: 4px;
}
.hha-save-btn:hover { color: var(--coral); }
.hha-save-btn.is-saved { color: var(--coral); }
.hha-save-btn.is-saved .hha-save-heart { color: var(--coral); }
.hha-save-label { font-size: 0.72rem; font-family: 'Source Sans 3', sans-serif; }
/* On profile pages, restore btn styling */
.hha-profile-actions .hha-save-btn {
  border: 1px solid var(--border-col); border-radius: 8px; padding: 8px 14px;
  font-size: 0.88rem; background: var(--surface);
}
.hha-profile-actions .hha-save-btn:hover { border-color: var(--coral); }
.hha-profile-actions .hha-save-btn.is-saved { border-color: var(--coral); background: rgba(220,38,38,0.04); }

/* ── Compare Checkbox (Hub Cards) ── */
.hha-compare-cb-wrap {
  display: inline-flex; align-items: center; gap: 4px; cursor: pointer;
  font-size: 0.72rem; font-family: 'Source Sans 3', sans-serif; color: var(--body-light);
}
.hha-compare-cb { width: 14px; height: 14px; accent-color: var(--teal); cursor: pointer; }

/* ── Compare Button (Profile) ── */
.hha-compare-btn {
  font-size: 0.88rem; font-family: 'Source Sans 3', sans-serif;
}
.hha-compare-btn.is-active {
  background: var(--teal-soft, rgba(42,123,136,0.08)); border-color: var(--teal);
  color: var(--teal);
}

/* ── HHA Shortlist Floating Bar ── */
.hha-shortlist-bar {
  position: fixed; bottom: 0; left: 0; right: 0; z-index: 900;
  background: var(--surface); border-top: 2px solid var(--coral);
  box-shadow: 0 -2px 12px rgba(0,0,0,0.1); padding: 10px 20px;
  display: flex; align-items: center; gap: 12px; justify-content: center;
  font-family: 'Source Sans 3', sans-serif; font-size: 0.88rem;
}
.hha-shortlist-bar__btn {
  background: var(--coral); color: #fff; padding: 6px 16px; border-radius: 8px;
  font-weight: 600; text-decoration: none; font-size: 0.82rem;
}
.hha-shortlist-bar__clear {
  background: none; border: none; cursor: pointer; font-size: 1.2rem;
  color: var(--body-light); padding: 0 4px;
}

/* ── HHA Compare Floating Bar ── */
.hha-compare-bar {
  position: fixed; bottom: 48px; left: 0; right: 0; z-index: 899;
  background: var(--surface); border-top: 2px solid var(--teal);
  box-shadow: 0 -2px 12px rgba(0,0,0,0.1); padding: 10px 20px;
  display: flex; align-items: center; gap: 12px; justify-content: center;
  font-family: 'Source Sans 3', sans-serif; font-size: 0.88rem;
}
.hha-compare-bar__btn {
  background: var(--teal); color: #fff; padding: 6px 16px; border-radius: 8px;
  font-weight: 600; text-decoration: none; font-size: 0.82rem;
}
.hha-compare-bar__clear {
  background: none; border: none; cursor: pointer; font-size: 1.2rem;
  color: var(--body-light); padding: 0 4px;
}

/* ── Saved Agency Cards ── */
.hha-saved-card .card__body { display: flex; flex-direction: column; gap: 4px; }

/* ── Responsive: stack timeline on narrow screens ── */
@media (max-width: 560px) {
  .gs-timeline { padding-left: 32px; }
  .gs-timeline::before { left: 10px; }
  .gs-step__marker { left: -32px; }
  .gs-step__day { font-size: 0.65rem; }
  .hha-shortlist-bar, .hha-compare-bar { padding: 8px 12px; font-size: 0.82rem; }
  .hha-compare-bar { bottom: 44px; }
}

/* END Session 13 — Family Decision Tools */

/* ═══════ Session 14 — HHA AI Chat Panel ═══════ */

.hha-ai-panel {
  background: var(--surface);
  border: 1px solid var(--border-col);
  border-radius: 16px;
  padding: 28px 24px;
  border-top: 4px solid var(--teal);
  box-shadow: var(--card-shadow);
}
.hha-ai-panel--planner {
  border-top-color: #1e5f6d;
  max-width: 800px;
}
.hha-ai-hub-panel {
  background: var(--bg-alt);
  border: 1px solid var(--border-col);
  border-radius: 16px;
  padding: 28px 24px;
  max-width: 800px;
}
.hha-chat-planner-badge {
  display: inline-block;
  background: #1e5f6d;
  color: #fff;
  font-size: 0.65rem;
  font-family: 'Source Sans 3', sans-serif;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 2px 8px;
  border-radius: 4px;
  margin-left: 6px;
  vertical-align: middle;
}

@media (max-width: 640px) {
  .hha-ai-panel, .hha-ai-hub-panel { padding: 20px 16px; }
}

/* END Session 14 — HHA AI Chat Panel */

/* ── Session 17 — Medicaid Navigation Hub ── */

/* MCO Finder radio buttons */
.mco-radio-label {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 0.88rem;
  font-family: 'Source Sans 3', sans-serif;
  color: var(--body);
  cursor: pointer;
  padding: 6px 12px;
  border: 1px solid var(--border-col);
  border-radius: 8px;
  background: var(--bg);
  transition: border-color 0.15s, background 0.15s;
}
.mco-radio-label:hover {
  border-color: var(--teal);
}
.mco-radio-label input[type="radio"] {
  accent-color: var(--teal);
}
.mco-radio-label input[type="radio"]:checked + span,
.mco-radio-label:has(input:checked) {
  color: var(--headline);
  font-weight: 600;
}
.mco-radio-label:has(input:checked) {
  border-color: var(--teal);
  background: rgba(30, 95, 109, 0.06);
}

/* Quick-answer cards hover */
.medicaid-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 6px 20px rgba(0,0,0,0.08);
}

/* Medicaid nav CTA on hub */
.medicaid-nav-cta {
  transition: box-shadow 0.15s;
}
.medicaid-nav-cta:hover {
  box-shadow: 0 4px 16px rgba(30, 95, 109, 0.12);
}

/* Insurance help links on profile */
.insurance-help a {
  text-decoration: none;
  transition: opacity 0.15s;
}
.insurance-help a:hover {
  opacity: 0.8;
  text-decoration: underline;
}

/* Responsive — MCO Finder */
@media (max-width: 640px) {
  .medicaid-nav-cta {
    flex-direction: column;
    text-align: center;
  }
  #mco-program-options {
    flex-direction: column;
  }
  .mco-radio-label {
    width: 100%;
    justify-content: center;
  }
}

/* END Session 17 — Medicaid Navigation Hub */

/* ═══════════════════════════════════════════════════════════
   Session 19 — Physician Referral Network
   ═══════════════════════════════════════════════════════════ */

/* Physician Insights panel on profile */
.physician-panel {
  border-top: 1px solid var(--border-col);
  padding-top: 28px;
  margin-top: 28px;
}
.physician-badge-display {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #f0fdf4;
  border: 1px solid #86efac;
  border-radius: 8px;
  padding: 8px 16px;
  font-weight: 600;
  font-size: 0.92rem;
  color: #166534;
  margin-bottom: 16px;
}
.physician-badge-icon {
  font-size: 1.2rem;
}
.md-aggregate {
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin-bottom: 16px;
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.92rem;
  color: var(--body);
}
.md-aggregate .big-score {
  font-size: 2rem;
  font-weight: 700;
  color: var(--headline);
  font-family: 'Lora', Georgia, serif;
}
.md-review-quote {
  border-left: 3px solid var(--teal);
  padding: 12px 16px;
  margin: 12px 0;
  background: var(--bg-alt);
  border-radius: 0 8px 8px 0;
}
.md-review-quote p {
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.92rem;
  line-height: 1.7;
  color: var(--body);
  margin: 0 0 6px;
}
.md-review-quote footer {
  font-size: 0.82rem;
  color: var(--body-light);
  font-family: 'Source Sans 3', sans-serif;
}

/* For Physicians landing — value grid */
.physician-value-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 20px;
  margin-top: 8px;
}
.physician-value-card {
  background: var(--bg-alt);
  border: 1px solid var(--border-col);
  border-radius: 12px;
  padding: 20px;
}
.physician-value-card strong {
  display: block;
  font-size: 1rem;
  color: var(--headline);
  margin-bottom: 6px;
}
.physician-value-card p {
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.88rem;
  color: var(--body);
  line-height: 1.6;
  margin: 0;
}

/* Star input (MD review form) */
.star-input {
  display: flex;
  gap: 4px;
  align-items: center;
}
.star-btn {
  background: none;
  border: none;
  cursor: pointer;
  padding: 2px;
  line-height: 1;
}
.star-btn:hover svg,
.star-btn:focus svg {
  stroke: #F59E0B;
}

/* Form styling reused across physician forms */
.form-label {
  display: block;
  font-weight: 600;
  font-size: 0.88rem;
  color: var(--headline);
  margin-bottom: 6px;
  font-family: 'Source Sans 3', sans-serif;
}
.form-input {
  width: 100%;
  padding: 10px 14px;
  border: 1px solid var(--border-col);
  border-radius: 8px;
  font-size: 0.92rem;
  font-family: 'Source Sans 3', sans-serif;
  background: #fff;
  color: var(--body);
  transition: border-color 0.2s;
}
.form-input:focus {
  outline: none;
  border-color: var(--teal);
  box-shadow: 0 0 0 3px rgba(42, 123, 136, 0.12);
}

/* Hub card MD badge (physician-preferred icon) */
.hub-card .physician-md-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 0.75rem;
  color: #166534;
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
  border-radius: 6px;
  padding: 2px 8px;
  font-weight: 600;
}

/* Responsive */
@media (max-width: 640px) {
  .physician-value-grid {
    grid-template-columns: 1fr;
  }
}

/* END Session 19 — Physician Referral Network */

/* ---------------------------------------------------------------
   Session 22 � Trust Mechanics & Social Proof (v=77)
   --------------------------------------------------------------- */

/* Verified timestamp row */
.verified-timestamp {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 0.78rem;
  color: var(--body-light);
  font-family: 'Source Sans 3', sans-serif;
  margin-top: 6px;
  flex-wrap: wrap;
}
.verified-timestamp__icon {
  color: #16A34A;
  font-weight: 700;
}

/* Trust score breakdown block */
.trust-score-block {
  position: relative;
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  cursor: default;
  margin-left: 12px;
  vertical-align: top;
}
.trust-score-number {
  font-family: 'Playfair Display', serif;
  font-size: 1.8rem;
  font-weight: 700;
  color: var(--headline);
  line-height: 1;
}
.trust-score-label {
  font-size: 0.78rem;
  color: var(--body-light);
  font-family: 'Source Sans 3', sans-serif;
}
.trust-score-explainer-link {
  font-size: 0.75rem;
  color: var(--teal);
  font-family: 'Source Sans 3', sans-serif;
  text-decoration: none;
}
.trust-score-explainer-link:hover { text-decoration: underline; }
.trust-evidence-list {
  list-style: none;
  padding: 0;
  margin: 6px 0 0;
  font-size: 0.8rem;
  font-family: 'Source Sans 3', sans-serif;
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.trust-evidence-list li { display: flex; align-items: center; gap: 6px; }
.trust-evidence-list li.pass::before   { content: '+'; color: #16A34A; font-weight: 700; width: 14px; flex-shrink: 0; }
.trust-evidence-list li.check::before  { content: '+'; color: var(--teal); font-weight: 700; width: 14px; flex-shrink: 0; }
.trust-evidence-list li.neutral::before { content: '-'; color: var(--body-light); width: 14px; flex-shrink: 0; }
.trust-evidence-list li.pending::before { content: 'o'; color: var(--body-light); width: 14px; flex-shrink: 0; }

/* Response Rate panel */
.response-rate-panel { }
.response-rate-grid {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
  margin-top: 4px;
}
.response-rate-stat {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 120px;
}
.response-rate-value {
  font-family: 'Playfair Display', serif;
  font-size: 1.6rem;
  font-weight: 700;
  color: var(--teal);
  line-height: 1;
}
.response-rate-label {
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--headline);
  font-family: 'Source Sans 3', sans-serif;
}
.response-rate-note {
  font-size: 0.72rem;
  color: var(--body-light);
  font-family: 'Source Sans 3', sans-serif;
}

/* Video intro panel */
.video-intro-panel { }
.video-embed-container {
  position: relative;
  padding-bottom: 56.25%; /* 16:9 */
  height: 0;
  overflow: hidden;
  border-radius: 10px;
  background: #000;
  margin-top: 8px;
}
.video-embed-container iframe {
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 100%;
  border: 0;
  border-radius: 10px;
}

/* Team photos grid */
.team-photos-panel { }
.team-photo-grid {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  margin-top: 8px;
}
.team-member {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  text-align: center;
  max-width: 130px;
}
.team-member img {
  width: 80px;
  height: 80px;
  object-fit: cover;
  border-radius: 50%;
  border: 2px solid var(--border-col);
}
.team-member__name {
  font-size: 0.82rem;
  color: var(--headline);
  font-family: 'Source Sans 3', sans-serif;
  display: block;
}
.team-member__title {
  font-size: 0.72rem;
  color: var(--body-light);
  font-family: 'Source Sans 3', sans-serif;
  display: block;
  line-height: 1.4;
}

/* Founder block (sidebar) */
.founder-block {
  background: var(--surface);
  border: 1px solid var(--border-col);
  border-left: 4px solid var(--teal);
  border-radius: 12px;
  padding: 20px;
  display: flex;
  gap: 14px;
  align-items: flex-start;
}
.founder-photo {
  width: 56px;
  height: 56px;
  object-fit: cover;
  border-radius: 50%;
  flex-shrink: 0;
  border: 2px solid var(--border-col);
}
.founder-content { flex: 1; }
.founder-quote {
  font-size: 0.88rem;
  color: var(--body);
  font-family: 'Source Sans 3', sans-serif;
  line-height: 1.7;
  margin: 0 0 8px;
  font-style: italic;
}
.founder-footer {
  font-size: 0.78rem;
  color: var(--body-light);
  font-family: 'Source Sans 3', sans-serif;
}

/* Hub trust score pill */
.hh-trust-score-pill {
  background: linear-gradient(135deg, #fef9c3 0%, #fde68a 100%);
  color: #92400e;
  border: 1px solid #fbbf24;
  font-size: 0.68rem;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 20px;
  font-family: 'Source Sans 3', sans-serif;
  white-space: nowrap;
}

/* END Session 22 — Trust Mechanics & Social Proof */

/* ──────────────────────────────────────────────────────────────
   SESSION 23 — HHA Analytics Dashboard & Public Reports (v=78)
   ────────────────────────────────────────────────────────────── */

/* Insights Hub — Stat Cards */
.insights-stat-card {
  background: #f8fafb;
  border: 1px solid #e0e8ec;
  border-radius: 8px;
  padding: 1.25rem 1rem;
  text-align: center;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.insights-stat-card:hover {
  border-color: #2A7B88;
  box-shadow: 0 2px 8px rgba(42,123,136,.12);
}
.insights-stat-card__value {
  font-size: 1.6rem;
  font-weight: 700;
  color: #2A7B88;
  font-family: 'Lora', serif;
  line-height: 1.2;
  margin-bottom: 0.25rem;
}
.insights-stat-card__label {
  font-size: 0.8rem;
  color: #666;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  font-weight: 500;
}

/* Quarterly Report — Section Titles */
.report-section__title {
  font-family: 'Lora', serif;
  font-size: 1.35rem;
  color: #1a3c4d;
  margin-bottom: 1rem;
  padding-bottom: 0.5rem;
  border-bottom: 2px solid #e0e8ec;
}

/* Quarterly Report — Data Tables */
.report-table th {
  font-weight: 600;
  color: #1a3c4d;
}

/* Insights Report Card Hover */
.insights-report-card:hover {
  border-color: #2A7B88;
  box-shadow: 0 2px 8px rgba(42,123,136,.12);
}

/* Email Capture Form — Select Dark Mode Fix */
.insights-email-form select option {
  color: #333;
  background: #fff;
}

/* Dark mode overrides */
[data-theme="dark"] .insights-stat-card {
  background: #1a2332;
  border-color: #2a3a4a;
}
[data-theme="dark"] .insights-stat-card__value {
  color: #4cc9d8;
}
[data-theme="dark"] .insights-stat-card__label {
  color: #99aab5;
}
[data-theme="dark"] .report-section__title {
  color: #c8d6e5;
  border-bottom-color: #2a3a4a;
}
[data-theme="dark"] .insights-report-card {
  background: #1a2332;
  border-color: #2a3a4a;
  color: #c8d6e5;
}
[data-theme="dark"] .insights-methodology {
  background: #1a2332;
  border-color: #2a3a4a;
}

/* Responsive: stack stat cards on mobile */
@media (max-width: 600px) {
  .insights-stats-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }
  .insights-stat-card__value {
    font-size: 1.3rem;
  }
}

/* END Session 23 — HHA Analytics Dashboard & Public Reports */

/* ── Session 26 — HHA Video Upload UI ───────────────────────────────────── */

/* Drop zone / upload box */
.hha-video-upload-box {
  border: 2px dashed #2A7B88;
  border-radius: 10px;
  padding: 32px 20px;
  text-align: center;
  background: #f8fffe;
  cursor: pointer;
  transition: border-color .2s, background .2s;
  position: relative;
}
.hha-video-upload-box.drag-over {
  border-color: #16A34A;
  background: #f0fdf4;
}
.hha-video-upload-box input[type="file"] {
  position: absolute;
  inset: 0;
  opacity: 0;
  cursor: pointer;
  width: 100%;
  height: 100%;
}
.hha-video-upload-box__icon {
  font-size: 2.2rem;
  line-height: 1;
  margin-bottom: 10px;
}
.hha-video-upload-box__label {
  font-size: 0.95rem;
  font-weight: 600;
  color: #2A7B88;
  margin-bottom: 6px;
}
.hha-video-upload-box__hint {
  font-size: 0.78rem;
  color: #6B7280;
}

/* Progress bar */
.hha-video-progress-wrap {
  display: none;
  margin-top: 14px;
}
.hha-video-progress-wrap.visible {
  display: block;
}
.hha-video-progress-bar-track {
  height: 8px;
  background: #e5e7eb;
  border-radius: 4px;
  overflow: hidden;
}
.hha-video-progress-bar-fill {
  height: 100%;
  background: linear-gradient(90deg, #2A7B88, #16A34A);
  border-radius: 4px;
  width: 0%;
  transition: width .3s ease;
}
.hha-video-progress-label {
  font-size: 0.78rem;
  color: #6B7280;
  margin-top: 5px;
}

/* Status states */
.hha-video-status {
  margin-top: 12px;
  padding: 10px 14px;
  border-radius: 8px;
  font-size: 0.85rem;
  display: none;
}
.hha-video-status.visible { display: block; }
.hha-video-status--success { background: #f0fdf4; color: #15803d; border: 1px solid #bbf7d0; }
.hha-video-status--error   { background: #fef2f2; color: #b91c1c; border: 1px solid #fecaca; }
.hha-video-status--info    { background: #eff6ff; color: #1d4ed8; border: 1px solid #bfdbfe; }

/* Current video status pill */
.hha-video-current {
  display: flex;
  align-items: center;
  gap: 10px;
  background: #f9fafb;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  padding: 12px 14px;
  margin-bottom: 16px;
  font-size: 0.85rem;
  color: #374151;
}
.hha-video-current__badge {
  padding: 3px 9px;
  border-radius: 20px;
  font-size: 0.73rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
  white-space: nowrap;
}
.hha-video-current__badge--uploaded   { background: #fef3c7; color: #92400e; }
.hha-video-current__badge--published  { background: #d1fae5; color: #065f46; }
.hha-video-current__badge--none       { background: #f3f4f6; color: #9ca3af; }
.hha-video-current__badge--processing { background: #ede9fe; color: #5b21b6; }

/* YouTube URL fallback collapsible */
.hha-video-yt-toggle {
  font-size: 0.82rem;
  color: #6B7280;
  cursor: pointer;
  margin-top: 18px;
  display: flex;
  align-items: center;
  gap: 6px;
  user-select: none;
}
.hha-video-yt-toggle:hover { color: #2A7B88; }
.hha-video-yt-section {
  display: none;
  margin-top: 10px;
  padding: 14px;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background: #fafafa;
}
.hha-video-yt-section.open { display: block; }

/* Dark mode */
[data-theme="dark"] .hha-video-upload-box {
  background: #1a2332;
  border-color: #2a3a4a;
}
[data-theme="dark"] .hha-video-upload-box.drag-over {
  background: #162620;
  border-color: #16A34A;
}
[data-theme="dark"] .hha-video-upload-box__label { color: #4cc9d8; }
[data-theme="dark"] .hha-video-upload-box__hint  { color: #99aab5; }
[data-theme="dark"] .hha-video-current {
  background: #1a2332;
  border-color: #2a3a4a;
  color: #c8d6e5;
}
[data-theme="dark"] .hha-video-yt-section {
  background: #1a2332;
  border-color: #2a3a4a;
}
[data-theme="dark"] .hha-video-progress-bar-track { background: #2a3a4a; }

/* END Session 26 — HHA Video Upload UI */

/* ── Session 26 — HHA Upgrade CTA Banner ────────────────────────────────── */
.hha-upgrade-cta {
  background: linear-gradient(135deg, #F0FDFA 0%, #EFF6FF 100%);
  border: 2px solid #2A7B88;
  border-radius: 14px;
  padding: 28px 24px;
  margin-top: 20px;
  text-align: center;
}
.hha-upgrade-cta__badge {
  display: inline-block;
  background: #2A7B88;
  color: white;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
  padding: 4px 12px;
  border-radius: 20px;
  margin-bottom: 14px;
}
.hha-upgrade-cta__title {
  font-family: 'Lora', Georgia, serif;
  font-size: 1.15rem;
  font-weight: 700;
  color: #0F3D4A;
  margin: 0 0 8px;
}
.hha-upgrade-cta__sub {
  font-size: 0.88rem;
  color: #475569;
  margin: 0 0 18px;
}
.hha-upgrade-cta__benefits {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 8px;
  margin-bottom: 20px;
  text-align: left;
}
.hha-upgrade-cta__benefit {
  font-size: 0.83rem;
  color: #374151;
  padding: 7px 10px;
  background: rgba(255,255,255,0.7);
  border-radius: 6px;
  border: 1px solid #E2E8F0;
}
.hha-upgrade-cta__btn {
  display: inline-block;
  background: #2A7B88;
  color: white;
  padding: 12px 28px;
  border-radius: 8px;
  font-weight: 700;
  font-size: 0.95rem;
  text-decoration: none;
  transition: background .2s;
  margin-bottom: 10px;
}
.hha-upgrade-cta__btn:hover { background: #1e5f6a; color: white; }
.hha-upgrade-cta__note {
  font-size: 0.76rem;
  color: #9CA3AF;
  margin: 0;
}
[data-theme="dark"] .hha-upgrade-cta {
  background: linear-gradient(135deg, #0d2a30 0%, #0d1a2e 100%);
  border-color: #2A7B88;
}
[data-theme="dark"] .hha-upgrade-cta__title { color: #e2f0f3; }
[data-theme="dark"] .hha-upgrade-cta__sub   { color: #99aab5; }
[data-theme="dark"] .hha-upgrade-cta__benefit {
  background: rgba(255,255,255,0.06);
  border-color: #2a3a4a;
  color: #c8d6e5;
}
/* END Session 26 — HHA Upgrade CTA Banner */

/* ─── Jobs Hero Articles Chip (mobile + tablet) + Desktop Sidebar Guides ─────
   Surfaces /jobs/articles/ from buried bottom section to discoverable surface.
   Mobile: slim chip under hero H1. Desktop ≥1200px: floating card that sits
   BELOW the hero on page load (top:380px) so it never bleeds into the teal
   hero. White card with coral accent so it contrasts against any background. */
.jobs-hero__articles-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 14px;
  padding: 8px 14px;
  background: rgba(255,255,255,0.14);
  border: 1px solid rgba(255,255,255,0.28);
  border-radius: 999px;
  color: #ffffff;
  text-decoration: none;
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.85rem;
  font-weight: 600;
  line-height: 1;
  transition: background .18s ease, border-color .18s ease, transform .18s ease;
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}
.jobs-hero__articles-chip:hover {
  background: rgba(255,255,255,0.22);
  border-color: rgba(255,255,255,0.45);
  transform: translateY(-1px);
}
.jobs-hero__articles-chip svg { flex-shrink: 0; opacity: 0.95; }
.jobs-hero__articles-chip-arrow { font-size: 1rem; line-height: 1; }

/* Hide desktop sidebar on smaller screens (mobile chip above does the job) */
.jobs-sidebar-guides { display: none; }

@media (min-width: 1200px) {
  /* Fixed right-margin floater on wide screens. Max page content is ~1100px;
     anything wider is free real estate. top:380px puts the card BELOW the
     jobs hero so it never overlaps/bleeds into the teal background. */
  .jobs-sidebar-guides {
    display: block;
    position: fixed;
    top: 380px;
    right: 28px;
    width: 240px;
    z-index: 40;
    pointer-events: auto;
  }
  /* Hide mobile chip on wide screens — sidebar takes over */
  .jobs-hero__articles-chip { display: none; }
}

.jobs-sidebar-guides__inner {
  background: #ffffff;
  border: 1px solid #e5e0d5;
  border-left: 4px solid var(--coral, #df4c73);
  border-radius: 10px;
  padding: 16px 16px 14px;
  box-shadow: 0 12px 32px rgba(10,30,40,0.10), 0 2px 6px rgba(10,30,40,0.05);
  color: var(--body, #4a4a4a);
  font-family: 'Source Sans 3', sans-serif;
}
.jobs-sidebar-guides__header {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.9rem;
  font-weight: 700;
  letter-spacing: 0.01em;
  color: var(--headline, #002846);
  margin-bottom: 2px;
}
.jobs-sidebar-guides__header svg { flex-shrink: 0; color: var(--coral, #df4c73); }
.jobs-sidebar-guides__sub {
  font-size: 0.74rem;
  color: var(--body-light, #8a8a8a);
  margin: 0 0 10px;
  line-height: 1.4;
}
.jobs-sidebar-guides__list {
  list-style: none;
  padding: 0;
  margin: 0 0 10px;
  border-top: 1px solid #eee8dc;
}
.jobs-sidebar-guides__list li {
  border-bottom: 1px solid #eee8dc;
}
.jobs-sidebar-guides__list a {
  display: block;
  padding: 9px 0;
  color: var(--headline, #002846);
  text-decoration: none;
  font-size: 0.83rem;
  font-weight: 500;
  line-height: 1.4;
  transition: color .15s ease, padding-left .15s ease;
}
.jobs-sidebar-guides__list a:hover {
  color: var(--coral, #df4c73);
  padding-left: 4px;
}
.jobs-sidebar-guides__all {
  display: inline-block;
  color: var(--coral, #df4c73);
  font-size: 0.82rem;
  font-weight: 700;
  text-decoration: none;
  letter-spacing: 0.01em;
}
.jobs-sidebar-guides__all:hover { color: var(--teal, #2a7b88); }

[data-theme="dark"] .jobs-sidebar-guides__inner {
  background: #1a2332;
  border-color: #2a3a4a;
  border-left-color: var(--coral, #df4c73);
  color: #c8d6e5;
  box-shadow: 0 12px 32px rgba(0,0,0,0.55), 0 2px 6px rgba(0,0,0,0.35);
}
[data-theme="dark"] .jobs-sidebar-guides__header { color: #e2f0f3; }
[data-theme="dark"] .jobs-sidebar-guides__sub { color: #8a9aa5; }
[data-theme="dark"] .jobs-sidebar-guides__list { border-top-color: #2a3a4a; }
[data-theme="dark"] .jobs-sidebar-guides__list li { border-bottom-color: #2a3a4a; }
[data-theme="dark"] .jobs-sidebar-guides__list a { color: #e2f0f3; }
[data-theme="dark"] .jobs-sidebar-guides__list a:hover { color: var(--coral, #df4c73); }
/* END Jobs Career Guides surface */

/* ─── Find Care Dropdown (desktop) + Mobile menu section labels ──────────
   Adds a hover/focus dropdown under "Find Care" listing all care types
   (AL, MC, RC, NH, HH). Keeps top-level nav to 5 items + CTA. */
.nav-dropdown {
  position: relative;
  display: inline-flex;
  align-items: center;
}
.nav-dropdown__trigger {
  display: inline-flex !important;
  align-items: center;
  gap: 4px;
  white-space: nowrap;
}
.nav-dropdown__caret {
  transition: transform .2s ease;
  opacity: 0.75;
}
.nav-dropdown:hover .nav-dropdown__caret,
.nav-dropdown:focus-within .nav-dropdown__caret {
  transform: rotate(180deg);
  opacity: 1;
}
.nav-dropdown__menu {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%) translateY(4px);
  min-width: 240px;
  background: #ffffff;
  border: 1px solid #e5e0d5;
  border-radius: 10px;
  box-shadow: 0 12px 32px rgba(10,30,40,0.12), 0 2px 6px rgba(10,30,40,0.06);
  padding: 8px;
  opacity: 0;
  visibility: hidden;
  transition: opacity .15s ease, visibility .15s ease, transform .15s ease;
  z-index: 100;
}
.nav-dropdown:hover .nav-dropdown__menu,
.nav-dropdown:focus-within .nav-dropdown__menu {
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) translateY(0);
}
.nav-dropdown__item {
  display: block;
  padding: 9px 14px;
  color: var(--headline, #002846);
  text-decoration: none;
  font-size: 0.9rem;
  font-weight: 500;
  border-radius: 6px;
  transition: background .12s ease, color .12s ease;
  white-space: nowrap;
}
.nav-dropdown__item:hover,
.nav-dropdown__item:focus {
  background: rgba(42,123,136,0.08);
  color: var(--teal, #2a7b88);
}
.nav-dropdown__item--all {
  color: var(--coral, #df4c73);
  font-weight: 700;
  font-size: 0.85rem;
}
.nav-dropdown__item--all:hover {
  background: rgba(223,76,115,0.08);
  color: var(--coral, #df4c73);
}
.nav-dropdown__divider {
  height: 1px;
  background: #eee8dc;
  margin: 6px 8px;
}

[data-theme="dark"] .nav-dropdown__menu {
  background: #1a2332;
  border-color: #2a3a4a;
  box-shadow: 0 12px 32px rgba(0,0,0,0.55), 0 2px 6px rgba(0,0,0,0.35);
}
[data-theme="dark"] .nav-dropdown__item { color: #e2f0f3; }
[data-theme="dark"] .nav-dropdown__item:hover,
[data-theme="dark"] .nav-dropdown__item:focus {
  background: rgba(42,123,136,0.18);
  color: #9fe6d8;
}
[data-theme="dark"] .nav-dropdown__divider { background: #2a3a4a; }

/* Mobile menu: section label + sub-items for the Find Care group */
.mobile-menu__section-label {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--body-light, #8a8a8a);
  padding: 12px 4px 6px;
  margin-top: 8px;
}
.mobile-menu__link--sub {
  padding-left: 20px !important;
  font-size: 0.98rem !important;
}
.mobile-menu__link--all {
  color: var(--coral, #df4c73) !important;
  font-weight: 700 !important;
  font-size: 0.9rem !important;
}
.mobile-menu__divider {
  height: 1px;
  background: #eee8dc;
  margin: 14px 0 6px;
}
[data-theme="dark"] .mobile-menu__divider { background: #2a3a4a; }
[data-theme="dark"] .mobile-menu__section-label { color: #7a8a95; }
/* END Find Care dropdown */

/* ─── Jobs Articles Section (/jobs/ bottom) ───────────────────────────
   Replaces the washed-out inline-styled cards with proper contrast +
   visual hierarchy. White cards, teal top-accent bar, darker body copy. */
.jobs-articles-section {
  margin-top: 3rem;
  scroll-margin-top: 100px;
  padding: 32px 28px 36px;
  background: linear-gradient(180deg, rgba(42,123,136,0.04) 0%, rgba(255,255,255,0) 100%);
  border-radius: 14px;
  border: 1px solid rgba(42,123,136,0.10);
}
.jobs-articles-section__header {
  margin-bottom: 1.75rem;
  max-width: 720px;
}
.jobs-articles-section__header h2 {
  margin: 6px 0 10px;
}
.jobs-articles-section__sub {
  font-size: 0.92rem;
  color: var(--body, #4a4a4a);
  line-height: 1.6;
  margin: 0;
  font-family: 'Source Sans 3', sans-serif;
}
.jobs-articles-section__footer {
  text-align: center;
  margin-top: 1.75rem;
}
.jobs-articles-section__footer .btn { text-decoration: none; display: inline-block; }

.jobs-articles-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 1.25rem;
}

.jobs-article-card {
  position: relative;
  display: block;
  padding: 22px 22px 20px;
  background: #ffffff;
  border: 1px solid #e5e0d5;
  border-radius: 12px;
  text-decoration: none;
  color: inherit;
  box-shadow: 0 2px 6px rgba(10,30,40,0.04);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
  overflow: hidden;
}
.jobs-article-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--teal, #2a7b88) 0%, var(--coral, #df4c73) 100%);
  opacity: 0.85;
}
.jobs-article-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 14px 28px rgba(10,30,40,0.10), 0 4px 10px rgba(10,30,40,0.05);
  border-color: rgba(42,123,136,0.35);
}

.jobs-article-card__tag {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 10px;
  background: rgba(42,123,136,0.10);
  color: var(--teal, #2a7b88);
  border-radius: 999px;
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin-bottom: 12px;
}
.jobs-article-card__tag svg { flex-shrink: 0; }

.jobs-article-card__title {
  font-family: 'Lora', serif;
  font-size: 1.02rem;
  font-weight: 700;
  color: var(--headline, #002846);
  line-height: 1.3;
  margin: 0 0 10px;
}

.jobs-article-card__desc {
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.86rem;
  color: var(--body, #4a4a4a);
  line-height: 1.55;
  margin: 0 0 14px;
}

.jobs-article-card__cta {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--coral, #df4c73);
  letter-spacing: 0.01em;
  transition: gap .18s ease, color .18s ease;
}
.jobs-article-card:hover .jobs-article-card__cta {
  gap: 8px;
  color: var(--teal, #2a7b88);
}

[data-theme="dark"] .jobs-articles-section {
  background: linear-gradient(180deg, rgba(42,123,136,0.10) 0%, rgba(0,0,0,0) 100%);
  border-color: rgba(42,123,136,0.25);
}
[data-theme="dark"] .jobs-articles-section__sub { color: #c8d6e5; }
[data-theme="dark"] .jobs-article-card {
  background: #1a2332;
  border-color: #2a3a4a;
  box-shadow: 0 2px 6px rgba(0,0,0,0.35);
}
[data-theme="dark"] .jobs-article-card:hover {
  box-shadow: 0 14px 28px rgba(0,0,0,0.55), 0 4px 10px rgba(0,0,0,0.35);
  border-color: rgba(159,230,216,0.35);
}
[data-theme="dark"] .jobs-article-card__tag {
  background: rgba(159,230,216,0.14);
  color: #9fe6d8;
}
[data-theme="dark"] .jobs-article-card__title { color: #e2f0f3; }
[data-theme="dark"] .jobs-article-card__desc { color: #a8b8c5; }

@media (max-width: 600px) {
  .jobs-articles-section {
    padding: 24px 16px 28px;
    margin-left: -8px;
    margin-right: -8px;
  }
}
/* END Jobs Articles Section */

