@import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800&display=swap");

:root {
  --bg: #fbfcff;
  --logo-primary: #294f80;
  --logo-secondary: #7ea7db;
  --logo-primary-light: #dbe6f4;
  --logo-primary-medium: #a8c1e3;
  --logo-secondary-light: #edf4fd;
  --logo-secondary-medium: #d6e4f6;
  --section-beige: #f7faff;
  --section-sage: #dce8f8;
  --section-peach: #eef4fc;
  --section-beige-strong: rgba(247, 250, 255, 0.97);
  --section-sage-strong: rgba(220, 232, 248, 0.97);
  --section-peach-strong: rgba(238, 244, 252, 0.96);
  --surface: rgba(251, 252, 255, 0.96);
  --surface-strong: rgba(246, 249, 255, 0.99);
  --surface-soft: #edf3fb;
  --surface-sage: #dce8f8;
  --text: #223b5d;
  --muted: #667c96;
  --line: rgba(57, 66, 78, 0.12);
  --primary: #294f80;
  --primary-dark: #18385d;
  --accent: #7ea7db;
  --accent-deep: #5f86b8;
  --accent-soft: #e5eefb;
  --peach: #cadcf3;
  --peach-strong: #aec7e8;
  --gold-soft: #edf4fd;
  --shape-sand: rgba(126, 167, 219, 0.16);
  --shape-sage: rgba(41, 79, 128, 0.08);
  --shape-rust: rgba(126, 167, 219, 0.12);
  --shape-coral-light: rgba(126, 167, 219, 0.18);
  --shape-coral-soft: rgba(214, 228, 246, 0.22);
  --shape-peach-light: rgba(237, 244, 253, 0.24);
  --shape-peach-medium: rgba(168, 193, 227, 0.16);
  --shape-teal-light: rgba(41, 79, 128, 0.12);
  --shape-teal-soft: rgba(168, 193, 227, 0.3);
  --shadow: 0 28px 68px rgba(41, 79, 128, 0.12);
  --shadow-soft: 0 18px 42px rgba(41, 79, 128, 0.08);
  --shadow-card: 0 24px 52px rgba(41, 79, 128, 0.11);
  --radius: 22px;
  --radius-sm: 16px;
  --page-gutter: clamp(14px, 2vw, 40px);
  --container: clamp(1280px, 88vw, 1760px);
  --font-heading: "Montserrat", sans-serif;
  --font-body: "Montserrat", sans-serif;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  font-family: var(--font-body);
  font-size: 1.04rem;
  color: var(--text);
  background: var(--bg);
  line-height: 1.76;
  overflow-x: hidden;
  position: relative;
}

body::before,
body::after {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: -1;
}

body::before {
  background: url("texas-pattern-bg.png") center top / 1800px auto repeat;
  opacity: 0.07;
}

body::after {
  content: none;
}

img {
  display: block;
  width: 100%;
  height: auto;
}

.hero-media img,
.page-hero-grid img,
.portrait-card img,
.service-card img,
.service-feature-card img,
.service-detail-sidebar img,
.service-detail-card .detail-image img,
.story-image img,
.feature-visual img,
.mission-card img,
.program-card img,
.family-photo-wrap img,
.infant-photo-wrap img,
.about-story-photo img,
.about-portrait-card img {
  object-fit: cover;
  object-position: center;
  border-radius: 24px;
  box-shadow:
    0 26px 58px rgba(48, 61, 83, 0.12),
    0 0 0 1px rgba(255, 252, 249, 0.58);
  filter: brightness(1.018) saturate(0.92) contrast(1.02);
}

.story-image,
.feature-visual,
.detail-image,
.hero-media,
.page-hero-grid,
.portrait-card,
.service-detail-sidebar,
.hero-card,
.mission-card,
.program-card,
.service-feature-card,
.family-photo-wrap,
.infant-photo-wrap,
.about-story-photo,
.about-portrait-card,
.review-card,
.service-card,
.service-detail-card {
  overflow: hidden;
  position: relative;
  isolation: isolate;
}

.story-image::before,
.feature-visual::before,
.detail-image::before,
.hero-media::before,
.page-hero-grid::before,
.portrait-card::before,
.service-detail-sidebar::before,
.hero-card::before,
.mission-card::before,
.program-card::before,
.service-feature-card::before,
.family-photo-wrap::before,
.infant-photo-wrap::before,
.about-story-photo::before,
.about-portrait-card::before,
.service-card::before,
.service-detail-card::before {
  content: "";
  position: absolute;
  inset: auto;
  pointer-events: none;
  z-index: 0;
}

.story-image > *,
.feature-visual > *,
.detail-image > *,
.hero-media > *,
.page-hero-grid > *,
.portrait-card > *,
.service-detail-sidebar > *,
.hero-card > *,
.mission-card > *,
.program-card > *,
.service-feature-card > *,
.family-photo-wrap > *,
.infant-photo-wrap > *,
.about-story-photo > *,
.about-portrait-card > *,
.service-card > *,
.service-detail-card > *,
.review-card > * {
  position: relative;
  z-index: 1;
}

p,
li {
  color: var(--muted);
  font-size: 1.02rem;
  line-height: 1.8;
}

p {
  margin-bottom: 0;
}

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

a:focus-visible,
button:focus-visible {
  outline: 2px solid rgba(50, 72, 92, 0.45);
  outline-offset: 3px;
}

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

.container {
  width: min(calc(100% - (var(--page-gutter) * 2)), var(--container));
  margin: 0 auto;
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: var(--bg);
  border-bottom: 1px solid color-mix(in srgb, var(--logo-secondary) 18%, transparent);
  backdrop-filter: none;
}

.nav-wrap {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 1.5rem;
  min-height: 96px;
}

.brand {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  flex: 0 0 auto;
  height: 100%;
}

h1,
h2,
h3 {
  font-family: var(--font-heading);
  letter-spacing: -0.035em;
  line-height: 1.08;
  text-wrap: balance;
  color: var(--text);
}

h1 {
  font-weight: 700;
}

h2 {
  font-weight: 700;
}

h3 {
  font-weight: 600;
}

.brand-full-logo {
  width: 270px;
  max-width: 100%;
  height: auto;
}

.site-nav {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 1.5rem;
  flex: 0 1 auto;
  grid-column: 1;
  justify-self: start;
  align-self: center;
  height: 100%;
}

.site-nav a {
  color: var(--text);
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  line-height: 1;
}

.site-nav a.active,
.site-nav a:hover {
  color: var(--primary);
}

.nav-item {
  position: relative;
  font-size: 0.88rem;
  white-space: nowrap;
}

.nav-dropdown {
  position: relative;
  display: inline-flex;
  align-items: center;
  padding-bottom: 0;
  margin-bottom: 0;
  align-self: center;
}

.nav-dropdown::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  height: 0.5rem;
}

.dropdown-menu {
  position: absolute;
  top: 100%;
  left: 0;
  display: none;
  min-width: 220px;
  margin-top: 0;
  padding: 1rem 0.8rem 0.8rem;
  background: rgba(251, 252, 255, 0.97);
  border: 1px solid color-mix(in srgb, var(--logo-primary) 10%, transparent);
  border-radius: var(--radius-sm);
  box-shadow: var(--shadow);
  z-index: 60;
}

.dropdown-menu a {
  display: block;
  padding: 0.65rem 0.75rem;
  border-radius: 12px;
  font-weight: 700;
  color: var(--text);
}

.dropdown-menu a:hover {
  background: color-mix(in srgb, var(--logo-primary) 8%, transparent);
  color: var(--primary);
}

.nav-dropdown:hover .dropdown-menu,
.nav-dropdown:focus-within .dropdown-menu {
  display: block;
}

.has-caret::after {
  content: "";
  display: inline-block;
  width: 0.5rem;
  height: 0.5rem;
  margin-left: 0.55rem;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg) translateY(-2px);
}

.nav-profile {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--logo-primary) 8%, transparent);
  border: 1px solid color-mix(in srgb, var(--logo-primary) 16%, transparent);
}

.profile-icon {
  position: relative;
  width: 18px;
  height: 18px;
}

.profile-icon::before,
.profile-icon::after {
  content: "";
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  background: var(--accent);
}

.profile-icon::before {
  top: 0;
  width: 14px;
  height: 14px;
  border-radius: 999px;
}

.profile-icon::after {
  bottom: -8px;
  width: 24px;
  height: 14px;
  border-radius: 14px 14px 10px 10px;
}

.nav-cta {
  min-height: 54px;
  padding-inline: 1.4rem;
}

.nav-toggle {
  display: none;
  width: 48px;
  height: 48px;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: rgba(249, 251, 255, 0.96);
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 5px;
  cursor: pointer;
  grid-column: 3;
  justify-self: end;
  box-shadow: 0 10px 22px rgba(48, 61, 83, 0.08);
  transition: background-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
}

.nav-toggle span {
  width: 18px;
  height: 2px;
  border-radius: 99px;
  background: var(--text);
}

.nav-toggle:hover {
  background: rgba(242, 238, 233, 0.98);
  border-color: color-mix(in srgb, var(--logo-primary) 18%, transparent);
  box-shadow: 0 14px 28px rgba(48, 61, 83, 0.1);
  transform: translateY(-1px);
}

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  padding: 0.92rem 1.5rem;
  border-radius: 12px;
  border: 1px solid transparent;
  font-family: var(--font-body);
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  white-space: nowrap;
  box-shadow: 0 12px 24px rgba(50, 72, 92, 0.08);
  transition: transform 0.2s ease, background-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease, filter 0.2s ease;
}

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

.button-primary {
  background: var(--primary);
  color: #fff;
  border-color: color-mix(in srgb, var(--logo-primary) 18%, transparent);
  box-shadow: 0 14px 28px rgba(36, 52, 71, 0.16);
}

.button-primary:hover {
  background: var(--primary-dark);
  border-color: color-mix(in srgb, var(--logo-primary) 18%, transparent);
  box-shadow: 0 18px 34px rgba(36, 52, 71, 0.18);
  filter: none;
}

.button-secondary {
  background: var(--primary);
  color: #fff;
  border: 1px solid color-mix(in srgb, var(--logo-primary) 18%, transparent);
  box-shadow: 0 12px 24px rgba(36, 52, 71, 0.14);
}

.button-secondary:hover {
  background: var(--primary-dark);
  border-color: color-mix(in srgb, var(--logo-primary) 18%, transparent);
  box-shadow: 0 14px 28px rgba(36, 52, 71, 0.16);
}

.eyebrow,
.service-kicker {
  margin-bottom: 0.75rem;
  color: var(--primary);
  font-family: var(--font-body);
  font-weight: 700;
  text-transform: uppercase;
  font-size: 0.76rem;
  letter-spacing: 0.22em;
}

.lead {
  font-family: var(--font-body);
  font-size: 1.15rem;
  color: var(--muted);
  max-width: 58ch;
  line-height: 1.82;
}

.hero,
.page-hero {
  padding: 4.5rem 0 3.75rem;
}

.page-hero {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  border-radius: 28px;
}

.hero {
  position: relative;
}

.hero-home {
  overflow: hidden;
}

.hero-grid,
.page-hero-grid,
.split-grid,
.contact-grid,
.intake-grid,
.team-box {
  display: grid;
  gap: 2rem;
  align-items: center;
}

.hero-grid,
.page-hero-grid {
  grid-template-columns: 1.15fr 1fr;
}

.hero-copy h1,
.page-hero h1 {
  font-size: clamp(2.9rem, 4.7vw, 5.15rem);
  line-height: 1;
  max-width: 20ch;
  margin-bottom: 1.15rem;
}

.about-hero {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.about-hero h1,
.about-hero .lead {
  margin-inline: auto;
}

.about-hero .eyebrow,
.service-detail-hero .eyebrow {
  color: var(--primary);
}

.about-tagline {
  margin-bottom: 1rem;
  color: var(--accent-deep);
  font-family: var(--font-heading);
  font-size: 1.18rem;
  font-weight: 700;
  line-height: 1.6;
}

.about-hero .lead {
  font-size: 1.16rem;
  max-width: 56rem;
}

.hero-media img,
.page-hero-grid img,
.portrait-card img,
.service-card img {
  border-radius: var(--radius);
  object-fit: cover;
  box-shadow: var(--shadow);
}

.hero-media img,
.page-hero-grid img {
  min-height: 420px;
}

.logo-showcase {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 420px;
  padding: 2rem;
  border-radius: var(--radius);
  background: linear-gradient(180deg, rgba(251, 252, 255, 0.985), rgba(239, 245, 253, 0.94));
  border: 1px solid rgba(228, 214, 203, 0.9);
  box-shadow: var(--shadow);
}

.logo-showcase img {
  width: 100%;
  max-width: 620px;
  box-shadow: none;
  border-radius: 0;
}

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.9rem;
  margin: 1.5rem 0;
}

.hero-home-grid {
  grid-template-columns: 1fr;
  align-items: center;
  justify-items: center;
  text-align: center;
  min-height: 420px;
  position: relative;
  z-index: 1;
}

.hero-home .lead,
.family-section p,
.programs-section .lead,
.section-heading {
  margin-inline: auto;
}

.hero-points {
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem 1.5rem;
  padding: 0;
  margin: 1.4rem 0 0;
  list-style: none;
  color: var(--muted);
  font-weight: 700;
}

.hero-points li::before {
  content: "";
  display: inline-block;
  width: 10px;
  height: 10px;
  margin-right: 0.5rem;
  border-radius: 999px;
  background: var(--primary);
}

.section {
  padding: 4.9rem 0;
}

.soft-band {
  background: linear-gradient(180deg, rgba(242, 248, 255, 0.97), rgba(228, 238, 250, 0.92));
}

.section-heading-centered {
  text-align: center;
  margin-inline: auto;
}

.section-heading {
  max-width: 54rem;
  margin-bottom: 2.75rem;
}

.section-heading h2,
.split-section h2,
.team-copy h2,
.cta-box h2,
.service-card h2,
.contact-panel h2,
.steps-panel h2,
.contact-form h2 {
  font-size: clamp(2.1rem, 2.8vw, 3.25rem);
  line-height: 1.1;
  margin-bottom: 0.95rem;
}

.card-grid {
  display: grid;
  gap: 1.25rem;
}

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

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

.info-card,
.quote-card,
.feature-item,
.contact-panel,
.contact-form,
.steps-panel,
.portrait-card,
.service-detail-panel,
.resource-card,
.program-card,
.service-feature-card,
.service-card,
.cta-box {
  background:
    linear-gradient(180deg, rgba(251, 252, 255, 0.99), rgba(240, 246, 253, 0.95)),
    linear-gradient(145deg, rgba(41, 79, 128, 0.04), rgba(126, 167, 219, 0.05));
  border: 1px solid rgba(50, 72, 92, 0.1);
  border-radius: var(--radius);
  box-shadow: var(--shadow-soft);
}

.feature-item:nth-child(3n + 2),
.resource-card:nth-child(3n + 2),
.program-card:nth-child(3n + 2),
.service-card:nth-child(3n + 2),
.service-feature-card:nth-child(3n + 2) {
  background:
    linear-gradient(180deg, rgba(244, 248, 255, 0.98), rgba(232, 240, 250, 0.95)),
    linear-gradient(145deg, rgba(126, 167, 219, 0.08), rgba(41, 79, 128, 0.04));
}

.feature-item:nth-child(3n),
.resource-card:nth-child(3n),
.program-card:nth-child(3n),
.service-card:nth-child(3n),
.service-feature-card:nth-child(3n) {
  background:
    linear-gradient(180deg, rgba(247, 250, 255, 0.98), rgba(236, 243, 252, 0.95)),
    linear-gradient(145deg, rgba(168, 193, 227, 0.08), rgba(41, 79, 128, 0.04));
}

.info-card,
.quote-card,
.feature-item,
.contact-panel,
.contact-form,
.steps-panel,
.portrait-card,
.service-detail-panel,
.resource-card,
.program-card {
  padding: 1.5rem;
}

.service-detail-card,
.service-detail-panel,
.resource-card,
.cta-box,
.service-detail-sidebar img {
  overflow: hidden;
}

.service-detail-card h3,
.service-detail-panel h2,
.resource-card h2,
.cta-box h2 {
  max-width: 18ch;
}

.service-detail-card h3 {
  font-size: clamp(1.8rem, 2.25vw, 2.45rem);
  line-height: 1.14;
}

.service-detail-copy p,
.service-detail-panel p,
.resource-card p,
.page-panel p,
.contact-info-card p,
.secure-card p {
  max-width: 68ch;
}

.family-section,
.programs-section,
.reviews-section {
  background: transparent;
}

.family-grid,
.infant-grid {
  grid-template-columns: 1fr;
  justify-items: center;
}

.about-story-grid,
.about-team-box {
  grid-template-columns: 1fr 1fr;
}

.family-photo-wrap img,
.infant-photo-wrap img,
.about-story-photo img,
.about-portrait-card img {
  min-height: 420px;
  border-radius: var(--radius);
  object-fit: cover;
  box-shadow: var(--shadow);
}

.family-photo-wrap img {
  object-fit: cover;
  padding: 0;
  background: transparent;
  border: 0;
}

.about-story-copy h2,
.about-team-copy h2 {
  max-width: none;
}

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

.service-feature-card,
.program-card {
  overflow: hidden;
}

.service-feature-card img {
  height: 260px;
  aspect-ratio: 4 / 3;
}

.service-feature-copy {
  padding: 1.3rem 1.25rem 1.5rem;
}

.service-feature-copy h3,
.program-card h3,
.info-card h3,
.feature-item h3 {
  font-size: clamp(1.34rem, 1.6vw, 1.6rem);
  line-height: 1.28;
  margin-bottom: 0.72rem;
}

.about-value-card h3,
.pricing-card h3,
.program-card h3 {
  color: var(--accent);
}

.secure-intake-card {
  align-content: start;
}

.secure-link-box {
  padding: 1rem 1.1rem;
  border: 1px dashed color-mix(in srgb, var(--logo-primary) 32%, transparent);
  border-radius: var(--radius-sm);
  background: rgba(250, 252, 255, 0.9);
}

.program-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.2rem;
}

.program-card {
  min-height: 210px;
}

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

.cta-actions {
  display: flex;
  gap: 0.85rem;
  flex-wrap: wrap;
}

.about-credentials {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 1rem;
}

