/* =========================================================================
   Frontline Aide components (6.8.0)

   Reusable components for the redesigned pages. Colors come from the
   --fa-* aliases (theme.json presets with identical fallbacks) defined in
   style.css. Contrast notes:
     - Gold (#d4a017) is used for fills and large display text only. Text on
       gold is dark navy (#0f2f4a, 6.0:1). Small gold-toned text on light
       backgrounds uses --fa-gold-text (#7d5f08, 5.4:1).
     - Teal text on white uses --fa-teal-dark (#006b85, 5.9:1). White text
       sits on --fa-teal-dark, not the lighter teal.
   ========================================================================= */

/* ---------- Design tokens (6.9.0: one shared set for every component) ---------- */
:root {
  /* Color: brand (theme.json presets with identical fallbacks, defined in style.css) */
  --fa-ink: #0f2f4a;            /* navy text, 13.4:1 on white */
  --fa-text: #343a40;           /* body text, 11.5:1 on white */
  --fa-muted: #50575e;          /* 7.0:1 on white */
  --fa-gold-text: #7d5f08;      /* 5.4:1 on white, 5.0:1 on #f4f8fb */
  --fa-gold-on-dark: #f0c040;   /* on #164670 and darker */
  --fa-pale: #f4f8fb;
  --fa-cream: #fdf8ea;
  --fa-line: #dfe5eb;
  --fa-border-strong: #6b7684;  /* form borders and selected outlines, 4.7:1 on white */
  /* Color: status (text shades meet 4.5:1 on their backgrounds) */
  --fa-success: #1e7a46; --fa-success-ink: #155c34; --fa-success-bg: #eef8f2;
  --fa-danger: #b3261e;  --fa-danger-ink: #8c1d18;  --fa-danger-bg: #fdf0ef;
  --fa-info-bg: var(--fa-pale); --fa-warn-bg: var(--fa-cream);
  /* Color: who provides support in daily examples (always paired with a text label and icon) */
  --fa-who-caregiver: var(--fa-teal-dark); --fa-who-family: #7d5f08; --fa-who-self: #50575e;
  /* Typography */
  --fa-font-body: var(--font-primary);
  --fa-font-heading: var(--font-heading);
  --fa-text-sm: 0.9375rem;      /* 15px: the smallest size for reading text */
  --fa-text-base: 1.0625rem;    /* 17px */
  --fa-text-lg: 1.1875rem;
  --fa-text-xl: 1.375rem;
  --fa-h1: clamp(2.1rem, 5vw, 3rem);
  --fa-h2: clamp(1.75rem, 3.2vw, 2.4rem);
  --fa-h3: 1.5rem;
  --fa-h4: 1.1875rem;
  /* Spacing and widths */
  --fa-space-1: 4px; --fa-space-2: 8px; --fa-space-3: 12px; --fa-space-4: 16px;
  --fa-space-5: 24px; --fa-space-6: 32px; --fa-space-7: 48px; --fa-space-8: 64px;
  --fa-measure: 68ch;
  --fa-width-narrow: 860px;
  --fa-gap: clamp(20px, 3vw, 32px);
  /* Shape and depth */
  --fa-radius-sm: 8px;
  --fa-radius: 14px;
  --fa-radius-lg: 20px;
  --fa-radius-pill: 999px;
  --fa-shadow: 0 8px 28px rgba(30, 90, 142, 0.08);
  --fa-shadow-hover: 0 16px 38px rgba(30, 90, 142, 0.14);
  /* Controls and focus */
  --fa-control-h: 48px;
  --fa-focus: var(--fa-accent);
  --fa-focus-ring: var(--fa-ink);
}

/* ---------- Base refinements ---------- */
/* The hidden attribute always hides, even on elements whose class sets a display value (buttons, grids) */
[hidden] { display: none !important; }
body { font-size: 1.0625rem; line-height: 1.65; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  *, *::before, *::after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; }
}
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 3px solid var(--fa-focus);
  outline-offset: 3px;
  box-shadow: 0 0 0 5px var(--fa-focus-ring);
  border-radius: 4px;
}

/* ---------- Shared states ---------- */
/* Disabled: muted fill and dashed border rather than low opacity, so labels stay readable */
.btn:disabled, .btn[aria-disabled="true"], .fa-switch-btn:disabled, .fa-chip:disabled {
  background: #e9ecef !important; color: var(--fa-muted) !important; border: 2px dashed #9aa6b2 !important; cursor: not-allowed; transform: none !important;
}
/* Loading: a polite label change plus a small spinner (static when motion is reduced) */
.btn[aria-busy="true"] { cursor: progress; position: relative; }
.btn[aria-busy="true"]::after { content: ''; width: 16px; height: 16px; border-radius: 50%; border: 2px solid currentColor; border-right-color: transparent; animation: fa-spin 0.8s linear infinite; }
@keyframes fa-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .btn[aria-busy="true"]::after { animation: none; border-right-color: currentColor; opacity: 0.6; } }
/* Selected and current: shape and weight as well as color */
[aria-current="page"], [aria-current="step"] { font-weight: 700; }
.fa-chip {
  display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 8px 14px; margin: 0 8px 8px 0; border-radius: var(--fa-radius-pill);
  border: 2px solid var(--fa-border-strong); background: #fff; color: var(--fa-ink); font: inherit; font-weight: 600; cursor: pointer;
}
.fa-chip:hover { border-color: var(--fa-teal-dark); background: var(--fa-pale); }
.fa-chip[aria-pressed="true"] { background: var(--fa-ink); border-color: var(--fa-ink); color: #fff; }
.fa-chip[aria-pressed="true"]::before { content: '\2713'; }
/* Screen-only and print-only helpers */
.fa-print-only, .fa-print-header { display: none; }
.fa-error-text { color: var(--fa-danger-ink); font-weight: 700; }
.fa-icon { flex-shrink: 0; vertical-align: middle; }
.fa-visually-hidden, .fa-switch-enhanced .fa-visually-hidden-when-switched {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}

/* Buttons: 48px targets, dark text on gold */
.btn { min-height: 48px; gap: 8px; line-height: 1.25; text-align: center; }
.btn-primary, .btn-primary:visited { background-color: var(--fa-accent); color: var(--fa-ink); }
.btn-primary:hover, .btn-primary:focus-visible { background-color: var(--fa-gold-on-dark); color: var(--fa-ink); }
.btn-secondary, .btn-secondary:visited { background-color: var(--fa-primary); color: #fff; }
.btn-outline { min-height: 48px; }
.btn-ghost, .btn-ghost:visited { background: transparent; color: #fff; border: 2px solid rgba(255, 255, 255, 0.7); }
.btn-ghost:hover, .btn-ghost:focus-visible { background: rgba(255, 255, 255, 0.12); color: #fff; border-color: #fff; }
.care-nav-cta, .care-nav-cta:visited { color: var(--fa-ink) !important; }
.hero-cta-primary, .hero-cta-primary:visited { color: var(--fa-ink) !important; min-height: 48px; }
.fa-hcw-btn-gold, .fa-hcw-btn-gold:visited { color: var(--fa-ink) !important; }
.fla-callback-btn { background: var(--fa-teal-dark) !important; }
.fla-callback-modal .fla-cb-submit { background: var(--fa-teal-dark); }
.fa-mobile-banner .fa-cb-label { color: var(--fa-gold-text) !important; }
.fa-text-btn {
  background: none; border: 0; padding: 10px 4px; min-height: 44px; font: inherit; font-weight: 600;
  color: var(--fa-teal-dark); text-decoration: underline; text-underline-offset: 3px; cursor: pointer;
}
.fa-text-btn:hover { color: var(--fa-ink); }
.fa-link-arrow, .fa-link-arrow:visited {
  display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-weight: 700;
  color: var(--fa-teal-dark); text-decoration: underline; text-decoration-color: rgba(212, 160, 23, 0.6); text-underline-offset: 5px;
}
.fa-link-arrow:hover { color: var(--fa-ink); text-decoration-color: var(--fa-accent); }
.fa-link-arrow .fa-icon { transition: transform 0.2s ease; }
.fa-link-arrow:hover .fa-icon { transform: translateX(3px); }

/* Labels and headings */
.fa-eyebrow { color: var(--fa-gold-text); font-size: 0.875rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; margin: 0 0 10px; display: flex; align-items: center; gap: 8px; }
.fa-band-navy .fa-eyebrow, .fa-hcw-hero .fa-eyebrow, .fa-page-hero .fa-eyebrow, .fa-band-cta .fa-eyebrow { color: var(--fa-gold-on-dark); }
.fa-section-head { max-width: var(--fa-measure); margin-bottom: clamp(24px, 3vw, 40px); }
.fa-section-head.fa-align-center { margin-left: auto; margin-right: auto; text-align: center; }
.fa-title { color: var(--fa-primary); font-size: clamp(1.75rem, 3.2vw, 2.4rem); line-height: 1.2; margin: 0 0 12px; }
.fa-lead { font-size: 1.1875rem; line-height: 1.7; color: var(--fa-text); margin: 0 0 12px; }
.fa-small { font-size: 0.9375rem; color: var(--fa-muted); line-height: 1.6; }
.fa-hint { font-size: 0.9375rem; color: var(--fa-muted); margin: 4px 0 8px; }
.fa-h3 { font-size: 1.5rem; color: var(--fa-primary); margin: 0 0 10px; }
.fa-h4 { font-size: 1.1875rem; color: var(--fa-primary); margin: 0 0 8px; }
.fa-mt { margin-top: 24px; }
.fa-example-tag {
  display: inline-block; margin: 0 0 8px; padding: 3px 12px; border-radius: 50px; font-size: 0.8125rem; font-weight: 700;
  letter-spacing: 0.06em; text-transform: uppercase; background: var(--fa-cream); color: var(--fa-gold-text); border: 1px solid rgba(212, 160, 23, 0.45);
}
.fa-source-note { margin-top: 24px; padding: 14px 18px; border-left: 4px solid var(--fa-accent); background: var(--fa-cream); font-size: 0.9375rem; color: var(--fa-text); border-radius: 0 10px 10px 0; }

/* ---------- Layout ---------- */
.fa-section { padding: clamp(44px, 5.5vw, 72px) 0; }
/* Two sections in a row on the same background read as one block: no doubled gap between them */
.fa-section:not(.fa-section-pale) + .fa-section:not(.fa-section-pale), .fa-section-pale + .fa-section-pale { padding-top: 0; }
.fa-section-tight { padding: clamp(32px, 4vw, 48px) 0; }
.fa-section-pale { background: var(--fa-pale); }
.fa-narrow { max-width: 860px; }
.fa-center { text-align: center; }
.fa-split { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: clamp(28px, 5vw, 64px); align-items: start; }
.fa-split-wide { grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr); }
.fa-split-intro { grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); }
.fa-split-head { grid-template-columns: 1fr auto; align-items: end; gap: 16px 32px; margin-bottom: clamp(24px, 3vw, 36px); }
.fa-split-head .fa-section-head { margin-bottom: 0; }
.fa-head-aside { margin: 0; }
.fa-split-contact { grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr); }
.fa-contact-first { grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr); }
@media (max-width: 900px) {
  .fa-split, .fa-split-wide, .fa-split-intro, .fa-split-contact, .fa-contact-first, .fa-split-head { grid-template-columns: 1fr; }
}
/* Beside a long form, the contact details stay in view instead of leaving an empty column (as on the Services page) */
@media (min-width: 901px) and (min-height: 820px) {
  .fa-split-contact > :first-child { position: sticky; top: 112px; }
}

/* Checkbox rows inside the inquiry form. The older ".care-inquiry label" and ".care-inquiry input" rules in style.css
   made every checkbox a full-width block above its label, with large gaps between rows. */
.care-inquiry .fa-check { display: flex; align-items: flex-start; gap: 10px; margin: 0; }
.care-inquiry input[type="checkbox"]:not([type="hidden"]), .care-inquiry input[type="radio"]:not([type="hidden"]) { width: 22px; height: 22px; min-width: 22px; padding: 0; margin: 2px 0 0; flex: none; }
.care-inquiry .fa-check-grid { margin-top: 4px; }
/* Field labels: the field's own 6px gap is enough; the older rule added 16px above every label */
.care-inquiry .fa-field > label { margin: 0; }
.care-inquiry .fa-field { margin-bottom: 18px; }
.care-inquiry fieldset { padding-top: 12px; }

