:root {
  color-scheme: light;
  --ink: #101936;
  --ink-soft: #283254;
  --ink-faint: #616a84;
  --violet: #4e4ca3;
  --violet-deep: #393787;
  --violet-pale: #f0eeff;
  --green: #40b84a;
  --green-deep: #287431;
  --green-pale: #eef8ee;
  --paper: #fffefe;
  --mist: #f6f6f9;
  --line: #dfe1e9;
  --line-strong: #c9cbd8;
  --serif: Georgia, "Times New Roman", serif;
  --sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

/* WordPress runtime helpers. These preserve the original layout while adding
   production form states and accessible script-controlled visibility. */
[hidden] {
  display: none !important;
}

.contact-form-trap {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.form-status {
  display: flex;
  align-items: flex-start;
  gap: 0.55rem;
  margin: 0;
  padding: 0.8rem;
  border-left: 2px solid var(--violet);
  color: var(--ink-soft);
  background: var(--violet-pale);
  font-size: 0.85rem;
  font-weight: 650;
  line-height: 1.5;
}

.form-status--success {
  border-left-color: var(--green);
  color: var(--green-deep);
  background: var(--green-pale);
}

.form-status--error {
  border-left-color: #b42318;
  color: #7a271a;
  background: #fff1f0;
}

.care-form button[disabled] {
  cursor: wait;
  opacity: 0.68;
}

.employee-popup[hidden] {
  display: none !important;
}

.employee-popup__media img,
.employee-month-photo img {
  object-fit: cover;
}

/* The WordPress runtime keeps the original menu SVG and morphs it into a
   close control, matching the React open state without shipping another icon. */
.menu-toggle svg line,
.hero-mobile-nav-toggle svg line {
  transform-box: fill-box;
  transform-origin: center;
  transition: opacity 160ms ease, transform 180ms ease;
}

.menu-toggle[aria-expanded="true"] svg line:nth-child(1),
.hero-mobile-nav-toggle[aria-expanded="true"] svg line:nth-child(1) {
  opacity: 0;
}

.menu-toggle[aria-expanded="true"] svg line:nth-child(2),
.hero-mobile-nav-toggle[aria-expanded="true"] svg line:nth-child(2) {
  transform: translateY(6px) rotate(45deg);
}

.menu-toggle[aria-expanded="true"] svg line:nth-child(3),
.hero-mobile-nav-toggle[aria-expanded="true"] svg line:nth-child(3) {
  transform: translateY(-6px) rotate(-45deg);
}

body.admin-bar .site-header {
  z-index: 9998;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

html,
body {
  min-height: 100%;
  margin: 0;
  background: var(--paper);
}

body {
  overflow-x: hidden;
  color: var(--ink);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

a {
  color: inherit;
  text-decoration: none;
}

button,
input,
select,
textarea {
  font: inherit;
}

button {
  cursor: pointer;
}

img {
  max-width: 100%;
}

h1,
h2,
h3,
p {
  margin-top: 0;
}

h1,
h2,
h3 {
  color: var(--ink);
  letter-spacing: -0.045em;
}

h1,
h2 {
  font-family: var(--serif);
  font-weight: 400;
  line-height: 0.99;
}

h3 {
  font-family: var(--sans);
  font-weight: 650;
  line-height: 1.15;
}

.shell {
  width: min(1180px, calc(100% - 64px));
  margin-inline: auto;
}

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

.skip-link {
  position: fixed;
  z-index: 1000;
  left: 1rem;
  top: -4rem;
  padding: 0.7rem 0.95rem;
  border-radius: 0.5rem;
  background: var(--ink);
  color: #fff;
  font-weight: 700;
}

.skip-link:focus {
  top: 1rem;
}

.eyebrow {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  margin-bottom: 0.9rem;
  color: var(--green-deep);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  line-height: 1.2;
  text-transform: uppercase;
}

.eyebrow span {
  width: 24px;
  height: 2px;
  background: currentColor;
}

.eyebrow--light {
  color: #dceadd;
}

.button {
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  gap: 0.7rem;
  padding: 0.78rem 1.05rem;
  border: 1px solid transparent;
  border-radius: 0.55rem;
  font-size: 0.91rem;
  font-weight: 750;
  line-height: 1;
  transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease, transform 160ms ease;
}

.button:hover {
  transform: translateY(-2px);
}

.button--primary {
  background: var(--violet);
  color: #fff;
  box-shadow: 0 8px 18px rgba(55, 51, 135, 0.16);
}

.button--primary:hover {
  background: var(--violet-deep);
}

.button--white {
  background: #fff;
  color: var(--violet-deep);
}

.button--white:hover {
  background: #f0f0fb;
}

.button--outline {
  border-color: var(--violet);
  color: var(--violet-deep);
  background: transparent;
}

.button--outline:hover {
  background: var(--violet-pale);
}

.button--outline-light {
  border-color: rgba(255, 255, 255, 0.7);
  color: #fff;
  background: transparent;
}

.button--outline-light:hover {
  background: rgba(255, 255, 255, 0.1);
}

.text-link {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  color: var(--violet-deep);
  font-size: 0.92rem;
  font-weight: 800;
}

.text-link svg {
  transition: transform 160ms ease;
}

.text-link:hover svg {
  transform: translateX(3px);
}

.text-link--light {
  color: #fff;
}

/* Rebuilt hero: the photo is the only image; all UI is semantic markup. */
.hero-shell {
  width: 100%;
  height: 100svh;
  min-height: 100svh;
  overflow: hidden;
  background: var(--paper);
}

.hero-frame {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 0;
  aspect-ratio: auto;
  overflow: hidden;
  isolation: isolate;
}

.hero-photo {
  position: absolute;
  z-index: 0;
  inset: 0 0 0 42%;
  overflow: hidden;
  background: #f5f4f8;
}

.hero-photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 52% center;
  user-select: none;
  -webkit-user-drag: none;
}

.hero-photo::before,
.hero-photo::after {
  position: absolute;
  z-index: 1;
  pointer-events: none;
  content: "";
}

.hero-photo::before {
  inset: 0;
  background:
    linear-gradient(to left, var(--paper) 0%, rgba(255, 254, 254, 0.82) 5%, rgba(255, 254, 254, 0.28) 11%, rgba(255, 254, 254, 0) 19%),
    linear-gradient(to bottom, var(--paper) 0%, rgba(255, 254, 254, 0.78) 82px, rgba(255, 254, 254, 0.2) 116px, rgba(255, 254, 254, 0) 154px);
}

.hero-photo::after {
  right: 0;
  bottom: 0;
  left: 0;
  height: clamp(64px, 15%, 126px);
  background: linear-gradient(to top, var(--paper) 0%, rgba(255, 254, 254, 0.68) 34%, rgba(255, 254, 254, 0) 100%);
}

.hero-photo-seam {
  position: absolute;
  z-index: 1;
  inset: 0 auto 0 34%;
  width: 24%;
  pointer-events: none;
  background: linear-gradient(90deg, var(--paper) 0%, rgba(255, 254, 254, 0.96) 24%, rgba(255, 254, 254, 0.72) 48%, rgba(255, 254, 254, 0.28) 76%, rgba(255, 254, 254, 0) 100%);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
}

.hero-header {
  position: absolute;
  z-index: 5;
  top: 0;
  right: 0;
  left: 0;
  width: 100%;
  height: 80px;
  display: flex;
  align-items: center;
  margin-inline: auto;
  padding: 0 clamp(24px, 4.1vw, 68px);
  background: var(--paper);
  box-shadow: 0 1px 12px rgba(16, 25, 54, 0.04);
}

.hero-brand {
  display: block;
  width: 245px;
  height: 80px;
  flex: 0 0 auto;
}

.hero-brand img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.hero-nav {
  display: flex;
  align-items: center;
  align-self: stretch;
  gap: clamp(22px, 2.7vw, 36px);
  height: 80px;
  margin-left: auto;
}

.hero-nav a {
  position: relative;
  height: 80px;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  color: var(--ink);
  font-size: 12px;
  font-weight: 500;
  white-space: nowrap;
  transition: color 160ms ease;
}

.hero-services-dropdown {
  position: relative;
  height: 80px;
  display: flex;
  align-items: stretch;
}

.hero-services-trigger {
  height: 80px;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0;
  border: 0;
  color: var(--ink);
  background: transparent;
  font-size: 12px;
  font-weight: 500;
  white-space: nowrap;
  transition: color 160ms ease;
}

.hero-services-trigger:hover,
.hero-services-trigger:focus-visible,
.hero-services-trigger[aria-expanded="true"] {
  color: var(--green-deep);
}

.hero-services-trigger svg {
  transition: transform 160ms ease;
}

.hero-services-trigger[aria-expanded="true"] svg {
  transform: rotate(180deg);
}

.hero-service-menu {
  top: calc(100% + 0.5rem);
  left: -1rem;
  z-index: 20;
}

.hero-nav .hero-service-menu a {
  height: auto;
  min-height: 43px;
}

.hero-nav a:hover,
.hero-nav a:focus-visible {
  color: var(--green-deep);
}

.hero-nav a.hero-nav__active {
  color: var(--green-deep);
  font-weight: 700;
}

.hero-nav a.hero-nav__active::after {
  position: absolute;
  right: 0;
  bottom: 17px;
  left: 0;
  height: 2px;
  border-radius: 99px;
  background: var(--green);
  content: "";
}

.hero-header-actions {
  display: flex;
  align-items: center;
  gap: clamp(14px, 1.3vw, 18px);
  margin-left: clamp(22px, 2.6vw, 32px);
}

/* Branded language selector backed by full-page translation. */
.aa-language-switcher {
  position: relative;
  min-width: 126px;
  height: 40px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.42rem;
  padding: 0 0.62rem;
  border: 1px solid rgba(78, 76, 163, 0.34);
  border-radius: 7px;
  color: var(--violet-deep);
  background: rgba(255, 255, 255, 0.92);
  box-shadow: 0 7px 15px rgba(57, 55, 135, 0.06);
  direction: ltr;
}

.aa-language-switcher__abbr {
  color: var(--green-deep);
  font-size: 0.78rem;
  font-weight: 850;
  line-height: 1;
}

.aa-language-switcher select {
  width: 100%;
  min-width: 0;
  height: 38px;
  padding: 0;
  border: 0;
  outline: 0;
  color: var(--ink);
  background: transparent;
  appearance: none;
  font: inherit;
  font-size: 0.72rem;
  font-weight: 750;
  cursor: pointer;
}

.aa-language-switcher:focus-within {
  border-color: var(--violet);
  box-shadow: 0 0 0 3px rgba(78, 76, 163, 0.16);
}

.aa-language-switcher__chevron {
  pointer-events: none;
}

.aa-language-switcher--mobile,
.aa-language-switcher--hero-mobile {
  width: 100%;
  min-width: 0;
  margin: 0.25rem 0 0.55rem;
  background: #f7f7fc;
}

.aa-language-switcher--mobile select,
.aa-language-switcher--hero-mobile select {
  font-size: 0.88rem;
}

.aa-google-translate,
.goog-te-banner-frame.skiptranslate {
  position: fixed !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

body {
  top: 0 !important;
}

.hero-header-call,
.hero-header-start {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.78rem;
  border-radius: 7px;
  font-size: 12px;
  font-weight: 500;
  white-space: nowrap;
  transition: transform 160ms ease, background-color 160ms ease, color 160ms ease;
}

.hero-header-call {
  min-height: 40px;
  padding: 0 0.95rem;
  border: 1px solid rgba(78, 76, 163, 0.58);
  color: var(--violet-deep);
  background: rgba(255, 255, 255, 0.9);
  box-shadow: 0 7px 15px rgba(57, 55, 135, 0.08);
  font-weight: 700;
}

.hero-header-start {
  width: 134px;
  min-width: 134px;
  height: 41px;
  min-height: 41px;
  padding: 0;
  color: #fff;
  background: var(--violet);
  box-shadow: 0 9px 19px rgba(55, 51, 135, 0.16);
}

.hero-header-call:hover,
.hero-header-start:hover,
.hero-header-call:focus-visible,
.hero-header-start:focus-visible {
  transform: translateY(-2px);
}

.hero-header-call:hover,
.hero-header-call:focus-visible {
  border-color: var(--violet);
  color: #fff;
  background: var(--violet);
}

.hero-header-start:hover,
.hero-header-start:focus-visible {
  background: var(--violet-deep);
}

.hero-mobile-nav-toggle,
.hero-mobile-menu {
  display: none;
}

.hero-copy {
  position: absolute;
  z-index: 3;
  top: 20.7%;
  left: 3.9%;
  width: min(43.5%, 730px);
}

.hero-location {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.52rem 1.05rem;
  border: 1px solid var(--line-strong);
  border-radius: 999px;
  color: var(--green-deep);
  background: rgba(255, 254, 254, 0.82);
  font-size: clamp(0.78rem, 1.05vw, 1rem);
  font-weight: 600;
  line-height: 1.2;
  white-space: nowrap;
}

.hero-location__mobile {
  display: none;
}

.hero-details > p {
  max-width: 620px;
  margin-bottom: 2.05rem;
  color: var(--ink-soft);
  font-size: clamp(0.95rem, 1.12vw, 1.12rem);
  line-height: 1.82;
}

.hero-copy h1 {
  max-width: 730px;
  margin: clamp(1.65rem, 3vw, 2.55rem) 0 1.45rem;
  color: var(--ink);
  font-family: var(--serif);
  font-size: clamp(3.2rem, 4.3vw, 4.55rem);
  font-weight: 400;
  letter-spacing: -0.055em;
  line-height: 1.045;
}

.hero-copy h1 em {
  color: var(--green-deep);
  font-style: italic;
}

.hero-copy > p {
  max-width: 620px;
  margin-bottom: 2.05rem;
  color: var(--ink-soft);
  font-size: clamp(0.95rem, 1.12vw, 1.12rem);
  line-height: 1.82;
}

.hero-actions {
  display: flex;
  align-items: center;
  gap: clamp(0.8rem, 1.45vw, 1.45rem);
}

.hero-button {
  min-height: clamp(49px, 3.75vw, 63px);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: clamp(0.5rem, 0.8vw, 0.8rem);
  padding: 0 1.35rem;
  border: 1px solid transparent;
  border-radius: 0.55rem;
  color: var(--violet);
  font-size: clamp(0.8rem, 1.04vw, 1rem);
  font-weight: 750;
  white-space: nowrap;
  transition: transform 160ms ease, background-color 160ms ease, color 160ms ease;
}

.hero-button:hover,
.hero-button:focus-visible {
  transform: translateY(-2px);
}

.hero-button--primary {
  min-width: clamp(158px, 11.8vw, 200px);
  color: #fff;
  background: var(--violet);
  box-shadow: 0 9px 19px rgba(55, 51, 135, 0.16);
}

.hero-button--primary:hover,
.hero-button--primary:focus-visible {
  background: var(--violet-deep);
}

.hero-button--outline {
  min-width: clamp(193px, 13.2vw, 220px);
  border-color: var(--violet);
  background: rgba(255, 254, 254, 0.74);
}

.hero-button--outline:hover,
.hero-button--outline:focus-visible {
  background: var(--violet-pale);
}

.hero-highlights {
  position: absolute;
  z-index: 3;
  right: auto;
  bottom: 3.6%;
  left: 1.25%;
  width: min(39.2%, 660px);
  display: grid;
  grid-template-columns: repeat(4, 1fr);
}

.hero-highlight {
  position: relative;
  min-height: 126px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 0.7rem;
  padding: 0.1rem 0.65rem 0;
  color: var(--ink);
  text-align: center;
}

.hero-highlight:not(:last-child)::after {
  position: absolute;
  top: 14px;
  right: 0;
  width: 1px;
  height: 105px;
  background: var(--line-strong);
  content: "";
}

.hero-highlight__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--violet);
  background: var(--violet-pale);
}

.hero-highlight__icon {
  width: 66px;
  height: 66px;
  border-radius: 50%;
}

.hero-highlight__label {
  display: flex;
  flex-direction: column;
  font-size: clamp(0.72rem, 0.91vw, 0.9rem);
  font-weight: 600;
  line-height: 1.35;
}

.hero-header a:focus-visible,
.hero-nav a:focus-visible,
.hero-button:focus-visible,
.hero-highlight:focus-visible {
  outline: 3px solid rgba(78, 53, 207, 0.38);
  outline-offset: 4px;
}

/* Shared inner-page chrome */
.site-header {
  position: relative;
  z-index: 50;
  background: var(--paper);
  box-shadow: 0 1px 12px rgba(16, 25, 54, 0.04);
}

.site-header__inner {
  width: min(1440px, 100%);
  min-height: 80px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0;
  margin-inline: auto;
  padding: 0 clamp(24px, 6.05vw, 68px);
}

.brand-lockup {
  width: 225px;
  height: 80px;
  display: block;
  flex: 0 0 auto;
  overflow: hidden;
}

.brand-lockup__art {
  display: block;
  width: 100%;
  height: 100%;
  background-image: url("../images/brand-logo.png");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}

.desktop-nav,
.header-actions,
.header-call,
.nav-link,
.mobile-menu a,
.footer-phone,
.employee-cta a {
  display: flex;
  align-items: center;
}

.desktop-nav {
  align-items: stretch;
  gap: clamp(22px, 2.7vw, 36px);
  height: 80px;
  margin-left: auto;
}

.nav-dropdown {
  position: relative;
}

.nav-link {
  position: relative;
  height: 80px;
  gap: 0.28rem;
  padding: 0;
  border: 0;
  color: var(--ink);
  background: transparent;
  font-size: 12px;
  font-weight: 500;
  white-space: nowrap;
}

.nav-link:hover,
.nav-link:focus-visible {
  color: var(--green-deep);
}

.nav-link--active {
  color: var(--green-deep);
  font-weight: 700;
}

.nav-link--active::after {
  position: absolute;
  right: 0;
  bottom: 17px;
  left: 0;
  height: 2px;
  border-radius: 99px;
  background: var(--green);
  content: "";
}

.nav-link--button svg {
  transition: transform 160ms ease;
}

.nav-link--button[aria-expanded="true"] svg {
  transform: rotate(180deg);
}

.service-menu {
  position: absolute;
  top: calc(100% + 0.5rem);
  left: -1rem;
  width: 226px;
  padding: 0.55rem;
  border: 1px solid var(--line);
  border-radius: 0.7rem;
  background: #fff;
  box-shadow: 0 18px 36px rgba(21, 25, 57, 0.15);
}

.service-menu a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.7rem 0.75rem;
  border-radius: 0.45rem;
  color: var(--ink-soft);
  font-size: 0.84rem;
  font-weight: 650;
}

.service-menu a:hover {
  background: var(--violet-pale);
  color: var(--violet-deep);
}

.service-menu--services {
  width: 470px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.15rem;
}

.service-menu--services a:first-child {
  grid-column: 1 / -1;
  border-bottom: 1px solid var(--line);
  margin-bottom: 0.15rem;
}

.mobile-menu-group-trigger {
  width: 100%;
  min-height: 43px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.55rem 0.3rem;
  border: 0;
  color: var(--ink);
  background: transparent;
  font-size: 0.94rem;
  font-weight: 700;
  text-align: left;
}

.mobile-menu-group-trigger svg {
  transition: transform 160ms ease;
}

.mobile-menu-group-trigger[aria-expanded="true"] svg {
  transform: rotate(180deg);
}

.mobile-service-menu {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.15rem 0.7rem;
  padding: 0.25rem 0.3rem 0.7rem 1rem;
  border-bottom: 1px solid var(--line);
}

.mobile-menu .mobile-service-menu a:not(.button) {
  min-height: 36px;
  padding: 0.35rem 0;
  color: var(--ink-soft);
  font-size: 0.82rem;
  font-weight: 650;
}

@media (max-width: 520px) {
  .mobile-service-menu {
    grid-template-columns: 1fr;
  }
}

.header-actions {
  gap: clamp(14px, 1.3vw, 18px);
  margin-left: clamp(22px, 2.6vw, 32px);
}

.header-call {
  min-height: 41px;
  gap: 0.45rem;
  padding: 0 0.95rem;
  border: 1px solid rgba(78, 76, 163, 0.58);
  border-radius: 7px;
  color: var(--violet-deep);
  background: #fff;
  box-shadow: 0 7px 15px rgba(57, 55, 135, 0.08);
  font-size: 12px;
  font-weight: 700;
  white-space: nowrap;
  transition: transform 160ms ease, background-color 160ms ease, border-color 160ms ease, color 160ms ease, box-shadow 160ms ease;
}

.header-call:hover,
.header-call:focus-visible {
  border-color: var(--violet);
  color: #fff;
  background: var(--violet);
  box-shadow: 0 10px 20px rgba(57, 55, 135, 0.18);
  transform: translateY(-1px);
}

.button--header {
  width: 134px;
  height: 41px;
  min-height: 41px;
  padding: 0;
  border-radius: 7px;
  font-size: 12px;
  white-space: nowrap;
}

.menu-toggle {
  display: none;
  width: 44px;
  height: 44px;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--line-strong);
  border-radius: 0.45rem;
  color: var(--ink);
  background: #fff;
}