.about-credentials span {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding: 0.55rem 0.9rem;
  border-radius: 999px;
  background: color-mix(in srgb, var(--logo-secondary) 10%, transparent);
  border: 1px solid color-mix(in srgb, var(--logo-secondary) 18%, transparent);
  color: var(--accent-deep);
  font-weight: 700;
}

.footer-grid-home {
  align-items: start;
}

.footer-logo {
  width: 250px;
  max-width: 100%;
  margin-bottom: 1rem;
}

.service-detail-hero {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.service-detail-hero h1,
.service-detail-hero .lead {
  margin-inline: auto;
}

.service-detail-hero h1 {
  max-width: 20ch;
  text-align: center;
}

.service-detail-grid,
.resource-grid {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 2.25rem;
  align-items: center;
}

.service-detail-sidebar img {
  min-height: 390px;
  aspect-ratio: 4 / 4.5;
}

.resource-list {
  margin: 0;
  padding-left: 1.15rem;
  color: var(--muted);
}

.resource-list li + li {
  margin-top: 0.8rem;
}

.resource-list a,
.text-link {
  color: var(--primary);
  font-weight: 800;
}

.split-grid {
  grid-template-columns: 0.95fr 1.05fr;
}

.feature-stack,
.copy-stack {
  display: grid;
  gap: 1rem;
}

.text-link {
  display: inline-block;
  margin-top: 1rem;
}

.light-link {
  color: #fff;
}

.quote-card footer {
  margin-top: 1rem;
  color: var(--accent);
  font-weight: 800;
}

.faq-list {
  display: grid;
  gap: 1rem;
}

.faq-list details {
  background: rgba(249, 251, 255, 0.92);
  border: 1px solid rgba(228, 214, 203, 0.9);
  border-radius: var(--radius);
  padding: 1.15rem 1.25rem;
}

.faq-list summary {
  cursor: pointer;
  font-family: var(--font-body);
  font-size: 1.14rem;
  font-weight: 700;
  line-height: 1.45;
}

.faq-list details p {
  margin: 0.85rem 0 0;
  color: var(--muted);
}

.cta-band {
  padding-top: 0;
}

.cta-box {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  padding: 2.4rem;
}

.narrow-hero {
  max-width: 52rem;
}

.narrow-hero h1 {
  max-width: 20ch;
}

.service-list {
  display: grid;
  gap: 2rem;
}

.service-list.service-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.6rem;
}

.service-card {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.9rem;
  align-content: start;
  min-height: 100%;
  padding: 2rem 1.85rem;
  background:
    linear-gradient(180deg, rgba(250, 252, 255, 0.985), rgba(239, 245, 253, 0.95)),
    linear-gradient(145deg, rgba(199, 184, 163, 0.08), rgba(50, 72, 92, 0.05));
  border: 1px solid color-mix(in srgb, var(--logo-primary) 12%, transparent);
  border-radius: 26px;
  box-shadow: 0 18px 42px rgba(48, 61, 83, 0.08);
  transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease;
}

.service-list.service-grid .service-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 24px 50px rgba(48, 61, 83, 0.11);
  border-color: color-mix(in srgb, var(--logo-primary) 18%, transparent);
}

.service-list .service-card h3 {
  font-size: clamp(1.45rem, 1.7vw, 1.75rem);
  line-height: 1.18;
  margin-bottom: 0;
  max-width: 16ch;
}

.service-list .service-card p:not(.service-kicker) {
  max-width: 28ch;
  margin-bottom: 0;
}

.service-list .service-card .text-link {
  margin-top: 0.35rem;
  color: var(--primary-dark);
  font-weight: 700;
}

.service-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 54px;
  height: 54px;
  margin-bottom: 0.25rem;
  border-radius: 18px;
  background: color-mix(in srgb, var(--logo-primary-light) 80%, transparent);
  border: 1px solid color-mix(in srgb, var(--logo-primary) 12%, transparent);
  color: var(--primary);
  box-shadow: 0 10px 22px rgba(48, 61, 83, 0.07);
}

.service-icon svg {
  width: 24px;
  height: 24px;
}

.contact-grid,
.intake-grid,
.team-box {
  grid-template-columns: 0.9fr 1.1fr;
}

.intake-grid {
  align-items: start;
}

.contact-list,
.steps-list {
  padding-left: 1.1rem;
  color: var(--muted);
}

.steps-list li + li {
  margin-top: 1rem;
}

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

.form-row,
.full-width {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

.full-width {
  grid-column: 1 / -1;
}

label {
  font-weight: 700;
}

input,
textarea,
select {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 0.85rem 0.95rem;
  font: inherit;
  color: var(--text);
  background: rgba(251, 252, 255, 0.98);
}

textarea {
  resize: vertical;
}

.site-footer {
  padding: 3.4rem 0 4.6rem;
  padding-inline: var(--page-gutter);
  background: rgba(243, 248, 255, 0.94);
  border-top: 1px solid color-mix(in srgb, var(--logo-primary) 10%, transparent);
  width: calc(100% + (var(--page-gutter) * 2));
  margin-left: calc(var(--page-gutter) * -1);
  margin-right: calc(var(--page-gutter) * -1);
}

.footer-grid {
  display: grid;
  width: min(100%, var(--container));
  margin: 0 auto;
  grid-template-columns: minmax(0, 1.25fr) minmax(180px, 0.78fr) minmax(180px, 0.78fr);
  column-gap: clamp(2.5rem, 5vw, 5rem);
  row-gap: 2rem;
  align-items: start;
}

.footer-grid > div {
  min-width: 0;
}

.footer-grid > div:nth-child(2),
.footer-grid > div:nth-child(3) {
  justify-self: center;
}

.site-footer p,
.site-footer a {
  color: var(--muted);
}

.site-footer strong,
.site-footer h3 {
  display: block;
  font-family: var(--font-heading);
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.02em;
  color: var(--text);
  margin-bottom: 0.85rem;
}

.home-page {
  position: relative;
}

.tt-hero {
  padding-top: 3.5rem;
}

.tt-hero-layout {
  display: grid;
  grid-template-columns: 1.02fr 0.98fr;
  gap: 2rem;
  align-items: stretch;
}

.tt-hero-art,
.tt-hero-copy,
.tt-editorial-copy,
.tt-service-card,
.tt-review-heading,
.tt-cta-box {
  border-radius: 30px;
}

.tt-hero-art {
  position: relative;
  min-height: 560px;
  padding: 1.25rem;
  background:
    linear-gradient(145deg, rgba(249, 251, 255, 0.9), rgba(229, 239, 251, 0.93)),
    repeating-linear-gradient(-45deg, rgba(122, 138, 122, 0.05) 0 2px, transparent 2px 14px);
  box-shadow: var(--shadow);
}

.tt-logo-card {
  display: grid;
  place-items: center;
  height: 100%;
  border-radius: 24px;
  background: rgba(255, 252, 249, 0.88);
  border: 1px solid rgba(228, 214, 203, 0.8);
  padding: 2rem;
}

.tt-logo-card img {
  max-width: 100%;
  width: min(100%, 520px);
}

.tt-hero-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(1.4rem, 3vw, 3rem);
  background: linear-gradient(180deg, rgba(250, 252, 255, 0.92), rgba(228, 238, 250, 0.52));
}

.tt-hero-copy h1 {
  max-width: 11ch;
}

.tt-points {
  gap: 0.8rem 1.1rem;
}

.tt-story-section {
  padding-top: 1rem;
}

.tt-editorial-grid {
  display: grid;
  grid-template-columns: 0.92fr 1.08fr;
  gap: 0;
  align-items: stretch;
  border-radius: 30px;
  overflow: hidden;
  box-shadow: var(--shadow);
}

.tt-editorial-media img {
  min-height: 100%;
  height: 100%;
  object-fit: cover;
}

.tt-editorial-copy {
  padding: clamp(1.75rem, 3vw, 3.25rem);
}

.blush-panel {
  background: linear-gradient(180deg, var(--section-peach) 0%, var(--section-sage) 100%);
}

.tt-services-section {
  position: relative;
}

.tt-mosaic {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  grid-template-rows: auto auto;
  gap: 1.2rem;
}

.tt-service-card {
  overflow: hidden;
  min-height: 260px;
}

.tt-service-card:first-child {
  grid-row: span 2;
}

.tt-service-image img {
  height: 100%;
  min-height: 260px;
  object-fit: cover;
}

.tt-service-copy {
  padding: 1.6rem;
}

.navy-card {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  background: linear-gradient(160deg, var(--primary) 0%, var(--primary-dark) 100%);
  color: #fff;
}

.cream-card {
  background: linear-gradient(180deg, rgba(251, 252, 255, 0.99) 0%, rgba(236, 244, 253, 0.98) 100%);
}

.coral-card {
  background: linear-gradient(160deg, var(--accent) 0%, var(--accent-deep) 100%);
  color: #fff;
}

.tt-programs-section {
  background: linear-gradient(180deg, rgba(250, 252, 255, 0.34), rgba(228, 238, 250, 0.3));
}

.tt-programs-layout {
  display: grid;
  gap: 2rem;
}

.tt-programs-intro {
  max-width: 48rem;
}

.tt-program-grid .program-card {
  background: rgba(249, 251, 255, 0.92);
}

.tt-review-band {
  padding-top: 2rem;
}

.tt-review-layout {
  display: grid;
  grid-template-columns: 0.85fr 1.15fr;
  gap: 1.2rem;
  align-items: start;
}

.tt-review-heading {
  padding: 2rem;
  background: linear-gradient(180deg, var(--primary) 0%, color-mix(in srgb, var(--logo-primary) 82%, white) 100%);
  color: #fff;
  box-shadow: var(--shadow);
}

.tt-review-heading .eyebrow,
.tt-review-heading h2 {
  color: #fff;
}

.tt-reviews-grid .quote-card {
  background: rgba(249, 251, 255, 0.96);
}

.tt-cta-box {
  background: linear-gradient(160deg, rgba(250, 252, 255, 0.97), rgba(228, 238, 250, 0.68));
}

@media (max-width: 980px) {
  .four-up,
  .three-up,
  .about-story-grid,
  .about-team-box,
  .service-detail-grid,
  .resource-grid,
  .hero-grid,
  .page-hero-grid,
  .split-grid,
  .service-feature-grid,
  .program-grid,
  .reviews-grid,
  .service-card,
  .service-card.reverse,
  .contact-grid,
  .intake-grid,
  .team-box,
  .footer-grid,
  .tt-hero-layout,
  .tt-review-layout,
  .tt-editorial-grid {
    grid-template-columns: 1fr 1fr;
  }

  .tt-mosaic,
  .navy-card {
    grid-template-columns: 1fr;
  }

  .tt-service-card:first-child {
    grid-row: auto;
  }

  .hero-copy h1,
  .page-hero h1,
  .tt-hero-copy h1 {
    max-width: 18ch;
  }

  .service-card.reverse > :first-child {
    order: 0;
  }

  .site-nav {
    position: absolute;
    top: calc(100% + 0.75rem);
    right: 1rem;
    left: 1rem;
    display: none;
    flex-direction: column;
    align-items: flex-start;
    padding: 1rem;
    background: rgba(251, 252, 255, 0.98);
    border: 1px solid color-mix(in srgb, var(--logo-primary) 12%, transparent);
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    gap: 1rem;
    grid-column: auto;
    justify-self: stretch;
  }

  .site-nav.open {
    display: flex;
  }

  .nav-dropdown {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding-bottom: 0;
    margin-bottom: 0;
  }

  .dropdown-menu {
    position: static;
    display: none;
    width: 100%;
    min-width: 0;
    margin-top: 0.45rem;
    padding: 0.55rem;
    background: rgba(251, 252, 255, 0.98);
  }

  .nav-dropdown:hover .dropdown-menu,
  .nav-dropdown:focus-within .dropdown-menu {
    display: block;
  }

  .nav-toggle {
    display: inline-flex;
  }
}

@media (max-width: 760px) {
  .hero,
  .page-hero,
  .section {
    padding: 3rem 0;
  }

  .hero-grid,
  .page-hero-grid,
  .split-grid,
  .four-up,
  .three-up,
  .about-story-grid,
  .about-team-box,
  .service-feature-grid,
  .program-grid,
  .reviews-grid,
  .service-card,
  .service-card.reverse,
  .contact-grid,
  .intake-grid,
  .team-box,
  .footer-grid,
  .contact-form,
  .tt-hero-layout,
  .tt-review-layout,
  .tt-editorial-grid {
    grid-template-columns: 1fr;
  }

  .tt-hero-art {
    min-height: 360px;
  }

  .hero-media img,
  .page-hero-grid img,
  .family-photo-wrap img,
  .infant-photo-wrap img {
    min-height: 300px;
  }

  .logo-showcase {
    min-height: 300px;
  }

  .cta-box {
    flex-direction: column;
    align-items: flex-start;
  }

  .nav-wrap {
    min-height: 82px;
  }

  .brand-full-logo {
    width: 188px;
  }
}

.editorial-home {
  background: var(--bg);
}

.editorial-header {
  position: static;
  background: transparent;
  border-bottom: 0;
  backdrop-filter: none;
}

.editorial-nav-wrap {
  min-height: auto;
  padding: 1.25rem 0 1rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
}

.editorial-wordmark {
  display: inline-flex;
  align-items: center;
}

.editorial-wordmark .brand-full-logo {
  width: 220px;
}

.editorial-nav {
  gap: 1rem;
  font-size: 0.77rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.editorial-nav .nav-item,
.editorial-nav .button {
  font-size: 0.73rem;
}

.editorial-nav-cta {
  min-height: 42px;
  padding: 0.7rem 1rem;
}

.editorial-main {
  width: min(100%, 920px);
  margin: 0 auto;
  padding: 0 1rem 4rem;
}

.editorial-panel {
  margin-bottom: 0;
}

.editorial-hero-panel {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  align-items: start;
  background: var(--bg);
}

.editorial-hero-media {
  position: relative;
  padding: 1.25rem 0 0 0;
}

.editorial-hero-media img {
  width: 100%;
  aspect-ratio: 0.98;
  object-fit: cover;
  border-radius: 0;
  box-shadow: none;
}

.editorial-stamp {
  position: absolute;
  left: -1.1rem;
  bottom: 1.1rem;
  width: 74px;
  height: 74px;
  border-radius: 999px;
  background: rgba(249, 251, 255, 0.96);
  border: 6px solid rgba(255,255,255,0.92);
  box-shadow: 0 12px 26px rgba(73, 68, 60, 0.14);
  display: grid;
  place-items: center;
}

.editorial-stamp span {
  width: 28px;
  height: 28px;
  border-radius: 999px;
  background: linear-gradient(180deg, var(--logo-secondary), var(--accent-deep));
}

.editorial-hero-copy {
  padding: 3.2rem 1.25rem 0 2.25rem;
}

.editorial-hero-copy .eyebrow,
.editorial-story-copy .eyebrow,
.editorial-services-intro .eyebrow,
.editorial-programs-copy .eyebrow,
.editorial-cta-panel .eyebrow {
  color: var(--accent);
  font-size: 0.62rem;
  letter-spacing: 0.28em;
  margin-bottom: 0.65rem;
}

.editorial-hero-copy h1,
.editorial-story-copy h2,
.editorial-services-intro h2,
.editorial-programs-copy h2,
.editorial-cta-panel h2 {
  font-family: "Lora", serif;
  letter-spacing: -0.04em;
}

.editorial-hero-copy h1 {
  margin-bottom: 1rem;
  max-width: 8ch;
  font-size: clamp(2.4rem, 5vw, 4.5rem);
  line-height: 0.96;
  color: var(--primary);
}

.editorial-hero-copy .lead {
  max-width: 26ch;
  font-size: 0.98rem;
}

.editorial-button-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 1.35rem;
}

.editorial-button-row .button {
  min-height: 40px;
  padding: 0.72rem 1rem;
  border-radius: 4px;
  box-shadow: none;
  font-size: 0.74rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.editorial-story-panel {
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  align-items: stretch;
  margin-top: 2.5rem;
}

.editorial-story-media img {
  height: 100%;
  min-height: 500px;
  object-fit: cover;
  border-radius: 0;
  box-shadow: none;
}

.editorial-story-copy {
  background: linear-gradient(180deg, var(--section-peach) 0%, rgba(232, 241, 252, 0.98) 100%);
  padding: 3rem 2.4rem;
  color: var(--muted);
}

.editorial-story-copy h2 {
  max-width: 12ch;
  font-size: clamp(1.9rem, 3vw, 2.7rem);
  line-height: 1.05;
  color: var(--accent-deep);
}

.editorial-story-copy p {
  max-width: 42ch;
  font-size: 0.95rem;
}

.editorial-services-panel {
  margin-top: 0;
}

.editorial-services-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-auto-rows: 160px;
  background:
    linear-gradient(90deg, rgba(255,255,255,0.08) 0 0),
    repeating-linear-gradient(90deg, var(--logo-primary) 0 25%, color-mix(in srgb, var(--logo-primary) 82%, white) 25% 50%, var(--logo-secondary) 50% 75%, color-mix(in srgb, var(--logo-secondary) 82%, white) 75% 100%);
  background-size: 100% 100%;
  position: relative;
  overflow: hidden;
}

.editorial-services-grid::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(0deg, transparent calc(25% - 1px), rgba(255,255,255,0.18) calc(25% - 1px) 25%, transparent 25% 50%, rgba(255,255,255,0.18) 50% calc(50% + 1px), transparent calc(50% + 1px) 75%, rgba(255,255,255,0.18) 75% calc(75% + 1px), transparent calc(75% + 1px)),
    linear-gradient(90deg, transparent calc(25% - 1px), rgba(255,255,255,0.18) calc(25% - 1px) 25%, transparent 25% 50%, rgba(255,255,255,0.18) 50% calc(50% + 1px), transparent calc(50% + 1px) 75%, rgba(255,255,255,0.18) 75% calc(75% + 1px), transparent calc(75% + 1px));
  pointer-events: none;
}

.editorial-services-intro,
.editorial-service-image,
.editorial-service-copy {
  position: relative;
  z-index: 1;
}

.editorial-services-intro {
  grid-column: 1 / span 4;
  align-self: end;
  padding: 2.2rem 2rem 0;
  color: #fff2ec;
  text-align: center;
}