/* Caregiver recruitment band: the photo's <picture> wrapper must be a real grid item */
.fa-recruit .fa-picture { display: block; }
.fa-recruit-img { max-width: none; }
.fa-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; margin-top: 20px; }
.fa-actions-center { justify-content: center; }
.fa-actions-stack { flex-direction: column; align-items: flex-start; }
.fa-band { padding: clamp(44px, 5vw, 64px) 0; }
.fa-band-navy { background: linear-gradient(135deg, var(--fa-primary-dark) 0%, #0f3f63 100%); color: #fff; }
.fa-band-navy .fa-title, .fa-band-navy h2, .fa-band-navy h3 { color: #fff; }
.fa-band-navy p { color: rgba(255, 255, 255, 0.92); }
.fa-band-navy a:not(.btn) { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.fa-band-cta { background: linear-gradient(135deg, var(--fa-primary) 0%, var(--fa-teal-dark) 100%); color: #fff; }
.fa-band-cta h2 { color: #fff; font-size: clamp(1.75rem, 3.5vw, 2.5rem); margin: 0 0 12px; }
.fa-band-cta p { color: rgba(255, 255, 255, 0.94); font-size: 1.125rem; max-width: 640px; margin: 0 auto 8px; }
.fa-band-small { font-size: 0.9375rem !important; margin-top: 18px !important; }

/* Page hero for inner pages (same family as the How Care Works hero) */
.fa-page-hero { padding: clamp(48px, 7vw, 76px) 0; background: linear-gradient(135deg, var(--fa-primary) 0%, var(--fa-primary-dark) 60%, #0f3f63 100%); color: #fff; }
.fa-page-hero-compact { padding: clamp(36px, 5vw, 56px) 0; }
.fa-page-hero h1 { color: var(--fa-accent); font-size: clamp(2.1rem, 5vw, 3rem); line-height: 1.15; margin: 0 0 14px; }
.fa-page-hero .fa-lead { color: rgba(255, 255, 255, 0.94); max-width: 720px; }

/* Lists */
.fa-link-list { list-style: none; margin: 0 0 16px; padding: 0; display: grid; gap: 6px; }
.fa-link-list a { display: inline-flex; min-height: 44px; align-items: center; color: var(--fa-primary); font-weight: 600; text-decoration: underline; text-underline-offset: 4px; text-decoration-color: rgba(30, 90, 142, 0.35); }
.fa-link-list a:hover { text-decoration-color: currentColor; }
.fa-link-list-cols { grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); }
.fa-checklist, .fa-checks, .fa-bullets { list-style: none; margin: 0 0 16px; padding: 0; }
.fa-checklist li, .fa-checks li, .fa-bullets li { position: relative; padding: 6px 0 6px 30px; line-height: 1.6; }
.fa-checklist li::before {
  content: ''; position: absolute; left: 2px; top: 10px; width: 16px; height: 16px; border: 2px solid var(--fa-teal-dark); border-radius: 4px; background: #fff;
}
.fa-checks li::before { content: ''; position: absolute; left: 4px; top: 11px; width: 12px; height: 7px; border-left: 3px solid var(--fa-teal-dark); border-bottom: 3px solid var(--fa-teal-dark); transform: rotate(-45deg); }
.fa-bullets li::before { content: ''; position: absolute; left: 8px; top: 15px; width: 7px; height: 7px; border-radius: 50%; background: var(--fa-accent); }
.fa-step-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.fa-step-list li { padding: 16px 18px; background: #fff; border: 1px solid var(--fa-line); border-left: 4px solid var(--fa-teal-dark); border-radius: 12px; line-height: 1.6; }
.fa-section-pale .fa-step-list li { background: #fff; }
.fa-numbered { margin: 0 0 12px; padding-left: 1.4em; display: grid; gap: 8px; }
.fa-contact-list { list-style: none; margin: 0 0 16px; padding: 0; display: grid; gap: 14px; }
.fa-contact-list li { display: flex; gap: 12px; align-items: flex-start; }
.fa-contact-list .fa-icon { color: var(--fa-teal-dark); margin-top: 3px; }
.fa-contact-list span { display: flex; flex-direction: column; gap: 2px; }
.fa-contact-list a { font-weight: 700; color: var(--fa-primary); }
.fa-contact-list small { color: var(--fa-muted); font-size: 0.9375rem; }
.fa-contact-list-lg a { font-size: 1.125rem; }

/* Notices */
.fa-notice { padding: 18px 20px; border-radius: var(--fa-radius); background: var(--fa-pale); border: 1px solid var(--fa-line); border-left: 4px solid var(--fa-primary); }
.fa-section-pale .fa-notice { background: #fff; }
.fa-notice p:last-child { margin-bottom: 0; }
.fa-notice-warn { border-left-color: var(--fa-accent); background: var(--fa-cream); }
.fa-note { padding: 12px 16px; border-radius: 10px; background: var(--fa-cream); }

/* Details / expandable */
.fa-details { border: 1px solid var(--fa-line); border-radius: 12px; background: #fff; margin: 0 0 10px; }
.fa-details > summary { cursor: pointer; padding: 14px 44px 14px 16px; min-height: 48px; font-weight: 700; color: var(--fa-primary); list-style: none; position: relative; }
.fa-details > summary::-webkit-details-marker { display: none; }
.fa-details > summary::after { content: ''; position: absolute; right: 18px; top: 20px; width: 9px; height: 9px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); transition: transform 0.2s ease; }
.fa-details[open] > summary::after { transform: rotate(-135deg); top: 24px; }
.fa-details > :not(summary) { padding: 0 16px 14px; }
.fa-details-compact { margin-top: 14px; }
.fa-faq-stack { display: grid; gap: 10px; }

/* ---------- Trust strip ---------- */
.fa-trust-band-compact { background: #fff; border-bottom: 1px solid var(--fa-line); padding: 18px 0; }
.fa-trust-strip { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px 24px; }
.fa-trust-strip li { display: flex; align-items: center; gap: 10px; font-weight: 600; font-size: 0.9375rem; color: var(--fa-text); line-height: 1.4; }
.fa-trust-strip .fa-icon { color: var(--fa-teal-dark); }
.fa-trust-strip small { display: block; font-weight: 400; color: var(--fa-muted); }
@media (max-width: 1000px) { .fa-trust-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .fa-trust-strip { grid-template-columns: 1fr; } }

/* ---------- Switcher (situations, day, plans) ---------- */
.fa-switch-bar { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 18px; }
.fa-switch-btn {
  display: inline-flex; align-items: center; gap: 10px; min-height: 48px; padding: 10px 16px; border-radius: 12px; cursor: pointer;
  font: inherit; font-weight: 600; font-size: 1rem; text-align: left; color: var(--fa-primary); background: #fff; border: 2px solid var(--fa-line);
  transition: border-color 0.2s ease, background 0.2s ease;
}
.fa-switch-btn .fa-icon { color: var(--fa-teal-dark); }
.fa-switch-btn:hover { border-color: var(--fa-teal-dark); }
.fa-switch-btn[aria-pressed="true"] { background: var(--fa-primary); border-color: var(--fa-primary); color: #fff; }
.fa-switch-btn[aria-pressed="true"] .fa-icon { color: var(--fa-gold-on-dark); }
.fa-switch-btn[aria-pressed="true"]::after { content: ''; width: 8px; height: 8px; border-radius: 50%; background: var(--fa-accent); margin-left: 2px; }
.fa-switch-prompt { color: var(--fa-muted); margin: 0 0 8px; }
.fa-switch-clear { display: none; }
.fa-switch-enhanced .fa-switch-clear { display: inline-block; }
.fa-situation-bar { display: grid; grid-template-columns: 1fr; gap: 10px; }
.fa-situation-bar .fa-switch-btn { width: 100%; }
.fa-situation-panel { padding: 22px 24px; background: #fff; border-radius: var(--fa-radius); border: 1px solid var(--fa-line); box-shadow: var(--fa-shadow); margin-bottom: 12px; }
.fa-switch-enhanced .fa-situation-panel { border-left: 4px solid var(--fa-accent); }
.fa-situation-panel h3 { color: var(--fa-primary); font-size: 1.25rem; margin: 0 0 8px; }
.fa-situation-body p { font-size: 1.0625rem; }

/* ---------- Service grid (homepage) ---------- */
.fa-service-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; }
/* "Not sure which service fits?" card: fills the grid after the seven services */
.fa-service-help { display: flex; flex-direction: column; justify-content: center; gap: 14px; height: 100%; padding: 28px 24px; border-radius: var(--fa-radius); background: var(--fa-primary); color: #fff; box-shadow: var(--fa-shadow); }
.fa-service-help h3 { color: #fff; font-size: 1.35rem; line-height: 1.25; margin: 0; }
.fa-service-help p { margin: 0; color: #fff; line-height: 1.6; }
.fa-service-help .btn { align-self: flex-start; }
.fa-service-help .fa-link-arrow, .fa-service-help .fa-link-arrow:visited { color: #fff; }
.fa-service-card, .fa-service-card:visited { display: flex; flex-direction: column; height: 100%; background: #fff; border-radius: var(--fa-radius); overflow: hidden; box-shadow: var(--fa-shadow); color: var(--fa-text); text-decoration: none; transition: transform 0.25s ease, box-shadow 0.25s ease; }
.fa-service-card:hover { transform: translateY(-4px); box-shadow: var(--fa-shadow-hover); color: var(--fa-text); }
.fa-service-media { position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; background: #dfe8f0; }
.fa-service-media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.6s ease; }
.fa-service-card:hover .fa-service-media img { transform: scale(1.05); }
.fa-service-media::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(15, 47, 74, 0) 35%, rgba(15, 47, 74, 0.9) 100%); }
.fa-service-name { position: absolute; left: 18px; right: 18px; bottom: 14px; z-index: 1; color: #fff; font-family: var(--font-heading); font-weight: 700; font-size: 1.25rem; line-height: 1.25; text-shadow: 0 2px 8px rgba(0, 0, 0, 0.3); }
.fa-service-name::after { content: ''; display: block; width: 40px; height: 3px; margin-top: 8px; border-radius: 2px; background: var(--fa-accent); transition: width 0.3s ease; }
.fa-service-card:hover .fa-service-name::after { width: 64px; }
.fa-service-body { display: flex; flex-direction: column; gap: 12px; flex: 1; padding: 18px 18px 16px; }
.fa-service-text { font-size: 1rem; line-height: 1.6; flex: 1; }
.fa-service-body .fa-link-arrow { min-height: 0; }
@media (max-width: 1100px) { .fa-service-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .fa-service-grid { grid-template-columns: 1fr; } .fa-service-media { aspect-ratio: 16 / 10; } }
/* Text enlargement: keep names readable over photos */
html[style*="font-size"] .fa-service-name { font-size: 1.15rem; }

/* ---------- A Day With Care ---------- */
.fa-day-scenarios .fa-switch-btn { border-radius: 50px; padding: 8px 18px; }
.fa-day-scenario { background: #fff; border-radius: var(--fa-radius-lg); box-shadow: var(--fa-shadow); padding: clamp(20px, 3vw, 32px); margin-bottom: 16px; }
.fa-day-scenario > h3 { color: var(--fa-primary); }
.fa-day-summary { font-size: 1.0625rem; margin-bottom: 16px; }
.fa-day-summary .fa-example-tag { margin-right: 6px; vertical-align: middle; }
.fa-day-period-bar { border-bottom: 2px solid var(--fa-line); padding-bottom: 14px; }
.fa-day-period-bar .fa-switch-btn { flex: 1 1 140px; justify-content: center; }
.fa-day-period { padding: 18px 0 4px; border-top: 1px solid var(--fa-line); }
.fa-switch-enhanced .fa-day-period { border-top: 0; }
.fa-day-period h4 { color: var(--fa-primary); font-size: 1.125rem; margin: 0 0 6px; }
.fa-day-time { display: flex; align-items: center; gap: 8px; font-weight: 700; color: var(--fa-ink); margin-bottom: 14px; }
.fa-day-period.is-novisit .fa-day-time { color: var(--fa-muted); }
.fa-day-period.is-visit .fa-day-time .fa-icon { color: var(--fa-teal-dark); }
.fa-day-cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.fa-day-cols > div { background: var(--fa-pale); border-radius: 12px; padding: 14px 16px; }
.fa-day-cols h5 { font-family: var(--font-primary); font-size: 0.875rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--fa-gold-text); margin: 0 0 8px; }
.fa-day-cols ul { margin: 0; padding-left: 1.1em; }
.fa-day-cols p { margin: 0; }
.fa-day-note { display: flex; gap: 8px; align-items: flex-start; }
@media (max-width: 800px) { .fa-day-cols { grid-template-columns: 1fr; } }

/* ---------- How care begins (horizontal timeline) ---------- */
.fa-timeline-h { list-style: none; margin: 0 0 8px; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; counter-reset: none; position: relative; }
.fa-timeline-h::before { content: ''; position: absolute; top: 27px; left: 12%; right: 12%; height: 2px; background: linear-gradient(90deg, var(--fa-accent), rgba(212, 160, 23, 0.2)); }
.fa-timeline-h li { position: relative; text-align: center; padding: 0 6px; }
.fa-timeline-num { position: relative; z-index: 1; display: flex; align-items: center; justify-content: center; width: 56px; height: 56px; margin: 0 auto 14px; border-radius: 50%; background: #fff; border: 2px solid var(--fa-accent); color: var(--fa-primary); font-family: var(--font-heading); font-weight: 700; font-size: 1.35rem; }
.fa-timeline-h h3 { color: var(--fa-primary); font-size: 1.2rem; margin: 0 0 8px; }
.fa-timeline-h p { font-size: 1rem; }
@media (max-width: 900px) {
  .fa-timeline-h { grid-template-columns: 1fr; gap: 14px; }
  .fa-timeline-h::before { top: 0; bottom: 0; left: 27px; right: auto; width: 2px; height: auto; background: linear-gradient(180deg, var(--fa-accent), rgba(212, 160, 23, 0.2)); }
  .fa-timeline-h li { text-align: left; display: grid; grid-template-columns: 56px 1fr; column-gap: 16px; }
  .fa-timeline-num { grid-row: 1 / span 2; margin: 0; }
}

/* ---------- Matching, communication, accountability ---------- */
.fa-factor-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.fa-factor { background: #fff; border: 1px solid var(--fa-line); border-top: 4px solid var(--fa-teal-dark); border-radius: 12px; padding: 16px 18px; }
.fa-factor h3 { font-size: 1.0625rem; color: var(--fa-primary); margin: 0 0 6px; }
.fa-factor p { margin: 0; font-size: 1rem; }
@media (max-width: 600px) { .fa-factor-grid { grid-template-columns: 1fr; } }
.fa-visit-note { margin: 0; }
.fa-visit-note-card { background: #fff; border-radius: var(--fa-radius); border: 1px solid var(--fa-line); box-shadow: var(--fa-shadow); padding: 20px 22px; }
.fa-visit-note-head { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; border-bottom: 1px solid var(--fa-line); padding-bottom: 10px; margin-bottom: 10px; color: var(--fa-primary); }
.fa-visit-note-head span { color: var(--fa-muted); font-size: 0.9375rem; }
.fa-visit-note-card ul { margin: 0; padding-left: 1.2em; display: grid; gap: 6px; }
.fa-visit-note figcaption { font-size: 0.9375rem; color: var(--fa-muted); margin-top: 12px; }
.fa-accountability { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.fa-accountability h3 { display: flex; align-items: center; gap: 10px; font-size: 1.15rem; margin: 0 0 8px; }
.fa-accountability .fa-icon { color: var(--fa-gold-on-dark); }
@media (max-width: 900px) { .fa-accountability { grid-template-columns: 1fr; } }

/* ---------- Team and quotes ---------- */
.fa-team { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 22px; }
.fa-team-member { background: #fff; border-radius: var(--fa-radius); border: 1px solid var(--fa-line); padding: 22px; }
.fa-team-photo { width: 96px; height: 96px; border-radius: 50%; object-fit: cover; margin-bottom: 12px; }
.fa-team-initials { display: flex; align-items: center; justify-content: center; width: 72px; height: 72px; border-radius: 50%; margin-bottom: 12px; background: linear-gradient(135deg, var(--fa-primary), var(--fa-primary-light)); color: #fff; font-family: var(--font-heading); font-weight: 700; font-size: 1.5rem; }
.fa-team-member h3 { font-size: 1.2rem; color: var(--fa-primary); margin: 0 0 2px; }
.fa-team-role { color: var(--fa-gold-text); font-weight: 700; font-size: 0.9375rem; margin-bottom: 10px; }
.fa-team-contact { font-size: 0.9375rem; color: var(--fa-muted); }
.fa-quotes { list-style: none; margin: 0 0 20px; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 22px; }
.fa-quote { margin: 0; background: #fff; border-radius: var(--fa-radius); padding: 24px; box-shadow: var(--fa-shadow); height: 100%; }
.fa-quote blockquote { margin: 0 0 14px; font-size: 1.0625rem; font-style: italic; }
.fa-quote figcaption { display: flex; flex-direction: column; color: var(--fa-primary); }
.fa-quote figcaption span { color: var(--fa-muted); font-size: 0.9375rem; }

/* ---------- Tools grid ---------- */
.fa-tool-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.fa-tool, .fa-tool:visited { display: flex; flex-direction: column; gap: 8px; height: 100%; padding: 22px; background: #fff; border-radius: var(--fa-radius); border: 1px solid var(--fa-line); border-top: 4px solid var(--fa-teal-dark); color: var(--fa-text); text-decoration: none; transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease; }
.fa-tool:hover { transform: translateY(-3px); box-shadow: var(--fa-shadow-hover); border-top-color: var(--fa-accent); color: var(--fa-text); }
.fa-tool .fa-icon { color: var(--fa-teal-dark); }
.fa-tool-title { font-family: var(--font-heading); font-weight: 700; font-size: 1.15rem; color: var(--fa-primary); }
@media (max-width: 1000px) { .fa-tool-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .fa-tool-grid { grid-template-columns: 1fr; } }

/* ---------- Recruitment strip ---------- */
.fa-recruit { background: var(--fa-cream); border-top: 1px solid rgba(212, 160, 23, 0.3); padding: 28px 0; }
.fa-recruit-inner { display: grid; grid-template-columns: auto 1fr auto; gap: 18px 28px; align-items: center; }
.fa-recruit-img { width: 160px; height: 117px; object-fit: cover; border-radius: 12px; }
.fa-recruit p { margin: 0; }
.fa-recruit .fa-actions { margin-top: 0; }
@media (max-width: 800px) { .fa-recruit-inner { grid-template-columns: 1fr; } .fa-recruit-img { width: 120px; height: 88px; } }

/* ---------- Forms ---------- */
.fa-form-card { background: #fff; border-radius: var(--fa-radius-lg); border: 1px solid var(--fa-line); box-shadow: var(--fa-shadow); padding: clamp(20px, 3vw, 32px); }
.fa-fieldset { border: 0; margin: 0 0 18px; padding: 0; }
.fa-fieldset > legend, .fa-sublegend { font-family: var(--font-heading); font-weight: 700; font-size: 1.2rem; color: var(--fa-primary); margin-bottom: 10px; padding: 0; }
.fa-fieldset-inner { border: 0; margin: 14px 0 0; padding: 0; }
.fa-sublegend { font-size: 1.0625rem; }
.fa-field { display: flex; flex-direction: column; gap: 6px; margin-bottom: 14px; }
.fa-field label, .fa-coverage-form label { font-weight: 700; color: var(--fa-ink); }
.fa-field input, .fa-field select, .fa-field textarea, .fa-inline-field input, .fa-form input[type="text"], .fa-form input[type="email"], .fa-form input[type="tel"] {
  width: 100%; min-height: 48px; padding: 10px 14px; border: 2px solid #8a96a3; border-radius: 10px; font: inherit; font-size: 1.0625rem; color: var(--fa-ink); background: #fff;
}
.fa-field textarea { min-height: 110px; }
.fa-field [aria-invalid="true"], .fa-inline-field [aria-invalid="true"] { border-color: #b3261e; }
.fa-field-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 18px; }
@media (max-width: 640px) { .fa-field-grid { grid-template-columns: 1fr; } }
.fa-check { display: flex; align-items: flex-start; gap: 10px; min-height: 44px; padding: 8px 0; cursor: pointer; }
.fa-check input { width: 22px; height: 22px; margin-top: 2px; flex-shrink: 0; accent-color: var(--fa-primary); }
.fa-check-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 16px; }
@media (max-width: 560px) { .fa-check-grid { grid-template-columns: 1fr; } }
.fa-check-consent { background: var(--fa-pale); border-radius: 10px; padding: 12px 14px; margin-top: 8px; }
.fa-field-error { color: #b3261e; font-weight: 700; font-size: 0.9375rem; margin: 2px 0 8px; display: flex; gap: 6px; }
.fa-field-error::before { content: '!'; display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; border-radius: 50%; background: #b3261e; color: #fff; font-size: 0.8rem; flex-shrink: 0; }
.fa-error-summary { border: 2px solid #b3261e; background: #fdf0ef; border-radius: 12px; padding: 14px 18px; margin-bottom: 16px; }
.fa-error-summary p { font-weight: 700; color: #8c1d18; }
.fa-error-summary a { color: #8c1d18; font-weight: 600; }
.fa-form-success { border: 2px solid #1e7a46; background: #eef8f2; border-radius: 12px; padding: 14px 18px; margin-bottom: 16px; }
.fa-form-success h3 { color: #155c34; font-size: 1.2rem; margin: 0 0 6px; }
.fa-field-inline { flex-direction: row; flex-wrap: wrap; align-items: flex-end; }
.fa-field-inline label { width: 100%; }
.fa-field-inline input { flex: 1 1 240px; width: auto; }
.fa-inline-field { display: flex; gap: 10px; flex-wrap: wrap; }
.fa-inline-field input { flex: 1 1 200px; width: auto; }

/* ---------- Coverage checker ---------- */
.fa-coverage { background: #fff; border-radius: var(--fa-radius-lg); border: 1px solid var(--fa-line); box-shadow: var(--fa-shadow); padding: clamp(20px, 3vw, 28px); }
.fa-coverage-result { margin-top: 14px; padding: 14px 16px; border-radius: 12px; border-left: 5px solid var(--fa-primary); background: var(--fa-pale); }
.fa-coverage-result p { margin: 0 0 6px; }
.fa-coverage-yes { border-left-color: #1e7a46; background: #eef8f2; }
.fa-coverage-maybe { border-left-color: var(--fa-accent); background: var(--fa-cream); }
.fa-coverage-no { border-left-color: #8a96a3; background: #f3f4f6; }
.fa-coverage-invalid, .fa-coverage-empty { border-left-color: #b3261e; background: #fdf0ef; }
.fa-coverage-actions a { font-weight: 700; }

/* ---------- Schedule planner ---------- */
.fa-planner form { background: #fff; border-radius: var(--fa-radius-lg); border: 1px solid var(--fa-line); box-shadow: var(--fa-shadow); padding: clamp(20px, 3vw, 28px); }
.fa-day-checks { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 8px; }
.fa-day-check { justify-content: center; flex-direction: column; align-items: center; gap: 4px; border: 2px solid var(--fa-line); border-radius: 10px; padding: 8px 4px; font-weight: 700; }
.fa-day-check:has(input:checked) { border-color: var(--fa-primary); background: var(--fa-pale); }
@media (max-width: 520px) { .fa-day-checks { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.fa-planner-total { font-size: 1.25rem; font-weight: 700; color: var(--fa-primary); padding: 14px 16px; background: var(--fa-pale); border-radius: 12px; }
.fa-planner-print { border-top: 1px dashed var(--fa-line); padding-top: 12px; }
.fa-planner-note { font-size: 0.9375rem; color: var(--fa-muted); }

/* ---------- Resources ---------- */
.fa-filter-controls { display: grid; grid-template-columns: repeat(2, minmax(0, 260px)) 1fr; gap: 12px 18px; align-items: end; margin-bottom: 18px; }
.fa-filter-controls .fa-small { margin: 0 0 18px; }
@media (max-width: 700px) { .fa-filter-controls { grid-template-columns: 1fr; } }
.fa-resource-list { list-style: none; margin: 0 0 16px; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); gap: 16px; }
.fa-resource { background: #fff; border-radius: var(--fa-radius); border: 1px solid var(--fa-line); padding: 18px 20px; }
.fa-section-pale .fa-resource { background: #fff; }
.fa-resource h3 { font-size: 1.15rem; margin: 0 0 6px; }
.fa-resource h3 a { color: var(--fa-primary); text-decoration: underline; text-underline-offset: 3px; }
.fa-resource-meta { display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: 0.875rem; color: var(--fa-muted); margin: 0; }
.fa-empty { padding: 18px 20px; border-radius: var(--fa-radius); background: var(--fa-cream); border: 1px solid rgba(212, 160, 23, 0.4); margin-bottom: 16px; }

/* ---------- Map (loads on request) ---------- */
.fa-map { min-height: 120px; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 8px; }
.fa-map-frame { width: 100%; height: 400px; border: 0; border-radius: var(--fa-radius); }

/* ---------- Services page ---------- */
.fa-jump { background: #fff; border-bottom: 1px solid var(--fa-line); position: sticky; top: 0; z-index: 20; }
.fa-jump ul { list-style: none; margin: 0; padding: 8px 0; display: flex; gap: 4px 6px; overflow-x: auto; scrollbar-width: thin; }
.fa-jump a { display: inline-flex; align-items: center; min-height: 44px; padding: 6px 12px; white-space: nowrap; border-radius: 8px; font-weight: 600; color: var(--fa-primary); }
.fa-jump a:hover { background: var(--fa-pale); }
.fa-service-detail { padding: clamp(40px, 5vw, 64px) 0; scroll-margin-top: 70px; }
/* Wide screens: the jump bar sticks below the 88px header, so anchors and the photo column sit below both.
   The photo and example visit stay in view beside the longer text column when the window is tall enough. */
@media (min-width: 901px) and (min-height: 701px) {
  .fa-jump { top: 88px; }
  .fa-service-detail, #compare { scroll-margin-top: 112px; }
}
@media (min-width: 901px) and (min-height: 860px) { .fa-service-detail-media { position: sticky; top: 216px; } }
.fa-service-detail-alt { background: var(--fa-pale); }
.fa-service-detail-grid { display: grid; grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr); gap: clamp(28px, 4vw, 56px); align-items: start; }
.fa-service-detail-alt .fa-service-detail-media { order: 2; }
.fa-service-photo { position: relative; border-radius: var(--fa-radius-lg); overflow: hidden; aspect-ratio: 4 / 3; box-shadow: var(--fa-shadow); }
.fa-service-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.fa-service-photo::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(15, 47, 74, 0) 60%, rgba(15, 47, 74, 0.55) 100%); }
.fa-visit-example { margin-top: 16px; padding: 16px 18px; background: #fff; border-radius: var(--fa-radius); border: 1px solid var(--fa-line); }
.fa-service-detail-body h2 { color: var(--fa-primary); font-size: clamp(1.75rem, 3vw, 2.25rem); margin: 0 0 12px; }
.fa-detail-cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 24px; margin: 18px 0 8px; }
.fa-related { margin-top: 12px; }
@media (max-width: 900px) { .fa-service-detail-grid { grid-template-columns: 1fr; } .fa-service-detail-alt .fa-service-detail-media { order: 0; } }
@media (max-width: 600px) { .fa-detail-cols { grid-template-columns: 1fr; } }
.fa-table-wrap { overflow-x: auto; border-radius: var(--fa-radius); border: 1px solid var(--fa-line); background: #fff; }
.fa-table-wrap:focus-visible { outline: 3px solid var(--fa-accent); }
.fa-compare { width: 100%; border-collapse: collapse; min-width: 760px; font-size: 0.975rem; }
.fa-compare th, .fa-compare td { text-align: left; vertical-align: top; padding: 14px 16px; border-bottom: 1px solid var(--fa-line); }
.fa-compare thead th { background: var(--fa-primary); color: #fff; font-family: var(--font-primary); font-size: 0.9375rem; }
.fa-compare tbody th a { color: var(--fa-primary); font-weight: 700; }
.fa-compare tbody tr:nth-child(even) { background: var(--fa-pale); }
@media (max-width: 760px) {
  .fa-table-wrap { overflow: visible; border: 0; background: none; }
  .fa-compare { min-width: 0; }
  .fa-compare thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); }
  .fa-compare tr { display: block; background: #fff !important; border: 1px solid var(--fa-line); border-radius: var(--fa-radius); margin-bottom: 14px; padding: 6px 0; }
  .fa-compare th, .fa-compare td { display: block; border: 0; padding: 6px 16px; }
  .fa-compare td::before { content: attr(data-label); display: block; font-weight: 700; font-size: 0.8125rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--fa-gold-text); }
}

/* ---------- Care planning pathway ---------- */
.fa-pathway-wrap { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 32px; align-items: start; }
.fa-pathway, .fa-pathway-result { grid-column: 1; }
.fa-pathway-aside { grid-column: 2; grid-row: 1 / span 2; background: var(--fa-pale); border-radius: var(--fa-radius); padding: 20px; position: sticky; top: 100px; }
@media (max-width: 900px) { .fa-pathway-wrap { grid-template-columns: 1fr; } .fa-pathway-aside { grid-column: 1; grid-row: auto; position: static; } }
.fa-pathway { background: #fff; border-radius: var(--fa-radius-lg); border: 1px solid var(--fa-line); box-shadow: var(--fa-shadow); padding: clamp(20px, 4vw, 36px); }
.fa-pathway-progress p { font-weight: 700; color: var(--fa-primary); margin: 0 0 8px; }
.fa-progress-track { height: 8px; border-radius: 8px; background: var(--fa-line); overflow: hidden; margin-bottom: 22px; }
.fa-progress-track span { display: block; height: 100%; width: 0; background: linear-gradient(90deg, var(--fa-primary), var(--fa-teal-dark)); transition: width 0.3s ease; }
.fa-pathway:not(.fa-pathway-enhanced) .fa-pathway-progress, .fa-pathway:not(.fa-pathway-enhanced) .fa-pathway-nav { display: none; }
.fa-pathway-step { border: 0; margin: 0 0 18px; padding: 0; }
.fa-pathway-step > legend { font-family: var(--font-heading); font-weight: 700; font-size: clamp(1.35rem, 2.6vw, 1.7rem); color: var(--fa-primary); margin-bottom: 14px; padding: 0; }
.fa-pathway-step > legend:focus { outline: none; }
.fa-pathway-step > legend:focus-visible { outline: 3px solid var(--fa-accent); }
.fa-step-count { color: var(--fa-gold-text); margin-right: 4px; }
.fa-option-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.fa-option-grid-tight { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 640px) { .fa-option-grid, .fa-option-grid-tight { grid-template-columns: 1fr; } }
.fa-option { position: relative; display: block; cursor: pointer; }
.fa-option input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.fa-option-box { display: flex; flex-direction: column; justify-content: center; gap: 2px; min-height: 56px; padding: 12px 14px 12px 48px; border: 2px solid var(--fa-line); border-radius: 12px; background: #fff; transition: border-color 0.15s ease, background 0.15s ease; position: relative; }
.fa-option-box::before { content: ''; position: absolute; left: 14px; top: 50%; width: 22px; height: 22px; margin-top: -11px; border: 2px solid #6b7684; background: #fff; }
.fa-option input[type="radio"] + .fa-option-box::before { border-radius: 50%; }
.fa-option input[type="checkbox"] + .fa-option-box::before { border-radius: 5px; }
.fa-option input:checked + .fa-option-box { border-color: var(--fa-primary); background: var(--fa-pale); }
.fa-option input:checked + .fa-option-box::before { border-color: var(--fa-primary); background: var(--fa-primary); box-shadow: inset 0 0 0 4px #fff; }
.fa-option input:focus-visible + .fa-option-box { outline: 3px solid var(--fa-accent); outline-offset: 2px; }
.fa-option:hover .fa-option-box { border-color: var(--fa-teal-dark); }
.fa-option-label { font-weight: 600; color: var(--fa-ink); }
.fa-option-hint { font-size: 0.875rem; color: var(--fa-muted); }
.fa-pathway-step[aria-invalid="true"] .fa-option-box { border-color: #b3261e; }
.fa-pathway-nav { display: flex; justify-content: space-between; gap: 12px; border-top: 1px solid var(--fa-line); padding-top: 18px; }
.fa-pathway-nav [data-pathway-next] { margin-left: auto; }
.fa-pathway-result { background: #fff; border-radius: var(--fa-radius-lg); border: 1px solid var(--fa-line); box-shadow: var(--fa-shadow); padding: clamp(20px, 4vw, 36px); }
.fa-result-head h2 { color: var(--fa-primary); font-size: clamp(1.6rem, 3vw, 2.1rem); }
.fa-result-head h2:focus { outline: none; }
.fa-result-block { border-top: 1px solid var(--fa-line); padding-top: 18px; margin-top: 18px; }
.fa-result-block h3 { color: var(--fa-primary); font-size: 1.25rem; }
.fa-summary-list { display: grid; grid-template-columns: max-content 1fr; gap: 6px 18px; margin: 0; }
.fa-summary-list dt { font-weight: 700; color: var(--fa-ink); }
.fa-summary-list dd { margin: 0; }
@media (max-width: 560px) { .fa-summary-list { grid-template-columns: 1fr; } .fa-summary-list dd { margin-bottom: 8px; } }
.fa-result-services, .fa-result-routine, .fa-result-guides { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.fa-result-services li, .fa-result-routine li { display: flex; flex-direction: column; gap: 2px; padding: 12px 14px; border-radius: 12px; background: var(--fa-pale); border-left: 4px solid var(--fa-teal-dark); }
.fa-result-services a { color: var(--fa-primary); }
.fa-result-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
.fa-result-tools { display: flex; flex-wrap: wrap; gap: 6px 18px; margin-top: 10px; }

/* ---------- Sample plans ---------- */
.fa-plans-top { display: flex; flex-wrap: wrap; gap: 12px; justify-content: space-between; align-items: flex-start; }
.fa-plan-bar .fa-switch-btn { border-radius: 50px; padding: 8px 16px; }
.fa-plans-print { display: none; }
.fa-switch-enhanced .fa-plans-print { display: inline-flex; }
.fa-plan { background: #fff; border-radius: var(--fa-radius-lg); border: 1px solid var(--fa-line); box-shadow: var(--fa-shadow); padding: clamp(20px, 4vw, 36px); margin-bottom: 20px; }
.fa-plan-head h2 { color: var(--fa-primary); font-size: clamp(1.6rem, 3vw, 2.1rem); }
.fa-switch-enhanced .fa-plan-head h2.fa-visually-hidden-when-switched { position: static !important; width: auto; height: auto; margin: 0 0 10px; clip: auto; overflow: visible; white-space: normal; }
.fa-plan-service a { font-weight: 700; }
.fa-plan-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-top: 16px; }
@media (max-width: 700px) { .fa-plan-grid { grid-template-columns: 1fr; } }
.fa-plan-box { background: var(--fa-pale); border-radius: var(--fa-radius); padding: 16px 18px; }
.fa-plan-box h3 { font-size: 1.15rem; color: var(--fa-primary); margin: 0 0 8px; }
.fa-plan-box-plain { background: #fff; border: 1px dashed #9aa6b2; }
.fa-plan-schedule { margin-top: 20px; }
.fa-plan-schedule h3 { color: var(--fa-primary); }
.fa-table { width: 100%; border-collapse: collapse; }
.fa-table th, .fa-table td { text-align: left; vertical-align: top; padding: 12px 14px; border-bottom: 1px solid var(--fa-line); }
.fa-table thead th { background: var(--fa-primary); color: #fff; font-size: 0.9375rem; }
.fa-table tfoot th, .fa-table tfoot td { background: var(--fa-cream); font-weight: 700; color: var(--fa-ink); }
@media (max-width: 760px) {
  .fa-table-stack thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); }
  .fa-table-stack tr { display: block; border: 1px solid var(--fa-line); border-radius: 12px; margin-bottom: 12px; padding: 4px 0; }
  .fa-table-stack th, .fa-table-stack td { display: block; border: 0; padding: 6px 14px; }
  .fa-table-stack tbody td::before, .fa-table-stack tbody th::before { content: attr(data-label); display: block; font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; color: var(--fa-gold-text); }
  .fa-table-stack tfoot td { padding-top: 0; }
}

/* ---------- Guides ---------- */
.fa-guide-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
@media (max-width: 760px) { .fa-guide-grid { grid-template-columns: 1fr; } }
.fa-guide-card { background: #fff; border-radius: var(--fa-radius-lg); border: 1px solid var(--fa-line); border-top: 5px solid var(--fa-teal-dark); box-shadow: var(--fa-shadow); padding: 24px; display: flex; flex-direction: column; }
.fa-guide-navy { border-top-color: var(--fa-primary); }
.fa-guide-gold { border-top-color: var(--fa-accent); }
.fa-guide-purple { border-top-color: #6d3fc0; }
.fa-guide-icon { display: inline-flex; width: 52px; height: 52px; align-items: center; justify-content: center; border-radius: 50%; background: var(--fa-pale); color: var(--fa-primary); margin-bottom: 12px; }
.fa-guide-card h3 { color: var(--fa-primary); font-size: 1.3rem; }
.fa-guide-card > p { flex: 0 0 auto; }
.fa-guide-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: auto; padding-top: 10px; }
.fa-file-meta { font-weight: 400; font-size: 0.875rem; margin-left: 6px; }
.fa-guide-article { border-top: 1px solid var(--fa-line); scroll-margin-top: 20px; }
.fa-guide-article:nth-of-type(even) { background: var(--fa-pale); }
.fa-guide-article h2 { color: var(--fa-primary); font-size: clamp(1.75rem, 3vw, 2.2rem); }
.fa-guide-article h3 { color: var(--fa-primary); font-size: 1.25rem; margin-top: 22px; }

/* ---------- How Care Works additions ---------- */
.fa-stage-cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; padding-top: 4px; }
.fa-stage-cols h4 { font-family: var(--font-primary); font-size: 0.875rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--fa-gold-text); margin: 0 0 6px; }
.fa-stage-cols ul { margin: 0; padding-left: 1.1em; font-size: 0.975rem; }
@media (max-width: 760px) { .fa-stage-cols { grid-template-columns: 1fr; } }
.fa-checklist-card { background: #fff; border-radius: var(--fa-radius-lg); border: 1px solid var(--fa-line); box-shadow: var(--fa-shadow); padding: clamp(20px, 3vw, 28px); }
.fa-checklist-card h3 { color: var(--fa-primary); }
.fa-cost-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 24px; margin: 14px 0 6px; }
.fa-cost-grid ul { margin: 0 0 10px; padding-left: 1.1em; }
@media (max-width: 640px) { .fa-cost-grid { grid-template-columns: 1fr; } }

/* ---------- Service areas ---------- */
.fa-county-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
@media (max-width: 760px) { .fa-county-grid { grid-template-columns: 1fr; } }
.fa-county { background: #fff; border-radius: var(--fa-radius-lg); border: 1px solid var(--fa-line); padding: 24px; }
.fa-county h3 { display: flex; align-items: center; gap: 8px; color: var(--fa-primary); }
.fa-county h3 .fa-icon { color: var(--fa-teal-dark); }
.fa-city-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 16px; }
.fa-city-list li { padding: 6px 0; border-bottom: 1px solid #eef1f4; }
@media (max-width: 380px) { .fa-city-list { grid-template-columns: 1fr; } }

/* ---------- Portal ---------- */
.fa-portal-nav { background: #fff; border-bottom: 1px solid var(--fa-line); }
.fa-portal-nav ul { list-style: none; margin: 0; padding: 8px 0; display: flex; flex-wrap: wrap; gap: 6px; }
.fa-portal-nav a { display: inline-flex; align-items: center; min-height: 44px; padding: 6px 14px; border-radius: 8px; font-weight: 600; color: var(--fa-primary); }
.fa-portal-nav a[aria-current="page"] { background: var(--fa-primary); color: #fff; }

/* ---------- Existing homepage hero: keep text readable when enlarged ---------- */
.fa-home .hero-description { max-width: 620px; }

/* ---------- Print (6.9.0) ----------
   Every printout starts with the Frontline Aide header (name, contact details,
   document title, label, and date; filled in by js/fa-ui.js). Print buttons
   isolate one section by marking its ancestors .fa-print-path and the section
   itself .fa-print-target, so isolation works in any template wrapper. */
@media print {
  @page { margin: 14mm 14mm 16mm; }
  html, body { background: #fff !important; }
  body { font-size: 11.5pt !important; line-height: 1.45 !important; color: #000 !important; padding: 0 !important; margin: 0 !important; }
  *, *::before, *::after { box-shadow: none !important; text-shadow: none !important; animation: none !important; transition: none !important; }

  /* Header shown on every printout */
  .fa-print-header { display: block !important; border-bottom: 1.5pt solid #000; margin: 0 0 12pt; padding: 0 0 6pt; font-size: 10pt; color: #000; }
  .fa-print-header * { color: #000 !important; margin: 0; }
  .fa-print-header .fa-print-brand { font-size: 14pt; font-weight: 700; }
  .fa-print-header .fa-print-doc { font-size: 12pt; margin-top: 6pt; }
  .fa-print-header [data-fa-print-doc-label] { display: inline-block; margin-left: 6pt; padding: 0 5pt; border: 0.75pt solid #000; font-size: 9.5pt; text-transform: uppercase; letter-spacing: 0.04em; }
  .fa-print-header [data-fa-print-doc-label][hidden] { display: none !important; }
  .fa-print-only { display: block !important; }

  /* Site chrome, floating controls, and interactive elements */
  .top-bar, .site-header, .site-footer, .mobile-nav-panel, .mobile-nav-overlay, .fa-mobile-banner, .fla-callback-btn, .fla-callback-overlay,
  #backToTop, #ccNotice, .a11y-toggle-btn, .a11y-toolbar-panel, .skip-link, .fa-breadcrumb, .fa-switch-bar, .fa-switch-clear, .fa-switch-prompt,
  .fa-section-nav, .fa-jump, .fa-band-cta, .fa-pathway-aside, .fa-pathway, .fa-pathway-steps, .fa-result-tools, .fa-result-actions, .fa-handover,
  .fa-planner form, .fa-planner-actions, .fa-coverage, .fa-map, .care-inquiry, .fa-form-card form, .fa-print-hide, .fa-day-photo, .fa-recruit,
  .btn, button, .fa-text-btn, .fa-link-arrow, .fa-chip, iframe, video, noscript, .screen-reader-text { display: none !important; }

  /* Plain black on white */
  .hero-section, .page-hero, .fa-page-hero, .fa-hcw-hero, .fa-band, .fa-band-navy, .fa-section-pale, .fa-service-detail-alt,
  .fa-plan, .fa-plan-box, .fa-checklist-card, .fa-day-scenario, .fa-day-cols > div, .fa-pathway-result, .fa-notice, .fa-note, .fa-result-services li, .fa-result-routine li {
    background: none !important; color: #000 !important; min-height: 0 !important;
  }
  .hero-section::before, .hero-section::after, .page-hero::before, .fa-hcw-hero::before, .fa-hcw-hero::after { display: none !important; }
  .fa-section, .fa-band, .fa-page-hero, .fa-hcw-hero, .page-hero { padding: 6pt 0 !important; }
  .container, .fa-narrow { max-width: none !important; width: auto !important; padding: 0 !important; margin: 0 !important; }
  h1, h2, h3, h4, h5, h6, .fa-title, .fa-eyebrow, .fa-lead, p, li, dt, dd, td, th, span, small, strong, figcaption, label, legend { color: #000 !important; }
  h1 { font-size: 20pt !important; margin: 0 0 6pt !important; }
  h2 { font-size: 15pt !important; margin: 10pt 0 4pt !important; }
  h3 { font-size: 12.5pt !important; margin: 8pt 0 3pt !important; }
  h4, h5 { font-size: 11.5pt !important; }
  h1, h2, h3, h4, h5 { break-after: avoid; page-break-after: avoid; }
  p, li { orphans: 3; widows: 3; }
  li, tr, .fa-plan-box, .fa-step-list li, .fa-day-period, .fa-result-block, .fa-guide-article h3 + ul, .fa-pref-list li { break-inside: avoid; page-break-inside: avoid; }
  .fa-plan-box, .fa-checklist-card, .fa-notice, .fa-day-cols > div { border: 0.75pt solid #777 !important; padding: 6pt 8pt !important; border-radius: 0 !important; }
  .fa-plan-grid, .fa-day-cols, .fa-stage-cols, .fa-cost-grid, .fa-split { display: block !important; }
  .fa-plan-grid > *, .fa-day-cols > * { margin-bottom: 6pt; }
  a { color: #000 !important; text-decoration: underline !important; }
  .fa-print-urls a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 9pt; word-break: break-all; }
  img, svg { max-width: 100% !important; break-inside: avoid; }
  .fa-icon { display: none !important; }

  /* Tables print as tables, never clipped */
  .fa-table-wrap { overflow: visible !important; border: 0 !important; }
  table, .fa-table, .fa-compare { width: 100% !important; min-width: 0 !important; border-collapse: collapse !important; font-size: 10pt !important; display: table !important; }
  thead { display: table-header-group !important; position: static !important; width: auto !important; height: auto !important; clip: auto !important; overflow: visible !important; }
  tbody { display: table-row-group !important; } tfoot { display: table-footer-group !important; }
  tr { display: table-row !important; border: 0 !important; margin: 0 !important; padding: 0 !important; }
  th, td { display: table-cell !important; border: 0.75pt solid #555 !important; padding: 4pt 6pt !important; background: #fff !important; color: #000 !important; }
  td::before, th::before { content: none !important; }

  /* Switched panels: only the visible one prints, with its own heading */
  [data-fa-option][hidden] { display: none !important; }
  .fa-switch-enhanced .fa-visually-hidden-when-switched { position: static !important; width: auto !important; height: auto !important; margin: 0 0 6pt !important; clip: auto !important; overflow: visible !important; white-space: normal !important; }
  .fa-plans .fa-plan ~ .fa-plan:not([hidden]) { break-before: page; page-break-before: always; }

  /* Isolating one section */
  body.fa-printing > :not(.fa-print-path):not(.fa-print-keep) { display: none !important; }
  body.fa-printing .fa-print-path > :not(.fa-print-path):not(.fa-print-target):not(.fa-print-keep) { display: none !important; }
  body.fa-printing .fa-print-path { display: block !important; margin: 0 !important; padding: 0 !important; border: 0 !important; background: none !important; max-width: none !important; }
  body.fa-printing .fa-print-target { display: block !important; margin: 0 !important; padding: 0 !important; border: 0 !important; }
  body.fa-printing [data-fa-print-unhid] { display: block !important; }
  body.fa-printing .fa-print-target .fa-print-only { display: block !important; }
}

/* ---------- Contrast fixes for existing components (6.8.0 audit) ---------- */
.btn-gold, .btn-gold:visited, .career-apply-link, .career-apply-link:visited, .career-submit-btn { color: var(--fa-ink) !important; }
.contact-info-note, .fa-hcw-contact-card .fa-hcw-contact-note, .section-description { color: var(--fa-muted) !important; }
.fa-hcw-step-card .fa-hcw-step-kicker, .fa-hcw-contact-card .fa-hcw-contact-label { color: var(--fa-teal-dark); }
.services-section-badge { color: var(--fa-gold-text); }
.fa-trust-band-icon { color: var(--fa-gold-on-dark); }
.fa-breadcrumb, .fa-city-note, .section-heading p { color: var(--fa-muted) !important; }
.careers-cta-section { background-color: var(--fa-teal-dark) !important; }
.career-breadcrumb, .career-breadcrumb span { color: var(--fa-muted) !important; }
.auth-tab-btn { color: var(--fa-muted); }
.auth-tab-btn.active { color: var(--fa-primary); }
#career-file-name { color: var(--fa-muted) !important; }
.portal-tab.active { color: var(--fa-teal-dark) !important; }
.portal-hero a[style*="d4a017"], .portal-hero span[style*="d4a017"] { color: #ffe08a !important; }

/* Mobile: accessibility settings live in the menu instead of a floating button over content */
.fa-mobile-a11y { display: none; }
@media (max-width: 768px) {
  .a11y-toggle-btn { display: none !important; }
  .fa-mobile-a11y { display: flex; align-items: center; gap: 8px; width: calc(100% - 48px); margin: 8px 24px; min-height: 48px; padding: 10px 14px; border: 2px solid var(--fa-line); border-radius: 10px; background: #fff; color: var(--fa-primary); font: inherit; font-weight: 600; cursor: pointer; }
  .fa-mobile-a11y::before { content: 'Aa'; display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%; background: var(--fa-primary); color: #fff; font-size: 0.8rem; font-weight: 700; }
  .a11y-toolbar-panel { bottom: calc(80px + env(safe-area-inset-bottom, 0px)) !important; }
}

/* =========================================================================
   High contrast (accessibility toolbar), 6.9.0

   One coherent treatment instead of scattered exceptions. Two surfaces:
     light surfaces: white background, black text, dark blue underlined links;
     dark surfaces:  solid deep navy (#0b1b2b) with white text and pale yellow
                     underlined links. Photos and gradients behind text are
                     replaced by the solid color, so background and foreground
                     always change together.
   Buttons, selected controls, form messages, tables, and image titles have
   explicit pairs. Every pair below is at least 7:1.
   ========================================================================= */
html.a11y-high-contrast { --fa-hc-dark: #0b1b2b; --fa-hc-link: #0033a0; --fa-hc-link-dark: #ffe680; --fa-hc-gold: #f2c230; }
html.a11y-high-contrast body { background: #fff !important; color: #000 !important; }

/* Light surfaces */
html.a11y-high-contrast :is(.fa-section-pale, .fa-service-detail-alt, .fa-recruit, .fa-trust-band-compact, .fa-day-cols > div, .fa-plan-box, .fa-pathway-aside,
  .fa-result-services li, .fa-result-routine li, .fa-planner-total, .fa-summary-card, .fa-check-consent, .fa-step-list li, .fa-guide-article, .fa-who-tag) { background: #fff !important; }
html.a11y-high-contrast :is(p, li, span, small, strong, em, b, i, dt, dd, td, th, label, legend, figcaption, blockquote, cite, time, summary, caption, output, div, h1, h2, h3, h4, h5, h6) { color: #000 !important; }
html.a11y-high-contrast a { color: var(--fa-hc-link) !important; text-decoration: underline !important; text-decoration-thickness: 2px !important; }
html.a11y-high-contrast :is(input, select, textarea) { color: #000 !important; background: #fff !important; border: 2px solid #000 !important; }
html.a11y-high-contrast ::placeholder { color: #3d3d3d !important; opacity: 1; }
html.a11y-high-contrast :is(.fa-notice, .fa-note, .fa-empty, .fa-source-note, .fa-example-tag, .fa-coverage-result, .fa-visit-example, .fa-day-scenario, .fa-plan, .fa-form-card, .fa-checklist-card, .fa-factor, .fa-team-member, .fa-resource, .fa-tool, .fa-guide-card, .fa-county, .fa-details, .fa-summary-card) {
  background: #fff !important; border: 2px solid #000 !important;
}
html.a11y-high-contrast hr { border-color: #000 !important; }

/* Dark surfaces */
html.a11y-high-contrast :is(.top-bar, .hero-section, .page-hero, .fa-page-hero, .fa-hcw-hero, .fa-hcw-cta, .fa-band-navy, .fa-band-cta, .fa-city-hero, [id="fa-stats-section"],
  .site-footer, .gs-cta-section, .careers-cta-section, .portal-hero, .fa-surface-dark, [id="ccNotice"]) {
  background: var(--fa-hc-dark) !important; background-image: none !important; color: #fff !important;
}
html.a11y-high-contrast :is(.hero-section, .page-hero, .fa-hcw-hero, .fa-page-hero)::before,
html.a11y-high-contrast :is(.hero-section, .page-hero, .fa-hcw-hero, .fa-page-hero)::after { background: none !important; opacity: 0 !important; }
html.a11y-high-contrast :is(.top-bar, .hero-section, .page-hero, .fa-page-hero, .fa-hcw-hero, .fa-hcw-cta, .fa-band-navy, .fa-band-cta, .fa-city-hero, [id="fa-stats-section"],
  .site-footer, .gs-cta-section, .careers-cta-section, .portal-hero, .fa-surface-dark, [id="ccNotice"])
  :is(p, li, span, small, strong, em, b, i, dt, dd, td, th, label, legend, figcaption, blockquote, div, h1, h2, h3, h4, h5, h6, .fa-eyebrow) { color: #fff !important; }
html.a11y-high-contrast :is(.top-bar, .hero-section, .page-hero, .fa-page-hero, .fa-hcw-hero, .fa-hcw-cta, .fa-band-navy, .fa-band-cta, .fa-city-hero, [id="fa-stats-section"],
  .site-footer, .gs-cta-section, .careers-cta-section, .portal-hero, .fa-surface-dark, [id="ccNotice"]) a:not(.btn):not(.hero-cta-primary):not(.hero-cta-secondary):not(.fa-hcw-btn-gold):not(.fa-hcw-btn-ghost):not(.btn-gold):not(.career-apply-link) { color: var(--fa-hc-link-dark) !important; }
html.a11y-high-contrast :is(.fa-hcw-glance li, .fa-band-navy .fa-accountability li) { background: transparent !important; border: 1px solid #fff !important; }

/* Buttons: gold with black text, navy with white text, outline black, or ghost white on dark */
html.a11y-high-contrast :is(.btn, .btn-primary, .btn-secondary, .btn-outline, .btn-ghost, .hero-cta-primary, .hero-cta-secondary, .fa-hcw-btn-gold, .fa-hcw-btn-ghost, .care-nav-cta, .btn-gold, .career-apply-link, .btn-mobile-call) {
  text-decoration: none !important; border: 2px solid #000 !important;
}
html.a11y-high-contrast :is(.btn-primary, .hero-cta-primary, .fa-hcw-btn-gold, .care-nav-cta, .btn-gold, .career-apply-link, .career-submit-btn) { background: var(--fa-hc-gold) !important; background-image: none !important; color: #000 !important; }
html.a11y-high-contrast :is(.btn-primary, .hero-cta-primary, .fa-hcw-btn-gold, .care-nav-cta, .btn-gold, .career-apply-link, .career-submit-btn) * { color: #000 !important; }
html.a11y-high-contrast :is(.btn-secondary, .btn-mobile-call, .fla-callback-btn, .fla-cb-submit) { background: var(--fa-hc-dark) !important; background-image: none !important; color: #fff !important; border-color: var(--fa-hc-dark) !important; }
html.a11y-high-contrast :is(.btn-secondary, .btn-mobile-call, .fla-callback-btn, .fla-cb-submit) * { color: #fff !important; }
html.a11y-high-contrast .btn:not(.btn-primary):not(.btn-secondary):not(.btn-ghost):not(.care-nav-cta):not(.btn-mobile-call) { background: #fff !important; background-image: none !important; color: #000 !important; }
html.a11y-high-contrast .btn:not(.btn-primary):not(.btn-secondary):not(.btn-ghost):not(.care-nav-cta):not(.btn-mobile-call) * { color: #000 !important; }
html.a11y-high-contrast :is(.btn-ghost, .hero-cta-secondary, .fa-hcw-btn-ghost) { background: transparent !important; color: #fff !important; border-color: #fff !important; }
html.a11y-high-contrast :is(.btn-ghost, .hero-cta-secondary, .fa-hcw-btn-ghost) * { color: #fff !important; }
html.a11y-high-contrast :is(.fa-text-btn, .fa-link-arrow) { color: var(--fa-hc-link) !important; text-decoration: underline !important; }
html.a11y-high-contrast :is(.fa-service-card, .fa-tool, .fa-hcw-next-card) { text-decoration: none !important; }
html.a11y-high-contrast :is(.fa-tool-title, .fa-hcw-next-title) { text-decoration: underline !important; }

/* Selected controls: black fill plus a check mark, never color alone */
html.a11y-high-contrast :is(.fa-switch-btn, .fa-chip, .fa-step-link) { background: #fff !important; color: #000 !important; border: 2px solid #000 !important; }
html.a11y-high-contrast :is(.fa-switch-btn, .fa-chip, .fa-step-link) * { color: #000 !important; }
html.a11y-high-contrast :is(.fa-switch-btn[aria-pressed="true"], .fa-chip[aria-pressed="true"], .fa-step-link[aria-current="step"]) { background: #000 !important; color: #fff !important; }
html.a11y-high-contrast :is(.fa-switch-btn[aria-pressed="true"], .fa-chip[aria-pressed="true"], .fa-step-link[aria-current="step"]) * { color: #fff !important; }
html.a11y-high-contrast .fa-switch-btn[aria-pressed="true"]::after { content: "\2713"; width: auto; height: auto; background: none; color: #fff; font-weight: 700; }
html.a11y-high-contrast :is(.fa-option-box, .fa-day-check, .fa-check-card) { border: 2px solid #000 !important; background: #fff !important; }
html.a11y-high-contrast .fa-option input:checked + .fa-option-box,
html.a11y-high-contrast :is(.fa-day-check, .fa-check-card):has(input:checked) { border-width: 4px !important; }
html.a11y-high-contrast .fa-option-box::before { border-color: #000 !important; }
html.a11y-high-contrast .fa-option input:checked + .fa-option-box::before { background: #000 !important; border-color: #000 !important; }
html.a11y-high-contrast :is(input[type="checkbox"], input[type="radio"]) { accent-color: #000; }

/* Text over photographs: a solid navy label instead of a fade */
html.a11y-high-contrast :is(.fa-service-media, .fa-svc-media, .fa-service-photo, .fa-day-photo)::after { display: none !important; }
html.a11y-high-contrast :is(.fa-service-name, .fa-svc-card .fa-svc-title) {
  background: var(--fa-hc-dark) !important; color: #fff !important; left: 0 !important; right: 0 !important; bottom: 0 !important; padding: 8px 14px !important;
}
html.a11y-high-contrast .fa-service-name::after { background: #fff !important; }

/* Form messages and validation */
html.a11y-high-contrast :is(.fa-error-summary, .care-error-summary, .fa-form-success, .care-form-success, .fa-coverage-result) { background: #fff !important; border: 3px solid #000 !important; }
html.a11y-high-contrast :is(.fa-error-summary, .care-error-summary) { border-style: double !important; border-width: 6px !important; }
html.a11y-high-contrast .fa-field-error::before { background: #000 !important; color: #fff !important; }
html.a11y-high-contrast [aria-invalid="true"] { border: 3px solid #000 !important; outline: 2px dashed #000; outline-offset: 2px; }

/* Tables */
html.a11y-high-contrast :is(thead th, .fa-compare thead th, .fa-table thead th) { background: var(--fa-hc-dark) !important; color: #fff !important; }
html.a11y-high-contrast :is(table, th, td) { border-color: #000 !important; }
html.a11y-high-contrast :is(.fa-table tfoot th, .fa-table tfoot td, .fa-compare tbody tr:nth-child(even)) { background: #fff !important; }
html.a11y-high-contrast :is(.fa-compare td, .fa-table-stack td, .fa-table-stack th)::before { color: #000 !important; }

/* Mobile navigation, action bar, dialogs, and the accessibility settings themselves */
html.a11y-high-contrast :is(.mobile-nav-panel, .fla-callback-modal, .a11y-toolbar-panel, .fa-mobile-banner) { background: #fff !important; color: #000 !important; border: 2px solid #000 !important; }
html.a11y-high-contrast :is(.mobile-nav-panel, .fa-mobile-banner, .fla-callback-modal) a:not(.btn) { color: var(--fa-hc-link) !important; }
html.a11y-high-contrast .mobile-nav-menu .current-menu-item > a { outline: 2px solid #000; outline-offset: 2px; }
html.a11y-high-contrast :is(.a11y-btn, .a11y-reset-btn, .fa-mobile-a11y) { background: #fff !important; color: #000 !important; border: 2px solid #000 !important; }
html.a11y-high-contrast .a11y-btn.is-active { background: #000 !important; color: #fff !important; }
html.a11y-high-contrast .a11y-toggle-btn { background: #fff !important; color: #000 !important; border: 2px solid #000 !important; }
html.a11y-high-contrast .a11y-toggle-btn .a11y-icon { background: #000 !important; color: #fff !important; }
html.a11y-high-contrast .a11y-level-dots span { background: #fff !important; border: 1px solid #000; }
html.a11y-high-contrast .a11y-level-dots span.active { background: #000 !important; }
html.a11y-high-contrast .fa-mobile-a11y::before { background: #000 !important; color: #fff !important; }

/* Focus: always a thick ring in the current text color */
html.a11y-high-contrast :focus-visible { outline: 3px solid currentColor !important; outline-offset: 3px !important; box-shadow: 0 0 0 6px var(--fa-hc-gold) !important; }

/* Decorative images keep a border; the logo mark stays clean */
html.a11y-high-contrast img { border: 2px solid #000 !important; }
html.a11y-high-contrast img.site-logo-mark { border: 0 !important; }

/* =========================================================================
   6.9.0 components
   ========================================================================= */

/* Small labels */
.fa-optional, .fa-required { font-family: var(--fa-font-body); font-weight: 600; font-size: var(--fa-text-sm); color: var(--fa-muted); }

/* Section menu ("On this page"): normal flow, never sticky, so it cannot cover content or the mobile action bar */
.fa-section-nav { background: #fff; border-bottom: 1px solid var(--fa-line); }
.fa-section-nav ul { list-style: none; margin: 0; padding: var(--fa-space-2) 0; display: flex; flex-wrap: wrap; gap: var(--fa-space-2); }
.fa-section-nav a { display: inline-flex; align-items: center; min-height: 44px; padding: 6px 14px; border-radius: var(--fa-radius-pill); border: 1px solid var(--fa-line); color: var(--fa-primary); font-weight: 600; text-decoration: none; }
.fa-section-nav a:hover { border-color: var(--fa-teal-dark); background: var(--fa-pale); }
@media (max-width: 600px) { .fa-section-nav a { flex: 1 1 calc(50% - 8px); justify-content: center; text-align: center; } }

/* Who provides support: icon + words on a soft tint (labels, not buttons) */
.fa-who-tag { display: inline-flex; align-items: center; gap: 6px; padding: 2px 10px 2px 8px; border-radius: 6px; font-size: var(--fa-text-sm); font-weight: 700; line-height: 1.5; white-space: nowrap; border: 0; }
.fa-who-tag.fa-who-caregiver { color: #0b4f57; background: #dff0f2; }
.fa-who-tag.fa-who-family { color: #5c4500; background: #fbf0cf; }
.fa-who-tag.fa-who-self { color: #3c4650; background: #eceff3; }

/* A Day With Care */
.fa-day-scenario { border: 1px solid var(--fa-line); }
.fa-day-head { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: var(--fa-space-5); align-items: center; margin-bottom: var(--fa-space-5); }
.fa-day-photo img { width: 100%; aspect-ratio: 1 / 1; height: auto; object-fit: cover; border-radius: var(--fa-radius); display: block; }
.fa-day-service { display: inline-flex; align-items: center; gap: 8px; margin: 0 0 6px; font-weight: 700; font-size: var(--fa-text-sm); letter-spacing: 0.04em; text-transform: uppercase; color: var(--fa-teal-dark); }
.fa-day-intro h3 { color: var(--fa-primary); font-size: clamp(1.4rem, 2.6vw, 1.8rem); margin: 0 0 8px; }
.fa-switch-enhanced .fa-day-intro h3.fa-visually-hidden-when-switched { position: static !important; width: auto; height: auto; margin: 0 0 8px; clip: auto; overflow: visible; white-space: normal; }
.fa-day-summary { margin-bottom: 14px; }
.fa-day-links { display: flex; flex-wrap: wrap; gap: 6px 22px; margin: 0; font-weight: 700; }
@media (max-width: 700px) { .fa-day-head { grid-template-columns: 1fr; gap: var(--fa-space-4); } .fa-day-photo img { aspect-ratio: 16 / 9; } }

.fa-day-chart { background: var(--fa-pale); border-radius: var(--fa-radius); padding: 18px 20px 14px; margin-bottom: var(--fa-space-4); }
.fa-day-key { list-style: none; margin: 0 0 14px; padding: 0; display: flex; flex-wrap: wrap; gap: 10px 28px; }
.fa-day-key-item { display: flex; align-items: center; gap: 10px; }
.fa-day-key-item > span:last-child { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 6px; }
.fa-day-key-label { color: var(--fa-text); }
.fa-day-key-item strong { color: var(--fa-ink); font-size: 1.0625rem; }
.fa-day-key-note { color: var(--fa-muted); font-size: var(--fa-text-sm); }
.fa-day-swatch { flex: none; width: 28px; height: 16px; border-radius: 4px; }
.fa-who-caregiver.fa-day-swatch, .fa-timeline-block.fa-who-caregiver { background: var(--fa-teal-dark); }
.fa-who-family.fa-day-swatch, .fa-timeline-block.fa-who-family { background: repeating-linear-gradient(135deg, #f7e4a6 0 5px, #e9c45c 5px 10px); }
.fa-who-self.fa-day-swatch, .fa-timeline-block.fa-who-self { background-color: #fff; background-image: radial-gradient(#a9b4bf 1.2px, transparent 1.4px); background-size: 8px 8px; box-shadow: inset 0 0 0 1px #c6ced6; }

.fa-timeline { margin: 0; padding-bottom: 22px; position: relative; }
.fa-timeline-track { position: relative; height: 48px; border-radius: 8px; background-color: #fff; box-shadow: inset 0 0 0 1px var(--fa-line);
  background-image: repeating-linear-gradient(90deg, transparent 0 calc(12.5% - 1px), #e3e8ee calc(12.5% - 1px) 12.5%); overflow: hidden; }
.fa-timeline-block { position: absolute; top: 5px; bottom: 5px; border-radius: 6px; display: flex; align-items: center; justify-content: center; padding: 0 6px; font-size: 0.8125rem; font-weight: 700; overflow: hidden; white-space: nowrap; border: 0; }
.fa-timeline-block > span { overflow: hidden; text-overflow: ellipsis; }
.fa-timeline-block.fa-who-caregiver { color: #fff; box-shadow: 0 2px 6px rgba(11, 79, 87, 0.28); z-index: 1; }
.fa-timeline-block.fa-who-family > span { color: #3d2e00; background: rgba(255, 255, 255, 0.85); border-radius: 4px; padding: 0 6px; }
.fa-timeline-block.fa-who-self > span { color: var(--fa-text); background: #fff; border-radius: 4px; padding: 0 6px; font-weight: 600; }
.fa-timeline-axis { position: absolute; left: 0; right: 0; bottom: 0; height: 18px; font-size: 0.8125rem; color: var(--fa-muted); }
.fa-timeline-axis span { position: absolute; top: 0; transform: translateX(-50%); white-space: nowrap; }
.fa-timeline-axis span:first-child { transform: none; }
.fa-timeline-axis span:last-child { transform: translateX(-100%); }
.fa-timeline-axis .is-major { color: var(--fa-ink); font-weight: 600; }
@media (max-width: 600px) { .fa-timeline-axis .is-minor { display: none; } .fa-day-chart { padding: 14px 12px 10px; } .fa-timeline-block > span { display: none; } .fa-timeline-track { height: 32px; } }

.fa-day-glance-title { font-family: var(--fa-font-body); font-size: var(--fa-text-sm); text-transform: uppercase; letter-spacing: 0.06em; color: var(--fa-gold-text); margin: var(--fa-space-3) 0 var(--fa-space-2); }
.fa-day-glance { list-style: none; margin: 0 0 var(--fa-space-4); padding: 0; display: grid; gap: 0; border-top: 1px solid var(--fa-line); }
.fa-day-glance li { display: grid; grid-template-columns: 11em minmax(0, 1fr) auto; align-items: center; gap: 4px 14px; padding: 9px 4px 9px 14px; border-bottom: 1px solid var(--fa-line); border-left: 4px solid transparent; }
.fa-day-glance li.fa-glance-caregiver { border-left-color: var(--fa-teal-dark); background: #f3f9fa; }
.fa-day-glance li.fa-glance-family { border-left-color: #c99a17; }
.fa-day-glance li.fa-glance-self { border-left-color: #c6ced6; }
.fa-day-glance-time { font-weight: 700; color: var(--fa-ink); font-variant-numeric: tabular-nums; }
@media (max-width: 600px) { .fa-day-glance li { grid-template-columns: 1fr auto; } .fa-day-glance-what { grid-column: 1 / -1; grid-row: 2; } }
.fa-day-periods { display: grid; gap: var(--fa-space-4); }
.fa-day-period { border-top: 1px solid var(--fa-line); padding-top: var(--fa-space-4); }
.fa-day-period h4 { display: flex; align-items: center; gap: 8px; color: var(--fa-primary); font-size: 1.15rem; margin: 0 0 6px; }
.fa-day-time { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-weight: 700; color: var(--fa-ink); margin-bottom: 10px; }
.fa-day-note-inline { display: flex; gap: 8px; align-items: flex-start; background: var(--fa-cream); border-radius: var(--fa-radius-sm); padding: 10px 12px; }
.fa-day-cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--fa-space-3); margin: 0; }
.fa-day-cols > div { background: var(--fa-pale); border-radius: 12px; padding: 14px 16px; }
.fa-day-cols dt { font-family: var(--fa-font-body); font-size: 0.875rem; letter-spacing: 0.05em; text-transform: uppercase; color: var(--fa-gold-text); font-weight: 700; margin: 0 0 6px; }
.fa-day-cols dd { margin: 0; }
.fa-day-cols ul { margin: 0; padding-left: 1.1em; }
.fa-day-family { display: block; margin-top: 8px; }
.fa-day-more { margin-top: var(--fa-space-3); }
@media (max-width: 800px) { .fa-day-cols { grid-template-columns: 1fr; } }

/* Combined matching, communication, and accountability band */
.fa-trust-cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--fa-space-5); margin-bottom: var(--fa-space-4); }
.fa-trust-cols h3 { display: flex; align-items: center; gap: 10px; font-size: 1.15rem; margin: 0 0 8px; color: #fff; }
.fa-trust-cols .fa-icon { color: var(--fa-gold-on-dark); }
@media (max-width: 900px) { .fa-trust-cols { grid-template-columns: 1fr; } }
.fa-details-dark { background: rgba(255, 255, 255, 0.06); border-color: rgba(255, 255, 255, 0.35); }
.fa-details-dark > summary { color: #fff; }
.fa-band-navy .fa-accountability li { padding-top: var(--fa-space-3); }
.fa-section .fa-accountability h3, .fa-section-pale .fa-accountability h3 { color: var(--fa-primary); }
.fa-section .fa-accountability .fa-icon { color: var(--fa-teal-dark); }

/* Team */
.fa-team-facts { margin: var(--fa-space-2) 0 0; }
.fa-team-facts dt { font-weight: 700; color: var(--fa-ink); font-size: var(--fa-text-sm); margin-top: 8px; }
.fa-team-facts dd { margin: 2px 0 0; }
.fa-about-photo { margin: 0; }
.fa-about-photo img { width: 100%; height: auto; border-radius: var(--fa-radius-lg); display: block; }

/* Resource directory */
.fa-filter-controls { grid-template-columns: minmax(0, 1.4fr) repeat(2, minmax(0, 1fr)); }
.fa-filter-status { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 16px; }
.fa-filter-status .fa-small { margin: 0; }
@media (max-width: 700px) { .fa-filter-controls { grid-template-columns: 1fr; } }
.fa-filter-controls[hidden] { display: none; }
.fa-resource-kind { display: inline-block; margin: 0 0 6px; font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; color: var(--fa-gold-text); }
.fa-resource-awaiting { border-left: 4px solid var(--fa-accent); padding-left: 12px; }

/* Coverage results: a text label states the outcome, the color only supports it */
.fa-coverage-status { font-weight: 700; color: var(--fa-ink); }
.fa-coverage-confirm { border-left-color: var(--fa-accent); background: var(--fa-cream); }
.fa-coverage-conflict { border-left-color: var(--fa-danger); background: var(--fa-danger-bg); }
.fa-coverage-out { border-left-color: #6b7684; background: #f3f4f6; }
.fa-coverage-in { border-left-color: var(--fa-success); background: var(--fa-success-bg); }
.fa-coverage-actions { display: flex; flex-wrap: wrap; gap: 6px 18px; margin: 8px 0 0; }
.fa-coverage-actions a { display: inline-flex; align-items: center; min-height: 44px; }
.fa-coverage-choices:empty { display: none; }

/* Weekly planner */
.fa-planner-form .fa-option-grid { margin-bottom: var(--fa-space-2); }
.fa-planner-days { margin-bottom: var(--fa-space-3); }
.fa-planner-days td, .fa-planner-days th { vertical-align: middle; }
.fa-planner-days select { min-height: 44px; width: 100%; padding: 6px 10px; border: 2px solid var(--fa-border-strong); border-radius: var(--fa-radius-sm); font: inherit; background: #fff; }
.fa-schedule-outline { margin-top: var(--fa-space-4); padding: var(--fa-space-4) var(--fa-space-5); background: #fff; border: 1px solid var(--fa-line); border-radius: var(--fa-radius-lg); }
.fa-planner-actions { display: flex; flex-wrap: wrap; gap: var(--fa-space-3); margin-top: var(--fa-space-4); }
.fa-planner-actions form { margin: 0; }
@media (max-width: 520px) { .fa-planner-days thead { display: none; } .fa-planner-days tr { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; padding: 8px 0; border-bottom: 1px solid var(--fa-line); } .fa-planner-days th { grid-column: 1 / -1; border: 0; padding: 0; } .fa-planner-days td { border: 0; padding: 0; } }

/* Planning pathway: step list, review stage */
.fa-pathway-steps ol { list-style: none; margin: 0 0 var(--fa-space-4); padding: 0; display: flex; flex-wrap: wrap; gap: var(--fa-space-2); }
.fa-step-link { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 6px 12px; border-radius: var(--fa-radius-pill); border: 2px solid var(--fa-line); background: #fff; color: var(--fa-ink); font: inherit; font-size: var(--fa-text-sm); font-weight: 600; cursor: pointer; }
.fa-step-link .fa-step-num { display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; border-radius: 50%; background: var(--fa-pale); border: 1px solid var(--fa-border-strong); font-weight: 700; }
.fa-step-link.is-done .fa-step-num::after { content: '\2713'; font-size: 0.75rem; margin-left: 1px; }
.fa-step-link.is-done .fa-step-num { background: var(--fa-success-bg); border-color: var(--fa-success); }
.fa-step-link[aria-current="step"] { background: var(--fa-primary); border-color: var(--fa-primary); color: #fff; }
.fa-step-link[aria-current="step"] .fa-step-num { background: #fff; color: var(--fa-primary); border-color: #fff; }
.fa-step-link:disabled { cursor: not-allowed; color: var(--fa-muted); background: #f7f8fa; border-style: dashed; }
.fa-step-opt { font-weight: 400; font-size: 0.8125rem; }
.fa-pathway:not(.fa-pathway-enhanced) .fa-pathway-steps { display: none; }
.fa-pathway-review-title { font-size: clamp(1.35rem, 2.6vw, 1.7rem); color: var(--fa-primary); }
.fa-review-list { margin: 0; display: grid; gap: 0; }
.fa-review-row { display: grid; grid-template-columns: minmax(10em, 0.8fr) minmax(0, 1.6fr) auto; gap: 4px 16px; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--fa-line); }
.fa-review-row dt { font-weight: 700; color: var(--fa-ink); }
.fa-review-row dd { margin: 0; }
@media (max-width: 560px) { .fa-review-row { grid-template-columns: 1fr auto; } .fa-review-row dd:not(.fa-review-edit) { grid-column: 1 / 2; } .fa-review-edit { grid-row: 1 / span 2; grid-column: 2; } }
.fa-pathway-nav { flex-wrap: wrap; }
.fa-result-example { display: inline-block; margin-top: 4px; font-weight: 600; }
.fa-referral-callout { margin: var(--fa-space-4) 0; }
.fa-handover-wrap { display: flex; flex-direction: column; gap: var(--fa-space-2); align-items: flex-start; }
.fa-handover { margin: 0; }

/* Planning summary inside the inquiry form */
.fa-summary-card { border: 2px solid var(--fa-teal-dark); border-radius: var(--fa-radius); padding: var(--fa-space-4) var(--fa-space-4) var(--fa-space-2); margin: 0 0 var(--fa-space-4); background: #fff; }
.fa-summary-card > legend { font-family: var(--fa-font-heading); font-weight: 700; font-size: 1.2rem; color: var(--fa-primary); padding: 0 6px; }
.fa-summary-days caption { text-align: left; font-weight: 700; color: var(--fa-ink); padding: 0 0 6px; }
.fa-summary-days select { min-height: 44px; padding: 6px 8px; border: 2px solid var(--fa-border-strong); border-radius: var(--fa-radius-sm); font: inherit; background: #fff; max-width: 100%; }
.fa-summary-days select:disabled { background: #f1f3f5; color: var(--fa-muted); }
@media (max-width: 560px) { .fa-summary-days thead { display: none; } .fa-summary-days tr { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; padding: 8px 0; } .fa-summary-days th[scope="row"] { grid-column: 1 / -1; } .fa-summary-days td, .fa-summary-days th { border: 0; padding: 0; } }

/* Inquiry form layout inside cards */
.care-inquiry-form .fa-fieldset > legend { margin-bottom: var(--fa-space-3); }
.care-inquiry-form select, .care-inquiry-form textarea, .care-inquiry-form input[type="date"] { width: 100%; min-height: 48px; padding: 10px 14px; border: 2px solid #8a96a3; border-radius: 10px; font: inherit; font-size: 1.0625rem; color: var(--fa-ink); background: #fff; }
.care-inquiry-form textarea { min-height: 110px; }

/* Sample plans */
.fa-plans-print { display: none; flex-wrap: wrap; gap: var(--fa-space-2); }
.fa-switch-enhanced .fa-plans-print { display: flex; }
.fa-plan-prefs { margin-top: var(--fa-space-4); }
.fa-plan-prefs h3 { color: var(--fa-primary); }
.fa-pref-table th[scope="row"] { font-weight: 700; color: var(--fa-ink); width: 40%; }
.fa-plan-box h3 .fa-who-tag { margin-right: 6px; vertical-align: middle; }

/* FAQ groups */
.fa-faq-group + .fa-faq-group { margin-top: var(--fa-space-6); }

/* Reduced motion: no transforms on hover either */
@media (prefers-reduced-motion: reduce) {
  .fa-service-card:hover, .fa-tool:hover, .fa-service-card:hover .fa-service-media img, .fa-link-arrow:hover .fa-icon { transform: none !important; }
}

/* High contrast for the 6.9.0 components */
html.a11y-high-contrast :is(.fa-who-tag, .fa-section-nav a, .fa-timeline-block) { background: #fff !important; color: #000 !important; border-color: #000 !important; }
html.a11y-high-contrast .fa-timeline-block.fa-who-caregiver { background: #000 !important; color: #fff !important; }
html.a11y-high-contrast .fa-timeline-block.fa-who-caregiver * { color: #fff !important; }
html.a11y-high-contrast .fa-who-tag.fa-who-caregiver { border: 2px solid #000 !important; }
html.a11y-high-contrast .fa-who-tag.fa-who-family { border: 2px dashed #000 !important; }
html.a11y-high-contrast .fa-who-tag.fa-who-self { border: 2px dotted #000 !important; }
html.a11y-high-contrast .fa-day-chart, html.a11y-high-contrast .fa-day-glance li { background: #fff !important; border-color: #000 !important; }
html.a11y-high-contrast .fa-timeline-track { box-shadow: inset 0 0 0 2px #000 !important; background: #fff !important; }
html.a11y-high-contrast .fa-day-swatch.fa-who-caregiver { background: #000 !important; }
html.a11y-high-contrast :is(.fa-day-swatch, .fa-timeline-block).fa-who-family { background: repeating-linear-gradient(135deg, #fff 0 4px, #000 4px 6px) !important; box-shadow: inset 0 0 0 2px #000 !important; }
html.a11y-high-contrast :is(.fa-day-swatch, .fa-timeline-block).fa-who-self { background: #fff !important; box-shadow: inset 0 0 0 2px #000 !important; }
html.a11y-high-contrast .fa-timeline-block :is(span) { background: #fff !important; color: #000 !important; }
html.a11y-high-contrast .fa-timeline-block.fa-who-caregiver span { background: transparent !important; }
html.a11y-high-contrast .fa-day-service, html.a11y-high-contrast .fa-timeline-axis span { color: #000 !important; }
html.a11y-high-contrast .fa-timeline-track { background: #fff !important; border: 2px solid #000 !important; }
html.a11y-high-contrast .fa-details-dark { background: transparent !important; border-color: #fff !important; }
html.a11y-high-contrast .fa-band-navy .fa-details-dark > summary { color: #fff !important; }
html.a11y-high-contrast .fa-step-link .fa-step-num { background: #fff !important; color: #000 !important; border-color: #000 !important; }
html.a11y-high-contrast .fa-summary-card { border: 3px solid #000 !important; }

/* Print for the 6.9.0 components */
@media print {
  .fa-who-legend, .fa-day-photo, .fa-timeline, .fa-day-swatch, .fa-plans-print, .fa-section-nav { display: none !important; }
  .fa-day-chart { background: none !important; padding: 0 !important; }
  .fa-who-tag { border: 0.75pt solid #000 !important; padding: 0 3pt !important; color: #000 !important; }
  .fa-schedule-outline { border: 0 !important; padding: 0 !important; }
  .fa-day-more > summary { display: none !important; }
}

/* Services jump menu: wraps instead of scrolling sideways; sticky only where there is room */
.fa-jump ul { flex-wrap: wrap; overflow: visible; }
@media (max-width: 900px), (max-height: 700px) { .fa-jump { position: static; } }

/* 6.9.0: no entrance or attention animations. The hero is readable at first paint, and calls to action do not pulse. */
.hero-headline, .hero-description, .hero-cta-group, .hero-location, .btn-cta { animation: none !important; }

/* 6.9.0 contrast audit fixes for existing components */
.top-bar-phone-label { color: #fff; }
.fa-page-hero .fa-eyebrow, .fa-hcw-hero .fa-eyebrow, .fa-band-cta .fa-eyebrow { color: #ffe08a; }
.footer-badge { color: #f0c040; }
.career-required { color: #b3261e !important; }
html.a11y-high-contrast .career-form-step { background: #000 !important; color: #fff !important; }
html.a11y-high-contrast :is(.top-bar, .site-footer, .careers-cta-section, .fa-surface-dark, .page-hero) :is(.btn-gold, .career-apply-link) { background: var(--fa-hc-gold) !important; color: #000 !important; }

/* Sample plans in print: compact enough that each example fits on two pages */
@media print {
  .fa-plans-page .fa-plan { font-size: 10pt !important; line-height: 1.35 !important; }
  .fa-plans-page .fa-plan .fa-lead { font-size: 10.5pt !important; margin-bottom: 4pt !important; }
  .fa-plans-page .fa-plan h2 { font-size: 14pt !important; margin: 2pt 0 !important; }
  .fa-plans-page .fa-plan h3 { font-size: 11pt !important; margin: 6pt 0 2pt !important; }
  .fa-plans-page .fa-plan-grid { display: grid !important; grid-template-columns: 1fr 1fr; gap: 6pt; margin-top: 6pt !important; }
  .fa-plans-page .fa-plan-box { padding: 4pt 6pt !important; }
  .fa-plans-page .fa-bullets li, .fa-plans-page .fa-checks li { padding: 1pt 0 1pt 12pt !important; }
  .fa-plans-page .fa-bullets li::before, .fa-plans-page .fa-checks li::before { display: none !important; }
  .fa-plans-page .fa-plan-service, .fa-plans-page .fa-plan .fa-example-tag, .fa-plans-page .fa-plan-box-plain .fa-small { display: none !important; }
  .fa-plans-page th, .fa-plans-page td { padding: 2pt 4pt !important; font-size: 9.5pt !important; }
  .fa-plans-page .fa-plan > .fa-print-only { break-before: avoid; page-break-before: avoid; margin: 4pt 0 0; font-size: 9pt; }
  .fa-plans-page .fa-plan-schedule, .fa-plans-page .fa-plan-prefs { margin-top: 6pt !important; }
}

/* Keep focused or scrolled-to controls clear of the fixed bottom buttons and the mobile action bar */
html { scroll-padding-bottom: 96px; }
@media (max-width: 768px) { html { scroll-padding-bottom: calc(96px + env(safe-area-inset-bottom, 0px)); } }