.mobile-menu {
  display: none;
}

/* Inner page hero */
.page-hero {
  position: relative;
  overflow: hidden;
  border-bottom: 1px solid var(--line);
  background: #fff;
}

.page-hero::before {
  position: absolute;
  width: 520px;
  height: 520px;
  right: -310px;
  top: -290px;
  border: 1px solid #dedcf2;
  border-radius: 50%;
  content: "";
}

.page-hero::after {
  position: absolute;
  width: 238px;
  height: 238px;
  right: 12%;
  bottom: -160px;
  border: 1px solid #d8ecda;
  border-radius: 50%;
  content: "";
}

.page-hero__grid {
  position: relative;
  z-index: 1;
  min-height: 460px;
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(250px, 0.56fr);
  align-items: center;
  gap: clamp(2rem, 7vw, 8rem);
  padding-block: 5.7rem;
}

.page-hero--compact .page-hero__grid {
  min-height: 344px;
  padding-block: 4rem;
}

.page-hero h1 {
  max-width: 760px;
  margin-bottom: 1.25rem;
  font-size: clamp(3rem, 5.3vw, 5.3rem);
}

.page-hero__lead {
  max-width: 650px;
  margin-bottom: 1.75rem;
  color: var(--ink-soft);
  font-size: clamp(1.05rem, 1.4vw, 1.25rem);
  line-height: 1.65;
}

.page-hero__aside {
  justify-self: end;
  width: min(100%, 318px);
}

.hero-fact-card {
  position: relative;
  padding: 1.75rem;
  border: 1px solid #e2e1ea;
  border-radius: 1rem;
  background: #fff;
  box-shadow: 0 18px 36px rgba(19, 25, 57, 0.09);
}

.hero-fact-card::before {
  position: absolute;
  inset: 0.4rem;
  border: 1px solid rgba(78, 76, 163, 0.1);
  border-radius: 0.75rem;
  pointer-events: none;
  content: "";
}

.hero-fact-card__icon {
  position: relative;
  z-index: 1;
  width: 54px;
  height: 54px;
  display: grid;
  place-items: center;
  margin-bottom: 1.5rem;
  border-radius: 50%;
  color: var(--violet);
  background: var(--violet-pale);
}

.hero-fact-card p,
.hero-fact-card strong,
.hero-fact-card small {
  position: relative;
  z-index: 1;
  display: block;
}

.hero-fact-card p {
  margin-bottom: 0.25rem;
  color: var(--ink-faint);
  font-size: 0.84rem;
}

.hero-fact-card strong {
  color: var(--ink);
  font-family: var(--serif);
  font-size: 1.55rem;
  font-weight: 400;
  line-height: 1.16;
}

.hero-fact-card small {
  margin-top: 0.9rem;
  color: var(--ink-faint);
  font-size: 0.78rem;
}

/* Shared content sections */
.section {
  padding-block: clamp(4.8rem, 8vw, 7.6rem);
}

.section--mist {
  background: var(--mist);
}

.section--ink {
  background: var(--ink);
  color: #fff;
}

.section--ink h2,
.section--ink h3 {
  color: #fff;
}

.section-heading {
  margin-bottom: clamp(2rem, 4vw, 3.4rem);
}

.section-heading h2,
.split-intro h2,
.family-grid h2,
.mini-process h2,
.location-callout h2,
.transport-note h2,
.work-note h2,
.employee-cta h2,
.form-panel h2,
.contact-details h2,
.intake-aside h2 {
  margin-bottom: 0;
  font-size: clamp(2.2rem, 3.5vw, 3.5rem);
}

.section-heading > p {
  max-width: 510px;
  margin-top: 1rem;
  margin-bottom: 0;
  color: var(--ink-faint);
}

.section-heading--between {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 2rem;
}

.section-heading--between > p {
  max-width: 320px;
  margin-bottom: 0.45rem;
  color: var(--ink-faint);
  font-size: 0.94rem;
}

.section-heading--light h2,
.section-heading--light > p {
  color: #fff;
}

.split-intro {
  display: grid;
  grid-template-columns: minmax(0, 0.83fr) minmax(0, 1fr);
  gap: clamp(2.5rem, 8vw, 9rem);
}

.lead-copy {
  margin-bottom: 1.15rem;
  color: var(--ink-soft);
  font-size: clamp(1.08rem, 1.5vw, 1.28rem);
  line-height: 1.72;
}

.outcome-copy {
  margin: 0;
  padding-top: 1.15rem;
  border-top: 1px solid var(--line);
  color: var(--green-deep);
  font-size: 0.96rem;
  font-weight: 700;
}

/* Home after the exact reference hero */
.home-trust-strip {
  border-bottom: 1px solid var(--line);
  background: #fff;
}

.home-trust-strip__inner {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-inline: 1px solid var(--line);
}

.home-trust-item {
  min-height: 118px;
  display: grid;
  grid-template-columns: 37px minmax(0, 1fr);
  align-items: center;
  gap: 0.8rem;
  padding: 1.15rem;
  border-right: 1px solid var(--line);
}

.home-trust-item:last-child {
  border-right: 0;
}

.home-trust-item > span {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  color: var(--green-deep);
}

.home-trust-item strong,
.home-trust-item p {
  display: block;
}

.home-trust-item strong {
  margin-bottom: 0.12rem;
  color: var(--ink);
  font-size: 0.86rem;
  font-weight: 790;
  line-height: 1.25;
}

.home-trust-item p {
  margin: 0;
  color: var(--ink-faint);
  font-size: 0.76rem;
  line-height: 1.45;
}

.home-intro {
  display: grid;
  grid-template-columns: 0.95fr 0.72fr;
  align-items: end;
  justify-content: space-between;
  gap: clamp(2rem, 8vw, 10rem);
}

.home-intro h2 {
  max-width: 580px;
  margin-bottom: 0;
  font-size: clamp(2.25rem, 4vw, 4rem);
}

.home-intro__copy {
  max-width: 470px;
}

.home-intro__copy p {
  margin-bottom: 1.25rem;
  color: var(--ink-soft);
  font-size: 1.08rem;
  line-height: 1.75;
}

.service-pillar-section {
  position: relative;
  overflow: hidden;
}

.service-pillar-section::after {
  position: absolute;
  right: -160px;
  bottom: -175px;
  width: 430px;
  height: 430px;
  border: 1px solid rgba(255, 255, 255, 0.13);
  border-radius: 50%;
  content: "";
}

.service-pillar-section .shell {
  position: relative;
  z-index: 1;
}

.pillar-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  background: rgba(255, 255, 255, 0.18);
}

.pillar-card {
  min-height: 345px;
  position: relative;
  display: flex;
  flex-direction: column;
  padding: 1.65rem;
  color: #fff;
  background: rgba(255, 255, 255, 0.035);
  transition: background-color 180ms ease;
}

.pillar-card:hover {
  background: rgba(78, 76, 163, 0.42);
}

.pillar-card__index {
  color: rgba(255, 255, 255, 0.48);
  font-size: 0.77rem;
  font-weight: 750;
  letter-spacing: 0.1em;
}

.pillar-card__icon {
  width: 52px;
  height: 52px;
  display: grid;
  place-items: center;
  margin-top: auto;
  margin-bottom: 1.45rem;
  border: 1px solid rgba(255, 255, 255, 0.35);
  border-radius: 0.55rem;
  color: #e1e1ff;
}

.pillar-card h3 {
  margin-bottom: 0.7rem;
  color: #fff;
  font-size: 1.2rem;
  letter-spacing: -0.03em;
}

.pillar-card p {
  max-width: 205px;
  margin-bottom: 0;
  color: rgba(255, 255, 255, 0.72);
  font-size: 0.88rem;
  line-height: 1.58;
}

.pillar-card__arrow {
  position: absolute;
  right: 1.5rem;
  bottom: 1.5rem;
  color: #cdeccf;
}

.home-service-directory .section-heading {
  margin-bottom: 2.1rem;
}

.service-directory-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  border: 1px solid var(--line);
  background: var(--line);
}

.service-directory-card {
  min-height: 222px;
  position: relative;
  display: grid;
  grid-template-rows: auto 1fr;
  padding: 1.35rem;
  background: #fff;
  transition: background-color 160ms ease, box-shadow 160ms ease;
}

.service-directory-card:hover {
  z-index: 1;
  background: #fafaff;
  box-shadow: 0 14px 30px rgba(29, 29, 74, 0.08);
}

.service-directory-card__icon {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  margin-bottom: 1.45rem;
  border-radius: 0.45rem;
  color: var(--violet);
  background: var(--violet-pale);
}

.service-directory-card__eyebrow {
  display: block;
  margin-bottom: 0.48rem;
  color: var(--green-deep);
  font-size: 0.64rem;
  font-weight: 840;
  letter-spacing: 0.09em;
  line-height: 1.2;
  text-transform: uppercase;
}

.service-directory-card h3 {
  max-width: 190px;
  margin-bottom: 0.58rem;
  color: var(--ink);
  font-size: 1.02rem;
  letter-spacing: -0.025em;
}

.service-directory-card p {
  max-width: 235px;
  margin: 0;
  color: var(--ink-faint);
  font-size: 0.81rem;
  line-height: 1.55;
}

.service-directory-card__arrow {
  position: absolute;
  right: 1.25rem;
  bottom: 1.25rem;
  color: var(--violet);
}

.service-card-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
}

.service-card-grid--all {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.service-card {
  min-height: 325px;
  display: flex;
  flex-direction: column;
  padding: 1.45rem;
  border: 1px solid var(--line);
  border-radius: 0.75rem;
  background: #fff;
  transition: border-color 170ms ease, box-shadow 170ms ease, transform 170ms ease;
}

.service-card:hover {
  border-color: #bdb8ee;
  box-shadow: 0 17px 34px rgba(29, 29, 74, 0.09);
  transform: translateY(-4px);
}

.service-card__icon {
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  margin-bottom: 1.85rem;
  border-radius: 0.5rem;
  color: var(--violet);
  background: var(--violet-pale);
}

.service-card__eyebrow {
  margin-bottom: 0.65rem;
  color: var(--green-deep);
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.service-card__title {
  margin-bottom: 0.7rem;
  color: var(--ink);
  font-size: 1.13rem;
  font-weight: 760;
  letter-spacing: -0.025em;
  line-height: 1.2;
}

.service-card__description {
  color: var(--ink-faint);
  font-size: 0.88rem;
  line-height: 1.62;
}

.service-card__link {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  margin-top: auto;
  padding-top: 1.4rem;
  color: var(--violet-deep);
  font-size: 0.82rem;
  font-weight: 800;
}

.family-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(310px, 0.75fr);
  align-items: center;
  gap: clamp(2.5rem, 10vw, 11.5rem);
}

.family-grid__copy > p:not(.eyebrow) {
  max-width: 500px;
  margin: 1.1rem 0 1.7rem;
  color: var(--ink-soft);
  font-size: 1.05rem;
  line-height: 1.7;
}

.family-grid__list {
  border-top: 1px solid var(--line-strong);
}

.family-grid__list > div {
  display: grid;
  grid-template-columns: 37px 1fr;
  gap: 1rem;
  padding: 1.25rem 0;
  border-bottom: 1px solid var(--line-strong);
  color: var(--violet);
}

.family-grid__list h3 {
  margin-bottom: 0.25rem;
  font-size: 1rem;
}

.family-grid__list p {
  margin: 0;
  color: var(--ink-faint);
  font-size: 0.89rem;
}

.care-path__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
}

.care-path__grid article {
  position: relative;
  padding-right: 1.25rem;
}

.care-path__grid article:not(:last-child)::after {
  position: absolute;
  top: 25px;
  right: 0;
  width: 1px;
  height: calc(100% - 25px);
  background: var(--line);
  content: "";
}

.care-path__grid article > div {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  margin-bottom: 1.3rem;
  color: var(--violet);
}

.care-path__grid article > div span {
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  border: 1px solid #c9c6f2;
  border-radius: 50%;
  font-size: 0.72rem;
  font-weight: 800;
}

.care-path__grid h3 {
  margin-bottom: 0.7rem;
  font-size: 1.07rem;
}

.care-path__grid p {
  margin: 0;
  color: var(--ink-faint);
  font-size: 0.9rem;
  line-height: 1.65;
}

.program-strip {
  background: var(--green-deep);
  color: #fff;
}

.program-strip__inner {
  min-height: 250px;
  display: grid;
  grid-template-columns: 1fr 0.8fr auto;
  align-items: center;
  gap: 2.5rem;
  padding-block: 2.8rem;
}

.program-strip h2 {
  max-width: 370px;
  margin-bottom: 0;
  color: #fff;
  font-size: clamp(2rem, 3vw, 3rem);
}

.program-strip__details > p {
  max-width: 390px;
  margin: 0 0 1rem;
  color: rgba(255, 255, 255, 0.86);
  font-size: 0.92rem;
  line-height: 1.7;
}

.program-strip__options {
  display: flex;
  flex-wrap: wrap;
  gap: 0.42rem;
}

.program-strip__options span {
  padding: 0.35rem 0.48rem;
  border: 1px solid rgba(255, 255, 255, 0.42);
  border-radius: 999px;
  color: rgba(255, 255, 255, 0.95);
  font-size: 0.7rem;
  font-weight: 700;
  line-height: 1.25;
}

/* Service-specific pages */
.highlight-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  border: 1px solid var(--line);
  background: var(--line);
}

.highlight-card {
  min-height: 190px;
  display: flex;
  flex-direction: column;
  padding: 1.35rem;
  background: #fff;
}

.highlight-card span {
  margin-bottom: auto;
  color: var(--green-deep);
  font-size: 0.71rem;
  font-weight: 850;
  letter-spacing: 0.12em;
}

.highlight-card p {
  margin: 2rem 0 0;
  color: var(--ink-soft);
  font-size: 0.94rem;
  font-weight: 620;
  line-height: 1.55;
}

.service-disclaimer {
  display: flex;
  align-items: flex-start;
  gap: 0.6rem;
  max-width: 760px;
  margin: 1.5rem 0 0;
  color: var(--ink-faint);
  font-size: 0.84rem;
}

.service-disclaimer svg {
  flex: 0 0 auto;
  color: var(--violet);
  margin-top: 0.18rem;
}

.mini-process {
  display: grid;
  grid-template-columns: 0.75fr 1fr;
  gap: clamp(2rem, 10vw, 11rem);
  align-items: center;
}

.mini-process > div > p:not(.eyebrow) {
  max-width: 420px;
  margin: 1rem 0 1.2rem;
  color: var(--ink-soft);
}

.mini-process__steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid var(--line-strong);
  border-bottom: 1px solid var(--line-strong);
}

.mini-process__steps > div {
  padding: 1.4rem 1rem;
  border-left: 1px solid var(--line-strong);
}

.mini-process__steps > div:last-child {
  border-right: 1px solid var(--line-strong);
}

.mini-process__steps span {
  color: var(--violet);
  font-size: 0.76rem;
  font-weight: 850;
  letter-spacing: 0.1em;
}

.mini-process__steps p {
  margin: 1.4rem 0 0;
  color: var(--ink-soft);
  font-size: 0.9rem;
  font-weight: 700;
  line-height: 1.35;
}

/* About, transportation, careers, contact and intake */
.value-grid,
.support-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
}

.value-grid article,
.support-grid article {
  min-height: 218px;
  padding: 1.4rem;
  border: 1px solid var(--line);
  border-radius: 0.65rem;
  background: #fff;
}

.value-grid article > span,
.support-grid article > span {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  margin-bottom: 1.5rem;
  border-radius: 0.45rem;
  color: var(--violet);
  background: var(--violet-pale);
}

.value-grid h3,
.support-grid h3 {
  margin-bottom: 0.5rem;
  font-size: 1.04rem;
}

.value-grid p,
.support-grid p {
  margin: 0;
  color: var(--ink-faint);
  font-size: 0.89rem;
  line-height: 1.62;
}

.location-callout,
.transport-note,
.work-note,
.employee-cta {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(240px, 0.5fr);
  gap: clamp(2rem, 8vw, 9rem);
  align-items: center;
}

.location-callout > div > p:not(.eyebrow),
.transport-note > div > p:not(.eyebrow),
.work-note p,
.employee-cta > div > p:not(.eyebrow) {
  max-width: 620px;
  margin: 1rem 0 0;
  color: var(--ink-soft);
  line-height: 1.72;
}