.editorial-services-intro .eyebrow,
.editorial-services-intro h2 {
  color: #fff2ec;
}

.editorial-services-intro h2 {
  margin: 0 auto;
  max-width: 14ch;
  font-size: clamp(1.9rem, 3vw, 2.9rem);
}

.editorial-service-image-main {
  grid-column: 2 / span 2;
  grid-row: 2 / span 2;
  padding: 0.75rem;
}

.editorial-service-image-main img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 999px;
  box-shadow: 0 20px 50px rgba(36, 52, 71, 0.18);
}

.editorial-service-copy {
  padding: 1.35rem;
  align-self: end;
  color: #fff5f0;
}

.editorial-service-copy h3 {
  margin-bottom: 0.45rem;
  font-size: 1.15rem;
}

.editorial-service-copy p {
  margin-bottom: 0;
  font-size: 0.88rem;
}

.editorial-service-copy .text-link {
  color: #fff5f0;
  margin-top: 0.8rem;
}

.editorial-service-copy-alt {
  grid-column: 1 / span 1;
  grid-row: 2 / span 2;
  align-self: center;
}

.editorial-service-copy-accent {
  grid-column: 4 / span 1;
  grid-row: 2 / span 2;
  align-self: center;
}

.editorial-programs-panel {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 2rem;
  align-items: start;
  padding: 2.8rem 0 2rem;
}

.editorial-programs-copy h2 {
  margin-bottom: 0.9rem;
  max-width: 12ch;
  font-size: clamp(1.9rem, 3vw, 2.7rem);
  color: var(--primary);
}

.editorial-program-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem;
  align-content: start;
  padding-top: 2.2rem;
}

.editorial-program-tags span {
  display: inline-flex;
  align-items: center;
  min-height: 42px;
  padding: 0.65rem 0.95rem;
  background: rgba(249, 251, 255, 0.96);
  border: 1px solid color-mix(in srgb, var(--logo-secondary) 18%, transparent);
  color: var(--primary);
  border-radius: 999px;
  font-size: 0.82rem;
  font-weight: 700;
}

.editorial-cta-panel {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 2rem;
  padding: 1.5rem 0 0;
}

.editorial-cta-panel h2 {
  max-width: 16ch;
  font-size: clamp(1.75rem, 2.7vw, 2.4rem);
  color: var(--primary);
}

.editorial-footer {
  background: linear-gradient(180deg, var(--section-peach) 0%, var(--section-beige) 100%);
}

@media (max-width: 980px) {
  .editorial-hero-panel,
  .editorial-story-panel,
  .editorial-programs-panel,
  .editorial-cta-panel {
    grid-template-columns: 1fr;
    flex-direction: column;
    align-items: flex-start;
  }

  .editorial-nav {
    font-size: 0.8rem;
    letter-spacing: 0.08em;
    text-transform: none;
  }

  .editorial-services-grid {
    grid-template-columns: 1fr 1fr;
    grid-auto-rows: auto;
  }

  .editorial-services-intro {
    grid-column: 1 / -1;
    padding-bottom: 1rem;
  }

  .editorial-service-image-main {
    grid-column: 1 / -1;
    grid-row: auto;
    min-height: 280px;
  }

  .editorial-service-copy-alt,
  .editorial-service-copy-accent,
  .editorial-service-copy {
    grid-column: auto;
    grid-row: auto;
    align-self: start;
  }
}

@media (max-width: 760px) {
  .editorial-nav-wrap {
    padding-top: 1rem;
  }

  .editorial-main {
    padding-inline: 0.85rem;
  }

  .editorial-hero-copy {
    padding: 1.5rem 0 0;
  }

  .editorial-story-copy {
    padding: 2rem 1.35rem;
  }

  .editorial-story-media img {
    min-height: 320px;
  }

  .editorial-services-grid {
    grid-template-columns: 1fr;
  }

  .editorial-services-intro,
  .editorial-service-copy,
  .editorial-service-copy-alt,
  .editorial-service-copy-accent,
  .editorial-service-image-main {
    grid-column: 1;
  }
}

.editorial-top-wrap {
  margin: 10px;
  border-radius: 0 0 28px 28px;
  overflow: hidden;
  background:
    radial-gradient(circle at left 68%, color-mix(in srgb, var(--logo-primary) 92%, white) 0 18%, transparent 18.5%),
    radial-gradient(circle at 44% 100%, color-mix(in srgb, var(--logo-secondary) 68%, white) 0 14%, transparent 14.5%),
    radial-gradient(circle at 100% 60%, color-mix(in srgb, var(--logo-primary-light) 88%, transparent) 0 24%, transparent 24.5%),
    linear-gradient(115deg, rgba(255,255,255,0.08) 35%, transparent 35.5%),
    linear-gradient(180deg, var(--logo-primary) 0%, color-mix(in srgb, var(--logo-primary) 82%, white) 100%);
}

.editorial-header {
  background: transparent;
}

.editorial-nav-wrap {
  padding-top: 1.4rem;
  padding-bottom: 0.8rem;
}

.editorial-nav-wrap .nav-toggle {
  border-color: rgba(255,255,255,0.32);
  background: rgba(255,255,255,0.08);
}

.editorial-nav-wrap .nav-toggle span {
  background: #fff;
}

.editorial-nav .nav-item,
.editorial-nav a,
.editorial-nav .nav-item.active,
.editorial-nav .nav-item:hover,
.editorial-nav .has-caret::after {
  color: rgba(255, 255, 255, 0.92);
}

.editorial-nav .dropdown-menu {
  background: color-mix(in srgb, var(--logo-primary) 92%, white);
  border-color: rgba(255,255,255,0.14);
}

.editorial-nav .dropdown-menu a {
  color: #fff;
}

.editorial-nav .dropdown-menu a:hover {
  background: rgba(255,255,255,0.08);
  color: #fff;
}

.editorial-nav-cta {
  background: transparent;
  border: 1px solid rgba(255,255,255,0.4);
  color: #fff;
}

.editorial-nav-cta:hover {
  background: rgba(255,255,255,0.08);
}

.editorial-wordmark .brand-full-logo {
  width: 230px;
  filter: brightness(1.06) contrast(1.02);
}

.editorial-main {
  width: min(100%, 920px);
  padding-bottom: 4rem;
}

.unified-hero-panel {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 520px;
  padding: 3rem 1.5rem 5.4rem;
  background: transparent;
}

.unified-hero-copy {
  text-align: center;
  color: #fff;
  max-width: 760px;
}

.unified-hero-copy .eyebrow {
  color: rgba(255,255,255,0.72);
}

.unified-hero-copy h1 {
  margin: 0 auto 1.25rem;
  max-width: 9ch;
  color: #fff;
  font-size: clamp(3rem, 7vw, 5.7rem);
  line-height: 0.95;
}

.unified-hero-copy .lead {
  margin: 0 auto;
  max-width: 38ch;
  color: rgba(255,255,255,0.8);
  font-size: 1rem;
}

.unified-hero-button {
  background: transparent;
  color: #fff;
  border: 1px solid rgba(255,255,255,0.42);
}

.unified-hero-button:hover {
  background: rgba(255,255,255,0.08);
}

.editorial-hero-panel:not(.unified-hero-panel) {
  display: none;
}

@media (max-width: 980px) {
  .editorial-top-wrap {
    margin: 8px;
  }

  .editorial-nav {
    background: color-mix(in srgb, var(--logo-primary) 90%, white);
    border-color: rgba(255,255,255,0.16);
  }

  .unified-hero-panel {
    min-height: 440px;
    padding-bottom: 4rem;
  }
}

@media (max-width: 760px) {
  .editorial-top-wrap {
    border-radius: 0 0 20px 20px;
    margin: 0;
  }

  .editorial-nav-wrap {
    padding-top: 1rem;
  }

  .editorial-wordmark .brand-full-logo {
    width: 180px;
  }

  .unified-hero-panel {
    min-height: 390px;
    padding: 2.25rem 1rem 3.5rem;
  }

.unified-hero-copy h1 {
    font-size: clamp(2.5rem, 11vw, 4rem);
  }
}

.site-shell {
  width: 100%;
  max-width: none;
  margin: 18px auto 72px;
  padding-bottom: 1px;
  padding-inline: var(--page-gutter);
}

.topbar {
  position: sticky;
  top: 6px;
  z-index: 80;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 1.8rem;
  padding: 12px 18px 10px;
  background: rgba(248, 251, 255, 0.94);
  border: 0;
  border-radius: 0;
  backdrop-filter: none;
  box-shadow: none;
  min-height: 94px;
}

.brand img {
  width: clamp(185px, 20vw, 255px);
  height: auto;
  display: block;
}

.topbar .brand,
.nav-wrap .brand {
  grid-column: 1;
  justify-self: start;
  align-self: center;
}

.nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.55rem;
  flex: 0 1 auto;
  grid-column: 2;
  justify-self: center;
  align-self: center;
  height: 100%;
}

.nav a,
.nav-dropdown-toggle {
  font-family: var(--font-body);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text);
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  line-height: 1;
}

.nav-socials {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  margin-left: 0.1rem;
}

.nav-current {
  color: var(--primary-dark);
}

.nav a:hover,
.nav-dropdown-toggle:hover {
  color: var(--primary);
}

.topbar-cta {
  grid-column: 3;
  justify-self: end;
  min-height: 54px;
  padding: 0.9rem 1.8rem;
  border-radius: 999px;
  border-color: color-mix(in srgb, var(--logo-primary) 18%, transparent);
  color: #fff;
  background: var(--primary);
  box-shadow: none;
}

.topbar-cta:hover {
  background: var(--primary-dark);
  border-color: color-mix(in srgb, var(--logo-primary) 18%, transparent);
}

.menu-toggle {
  display: none;
  min-height: 42px;
  padding: 0.7rem 0.95rem;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: rgba(249, 251, 255, 0.96);
  color: var(--text);
  font-family: var(--font-body);
  font-size: 0.92rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  cursor: pointer;
  grid-column: 3;
  justify-self: end;
  box-shadow: 0 10px 22px rgba(48, 61, 83, 0.08);
  transition: background-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
}

.menu-toggle:hover {
  background: rgba(242, 238, 233, 0.98);
  border-color: color-mix(in srgb, var(--logo-primary) 18%, transparent);
  box-shadow: 0 14px 28px rgba(48, 61, 83, 0.1);
  transform: none;
}

.page-main {
  padding-top: 18px;
  display: grid;
  gap: 4.85rem;
}

.page-hero-block {
  width: 100%;
  max-width: none;
  margin: 0 auto;
  padding: 4.25rem 0 0;
  text-align: center;
  position: relative;
  overflow: hidden;
  isolation: isolate;
  border-radius: 28px;
}

.page-hero-block h1,
.page-hero-block h2 {
  max-width: 22ch;
  font-size: clamp(3rem, 5.2vw, 5.25rem);
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 1.1rem;
}

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

.page-hero-block p {
  max-width: 72ch;
  margin-left: auto;
  margin-right: auto;
}

.page-hero-block p:last-child {
  max-width: 60ch;
  font-size: 1.16rem;
  margin-bottom: 0;
}

.page-hero-block::before,
.page-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(
      180deg,
      rgba(49, 88, 207, 0.5) 0,
      rgba(49, 88, 207, 0.5) 1px,
      transparent 1px,
      transparent 64px
    );
  background-size: 100% 64px;
  background-position: center;
  mask-image: radial-gradient(ellipse at center, transparent 0 24%, rgba(0, 0, 0, 0.18) 40%, rgba(0, 0, 0, 0.58) 58%, #000 72%);
  -webkit-mask-image: radial-gradient(ellipse at center, transparent 0 24%, rgba(0, 0, 0, 0.18) 40%, rgba(0, 0, 0, 0.58) 58%, #000 72%);
  z-index: -2;
}

.page-hero-block::after,
.page-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
      linear-gradient(90deg, rgba(251, 252, 255, 0.94) 0%, rgba(251, 252, 255, 0.34) 18%, rgba(251, 252, 255, 0.34) 82%, rgba(251, 252, 255, 0.94) 100%);
  z-index: -1;
}

.page-hero-block > *,
.page-hero > * {
  position: relative;
  z-index: 1;
}

.home-hero-block {
  max-width: 720px;
  padding-top: 3.5rem;
}

.compact-heading {
  padding-top: 0;
  padding-bottom: 1.5rem;
}

.page-split {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2.25rem;
  align-items: start;
}

.contact-layout {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 3rem;
  align-items: stretch;
}

.contact-layout .contact-info-card,
.contact-layout .secure-card {
  height: 100%;
}

.intake-layout {
  padding-top: 0;
}

.page-panel,
.contact-info-card,
.secure-card {
  padding: 2.5rem;
  background:
    linear-gradient(180deg, rgba(249, 252, 255, 0.99), rgba(235, 243, 252, 0.97)),
    linear-gradient(145deg, color-mix(in srgb, var(--primary) 4%, transparent), color-mix(in srgb, var(--logo-primary) 4%, transparent));
  border: 1px solid color-mix(in srgb, var(--logo-primary) 10%, transparent);
  border-radius: 22px;
  box-shadow:
    0 22px 48px rgba(48, 61, 83, 0.09),
    0 1px 0 rgba(255, 255, 255, 0.45) inset;
}

.page-split > :nth-child(2n) {
  background:
    linear-gradient(180deg, rgba(248, 251, 255, 0.98), rgba(235, 243, 252, 0.95)),
    linear-gradient(145deg, color-mix(in srgb, var(--accent) 4%, transparent), color-mix(in srgb, var(--primary) 2%, transparent));
}

.section-stack {
  display: grid;
  gap: 1.25rem;
}

.home-support-section {
  align-items: start;
}

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

.service-card {
  min-height: 100%;
  padding: 2rem 1.85rem;
  background:
    linear-gradient(180deg, rgba(249, 252, 255, 0.99), rgba(235, 243, 252, 0.97)),
    linear-gradient(145deg, color-mix(in srgb, var(--primary) 4%, transparent), color-mix(in srgb, var(--logo-primary) 4%, transparent));
  border: 1px solid color-mix(in srgb, var(--logo-primary) 10%, transparent);
  border-radius: 26px;
  box-shadow:
    0 22px 50px rgba(48, 61, 83, 0.09),
    0 1px 0 rgba(255, 255, 255, 0.42) inset;
}

.service-detail-card,
.pricing-card,
.steps-card {
  padding: 2.2rem;
}

.service-detail-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 0.92fr);
  gap: 2rem;
  align-items: center;
  background:
    linear-gradient(180deg, rgba(249, 252, 255, 0.99), rgba(235, 243, 252, 0.97)),
    linear-gradient(145deg, color-mix(in srgb, var(--primary) 4%, transparent), color-mix(in srgb, var(--logo-primary) 4%, transparent));
  border: 1px solid color-mix(in srgb, var(--logo-primary) 10%, transparent);
  border-radius: 22px;
  box-shadow:
    0 22px 48px rgba(48, 61, 83, 0.09),
    0 1px 0 rgba(255, 255, 255, 0.42) inset;
}

.service-detail-card::before {
  left: -8%;
  top: -12%;
  width: 36%;
  height: 52%;
  background: linear-gradient(180deg, var(--shape-rust), rgba(122, 138, 122, 0.05));
  border-radius: 999px 999px 24px 24px;
}

.service-detail-card.reverse > :first-child {
  order: 2;
}

.service-detail-card .detail-image,
.service-detail-copy {
  min-width: 0;
}

.service-detail-copy {
  display: grid;
  gap: 0.85rem;
  align-content: start;
}

.service-detail-copy p,
.service-detail-panel p,
.resource-card p,
.page-panel p,
.contact-info-card p,
.secure-card p,
.story-copy p,
.feature-copy p,
.closing-cta p,
.mission-card p,
.program-card p,
.contact-list,
.steps-list,
.resource-list {
  line-height: 1.82;
}

.service-detail-card .detail-image img {
  min-height: 300px;
  aspect-ratio: 4 / 4.2;
  object-fit: cover;
  border-radius: 16px;
}

.service-detail-card .detail-image:empty {
  display: none;
}

.service-detail-card:has(.detail-image:empty) {
  grid-template-columns: 1fr;
}

.service-card span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  margin-bottom: 1rem;
  border-radius: 999px;
  background: rgba(39, 70, 107, 0.08);
  color: var(--primary-dark);
  font-weight: 800;
}

.pill-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem;
  justify-content: center;
}

.pill-grid span {
  display: inline-flex;
  align-items: center;
  min-height: 42px;
  padding: 0.7rem 1rem;
  border-radius: 999px;
  background: linear-gradient(145deg, rgba(249, 252, 255, 0.95), rgba(50, 72, 92, 0.14));
  border: 1px solid rgba(228, 214, 203, 0.9);
  font-weight: 700;
}

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

.steps article {
  padding: 1.7rem;
  background:
    linear-gradient(180deg, rgba(255, 252, 248, 0.95), rgba(249, 241, 234, 0.92)),
    linear-gradient(145deg, rgba(168, 193, 227, 0.12), rgba(50, 72, 92, 0.08));
  border: 1px solid rgba(228, 214, 203, 0.9);
  border-radius: 20px;
}

.steps article strong {
  display: block;
  margin-bottom: 0.55rem;
  color: var(--primary-dark);
}

.cta-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.85rem;
}

.cta-band {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  padding: 2.5rem;
  background:
    linear-gradient(180deg, rgba(251, 252, 255, 0.99), rgba(240, 246, 253, 0.95)),
    linear-gradient(145deg, color-mix(in srgb, var(--logo-secondary) 5%, transparent), color-mix(in srgb, var(--logo-primary) 8%, transparent));
  border: 1px solid color-mix(in srgb, var(--logo-primary) 12%, transparent);
  border-radius: 22px;
  box-shadow: 0 18px 40px rgba(48, 61, 83, 0.08);
}

@media (max-width: 980px) {
  .page-split,
  .contact-layout,
  .service-grid,
  .steps,
  .cta-band {
    grid-template-columns: 1fr;
    flex-direction: column;
    align-items: stretch;
  }

  .nav {
    gap: 0.9rem;
  }

  .section {
    padding: 4rem 0;
  }

  .page-main,
  .home-main {
    gap: 4rem;
  }
}

@media (max-width: 760px) {
  .site-shell {
    width: min(100%, calc(100% - 18px));
    margin: 0 auto 32px;
  }

  .topbar {
    top: 0;
    grid-template-columns: auto 1fr auto;
    padding: 10px 14px;
    border-radius: 0 0 16px 16px;
  }

  .header-social {
    display: none;
  }

  .topbar-cta {
    display: none;
  }

  .menu-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }

  .nav {
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    right: 0;
    display: none;
    flex-direction: column;
    align-items: flex-start;
    padding: 1rem;
    background: rgba(248, 245, 241, 0.98);
    border: 1px solid rgba(36, 52, 71, 0.1);
    border-radius: 16px;
    box-shadow: 0 18px 40px rgba(36, 58, 87, 0.1);
    grid-column: auto;
  }

  .nav.open {
    display: flex;
    max-height: calc(100vh - 92px);
    overflow-y: auto;
  }

  .nav-dropdown {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
  }

  .nav-dropdown::after {
    content: none;
  }

  .dropdown-menu {
    position: static;
    display: block;
    width: 100%;
    min-width: 0;
    margin-top: 0.25rem;
    padding: 0.35rem 0 0.15rem 0.9rem;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
  }

  .dropdown-menu a {
    padding: 0.65rem 0.4rem;
    min-height: 40px;
    font-size: 0.76rem;
    letter-spacing: 0.06em;
  }

  .nav-dropdown,
  .nav a,
  .nav-dropdown-toggle,
  .nav-socials {
    width: 100%;
  }

  .nav-socials {
    justify-content: flex-start;
    margin-top: 0.2rem;
    margin-left: 0;
  }

  .page-hero-block {
    padding-top: 2.75rem;
  }

  .page-hero-block h1,
  .page-hero-block h2 {
    max-width: 14ch;
    font-size: clamp(2.15rem, 11vw, 3.5rem);
  }

  .section {
    padding: 3.25rem 0;
  }

  .lead {
    font-size: 1.02rem;
  }
}

.home-shell {
  width: 100%;
  max-width: none;
  margin-top: 14px;
}

@media (min-width: 1440px) {
  :root {
    --container: clamp(1360px, 90vw, 1840px);
  }
}

@media (min-width: 1920px) {
  :root {
    --container: clamp(1600px, 90vw, 2080px);
  }
}

@media (min-width: 2560px) {
  :root {
    --container: clamp(1880px, 88vw, 2400px);
  }
}

.home-main {
  display: grid;
  gap: 4.85rem;
}

.header-social {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.9rem;
  grid-column: 3;
  justify-self: end;
  align-self: center;
  height: 100%;
}

.social-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  color: var(--primary);
  opacity: 0.8;
  transition: color 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
  line-height: 1;
}

.social-link svg {
  width: 18px;
  height: 18px;
  fill: currentColor;
}

.social-link:hover {
  color: var(--peach-strong);
  opacity: 1;
  transform: translateY(-1px);
}

.service-detail-hero h1 {
  max-width: 24ch;
}

.service-detail-hero .lead {
  max-width: 58ch;
  font-size: 1.12rem;
}

.services-category .section-heading {
  max-width: 760px;
  margin-bottom: 2rem;
}

.services-category + .services-category {
  padding-top: 1rem;
}

.services-category .section-heading p:last-child {
  max-width: 62ch;
}

@media (min-width: 761px) {
  .topbar,
  .nav-wrap {
    position: relative;
    display: grid;
    min-height: 94px;
  }

  .topbar .brand,
  .nav-wrap .brand {
    position: static;
    transform: none;
    margin: 0;
    height: auto;
  }

  .topbar .brand img,
  .nav-wrap .brand-full-logo {
    width: clamp(195px, 20vw, 250px);
  }

  .nav,
  .site-nav {
    position: static;
    transform: none;
    margin: 0;
    height: auto;
  }

  .header-social {
    position: static;
    margin: 0;
    height: auto;
  }
}

.utility-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.45rem 0.35rem 1rem;
  font-family: var(--font-body);
  font-size: 0.96rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: var(--text);
}

.utility-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  padding: 0.92rem 1.5rem;
  border-radius: 14px;
  background: var(--primary);
  border: 1px solid color-mix(in srgb, var(--logo-primary) 18%, transparent);
  font-family: var(--font-body);
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #fff;
  box-shadow: 0 14px 28px rgba(36, 52, 71, 0.16);
  transition: transform 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease, filter 0.2s ease;
}

.utility-pill:hover {
  background: var(--primary-dark);
  box-shadow: 0 18px 34px rgba(36, 52, 71, 0.18);
  transform: none;
  filter: none;
}

.home-hero,
.story-section,
.feature-band,
.closing-cta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 3rem;
  align-items: center;
  padding: 3rem;
  background:
    linear-gradient(180deg, rgba(250, 252, 255, 0.99), rgba(245, 249, 255, 0.97)),
    linear-gradient(140deg, color-mix(in srgb, var(--primary) 6%, transparent), color-mix(in srgb, var(--logo-primary) 5%, transparent));
  border: 1px solid color-mix(in srgb, var(--logo-primary) 11%, transparent);
  border-radius: 30px;
  box-shadow:
    0 26px 58px rgba(48, 61, 83, 0.09),
    0 1px 0 rgba(255, 255, 255, 0.44) inset;
  backdrop-filter: blur(10px);
}

.home-hero {
  background:
    linear-gradient(180deg, var(--section-beige-strong), rgba(244, 249, 255, 0.97)),
    linear-gradient(140deg, color-mix(in srgb, var(--primary) 4%, transparent), color-mix(in srgb, var(--logo-primary) 4%, transparent));
}

.story-section {
  background:
    linear-gradient(180deg, rgba(197, 211, 222, 0.98), rgba(236, 240, 243, 0.96)),
    linear-gradient(140deg, color-mix(in srgb, var(--logo-primary) 10%, transparent), color-mix(in srgb, var(--logo-primary-medium) 12%, transparent));
}

.feature-band {
  background:
    linear-gradient(180deg, var(--section-peach-strong), rgba(241, 247, 255, 0.97)),
    linear-gradient(140deg, color-mix(in srgb, var(--primary) 5%, transparent), color-mix(in srgb, var(--accent) 4%, transparent));
}

.closing-cta {
  background:
    linear-gradient(180deg, rgba(251, 252, 255, 0.99), rgba(210, 225, 243, 0.94)),
    linear-gradient(140deg, color-mix(in srgb, var(--logo-primary) 9%, transparent), color-mix(in srgb, var(--logo-primary-medium) 10%, transparent));
}

.home-hero {
  overflow: hidden;
  min-height: 620px;
  position: relative;
  border-color: rgba(96, 116, 143, 0.14);
  box-shadow: 0 26px 56px rgba(37, 55, 79, 0.1);
}

.refined-hero {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 720px;
  padding: 6.5rem 2.5rem 5.75rem;
  background:
    linear-gradient(180deg, rgba(251, 252, 255, 0.99), rgba(247, 250, 255, 0.98));
  border: 0;
  box-shadow: none;
  isolation: isolate;
}

.refined-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(
      180deg,
      rgba(49, 88, 207, 0.5) 0,
      rgba(49, 88, 207, 0.5) 1px,
      transparent 1px,
      transparent 64px
    ),
    linear-gradient(180deg, rgba(255, 255, 255, 0.02), rgba(255, 255, 255, 0.02));
  background-size:
    100% 64px,
    100% 100%;
  background-position:
    center,
    center;
  mask-image: radial-gradient(ellipse at center, transparent 0 24%, rgba(0, 0, 0, 0.18) 40%, rgba(0, 0, 0, 0.58) 58%, #000 72%);
  -webkit-mask-image: radial-gradient(ellipse at center, transparent 0 24%, rgba(0, 0, 0, 0.18) 40%, rgba(0, 0, 0, 0.58) 58%, #000 72%);
  z-index: -2;
}

.refined-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(251, 252, 255, 0.94) 0%, rgba(251, 252, 255, 0.34) 18%, rgba(251, 252, 255, 0.34) 82%, rgba(251, 252, 255, 0.94) 100%);
  z-index: -1;
}

.hero-copy h1,
.section-heading h2,
.story-copy h2,
.feature-copy h2,
.closing-cta h2 {
  font-size: clamp(2.5rem, 4.4vw, 4.6rem);
  line-height: 1.03;
}

.hero-copy .lead {
  max-width: 56ch;
  font-size: 1.14rem;
}

.hero-copy {
  display: grid;
  gap: 1rem;
  align-content: center;
  max-width: 40rem;
  padding: 0.35rem 0;
  position: relative;
  z-index: 1;
}

.refined-hero-copy {
  max-width: 1120px;
  padding: 0;
  text-align: center;
  justify-items: center;
  gap: 1.55rem;
}

.home-hero .eyebrow {
  color: var(--primary-dark);
}

.refined-hero .eyebrow {
  color: var(--accent-deep);
}

.home-hero .hero-copy h1 {
  max-width: 11ch;
  color: var(--primary);
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.35);
}

.refined-hero .hero-copy h1 {
  max-width: none;
  margin-bottom: 0;
  color: var(--text);
  font-size: clamp(4rem, 6.3vw, 6.4rem);
  line-height: 1.03;
  letter-spacing: -0.045em;
  text-shadow: none;
}

.home-hero .hero-copy .lead {
  max-width: 48ch;
  color: var(--muted);
}

.refined-hero .hero-copy .lead {
  max-width: 58ch;
  color: var(--muted);
  font-size: 1.1rem;
  line-height: 1.75;
}

.hero-reassurance {
  max-width: 46ch;
  color: #717b85;
  font-size: 1rem;
}

.hero-actions {
  justify-content: flex-start;
  margin-top: 2rem;
  gap: 1rem;
}

.refined-hero-actions {
  justify-content: center;
  margin-top: 1rem;
  align-items: center;
}

.refined-hero-actions .button {
  min-height: 50px;
  padding-inline: 1.5rem;
  border-radius: 999px;
}

.hero-text-link {
  display: inline-flex;
  align-items: center;
  min-height: 50px;
  color: var(--primary);
  font-family: var(--font-body);
  font-size: 0.93rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.2em;
}

.hero-text-link:hover {
  color: var(--primary-dark);
}

.hero-visual {
  position: relative;
  min-height: 100%;
  padding: 1rem 1rem 1.5rem;
}

.hero-card {
  position: relative;
  overflow: hidden;
  border-radius: 32px;
  background: rgba(247, 250, 255, 0.9);
  box-shadow: 0 28px 60px rgba(48, 61, 83, 0.1);
  border: 1px solid rgba(96, 116, 143, 0.1);
}

.hero-card::before {
  top: -14%;
  right: -10%;
  width: 52%;
  height: 62%;
  background: linear-gradient(180deg, var(--shape-sand), rgba(168, 193, 227, 0.08));
  border-radius: 999px 999px 28px 28px;
}

.hero-card img {
  aspect-ratio: 4 / 4.6;
  object-fit: cover;
  object-position: center;
  border-radius: 28px;
  filter: brightness(1.01) saturate(0.92) contrast(1.04);
  padding: 0.95rem;
  background: linear-gradient(180deg, rgba(249, 252, 255, 0.95), rgba(236, 244, 253, 0.94));
}

.image-filler {
  width: 100%;
  min-height: 320px;
  border: 2px dashed rgba(50, 72, 92, 0.24);
  border-radius: 28px;
  background:
    linear-gradient(140deg, rgba(255, 255, 255, 0.72), rgba(255, 241, 232, 0.76)),
    repeating-linear-gradient(
      -45deg,
      rgba(217, 125, 65, 0.08) 0,
      rgba(217, 125, 65, 0.08) 16px,
      rgba(255, 255, 255, 0.08) 16px,
      rgba(255, 255, 255, 0.08) 32px
    );
}

.hero-card .image-filler {
  min-height: 540px;
  border: none;
  border-radius: 32px;
}

.card-filler {
  min-height: 220px;
  margin-bottom: 1rem;
  border-radius: 18px;
}

.hero-bubble {
  position: absolute;
  max-width: 220px;
  padding: 1rem 1.1rem;
  border-radius: 22px;
  background: rgba(248, 251, 255, 0.92);
  border: 1px solid color-mix(in srgb, var(--logo-secondary) 18%, transparent);
  box-shadow: 0 18px 40px rgba(94, 70, 49, 0.12);
}

.hero-bubble strong,
.program-card h3,
.mission-card h3 {
  display: block;
  margin-bottom: 0.35rem;
}

.bubble-one {
  top: 3rem;
  left: -0.25rem;
}

.bubble-two {
  right: -0.25rem;
  bottom: 2.6rem;
}

.trust-strip {
  margin-top: 0;
  padding: 2rem 1.6rem 0;
  background: linear-gradient(180deg, rgba(153, 173, 189, 0.62), rgba(247, 245, 241, 0));
  border-radius: 30px 30px 0 0;
}

.trust-card {
  padding: 2.2rem 2.35rem;
  background:
    linear-gradient(180deg, rgba(250, 252, 255, 0.98), rgba(243, 248, 255, 0.95)),
    linear-gradient(145deg, color-mix(in srgb, var(--primary) 4%, transparent), color-mix(in srgb, var(--accent) 3%, transparent));
  border: 1px solid color-mix(in srgb, var(--logo-primary) 11%, transparent);
  border-radius: 24px;
  box-shadow: 0 18px 40px rgba(48, 61, 83, 0.08);
}

.trust-card p:last-child {
  max-width: none;
}

.trust-pill-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem;
  margin: 1rem 0 1.15rem;
}

.trust-pill-row span,
.credential-row span {
  display: inline-flex;
  align-items: center;
  min-height: 42px;
  padding: 0.72rem 1rem;
  border-radius: 999px;
  background: rgba(249, 251, 255, 0.96);
  border: 1px solid color-mix(in srgb, var(--logo-primary) 12%, transparent);
  color: var(--primary);
  font-weight: 700;
  font-size: 0.94rem;
  line-height: 1.25;
  text-align: center;
  box-shadow: 0 8px 18px rgba(48, 61, 83, 0.05);
}

.credential-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem;
  margin-top: 1.4rem;
}

.about-therapist-section {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.95rem;
  padding-top: 0;
  padding-bottom: 0;
}

.about-stack-section {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.95rem;
  padding-top: 0;
  padding-bottom: 0;
}

.about-full-panel {
  width: 100%;
}

.about-full-panel h2,
.about-full-panel p,
.about-full-panel .section-stack,
.about-full-panel .section-stack > div,
.about-full-panel .section-stack p {
  max-width: none;
  width: 100%;
}

.about-main {
  gap: 0.95rem;
}

.about-stack-section .cta-band {
  width: 100%;
}

.about-stack-section .cta-band > div:first-child {
  flex: 1 1 auto;
  min-width: 0;
}

.about-stack-section .cta-band h2,
.about-stack-section .cta-band p {
  max-width: none;
}

.about-therapist-panel .credential-row {
  justify-content: flex-start;
}

.about-therapist-panel h2,
.about-therapist-panel p {
  max-width: none;
}

.speech-resource-grid {
  align-items: stretch;
}

.speech-resource-card {
  height: 100%;
  background:
    linear-gradient(180deg, rgba(251, 252, 255, 0.99), rgba(240, 246, 253, 0.95)),
    linear-gradient(145deg, color-mix(in srgb, var(--logo-secondary) 5%, transparent), color-mix(in srgb, var(--logo-primary) 8%, transparent));
}

.language-resource-grid {
  align-items: stretch;
}

.language-resource-card {
  height: 100%;
}

.interior-resource-grid {
  align-items: stretch;
}

.interior-resource-card {
  height: 100%;
}

.speech-overview-panel p {
  max-width: none;
}

.speech-overview-panel p + p {
  margin-top: 0.9rem;
}

.speech-signs-panel > p:last-child {
  max-width: none;
  margin-top: 1.15rem;
}

.language-overview-panel p {
  max-width: none;
}

.language-overview-panel p + p {
  margin-top: 0.9rem;
}

.neurogenic-overview-panel p {
  max-width: none;
}

.neurogenic-overview-panel p + p {
  margin-top: 0.9rem;
}

.neurogenic-signs-panel > p:last-child {
  max-width: none;
  margin-top: 1.15rem;
}

.feeding-overview-panel p,
.reading-overview-panel p {
  max-width: none;
}

.feeding-overview-panel p + p,
.reading-overview-panel p + p {
  margin-top: 0.9rem;
}

.feeding-signs-panel > p:last-child,
.reading-signs-panel > p:last-child {
  max-width: none;
  margin-top: 1.15rem;
}

@media (max-width: 760px) {
  .about-therapist-panel .credential-row {
    flex-wrap: wrap;
  }
}

.story-image img,
.feature-visual img,
.story-image .image-filler,
.feature-visual .image-filler {
  border-radius: 26px;
  background: linear-gradient(180deg, rgba(221, 231, 234, 0.4), rgba(248, 251, 255, 0.98));
  padding: 0.9rem;
  box-shadow:
    0 20px 44px rgba(48, 61, 83, 0.09),
    inset 0 0 0 1px rgba(255, 255, 255, 0.42);
}

.story-image::before,
.feature-visual::before {
  width: 74%;
  height: 78%;
  left: -10%;
  bottom: -8%;
  background:
    radial-gradient(circle at 35% 35%, rgba(255, 255, 255, 0.18), transparent 58%),
    linear-gradient(160deg, var(--shape-teal-soft), rgba(50, 72, 92, 0.08));
  border-radius: 42% 58% 36% 64% / 48% 38% 62% 52%;
}

.hero-media::before,
.page-hero-grid::before,
.portrait-card::before,
.family-photo-wrap::before,
.infant-photo-wrap::before,
.about-story-photo::before,
.about-portrait-card::before,
.service-detail-sidebar::before {
  width: 72%;
  height: 76%;
  left: -12%;
  bottom: -10%;
  background:
    radial-gradient(circle at 34% 32%, rgba(255, 255, 255, 0.16), transparent 58%),
    linear-gradient(155deg, var(--shape-teal-soft), rgba(50, 72, 92, 0.08));
  border-radius: 44% 56% 48% 52% / 58% 42% 58% 42%;
}

.story-image::after,
.feature-visual::after {
  content: "";
  position: absolute;
  top: 6%;
  right: -6%;
  width: 46%;
  height: 54%;
  background: linear-gradient(180deg, var(--shape-sand), rgba(168, 193, 227, 0.06));
  border-radius: 999px 999px 26px 26px;
  pointer-events: none;
  z-index: 0;
}