.location-callout__details {
  display: grid;
  gap: 0.8rem;
  align-content: center;
  padding: 1.5rem;
  border-left: 2px solid var(--green);
  background: var(--green-pale);
}

.location-callout__details p,
.location-callout__details a:not(.text-link) {
  display: flex;
  align-items: flex-start;
  gap: 0.55rem;
  margin: 0;
  color: var(--ink-soft);
  font-size: 0.91rem;
}

.location-callout__details svg {
  flex: 0 0 auto;
  color: var(--green-deep);
  margin-top: 0.12rem;
}

.location-callout__details .text-link {
  margin-top: 0.55rem;
}

.transport-note .button,
.work-note .button {
  justify-self: end;
}

.role-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  border: 1px solid var(--line);
  background: var(--line);
}

.role-grid article {
  min-height: 160px;
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 1.3rem;
  background: #fff;
}

.role-grid article > span {
  color: var(--green-deep);
  font-size: 0.72rem;
  font-weight: 850;
  letter-spacing: 0.1em;
}

.role-grid h3 {
  max-width: 210px;
  margin: 1.4rem 0 0;
  font-size: 1.04rem;
}

.role-grid article > svg {
  position: absolute;
  right: 1.3rem;
  bottom: 1.3rem;
  color: var(--violet);
}

.work-note > div > svg {
  color: var(--violet);
  margin-bottom: 1.1rem;
}

.work-note h2 {
  margin-bottom: 0;
}

.employee-cta > div:last-child {
  display: grid;
  gap: 0.8rem;
  justify-self: end;
}

.employee-cta a {
  gap: 0.55rem;
  color: var(--violet-deep);
  font-size: 0.96rem;
  font-weight: 750;
}

/* Employee of the month */
.employee-month-hero {
  position: relative;
  overflow: hidden;
  padding: clamp(72px, 8vw, 118px) 0;
  border-bottom: 1px solid var(--line);
  background:
    radial-gradient(circle at 8% 16%, rgba(64, 184, 74, 0.11), transparent 29%),
    linear-gradient(135deg, #fff 0%, #f8f7ff 55%, #f1efff 100%);
}

.employee-month-hero::after {
  position: absolute;
  right: -180px;
  bottom: -260px;
  width: 540px;
  height: 540px;
  border: 1px solid rgba(78, 76, 163, 0.16);
  border-radius: 50%;
  content: "";
}

.employee-month-hero__grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(380px, 0.66fr);
  gap: clamp(56px, 9vw, 126px);
  align-items: center;
}

.employee-month-copy {
  max-width: 650px;
}

.employee-month-kicker {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 2rem;
}

.employee-month-kicker .eyebrow {
  margin: 0;
}