.hero-media::after,
.page-hero-grid::after,
.portrait-card::after,
.family-photo-wrap::after,
.infant-photo-wrap::after,
.about-story-photo::after,
.about-portrait-card::after,
.service-detail-sidebar::after {
  content: "";
  position: absolute;
  top: 5%;
  right: -7%;
  width: 42%;
  height: 52%;
  background: linear-gradient(180deg, var(--shape-sand), rgba(168, 193, 227, 0.05));
  border-radius: 999px 999px 24px 24px;
  pointer-events: none;
  z-index: 0;
}

.story-image img,
.feature-visual img {
  aspect-ratio: 4 / 4.4;
}

.mission-section,
.programs-section,
.reviews-section {
  padding: 3rem;
  border: 1px solid rgba(96, 116, 143, 0.1);
  border-radius: 30px;
  box-shadow: 0 22px 52px rgba(48, 61, 83, 0.07);
}

.mission-section {
  background:
    linear-gradient(180deg, rgba(251, 252, 255, 0.98), rgba(239, 245, 253, 0.95)),
    linear-gradient(145deg, rgba(168, 193, 227, 0.08), rgba(50, 72, 92, 0.04));
}

.programs-section {
  background:
    linear-gradient(180deg, rgba(188, 202, 214, 0.98), rgba(236, 240, 243, 0.96)),
    linear-gradient(145deg, rgba(36, 52, 71, 0.1), rgba(153, 173, 189, 0.18));
}

.reviews-section {
  background:
    linear-gradient(180deg, rgba(248, 251, 255, 0.98), rgba(236, 243, 252, 0.95)),
    linear-gradient(145deg, rgba(168, 193, 227, 0.08), rgba(126, 167, 219, 0.05));
}

.section-heading {
  max-width: 720px;
  margin: 0 auto 2.75rem;
  text-align: center;
}

.section-heading.left-align {
  margin-inline: 0;
  text-align: left;
}

.mission-grid,
.program-grid,
.reviews-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.75rem;
}

.mission-card,
.program-card,
.review-card {
  padding: 1.85rem;
  background:
    linear-gradient(180deg, rgba(251, 252, 255, 0.99), rgba(239, 245, 253, 0.97)),
    linear-gradient(145deg, color-mix(in srgb, var(--accent) 4%, transparent), color-mix(in srgb, var(--logo-primary) 4%, transparent));
  border: 1px solid color-mix(in srgb, var(--logo-primary) 10%, transparent);
  border-radius: 24px;
  box-shadow:
    0 22px 48px rgba(50, 72, 92, 0.08),
    0 1px 0 rgba(255, 255, 255, 0.42) inset;
  backdrop-filter: blur(8px);
}

.mission-card::before,
.program-card::before,
.service-feature-card::before,
.service-card::before,
.review-card::before {
  top: -18px;
  right: -14px;
  width: 176px;
  height: 132px;
  background: linear-gradient(180deg, var(--shape-sand), rgba(168, 193, 227, 0.06));
  border-radius: 999px 999px 20px 20px;
  opacity: 0.11;
  transform: rotate(-6deg);
}

.mission-card::after,
.program-card::after,
.service-feature-card::after,
.service-card::after,
.review-card::after {
  content: "";
  position: absolute;
  left: -18px;
  bottom: -26px;
  width: 168px;
  height: 144px;
  background:
    radial-gradient(circle at 32% 34%, rgba(255, 255, 255, 0.14), transparent 56%),
    linear-gradient(155deg, var(--shape-teal-soft), rgba(50, 72, 92, 0.08));
  border-radius: 44% 56% 52% 48% / 56% 38% 62% 44%;
  opacity: 0.1;
  transform: rotate(8deg);
  pointer-events: none;
  z-index: 0;
}

.mission-card:nth-child(4n + 1)::before,
.program-card:nth-child(4n + 1)::before,
.service-feature-card:nth-child(4n + 1)::before,
.service-list .service-card:nth-child(4n + 1)::before,
.reviews-grid .review-card:nth-child(4n + 1)::before {
  top: -16px;
  right: -12px;
  width: 148px;
  height: 122px;
  opacity: 0.09;
  transform: rotate(-8deg);
}

.mission-card:nth-child(4n + 1)::after,
.program-card:nth-child(4n + 1)::after,
.service-feature-card:nth-child(4n + 1)::after,
.service-list .service-card:nth-child(4n + 1)::after,
.reviews-grid .review-card:nth-child(4n + 1)::after {
  left: -22px;
  bottom: -28px;
  width: 194px;
  height: 158px;
  opacity: 0.1;
  transform: rotate(6deg);
}

.mission-card:nth-child(4n + 2)::before,
.program-card:nth-child(4n + 2)::before,
.service-feature-card:nth-child(4n + 2)::before,
.service-list .service-card:nth-child(4n + 2)::before,
.reviews-grid .review-card:nth-child(4n + 2)::before {
  top: auto;
  bottom: -20px;
  right: -18px;
  width: 214px;
  height: 154px;
  opacity: 0.14;
  transform: rotate(12deg);
}

.mission-card:nth-child(4n + 2)::after,
.program-card:nth-child(4n + 2)::after,
.service-feature-card:nth-child(4n + 2)::after,
.service-list .service-card:nth-child(4n + 2)::after,
.reviews-grid .review-card:nth-child(4n + 2)::after {
  left: -20px;
  top: -18px;
  bottom: auto;
  width: 142px;
  height: 122px;
  opacity: 0.08;
  transform: rotate(-7deg);
}

.mission-card:nth-child(4n + 3)::before,
.program-card:nth-child(4n + 3)::before,
.service-feature-card:nth-child(4n + 3)::before,
.service-list .service-card:nth-child(4n + 3)::before,
.reviews-grid .review-card:nth-child(4n + 3)::before {
  top: 22%;
  right: -28px;
  width: 124px;
  height: 124px;
  opacity: 0.08;
  transform: rotate(6deg);
}

.mission-card:nth-child(4n + 3)::after,
.program-card:nth-child(4n + 3)::after,
.service-feature-card:nth-child(4n + 3)::after,
.service-list .service-card:nth-child(4n + 3)::after,
.reviews-grid .review-card:nth-child(4n + 3)::after {
  left: -24px;
  bottom: -18px;
  width: 224px;
  height: 166px;
  opacity: 0.12;
  transform: rotate(-8deg);
}

.mission-card:nth-child(4n)::before,
.program-card:nth-child(4n)::before,
.service-feature-card:nth-child(4n)::before,
.service-list .service-card:nth-child(4n)::before,
.reviews-grid .review-card:nth-child(4n)::before {
  top: -14px;
  left: 50%;
  right: auto;
  width: 164px;
  height: 128px;
  opacity: 0.1;
  transform: translateX(-38%) rotate(5deg);
}

.mission-card:nth-child(4n)::after,
.program-card:nth-child(4n)::after,
.service-feature-card:nth-child(4n)::after,
.service-list .service-card:nth-child(4n)::after,
.reviews-grid .review-card:nth-child(4n)::after {
  right: -18px;
  left: auto;
  bottom: -24px;
  width: 184px;
  height: 152px;
  opacity: 0.13;
  transform: rotate(10deg);
}

.service-list .service-card::before,
.service-list .service-card::after {
  content: "";
  position: absolute;
  pointer-events: none;
  z-index: 0;
}

.service-list .service-card::before {
  top: -18px;
  right: -18px;
  width: 172px;
  height: 136px;
  background:
    radial-gradient(circle at 34% 34%, rgba(255, 255, 255, 0.18), transparent 58%),
    linear-gradient(180deg, var(--shape-peach-light), var(--shape-coral-light));
  border-radius: 52% 48% 46% 54% / 58% 44% 56% 42%;
  opacity: 0.15;
  transform: rotate(-8deg);
}

.service-list .service-card::after {
  left: -24px;
  bottom: -26px;
  width: 188px;
  height: 152px;
  background:
    radial-gradient(circle at 36% 30%, rgba(255, 255, 255, 0.16), transparent 56%),
    linear-gradient(155deg, var(--shape-teal-soft), var(--shape-teal-light));
  border-radius: 46% 54% 58% 42% / 50% 42% 58% 50%;
  opacity: 0.13;
  transform: rotate(7deg);
}

.service-list .service-card:nth-child(4n + 1)::before {
  top: -14px;
  right: -12px;
  width: 144px;
  height: 122px;
  opacity: 0.12;
  transform: rotate(-6deg);
}

.service-list .service-card:nth-child(4n + 1)::after {
  left: -22px;
  bottom: -24px;
  width: 206px;
  height: 162px;
  opacity: 0.14;
  transform: rotate(9deg);
}

.service-list .service-card:nth-child(4n + 2)::before {
  top: auto;
  bottom: -22px;
  right: -18px;
  width: 224px;
  height: 164px;
  background:
    radial-gradient(circle at 42% 30%, rgba(255, 255, 255, 0.14), transparent 56%),
    linear-gradient(180deg, var(--shape-peach-light), var(--shape-peach-medium));
  opacity: 0.17;
  transform: rotate(12deg);
}

.service-list .service-card:nth-child(4n + 2)::after {
  left: -18px;
  top: -18px;
  bottom: auto;
  width: 132px;
  height: 132px;
  background:
    radial-gradient(circle at 34% 34%, rgba(255, 255, 255, 0.14), transparent 54%),
    linear-gradient(155deg, var(--shape-teal-soft), var(--shape-teal-light));
  opacity: 0.1;
  transform: rotate(-8deg);
}

.service-list .service-card:nth-child(4n + 3)::before {
  top: 28%;
  right: -30px;
  width: 122px;
  height: 122px;
  background:
    radial-gradient(circle at 38% 34%, rgba(255, 255, 255, 0.14), transparent 56%),
    linear-gradient(180deg, var(--shape-peach-light), var(--shape-coral-soft));
  opacity: 0.1;
  transform: rotate(6deg);
}

.service-list .service-card:nth-child(4n + 3)::after {
  left: -28px;
  bottom: -20px;
  width: 236px;
  height: 170px;
  background:
    radial-gradient(circle at 32% 30%, rgba(255, 255, 255, 0.14), transparent 56%),
    linear-gradient(155deg, var(--shape-teal-soft), var(--shape-teal-light));
  opacity: 0.16;
  transform: rotate(-7deg);
}

.service-list .service-card:nth-child(4n)::before {
  top: -10px;
  left: 54%;
  right: auto;
  width: 164px;
  height: 128px;
  background:
    radial-gradient(circle at 40% 34%, rgba(255, 255, 255, 0.14), transparent 54%),
    linear-gradient(180deg, var(--shape-peach-light), var(--shape-peach-medium));
  opacity: 0.13;
  transform: translateX(-38%) rotate(5deg);
}

.service-list .service-card:nth-child(4n)::after {
  right: -18px;
  left: auto;
  bottom: -24px;
  width: 176px;
  height: 148px;
  background:
    radial-gradient(circle at 32% 30%, rgba(255, 255, 255, 0.14), transparent 56%),
    linear-gradient(155deg, var(--shape-teal-soft), var(--shape-teal-light));
  opacity: 0.12;
  transform: rotate(10deg);
}

.service-list .service-card {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}

/* Service card layered overlay system */
.service-list .service-card {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  background:
    linear-gradient(180deg, rgba(251, 252, 255, 0.995), rgba(240, 246, 253, 0.975)),
    linear-gradient(145deg, color-mix(in srgb, var(--logo-secondary) 4%, transparent), color-mix(in srgb, var(--logo-primary) 7%, transparent));
  border-color: color-mix(in srgb, var(--logo-primary) 12%, transparent);
}

.service-list .service-card:nth-child(3n + 2),
.service-list .service-card:nth-child(3n) {
  background:
    linear-gradient(180deg, rgba(251, 252, 255, 0.995), rgba(240, 246, 253, 0.975)),
    linear-gradient(145deg, color-mix(in srgb, var(--logo-secondary) 4%, transparent), color-mix(in srgb, var(--logo-primary) 7%, transparent));
}

.service-card-content {
  position: relative;
  z-index: 2;
  display: grid;
  gap: 0.9rem;
}

.bubble {
  position: absolute;
  border-radius: 999px;
  pointer-events: none;
  z-index: 1;
  opacity: 0.14;
  filter: blur(2px);
}

.service-list .service-card .bubble-1 {
  top: -34px;
  right: -30px;
  width: 170px;
  height: 170px;
  background: var(--shape-coral-light);
}

.service-list .service-card .bubble-2 {
  bottom: -28px;
  left: -22px;
  width: 142px;
  height: 142px;
  background: rgba(36, 52, 71, 0.1);
  filter: blur(3px);
}

.service-list .service-card .bubble-3 {
  top: 20%;
  right: 22%;
  width: 48px;
  height: 48px;
  background: var(--shape-peach-light);
  filter: blur(1.5px);
}

.service-list .service-card:nth-child(4n + 1) .bubble-1 {
  top: -24px;
  right: -18px;
  width: 154px;
  height: 154px;
  background: var(--shape-peach-medium);
}

.service-list .service-card:nth-child(4n + 1) .bubble-2 {
  left: -18px;
  bottom: -18px;
  width: 126px;
  height: 126px;
  background: rgba(36, 52, 71, 0.09);
}

.service-list .service-card:nth-child(4n + 1) .bubble-3 {
  top: 56%;
  right: 14%;
  width: 34px;
  height: 34px;
  background: var(--shape-peach-light);
}

.service-list .service-card:nth-child(4n + 2) .bubble-1 {
  bottom: -26px;
  top: auto;
  right: -20px;
  width: 196px;
  height: 148px;
  background: var(--shape-coral-light);
  border-radius: 46% 54% 50% 50% / 58% 42% 58% 42%;
  transform: rotate(12deg);
}

.service-list .service-card:nth-child(4n + 2) .bubble-2 {
  top: -18px;
  left: -16px;
  bottom: auto;
  width: 118px;
  height: 118px;
  background: rgba(153, 173, 189, 0.2);
}

.service-list .service-card:nth-child(4n + 2) .bubble-3 {
  top: 26%;
  left: 52%;
  width: 62px;
  height: 62px;
  background: var(--shape-peach-light);
  filter: blur(2.5px);
}

.service-list .service-card:nth-child(4n + 3) .bubble-1 {
  top: 24%;
  right: -14px;
  width: 116px;
  height: 116px;
  background: var(--shape-coral-soft);
}

.service-list .service-card:nth-child(4n + 3) .bubble-2 {
  left: -18px;
  bottom: -14px;
  width: 206px;
  height: 144px;
  background: rgba(153, 173, 189, 0.22);
  border-radius: 48% 52% 58% 42% / 46% 40% 60% 54%;
  transform: rotate(-8deg);
}

.service-list .service-card:nth-child(4n + 3) .bubble-3 {
  top: 10%;
  right: 28%;
  width: 42px;
  height: 42px;
  background: var(--shape-peach-light);
}

.service-list .service-card:nth-child(4n) .bubble-1 {
  top: -18px;
  left: 50%;
  right: auto;
  width: 150px;
  height: 150px;
  background: var(--shape-peach-medium);
  transform: translateX(-36%) rotate(5deg);
}

.service-list .service-card:nth-child(4n) .bubble-2 {
  right: -12px;
  left: auto;
  bottom: -20px;
  width: 154px;
  height: 154px;
  background: rgba(36, 52, 71, 0.1);
  transform: rotate(10deg);
}

.service-list .service-card:nth-child(4n) .bubble-3 {
  top: 54%;
  left: 12%;
  width: 30px;
  height: 30px;
  background: var(--shape-peach-light);
  filter: blur(1px);
}

.mission-card img,
.mission-card .image-filler {
  height: 235px;
  margin-bottom: 1rem;
  object-fit: cover;
  object-position: center 38%;
  border-radius: 18px;
  background: linear-gradient(180deg, rgba(186, 208, 235, 0.28), rgba(248, 251, 255, 0.96));
  padding: 0;
}

.mission-card a {
  color: var(--primary-dark);
  font-weight: 800;
}

.mission-card a,
.text-link {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.18em;
}

.programs-section {
  display: grid;
  gap: 1.4rem;
}

.programs-section .program-card {
  background:
    linear-gradient(180deg, rgba(251, 252, 255, 0.995), rgba(240, 246, 253, 0.975)),
    linear-gradient(145deg, color-mix(in srgb, var(--logo-secondary) 4%, transparent), color-mix(in srgb, var(--logo-primary) 6%, transparent));
  border-color: color-mix(in srgb, var(--logo-primary) 12%, transparent);
}

.programs-section .program-card h3 {
  color: var(--primary);
}

.programs-section .program-card::before {
  background: linear-gradient(180deg, rgba(168, 193, 227, 0.18), rgba(168, 193, 227, 0.04));
  opacity: 0.08;
}

.programs-section .program-card::after {
  background:
    radial-gradient(circle at 32% 34%, rgba(255, 255, 255, 0.14), transparent 56%),
    linear-gradient(155deg, rgba(153, 173, 189, 0.22), rgba(36, 52, 71, 0.06));
  opacity: 0.08;
}

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

.program-card {
  min-height: 180px;
}

.program-card img {
  height: 235px;
  margin-bottom: 1rem;
  object-fit: cover;
  object-position: center 40%;
  border-radius: 18px;
  background: linear-gradient(180deg, rgba(186, 208, 235, 0.24), rgba(248, 251, 255, 0.96));
}

.review-card {
  margin: 0;
  font-size: 1.06rem;
  line-height: 1.84;
}

.review-card p {
  margin: 0;
}

.review-card footer {
  margin-top: 1rem;
  color: var(--primary-dark);
  font-size: 0.88rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.home-footer {
  margin-top: 2rem;
  width: 100%;
  margin-left: 0;
  margin-right: 0;
}

.home-footer .footer-grid {
  width: min(calc(100% - (var(--page-gutter) * 2)), var(--container));
  margin: 0 auto;
}

@media (max-width: 980px) {
  .home-hero,
  .story-section,
  .feature-band,
  .closing-cta,
  .mission-grid,
  .program-grid,
  .reviews-grid {
    grid-template-columns: 1fr;
  }

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

  .home-hero {
    min-height: auto;
  }

  .refined-hero {
    min-height: 610px;
    padding: 4.2rem 1.6rem;
  }

  .hero-shape-right {
    width: 180px;
    height: 230px;
    right: -58px;
  }

  .hero-ring-top,
  .hero-ring-bottom {
    display: none;
  }

  .hero-visual {
    padding-inline: 0;
  }

  .utility-bar {
    padding-inline: 0.1rem;
  }

  .trust-strip {
    margin-top: 0;
  }
}

@media (max-width: 760px) {
  .home-shell {
    width: min(100%, calc(100% - 16px));
    margin-top: 0;
  }

  .utility-bar {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.6rem;
    padding: 0.9rem 0.2rem 0.7rem;
  }

  .home-hero,
  .story-section,
  .feature-band,
  .closing-cta,
  .mission-section,
  .programs-section,
  .reviews-section {
    padding: 1.6rem;
    border-radius: 22px;
  }

  .trust-card {
    padding: 1.6rem;
    border-radius: 22px;
  }

  .page-main,
  .home-main {
    gap: 3.25rem;
  }

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

  .page-panel,
  .contact-info-card,
  .secure-card,
  .service-detail-card,
  .pricing-card,
  .steps-card,
  .mission-card,
  .program-card,
  .review-card,
  .cta-band,
  .cta-box {
    padding: 1.6rem;
  }

  .hero-bubble {
    position: static;
    max-width: none;
    margin-top: 1rem;
  }

  .refined-hero {
    min-height: 540px;
    padding: 3.3rem 1.1rem;
  }

  .refined-hero .hero-copy h1 {
    font-size: clamp(2.7rem, 10.5vw, 4.15rem);
  }

  .refined-hero .hero-copy .lead {
    max-width: 33ch;
    font-size: 1rem;
  }

  .hero-shape-top-left,
  .hero-shape-right,
  .hero-shape-bottom-left,
  .hero-shape-bottom-right {
    opacity: 0.82;
  }

  .hero-shape-top-left {
    width: 150px;
    height: 120px;
    left: -42px;
    top: -22px;
  }

  .hero-shape-right {
    width: 124px;
    height: 190px;
    right: -44px;
    top: 86px;
  }

  .hero-shape-bottom-left {
    width: 150px;
    height: 110px;
    left: -30px;
    bottom: -36px;
  }

  .hero-shape-bottom-right {
    width: 120px;
    height: 88px;
    right: -24px;
    bottom: -26px;
  }

  .trust-strip {
    padding: 1rem 0 0;
    border-radius: 22px 22px 0 0;
  }

  .hero-card img {
    aspect-ratio: 4 / 3.8;
  }
}

/* Responsive usability audit fixes */
html {
  -webkit-text-size-adjust: 100%;
}

@media (min-width: 768px) and (max-width: 1023px) {
  .site-shell {
    width: min(100%, calc(100% - 24px));
    margin: 12px auto 48px;
  }

  .topbar {
    gap: 0.95rem;
    padding: 12px 14px 10px;
  }

  .brand img {
    width: clamp(170px, 23vw, 240px);
  }

  .nav {
    gap: 0.75rem;
    flex-wrap: wrap;
  }

  .nav a,
  .nav-dropdown-toggle {
    min-height: 40px;
    padding: 0.45rem 0.15rem;
    font-size: 0.68rem;
    letter-spacing: 0.08em;
  }

  .social-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    min-width: 40px;
    min-height: 40px;
    padding: 0.45rem;
    border-radius: 999px;
  }

  .social-link svg {
    width: 17px;
    height: 17px;
  }

  .topbar-cta {
    min-height: 46px;
    padding: 0.8rem 1.15rem;
  }

  .page-main {
    gap: 4rem;
  }

  .page-hero-block {
    padding-top: 3.5rem;
  }

  .page-hero-block h1,
  .page-hero-block h2,
  .hero-copy h1,
  .tt-hero-copy h1,
  .refined-hero .hero-copy h1 {
    font-size: clamp(2.4rem, 5vw, 4.2rem);
  }

  .service-list.service-grid,
  .service-grid,
  .mission-grid,
  .program-grid,
  .reviews-grid,
  .steps,
  .pricing-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .footer-grid {
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr) minmax(0, 0.9fr);
    column-gap: 2rem;
  }

  .footer-grid > div:nth-child(2),
  .footer-grid > div:nth-child(3) {
    justify-self: stretch;
  }

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

  input,
  select,
  textarea {
    font-size: 16px;
  }
}

@media (max-width: 767px) {
  .site-shell {
    width: min(100%, calc(100% - 18px));
    margin: 0 auto 32px;
  }

  .topbar {
    top: 0;
    grid-template-columns: auto 1fr auto;
    min-height: 78px;
    padding: 10px 12px;
    gap: 0.75rem;
    border-radius: 0 0 16px 16px;
  }

  .brand img {
    width: clamp(148px, 42vw, 210px);
  }

  .topbar-cta {
    display: none;
  }

  .menu-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 0.7rem 0.95rem;
  }

  .nav {
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    right: 0;
    display: none;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.35rem;
    padding: 1rem;
    background: rgba(248, 245, 241, 0.98);
    border: 1px solid rgba(36, 52, 71, 0.1);
    border-radius: 16px;
    box-shadow: 0 18px 40px rgba(36, 58, 87, 0.1);
    grid-column: auto;
  }

  .nav.open {
    display: flex;
    max-height: calc(100vh - 92px);
    overflow-y: auto;
  }

  .nav-dropdown,
  .nav a,
  .nav-dropdown-toggle,
  .nav-socials {
    width: 100%;
  }

  .nav a,
  .nav-dropdown-toggle {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    min-height: 44px;
    padding: 0.75rem 0.4rem;
    font-size: 0.8rem;
    letter-spacing: 0.08em;
  }

  .nav-socials {
    display: flex;
    justify-content: flex-start;
    gap: 0.5rem;
    padding-top: 0.35rem;
    flex-wrap: wrap;
  }

  .social-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    min-width: 44px;
    min-height: 44px;
    padding: 0.5rem;
    border-radius: 999px;
  }

  .social-link svg {
    width: 18px;
    height: 18px;
  }

  .page-main {
    gap: 3rem;
  }

  .page-hero-block {
    padding-top: 2.8rem;
    border-radius: 20px;
  }

  .page-hero-block h1,
  .page-hero-block h2,
  .hero-copy h1,
  .tt-hero-copy h1,
  .refined-hero .hero-copy h1 {
    max-width: 14ch;
    font-size: clamp(2.1rem, 8vw, 3.35rem);
  }

  .page-hero-block p,
  .hero-copy .lead,
  .refined-hero .hero-copy .lead,
  .tt-hero-copy .lead {
    max-width: 34ch;
    overflow-wrap: break-word;
  }

  .section {
    padding: 3.1rem 0;
  }

  .cta-actions,
  .hero-actions,
  .refined-hero-actions,
  .editorial-button-row,
  .credential-row,
  .trust-pill-row,
  .pill-grid {
    flex-wrap: wrap;
  }

  .service-list.service-grid,
  .service-grid,
  .mission-grid,
  .program-grid,
  .reviews-grid,
  .steps,
  .pricing-grid,
  .contact-form,
  .footer-grid {
    grid-template-columns: 1fr;
  }

  .contact-layout,
  .page-split,
  .service-detail-card,
  .story-section,
  .home-hero,
  .tt-hero-layout,
  .tt-review-layout,
  .tt-editorial-grid,
  .navy-card,
  .tt-story-section,
  .tt-services-section,
  .tt-programs-section {
    grid-template-columns: 1fr;
  }

  .contact-layout,
  .page-split {
    gap: 1.5rem;
  }

  .page-panel,
  .contact-info-card,
  .secure-card,
  .pricing-card,
  .steps-card,
  .service-card,
  .mission-card,
  .program-card,
  .review-card,
  .cta-band {
    min-width: 0;
    padding: 1.5rem;
  }

  .service-list .service-card h3,
  .mission-card h3,
  .program-card h3,
  .review-card h3,
  .footer-grid > div {
    max-width: none;
  }

  .footer-grid > div,
  .footer-grid > div:nth-child(2),
  .footer-grid > div:nth-child(3) {
    justify-self: stretch;
    min-width: 0;
  }

  .contact-form,
  .form-row,
  .full-width,
  input,
  select,
  textarea {
    min-width: 0;
    max-width: 100%;
  }

  input,
  select,
  textarea {
    min-height: 44px;
    font-size: 16px;
  }

  textarea {
    min-height: 120px;
  }

  .about-therapist-panel .credential-row {
    flex-wrap: wrap;
  }
}

@media (max-width: 480px) {
  .site-shell {
    width: min(100%, calc(100% - 12px));
    margin: 0 auto 28px;
  }

  .topbar {
    padding-inline: 10px;
  }

  .brand img {
    width: clamp(136px, 44vw, 180px);
  }

  .menu-toggle {
    width: 100%;
    padding-inline: 0.8rem;
    font-size: 0.82rem;
    letter-spacing: 0.06em;
  }

  .page-main {
    gap: 2.5rem;
  }

  .page-hero-block h1,
  .page-hero-block h2,
  .hero-copy h1,
  .tt-hero-copy h1,
  .refined-hero .hero-copy h1 {
    max-width: none;
    font-size: clamp(1.95rem, 10vw, 2.65rem);
  }

  .page-hero-block p,
  .hero-copy .lead,
  .refined-hero .hero-copy .lead,
  .tt-hero-copy .lead {
    max-width: none;
  }

  .button,
  .cta-actions .button,
  .hero-actions .button,
  .refined-hero-actions .button,
  .editorial-button-row .button {
    width: 100%;
    min-height: 44px;
  }

  .cta-actions,
  .hero-actions,
  .refined-hero-actions,
  .editorial-button-row {
    flex-direction: column;
    align-items: stretch;
  }

  .section {
    padding: 2.75rem 0;
  }

  .page-panel,
  .contact-info-card,
  .secure-card,
  .pricing-card,
  .steps-card,
  .service-card,
  .mission-card,
  .program-card,
  .review-card,
  .cta-band {
    padding: 1.25rem;
    border-radius: 18px;
  }

  .social-link {
    width: 42px;
    min-width: 42px;
    min-height: 42px;
  }
}

@media (max-width: 375px) {
  .brand img {
    width: 132px;
  }

  .topbar {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .topbar .brand {
    min-width: 0;
  }

  .menu-toggle {
    width: auto;
    min-width: 0;
  }

  .nav a,
  .nav-dropdown-toggle {
    font-size: 0.78rem;
  }

  .page-hero-block h1,
  .page-hero-block h2,
  .hero-copy h1,
  .tt-hero-copy h1,
  .refined-hero .hero-copy h1 {
    font-size: clamp(1.8rem, 10.5vw, 2.35rem);
  }
}

/* Homepage boutique refresh */
body::before {
  content: none;
}

.home-shell .topbar {
  min-height: 82px;
  padding: 10px 16px;
  gap: 1.35rem;
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid color-mix(in srgb, var(--logo-primary) 10%, transparent);
  border-radius: 26px;
  box-shadow: 0 18px 40px rgba(41, 79, 128, 0.08);
  backdrop-filter: blur(16px);
}

.home-shell .brand img {
  width: clamp(150px, 12vw, 192px);
}

.home-shell .nav {
  gap: 1.25rem;
}

.home-shell .nav a,
.home-shell .nav-dropdown-toggle {
  min-height: 34px;
  font-size: 0.67rem;
  font-weight: 600;
  letter-spacing: 0.14em;
}

.home-shell .topbar-cta {
  min-height: 46px;
  padding: 0.72rem 1.2rem;
  font-size: 0.72rem;
  letter-spacing: 0.12em;
}

.boutique-home-main {
  gap: clamp(2.5rem, 4vw, 4.25rem);
  padding-top: 12px;
}

.homepage-hero,
.homepage-why,
.homepage-services,
.homepage-testimonials,
.homepage-cta-strip {
  width: 100%;
}

.homepage-announcement-band {
  width: 100%;
  padding: 0.4rem 0 1rem;
}

.homepage-hero {
  padding: clamp(1.2rem, 2.2vw, 1.8rem);
  border-radius: 38px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(239, 246, 254, 0.95)),
    linear-gradient(145deg, rgba(126, 167, 219, 0.1), rgba(41, 79, 128, 0.04));
  border: 1px solid color-mix(in srgb, var(--logo-primary) 12%, transparent);
  box-shadow: 0 28px 58px rgba(41, 79, 128, 0.08);
}

.homepage-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.92fr) minmax(320px, 1.08fr);
  align-items: center;
  gap: clamp(1.5rem, 3vw, 3.25rem);
}

.homepage-hero-copy {
  display: grid;
  align-content: center;
  justify-items: start;
  gap: 1.1rem;
  padding: clamp(0.4rem, 1vw, 1rem);
}

.homepage-hero-copy h1 {
  margin-bottom: 0;
  max-width: 9ch;
  font-size: clamp(3rem, 5vw, 5.65rem);
  line-height: 0.98;
  letter-spacing: -0.055em;
  color: var(--primary-dark);
}

.homepage-hero-copy h1 span {
  color: var(--accent);
}

.homepage-hero-copy .lead {
  max-width: 34ch;
  font-size: 0.96rem;
  line-height: 1.75;
}

.homepage-announcement {
  width: 100%;
  display: grid;
  justify-items: center;
  gap: 0.8rem;
  padding: 1rem 1.4rem;
  border-radius: 22px;
  background: linear-gradient(180deg, rgba(235, 244, 255, 0.96), rgba(246, 250, 255, 0.98));
  border: 1px solid color-mix(in srgb, var(--logo-primary) 14%, transparent);
  box-shadow: 0 18px 36px rgba(41, 79, 128, 0.1);
  text-align: center;
}

.homepage-announcement-title {
  margin: 0;
  font-size: 1rem;
  font-weight: 800;
  letter-spacing: 0.02em;
  color: var(--primary-dark);
}

.homepage-announcement-copy {
  margin: 0;
  color: var(--text);
  font-size: 0.95rem;
  line-height: 1.7;
}

.homepage-announcement-copy strong {
  color: var(--primary-dark);
}

.homepage-announcement-button {
  min-height: 46px;
  padding-inline: 1.2rem;
  border-radius: 999px;
}

.homepage-hero-actions {
  margin-top: 0.3rem;
  gap: 0.9rem;
}

.homepage-hero-actions .button,
.homepage-secondary-button {
  min-height: 50px;
  padding-inline: 1.45rem;
  border-radius: 999px;
}

.homepage-secondary-button {
  background: rgba(255, 255, 255, 0.92);
  color: var(--primary);
  border: 1px solid color-mix(in srgb, var(--logo-primary) 14%, transparent);
}

.homepage-secondary-button:hover {
  background: var(--accent-soft);
  color: var(--primary-dark);
}

.homepage-hero-media {
  min-height: clamp(360px, 42vw, 580px);
  border-radius: 34px;
  overflow: hidden;
  background: linear-gradient(180deg, rgba(226, 236, 248, 0.9), rgba(248, 251, 255, 0.92));
  box-shadow:
    0 34px 70px rgba(41, 79, 128, 0.16),
    0 0 0 1px rgba(255, 255, 255, 0.6) inset;
}

.homepage-hero-media img {
  height: 100%;
  min-height: inherit;
  object-fit: cover;
  object-position: center;
  border-radius: 34px;
  box-shadow: none;
  filter: none;
}

.homepage-why {
  display: grid;
  gap: 1.5rem;
  padding: clamp(2rem, 3vw, 2.8rem);
  border-radius: 34px;
  background: linear-gradient(180deg, rgba(243, 248, 255, 0.96), rgba(251, 253, 255, 0.98));
  border: 1px solid color-mix(in srgb, var(--logo-primary) 9%, transparent);
}

.homepage-why .section-heading {
  max-width: 760px;
  margin: 0 auto;
}

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

.homepage-why-card {
  display: grid;
  align-content: start;
  gap: 0.8rem;
  padding: 1.5rem 1.35rem;
  border-radius: 24px;
  background: rgba(255, 255, 255, 0.88);
  border: 1px solid color-mix(in srgb, var(--logo-primary) 10%, transparent);
  box-shadow: 0 18px 34px rgba(41, 79, 128, 0.06);
}

.homepage-why-card h3 {
  margin-bottom: 0;
  font-size: 1.05rem;
  letter-spacing: -0.03em;
}

.homepage-why-card p {
  font-size: 0.93rem;
  line-height: 1.7;
}

.homepage-why-icon {
  width: 52px;
  height: 52px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 18px;
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.98), rgba(226, 237, 250, 0.95));
  color: var(--primary);
  box-shadow: inset 0 0 0 1px rgba(41, 79, 128, 0.08);
}

.homepage-why-icon svg {
  width: 24px;
  height: 24px;
  fill: currentColor;
}

.homepage-services {
  display: grid;
  gap: 1.6rem;
}

.homepage-services .section-heading {
  max-width: 780px;
  text-align: center;
  margin: 0 auto;
}

.homepage-service-stack {
  display: grid;
  gap: 1.4rem;
}

.homepage-service-card {
  display: grid;
  grid-template-columns: minmax(280px, 0.96fr) minmax(0, 1.04fr);
  align-items: stretch;
  gap: clamp(1.25rem, 2.2vw, 2rem);
  padding: clamp(1.25rem, 2vw, 1.6rem);
  border-radius: 34px;
  background:
    linear-gradient(180deg, rgba(251, 252, 255, 0.99), rgba(239, 245, 253, 0.96)),
    linear-gradient(145deg, rgba(126, 167, 219, 0.07), rgba(41, 79, 128, 0.04));
  border: 1px solid color-mix(in srgb, var(--logo-primary) 10%, transparent);
  box-shadow: 0 22px 50px rgba(41, 79, 128, 0.08);
}

.homepage-service-card.is-reversed .homepage-service-media {
  order: 2;
}

.homepage-service-card.is-reversed .homepage-service-copy {
  order: 1;
}

.homepage-service-media {
  min-height: 310px;
  border-radius: 28px;
  overflow: hidden;
}

.homepage-service-media img {
  height: 100%;
  min-height: inherit;
  border-radius: 28px;
  object-fit: cover;
  object-position: center;
  box-shadow: none;
  filter: none;
}