.employee-month-demo {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0.28rem 0.62rem;
  border: 1px solid rgba(78, 76, 163, 0.22);
  border-radius: 999px;
  color: var(--violet-deep);
  background: rgba(255, 255, 255, 0.76);
  font-size: 0.67rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.employee-month-date {
  margin: 0 0 0.8rem;
  color: var(--green-deep);
  font-size: 0.78rem;
  font-weight: 850;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.employee-month-copy h1 {
  max-width: 620px;
  margin: 0;
  font-size: clamp(4.2rem, 6.8vw, 7.15rem);
  line-height: 0.88;
}

.employee-month-role {
  margin: 1.55rem 0 0;
  color: var(--violet-deep);
  font-size: clamp(1rem, 1.35vw, 1.22rem);
  font-weight: 750;
}

.employee-month-intro {
  max-width: 600px;
  margin-top: 2rem;
  color: var(--ink-soft);
  font-size: 1rem;
  line-height: 1.8;
}

.employee-month-intro p {
  margin-bottom: 1rem;
}

.employee-month-careers-link {
  margin-top: 0.7rem;
}

.employee-month-figure {
  margin: 0;
}

.employee-month-photo {
  position: relative;
  min-height: 610px;
  overflow: hidden;
  border: 1px solid rgba(78, 76, 163, 0.16);
  border-radius: 1.15rem;
  background: #e8e7ef;
  box-shadow: 0 30px 68px rgba(21, 25, 57, 0.17);
}

.employee-month-photo::after {
  position: absolute;
  inset: auto 0 0;
  height: 38%;
  background: linear-gradient(180deg, transparent, rgba(16, 25, 54, 0.34));
  content: "";
}

.employee-month-photo img {
  width: 100%;
  height: 100%;
  min-height: 610px;
  display: block;
  object-fit: cover;
  object-position: center 20%;
}

.employee-month-award {
  position: absolute;
  z-index: 2;
  right: 1.35rem;
  bottom: 1.35rem;
  left: 1.35rem;
  display: grid;
  gap: 0.22rem;
  padding: 1.05rem 1.15rem;
  border: 1px solid rgba(255, 255, 255, 0.48);
  border-radius: 0.7rem;
  color: #fff;
  background: rgba(21, 25, 57, 0.65);
  backdrop-filter: blur(12px);
}

.employee-month-award span {
  font-size: 0.65rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.employee-month-award strong {
  font-family: var(--serif);
  font-size: 1.6rem;
  font-weight: 400;
}

.employee-month-figure figcaption {
  margin-top: 0.75rem;
  color: var(--ink-faint);
  font-size: 0.7rem;
  line-height: 1.5;
}

.employee-month-figure figcaption a {
  color: var(--violet-deep);
  text-decoration: underline;
  text-underline-offset: 0.16rem;
}

/* Versioned employee spotlight shown once per featured employee. */
.employee-popup {
  position: fixed;
  z-index: 1200;
  inset: 0;
  display: grid;
  place-items: center;
  padding: clamp(18px, 4vw, 56px);
  background: rgba(10, 17, 36, 0.74);
  backdrop-filter: blur(12px) saturate(0.86);
  animation: employee-popup-backdrop 220ms ease both;
}

.employee-popup__dialog {
  position: relative;
  width: min(1020px, 100%);
  max-height: min(690px, calc(100svh - 36px));
  display: grid;
  grid-template-columns: minmax(350px, 0.9fr) minmax(470px, 1.1fr);
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.5);
  border-radius: 0.3rem;
  background: #fbfaf7;
  box-shadow:
    13px 13px 0 rgba(78, 76, 163, 0.24),
    0 38px 100px rgba(4, 9, 25, 0.42);
  animation: employee-popup-enter 340ms cubic-bezier(0.22, 0.78, 0.2, 1) both;
}

.employee-popup__dialog::before {
  position: absolute;
  z-index: 4;
  inset: 0 0 auto;
  height: 5px;
  background: linear-gradient(90deg, var(--green) 0 35%, var(--violet) 35% 100%);
  content: "";
  pointer-events: none;
}

.employee-popup__close {
  position: absolute;
  z-index: 5;
  top: 23px;
  right: 25px;
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid rgba(16, 25, 54, 0.16);
  border-radius: 0;
  color: var(--ink);
  background: #fbfaf7;
  line-height: 0;
  transition: color 160ms ease, background-color 160ms ease, transform 160ms ease;
}

.employee-popup__close svg {
  display: block;
  pointer-events: none;
}

.employee-popup__close:hover,
.employee-popup__close:focus-visible {
  color: var(--violet-deep);
  border-color: rgba(78, 76, 163, 0.42);
  background: #efeff9;
  transform: translateY(-2px);
}

.employee-popup__close:focus-visible,
.employee-popup__primary:focus-visible,
.employee-popup__later:focus-visible {
  outline: 3px solid rgba(64, 184, 74, 0.4);
  outline-offset: 3px;
}

.employee-popup__media {
  position: relative;
  min-height: 610px;
  overflow: hidden;
  background: #d7d8dd;
}

.employee-popup__media::after {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(10, 17, 36, 0.02) 48%, rgba(10, 17, 36, 0.72) 100%),
    linear-gradient(90deg, rgba(10, 17, 36, 0.08), transparent 34%);
  content: "";
  pointer-events: none;
}

.employee-popup__media img {
  width: 100%;
  height: 100%;
  position: absolute;
  inset: 0;
  display: block;
  object-fit: cover;
  object-position: center 18%;
  filter: saturate(0.88) contrast(1.03);
}

.employee-popup__brand {
  position: absolute;
  z-index: 2;
  top: 28px;
  left: 28px;
  display: grid;
  gap: 0;
  min-width: 94px;
  padding: 0.72rem 0.8rem 0.65rem;
  color: var(--ink);
  background: rgba(255, 255, 255, 0.92);
  box-shadow: 0 12px 28px rgba(6, 12, 28, 0.16);
}

.employee-popup__brand strong {
  color: var(--violet-deep);
  font-family: var(--serif);
  font-size: 1.35rem;
  font-weight: 400;
  letter-spacing: -0.04em;
  line-height: 1;
}

.employee-popup__brand span {
  margin-top: 0.25rem;
  color: var(--green-deep);
  font-size: 0.58rem;
  font-weight: 850;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.employee-popup__photo-note {
  position: absolute;
  z-index: 2;
  right: 30px;
  bottom: 28px;
  left: 30px;
  display: grid;
  gap: 0.32rem;
  color: #fff;
}

.employee-popup__photo-note span {
  font-size: 0.66rem;
  font-weight: 850;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.employee-popup__photo-note strong {
  font-family: var(--serif);
  font-size: clamp(2rem, 3vw, 3rem);
  font-weight: 400;
  letter-spacing: -0.04em;
  line-height: 1;
}

.employee-popup__content {
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 610px;
  padding: 30px clamp(46px, 5vw, 68px) 36px;
  background: #fbfaf7;
}

.employee-popup__edition {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  padding: 0 60px 1rem 0;
  border-bottom: 1px solid rgba(16, 25, 54, 0.17);
  color: var(--ink-faint);
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.employee-popup__copy {
  display: flex;
  flex: 1;
  flex-direction: column;
  justify-content: center;
  padding: 34px 0 26px;
}

.employee-popup__eyebrow {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  margin: 0 0 1.25rem;
  color: var(--green-deep);
  font-size: 0.67rem;
  font-weight: 850;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.employee-popup__eyebrow span {
  width: 28px;
  height: 2px;
  background: currentColor;
}

.employee-popup__content h2 {
  max-width: 510px;
  margin: 0;
  font-size: clamp(3rem, 4.7vw, 4.35rem);
  line-height: 0.94;
}

.employee-popup__person {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 0.35rem 0.75rem;
  margin-top: 1.7rem;
  padding-left: 1rem;
  border-left: 3px solid var(--violet);
}

.employee-popup__person strong {
  color: var(--ink);
  font-size: 0.96rem;
  font-weight: 850;
}

.employee-popup__person span {
  color: var(--violet-deep);
  font-size: 0.76rem;
  font-weight: 700;
}

.employee-popup__copy > p:last-child {
  max-width: 460px;
  margin: 1.25rem 0 0;
  color: var(--ink-soft);
  font-size: 0.92rem;
  line-height: 1.68;
}

.employee-popup__actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 1.3rem;
  padding-top: 1.45rem;
  border-top: 1px solid rgba(16, 25, 54, 0.17);
}

.employee-popup__primary {
  display: inline-flex;
  min-height: 50px;
  align-items: center;
  justify-content: center;
  gap: 0.8rem;
  padding: 0.85rem 1.05rem;
  border: 1px solid var(--violet-deep);
  border-radius: 0;
  color: #fff;
  background: var(--violet-deep);
  box-shadow: none;
  font-size: 0.86rem;
  font-weight: 800;
  transition: color 160ms ease, background-color 160ms ease, transform 160ms ease;
}

.employee-popup__primary:hover {
  color: var(--violet-deep);
  background: transparent;
  transform: translateY(-2px);
}

.employee-popup__primary svg {
  transition: transform 160ms ease;
}

.employee-popup__primary:hover svg {
  transform: translateX(3px);
}

.employee-popup__later {
  display: inline-flex;
  min-height: 50px;
  align-items: center;
  justify-content: center;
  padding: 0.85rem 1.05rem;
  border: 1px solid rgba(78, 76, 163, 0.46);
  border-radius: 0;
  color: var(--violet-deep);
  background: transparent;
  font-size: 0.86rem;
  font-weight: 800;
  transition: color 160ms ease, background-color 160ms ease, border-color 160ms ease, transform 160ms ease;
}

.employee-popup__later:hover {
  color: #fff;
  border-color: var(--violet-deep);
  background: var(--violet-deep);
  transform: translateY(-2px);
}

.employee-popup__demo {
  margin: 1rem 0 0;
  color: var(--ink-faint);
  font-size: 0.58rem;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

@keyframes employee-popup-backdrop {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes employee-popup-enter {
  from { opacity: 0; transform: translateY(28px); }
  to { opacity: 1; transform: none; }
}

@media (max-width: 820px) {
  .employee-popup {
    align-items: center;
    padding: 12px;
  }

  .employee-popup__dialog {
    max-height: calc(100svh - 24px);
    grid-template-columns: 1fr;
    overflow-y: auto;
    border-radius: 0.2rem;
    box-shadow:
      6px 6px 0 rgba(78, 76, 163, 0.24),
      0 30px 70px rgba(4, 9, 25, 0.4);
  }

  .employee-popup__media {
    min-height: clamp(230px, 38svh, 340px);
  }

  .employee-popup__content {
    min-height: 0;
    padding: 22px 24px 24px;
  }

  .employee-popup__edition {
    padding: 0 52px 0.85rem 0;
  }

  .employee-popup__copy {
    padding: 24px 0 21px;
  }

  .employee-popup__eyebrow {
    margin-bottom: 0.9rem;
  }

  .employee-popup__content h2 {
    max-width: 570px;
    font-size: clamp(2.5rem, 10.5vw, 3.7rem);
  }

  .employee-popup__person {
    margin-top: 1.2rem;
  }

  .employee-popup__copy > p:last-child {
    margin-top: 1rem;
    font-size: 0.86rem;
  }

  .employee-popup__actions {
    gap: 0.8rem 1rem;
    padding-top: 1rem;
  }

  .employee-popup__primary {
    flex: 1 1 210px;
  }

  .employee-popup__later {
    flex: 1 1 180px;
  }

  .employee-popup__demo {
    margin-top: 0.75rem;
  }
}

@media (max-width: 420px) and (max-height: 760px) {
  .employee-popup__media {
    min-height: 190px;
  }

  .employee-popup__content {
    padding: 18px 19px 20px;
  }

  .employee-popup__copy {
    padding: 18px 0 16px;
  }

  .employee-popup__content h2 {
    font-size: 2.35rem;
  }

  .employee-popup__copy > p:last-child {
    line-height: 1.5;
  }

  .employee-popup__photo-note strong {
    font-size: 1.8rem;
  }
}

@media (max-width: 930px) {
  .employee-month-hero__grid {
    grid-template-columns: 1fr;
  }

  .employee-month-figure {
    width: min(100%, 620px);
  }

  .employee-month-photo,
  .employee-month-photo img {
    min-height: 680px;
  }
}

@media (max-width: 620px) {
  .employee-month-hero {
    padding: 58px 0 70px;
  }

  .employee-month-hero__grid {
    gap: 42px;
  }

  .employee-month-kicker {
    align-items: flex-start;
    flex-direction: column;
    gap: 0.75rem;
    margin-bottom: 1.5rem;
  }

  .employee-month-copy h1 {
    font-size: clamp(3.5rem, 17vw, 5.2rem);
  }

  .employee-month-photo,
  .employee-month-photo img {
    min-height: 510px;
  }

  .employee-month-award {
    right: 0.85rem;
    bottom: 0.85rem;
    left: 0.85rem;
  }

  .employee-month-award strong {
    font-size: 1.35rem;
  }

}

.contact-layout,
.intake-layout {
  display: grid;
  grid-template-columns: minmax(0, 0.78fr) minmax(430px, 1fr);
  gap: clamp(2rem, 8vw, 10rem);
  align-items: start;
}

.contact-details .lead-copy {
  max-width: 440px;
  margin-top: 1rem;
}

.contact-methods {
  display: grid;
  gap: 0;
  margin-top: 2.2rem;
  border-top: 1px solid var(--line);
}

.contact-method {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.85rem;
  padding: 1rem 0;
  border-bottom: 1px solid var(--line);
  transition: color 160ms ease;
}

.contact-method:hover {
  color: var(--violet);
}

.contact-method > span {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: var(--violet);
  background: var(--violet-pale);
}

.contact-method small,
.contact-method strong {
  display: block;
}

.contact-method small {
  color: var(--ink-faint);
  font-size: 0.73rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.contact-method strong {
  color: var(--ink);
  font-size: 0.94rem;
  font-weight: 690;
  line-height: 1.4;
}

.contact-method > svg {
  color: var(--green-deep);
}

.emergency-note {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin: 1.2rem 0 0;
  color: var(--ink-faint);
  font-size: 0.81rem;
}

.emergency-note svg {
  color: var(--violet);
}

.form-panel {
  padding: clamp(1.4rem, 3vw, 2.25rem);
  border: 1px solid var(--line);
  border-radius: 0.85rem;
  background: #fff;
  box-shadow: 0 20px 45px rgba(27, 29, 65, 0.06);
}

.form-panel .eyebrow {
  margin-bottom: 0.75rem;
}

.form-panel h2 {
  margin-bottom: 1.3rem;
}

.form-panel__intro {
  margin: -0.45rem 0 1.5rem;
  color: var(--ink-faint);
  font-size: 0.94rem;
}

.care-form {
  display: grid;
  gap: 1.15rem;
}

.form-grid {
  display: grid;
  gap: 1.05rem;
}

.form-grid--two {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.form-grid--two .form-field--wide {
  grid-column: 1 / -1;
}

.care-form label {
  display: grid;
  gap: 0.42rem;
  color: var(--ink-soft);
  font-size: 0.8rem;
  font-weight: 750;
}

.care-form input,
.care-form select,
.care-form textarea {
  width: 100%;
  padding: 0.73rem 0.78rem;
  border: 1px solid #cfd1dc;
  border-radius: 0.45rem;
  outline: none;
  color: var(--ink);
  background: #fff;
  font-size: 0.92rem;
  font-weight: 500;
  line-height: 1.4;
  transition: border-color 160ms ease, box-shadow 160ms ease;
}

.care-form textarea {
  resize: vertical;
}

.care-form input::placeholder,
.care-form textarea::placeholder {
  color: #969bad;
}

.care-form input:focus,
.care-form select:focus,
.care-form textarea:focus {
  border-color: var(--violet);
  box-shadow: 0 0 0 3px rgba(78, 76, 163, 0.12);
}

.form-note {
  margin: -0.2rem 0 0;
  color: var(--ink-faint);
  font-size: 0.77rem;
  line-height: 1.58;
}

.care-form .button {
  justify-self: start;
}

.form-success {
  display: flex;
  align-items: flex-start;
  gap: 0.55rem;
  padding: 0.8rem;
  border-left: 2px solid var(--green);
  color: var(--green-deep);
  background: var(--green-pale);
  font-size: 0.85rem;
  font-weight: 650;
}

.form-success svg {
  flex: 0 0 auto;
  margin-top: 0.1rem;
}

.intake-layout {
  grid-template-columns: minmax(420px, 1fr) minmax(0, 0.64fr);
}

.intake-aside {
  padding: 0.45rem 0 0;
}

.intake-aside h2 {
  margin-bottom: 1.8rem;
}

.intake-list {
  display: grid;
  gap: 1rem;
  padding: 0;
  margin: 0;
  list-style: none;
}

.intake-list li {
  display: grid;
  grid-template-columns: 39px minmax(0, 1fr);
  gap: 0.8rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--line);
}

.intake-list li > span {
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border-radius: 0.45rem;
  color: var(--violet);
  background: var(--violet-pale);
}

.intake-list strong {
  display: block;
  margin-bottom: 0.15rem;
  color: var(--ink);
  font-size: 0.93rem;
}

.intake-list p {
  margin: 0;
  color: var(--ink-faint);
  font-size: 0.82rem;
  line-height: 1.5;
}

.intake-callout {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  margin-top: 1.5rem;
  padding: 1rem;
  border-left: 2px solid var(--green);
  color: var(--green-deep);
  background: var(--green-pale);
}

.intake-callout p {
  margin: 0;
  font-size: 0.87rem;
}

.intake-callout a {
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.policy-copy {
  max-width: 820px;
}

.policy-copy h2 {
  margin: 2.4rem 0 0.75rem;
  font-size: 1.65rem;
}

.policy-copy p {
  max-width: 760px;
  color: var(--ink-soft);
  font-size: 1rem;
  line-height: 1.78;
}

.policy-copy a {
  color: var(--violet-deep);
  font-weight: 750;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.policy-updated {
  color: var(--green-deep) !important;
  font-size: 0.8rem !important;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.not-found {
  min-height: 66vh;
  padding-block: clamp(6rem, 12vw, 11rem);
}

.not-found h1 {
  max-width: 650px;
  margin-bottom: 1rem;
  font-size: clamp(3rem, 5.3vw, 5rem);
}

.not-found > p:not(.eyebrow) {
  max-width: 510px;
  margin-bottom: 1.6rem;
  color: var(--ink-soft);
  font-size: 1.08rem;
}

.not-found__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem;
}

/* Reusable call to action and footer */
.cta-section {
  background: var(--violet);
  color: #fff;
}

.cta-section__inner {
  min-height: 320px;
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 2rem;
  padding-block: 3.7rem;
}

.cta-section h2 {
  max-width: 620px;
  margin-bottom: 0.95rem;
  color: #fff;
  font-size: clamp(2.35rem, 4.3vw, 4.2rem);
}

.cta-section__inner > div > p:not(.eyebrow) {
  max-width: 570px;
  margin: 0;
  color: rgba(255, 255, 255, 0.86);
  font-size: 1.02rem;
  line-height: 1.7;
}

.cta-section__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.75rem;
}

.site-footer {
  color: #e4e2f4;
  background:
    radial-gradient(circle at 12% 0%, rgba(104, 100, 188, 0.3), transparent 32rem),
    linear-gradient(145deg, #37347f 0%, #302e70 48%, #28265f 100%);
}

.footer-main {
  display: grid;
  grid-template-columns: minmax(240px, 0.95fr) minmax(300px, 1.05fr) minmax(230px, 0.72fr);
  gap: clamp(2rem, 6vw, 7rem);
  padding-block: 4.2rem 3.4rem;
}

.footer-brand .brand-lockup {
  margin-bottom: 1rem;
  filter: brightness(1.1) contrast(0.92);
}

.footer-brand > p {
  max-width: 320px;
  margin-bottom: 1.2rem;
  color: #c9c6df;
  font-size: 0.88rem;
  line-height: 1.66;
}

.footer-phone {
  gap: 0.5rem;
  color: #fff;
  font-size: 1rem;
  font-weight: 750;
}

.footer-phone svg,
.footer-fax svg {
  color: #c8c4ff;
}

.footer-fax {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-top: 0.48rem;
  color: #e4e2f4;
  font-size: 0.86rem;
  font-weight: 650;
}

.footer-links {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2rem;
}

.footer-links > div,
.footer-contact {
  display: grid;
  align-content: start;
  gap: 0.5rem;
}

.footer-label {
  margin: 0 0 0.35rem;
  color: #fff;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.footer-links a,
.footer-contact a,
.footer-contact p {
  margin: 0;
  color: #d0cde3;
  font-size: 0.84rem;
}

.footer-links a:hover,
.footer-contact a:hover {
  color: #fff;
}

.footer-contact a,
.footer-contact p:not(.footer-note) {
  display: flex;
  align-items: flex-start;
  gap: 0.45rem;
}

.footer-contact svg {
  flex: 0 0 auto;
  color: #c8c4ff;
  margin-top: 0.15rem;
}

.footer-note {
  max-width: 235px;
  margin-top: 0.55rem !important;
  color: #aaa6c7 !important;
  font-size: 0.75rem !important;
  line-height: 1.55;
}

.footer-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding-block: 1.25rem;
  border-top: 1px solid rgba(255, 255, 255, 0.15);
  color: #b7b3d0;
  font-size: 0.74rem;
}

.footer-bottom > div {
  display: flex;
  gap: 1rem;
}

.footer-bottom a:hover {
  color: #fff;
}

@media (max-width: 1170px) {
  .site-header__inner {
    min-height: 80px;
  }

  .brand-lockup {
    width: 210px;
    height: 80px;
  }

  .desktop-nav {
    gap: 19px;
  }

  .nav-link {
    font-size: 0.78rem;
  }

  .header-call {
    padding-inline: 0.72rem;
    font-size: 0.76rem;
  }

  .button--header {
    width: 124px;
    font-size: 0.78rem;
  }

  .hero-header {
    padding-inline: 30px;
  }

  .hero-brand {
    width: 225px;
  }

  .hero-nav {
    gap: 19px;
  }

  .hero-header-actions {
    margin-left: 19px;
  }

  .aa-language-switcher--header,
  .aa-language-switcher--hero-header {
    width: 44px;
    min-width: 44px;
    grid-template-columns: 1fr;
    justify-items: center;
    padding: 0;
  }

  .aa-language-switcher--header select,
  .aa-language-switcher--hero-header select {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
  }

  .aa-language-switcher--header .aa-language-switcher__chevron,
  .aa-language-switcher--hero-header .aa-language-switcher__chevron {
    display: none;
  }

  .service-card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .service-card-grid--all {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .value-grid,
  .support-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

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

  .footer-main {
    grid-template-columns: 0.9fr 1.1fr;
  }

  .footer-contact {
    grid-column: 1 / -1;
    grid-template-columns: 1fr 1fr 1.15fr;
    align-items: center;
  }

  .footer-contact .footer-label {
    grid-column: 1 / -1;
    margin-bottom: 0;
  }
}

@media (max-width: 930px) {
  .shell {
    width: min(100% - 44px, 760px);
  }

  .desktop-nav,
  .header-call,
  .header-actions > .button {
    display: none;
  }

  .aa-language-switcher--header,
  .aa-language-switcher--hero-header {
    display: none;
  }

  .site-header__inner {
    width: min(100% - 34px, 100%);
    min-height: 76px;
  }

  .brand-lockup {
    width: 205px;
    height: 73px;
  }

  .hero-header {
    height: 72px;
    padding-inline: 22px;
  }

  .hero-brand {
    width: 205px;
    height: 72px;
  }

  .hero-nav,
  .hero-header-call {
    display: none;
  }

  .hero-header-actions {
    margin-left: auto;
    gap: 0.45rem;
  }

  .hero-header-start {
    width: 108px;
    min-width: 108px;
    height: 40px;
    min-height: 40px;
  }

  .hero-mobile-nav-toggle {
    width: 42px;
    height: 42px;
    display: inline-flex;
    flex: 0 0 42px;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 1px solid var(--line-strong);
    border-radius: 5px;
    color: var(--ink);
    background: #fff;
  }

  .hero-mobile-menu {
    position: absolute;
    z-index: 30;
    top: calc(100% - 1px);
    right: 0;
    left: 0;
    display: grid;
    max-height: min(74svh, 610px);
    gap: 0;
    padding: 0.45rem 20px 1rem;
    overflow-y: auto;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line-strong);
    background: rgba(255, 254, 254, 0.99);
    box-shadow: 0 18px 32px rgba(21, 25, 57, 0.14);
  }

  .hero-mobile-menu > a,
  .hero-mobile-menu > button {
    width: 100%;
    min-height: 46px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0.5rem 0.25rem;
    border: 0;
    border-bottom: 1px solid var(--line);
    color: var(--ink);
    background: transparent;
    font: inherit;
    font-size: 0.94rem;
    font-weight: 750;
    text-align: left;
  }

  .hero-mobile-menu > a:last-child {
    border-bottom: 0;
    color: var(--violet-deep);
  }

  .hero-mobile-menu__links {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.15rem 0.75rem;
    padding: 0.25rem 0.25rem 0.55rem;
    border-bottom: 1px solid var(--line);
  }

  .hero-mobile-menu__links a {
    min-height: 36px;
    display: flex;
    align-items: center;
    color: var(--ink-soft);
    font-size: 0.8rem;
    font-weight: 650;
    line-height: 1.25;
  }

  .menu-toggle {
    display: flex;
  }

  .mobile-menu {
    width: min(100% - 34px, 100%);
    display: grid;
    gap: 0.15rem;
    padding: 0.65rem 0 1rem;
    margin: 0 auto;
    border-top: 1px solid var(--line);
  }

  .mobile-menu a:not(.button) {
    min-height: 43px;
    align-items: center;
    gap: 0.45rem;
    padding: 0.55rem 0.3rem;
    color: var(--ink);
    font-size: 0.94rem;
    font-weight: 700;
  }

  .mobile-menu .button {
    margin-top: 0.45rem;
  }

  .page-hero__grid,
  .page-hero--compact .page-hero__grid {
    min-height: 0;
    grid-template-columns: 1fr;
    gap: 2rem;
    padding-block: 4.3rem;
  }

  .page-hero__aside {
    justify-self: start;
  }

  .split-intro,
  .home-intro,
  .family-grid,
  .mini-process,
  .location-callout,
  .transport-note,
  .work-note,
  .employee-cta,
  .contact-layout,
  .intake-layout {
    grid-template-columns: 1fr;
  }

  .section-heading--between {
    align-items: start;
    flex-direction: column;
    gap: 1rem;
  }

  .section-heading--between > p {
    margin: 0;
  }

  .pillar-grid,
  .care-path__grid,
  .home-trust-strip__inner,
  .service-directory-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .home-trust-item {
    border-bottom: 1px solid var(--line);
  }

  .home-trust-item:nth-child(2n) {
    border-right: 0;
  }

  .home-trust-item:nth-last-child(-n + 2) {
    border-bottom: 0;
  }

  .pillar-card {
    min-height: 280px;
  }

  .care-path__grid article:nth-child(2)::after {
    display: none;
  }

  .program-strip__inner {
    grid-template-columns: 1fr;
    gap: 1.4rem;
    padding-block: 3.5rem;
  }

  .program-strip__details > p {
    max-width: 580px;
  }

  .program-strip .button {
    justify-self: start;
  }

  .service-card-grid--all,
  .role-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .mini-process__steps {
    max-width: 560px;
  }

  .location-callout__details,
  .transport-note .button,
  .work-note .button,
  .employee-cta > div:last-child {
    justify-self: start;
  }

  .employee-cta > div:last-child {
    grid-template-columns: repeat(2, auto);
  }

  .contact-layout,
  .intake-layout {
    gap: 3rem;
  }

  .intake-aside {
    max-width: 630px;
  }

  .cta-section__inner {
    grid-template-columns: 1fr;
  }

  .cta-section__actions {
    justify-content: flex-start;
  }

  .footer-main {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }

  .footer-contact {
    grid-column: auto;
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 620px) {
  .shell {
    width: min(100% - 32px, 560px);
  }

  .section {
    padding-block: 4rem;
  }

  .button {
    min-height: 46px;
    padding-inline: 0.9rem;
  }

  .page-hero__grid,
  .page-hero--compact .page-hero__grid {
    padding-block: 3.5rem;
  }

  .page-hero h1 {
    font-size: clamp(2.55rem, 12vw, 3.6rem);
  }

  .page-hero__lead {
    font-size: 1rem;
  }

  .hero-fact-card {
    padding: 1.35rem;
  }

  .hero-fact-card__icon {
    margin-bottom: 1rem;
  }

  .pillar-grid,
  .service-card-grid,
  .service-card-grid--all,
  .service-directory-grid,
  .care-path__grid,
  .value-grid,
  .support-grid,
  .highlight-grid,
  .role-grid,
  .form-grid--two {
    grid-template-columns: 1fr;
  }

  .pillar-card {
    min-height: 250px;
  }

  .service-card {
    min-height: 270px;
  }

  .service-directory-card {
    min-height: 174px;
    grid-template-columns: 48px minmax(0, 1fr);
    grid-template-rows: 1fr;
    gap: 0.9rem;
    padding: 1.1rem;
  }

  .service-directory-card__icon {
    margin: 0;
  }

  .service-directory-card__arrow {
    right: 1.1rem;
    bottom: 1.1rem;
  }

  .care-path__grid article {
    padding: 0 0 1.35rem;
  }

  .care-path__grid article:not(:last-child)::after {
    top: auto;
    right: auto;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 1px;
  }

  .care-path__grid article:nth-child(2)::after {
    display: block;
  }

  .highlight-card {
    min-height: 150px;
  }

  .highlight-card p {
    margin-top: 1.35rem;
  }

  .mini-process__steps {
    grid-template-columns: 1fr;
  }

  .mini-process__steps > div,
  .mini-process__steps > div:last-child {
    display: grid;
    grid-template-columns: 40px 1fr;
    align-items: center;
    gap: 0.4rem;
    border-right: 1px solid var(--line-strong);
  }

  .mini-process__steps p {
    margin: 0;
  }

  .location-callout__details {
    padding: 1.2rem;
  }

  .contact-method strong {
    font-size: 0.86rem;
  }

  .form-panel {
    padding: 1.2rem;
  }

  .employee-cta > div:last-child {
    grid-template-columns: 1fr;
  }

  .cta-section__inner {
    min-height: 0;
    padding-block: 3.5rem;
  }

  .cta-section__actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .cta-section__actions .button {
    width: 100%;
  }

  .footer-links,
  .footer-contact {
    grid-template-columns: 1fr;
  }

  .footer-bottom {
    align-items: flex-start;
    flex-direction: column;
  }
}

@media (min-width: 721px) and (max-height: 760px) {
  .hero-copy {
    top: 15.5%;
    width: min(58%, 700px);
  }

  .hero-location {
    gap: 0.55rem;
    padding: 0.42rem 0.8rem;
    font-size: 0.78rem;
  }

  .hero-copy h1 {
    margin: 1.05rem 0 0.9rem;
    font-size: clamp(2.65rem, 3.4vw, 3.15rem);
    line-height: 1.045;
  }

  .hero-copy > p {
    max-width: 600px;
    margin-bottom: 1.15rem;
    font-size: clamp(0.82rem, 0.95vw, 0.95rem);
    line-height: 1.55;
  }

  .hero-actions {
    gap: 0.7rem;
  }

  .hero-button {
    min-height: 44px;
    gap: 0.45rem;
    padding-inline: 0.85rem;
    font-size: 0.78rem;
  }

  .hero-button--primary {
    min-width: clamp(128px, 14vw, 145px);
  }

  .hero-button--outline {
    min-width: clamp(145px, 17vw, 175px);
  }

  .hero-highlights {
    bottom: 1.8%;
    left: 1.25%;
    width: min(45%, 620px);
  }

  .hero-highlight {
    min-height: 100px;
    gap: 0.45rem;
    padding-inline: 0.4rem;
  }

  .hero-highlight:not(:last-child)::after {
    top: 7px;
    height: 88px;
  }

  .hero-highlight__icon {
    width: 52px;
    height: 52px;
  }

  .hero-highlight__label {
    font-size: 0.72rem;
  }
}

@media (max-width: 720px) {
  .hero-shell {
    height: auto;
    min-height: 0;
  }

  .hero-frame {
    height: auto;
    min-height: 0;
    padding-bottom: 2rem;
    aspect-ratio: auto;
  }

  .hero-photo {
    inset: 38% 0 0;
  }

  .hero-photo-seam {
    inset: 30% 0 auto;
    width: 100%;
    height: 17%;
    background: linear-gradient(180deg, var(--paper) 0%, rgba(255, 254, 254, 0.9) 33%, rgba(255, 254, 254, 0) 100%);
  }

  .hero-header {
    position: relative;
    grid-template-columns: 1fr auto;
    gap: 0.75rem;
    padding: 1.25rem 1rem 0;
  }

  .hero-brand {
    width: min(220px, 58vw);
  }

  .hero-nav,
  .hero-header-call {
    display: none;
  }

  .hero-header-actions {
    padding-top: 0;
  }

  .hero-header-start {
    min-width: 142px;
    min-height: 46px;
    padding-inline: 0.85rem;
    font-size: 0.82rem;
  }

  .hero-copy {
    position: relative;
    top: auto;
    left: auto;
    width: min(100% - 2rem, 650px);
    margin: 2.2rem auto 0;
  }

  .hero-location {
    max-width: 100%;
    white-space: normal;
  }

  .hero-copy h1 {
    margin-top: 1.35rem;
    font-size: clamp(2.9rem, 10vw, 4rem);
  }

  .hero-copy > p {
    font-size: 1rem;
    line-height: 1.7;
  }

  .hero-actions {
    flex-wrap: wrap;
  }

  .hero-button {
    min-width: 0;
  }

  .hero-highlights {
    position: relative;
    right: auto;
    bottom: auto;
    left: auto;
    width: min(100% - 2rem, 650px);
    margin: 4rem auto 0;
  }

  .hero-highlight {
    min-height: 115px;
  }

  .hero-highlight__icon {
    width: 58px;
    height: 58px;
  }
}

@media (max-width: 420px) {
  .home-trust-strip__inner {
    grid-template-columns: 1fr;
  }

  .home-trust-item,
  .home-trust-item:nth-child(2n),
  .home-trust-item:nth-last-child(-n + 2) {
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  .home-trust-item:last-child {
    border-bottom: 0;
  }
}

/* Ash Brothers homepage layout translated into the A&A brand system. */
.home-layout-shell {
  width: min(1240px, calc(100% - 64px));
  margin-inline: auto;
}

.home-eyebrow {
  margin: 0 0 13px;
  color: var(--green-deep);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.14em;
  line-height: 1.2;
  text-transform: uppercase;
}

.trust-strip {
  padding-top: clamp(32px, 3vw, 48px);
  border-bottom: 1px solid var(--line);
  background: var(--paper);
}

.trust-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.trust-item {
  min-height: 88px;
  display: flex;
  align-items: center;
  gap: 13px;
  padding: 15px 26px;
  border-right: 1px solid var(--line);
}

.trust-item:first-child {
  padding-left: 0;
}

.trust-item:last-child {
  padding-right: 0;
  border-right: 0;
}

.trust-icon {
  width: 38px;
  height: 38px;
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  color: var(--green-deep);
  background: var(--green-pale);
  transition: box-shadow 300ms ease, transform 300ms cubic-bezier(0.22, 1, 0.36, 1);
}

.trust-item:hover .trust-icon {
  box-shadow: 0 8px 18px rgba(40, 116, 49, 0.12);
  transform: translateY(-4px) rotate(-3deg);
}

.trust-item div {
  display: grid;
  gap: 4px;
}

.trust-item strong {
  color: var(--ink);
  font-size: 13px;
}

.trust-item div > span {
  color: var(--ink-faint);
  font-size: 12px;
  line-height: 1.45;
}

.home-services {
  padding: 78px 0 82px;
  background: var(--paper);
}

.home-section-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 0.72fr);
  align-items: end;
  gap: 64px;
  margin-bottom: 36px;
}

.home-section-heading h2,
.home-guide h2,
.home-insurance-head h2,
.home-area-copy h2,
.home-contact h2 {
  margin: 0;
  color: var(--ink);
  font-family: var(--serif);
  font-weight: 400;
  letter-spacing: -0.04em;
}

.home-section-heading h2 {
  font-size: clamp(36px, 4vw, 48px);
  line-height: 1.06;
}

.home-section-heading > p {
  max-width: 470px;
  margin: 0 0 3px;
  color: var(--ink-faint);
  font-size: 15px;
  line-height: 1.65;
}

.home-service-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid var(--line-strong);
  border-left: 1px solid var(--line-strong);
}

.home-service-card {
  min-height: 126px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 18px;
  padding: 23px 24px;
  border-right: 1px solid var(--line-strong);
  border-bottom: 1px solid var(--line-strong);
  background: var(--paper);
  transition: background-color 160ms ease;
}

.home-service-card:hover,
.home-service-card:focus-visible {
  background: var(--violet-pale);
}

.home-service-card:focus-visible {
  position: relative;
  z-index: 1;
  outline: 3px solid rgba(78, 76, 163, 0.3);
  outline-offset: -3px;
}

.home-service-icon {
  width: 42px;
  height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--violet);
  transition: transform 300ms cubic-bezier(0.22, 1, 0.36, 1);
}

.home-service-card:hover .home-service-icon {
  transform: translateY(-4px) rotate(-3deg);
}

.home-service-copy {
  display: grid;
  gap: 7px;
}

.home-service-copy strong {
  color: var(--ink);
  font-family: var(--serif);
  font-size: 18px;
  font-weight: 400;
  line-height: 1.15;
}

.home-service-copy small {
  max-width: 245px;
  color: var(--ink-faint);
  font-size: 12px;
  line-height: 1.5;
}

.home-service-arrow {
  color: var(--green-deep);
  transition: color 160ms ease, transform 160ms ease;
}

.home-service-card:hover .home-service-arrow,
.home-service-card:focus-visible .home-service-arrow {
  color: var(--violet);
  transform: translateX(3px);
}

.home-services-link {
  display: flex;
  justify-content: flex-end;
  margin-top: 25px;
}

.home-guide {
  padding: 84px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: #f7fbf7;
}

.home-guide-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(340px, 0.92fr);
  align-items: start;
  gap: clamp(58px, 8vw, 108px);
}

.home-guide h2 {
  max-width: 590px;
  font-size: clamp(38px, 4.3vw, 52px);
  line-height: 1.07;
}

.home-guide-lede {
  max-width: 590px;
  margin: 20px 0 0;
  color: var(--ink-faint);
  font-size: 15px;
  line-height: 1.7;
}

.home-reason-list {
  display: grid;
  gap: 19px;
  margin-top: 32px;
}

.home-reason-list > div {
  display: grid;
  grid-template-columns: 38px 1fr;
  align-items: start;
  gap: 14px;
}

.home-reason-list > div > svg {
  margin-top: 2px;
  color: var(--green-deep);
}

.home-reason-list span,
.home-reason-list small {
  display: block;
}

.home-reason-list strong {
  color: var(--ink);
  font-size: 13px;
}

.home-reason-list small {
  margin-top: 4px;
  color: var(--ink-faint);
  font-size: 12px;
  line-height: 1.5;
}

.home-steps {
  padding-left: clamp(42px, 5.5vw, 76px);
  border-left: 1px solid var(--line-strong);
}

.home-steps h3 {
  margin: 0;
  color: var(--ink);
  font-family: var(--serif);
  font-size: 31px;
  font-weight: 400;
  letter-spacing: -0.035em;
}

.home-steps ol {
  display: grid;
  gap: 0;
  margin: 27px 0 0;
  padding: 0;
  list-style: none;
}

.home-steps li {
  display: grid;
  grid-template-columns: 38px 1fr;
  align-items: start;
  gap: 16px;
  padding: 20px 0;
  border-top: 1px solid var(--line-strong);
}

.home-steps li > span {
  width: 32px;
  height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  color: #fff;
  background: var(--violet);
  font-size: 12px;
  font-weight: 750;
}

.home-steps li div {
  display: grid;
  gap: 5px;
}

.home-steps li strong {
  color: var(--ink);
  font-size: 13px;
}

.home-steps li small {
  color: var(--ink-faint);
  font-size: 12px;
  line-height: 1.55;
}

.home-insurance {
  padding: 78px 0 70px;
  border-bottom: 1px solid var(--line);
  background: #f8f8fc;
}

.home-insurance-head {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(280px, 0.9fr);
  align-items: end;
  gap: 64px;
  margin-bottom: 10px;
}

.home-insurance-head h2,
.home-area-copy h2 {
  max-width: 600px;
  font-size: clamp(34px, 4vw, 49px);
  line-height: 1.06;
}

.home-insurance-copy {
  max-width: 470px;
  padding-bottom: 3px;
}

.home-insurance-copy p,
.home-area-copy > p:not(.home-eyebrow) {
  margin: 0 0 15px;
  color: var(--ink-faint);
  font-size: 14px;
  line-height: 1.7;
}

.insurance-carousel {
  position: relative;
  margin-top: 27px;
}

.insurance-carousel-controls {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin: 0 0 11px;
}

.insurance-carousel-button {
  width: 39px;
  height: 39px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 1px solid rgba(78, 76, 163, 0.3);
  border-radius: 999px;
  color: var(--violet);
  background: rgba(255, 255, 255, 0.82);
  transition: background 180ms ease, border-color 180ms ease, color 180ms ease, transform 180ms ease;
}

.insurance-carousel-button:hover,
.insurance-carousel-button:focus-visible {
  border-color: var(--violet);
  color: #fff;
  background: var(--violet);
  transform: translateY(-1px);
}

.insurance-carousel-button:focus-visible,
.insurance-scroll:focus-visible {
  outline: 3px solid rgba(64, 184, 74, 0.3);
  outline-offset: 3px;
}

.insurance-carousel-arrow--previous {
  transform: rotate(180deg);
}

.insurance-scroll {
  position: relative;
  overflow-x: auto;
  overflow-y: hidden;
  padding: 8px 0 14px;
  scroll-behavior: auto;
  scrollbar-width: none;
  touch-action: pan-x pan-y;
  overscroll-behavior-x: contain;
  cursor: grab;
  will-change: scroll-position;
  -webkit-overflow-scrolling: touch;
}

.insurance-scroll::-webkit-scrollbar {
  display: none;
}

.insurance-scroll.is-dragging {
  cursor: grabbing;
  user-select: none;
}

.insurance-logo-track {
  display: flex;
  width: max-content;
}

.insurance-logo-list {
  display: flex;
  width: max-content;
  gap: 16px;
  margin: 0;
  padding: 0 8px;
  list-style: none;
}

.insurance-logo-card {
  width: 204px;
  height: 106px;
  display: flex;
  flex: 0 0 204px;
  align-items: center;
  justify-content: center;
  padding: 17px 20px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: #fff;
  box-shadow: 0 9px 25px rgba(16, 25, 54, 0.05);
  transition: box-shadow 300ms ease, transform 700ms cubic-bezier(0.22, 1, 0.36, 1);
}

.insurance-logo-card:hover {
  box-shadow: 0 15px 32px rgba(16, 25, 54, 0.1);
  transform: translateY(-4px);
}

.insurance-logo-card img {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: 65px;
  object-fit: contain;
}

.insurance-program-card {
  justify-content: flex-start;
  padding: 14px 16px;
  overflow: hidden;
}

.insurance-program-card--green {
  border-top: 3px solid var(--green-deep);
}

.insurance-program-card--violet {
  border-top: 3px solid var(--violet);
}

.insurance-program-card__inner {
  display: grid;
  grid-template-columns: 38px 1fr;
  gap: 0.7rem;
  align-items: center;
  text-align: left;
}

.insurance-program-card__icon {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: var(--green-deep);
  background: var(--green-pale);
}

.insurance-program-card--violet .insurance-program-card__icon {
  color: var(--violet-deep);
  background: var(--violet-pale);
}

.insurance-program-card__copy {
  display: grid;
  gap: 0.2rem;
}

.insurance-program-card__copy small {
  color: var(--ink-faint);
  font-size: 0.56rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  line-height: 1.2;
  text-transform: uppercase;
}

.insurance-program-card__copy strong {
  color: var(--ink);
  font-family: var(--serif);
  font-size: 0.9rem;
  font-weight: 500;
  line-height: 1.12;
}

.insurance-carousel-note {
  margin: 5px 0 0;
  color: var(--ink-faint);
  font-size: 12px;
  text-align: center;
}

.home-area {
  padding: 82px 0;
  background: var(--paper);
}

.home-area-inner {
  display: grid;
  grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr);
  align-items: center;
  gap: clamp(48px, 8vw, 108px);
}

.home-area-copy {
  max-width: 560px;
}

.home-area-copy h2 {
  margin-bottom: 19px;
}

.home-area-note {
  margin-top: 15px;
  color: var(--ink-faint);
  font-size: 13px;
  line-height: 1.65;
}

.home-area-button {
  margin-top: 11px;
}

.home-area-map {
  position: relative;
  min-height: 320px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: var(--green-pale);
  box-shadow: 0 18px 42px rgba(16, 25, 54, 0.08);
}

.service-area-map,
.service-area-map__canvas {
  width: 100%;
  height: 100%;
  min-height: 320px;
}

.service-area-map {
  position: relative;
}

.service-area-map__canvas {
  z-index: 0;
  background: #eaf2e8;
}

.aa-map-tooltip {
  padding: 8px 10px;
  border: 0;
  border-radius: 5px;
  color: var(--ink);
  box-shadow: 0 7px 20px rgba(16, 25, 54, 0.18);
  font-family: inherit;
  font-size: 11px;
  line-height: 1.35;
}

.aa-map-tooltip::before {
  border-top-color: #fff;
}

.leaflet-control-zoom a {
  color: var(--ink);
}

.leaflet-control-attribution {
  color: #5f6873;
  font-size: 9px;
}

.leaflet-control-attribution a {
  color: #2f6940;
}

.home-contact {
  position: relative;
  overflow: hidden;
  padding: 0;
  border-top: 1px solid #d9e4d8;
  background:
    radial-gradient(circle at 91% 12%, rgba(78, 76, 163, 0.12) 0, rgba(78, 76, 163, 0) 32%),
    linear-gradient(128deg, #eef8ee 0%, #f6f8f2 54%, #f2f1fb 100%);
}

.home-contact::before {
  position: absolute;
  inset: 0;
  border-top: 5px solid var(--violet);
  background: linear-gradient(90deg, rgba(40, 116, 49, 0.08), transparent 34%, rgba(78, 76, 163, 0.05));
  content: "";
  pointer-events: none;
}

.home-contact-inner {
  position: relative;
  z-index: 1;
  min-height: clamp(310px, 28vw, 400px);
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(240px, 0.62fr) auto;
  align-items: center;
  gap: clamp(40px, 6vw, 86px);
  padding-block: 70px;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.home-contact-copy .home-eyebrow {
  margin-bottom: 8px;
}

.home-contact h2 {
  max-width: 620px;
  font-size: clamp(42px, 4.3vw, 60px);
  line-height: 1.02;
}

.home-contact-copy > p:last-child {
  max-width: 560px;
  margin: 18px 0 0;
  color: var(--ink-faint);
  font-size: 15px;
  line-height: 1.7;
}

.home-contact-details {
  display: grid;
  gap: 20px;
  margin: 0;
  color: var(--ink);
  font-size: 14px;
  font-style: normal;
  line-height: 1.6;
}

.home-contact-details > span,
.home-contact-details a {
  display: flex;
  align-items: flex-start;
  gap: 9px;
}

.home-contact-details svg {
  flex: 0 0 auto;
  margin-top: 2px;
  color: var(--green-deep);
}

.home-contact-details a {
  font-size: 18px;
  font-weight: 800;
}

.home-contact-cta {
  min-width: 210px;
  min-height: 58px;
  justify-content: space-between;
  padding-inline: 1.35rem;
}

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

  .trust-item {
    padding-inline: 16px;
  }

  .trust-item:first-child,
  .trust-item:nth-child(3) {
    padding-left: 0;
  }

  .trust-item:nth-child(2) {
    padding-right: 0;
    border-right: 0;
  }

  .trust-item:nth-child(n + 3) {
    border-top: 1px solid var(--line);
  }

  .home-section-heading,
  .home-insurance-head,
  .home-area-inner {
    grid-template-columns: 1fr;
    gap: 34px;
  }

  .home-section-heading {
    gap: 16px;
  }

  .home-service-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .home-guide-grid {
    grid-template-columns: 1fr;
    gap: 52px;
  }

  .home-steps {
    padding: 44px 0 0;
    border-top: 1px solid var(--line-strong);
    border-left: 0;
  }

  .home-insurance-copy,
  .home-area-copy {
    max-width: 680px;
  }

  .home-area-map {
    max-width: 680px;
  }

  .home-contact-inner {
    grid-template-columns: minmax(0, 1fr) minmax(210px, 0.72fr);
    gap: 42px;
    padding-block: 64px;
  }

  .home-contact-cta {
    width: 100%;
    grid-column: 2;
  }
}

@media (max-width: 720px) {
  .home-layout-shell {
    width: min(calc(100% - 44px), 1240px);
  }

  .trust-strip {
    padding-top: 24px;
  }

  .trust-grid,
  .home-service-grid {
    grid-template-columns: 1fr;
  }

  .trust-item,
  .trust-item:first-child,
  .trust-item:nth-child(2),
  .trust-item:nth-child(3),
  .trust-item:last-child {
    min-height: 72px;
    padding: 14px 0;
    border-top: 0;
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  .trust-item:last-child {
    border-bottom: 0;
  }

  .home-services {
    padding: 62px 0 66px;
  }

  .home-service-card {
    min-height: 112px;
    padding: 20px 18px;
  }

  .home-services-link {
    justify-content: flex-start;
  }

  .home-guide {
    padding: 64px 0;
  }

  .home-guide h2 {
    font-size: 40px;
  }

  .home-insurance {
    padding: 68px 0 60px;
  }

  .home-insurance-head {
    gap: 17px;
  }

  .insurance-logo-card {
    width: min(76vw, 240px);
    flex-basis: min(76vw, 240px);
  }

  .home-area {
    padding: 70px 0;
  }

  .home-area-map,
  .service-area-map,
  .service-area-map__canvas {
    min-height: 270px;
  }

  .home-contact {
    padding: 0;
  }

  .home-contact-inner {
    width: 100%;
    min-height: 0;
    grid-template-columns: 1fr;
    gap: 30px;
    padding: 58px 22px 64px;
  }

  .home-contact-cta {
    width: 100%;
    min-height: 58px;
    grid-column: auto;
  }

  .home-contact h2 {
    max-width: 560px;
    font-size: clamp(2.7rem, 11.5vw, 3.55rem);
  }

  .home-contact-copy > p:last-child {
    font-size: 0.96rem;
    line-height: 1.65;
  }
}

/* Keep the inner-page editorial rules last in the cascade. */
.button {
  border-radius: 7px;
  box-shadow: none;
  transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease;
}

.button:hover {
  transform: none;
}

.button--quiet {
  min-height: 46px;
  padding-inline: 0.35rem;
  border-color: transparent;
  color: var(--ink);
  background: transparent;
}

.page-hero {
  overflow: hidden;
  border-bottom: 1px solid #dfe5dc;
  background: #fafcf7;
}

.page-hero::before,
.page-hero::after {
  display: none;
}

.page-hero__grid,
.page-hero--compact .page-hero__grid {
  min-height: 430px;
  grid-template-columns: minmax(0, 1.12fr) minmax(390px, 0.88fr);
  gap: 0;
  align-items: stretch;
  padding-block: 0;
}

.page-hero--image .page-hero__grid {
  height: 520px;
  min-height: 520px;
}

.page-hero--compact .page-hero__grid {
  min-height: 370px;
}

.page-hero h1 {
  max-width: 700px;
  margin-bottom: 1.25rem;
  font-size: clamp(3.2rem, 4.65vw, 4.75rem);
  line-height: 1.01;
}

.page-hero--image h1 {
  font-size: clamp(3.1rem, 4.15vw, 4.4rem);
}

.page-hero__lead {
  max-width: 620px;
  margin-bottom: 1.6rem;
  color: #59635f;
  font-size: clamp(1rem, 1.25vw, 1.15rem);
  line-height: 1.65;
}

.service-card-grid--all {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  border: 1px solid var(--line);
  background: var(--line);
}

.service-card {
  min-height: 300px;
  padding: 1.6rem;
  border: 0;
  border-radius: 0;
  background: #fff;
  transition: background-color 160ms ease;
}

.service-card:hover {
  border-color: transparent;
  box-shadow: none;
  transform: none;
  background: #fafbf7;
}

.service-card__icon {
  width: auto;
  height: auto;
  margin: 0;
  border-radius: 0;
  color: var(--violet);
  background: transparent;
}

.service-card__title {
  margin-bottom: 0.75rem;
  font-family: var(--serif);
  font-size: 1.6rem;
  font-weight: 400;
  letter-spacing: -0.04em;
}

.service-card__description {
  max-width: 440px;
  color: #626b67;
  font-size: 0.9rem;
}

.service-card__link {
  color: var(--ink);
}

.value-grid,
.support-grid {
  gap: 1px;
  border: 1px solid var(--line);
  background: var(--line);
}

.support-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.value-grid article,
.support-grid article {
  min-height: 210px;
  padding: 1.5rem;
  border: 0;
  border-radius: 0;
  background: #fff;
}

.value-grid article > span {
  width: auto;
  height: auto;
  display: block;
  margin-bottom: 2.1rem;
  border-radius: 0;
  color: var(--green-deep);
  background: transparent;
  font-size: 0.72rem;
  font-weight: 850;
  letter-spacing: 0.12em;
}

.support-grid article > span {
  border-radius: 50%;
}

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

.highlight-card {
  min-height: 165px;
  padding: 1.5rem;
}

.role-grid article {
  min-height: 170px;
}

.form-panel {
  padding: clamp(1.6rem, 3vw, 2.3rem);
  border: 1px solid #d7ddd4;
  border-top: 3px solid var(--green-deep);
  border-radius: 8px 8px 2px 2px;
  box-shadow: none;
}

.care-form input,
.care-form select,
.care-form textarea {
  min-height: 46px;
  border-color: #c7cec8;
  border-radius: 5px;
}

.care-form textarea {
  min-height: 126px;
}

.contact-method > span,
.intake-list li > span {
  border-radius: 50%;
}

.cta-section {
  border-top: 5px solid var(--green);
  background: #373487;
}

.cta-section__inner {
  min-height: 290px;
}

.cta-section h2 {
  font-size: clamp(2.4rem, 3.8vw, 3.8rem);
}

@media (max-width: 930px) {
  .page-hero__grid,
  .page-hero--compact .page-hero__grid {
    min-height: 0;
    grid-template-columns: 1fr;
    gap: 0;
    padding-block: 0;
  }

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

@media (max-width: 620px) {
  .page-hero h1 {
    font-size: clamp(2.65rem, 12vw, 3.65rem);
  }

  .service-card-grid--all,
  .support-grid,
  .highlight-grid {
    grid-template-columns: 1fr;
  }

  .service-card {
    min-height: 265px;
  }

  .form-panel {
    padding: 1.2rem;
  }
}

.page-hero__type-visual {
  overflow: hidden;
  gap: 0.08em;
  font-size: clamp(3.4rem, 4.5vw, 4.8rem);
  line-height: 0.88;
}

.page-hero__type-visual span {
  display: block;
  white-space: nowrap;
}

.button--quiet:hover {
  color: var(--violet-deep);
  background: transparent;
}

.page-hero__copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 2.6rem clamp(2rem, 5vw, 5.5rem) 2.8rem 0;
}

.page-hero__breadcrumb {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 1.15rem;
  color: #6b746f;
  font-size: 0.76rem;
}

.page-hero__breadcrumb a:hover {
  color: var(--green-deep);
}

.page-hero__breadcrumb span:last-child {
  color: var(--green-deep);
  font-weight: 750;
}

.page-hero .eyebrow {
  margin-bottom: 1rem;
}

.page-hero__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.95rem;
}

.page-hero__media {
  position: relative;
  min-height: 430px;
  margin: 0;
  overflow: hidden;
  background: #e7e8e0;
}

.page-hero--image .page-hero__media {
  width: calc(100% + max(32px, calc((100vw - 1180px) / 2)));
  height: 520px;
  min-height: 520px;
}

.page-hero__media::before,
.page-hero__media::after {
  position: absolute;
  z-index: 1;
  right: 0;
  left: 0;
  pointer-events: none;
  content: "";
}

.page-hero__media::before {
  inset: 0;
  height: 100%;
  background:
    linear-gradient(to right, #fafcf7 0%, rgba(250, 252, 247, 0.92) 5%, rgba(250, 252, 247, 0.48) 12%, rgba(250, 252, 247, 0) 24%),
    linear-gradient(to left, #fafcf7 0%, rgba(250, 252, 247, 0.92) 5%, rgba(250, 252, 247, 0.48) 12%, rgba(250, 252, 247, 0) 24%),
    linear-gradient(to bottom, #fafcf7 0%, rgba(250, 252, 247, 0.72) 28px, rgba(250, 252, 247, 0) 82px);
}

.page-hero__media::after {
  bottom: 0;
  height: clamp(54px, 13%, 82px);
  background: linear-gradient(to top, #fafcf7 0%, rgba(250, 252, 247, 0.72) 28%, rgba(250, 252, 247, 0) 100%);
}

.page-hero--compact .page-hero__media {
  min-height: 370px;
}

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

.page-hero__type-visual {
  min-height: 100%;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: center;
  overflow: hidden;
  gap: 0.08em;
  padding: 2rem 1.8rem;
  color: rgba(40, 116, 49, 0.13);
  font-family: var(--serif);
  font-size: clamp(3.4rem, 4.5vw, 4.8rem);
  letter-spacing: -0.07em;
  line-height: 0.88;
  text-align: right;
}

.quick-answer {
  width: 100%;
  margin: 0;
  padding: clamp(4.75rem, 7vw, 7.25rem) 0;
  border-top: 1px solid #dfe5dc;
  border-bottom: 1px solid #dfe5dc;
  background: #f6f8f3;
}

.quick-answer .eyebrow {
  margin-bottom: 1.35rem;
}

.quick-answer__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(320px, 0.88fr);
  gap: clamp(2rem, 7vw, 7rem);
  align-items: end;
}

.quick-answer h2 {
  max-width: 760px;
  margin-bottom: 0.9rem;
  font-size: clamp(2.15rem, 3.5vw, 3.45rem);
}

.quick-answer__grid > div > p {
  max-width: 760px;
  margin: 0;
  color: #5d6762;
  line-height: 1.72;
}

.quick-answer ul {
  display: grid;
  gap: 0.72rem;
  padding: 0;
  margin: 0;
  list-style: none;
}

.quick-answer li {
  display: grid;
  grid-template-columns: 21px 1fr;
  gap: 0.55rem;
  color: var(--ink-soft);
  font-size: 0.9rem;
  line-height: 1.45;
}

.quick-answer li svg {
  color: var(--green-deep);
  margin-top: 0.08rem;
}

.editorial-intro > div:last-child > p:not(.outcome-copy) {
  color: #5d6762;
  line-height: 1.78;
}

.service-card__meta {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 1.6rem;
}

.service-card__number {
  color: #939a98;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.12em;
}

.service-card__eyebrow {
  color: var(--green-deep);
}

.service-guidance,
.provider-details {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(360px, 0.75fr);
  gap: clamp(2.5rem, 9vw, 9rem);
  align-items: center;
}

.service-guidance h2,
.provider-details h2 {
  margin-bottom: 1rem;
  font-size: clamp(2.4rem, 3.7vw, 3.7rem);
}

.service-guidance > div > p:not(.eyebrow),
.provider-details > div > p:not(.eyebrow) {
  max-width: 560px;
  color: #5f6964;
  line-height: 1.75;
}

.service-guidance__links,
.provider-details dl {
  margin: 0;
  border-top: 1px solid var(--line-strong);
}

.service-guidance__links a {
  min-height: 72px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  border-bottom: 1px solid var(--line-strong);
  color: var(--ink);
  font-weight: 720;
}

.service-guidance__links a:hover {
  color: var(--violet-deep);
}

.provider-details dl > div {
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 1rem;
  padding: 1rem 0;
  border-bottom: 1px solid var(--line-strong);
}

.provider-details dt {
  color: #737d78;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.provider-details dd {
  margin: 0;
  color: var(--ink);
  font-weight: 680;
  line-height: 1.5;
}

.highlight-card p {
  max-width: 460px;
}

@media (max-width: 930px) {
  .page-hero--image .page-hero__grid {
    height: auto;
    min-height: 0;
  }

  .page-hero__copy {
    padding: 3.5rem 0;
  }

  .page-hero__media,
  .page-hero--compact .page-hero__media {
    min-height: 320px;
  }

  .page-hero--image .page-hero__media {
    width: 100%;
    height: 320px;
    min-height: 320px;
  }

  .page-hero__type-visual {
    min-height: 250px;
    align-items: flex-start;
    padding: 2rem 0;
    text-align: left;
  }

  .quick-answer__grid,
  .service-guidance,
  .provider-details {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 620px) {
  .page-hero__copy {
    padding: 3rem 0;
  }

  .page-hero__media,
  .page-hero--compact .page-hero__media {
    min-height: 245px;
  }

  .page-hero--image .page-hero__media {
    height: 245px;
    min-height: 245px;
  }

  .page-hero__actions {
    align-items: flex-start;
    flex-direction: column;
  }

  .quick-answer {
    width: 100%;
    margin: 0;
    padding: 4rem 0;
  }

  .provider-details dl > div {
    grid-template-columns: 1fr;
    gap: 0.35rem;
  }

  .page-hero__type-visual {
    display: none;
  }
}

/* Crisp branded calls to action: editorial geometry instead of soft template pills. */
.button--primary,
.hero-button--primary,
.hero-header-start {
  position: relative;
  gap: 0.45rem;
  border: 1px solid #353373;
  border-radius: 3px;
  color: #fff;
  background: #48469a;
  box-shadow: 0 2px 0 #2f2d68;
  letter-spacing: 0.005em;
  transition: background-color 150ms ease, border-color 150ms ease, box-shadow 150ms ease, transform 150ms ease;
}

.button--primary svg,
.hero-button--primary svg,
.hero-header-start svg {
  box-sizing: content-box;
  margin-left: 0.15rem;
  padding-left: 0.7rem;
  border-left: 1px solid rgba(255, 255, 255, 0.24);
  transition: transform 150ms ease;
}

.button--primary:hover,
.button--primary:focus-visible,
.hero-button--primary:hover,
.hero-button--primary:focus-visible,
.hero-header-start:hover,
.hero-header-start:focus-visible {
  border-color: #2f2d68;
  background: #3d3b86;
  box-shadow: 0 1px 0 #29275c;
  transform: translateY(1px);
}

.button--primary:hover svg,
.button--primary:focus-visible svg,
.hero-button--primary:hover svg,
.hero-button--primary:focus-visible svg,
.hero-header-start:hover svg,
.hero-header-start:focus-visible svg {
  transform: translateX(2px);
}

.button--primary:focus-visible,
.hero-button--primary:focus-visible,
.hero-header-start:focus-visible {
  outline: 3px solid rgba(64, 184, 74, 0.3);
  outline-offset: 3px;
}

.button--outline,
.hero-button--outline {
  border-color: #bbb9d7;
  border-radius: 3px;
  color: #343276;
  background: rgba(255, 254, 254, 0.92);
  box-shadow: 0 1px 0 rgba(16, 25, 54, 0.06);
}

.button--outline:hover,
.button--outline:focus-visible,
.hero-button--outline:hover,
.hero-button--outline:focus-visible {
  border-color: #4e4ca3;
  color: #343276;
  background: #f8f7ff;
}

/* Resource center, referral, coverage, service-area, and policy system. */
.resource-menu {
  left: auto;
  right: -0.5rem;
  width: 245px;
}

.area-copy-panel h2,
.area-questions h2,
.area-next h2,
.resource-note h2,
.article-index__intro h2,
.article-faq h2,
.related-pages h2,
.faq-page-intro h2,
.faq-links-panel h2,
.coverage-steps h2,
.coverage-official h2,
.referral-overview h2,
.referral-channels h2,
.referral-services h2,
.policy-help h2,
.legal-aside h2 {
  margin-bottom: 1rem;
  font-size: clamp(2.2rem, 3.5vw, 3.55rem);
}

.area-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(330px, 0.8fr);
  align-items: center;
  gap: clamp(2.5rem, 7vw, 7rem);
}

.area-map-panel {
  min-height: 520px;
  overflow: hidden;
  border: 1px solid #cfd8cf;
  border-top: 4px solid var(--green-deep);
  border-radius: 8px 8px 2px 2px;
  background: var(--green-pale);
  box-shadow: 0 22px 50px rgba(16, 25, 54, 0.09);
}

.area-map-panel .service-area-map,
.area-map-panel .service-area-map__canvas {
  min-height: 516px;
}

.area-copy-panel > p:not(.eyebrow) {
  color: #5d6762;
  line-height: 1.78;
}

.area-office {
  display: grid;
  grid-template-columns: 38px 1fr;
  gap: 0.85rem;
  margin: 1.8rem 0 1.4rem;
  padding: 1.15rem 0;
  border-top: 1px solid var(--line-strong);
  border-bottom: 1px solid var(--line-strong);
}

.area-office > svg {
  color: var(--green-deep);
  margin-top: 0.15rem;
}

.area-office strong,
.area-office span {
  display: block;
}

.area-office strong {
  margin-bottom: 0.18rem;
  color: var(--ink);
  font-size: 0.92rem;
}

.area-office span {
  color: var(--ink-faint);
  font-size: 0.86rem;
}

.area-questions {
  display: grid;
  grid-template-columns: minmax(0, 0.72fr) minmax(420px, 1fr);
  gap: clamp(2.5rem, 8vw, 8rem);
}

.area-questions ol {
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--line-strong);
  list-style: none;
}

.area-questions li {
  display: grid;
  grid-template-columns: 48px 1fr;
  gap: 1rem;
  padding: 1.4rem 0;
  border-bottom: 1px solid var(--line-strong);
}

.area-questions li > span {
  color: var(--green-deep);
  font-size: 0.72rem;
  font-weight: 850;
  letter-spacing: 0.1em;
}

.area-questions strong,
.area-questions p {
  display: block;
  margin: 0;
}

.area-questions strong {
  color: var(--ink);
  font-size: 0.95rem;
}

.area-questions p {
  margin-top: 0.25rem;
  color: var(--ink-faint);
  font-size: 0.87rem;
  line-height: 1.6;
}

.area-next {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: end;
  gap: 2rem;
}

.area-next > div > p:last-child {
  max-width: 680px;
  margin: 0;
  color: var(--ink-faint);
}

.resource-directory {
  background: #fff;
}

.resource-card-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  border: 1px solid var(--line);
  background: var(--line);
}

.resource-card {
  min-height: 285px;
  display: flex;
  flex-direction: column;
  padding: 1.55rem;
  background: #fff;
  transition: background-color 160ms ease;
}

.resource-card:hover {
  background: #f9fbf7;
}

.resource-card__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 2.4rem;
  color: var(--green-deep);
}

.resource-card__top span {
  font-size: 0.7rem;
  font-weight: 850;
  letter-spacing: 0.11em;
}

.resource-card h3 {
  margin-bottom: 0.65rem;
  font-family: var(--serif);
  font-size: 1.55rem;
  font-weight: 400;
  letter-spacing: -0.04em;
}

.resource-card > p {
  margin-bottom: 1.35rem;
  color: var(--ink-faint);
  font-size: 0.88rem;
  line-height: 1.65;
}

.resource-card > strong {
  margin-top: auto;
  color: var(--violet-deep);
  font-size: 0.79rem;
}

.article-card-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  border: 1px solid var(--line);
  background: var(--line);
}

.article-card {
  min-height: 335px;
  display: flex;
  flex-direction: column;
  padding: clamp(1.5rem, 3vw, 2.25rem);
  background: #fff;
}

.article-card__meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 2.6rem;
}

.article-card__meta span,
.article-card__meta p {
  margin: 0;
  color: var(--green-deep);
  font-size: 0.68rem;
  font-weight: 850;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.article-card__meta p {
  color: #747d78;
  text-align: right;
}

.article-card h3 {
  max-width: 480px;
  margin-bottom: 0.8rem;
  font-family: var(--serif);
  font-size: clamp(1.65rem, 2.5vw, 2.15rem);
  font-weight: 400;
  letter-spacing: -0.045em;
  line-height: 1.08;
}

.article-card > p {
  max-width: 510px;
  margin-bottom: 1.5rem;
  color: var(--ink-faint);
  font-size: 0.9rem;
  line-height: 1.66;
}

.article-card .text-link {
  margin-top: auto;
}

.resource-more {
  display: flex;
  justify-content: flex-end;
  margin-top: 1.5rem;
}

.resource-note {
  display: grid;
  grid-template-columns: 180px minmax(0, 1fr);
  gap: clamp(2rem, 7vw, 7rem);
  align-items: center;
}

.resource-note__mark {
  width: 150px;
  height: 150px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.7rem;
  border: 1px solid #cfe3d1;
  border-radius: 50%;
  color: var(--green-deep);
  background: var(--green-pale);
}

.resource-note__mark span {
  font-size: 0.69rem;
  font-weight: 850;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.resource-note > div:last-child > p:not(.eyebrow) {
  max-width: 720px;
  color: var(--ink-faint);
  line-height: 1.75;
}

.inline-action-links,
.legal-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1.5rem;
  margin-top: 1.3rem;
}

.article-index__intro {
  display: grid;
  grid-template-columns: minmax(0, 0.75fr) minmax(320px, 0.55fr);
  column-gap: clamp(2rem, 8vw, 8rem);
  align-items: end;
  margin-bottom: 3rem;
}

.article-index__intro .eyebrow {
  grid-column: 1 / -1;
}

.article-index__intro > p:last-child {
  margin: 0 0 0.4rem;
  color: var(--ink-faint);
  line-height: 1.7;
}

.article-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 0.38fr);
  gap: clamp(3rem, 9vw, 9rem);
  align-items: start;
}

.article-main {
  max-width: 760px;
}

.article-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  padding-bottom: 1.2rem;
  border-bottom: 1px solid var(--line-strong);
  color: var(--green-deep);
  font-size: 0.7rem;
  font-weight: 850;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.article-section {
  padding-top: 2.7rem;
}

.article-section h2 {
  margin-bottom: 1rem;
  font-size: clamp(1.9rem, 3vw, 2.7rem);
}

.article-section p {
  color: #545f5a;
  line-height: 1.82;
}

.article-section ul,
.legal-document ul {
  display: grid;
  gap: 0.75rem;
  padding: 0;
  list-style: none;
}

.article-section li {
  display: grid;
  grid-template-columns: 22px 1fr;
  gap: 0.7rem;
  color: #4f5a55;
  line-height: 1.65;
}

.article-section li svg {
  color: var(--green-deep);
  margin-top: 0.25rem;
}

.article-sources {
  margin-top: 3rem;
  padding: 1.5rem;
  border-left: 3px solid var(--green-deep);
  background: var(--green-pale);
}

.article-sources > p:not(.eyebrow) {
  color: #59645e;
  font-size: 0.88rem;
}

.article-sources a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.75rem 0;
  border-top: 1px solid #cfe1d0;
  color: var(--violet-deep);
  font-size: 0.84rem;
  font-weight: 750;
}

.article-aside {
  position: sticky;
  top: 105px;
}

.article-aside > div {
  padding: 1.55rem;
  border: 1px solid var(--line-strong);
  border-top: 3px solid var(--green-deep);
  background: #fff;
}

.article-aside h2 {
  margin-bottom: 0.85rem;
  font-size: 2rem;
}

.article-aside > div > p:not(.eyebrow) {
  color: var(--ink-faint);
  font-size: 0.87rem;
  line-height: 1.65;
}

.article-aside .button {
  width: 100%;
  margin-top: 0.7rem;
}

.article-aside__phone {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  margin-top: 1rem;
  color: var(--violet-deep);
  font-size: 0.86rem;
  font-weight: 750;
}

.article-faq,
.related-pages {
  display: grid;
  grid-template-columns: minmax(0, 0.62fr) minmax(420px, 1fr);
  gap: clamp(2.5rem, 8vw, 8rem);
  align-items: start;
}

.related-pages > div:last-child {
  border-top: 1px solid var(--line-strong);
}

.related-pages a {
  min-height: 62px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  border-bottom: 1px solid var(--line-strong);
  color: var(--ink);
  font-size: 0.9rem;
  font-weight: 720;
}

.faq-page-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.6fr) minmax(480px, 1fr);
  gap: clamp(3rem, 9vw, 9rem);
  align-items: start;
}