.homepage-service-copy {
  display: grid;
  align-content: center;
  gap: 0.8rem;
  padding: clamp(0.25rem, 1vw, 1rem);
}

.homepage-service-copy .eyebrow {
  margin-bottom: 0;
}

.homepage-service-copy h3 {
  margin-bottom: 0;
  font-size: clamp(2rem, 3vw, 3rem);
  line-height: 1.05;
}

.homepage-service-copy p:last-child {
  max-width: 44ch;
}

.homepage-testimonials {
  display: grid;
  gap: 1.5rem;
  padding: clamp(2rem, 3vw, 2.8rem);
  border-radius: 34px;
  background:
    linear-gradient(180deg, rgba(244, 249, 255, 0.97), rgba(251, 253, 255, 0.99)),
    linear-gradient(145deg, rgba(126, 167, 219, 0.06), rgba(41, 79, 128, 0.03));
  border: 1px solid color-mix(in srgb, var(--logo-primary) 10%, transparent);
  box-shadow: 0 22px 50px rgba(41, 79, 128, 0.06);
}

.homepage-testimonial-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(300px, 0.85fr);
  gap: 1.2rem;
}

.homepage-quote-stack {
  display: grid;
  gap: 1.2rem;
}

.homepage-quote-card {
  margin: 0;
  display: grid;
  gap: 1rem;
  padding: 1.7rem 1.55rem;
  border-radius: 26px;
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid color-mix(in srgb, var(--logo-primary) 9%, transparent);
  box-shadow: 0 16px 34px rgba(41, 79, 128, 0.06);
}

.homepage-quote-featured {
  align-content: center;
  padding: clamp(1.8rem, 3.2vw, 2.9rem);
}

.homepage-quote-card p {
  margin: 0;
  font-size: 1.06rem;
  line-height: 1.9;
}

.homepage-quote-featured p {
  font-size: clamp(1.18rem, 2vw, 1.5rem);
  line-height: 1.8;
}

.homepage-quote-card footer {
  color: var(--primary-dark);
  font-size: 0.84rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.homepage-cta-strip {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 0.72fr);
  gap: clamp(1.4rem, 2.8vw, 2.6rem);
  align-items: center;
  padding: clamp(1.8rem, 3vw, 2.8rem);
  border-radius: 34px;
  background: linear-gradient(160deg, rgba(24, 56, 93, 0.98), rgba(41, 79, 128, 0.98));
  color: #fff;
  box-shadow: 0 30px 60px rgba(24, 56, 93, 0.2);
}

.homepage-cta-strip .eyebrow,
.homepage-cta-strip h2,
.homepage-cta-strip p,
.homepage-cta-strip span {
  color: #fff;
}

.homepage-cta-copy {
  display: grid;
  gap: 0.9rem;
}

.homepage-cta-copy h2 {
  font-size: clamp(2.4rem, 4.2vw, 4.4rem);
  line-height: 1.02;
  margin-bottom: 0;
}

.homepage-cta-copy p:last-of-type {
  max-width: 48ch;
  color: rgba(255, 255, 255, 0.78);
}

.homepage-cta-actions {
  margin-top: 0.3rem;
}

.homepage-cta-actions .button-primary {
  background: #fff;
  color: var(--primary-dark);
  border-color: transparent;
}

.homepage-cta-actions .button-primary:hover {
  background: rgba(255, 255, 255, 0.9);
  color: var(--primary-dark);
}

.homepage-cta-actions .button-secondary {
  background: transparent;
  color: #fff;
  border-color: rgba(255, 255, 255, 0.26);
}

.homepage-cta-actions .button-secondary:hover {
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
}

.homepage-cta-trust {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.9rem;
}

.homepage-cta-trust span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 70px;
  padding: 1rem 1.1rem;
  text-align: center;
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.12);
  font-size: 0.92rem;
  font-weight: 700;
  letter-spacing: 0.04em;
}

.homepage-cta-trust span:last-child {
  grid-column: 1 / -1;
}

@media (min-width: 1920px) {
  .homepage-hero-grid {
    grid-template-columns: minmax(0, 0.9fr) minmax(420px, 1.1fr);
  }

  .homepage-hero-copy h1 {
    font-size: clamp(4.2rem, 5vw, 6.7rem);
  }

  .homepage-service-card {
    grid-template-columns: minmax(360px, 0.9fr) minmax(0, 1.1fr);
  }
}

@media (max-width: 1180px) {
  .homepage-hero-grid,
  .homepage-cta-strip,
  .homepage-testimonial-layout {
    grid-template-columns: 1fr;
  }

  .homepage-hero-copy {
    justify-items: center;
    text-align: center;
  }

  .homepage-hero-copy .lead,
  .homepage-announcement,
  .homepage-service-copy p:last-child,
  .homepage-cta-copy p:last-of-type {
    max-width: none;
  }

  .homepage-hero-actions,
  .homepage-cta-actions {
    justify-content: center;
  }

  .homepage-hero-copy h1 {
    max-width: none;
  }

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

  .homepage-cta-trust span:last-child {
    grid-column: auto;
  }
}

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

  .homepage-service-card,
  .homepage-service-card.is-reversed {
    grid-template-columns: 1fr;
  }

  .homepage-service-card.is-reversed .homepage-service-media,
  .homepage-service-card.is-reversed .homepage-service-copy {
    order: initial;
  }

  .homepage-service-media {
    min-height: 280px;
  }
}

@media (max-width: 760px) {
  .home-shell .topbar {
    min-height: 74px;
    padding: 10px 12px;
    border-radius: 0 0 18px 18px;
  }

  .home-shell .brand {
    margin-left: 0;
  }

  .home-shell .brand img {
    width: clamp(136px, 38vw, 168px);
  }

  .home-shell .nav {
    background: rgba(255, 255, 255, 0.98);
    border: 1px solid color-mix(in srgb, var(--logo-primary) 12%, transparent);
    box-shadow: 0 20px 34px rgba(41, 79, 128, 0.12);
  }

  .homepage-hero,
  .homepage-why,
  .homepage-testimonials,
  .homepage-cta-strip {
    border-radius: 24px;
    padding: 1.35rem;
  }

  .homepage-hero-copy,
  .homepage-service-copy,
  .homepage-cta-copy {
    justify-items: stretch;
    text-align: left;
  }

  .homepage-hero-actions,
  .homepage-cta-actions {
    justify-content: stretch;
  }

  .homepage-hero-actions .button,
  .homepage-cta-actions .button,
  .homepage-secondary-button {
    width: 100%;
  }

  .homepage-announcement {
    justify-items: center;
  }

  .homepage-hero-copy h1 {
    font-size: clamp(2.6rem, 12vw, 4rem);
  }

  .homepage-hero-media {
    min-height: 290px;
    border-radius: 26px;
  }

  .homepage-hero-media img,
  .homepage-service-media img {
    border-radius: 26px;
  }

  .homepage-why-grid,
  .homepage-cta-trust {
    grid-template-columns: 1fr;
  }

  .homepage-service-card {
    padding: 1rem;
    border-radius: 24px;
  }

  .homepage-service-media {
    min-height: 240px;
    border-radius: 22px;
  }

  .homepage-service-copy h3 {
    font-size: clamp(1.8rem, 8vw, 2.4rem);
  }

  .homepage-quote-featured p,
  .homepage-quote-card p {
    font-size: 1rem;
  }

  .homepage-quote-card {
    padding: 1.35rem;
    border-radius: 20px;
  }
}

/* Interior boutique system */
.site-shell:not(.home-shell) .page-main {
  display: grid;
  gap: clamp(1.25rem, 1.8vw, 2rem);
  width: 100%;
}

.site-shell:not(.home-shell) .topbar {
  min-height: 82px;
  padding: 10px 16px;
  gap: 1.35rem;
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid color-mix(in srgb, var(--logo-primary) 10%, transparent);
  border-radius: 26px;
  box-shadow: 0 18px 40px rgba(41, 79, 128, 0.08);
  backdrop-filter: blur(16px);
}

.site-shell:not(.home-shell) .brand img {
  width: clamp(150px, 12vw, 192px);
}

.site-shell:not(.home-shell) .nav {
  gap: 1.25rem;
}

.site-shell:not(.home-shell) .nav a,
.site-shell:not(.home-shell) .nav-dropdown-toggle {
  min-height: 34px;
  font-size: 0.67rem;
  font-weight: 600;
  letter-spacing: 0.14em;
}

.site-shell:not(.home-shell) .topbar-cta {
  min-height: 46px;
  padding: 0.72rem 1.2rem;
  font-size: 0.72rem;
  letter-spacing: 0.12em;
}

.site-shell:not(.home-shell) .page-main > .page-hero,
.site-shell:not(.home-shell) .page-main > .page-hero-block,
.site-shell:not(.home-shell) .page-main > .section {
  position: relative;
  width: 100%;
}

.site-shell:not(.home-shell) .page-main > .section {
  padding: clamp(1.4rem, 2.2vw, 2.5rem) 0;
}

.site-shell:not(.home-shell) .page-main > .section::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 34px;
  background: linear-gradient(180deg, rgba(126, 167, 219, 0.08), rgba(255, 255, 255, 0));
  opacity: 0;
  pointer-events: none;
}

.site-shell:not(.home-shell) .page-main > .section:nth-of-type(even)::before {
  opacity: 1;
}

.site-shell:not(.home-shell) .page-main > .section > *,
.site-shell:not(.home-shell) .page-main > .page-hero > *,
.site-shell:not(.home-shell) .page-main > .page-hero-block > * {
  position: relative;
  z-index: 1;
}

.site-shell:not(.home-shell) .page-hero,
.site-shell:not(.home-shell) .page-hero-block {
  overflow: hidden;
  border-radius: 38px;
  border: 1px solid rgba(41, 79, 128, 0.08);
  box-shadow: 0 24px 54px rgba(31, 63, 102, 0.1);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.99), rgba(242, 248, 255, 0.96)),
    linear-gradient(145deg, rgba(126, 167, 219, 0.08), rgba(41, 79, 128, 0.04));
}

.site-shell:not(.home-shell) .page-hero {
  padding: clamp(3rem, 4vw, 4.4rem) clamp(1rem, 2vw, 1.5rem);
}

.site-shell:not(.home-shell) .page-hero-block {
  padding: clamp(3.25rem, 4vw, 4.6rem) clamp(1.2rem, 2.5vw, 2rem);
}

.site-shell:not(.home-shell) .page-hero::before,
.site-shell:not(.home-shell) .page-hero-block::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at top left, rgba(126, 167, 219, 0.18), transparent 34%),
    radial-gradient(circle at bottom right, rgba(41, 79, 128, 0.08), transparent 28%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.62), rgba(255, 255, 255, 0));
}

.site-shell:not(.home-shell) .page-hero::after,
.site-shell:not(.home-shell) .page-hero-block::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(41, 79, 128, 0.2), transparent);
}

.site-shell:not(.home-shell) .service-detail-hero,
.site-shell:not(.home-shell) .page-hero-block {
  display: grid;
  justify-items: center;
  text-align: center;
}

.site-shell:not(.home-shell) .service-detail-hero h1,
.site-shell:not(.home-shell) .page-hero-block h1,
.site-shell:not(.home-shell) .page-hero-block h2 {
  max-width: 14ch;
  font-size: clamp(2.8rem, 4.4vw, 5rem);
  line-height: 0.98;
  letter-spacing: -0.05em;
  margin-bottom: 0.95rem;
}

.site-shell:not(.home-shell) .service-detail-hero .lead,
.site-shell:not(.home-shell) .page-hero-block p:last-child {
  max-width: 58ch;
  font-size: clamp(1.02rem, 1.4vw, 1.18rem);
  line-height: 1.8;
  color: rgba(36, 52, 71, 0.78);
}

.site-shell:not(.home-shell) .section-heading,
.site-shell:not(.home-shell) .section-heading.left-align {
  margin-bottom: clamp(1.4rem, 2.2vw, 2.4rem);
}

.site-shell:not(.home-shell) .section-heading h2,
.site-shell:not(.home-shell) .service-detail-panel h2,
.site-shell:not(.home-shell) .resource-card h2,
.site-shell:not(.home-shell) .page-panel h2,
.site-shell:not(.home-shell) .pricing-card h3,
.site-shell:not(.home-shell) .steps-card h2,
.site-shell:not(.home-shell) .contact-info-card h2,
.site-shell:not(.home-shell) .secure-card h2,
.site-shell:not(.home-shell) .cta-box h2 {
  max-width: none;
}

.site-shell:not(.home-shell) .service-detail-grid,
.site-shell:not(.home-shell) .resource-grid,
.site-shell:not(.home-shell) .contact-layout,
.site-shell:not(.home-shell) .intake-layout {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch;
  gap: clamp(1.3rem, 2.1vw, 2.2rem);
}

.site-shell:not(.home-shell) .intake-layout {
  gap: clamp(2.4rem, 3.4vw, 3.8rem);
  padding-inline: clamp(0.35rem, 1vw, 0.85rem);
}

.site-shell:not(.home-shell) .intake-full-width {
  grid-column: 1 / -1;
}

.site-shell:not(.home-shell) .intake-privacy-note {
  margin: -0.65rem 0 0;
  color: var(--muted);
  font-size: 0.96rem;
  line-height: 1.7;
}

.site-shell:not(.home-shell) .pricing-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1.2rem, 2vw, 2rem);
}

.site-shell:not(.home-shell) .clinic-model-card {
  grid-column: 1 / -1;
}

.site-shell:not(.home-shell) .service-detail-panel,
.site-shell:not(.home-shell) .resource-card,
.site-shell:not(.home-shell) .page-panel,
.site-shell:not(.home-shell) .pricing-card,
.site-shell:not(.home-shell) .steps-card,
.site-shell:not(.home-shell) .contact-info-card,
.site-shell:not(.home-shell) .secure-card,
.site-shell:not(.home-shell) .cta-box,
.site-shell:not(.home-shell) .service-card {
  border-radius: 30px;
  border: 1px solid rgba(41, 79, 128, 0.08);
  box-shadow: 0 18px 38px rgba(31, 63, 102, 0.08);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(243, 248, 255, 0.96)),
    linear-gradient(145deg, rgba(126, 167, 219, 0.08), rgba(41, 79, 128, 0.04));
}

.site-shell:not(.home-shell) .cta-box,
.site-shell:not(.home-shell) .contact-info-card.intake-full-width,
.site-shell:not(.home-shell) .steps-card.intake-full-width,
.site-shell:not(.home-shell) .about-full-panel,
.site-shell:not(.home-shell) .service-list.service-grid .service-card:first-child {
  background:
    linear-gradient(180deg, rgba(41, 79, 128, 0.98), rgba(24, 56, 93, 0.98)),
    linear-gradient(145deg, rgba(126, 167, 219, 0.16), rgba(255, 255, 255, 0.04));
  border: 1px solid rgba(255, 255, 255, 0.12);
  box-shadow: 0 28px 60px rgba(24, 56, 93, 0.18);
}

.site-shell:not(.home-shell) .cta-box .eyebrow,
.site-shell:not(.home-shell) .contact-info-card.intake-full-width .eyebrow,
.site-shell:not(.home-shell) .steps-card.intake-full-width .eyebrow,
.site-shell:not(.home-shell) .about-full-panel .eyebrow,
.site-shell:not(.home-shell) .service-list.service-grid .service-card:first-child .service-kicker {
  color: rgba(255, 255, 255, 0.82);
}

.site-shell:not(.home-shell) .cta-box h2,
.site-shell:not(.home-shell) .contact-info-card.intake-full-width h2,
.site-shell:not(.home-shell) .steps-card.intake-full-width h2,
.site-shell:not(.home-shell) .about-full-panel h2,
.site-shell:not(.home-shell) .service-list.service-grid .service-card:first-child h3 {
  color: #fff;
}

.site-shell:not(.home-shell) .cta-box p,
.site-shell:not(.home-shell) .contact-info-card.intake-full-width p,
.site-shell:not(.home-shell) .steps-card.intake-full-width p,
.site-shell:not(.home-shell) .about-full-panel p,
.site-shell:not(.home-shell) .contact-info-card.intake-full-width .contact-list,
.site-shell:not(.home-shell) .contact-info-card.intake-full-width .contact-list li,
.site-shell:not(.home-shell) .steps-card.intake-full-width .steps-list,
.site-shell:not(.home-shell) .steps-card.intake-full-width .steps-list li,
.site-shell:not(.home-shell) .service-list.service-grid .service-card:first-child p:not(.service-kicker) {
  color: rgba(255, 255, 255, 0.82);
}

.site-shell:not(.home-shell) .contact-info-card.intake-full-width a,
.site-shell:not(.home-shell) .service-list.service-grid .service-card:first-child .text-link {
  color: #fff;
}

.site-shell:not(.home-shell) .steps-card.intake-full-width strong,
.site-shell:not(.home-shell) .contact-info-card.intake-full-width strong {
  color: #fff;
}

.site-shell:not(.home-shell) .steps-card.intake-full-width .steps-list li,
.site-shell:not(.home-shell) .contact-info-card.intake-full-width .contact-list li {
  border-color: rgba(255, 255, 255, 0.16);
}

.site-shell:not(.home-shell) .service-list.service-grid .service-card:first-child .service-icon {
  background: rgba(255, 255, 255, 0.12);
  border-color: rgba(255, 255, 255, 0.16);
  color: #fff;
  box-shadow: none;
}

.site-shell:not(.home-shell) .service-detail-panel,
.site-shell:not(.home-shell) .resource-card,
.site-shell:not(.home-shell) .page-panel,
.site-shell:not(.home-shell) .pricing-card,
.site-shell:not(.home-shell) .steps-card,
.site-shell:not(.home-shell) .contact-info-card,
.site-shell:not(.home-shell) .secure-card {
  padding: clamp(1.55rem, 2.2vw, 2.3rem);
}

.site-shell:not(.home-shell) .service-detail-panel p,
.site-shell:not(.home-shell) .resource-card p,
.site-shell:not(.home-shell) .page-panel p,
.site-shell:not(.home-shell) .pricing-card p,
.site-shell:not(.home-shell) .steps-card p,
.site-shell:not(.home-shell) .contact-info-card p,
.site-shell:not(.home-shell) .secure-card p,
.site-shell:not(.home-shell) .service-card p {
  max-width: none;
}

.site-shell:not(.home-shell) .service-detail-panel p + p,
.site-shell:not(.home-shell) .resource-card p + p,
.site-shell:not(.home-shell) .page-panel p + p,
.site-shell:not(.home-shell) .pricing-card p + p,
.site-shell:not(.home-shell) .steps-card p + p,
.site-shell:not(.home-shell) .contact-info-card p + p,
.site-shell:not(.home-shell) .secure-card p + p {
  margin-top: 0.95rem;
}

.site-shell:not(.home-shell) .resource-list {
  display: grid;
  gap: 0.85rem;
  padding-left: 1.2rem;
}

.site-shell:not(.home-shell) .resource-list li {
  line-height: 1.75;
}

.site-shell:not(.home-shell) .resource-list li::marker {
  color: var(--logo-primary);
}

.site-shell:not(.home-shell) .resource-followup {
  margin-top: 1.25rem;
}

.site-shell:not(.home-shell) .resource-list + p,
.site-shell:not(.home-shell) .resource-list + .resource-followup {
  margin-top: 1.25rem;
}

.site-shell:not(.home-shell) .page-main img {
  border-radius: 28px;
  box-shadow: 0 20px 42px rgba(31, 63, 102, 0.12);
}

.service-icon-footprints {
  display: none;
}

.service-icon img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  border-radius: 10px;
  box-shadow: none;
}

.site-shell:not(.home-shell) .service-detail-sidebar {
  display: flex;
}

.site-shell:not(.home-shell) .service-detail-sidebar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.site-shell:not(.home-shell) .soft-band {
  background: transparent;
}

.site-shell:not(.home-shell) .cta-box {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1.25rem;
  align-items: center;
  padding: clamp(1.6rem, 2.5vw, 2.4rem);
}

.site-shell:not(.home-shell) .cta-box p {
  max-width: 54ch;
}

.site-shell:not(.home-shell) .cta-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.9rem;
  align-items: center;
}

.site-shell:not(.home-shell) .secure-card .cta-actions {
  margin-top: 1rem;
}

.site-shell:not(.home-shell) .cta-box .button-secondary,
.site-shell:not(.home-shell) .contact-info-card.intake-full-width .button-secondary,
.site-shell:not(.home-shell) .steps-card.intake-full-width .button-secondary {
  background: transparent;
  color: #fff;
  border-color: rgba(255, 255, 255, 0.28);
  box-shadow: none;
}

.site-shell:not(.home-shell) .cta-box .button-secondary:hover,
.site-shell:not(.home-shell) .contact-info-card.intake-full-width .button-secondary:hover,
.site-shell:not(.home-shell) .steps-card.intake-full-width .button-secondary:hover {
  background: rgba(255, 255, 255, 0.1);
  color: #fff;
  border-color: rgba(255, 255, 255, 0.34);
}

.site-shell:not(.home-shell) .cta-box .button-primary,
.site-shell:not(.home-shell) .contact-info-card.intake-full-width .button-primary,
.site-shell:not(.home-shell) .steps-card.intake-full-width .button-primary {
  background: #fff;
  color: var(--primary-dark);
  border-color: transparent;
  box-shadow: none;
}

.site-shell:not(.home-shell) .cta-box .button-primary:hover,
.site-shell:not(.home-shell) .contact-info-card.intake-full-width .button-primary:hover,
.site-shell:not(.home-shell) .steps-card.intake-full-width .button-primary:hover {
  background: rgba(255, 255, 255, 0.92);
  color: var(--primary-dark);
}

.site-shell:not(.home-shell) .services-category {
  display: grid;
  gap: clamp(1.4rem, 2vw, 2rem);
}

.site-shell:not(.home-shell) .service-list.service-grid {
  gap: clamp(1.2rem, 1.8vw, 1.8rem);
}

.site-shell:not(.home-shell) .service-list .service-card {
  min-height: 100%;
  padding: clamp(1.35rem, 2vw, 1.9rem);
}

.site-shell:not(.home-shell) .service-list.service-grid .service-card.full-width {
  grid-column: 1 / -1;
}

.site-shell:not(.home-shell) .service-list .service-card .bubble {
  display: none;
}

.site-shell:not(.home-shell) .service-card-content {
  gap: 1rem;
}

.site-shell:not(.home-shell) .service-icon {
  width: 3.4rem;
  height: 3.4rem;
  border-radius: 18px;
  background: linear-gradient(180deg, rgba(126, 167, 219, 0.18), rgba(41, 79, 128, 0.08));
  color: var(--logo-primary);
}

.site-shell:not(.home-shell) .service-kicker {
  color: rgba(36, 52, 71, 0.7);
}

.site-shell:not(.home-shell) .service-card .text-link {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0.2rem 0;
  font-weight: 700;
}

.site-shell:not(.home-shell) .about-main {
  gap: clamp(1.25rem, 1.8vw, 1.8rem);
}

.site-shell:not(.home-shell) .about-therapist-section,
.site-shell:not(.home-shell) .about-stack-section {
  padding-top: 0;
  padding-bottom: 0;
}

.site-shell:not(.home-shell) .about-therapist-section {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1.1rem, 1.8vw, 1.5rem);
}

.site-shell:not(.home-shell) .about-stack-section {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1.1rem, 1.8vw, 1.5rem);
}

.site-shell:not(.home-shell) .about-full-panel,
.site-shell:not(.home-shell) .about-therapist-panel {
  width: 100%;
}

.site-shell:not(.home-shell) .about-stack-section .about-full-panel {
  grid-column: 1 / -1;
}

.site-shell:not(.home-shell) .about-full-panel h2,
.site-shell:not(.home-shell) .about-full-panel p,
.site-shell:not(.home-shell) .about-full-panel .section-stack,
.site-shell:not(.home-shell) .about-full-panel .section-stack > div,
.site-shell:not(.home-shell) .about-therapist-panel p {
  max-width: none;
  width: 100%;
}

.site-shell:not(.home-shell) .about-full-panel .section-stack {
  gap: 1.1rem;
}

.site-shell:not(.home-shell) .about-full-panel .section-stack > div {
  display: grid;
  gap: 0.45rem;
}

.site-shell:not(.home-shell) .about-philosophy-photo {
  margin: 0;
  height: 100%;
}

.site-shell:not(.home-shell) .about-photo-panel {
  display: block;
  padding: 0;
  overflow: hidden;
}

.site-shell:not(.home-shell) .about-philosophy-photo img {
  width: 100%;
  max-width: none;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  height: 100%;
  display: block;
  border-radius: 0;
  box-shadow: none;
}

.site-shell:not(.home-shell) .about-stack-section .cta-band {
  display: grid;
  grid-template-columns: 1fr;
  align-items: stretch;
  grid-column: 1 / -1;
  width: 100%;
}

.site-shell:not(.home-shell) .about-stack-section .cta-band .cta-actions {
  justify-content: flex-start;
}

.site-shell:not(.home-shell) .contact-layout .contact-info-card,
.site-shell:not(.home-shell) .contact-layout .secure-card,
.site-shell:not(.home-shell) .resource-grid .resource-card,
.site-shell:not(.home-shell) .pricing-grid .pricing-card {
  height: 100%;
}

.site-shell:not(.home-shell) .pricing-card,
.site-shell:not(.home-shell) .steps-card,
.site-shell:not(.home-shell) .contact-info-card,
.site-shell:not(.home-shell) .secure-card {
  backdrop-filter: blur(10px);
}

.site-shell:not(.home-shell) .steps-list {
  gap: 1rem;
}

.site-shell:not(.home-shell) .steps-list li {
  padding-bottom: 1rem;
  border-bottom: 1px solid rgba(41, 79, 128, 0.1);
}

.site-shell:not(.home-shell) .steps-list li:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

.site-shell:not(.home-shell) .site-footer {
  margin-top: clamp(2.5rem, 4vw, 4rem);
}

@media (min-width: 1440px) {
  .site-shell:not(.home-shell) .service-list.service-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .site-shell:not(.home-shell) .page-hero,
  .site-shell:not(.home-shell) .page-hero-block {
    border-radius: 42px;
  }
}

@media (min-width: 1920px) {
  .site-shell:not(.home-shell) .service-detail-hero h1,
  .site-shell:not(.home-shell) .page-hero-block h1,
  .site-shell:not(.home-shell) .page-hero-block h2 {
    font-size: clamp(3.4rem, 4.4vw, 5.7rem);
  }
}

@media (max-width: 1023px) {
  .site-shell:not(.home-shell) .pricing-grid,
  .site-shell:not(.home-shell) .about-stack-section,
  .site-shell:not(.home-shell) .about-therapist-section,
  .site-shell:not(.home-shell) .service-detail-grid,
  .site-shell:not(.home-shell) .resource-grid,
  .site-shell:not(.home-shell) .contact-layout,
  .site-shell:not(.home-shell) .intake-layout,
  .site-shell:not(.home-shell) .cta-box {
    grid-template-columns: 1fr;
  }

  .site-shell:not(.home-shell) .cta-box {
    align-items: stretch;
  }

  .site-shell:not(.home-shell) .service-detail-sidebar {
    min-height: 320px;
  }

  .site-shell:not(.home-shell) .about-philosophy-photo img {
    height: 100%;
  }
}

@media (max-width: 767px) {
  .site-shell:not(.home-shell) .page-main {
    gap: 1rem;
  }

  .site-shell:not(.home-shell) .topbar {
    min-height: 74px;
    padding: 10px 12px;
    border-radius: 0 0 18px 18px;
  }

  .site-shell:not(.home-shell) .brand img {
    width: clamp(136px, 38vw, 168px);
  }

  .site-shell:not(.home-shell) .nav {
    background: rgba(255, 255, 255, 0.98);
    border: 1px solid color-mix(in srgb, var(--logo-primary) 12%, transparent);
    box-shadow: 0 20px 34px rgba(41, 79, 128, 0.12);
  }

  .site-shell:not(.home-shell) .page-main > .section {
    padding: 1rem 0;
  }

  .site-shell:not(.home-shell) .page-hero,
  .site-shell:not(.home-shell) .page-hero-block,
  .site-shell:not(.home-shell) .service-detail-panel,
  .site-shell:not(.home-shell) .resource-card,
  .site-shell:not(.home-shell) .page-panel,
  .site-shell:not(.home-shell) .pricing-card,
  .site-shell:not(.home-shell) .steps-card,
  .site-shell:not(.home-shell) .contact-info-card,
  .site-shell:not(.home-shell) .secure-card,
  .site-shell:not(.home-shell) .cta-box,
  .site-shell:not(.home-shell) .service-card {
    border-radius: 24px;
  }

  .site-shell:not(.home-shell) .page-hero {
    padding: 2.35rem 1rem;
  }

  .site-shell:not(.home-shell) .page-hero-block {
    padding: 2.5rem 1rem;
  }

  .site-shell:not(.home-shell) .service-detail-hero h1,
  .site-shell:not(.home-shell) .page-hero-block h1,
  .site-shell:not(.home-shell) .page-hero-block h2 {
    max-width: none;
    font-size: clamp(2.15rem, 9.4vw, 3.1rem);
  }

  .site-shell:not(.home-shell) .pricing-grid {
    grid-template-columns: 1fr;
  }

  .site-shell:not(.home-shell) .cta-actions .button,
  .site-shell:not(.home-shell) .service-card .text-link {
    width: 100%;
    justify-content: center;
  }

  .site-shell:not(.home-shell) .service-detail-sidebar {
    min-height: 240px;
  }
}

/* Final mobile layout hardening */
*,
*::before,
*::after {
  box-sizing: border-box;
}

@media (max-width: 767px) {
  html,
  body {
    overflow-x: hidden;
  }

  .site-shell,
  .home-shell,
  .site-shell:not(.home-shell) {
    width: 100%;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    padding-inline: 10px;
  }

  .page-main,
  .home-main,
  .boutique-home-main {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
  }

  .page-hero-block,
  .homepage-hero,
  .homepage-why,
  .homepage-services,
  .homepage-testimonials,
  .homepage-cta-strip,
  .site-shell:not(.home-shell) .page-main > .section,
  .site-shell:not(.home-shell) .page-main > .page-hero-block {
    width: 100%;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
  }

  .section-heading,
  .section-heading.left-align,
  .services-category .section-heading,
  .homepage-why .section-heading,
  .homepage-services .section-heading {
    max-width: none;
    text-align: center;
    margin-left: auto;
    margin-right: auto;
  }

  .section-heading p,
  .section-heading h2,
  .section-heading.left-align p,
  .section-heading.left-align h2 {
    max-width: none;
    margin-left: auto;
    margin-right: auto;
  }

  .homepage-hero-grid,
  .homepage-why-grid,
  .homepage-service-stack,
  .homepage-testimonial-layout,
  .homepage-cta-strip,
  .service-list.service-grid,
  .service-grid,
  .pricing-grid,
  .contact-layout,
  .intake-layout,
  .resource-grid,
  .service-detail-grid,
  .about-stack-section,
  .about-therapist-section,
  .footer-grid {
    grid-template-columns: 1fr !important;
  }

  .homepage-hero-copy,
  .homepage-service-copy,
  .homepage-cta-copy,
  .site-shell:not(.home-shell) .service-card-content,
  .site-shell:not(.home-shell) .cta-box,
  .site-shell:not(.home-shell) .contact-info-card,
  .site-shell:not(.home-shell) .secure-card,
  .site-shell:not(.home-shell) .pricing-card,
  .site-shell:not(.home-shell) .steps-card {
    justify-items: center;
    text-align: center;
  }

  .homepage-service-card,
  .homepage-why-card,
  .homepage-quote-card,
  .service-card,
  .contact-info-card,
  .secure-card,
  .pricing-card,
  .steps-card,
  .resource-card,
  .page-panel,
  .service-detail-panel,
  .cta-box {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin-left: auto;
    margin-right: auto;
  }

  .homepage-service-media,
  .homepage-service-media img,
  .service-detail-sidebar,
  .service-detail-sidebar img,
  .about-photo-panel,
  .about-photo-panel img {
    width: 100%;
    max-width: 100%;
  }

  .cta-actions,
  .homepage-hero-actions {
    justify-content: center;
  }

  .cta-actions .button,
  .homepage-hero-actions .button,
  .site-shell:not(.home-shell) .service-card .text-link {
    width: 100%;
    max-width: 100%;
    justify-content: center;
  }

  .nav,
  .nav.open,
  .dropdown-menu {
    max-width: 100%;
  }
}

@media (max-width: 767px) {
  body.mobile-menu-open {
    overflow: hidden;
    position: fixed;
    inset: 0;
    width: 100%;
  }

  .menu-toggle {
    position: relative;
    z-index: 1202;
    min-width: 98px;
    justify-content: center;
    gap: 0;
  }

  .menu-toggle.is-open {
    background: #ffffff;
    border-color: rgba(47, 87, 145, 0.18);
    box-shadow: 0 14px 34px rgba(33, 55, 91, 0.12);
    color: transparent;
  }

  .menu-toggle.is-open::after {
    content: "X";
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    font-size: 1rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    color: var(--logo-primary);
  }

  .nav {
    display: none !important;
  }

  .mobile-nav-panel {
    position: fixed;
    top: var(--mobile-nav-offset, 78px);
    right: 0;
    left: 0;
    bottom: 0;
    z-index: 1200;
    background: rgba(255, 255, 255, 0.98);
    backdrop-filter: blur(8px);
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(-16px);
    transition:
      opacity 0.28s ease,
      transform 0.32s ease,
      visibility 0.28s ease;
  }

  .mobile-nav-panel.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
  }

  .mobile-nav-inner {
    min-height: calc(100dvh - var(--mobile-nav-offset, 78px));
    padding: 1rem 1rem 2rem;
    display: flex;
    flex-direction: column;
    gap: 1rem;
  }

  .mobile-nav-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 54px;
    padding: 0.95rem 1.2rem;
    border-radius: 18px;
    background: var(--logo-primary);
    color: #fff;
    font-size: 0.9rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    text-decoration: none;
    box-shadow: 0 18px 34px rgba(33, 55, 91, 0.14);
  }

  .mobile-nav-list {
    display: flex;
    flex-direction: column;
    width: 100%;
    border-top: 1px solid rgba(47, 87, 145, 0.12);
  }

  .mobile-nav-link,
  .mobile-accordion-trigger {
    width: 100%;
    min-height: 62px;
    padding: 1.05rem 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    border: 0;
    border-bottom: 1px solid rgba(47, 87, 145, 0.12);
    background: transparent;
    color: var(--logo-primary);
    text-decoration: none;
    font-size: 1.15rem;
    font-weight: 800;
    letter-spacing: 0.01em;
    text-align: left;
    cursor: pointer;
  }

  .mobile-nav-group {
    width: 100%;
  }

  .mobile-chevron {
    width: 0.7rem;
    height: 0.7rem;
    border-right: 2px solid var(--logo-primary);
    border-bottom: 2px solid var(--logo-primary);
    transform: rotate(45deg);
    transition: transform 0.24s ease;
    flex-shrink: 0;
    margin-right: 0.25rem;
  }

  .mobile-accordion-trigger[aria-expanded="true"] .mobile-chevron {
    transform: rotate(-135deg);
    margin-top: 0.2rem;
  }

  .mobile-accordion-panel {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.28s ease;
    background: #fff;
  }

  .mobile-nav-sublink {
    display: block;
    width: 100%;
    padding: 0.85rem 0 0.85rem 1rem;
    border-bottom: 1px solid rgba(47, 87, 145, 0.1);
    color: rgba(37, 53, 79, 0.92);
    text-decoration: none;
    font-size: 0.98rem;
    font-weight: 700;
    line-height: 1.45;
  }

  .mobile-nav-sublink:last-child {
    margin-bottom: 0.2rem;
  }

  .mobile-nav-link:focus-visible,
  .mobile-nav-sublink:focus-visible,
  .mobile-accordion-trigger:focus-visible,
  .mobile-nav-cta:focus-visible {
    outline: 2px solid rgba(74, 143, 234, 0.55);
    outline-offset: 4px;
    border-radius: 12px;
  }

.mobile-nav-link:hover,
.mobile-nav-sublink:hover,
.mobile-accordion-trigger:hover {
  color: var(--primary);
}
}

@media (min-width: 768px) {
  .mobile-nav-panel {
    display: none !important;
  }
}