.faq-page-intro {
  position: sticky;
  top: 105px;
}

.faq-page-intro > p:not(.eyebrow) {
  color: var(--ink-faint);
  line-height: 1.75;
}

.faq-list {
  border-top: 1px solid var(--line-strong);
}

.faq-item {
  border-bottom: 1px solid var(--line-strong);
}

.faq-question {
  min-height: 78px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  color: var(--ink);
  font-family: var(--serif);
  font-size: clamp(1.15rem, 2vw, 1.42rem);
  line-height: 1.25;
  list-style: none;
  cursor: pointer;
}

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

.faq-question svg {
  flex: 0 0 auto;
  color: var(--violet);
  transition: transform 160ms ease;
}

.faq-item[open] .faq-question svg {
  transform: rotate(180deg);
}

.faq-answer {
  padding: 0 3rem 1.5rem 0;
}

.faq-answer p {
  margin: 0;
  color: #59635f;
  line-height: 1.75;
}

.faq-links-panel {
  display: grid;
  grid-template-columns: minmax(0, 0.68fr) minmax(440px, 1fr);
  gap: clamp(2.5rem, 8vw, 8rem);
  align-items: start;
}

.faq-link-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1px;
  border: 1px solid var(--line);
  background: var(--line);
}

.faq-link-grid a {
  min-height: 112px;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.2rem;
  background: #fff;
  font-weight: 720;
}

.coverage-pathway-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  border: 1px solid var(--line);
  background: var(--line);
}

.coverage-pathway-grid article {
  min-height: 280px;
  padding: 1.45rem;
  background: #fff;
}

.coverage-pathway-grid article > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 3rem;
  color: var(--green-deep);
}

.coverage-pathway-grid article > div span {
  font-size: 0.7rem;
  font-weight: 850;
  letter-spacing: 0.1em;
}

.coverage-pathway-grid h3 {
  margin-bottom: 0.65rem;
  font-family: var(--serif);
  font-size: 1.45rem;
  font-weight: 400;
  letter-spacing: -0.04em;
}

.coverage-pathway-grid p {
  margin: 0;
  color: var(--ink-faint);
  font-size: 0.86rem;
  line-height: 1.66;
}

.insurance-plans .insurance-logo-card {
  box-shadow: none;
}

.coverage-disclaimer {
  display: grid;
  grid-template-columns: 30px 1fr;
  gap: 0.9rem;
  margin-top: 2.2rem;
  padding: 1.25rem 1.35rem;
  border-left: 3px solid var(--green-deep);
  background: #fff;
}

.coverage-disclaimer svg {
  color: var(--green-deep);
  margin-top: 0.15rem;
}

.coverage-disclaimer p {
  margin: 0;
  color: #59635f;
  font-size: 0.88rem;
  line-height: 1.7;
}

.coverage-steps__grid {
  display: grid;
  grid-template-columns: minmax(0, 0.72fr) minmax(440px, 1fr);
  gap: clamp(3rem, 9vw, 9rem);
}

.coverage-steps__grid > div > p:not(.eyebrow) {
  color: var(--ink-faint);
  line-height: 1.75;
}

.coverage-steps ol {
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--line-strong);
  list-style: none;
}

.coverage-steps li {
  display: grid;
  grid-template-columns: 50px 1fr;
  gap: 1rem;
  padding: 1.05rem 0;
  border-bottom: 1px solid var(--line-strong);
}

.coverage-steps li span {
  color: var(--green-deep);
  font-size: 0.7rem;
  font-weight: 850;
  letter-spacing: 0.09em;
}

.coverage-steps li p {
  margin: 0;
  color: var(--ink-soft);
  font-weight: 650;
}

.coverage-official > .shell,
.referral-services > .shell {
  display: grid;
  grid-template-columns: minmax(0, 0.72fr) minmax(440px, 1fr);
  gap: clamp(3rem, 9vw, 9rem);
}

.coverage-official h2,
.referral-services h2 {
  color: #fff;
}

.coverage-official > .shell > div:last-child,
.referral-services > .shell > div:last-child {
  border-top: 1px solid rgba(255, 255, 255, 0.24);
}

.coverage-official a,
.referral-services a {
  min-height: 60px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.24);
  color: #fff;
  font-size: 0.88rem;
  font-weight: 700;
}

.referral-overview__grid,
.referral-channels__grid {
  display: grid;
  grid-template-columns: minmax(0, 0.78fr) minmax(410px, 0.9fr);
  gap: clamp(3rem, 9vw, 9rem);
  align-items: start;
}

.referral-overview__grid > div > p:not(.eyebrow),
.referral-channels__grid > div > p:not(.eyebrow) {
  color: var(--ink-faint);
  line-height: 1.76;
}

.referral-overview ul {
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--line-strong);
  list-style: none;
}

.referral-overview li {
  min-height: 63px;
  display: grid;
  grid-template-columns: 48px 1fr;
  align-items: center;
  border-bottom: 1px solid var(--line-strong);
  color: var(--ink);
  font-weight: 680;
}

.referral-overview li span {
  color: var(--green-deep);
  font-size: 0.7rem;
  font-weight: 850;
  letter-spacing: 0.1em;
}

.referral-step-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 1px;
  border: 1px solid var(--line);
  background: var(--line);
}

.referral-step-grid article {
  min-height: 250px;
  display: flex;
  flex-direction: column;
  padding: 1.25rem;
  background: #fff;
}

.referral-step-grid article > svg {
  color: var(--violet);
  margin-bottom: auto;
}

.referral-step-grid article > span {
  margin: 2.1rem 0 0.75rem;
  color: var(--green-deep);
  font-size: 0.68rem;
  font-weight: 850;
  letter-spacing: 0.1em;
}

.referral-step-grid h3 {
  margin-bottom: 0.45rem;
  font-size: 0.94rem;
}

.referral-step-grid p {
  margin: 0;
  color: var(--ink-faint);
  font-size: 0.8rem;
  line-height: 1.55;
}

.referral-contact-card {
  padding: clamp(1.5rem, 3vw, 2.1rem);
  border: 1px solid var(--line-strong);
  border-top: 4px solid var(--green-deep);
  background: #fff;
}

.referral-contact-card p,
.referral-contact-card a:not(.button),
.referral-contact-card span {
  display: block;
}

.referral-contact-card p {
  margin-bottom: 0.35rem;
  color: var(--green-deep);
  font-size: 0.7rem;
  font-weight: 850;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.referral-contact-card > a:not(.button) {
  margin-bottom: 0.5rem;
  color: var(--ink);
  font-family: var(--serif);
  font-size: 2.2rem;
  letter-spacing: -0.04em;
}

.referral-contact-card > span {
  color: var(--ink-faint);
  font-size: 0.87rem;
}

.referral-contact-card .button {
  margin-top: 1.5rem;
}

.policy-card-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  border: 1px solid var(--line);
  background: var(--line);
}

.policy-card {
  min-height: 310px;
  display: flex;
  flex-direction: column;
  padding: 1.45rem;
  background: #fff;
}

.policy-card:hover {
  background: #fafbf8;
}

.policy-card > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 2.35rem;
  color: var(--green-deep);
}

.policy-card > div span,
.policy-card > p {
  color: var(--green-deep);
  font-size: 0.68rem;
  font-weight: 850;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.policy-card > p {
  margin-bottom: 0.6rem;
}

.policy-card h3 {
  margin-bottom: 0.65rem;
  font-family: var(--serif);
  font-size: 1.55rem;
  font-weight: 400;
  letter-spacing: -0.04em;
}

.policy-card small {
  color: var(--ink-faint);
  font-size: 0.83rem;
  line-height: 1.6;
}

.policy-card > strong {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-top: auto;
  padding-top: 1.4rem;
  color: var(--violet-deep);
  font-size: 0.8rem;
}

.policy-help > .shell {
  display: grid;
  grid-template-columns: 0.8fr 1fr;
  gap: clamp(2.5rem, 8vw, 8rem);
  align-items: end;
}

.policy-help > .shell > p {
  margin: 0 0 0.45rem;
  color: var(--ink-faint);
  line-height: 1.75;
}

.legal-section {
  background: #fff;
}

.legal-layout {
  display: grid;
  grid-template-columns: minmax(245px, 0.34fr) minmax(0, 1fr);
  gap: clamp(3rem, 9vw, 9rem);
  align-items: start;
}

.legal-aside {
  position: sticky;
  top: 105px;
  padding-top: 0.25rem;
}

.legal-aside h2 {
  font-size: clamp(1.8rem, 2.8vw, 2.55rem);
}

.legal-meta {
  margin: 1.4rem 0 0;
  border-top: 1px solid var(--line-strong);
}

.legal-meta > div {
  display: grid;
  gap: 0.2rem;
  padding: 0.9rem 0;
  border-bottom: 1px solid var(--line-strong);
}

.legal-meta dt {
  color: #747d78;
  font-size: 0.66rem;
  font-weight: 850;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.legal-meta dd {
  margin: 0;
  color: var(--ink);
  font-size: 0.86rem;
  font-weight: 680;
  line-height: 1.55;
}

.legal-nav {
  margin-top: 1.5rem;
  border-top: 1px solid var(--line-strong);
}

.legal-nav a {
  min-height: 50px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  border-bottom: 1px solid var(--line-strong);
  color: var(--violet-deep);
  font-size: 0.8rem;
  font-weight: 720;
}

.legal-document {
  max-width: 780px;
}

.legal-document > *:first-child {
  margin-top: 0;
}

.legal-document h2 {
  margin: 2.65rem 0 0.8rem;
  font-size: clamp(1.7rem, 2.8vw, 2.35rem);
}

.legal-document p,
.legal-document li {
  color: #525d58;
  line-height: 1.82;
}

.legal-document a:not(.button) {
  color: var(--violet-deep);
  font-weight: 720;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.legal-document ul {
  gap: 0.5rem;
}

.legal-document li {
  position: relative;
  padding-left: 1.35rem;
}

.legal-document li::before {
  position: absolute;
  top: 0.72rem;
  left: 0;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--green-deep);
  content: "";
}

.legal-lead {
  margin-bottom: 2.4rem;
  padding-bottom: 1.7rem;
  border-bottom: 1px solid var(--line-strong);
  color: var(--ink) !important;
  font-family: var(--serif);
  font-size: clamp(1.35rem, 2.2vw, 1.72rem);
  line-height: 1.48 !important;
}

.legal-callout {
  margin: 1.5rem 0 2.2rem;
  padding: 1.2rem 1.3rem;
  border-left: 3px solid var(--green-deep);
  background: var(--green-pale);
}

.legal-callout strong {
  display: block;
  margin-bottom: 0.35rem;
  color: var(--green-deep);
  font-size: 0.8rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.legal-callout p {
  margin: 0;
  color: #4e5d52;
  font-size: 0.9rem;
  line-height: 1.7;
}

/* Expanded footer directory. */
.footer-main {
  grid-template-columns: minmax(255px, 0.72fr) minmax(0, 1.7fr);
  gap: clamp(3rem, 8vw, 8rem);
  padding-block: 4.5rem 3.5rem;
}

.footer-request {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin-top: 1.2rem;
  color: #fff;
  font-size: 0.82rem;
  font-weight: 750;
}

.footer-directories {
  display: grid;
  grid-template-columns: 0.75fr 1fr 1.12fr;
  gap: clamp(1.6rem, 4vw, 4rem);
}

.footer-directories > div {
  display: grid;
  align-content: start;
  gap: 0.52rem;
}

.footer-directories a {
  color: #d0cde3;
  font-size: 0.82rem;
}

.footer-directories a:hover,
.footer-request:hover {
  color: #fff;
}

.footer-contact-band {
  border-top: 1px solid rgba(255, 255, 255, 0.14);
  border-bottom: 1px solid rgba(255, 255, 255, 0.14);
  background: rgba(255, 255, 255, 0.045);
}

.footer-contact {
  display: grid;
  grid-template-columns: 1.1fr 1fr 0.95fr 1.25fr;
  gap: 1.5rem;
  align-items: center;
  padding-block: 1.4rem;
}

.footer-contact > div,
.footer-contact > a {
  display: grid;
  grid-template-columns: 24px 1fr;
  align-items: start;
  gap: 0.55rem;
  color: #d0cde3;
  font-size: 0.77rem;
}

.footer-contact > div svg,
.footer-contact > a svg {
  color: #c8c4ff;
  margin-top: 0.15rem;
}

.footer-contact span,
.footer-contact strong {
  display: block;
}

.footer-contact strong {
  margin-bottom: 0.15rem;
  color: #fff;
  font-size: 0.67rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.footer-note {
  max-width: none;
  margin: 0 !important;
  color: #aaa6c7 !important;
  font-size: 0.72rem !important;
  line-height: 1.55;
}

@media (max-width: 1170px) {
  .footer-main {
    grid-template-columns: minmax(235px, 0.58fr) minmax(0, 1.42fr);
    gap: 3rem;
  }

  .footer-directories {
    gap: 1.5rem;
  }

  .footer-contact {
    grid-template-columns: repeat(3, 1fr);
  }

  .footer-contact .footer-note {
    grid-column: 1 / -1;
  }

  .referral-step-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (max-width: 930px) {
  .mobile-menu {
    max-height: calc(100vh - 76px);
    overflow-y: auto;
  }

  .area-layout,
  .area-questions,
  .article-index__intro,
  .article-layout,
  .article-faq,
  .related-pages,
  .faq-page-grid,
  .faq-links-panel,
  .coverage-steps__grid,
  .coverage-official > .shell,
  .referral-services > .shell,
  .referral-overview__grid,
  .referral-channels__grid,
  .policy-help > .shell,
  .legal-layout {
    grid-template-columns: 1fr;
  }

  .area-copy-panel {
    max-width: 680px;
  }

  .resource-card-grid,
  .coverage-pathway-grid,
  .policy-card-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .article-index__intro .eyebrow {
    grid-column: auto;
  }

  .article-aside,
  .faq-page-intro,
  .legal-aside {
    position: static;
  }

  .article-aside > div {
    max-width: 520px;
  }

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

  .footer-main {
    grid-template-columns: 1fr;
  }

  .footer-brand > p {
    max-width: 470px;
  }

  .footer-contact {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 620px) {
  .area-map-panel,
  .area-map-panel .service-area-map,
  .area-map-panel .service-area-map__canvas {
    min-height: 385px;
  }

  .area-next,
  .resource-note {
    grid-template-columns: 1fr;
  }

  .area-next {
    align-items: start;
  }

  .resource-card-grid,
  .article-card-grid,
  .faq-link-grid,
  .coverage-pathway-grid,
  .referral-step-grid,
  .policy-card-grid {
    grid-template-columns: 1fr;
  }

  .resource-card,
  .article-card,
  .coverage-pathway-grid article,
  .policy-card {
    min-height: 260px;
  }

  .resource-note__mark {
    width: 115px;
    height: 115px;
  }

  .faq-question {
    min-height: 70px;
    font-size: 1.12rem;
  }

  .faq-answer {
    padding-right: 0;
  }

  .coverage-disclaimer {
    grid-template-columns: 1fr;
  }

  .referral-contact-card > a:not(.button) {
    font-size: 1.7rem;
  }

  .footer-directories {
    grid-template-columns: 1fr 1fr;
  }

  .footer-directories > div:last-child {
    grid-column: 1 / -1;
  }

  .footer-contact {
    grid-template-columns: 1fr;
  }

  .footer-bottom {
    align-items: flex-start;
    flex-direction: column;
  }

  .footer-bottom > div {
    flex-wrap: wrap;
  }
}

/* Mobile homepage hero: a deliberate stacked composition, not a compressed desktop canvas. */
@media (max-width: 720px) {
  .hero-shell {
    height: auto;
    min-height: 0;
    overflow: visible;
    background: var(--paper);
  }

  .hero-frame {
    height: auto;
    min-height: 0;
    display: grid;
    grid-template-areas:
      "header"
      "intro"
      "photo"
      "details"
      "highlights";
    grid-template-columns: minmax(0, 1fr);
    padding: 0;
    overflow: hidden;
    background: var(--paper);
  }

  .hero-header {
    grid-area: header;
    position: relative;
    top: auto;
    right: auto;
    left: auto;
    width: 100%;
    height: auto;
    min-height: 82px;
    gap: 0.65rem;
    padding: max(13px, env(safe-area-inset-top)) 20px 12px;
    border-bottom: 1px solid rgba(16, 25, 54, 0.08);
    background: rgba(255, 254, 254, 0.98);
    box-shadow: none;
  }

  .hero-brand {
    width: 172px;
    height: 58px;
    flex: 0 1 172px;
  }

  .hero-header-actions {
    flex: 0 0 auto;
    margin-left: auto;
  }

  .hero-header-start {
    width: 112px;
    min-width: 112px;
    height: 44px;
    min-height: 44px;
    gap: 0.35rem;
    padding: 0 0.7rem;
    border-radius: 4px;
    font-size: 0.74rem;
    font-weight: 750;
  }

  .hero-header-start svg {
    width: 16px;
    height: 16px;
    margin-left: 0.05rem;
    padding-left: 0.45rem;
  }

  .hero-copy {
    display: contents;
  }

  .hero-intro {
    grid-area: intro;
    position: relative;
    z-index: 2;
    padding: 1.65rem 22px 1.85rem;
    background: var(--paper);
  }

  .hero-location {
    max-width: 100%;
    gap: 0.55rem;
    padding: 0.52rem 0.7rem;
    border-color: #cfd3dc;
    border-radius: 6px;
    background: #fff;
    font-size: 0.78rem;
    line-height: 1.2;
    white-space: nowrap;
  }

  .hero-location svg {
    width: 17px;
    height: 17px;
  }

  .hero-location__desktop {
    display: none;
  }

  .hero-location__mobile {
    display: inline;
  }

  .hero-copy h1 {
    max-width: 540px;
    margin: 1.25rem 0 0;
    font-size: clamp(2.25rem, 10.3vw, 2.72rem);
    letter-spacing: -0.052em;
    line-height: 1.06;
  }

  .hero-photo {
    grid-area: photo;
    position: relative;
    inset: auto;
    width: 100%;
    height: clamp(270px, 76vw, 330px);
    min-height: 270px;
    z-index: 0;
  }

  .hero-photo img {
    object-position: 57% center;
  }

  .hero-photo::before {
    inset: 0;
    width: 100%;
    height: 100%;
    background:
      linear-gradient(to bottom, var(--paper) 0%, rgba(255, 254, 254, 0.32) 9%, rgba(255, 254, 254, 0) 24%, rgba(255, 254, 254, 0) 77%, rgba(255, 254, 254, 0.42) 92%, var(--paper) 100%),
      linear-gradient(to right, rgba(255, 254, 254, 0.42) 0%, rgba(255, 254, 254, 0) 17%, rgba(255, 254, 254, 0) 86%, rgba(255, 254, 254, 0.36) 100%);
  }

  .hero-photo::after,
  .hero-photo-seam {
    display: none;
  }

  .hero-details {
    grid-area: details;
    position: relative;
    z-index: 2;
    padding: 1.35rem 22px 1.8rem;
    background: var(--paper);
  }

  .hero-details > p {
    max-width: 560px;
    margin: 0 0 1.25rem;
    color: #38415f;
    font-size: 0.95rem;
    line-height: 1.65;
  }

  .hero-actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.65rem;
  }

  .hero-button,
  .hero-button--primary,
  .hero-button--outline {
    width: 100%;
    min-width: 0;
    min-height: 52px;
    justify-content: space-between;
    padding: 0 1rem;
    border-radius: 4px;
    font-size: 0.87rem;
  }

  .hero-highlights {
    grid-area: highlights;
    position: relative;
    right: auto;
    bottom: auto;
    left: auto;
    z-index: 2;
    width: 100%;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px;
    margin: 0;
    padding: 1px 0;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    background: var(--line);
  }

  .hero-highlight {
    min-height: 92px;
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr);
    align-items: center;
    justify-content: stretch;
    gap: 0.7rem;
    padding: 0.85rem 1rem;
    color: var(--ink);
    background: #fff;
    text-align: left;
  }

  .hero-highlight:not(:last-child)::after {
    display: none;
  }

  .hero-highlight__icon {
    width: 44px;
    height: 44px;
  }

  .hero-highlight__icon svg {
    width: 23px;
    height: 23px;
  }

  .hero-highlight__label {
    font-size: 0.8rem;
    font-weight: 700;
    line-height: 1.25;
  }
}

@media (max-width: 370px) {
  .hero-header {
    padding-right: 16px;
    padding-left: 16px;
  }

  .hero-brand {
    width: 152px;
    flex-basis: 152px;
  }

  .hero-header-start {
    width: 104px;
    min-width: 104px;
    padding-inline: 0.55rem;
    font-size: 0.69rem;
  }

  .hero-intro,
  .hero-details {
    padding-right: 18px;
    padding-left: 18px;
  }

  .hero-copy h1 {
    font-size: 2.18rem;
  }

  .hero-highlight {
    grid-template-columns: 40px minmax(0, 1fr);
    gap: 0.55rem;
    padding-inline: 0.75rem;
  }

  .hero-highlight__icon {
    width: 40px;
    height: 40px;
  }

  .hero-highlight__label {
    font-size: 0.74rem;
  }
}

/* ---------------------------------------------------------------
   A&A motion system: cinematic where it matters, quiet everywhere else.
   --------------------------------------------------------------- */

.hero-title-line {
  display: block;
  /* Keep serif descenders inside the reveal clip instead of trimming letters
     such as g, p, and y on compact screens. */
  padding-bottom: 0.13em;
  margin-bottom: -0.13em;
}

body.motion-enhanced .motion-reveal {
  opacity: 0;
  filter: blur(5px);
  transform: translate3d(0, 28px, 0);
  transition:
    opacity 720ms cubic-bezier(0.22, 1, 0.36, 1),
    filter 760ms cubic-bezier(0.22, 1, 0.36, 1),
    transform 860ms cubic-bezier(0.22, 1, 0.36, 1);
  transition-delay: var(--motion-delay, 0ms);
  will-change: opacity, filter, transform;
}

body.motion-enhanced .motion-reveal[data-motion="left"] {
  transform: translate3d(-30px, 0, 0);
}

body.motion-enhanced .motion-reveal[data-motion="scale"] {
  filter: blur(3px);
  transform: scale(0.975) translate3d(0, 14px, 0);
}

body.motion-enhanced .motion-reveal[data-motion="media"] {
  clip-path: inset(0 10% 0 0);
  filter: none;
  transform: scale(0.985);
  transition:
    opacity 760ms cubic-bezier(0.22, 1, 0.36, 1),
    clip-path 1050ms cubic-bezier(0.22, 1, 0.36, 1),
    transform 1050ms cubic-bezier(0.22, 1, 0.36, 1);
}

body.motion-enhanced .motion-reveal.is-visible {
  opacity: 1;
  clip-path: inset(0);
  filter: blur(0);
  transform: none;
}

/* Homepage opening sequence */
body.motion-enhanced .hero-header,
body.motion-enhanced .site-header {
  opacity: 0;
  transform: translate3d(0, -18px, 0);
  transition: opacity 620ms ease, transform 780ms cubic-bezier(0.22, 1, 0.36, 1);
}

body.motion-enhanced.motion-loaded .hero-header,
body.motion-enhanced.motion-loaded .site-header {
  opacity: 1;
  transform: none;
}

body.motion-enhanced .hero-photo {
  clip-path: inset(0 0 0 18%);
  opacity: 0.72;
  transition:
    clip-path 1250ms 90ms cubic-bezier(0.22, 1, 0.36, 1),
    opacity 900ms 90ms ease;
}

body.motion-enhanced.motion-loaded .hero-photo {
  clip-path: inset(0);
  opacity: 1;
}

body.motion-enhanced .hero-photo-seam {
  opacity: 0;
  transform: translate3d(-18px, 0, 0);
  transition: opacity 800ms 520ms ease, transform 950ms 520ms cubic-bezier(0.22, 1, 0.36, 1);
}

body.motion-enhanced.motion-loaded .hero-photo-seam {
  opacity: 1;
  transform: none;
}

body.motion-enhanced .hero-location,
body.motion-enhanced .hero-title-line,
body.motion-enhanced .hero-details > p,
body.motion-enhanced .hero-actions,
body.motion-enhanced .hero-highlight {
  opacity: 0;
  transform: translate3d(0, 24px, 0);
  transition: opacity 650ms ease, transform 850ms cubic-bezier(0.22, 1, 0.36, 1);
}

body.motion-enhanced .hero-title-line {
  clip-path: inset(0 0 100% 0);
  transform: translate3d(0, 0.48em, 0);
  transition:
    opacity 620ms ease,
    clip-path 900ms cubic-bezier(0.22, 1, 0.36, 1),
    transform 900ms cubic-bezier(0.22, 1, 0.36, 1);
}

body.motion-enhanced.motion-loaded .hero-location,
body.motion-enhanced.motion-loaded .hero-title-line,
body.motion-enhanced.motion-loaded .hero-details > p,
body.motion-enhanced.motion-loaded .hero-actions,
body.motion-enhanced.motion-loaded .hero-highlight {
  opacity: 1;
  clip-path: inset(0);
  transform: none;
}

body.motion-enhanced.motion-loaded .hero-location { transition-delay: 170ms; }
body.motion-enhanced.motion-loaded .hero-title-line:nth-child(1) { transition-delay: 260ms; }
body.motion-enhanced.motion-loaded .hero-title-line:nth-child(2) { transition-delay: 350ms; }
body.motion-enhanced.motion-loaded .hero-title-line:nth-child(3) { transition-delay: 440ms; }
body.motion-enhanced.motion-loaded .hero-details > p { transition-delay: 540ms; }
body.motion-enhanced.motion-loaded .hero-actions { transition-delay: 630ms; }
body.motion-enhanced.motion-loaded .hero-highlight:nth-child(1) { transition-delay: 690ms; }
body.motion-enhanced.motion-loaded .hero-highlight:nth-child(2) { transition-delay: 750ms; }
body.motion-enhanced.motion-loaded .hero-highlight:nth-child(3) { transition-delay: 810ms; }
body.motion-enhanced.motion-loaded .hero-highlight:nth-child(4) { transition-delay: 870ms; }

@media (min-width: 931px) {
  body.motion-enhanced .hero-photo img {
    height: calc(100% + 96px);
    transform: translate3d(0, calc(-48px + var(--motion-hero-y, 0px)), 0) scale(1.015);
    will-change: transform;
  }

  body.motion-enhanced .page-hero__media img {
    height: calc(100% + 48px);
    transform: translate3d(0, calc(-24px + var(--motion-page-y, 0px)), 0) scale(1.01);
    will-change: transform;
  }
}

/* Responsive surfaces and micro-interactions */
.home-service-card,
.service-card,
.highlight-card,
.resource-card,
.article-card,
.policy-card,
.value-grid article,
.support-grid article,
.role-grid article {
  position: relative;
  overflow: hidden;
}

.home-service-card {
  transition: background-color 220ms ease, box-shadow 360ms ease, transform 440ms cubic-bezier(0.22, 1, 0.36, 1);
}

.service-card,
.highlight-card,
.resource-card,
.article-card,
.policy-card {
  transition: background-color 220ms ease, border-color 220ms ease, box-shadow 360ms ease, transform 440ms cubic-bezier(0.22, 1, 0.36, 1);
}

.home-service-card:hover,
.home-service-card:focus-visible,
.service-card:hover,
.service-card:focus-visible,
.highlight-card:hover,
.resource-card:hover,
.article-card:hover,
.policy-card:hover {
  z-index: 2;
  box-shadow: 0 18px 42px rgba(25, 31, 68, 0.1);
  transform: translateY(-4px);
}

.home-service-card::before,
.service-card::before,
.highlight-card::before,
.resource-card::before,
.article-card::before,
.policy-card::before {
  position: absolute;
  inset: 0;
  z-index: 0;
  background: linear-gradient(115deg, transparent 24%, rgba(78, 76, 163, 0.055) 48%, transparent 72%);
  content: "";
  pointer-events: none;
  transform: translateX(-120%);
  transition: transform 720ms cubic-bezier(0.22, 1, 0.36, 1);
}

.home-service-card:hover::before,
.home-service-card:focus-visible::before,
.service-card:hover::before,
.service-card:focus-visible::before,
.highlight-card:hover::before,
.resource-card:hover::before,
.article-card:hover::before,
.policy-card:hover::before {
  transform: translateX(120%);
}

.home-service-card > *,
.service-card > *,
.highlight-card > *,
.resource-card > *,
.article-card > *,
.policy-card > * {
  position: relative;
  z-index: 1;
}

.home-reason-list > div,
.home-steps li,
.contact-method {
  transition: transform 280ms cubic-bezier(0.22, 1, 0.36, 1);
}

.home-reason-list > div:hover,
.home-steps li:hover,
.contact-method:hover {
  transform: translateX(5px);
}

.home-steps li > span,
.highlight-card > span,
.service-card__icon {
  transition: color 260ms ease, background-color 260ms ease, transform 430ms cubic-bezier(0.22, 1, 0.36, 1);
}

.home-steps li:hover > span,
.highlight-card:hover > span,
.service-card:hover .service-card__icon {
  transform: translateY(-3px) rotate(-4deg);
}

.button,
.hero-button,
.hero-header-start,
.insurance-carousel-button {
  position: relative;
  overflow: hidden;
}

.hero-highlight__icon {
  transition: box-shadow 360ms ease, transform 440ms cubic-bezier(0.22, 1, 0.36, 1);
}

.hero-highlight:hover .hero-highlight__icon,
.hero-highlight:focus-visible .hero-highlight__icon {
  box-shadow: 0 12px 28px rgba(78, 76, 163, 0.18);
  transform: translateY(-5px) scale(1.04);
}

.button::after,
.hero-button::after,
.hero-header-start::after {
  position: absolute;
  top: -40%;
  bottom: -40%;
  left: -70%;
  width: 42%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.26), transparent);
  content: "";
  pointer-events: none;
  transform: skewX(-18deg);
  transition: left 620ms cubic-bezier(0.22, 1, 0.36, 1);
}

.button:hover::after,
.button:focus-visible::after,
.hero-button:hover::after,
.hero-button:focus-visible::after,
.hero-header-start:hover::after,
.hero-header-start:focus-visible::after {
  left: 128%;
}

.text-link {
  position: relative;
}

.text-link::after {
  position: absolute;
  right: 0;
  bottom: -5px;
  left: 0;
  height: 1px;
  background: currentColor;
  content: "";
  opacity: 0.45;
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 360ms cubic-bezier(0.22, 1, 0.36, 1);
}

.text-link:hover::after,
.text-link:focus-visible::after {
  transform: scaleX(1);
  transform-origin: left;
}

.service-menu {
  transform-origin: top center;
  animation: aa-menu-in 230ms cubic-bezier(0.22, 1, 0.36, 1) both;
}

.mobile-menu {
  transform-origin: top center;
  animation: aa-menu-in 300ms cubic-bezier(0.22, 1, 0.36, 1) both;
}

@keyframes aa-menu-in {
  from {
    opacity: 0;
    transform: translateY(-8px) scaleY(0.96);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

@media (max-width: 930px) {
  body.motion-enhanced .hero-photo {
    clip-path: inset(0 0 12% 0);
  }

  body.motion-enhanced.motion-loaded .hero-photo {
    clip-path: inset(0);
  }

  body.motion-enhanced .hero-highlight {
    transform: translate3d(0, 14px, 0);
  }

  body.motion-enhanced .motion-reveal {
    filter: blur(3px);
    transform: translate3d(0, 20px, 0);
  }

  body.motion-enhanced .motion-reveal[data-motion="left"] {
    transform: translate3d(-18px, 0, 0);
  }

  body.motion-enhanced .motion-reveal.is-visible {
    filter: none;
    transform: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    transition-delay: 0ms !important;
  }

  .motion-reveal,
  .hero-header,
  .site-header,
  .hero-photo,
  .hero-photo-seam,
  .hero-location,
  .hero-title-line,
  .hero-details > p,
  .hero-actions,
  .hero-highlight {
    opacity: 1 !important;
    clip-path: none !important;
    filter: none !important;
    transform: none !important;
  }
}

/* Balanced homepage additions: an editorial care journey and compact FAQs. */
.home-care-start {
  padding: clamp(78px, 8vw, 118px) 0;
  border-bottom: 1px solid var(--line);
  background:
    linear-gradient(118deg, rgba(231, 246, 232, 0.78), rgba(255, 254, 254, 0) 47%),
    var(--paper);
}

.home-care-start__grid {
  display: grid;
  grid-template-columns: minmax(0, 0.92fr) minmax(440px, 1.08fr);
  align-items: center;
  gap: clamp(54px, 7vw, 104px);
}

.home-care-start__media {
  position: relative;
  min-height: 610px;
  margin: 0;
  overflow: hidden;
  border: 1px solid rgba(20, 54, 32, 0.1);
  border-radius: 3px;
  background: #e8ece6;
  box-shadow: 0 28px 70px rgba(21, 32, 49, 0.12);
}

.home-care-start__media::after {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, transparent 55%, rgba(12, 22, 38, 0.62) 100%),
    linear-gradient(90deg, rgba(255, 255, 255, 0.08), transparent 30%);
  content: "";
  pointer-events: none;
}

.home-care-start__media img {
  width: 100%;
  height: 100%;
  position: absolute;
  inset: 0;
  display: block;
  object-fit: cover;
  object-position: center;
}

.home-care-start__media figcaption {
  position: absolute;
  z-index: 1;
  right: 28px;
  bottom: 26px;
  left: 28px;
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.45;
}

.home-care-start__media figcaption svg {
  flex: 0 0 auto;
  color: #d8f0da;
}

.home-care-start__copy {
  max-width: 610px;
}

.home-care-start h2 {
  margin: 0;
  color: var(--ink);
  font-family: var(--serif);
  font-weight: 400;
  letter-spacing: -0.04em;
}

.home-care-start h2 {
  max-width: 610px;
  font-size: clamp(42px, 4.5vw, 60px);
  line-height: 1.01;
}

.home-care-start__lede {
  max-width: 570px;
  margin: 22px 0 30px;
  color: var(--ink-faint);
  font-size: 15px;
  line-height: 1.75;
}

.home-care-steps {
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--line-strong);
  list-style: none;
}

.home-care-steps li {
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr);
  gap: 19px;
  padding: 24px 0;
  border-bottom: 1px solid var(--line-strong);
}

.home-care-steps li > span {
  padding-top: 3px;
  color: var(--violet);
  font-family: var(--serif);
  font-size: 22px;
  line-height: 1;
}

.home-care-steps h3 {
  margin: 0;
  color: var(--ink);
  font-size: 15px;
  font-weight: 800;
  line-height: 1.35;
}

.home-care-steps p {
  max-width: 470px;
  margin: 7px 0 0;
  color: var(--ink-faint);
  font-size: 13px;
  line-height: 1.65;
}

.home-care-start__actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 22px;
  margin-top: 30px;
}

.home-care-start__actions .button {
  min-height: 54px;
  padding-inline: 1.35rem;
}

@media (max-width: 930px) {
  .home-care-start__grid {
    grid-template-columns: 1fr;
  }

  .home-care-start__grid {
    gap: 48px;
  }

  .home-care-start__media {
    min-height: min(68vw, 620px);
  }

  .home-care-start__copy {
    max-width: 680px;
  }
}

@media (max-width: 720px) {
  .home-care-start {
    padding: 64px 0 70px;
  }

  .home-care-start__grid {
    gap: 38px;
  }

  .home-care-start__media {
    min-height: 108vw;
    max-height: 570px;
  }

  .home-care-start__media figcaption {
    right: 20px;
    bottom: 20px;
    left: 20px;
  }

  .home-care-start h2 {
    font-size: clamp(2.65rem, 11vw, 3.45rem);
  }

  .home-care-start__lede {
    margin-top: 18px;
  }

  .home-care-steps li {
    grid-template-columns: 46px minmax(0, 1fr);
    gap: 14px;
    padding: 21px 0;
  }

  .home-care-start__actions {
    align-items: stretch;
    flex-direction: column;
    gap: 18px;
  }

  .home-care-start__actions .button {
    width: 100%;
    justify-content: space-between;
  }

}
