:root {
  --color-bg: #f8fafc;
  --color-bg-warm: #fafaf9;
  --color-bg-hero: #f0fdfa;
  --color-surface: #ffffff;
  --color-border: #e2e8f0;
  --color-text: #0f172a;
  --color-text-muted: #64748b;
  --color-primary: #0d9488;
  --color-primary-hover: #0f766e;
  --color-primary-soft: #ccfbf1;
  --shadow-sm: 0 1px 2px rgba(15, 23, 42, 0.05);
  --shadow-md: 0 4px 12px rgba(15, 23, 42, 0.08);
  --radius: 12px;
  --sidebar-width: 216px;
  --content-max: 1520px;
  /* Public landing column — header, sticky search, results, footer */
  --page-column: 1200px;
  --page-gutter: 1.25rem;
  --font: "Inter", system-ui, -apple-system, sans-serif;

  /* Professional type scale — prefer these over one-off sizes */
  --text-xs: 0.6875rem;
  --text-sm: 0.75rem;
  --text-md: 0.8125rem;
  --text-base: 0.875rem;
  --text-lead: 0.875rem;
  --text-section: 0.9375rem;
  --text-h1-compact: 1.125rem;
  --text-h1: 1.2rem;
  --text-h1-home: 1.3rem;
  --text-detail: 1.2rem;
  --text-metric: 1.5rem;
  --font-weight-normal: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;

  /* Shared pills / chips / buttons */
  --radius-pill: 999px;
  --pill-pad-y: 0.38rem;
  --pill-pad-x: 0.8rem;
  --pill-pad-y-sm: 0.28rem;
  --pill-pad-x-sm: 0.65rem;
  --pill-font: var(--text-sm);
  --pill-font-sm: var(--text-xs);
  --pill-weight: var(--font-weight-semibold);
  --pill-line: 1.2;

  /* Soft teal action (header chips, sidebar actions) */
  --pill-soft-bg: var(--color-primary-soft);
  --pill-soft-bg-hover: #99f6e4;
  --pill-soft-border: var(--color-primary);
  --pill-soft-border-hover: var(--color-primary-hover);
  --pill-soft-text: var(--color-primary-hover);
  --pill-soft-text-hover: #115e59;

  /* Selectable / filter chips */
  --chip-bg: var(--color-surface);
  --chip-border: var(--color-border);
  --chip-text: var(--color-text);
  --chip-hover-bg: var(--color-primary-soft);
  --chip-hover-border: var(--color-primary);
  --chip-hover-text: var(--color-primary-hover);
  --chip-active-bg: var(--color-primary-soft);
  --chip-active-border: var(--color-primary);
  --chip-active-text: var(--color-primary-hover);

  /* Meta / label chips */
  --chip-meta-bg: #f1f5f9;
  --chip-meta-text: var(--color-text-muted);
  --chip-category-bg: var(--color-primary-soft);
  --chip-category-text: var(--color-primary-hover);

  /* Semantic insight chips */
  --chip-outcome-bg: #ecfdf5;
  --chip-outcome-text: #134e4a;
  --chip-outcome-border: rgba(13, 148, 136, 0.22);
  --chip-loved-bg: #eff6ff;
  --chip-loved-text: #1e3a8a;
  --chip-loved-border: rgba(37, 99, 235, 0.2);
  --chip-concern-bg: #fff7ed;
  --chip-concern-text: #9a3412;
  --chip-concern-border: rgba(234, 88, 12, 0.22);
}

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

html {
  font-size: 16px;
  position: relative;
  min-height: 100%;
  /* Keep left edge stable when Offers (short) has no scrollbar but Activities/Home do */
  scrollbar-gutter: stable;
}

body {
  margin: 0;
  font-family: var(--font);
  background: var(--color-bg);
  color: var(--color-text);
  line-height: 1.55;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

body.page-home {
  background: var(--color-bg-warm);
}

a {
  color: var(--color-primary);
  text-decoration: none;
}

a:hover {
  color: var(--color-primary-hover);
}

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}

/* Header */
.site-header {
  background: var(--color-surface);
  border-bottom: 1px solid var(--color-border);
  box-shadow: var(--shadow-sm);
}

.site-header__inner {
  max-width: var(--content-max);
  margin: 0 auto;
  padding: 1rem 1.5rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.site-brand {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  min-width: 0;
  color: inherit;
  text-decoration: none;
  flex: 0 1 auto;
}

.site-brand:hover {
  color: inherit;
  text-decoration: none;
}

.site-brand:hover .site-brand__mark {
  box-shadow: 0 0 0 2px var(--color-primary-soft);
}

.site-brand__mark {
  display: inline-flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 8px;
  overflow: hidden;
  line-height: 0;
}

.site-brand__mark-svg {
  display: block;
  width: 32px;
  height: 32px;
}

.site-brand__text {
  display: flex;
  flex-direction: column;
  min-width: 0;
  gap: 0.05rem;
}

.site-brand__name {
  font-family: var(--font);
  font-size: var(--text-h1-compact);
  font-weight: var(--font-weight-bold);
  letter-spacing: -0.02em;
  color: var(--color-text);
  line-height: 1.15;
}

.site-brand__tagline {
  font-family: var(--font);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-normal);
  color: var(--color-text-muted);
  line-height: 1.25;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 15rem;
}

@media (max-width: 480px) {
  .site-brand__tagline {
    display: none;
  }

  .site-brand__name {
    font-size: var(--text-section);
  }
}

.site-header__actions {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex: 0 0 auto;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.parent-auth__button {
  display: inline-flex;
  align-items: center;
  font-size: var(--pill-font);
  font-weight: var(--pill-weight);
  line-height: var(--pill-line);
  padding: var(--pill-pad-y) var(--pill-pad-x);
  border-radius: var(--radius-pill);
  background: var(--pill-soft-bg);
  border: 1px solid var(--pill-soft-border);
  color: var(--pill-soft-text);
  text-decoration: none;
  white-space: nowrap;
}

.parent-auth__button:hover {
  background: var(--pill-soft-bg-hover);
  border-color: var(--pill-soft-border-hover);
  color: var(--pill-soft-text-hover);
  text-decoration: none;
}

.parent-menu {
  position: relative;
}

.parent-menu__trigger {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.28rem 0.55rem 0.28rem 0.28rem;
  border: 1px solid var(--chip-border);
  border-radius: var(--radius-pill);
  background: var(--chip-bg);
  color: var(--chip-text);
  font-size: var(--pill-font);
  font-weight: var(--pill-weight);
  line-height: var(--pill-line);
  cursor: pointer;
}

.parent-menu__trigger:hover,
.parent-menu.is-open .parent-menu__trigger {
  border-color: var(--chip-hover-border);
  background: var(--chip-hover-bg);
  color: var(--chip-hover-text);
}

.parent-menu__avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.65rem;
  height: 1.65rem;
  border-radius: 999px;
  background: var(--color-primary);
  color: #fff;
  font-size: var(--text-xs);
  font-weight: var(--font-weight-bold);
}

.parent-menu__name {
  max-width: 7rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.parent-menu__caret {
  width: 0.35rem;
  height: 0.35rem;
  margin-right: 0.15rem;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg) translateY(-1px);
  opacity: 0.7;
}

.parent-menu.is-open .parent-menu__caret {
  transform: rotate(225deg) translateY(-1px);
}

.parent-menu__panel {
  position: absolute;
  top: calc(100% + 0.4rem);
  right: 0;
  z-index: 40;
  width: min(17.5rem, calc(100vw - 1.5rem));
  padding: 0.55rem 0;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  background: var(--color-surface);
  box-shadow: var(--shadow-md);
}

.parent-menu__meta {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  padding: 0.45rem 0.9rem;
}

.parent-menu__meta-label {
  font-size: var(--text-xs);
  font-weight: var(--font-weight-medium);
  color: var(--color-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.parent-menu__meta-value {
  font-size: var(--text-md);
  font-weight: var(--font-weight-medium);
  color: var(--color-text);
  overflow-wrap: anywhere;
}

.parent-menu__divider {
  height: 1px;
  margin: 0.35rem 0;
  background: var(--color-border);
}

.parent-menu__item {
  display: block;
  padding: 0.55rem 0.9rem;
  font-size: var(--text-md);
  font-weight: var(--font-weight-medium);
  color: var(--color-text);
  text-decoration: none;
}

.parent-menu__item:hover {
  background: var(--color-bg);
  color: var(--color-primary-hover);
  text-decoration: none;
}

.parent-menu__item--muted {
  color: var(--color-text-muted);
}

.parent-auth-banner {
  max-width: var(--content-max);
  margin: 0 auto;
  padding: 0.45rem 1.5rem;
  font-size: 0.8125rem;
  font-weight: 500;
  color: #134e4a;
  background: var(--color-primary-soft);
  border-bottom: 1px solid rgba(13, 148, 136, 0.2);
}

.parents-corner-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: var(--pill-font);
  font-weight: var(--pill-weight);
  line-height: var(--pill-line);
  padding: var(--pill-pad-y) var(--pill-pad-x);
  border-radius: var(--radius-pill);
  background: var(--pill-soft-bg);
  color: var(--pill-soft-text);
  border: 1px solid var(--pill-soft-border);
  text-decoration: none;
  white-space: nowrap;
}

.parents-corner-chip:hover {
  background: var(--pill-soft-bg-hover);
  border-color: var(--pill-soft-border-hover);
  color: var(--pill-soft-text-hover);
  text-decoration: none;
}

.location-pill {
  display: inline-flex;
  align-items: center;
  font-size: var(--pill-font);
  font-weight: var(--font-weight-medium);
  line-height: var(--pill-line);
  padding: var(--pill-pad-y-sm) var(--pill-pad-x-sm);
  border-radius: var(--radius-pill);
  background: var(--pill-soft-bg);
  color: var(--pill-soft-text);
  border: 1px solid transparent;
}

/* Shell */
.app-shell {
  flex: 1;
  max-width: var(--content-max);
  width: 100%;
  margin: 0 auto;
  padding: 1.5rem;
  display: grid;
  grid-template-columns: var(--sidebar-width) 1fr;
  gap: 1.5rem;
  align-items: start;
}

.app-main {
  min-width: 0;
}

.app-shell--no-sidebar {
  grid-template-columns: 1fr;
  max-width: var(--content-max);
}

/* Sidebar */
.category-sidebar {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  padding: 0.65rem 0.75rem;
  position: sticky;
  top: 1rem;
  align-self: start;
}

.sidebar-panel {
  border-bottom: 1px solid var(--color-border);
  padding-bottom: 0.65rem;
  margin-bottom: 0.65rem;
}

.sidebar-panel:last-child {
  border-bottom: none;
  margin-bottom: 0;
  padding-bottom: 0;
}

.sidebar-panel__summary {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  cursor: pointer;
  list-style: none;
  padding: 0.35rem 0.25rem;
  border-radius: 8px;
  user-select: none;
}

.sidebar-panel__summary::-webkit-details-marker {
  display: none;
}

.sidebar-panel__summary::after {
  content: "";
  width: 0.42rem;
  height: 0.42rem;
  margin-left: auto;
  border-right: 2px solid var(--color-text-muted);
  border-bottom: 2px solid var(--color-text-muted);
  transform: rotate(45deg);
  transition: transform 0.15s ease;
  flex-shrink: 0;
}

.sidebar-panel[open] .sidebar-panel__summary::after {
  transform: rotate(-135deg);
}

.sidebar-panel__summary:hover {
  background: var(--color-bg);
}

.sidebar-panel__count {
  font-size: 0.6875rem;
  font-weight: 600;
  line-height: 1;
  padding: 0.2rem 0.4rem;
  border-radius: 999px;
  background: var(--color-bg);
  color: var(--color-text-muted);
}

.sidebar-panel__body {
  padding: 0.15rem 0.25rem 0;
}

.sidebar-panel__scroll {
  overflow: visible;
}

.sidebar-panel__scroll.is-scrollable {
  max-height: min(16rem, calc(100dvh - 14rem));
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  scrollbar-width: thin;
  scrollbar-color: #cbd5e1 transparent;
  margin-right: -0.15rem;
  padding-right: 0.15rem;
}

.sidebar-panel__scroll.is-scrollable::-webkit-scrollbar {
  width: 6px;
}

.sidebar-panel__scroll.is-scrollable::-webkit-scrollbar-track {
  background: transparent;
}

.sidebar-panel__scroll.is-scrollable::-webkit-scrollbar-thumb {
  background: #cbd5e1;
  border-radius: 999px;
}

.sidebar-panel__scroll.is-scrollable::-webkit-scrollbar-thumb:hover {
  background: #94a3b8;
}

.sidebar-panel__toolbar {
  margin-bottom: 0.35rem;
}

/* Shared soft action buttons — sidebar expand, use my location, etc. */
.action-chip-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  padding: var(--pill-pad-y) var(--pill-pad-x);
  border: 1px solid var(--pill-soft-border);
  border-radius: var(--radius-pill);
  background: var(--pill-soft-bg);
  color: var(--pill-soft-text);
  font-size: var(--pill-font);
  font-weight: var(--pill-weight);
  line-height: var(--pill-line);
  cursor: pointer;
  text-align: center;
  white-space: nowrap;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.action-chip-btn:hover:not(:disabled) {
  background: var(--pill-soft-bg-hover);
  border-color: var(--pill-soft-border-hover);
  color: var(--pill-soft-text-hover);
}

.action-chip-btn:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
}

.action-chip-btn:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

.action-chip-btn--block {
  display: flex;
  width: 100%;
}

.sidebar-show-more {
  margin-top: 0.45rem;
}

.category-nav__list.is-truncated li:nth-child(n+7) {
  display: none;
}

.sidebar-motivation-list.is-truncated > .sidebar-motivation-tile:nth-child(n+6) {
  display: none;
}

.category-sidebar__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 0.75rem;
}

.category-sidebar__title {
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--color-text-muted);
  margin: 0;
}

.category-sidebar__all {
  font-size: 0.8rem;
  font-weight: 500;
}

.category-nav__list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.category-nav__link {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.4rem 0.5rem;
  border-radius: 8px;
  color: var(--color-text);
  font-size: 0.875rem;
  font-weight: 500;
}

.category-nav__link:hover {
  background: var(--color-bg);
  text-decoration: none;
  color: var(--color-text);
}

.category-nav__link.is-active {
  background: var(--color-primary-soft);
  color: var(--color-primary-hover);
}

.category-nav__dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--color-border);
  flex-shrink: 0;
}

.category-nav__link.is-active .category-nav__dot {
  background: var(--color-primary);
}

.category-sidebar__divider {
  display: none;
}

.sidebar-motivations {
  margin-top: 0;
}

.sidebar-motivation-list {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  margin-top: 0.15rem;
}

.sidebar-motivation-tile {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.32rem 0.4rem;
  border-radius: 8px;
  border: 1px solid transparent;
  background: transparent;
  text-decoration: none;
  color: inherit;
  transition: background 0.15s, border-color 0.15s;
}

.sidebar-motivation-tile:hover {
  background: var(--color-bg);
  text-decoration: none;
  color: inherit;
}

.sidebar-motivation-tile.is-active {
  background: var(--color-primary-soft);
}

.sidebar-motivation-tile__icon {
  flex-shrink: 0;
  width: 1.35rem;
  height: 1.35rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.85rem;
  line-height: 1;
  border-radius: 6px;
  background: var(--color-bg);
}

.sidebar-motivation-tile.is-active .sidebar-motivation-tile__icon {
  background: #fff;
}

.sidebar-motivation-tile__label {
  font-size: 0.8125rem;
  font-weight: 500;
  line-height: 1.3;
  color: var(--color-text);
}

.sidebar-motivations__link {
  display: inline-block;
  margin-top: 0.5rem;
  font-size: 0.75rem;
  font-weight: 500;
  color: var(--color-text-muted);
}

.sidebar-motivations__link:hover {
  color: var(--color-primary-hover);
}

/* Hero */
.page-hero {
  margin-bottom: 1.25rem;
}

.page-hero h1 {
  font-size: var(--text-h1);
  font-weight: var(--font-weight-bold);
  letter-spacing: -0.015em;
  line-height: 1.25;
  margin: 0 0 0.3rem;
}

.page-hero p {
  margin: 0;
  color: var(--color-text-muted);
  max-width: 40rem;
  font-size: var(--text-lead);
  font-weight: var(--font-weight-normal);
  line-height: 1.55;
}

.page-hero--home h1 {
  font-size: var(--text-h1-home);
}

.home-intro-panel {
  background: linear-gradient(180deg, var(--color-bg-hero) 0%, var(--color-bg-warm) 100%);
  border: 1px solid rgba(13, 148, 136, 0.12);
  border-radius: var(--radius);
  padding: 1rem 1.15rem 1.1rem;
  margin-bottom: 1rem;
}

.page-hero--home {
  margin-bottom: 0.85rem;
}

.home-intro-panel .search-form {
  margin-bottom: 0;
  box-shadow: none;
  border: none;
  background: transparent;
  padding: 0;
}

/* Landing page — matches marketing discovery mockup */
.page-home {
  --kp-blue: #2563eb;
  --kp-text: #1f2937;
  --kp-muted: #64748b;
  --kp-bg: #f8fafc;
  --kp-card: #ffffff;
  background: var(--kp-bg);
  color: var(--kp-text);
}

.page-home .app-shell,
.page-home .app-shell--no-sidebar,
.page-home .app-shell--landing {
  max-width: none;
  margin: 0;
  padding: 0;
  display: block;
  width: 100%;
}

.page-home .app-main {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
}

/* Search / Offers / Parents Corner: same 1200px rail as home */
.page-home.page-search-results .site-header--landing .site-header__inner,
.page-home.page-search-results .site-footer--app .site-footer__inner,
.page-home.page-search-results .kp-sticky-chrome .kp-hero--compact,
.page-home.page-search-results .kp-refine,
.page-home.page-search-results .kp-results,
.page-home.page-search-results .kp-pc-body,
.page-home.page-search-results .kp-inline-alert,
.page-home.page-parents-corner .site-header--landing .site-header__inner,
.page-home.page-parents-corner .site-footer--app .site-footer__inner,
.page-home.page-parents-corner .kp-sticky-chrome .kp-hero--compact,
.page-home.page-parents-corner .kp-refine,
.page-home.page-parents-corner .kp-results,
.page-home.page-parents-corner .kp-pc-body,
.page-home.page-parents-corner .kp-inline-alert {
  max-width: var(--page-column);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--page-gutter);
  padding-right: var(--page-gutter);
  box-sizing: border-box;
}

.page-home.page-search-results .kp-sticky-chrome .kp-hero--compact,
.page-home.page-parents-corner .kp-sticky-chrome .kp-hero--compact {
  padding-top: 0.65rem;
  padding-bottom: 0.55rem;
}

.page-home.page-search-results .kp-refine,
.page-home.page-parents-corner .kp-refine {
  padding-top: 0;
  padding-bottom: 0.65rem;
}

.page-home.page-search-results .kp-results,
.page-home.page-search-results .kp-pc-body,
.page-home.page-parents-corner .kp-results,
.page-home.page-parents-corner .kp-pc-body {
  padding-top: 0.25rem;
  padding-bottom: 2.5rem;
}

.page-home.page-search-results .site-footer--app .site-footer__inner,
.page-home.page-parents-corner .site-footer--app .site-footer__inner {
  padding-top: 1.25rem;
  padding-bottom: 1.25rem;
}

.page-home .site-footer {
  margin-top: 0;
}

.kp-site-search {
  background: #fff;
  border-bottom: 1px solid #e5e7eb;
  padding: 0.75rem 1.25rem 1rem;
}

.kp-site-search .kp-search-wrapper {
  max-width: 920px;
  margin: 0 auto;
}

.page-home.page-detail .app-shell,
.page-home.page-browse .app-shell,
.page-home.page-detail .app-shell--no-sidebar,
.page-home.page-browse .app-shell--no-sidebar {
  max-width: 950px;
  margin: 0 auto;
  padding: 1.25rem 1.25rem 2.5rem;
  display: block;
}

.page-home.page-parents-corner .app-shell,
.page-home.page-parents-corner .app-shell--no-sidebar,
.page-home.page-parents-corner .app-shell--landing {
  max-width: none;
  margin: 0;
  padding: 0;
  display: block;
  width: 100%;
}

.kp-sticky-chrome .kp-site-search {
  background: transparent;
  border-bottom: none;
  padding: 0;
}

.kp-pc-chips {
  max-width: var(--page-column);
  margin: 0 auto;
  padding: 0 var(--page-gutter) 0.65rem;
}

.kp-pc-chips .pc-category-chips {
  margin: 0;
  padding: 0;
  border: none;
  background: transparent;
}

.kp-pc-body,
.kp-results {
  max-width: var(--page-column);
  margin: 0 auto;
  padding: 1rem var(--page-gutter) 2.5rem;
}

.kp-landing--results .kp-results {
  margin-top: 0.75rem;
  padding-top: 0.25rem;
  min-height: 50vh;
}

/* Give search results + sticky map enough width */
.kp-landing--results .kp-results:has(.search-page__map) {
  max-width: min(1180px, 100%);
}

.kp-landing--results .search-page {
  margin-top: 0;
}

.kp-landing--results .search-page .search-results-section,
.kp-landing--results .kp-results > .search-page .content-section__header {
  margin-top: 0;
}

.kp-landing--results .search-page__map {
  margin-top: 0.25rem;
}

.site-header--landing .site-header__actions {
  margin-left: auto;
}

.site-header--landing .kp-nav + .site-header__actions {
  margin-left: 0;
}

.site-footer--app {
  background: #fff;
  border-top: 1px solid #e5e7eb;
}

.site-footer--app .site-footer__inner {
  max-width: var(--page-column);
  margin: 0 auto;
  padding: 1.25rem var(--page-gutter);
  color: #64748b;
}

.site-footer--app .site-footer__nav a {
  color: #64748b;
}

.site-footer--app .site-footer__nav a:hover {
  color: var(--kp-blue, #2563eb);
}

@media (max-width: 768px) {
  .site-header--landing .site-header__inner {
    padding: 0 1rem;
  }

  .kp-nav {
    display: none;
  }

  .site-footer--app .site-footer__inner {
    padding: 1.25rem 1rem;
  }

  .page-home.page-search-results .site-header--landing .site-header__inner,
  .page-home.page-search-results .site-footer--app .site-footer__inner,
  .page-home.page-search-results .kp-sticky-chrome .kp-hero--compact,
  .page-home.page-search-results .kp-refine,
  .page-home.page-search-results .kp-results,
  .page-home.page-search-results .kp-pc-body,
  .page-home.page-search-results .kp-inline-alert,
  .page-home.page-parents-corner .site-header--landing .site-header__inner,
  .page-home.page-parents-corner .site-footer--app .site-footer__inner,
  .page-home.page-parents-corner .kp-sticky-chrome .kp-hero--compact,
  .page-home.page-parents-corner .kp-refine,
  .page-home.page-parents-corner .kp-results,
  .page-home.page-parents-corner .kp-pc-body,
  .page-home.page-parents-corner .kp-inline-alert {
    padding-left: 1rem;
    padding-right: 1rem;
  }
}

.site-header--landing {
  height: 72px;
  background: var(--color-surface);
  border-bottom: 1px solid var(--color-border);
  box-shadow: none;
}

.site-header--landing .site-header__inner {
  max-width: var(--page-column);
  margin: 0 auto;
  height: 72px;
  padding: 0 var(--page-gutter);
  gap: 1rem;
  align-items: center;
}

.kp-nav {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
  margin-left: auto;
  margin-right: 0.75rem;
}

.kp-nav a {
  display: inline-flex;
  align-items: center;
  font-family: var(--font);
  font-size: var(--pill-font);
  font-weight: var(--pill-weight);
  line-height: var(--pill-line);
  padding: var(--pill-pad-y-sm) var(--pill-pad-x);
  border-radius: var(--radius-pill);
  background: var(--chip-bg);
  border: 1px solid var(--chip-border);
  color: var(--chip-text);
  text-decoration: none;
  white-space: nowrap;
}

.kp-nav a:hover {
  background: var(--chip-hover-bg);
  border-color: var(--chip-hover-border);
  color: var(--chip-hover-text);
  text-decoration: none;
}

/* Legacy text logo — kept only if referenced outside landing header */
.kp-logo {
  font-family: var(--font);
  font-size: var(--text-h1-compact);
  font-weight: var(--font-weight-bold);
  color: var(--color-primary);
  text-decoration: none;
  letter-spacing: -0.02em;
  line-height: 1;
}

.kp-logo:hover {
  color: var(--color-primary-hover);
  text-decoration: none;
}

.kp-landing {
  width: 100%;
}

.kp-hero {
  text-align: left;
  max-width: var(--page-column);
  margin: 0 auto;
  padding: 1.1rem var(--page-gutter) 0.65rem;
}

.kp-hero--compact {
  padding: 0.75rem var(--page-gutter) 0.5rem;
}

.kp-hero--compact .kp-search-wrapper {
  margin-top: 0;
}

.kp-hero--compact .kp-trending {
  display: none;
}

.page-home .site-header--landing,
.page-search-results .site-header--landing,
.page-parents-corner .site-header--landing,
.page-detail .site-header--landing {
  position: sticky;
  top: 0;
  /* Above Leaflet panes/controls (often 400–1000) so maps do not cover chrome. */
  z-index: 1100;
  background: #fff;
}

.page-detail .kp-site-search {
  position: sticky;
  top: 72px;
  z-index: 1090;
  background: rgba(255, 255, 255, 0.96);
  backdrop-filter: blur(10px);
}

.kp-sticky-chrome {
  position: sticky;
  top: 72px;
  z-index: 40;
  background: rgba(248, 250, 252, 0.96);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid #e5e7eb;
  box-shadow: 0 8px 20px rgba(15, 23, 42, 0.06);
}

.kp-sticky-chrome .kp-hero--compact {
  max-width: var(--page-column);
  margin: 0 auto;
  /* Must match .kp-results / .kp-pc-body / header / footer gutter */
  padding: 0.65rem var(--page-gutter) 0.55rem;
}

.kp-sticky-chrome .kp-hero--sticky-search {
  max-width: var(--page-column);
  margin: 0 auto;
}

.kp-sticky-chrome .kp-hero--compact .kp-search-wrapper,
.kp-sticky-chrome .kp-hero--sticky-search .kp-search-wrapper {
  max-width: none;
  margin: 0;
  width: 100%;
}

.kp-trending--below-sticky {
  max-width: var(--page-column);
  margin: 0.55rem auto 0;
  padding: 0 var(--page-gutter);
}

.kp-sticky-chrome .kp-search-wrapper {
  max-width: none;
  margin: 0;
}

.kp-sticky-chrome .kp-site-search {
  background: transparent;
  border-bottom: none;
  padding: 0;
}

.kp-sticky-chrome .kp-site-search .kp-search-wrapper {
  max-width: none;
  margin: 0;
}

.kp-refine {
  max-width: var(--page-column);
  margin: 0 auto;
  padding: 0 var(--page-gutter) 0.65rem;
}

.kp-refine__buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  align-items: center;
}

.kp-refine__item {
  position: relative;
}

.kp-refine__btn {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.42rem 0.85rem;
  border-radius: 999px;
  border: 1px solid #d1d5db;
  background: #fff;
  color: var(--kp-text, #1f2937);
  font-size: var(--text-sm);
  font-weight: 600;
  font-family: inherit;
  line-height: 1.2;
  cursor: pointer;
  white-space: nowrap;
}

.kp-refine__btn:hover,
.kp-refine__btn[aria-expanded="true"] {
  border-color: var(--kp-blue, #2563eb);
  background: #eff6ff;
  color: #1d4ed8;
}

.kp-refine__btn.is-active {
  border-color: var(--kp-blue, #2563eb);
  box-shadow: inset 0 0 0 1px var(--kp-blue, #2563eb);
}

.kp-refine__caret {
  width: 0.35rem;
  height: 0.35rem;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg) translateY(-1px);
  opacity: 0.75;
}

.kp-refine__menu {
  position: absolute;
  top: calc(100% + 0.4rem);
  left: 0;
  z-index: 60;
  min-width: 14rem;
  max-height: min(18rem, 55vh);
  overflow-y: auto;
  padding: 0.4rem;
  border: 1px solid #e5e7eb;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 14px 34px rgba(15, 23, 42, 0.14);
}

.kp-refine__option {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  width: 100%;
  padding: 0.55rem 0.7rem;
  border: none;
  border-radius: 10px;
  background: transparent;
  color: var(--kp-text, #1f2937);
  font-size: var(--text-sm);
  font-weight: 500;
  font-family: inherit;
  text-align: left;
  text-decoration: none;
  cursor: pointer;
  line-height: 1.25;
}

.kp-refine__option:hover,
.kp-refine__option.is-selected {
  background: #eff6ff;
  color: #1d4ed8;
  text-decoration: none;
}

.kp-refine__hint {
  margin: 0.35rem 0.55rem 0.2rem;
  font-size: var(--text-xs);
  color: var(--kp-muted, #64748b);
  line-height: 1.35;
}

.kp-active-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-top: 0.5rem;
  align-items: center;
}

.kp-refine__clear {
  display: inline-flex;
  align-items: center;
  margin-left: 0.15rem;
  padding: 0.42rem 0.65rem;
  border: none;
  background: transparent;
  color: var(--kp-blue, #2563eb);
  font-size: var(--text-sm);
  font-weight: 600;
  font-family: inherit;
  text-decoration: none;
  line-height: 1.2;
  white-space: nowrap;
}

.kp-refine__clear:hover {
  color: #1d4ed8;
  text-decoration: underline;
}

.kp-refine__clear--inline {
  padding: 0.28rem 0.45rem;
  margin-left: 0.1rem;
}

.kp-active-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.28rem 0.55rem 0.28rem 0.7rem;
  border-radius: 999px;
  background: #2563eb;
  color: #fff;
  font-size: var(--text-sm);
  font-weight: 500;
  text-decoration: none;
  line-height: 1.2;
}

.kp-active-chip:hover {
  background: #1d4ed8;
  color: #fff;
  text-decoration: none;
}

@media (max-width: 900px) {
  .page-search-results .site-header--landing,
  .page-search-results .site-header--landing .site-header__inner,
  .page-parents-corner .site-header--landing,
  .page-parents-corner .site-header--landing .site-header__inner,
  .page-detail .site-header--landing,
  .page-detail .site-header--landing .site-header__inner {
    height: auto;
  }

  .kp-sticky-chrome {
    top: 0;
  }

  .page-home .site-header--landing,
  .page-search-results .site-header--landing,
  .page-parents-corner .site-header--landing,
  .page-detail .site-header--landing {
    position: relative;
  }

  .page-detail .kp-site-search {
    position: relative;
    top: auto;
  }

  .kp-refine__menu {
    left: 0;
    right: auto;
    min-width: min(16rem, calc(100vw - 2.5rem));
  }
}

.kp-inline-alert {
  max-width: 1200px;
  margin: 0.5rem auto;
}

.kp-hero__title {
  margin: 0 0 0.4rem;
  font-size: var(--text-h1-home);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.25;
  color: var(--kp-text, #1f2937);
}

.kp-hero__subtitle {
  margin: 0;
  font-size: var(--text-lead);
  color: var(--kp-muted, #64748b);
  line-height: 1.5;
}

.kp-search-wrapper {
  max-width: none;
  margin: 0.75rem 0 0;
  position: relative;
  text-align: left;
}

.page-home .search-form--discovery {
  margin: 0;
  padding: 0;
  border: none;
  background: transparent;
  box-shadow: none;
}

.kp-search-bar {
  display: grid;
  grid-template-columns: 1fr 180px 120px 120px;
  gap: 10px;
}

.kp-search-bar__input,
.kp-search-bar__select,
.kp-search-bar__submit {
  height: 48px;
  border-radius: 12px;
  border: 1px solid #d1d5db;
  background: #fff;
  padding: 0 0.9rem;
  font-size: var(--text-md);
  font-family: inherit;
  color: var(--kp-text, #1f2937);
}

.kp-search-bar__input {
  width: 100%;
  min-width: 0;
  -webkit-appearance: none;
  appearance: none;
}

.kp-search-bar__input:focus,
.kp-search-bar__select:focus {
  outline: none;
  border-color: var(--kp-blue, #2563eb);
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15);
}

.kp-search-bar__location {
  cursor: pointer;
  text-align: left;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.kp-search-bar__select {
  appearance: none;
  -webkit-appearance: none;
  background-image: linear-gradient(45deg, transparent 50%, #64748b 50%),
    linear-gradient(135deg, #64748b 50%, transparent 50%);
  background-position: calc(100% - 16px) calc(50% - 2px), calc(100% - 11px) calc(50% - 2px);
  background-size: 5px 5px, 5px 5px;
  background-repeat: no-repeat;
  padding-right: 1.75rem;
  cursor: pointer;
}

.kp-search-bar__submit {
  background: var(--kp-blue, #2563eb);
  color: #fff;
  border: none;
  font-weight: 600;
  cursor: pointer;
}

.kp-search-bar__submit:hover {
  background: #1d4ed8;
}

.kp-search-status {
  display: block;
  margin-top: 0.5rem;
  font-size: 0.8125rem;
  color: var(--kp-muted, #64748b);
  text-align: center;
}

.kp-search-status:empty {
  display: none;
}

.kp-suggestions {
  position: absolute;
  top: 56px;
  left: 0;
  right: 250px;
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 15px 35px rgba(0, 0, 0, 0.15);
  text-align: left;
  overflow: hidden;
  z-index: 20;
}

.kp-suggestion {
  display: block;
  padding: 0.7rem 1rem;
  border-bottom: 1px solid #f1f5f9;
  color: var(--kp-text, #1f2937);
  text-decoration: none;
}

.kp-suggestion:last-child {
  border-bottom: none;
}

.kp-suggestion:hover,
.kp-suggestion.is-active {
  background: #f8fafc;
  text-decoration: none;
  color: var(--kp-text, #1f2937);
}

.kp-suggestion__title {
  font-size: var(--text-md);
  font-weight: 500;
}

.kp-suggestion__meta {
  display: block;
  margin-top: 0.1rem;
  font-size: var(--text-sm);
  color: var(--kp-muted, #64748b);
}

.kp-trending {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.3rem;
  margin-top: 0.55rem;
}

.kp-trending__label {
  font-size: var(--text-sm);
  color: var(--kp-text, #1f2937);
  margin-right: 0.15rem;
}

.kp-pill {
  display: inline-block;
  background: #eef2ff;
  padding: 0.35rem 0.7rem;
  border-radius: 20px;
  margin: 0;
  font-size: var(--text-sm);
  font-weight: 500;
  color: #312e81;
  text-decoration: none;
}

.kp-pill:hover,
.kp-pill.is-active {
  background: #e0e7ff;
  color: #1e3a8a;
  text-decoration: none;
}

.kp-browse {
  max-width: var(--page-column);
  margin: 0.35rem auto 0.85rem;
  padding: 0 var(--page-gutter);
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.kp-browse__row {
  display: grid;
  grid-template-columns: 5.75rem minmax(0, 1fr);
  gap: 0.5rem 0.75rem;
  align-items: start;
}

.kp-browse__label {
  margin-top: 0.35rem;
  font-family: var(--font);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-semibold);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--color-text-muted);
  line-height: 1.2;
}

.kp-browse__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
  min-width: 0;
}

.kp-browse .kp-tag {
  margin: 0;
  padding: 0.28rem 0.55rem;
  font-size: var(--text-sm);
  font-weight: var(--font-weight-medium);
  line-height: 1.25;
  text-decoration: none;
  border-radius: var(--radius-pill);
}

/* Variant A — Categories: soft fill, no border */
.kp-browse__row--soft .kp-tag {
  background: var(--color-primary-soft);
  border: 1px solid transparent;
  color: var(--color-primary-hover);
}

.kp-browse__row--soft .kp-tag:hover {
  background: #99f6e4;
  color: #115e59;
}

/* Variant B — Goals: soft fill + teal outline */
.kp-browse__row--outline .kp-tag {
  background: var(--color-primary-soft);
  border: 1px solid var(--color-primary);
  color: var(--color-primary-hover);
}

.kp-browse__row--outline .kp-tag:hover {
  background: #99f6e4;
  border-color: var(--color-primary-hover);
  color: #115e59;
}

/* Variant C — Quick filters: white chip + soft teal border */
.kp-browse__row--solid .kp-tag {
  background: #fff;
  border: 1px solid rgba(13, 148, 136, 0.35);
  color: var(--color-primary-hover);
}

.kp-browse__row--solid .kp-tag:hover {
  background: var(--color-primary-soft);
  border-color: var(--color-primary);
  color: #115e59;
}

.kp-discovery {
  max-width: 1200px;
  margin: 1.25rem auto;
  padding: 0 1.25rem 0.5rem;
}

.kp-discovery__title {
  text-align: left;
  margin: 0 0 1rem;
  font-size: var(--text-section);
  font-weight: 700;
  color: var(--kp-text, #1f2937);
}

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

.kp-discovery-card {
  background: var(--kp-card, #fff);
  padding: 0.9rem 1rem 1rem;
  border-radius: 16px;
  min-height: 0;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.05);
  border: 1px solid transparent;
}

.kp-discovery-card--featured {
  background: #fff7ed;
  border: 1px solid #fed7aa;
}

.kp-discovery-card__icon {
  font-size: 1.25rem;
  line-height: 1;
}

.kp-discovery-card__heading {
  margin: 0.4rem 0 0.15rem;
  font-size: var(--text-base);
  font-weight: 700;
  color: var(--kp-text, #1f2937);
  line-height: 1.3;
}

.kp-discovery-card__text {
  margin: 0 0 0.55rem;
  color: var(--kp-muted, #64748b);
  font-size: var(--text-sm);
  line-height: 1.4;
}

.kp-discovery-card__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
}

.kp-tag {
  display: inline-block;
  background: #f1f5f9;
  padding: 0.35rem 0.65rem;
  border-radius: 999px;
  margin: 0.2rem;
  font-size: var(--text-sm);
  font-weight: 500;
  color: var(--kp-text, #1f2937);
  text-decoration: none;
  line-height: 1.25;
}

.kp-tag:hover {
  background: #e2e8f0;
  text-decoration: none;
  color: var(--kp-text, #1f2937);
}

.kp-activities {
  max-width: var(--page-column);
  margin: 1.5rem auto;
  padding: 0 var(--page-gutter);
}

.kp-activities__title {
  margin: 0 0 0.85rem;
  font-size: var(--text-section);
  font-weight: 700;
  color: var(--kp-text, #1f2937);
}

.kp-activity-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 20px;
}

.kp-activity {
  display: block;
  background: #fff;
  border-radius: 18px;
  padding: 22px;
  text-decoration: none;
  color: inherit;
  box-shadow: 0 5px 18px rgba(0, 0, 0, 0.05);
  border: 1px solid #f1f5f9;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.kp-activity:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.08);
  text-decoration: none;
  color: inherit;
}

.kp-activity__icon {
  font-size: 1.5rem;
  line-height: 1;
}

.kp-activity__name {
  margin: 0.55rem 0 0.25rem;
  font-size: var(--text-base);
  font-weight: 700;
}

.kp-activity__text {
  margin: 0;
  color: var(--kp-muted, #64748b);
  font-size: var(--text-sm);
  line-height: 1.4;
}

.page-home .btn-primary {
  background: var(--kp-blue, #2563eb);
  border-color: var(--kp-blue, #2563eb);
}

.page-home .btn-primary:hover,
.page-home .btn-primary:focus {
  background: #1d4ed8;
  border-color: #1d4ed8;
}

.kp-programs {
  max-width: var(--page-column);
  margin: 0.35rem auto 1.25rem;
  padding: 0 var(--page-gutter);
}

.kp-provider {
  margin-top: 50px;
  background: var(--kp-blue, #2563eb);
  color: #fff;
  text-align: center;
  padding: 45px 20px;
}

.kp-provider__title {
  margin: 0 0 0.4rem;
  font-size: var(--text-section);
  font-weight: 700;
  color: #fff;
}

.kp-provider__text {
  margin: 0;
  font-size: var(--text-md);
  color: rgba(255, 255, 255, 0.92);
}

.kp-provider__button {
  display: inline-block;
  margin-top: 15px;
  padding: 14px 25px;
  border-radius: 10px;
  border: none;
  background: #fff;
  color: var(--kp-blue, #2563eb);
  font-size: 0.9375rem;
  font-weight: 600;
  text-decoration: none;
}

.kp-provider__button:hover {
  background: #eff6ff;
  color: #1d4ed8;
  text-decoration: none;
}

.search-results-section__count {
  margin: 0;
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--kp-muted, #64748b);
}

@media (max-width: 900px) {
  .site-header--landing .site-header__inner {
    padding: 0.75rem 1.25rem;
    height: auto;
    min-height: 72px;
    flex-wrap: wrap;
  }

  .kp-nav {
    order: 3;
    width: 100%;
    margin: 0;
    gap: 0.55rem 1rem;
  }

  .kp-search-bar {
    grid-template-columns: 1fr;
  }

  .kp-suggestions {
    right: 0;
  }

  .kp-discovery-grid,
  .kp-activity-grid {
    grid-template-columns: 1fr;
  }

  .kp-browse__row {
    grid-template-columns: 1fr;
    gap: 0.25rem;
  }

  .kp-browse__label {
    margin-top: 0;
  }

  .kp-hero__title {
    font-size: var(--text-h1);
  }

  .kp-hero {
    padding: 1rem 1rem 0.65rem;
  }
}

.search-page--home,
.search-page--discovery {
  grid-template-columns: 1fr;
}

.search-page--home .search-page__main,
.search-page--discovery .search-page__main {
  width: 100%;
  max-width: none;
}

.search-page--home .listing-grid--home,
.search-page--discovery .listing-grid--search {
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0.75rem;
}

@media (max-width: 1200px) {
  .search-page--home .listing-grid--home,
  .search-page--discovery .listing-grid--search {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (max-width: 960px) {
  .search-page--home .listing-grid--home,
  .search-page--discovery .listing-grid--search {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .search-page--home .listing-grid--home,
  .search-page--discovery .listing-grid--search {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 480px) {
  .search-page--home .listing-grid--home,
  .search-page--discovery .listing-grid--search {
    grid-template-columns: 1fr;
  }
}

.content-section--home-popular {
  margin-bottom: 1.25rem;
}

.content-section--home-trending {
  margin-bottom: 0;
}

.content-section--map-followup {
  margin-top: 1rem;
  padding: 0.85rem 1rem 1rem;
  background: linear-gradient(180deg, var(--color-bg-hero) 0%, #ecfdf5 100%);
  border: 1px solid rgba(13, 148, 136, 0.14);
  border-radius: var(--radius);
}

.content-section__header--compact {
  margin-bottom: 0.5rem;
}

.content-section--map-followup .content-section__title {
  font-size: var(--text-lead);
  color: #134e4a;
  font-weight: var(--font-weight-semibold);
}

.search-page__map .trending-list {
  gap: 0.4rem;
}

.search-page__map .trending-list a {
  font-size: 0.8125rem;
  padding: 0.35rem 0.7rem;
  background: rgba(255, 255, 255, 0.55);
  border-color: rgba(15, 118, 110, 0.28);
  color: var(--color-text);
  font-weight: 600;
}

.search-page__map .trending-list a:hover {
  background: rgba(255, 255, 255, 0.88);
  border-color: var(--color-primary);
  color: #134e4a;
}

.search-page__map .trending-list a.is-active {
  background: rgba(255, 255, 255, 0.92);
  border-color: var(--color-primary);
  color: #134e4a;
}

/* Home: programs first, map below — single column at all widths */
.search-page--home {
  grid-template-columns: 1fr;
  gap: 1rem;
}

.search-page--home .search-page__map--home {
  position: static;
  order: unset;
  width: 100%;
}

.search-page--home .map-panel--home.map-panel--no-pins {
  height: 200px;
  min-height: 180px;
  max-height: 220px;
}

.search-page--home .listing-card__summary {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.page-hero--compact {
  margin-bottom: 0.75rem;
}

.page-hero--compact h1 {
  font-size: var(--text-h1-compact);
  font-weight: var(--font-weight-bold);
}

.page-hero--compact p {
  font-size: var(--text-md);
}

/* Browse by goal — horizontal bar above search */
.goal-bar {
  margin-bottom: 1rem;
}

.goal-bar__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.5rem;
}

.goal-bar__title {
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--color-text-muted);
  margin: 0;
}

.goal-bar__link {
  font-size: 0.75rem;
  font-weight: 500;
  color: var(--color-text-muted);
  white-space: nowrap;
}

.goal-bar__link:hover {
  color: var(--color-primary-hover);
}

.goal-bar__scroll {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  padding-bottom: 0.15rem;
}

.goal-bar__list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  min-width: min-content;
}

.goal-bar__chip {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: var(--pill-pad-y-sm) var(--pill-pad-x-sm);
  border-radius: var(--radius-pill);
  border: 1px solid var(--chip-border);
  background: var(--chip-bg);
  text-decoration: none;
  color: var(--chip-text);
  font-size: var(--pill-font);
  font-weight: var(--font-weight-medium);
  line-height: var(--pill-line);
  white-space: nowrap;
  transition: border-color 0.15s, background 0.15s, color 0.15s;
}

.goal-bar__chip:hover {
  border-color: var(--chip-hover-border);
  background: var(--chip-hover-bg);
  text-decoration: none;
  color: var(--chip-hover-text);
}

.goal-bar__chip.is-active {
  border-color: var(--chip-active-border);
  background: var(--chip-active-bg);
  color: var(--chip-active-text);
  font-weight: var(--pill-weight);
}

.goal-bar__chip-icon {
  font-size: 0.9rem;
  line-height: 1;
}

.goal-bar__chip-label {
  line-height: 1.2;
}

/* Search page: form + results left, sticky map right */
.search-page {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
  align-items: start;
  width: 100%;
}

.search-page__main {
  min-width: 0;
}

.search-page__map {
  min-width: 0;
  width: 100%;
}

@media (min-width: 1100px) {
  .search-page {
    grid-template-columns: minmax(0, 1fr) 300px;
  }

  .search-page__map {
    position: sticky;
    top: 1rem;
    z-index: 20;
    align-self: start;
  }
}

.search-results-section {
  margin-top: 1.25rem;
}

/* Search */
.search-form {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  padding: 1.25rem;
  margin-bottom: 1.5rem;
  box-shadow: var(--shadow-sm);
}

.search-form--toolbar {
  padding: 1rem;
  margin-bottom: 0;
}

.search-form--toolbar .search-form__row {
  margin-bottom: 0.65rem;
}

.search-form--toolbar .search-form__input {
  padding: 0.5rem 0.75rem;
  font-size: 0.9rem;
}

.search-form--toolbar .search-form__submit {
  padding: 0.5rem 1rem;
  font-size: 0.9rem;
}

.search-form--toolbar .search-form__location {
  margin-top: 0.5rem;
}

.search-form__row {
  display: flex;
  gap: 0.5rem;
  margin-bottom: 1rem;
}

.search-form__input {
  flex: 1;
  border-radius: 8px;
  border-color: var(--color-border);
  padding: 0.65rem 1rem;
  font-size: 1rem;
  min-width: 0;
}

.search-form__submit {
  border-radius: 8px;
  padding-left: 1.25rem;
  padding-right: 1.25rem;
  white-space: nowrap;
}

.search-form__filters {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
}

.search-form__filters--wide,
.search-form__filters--three {
  grid-template-columns: repeat(3, 1fr);
}

.search-form__location {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.75rem;
}

.search-form__location-hint {
  font-size: 0.8rem;
  color: var(--color-text-muted);
}

.search-form__label {
  display: block;
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--color-text-muted);
  margin-bottom: 0.25rem;
}

.search-form--compact .search-form__filters {
  grid-template-columns: 1fr 1fr;
}

/* App-wide buttons — pill shape + teal system */
.btn {
  border-radius: var(--radius-pill);
  font-size: var(--pill-font);
  font-weight: var(--pill-weight);
  line-height: var(--pill-line);
  padding: var(--pill-pad-y) var(--pill-pad-x);
}

.btn-sm {
  border-radius: var(--radius-pill);
  font-size: var(--pill-font-sm);
  font-weight: var(--pill-weight);
  line-height: var(--pill-line);
  padding: var(--pill-pad-y-sm) var(--pill-pad-x-sm);
}

.btn-primary {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: #fff;
}

.btn-primary:hover,
.btn-primary:focus {
  background: var(--color-primary-hover);
  border-color: var(--color-primary-hover);
  color: #fff;
}

.btn-outline-primary {
  background: var(--chip-bg);
  border-color: var(--pill-soft-border);
  color: var(--pill-soft-text);
}

.btn-outline-primary:hover,
.btn-outline-primary:focus {
  background: var(--pill-soft-bg);
  border-color: var(--pill-soft-border-hover);
  color: var(--pill-soft-text-hover);
}

.btn-outline-secondary {
  background: var(--chip-bg);
  border-color: var(--chip-border);
  color: var(--chip-text);
}

.btn-outline-secondary:hover,
.btn-outline-secondary:focus {
  background: var(--chip-hover-bg);
  border-color: var(--chip-hover-border);
  color: var(--chip-hover-text);
}

.btn-link {
  border-radius: 0;
  font-weight: var(--font-weight-medium);
  padding-left: 0;
  padding-right: 0;
}

.form-control:focus,
.form-select:focus {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 0.2rem rgba(13, 148, 136, 0.2);
}

/* Section */
.content-section {
  margin-bottom: 2rem;
}

.content-section__header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin-bottom: 1rem;
  gap: 0.5rem;
}

.content-section__title {
  font-size: var(--text-section);
  font-weight: var(--font-weight-semibold);
  letter-spacing: -0.01em;
  line-height: 1.3;
  margin: 0;
}

.content-section__link {
  font-size: var(--text-md);
  font-weight: var(--font-weight-medium);
}

.content-section__link--button {
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  color: var(--color-primary);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.content-section__link--button:hover:not(:disabled) {
  color: var(--color-primary-hover);
}

.content-section__link--button:disabled {
  cursor: default;
  opacity: 0.65;
  text-decoration: none;
}

/* Listing grid — up to 5 cards per row on wide desktop */
.listing-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0.75rem;
}

.listing-card {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: 10px;
  display: flex;
  flex-direction: column;
  position: relative;
  cursor: pointer;
  overflow: hidden;
  transform: scale(1);
  transform-origin: center center;
  transition:
    transform 0.28s cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 0.28s cubic-bezier(0.22, 1, 0.36, 1),
    border-color 0.28s ease;
  will-change: transform;
}

.listing-card:hover,
.listing-card:has(.listing-card__title a:focus-visible) {
  transform: scale(1.07);
  box-shadow: 0 12px 32px rgba(15, 23, 42, 0.14);
  border-color: rgba(13, 148, 136, 0.35);
  z-index: 2;
}

.listing-card__body {
  padding: 0.7rem 0.75rem 0.4rem;
  flex: 1;
}

.listing-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
  margin-bottom: 0.35rem;
}

.chip {
  display: inline-flex;
  align-items: center;
  font-size: var(--pill-font-sm);
  font-weight: var(--pill-weight);
  line-height: var(--pill-line);
  padding: 0.18rem 0.5rem;
  border-radius: var(--radius-pill);
  border: 1px solid transparent;
}

.chip--category {
  background: var(--chip-category-bg);
  color: var(--chip-category-text);
  border-color: rgba(13, 148, 136, 0.22);
}

.chip--age {
  background: var(--chip-meta-bg);
  color: var(--chip-meta-text);
  border-color: var(--color-border);
}

.listing-card__title {
  font-size: var(--text-md);
  font-weight: var(--font-weight-semibold);
  margin: 0 0 0.15rem;
  line-height: 1.3;
}

.listing-card__title a {
  color: var(--color-text);
  text-decoration: none;
}

.listing-card__title a::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  border-radius: inherit;
}

.listing-card:hover .listing-card__title a {
  color: var(--color-primary);
}

.listing-card__provider {
  font-size: var(--text-sm);
  font-weight: var(--font-weight-medium);
  margin: 0 0 0.1rem;
  color: var(--color-text-muted);
}

.listing-card__location {
  font-size: var(--text-xs);
  margin: 0 0 0.35rem;
  color: var(--color-text-muted);
}

.listing-card__summary {
  font-size: var(--text-xs);
  line-height: 1.4;
  color: var(--color-text-muted);
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.listing-card__price {
  font-size: var(--text-xs);
  font-weight: var(--font-weight-semibold);
  margin: 0.35rem 0 0;
  color: var(--color-primary-hover);
}

.listing-card__footer {
  padding: 0.45rem 0.75rem 0.65rem;
  border-top: 1px solid var(--color-border);
}

.listing-card__footer .btn {
  padding: var(--pill-pad-y-sm) var(--pill-pad-x-sm);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-semibold);
  line-height: var(--pill-line);
}

/* Trending */
.trending-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.trending-list a {
  display: inline-flex;
  align-items: center;
  font-size: var(--pill-font);
  padding: var(--pill-pad-y-sm) var(--pill-pad-x-sm);
  border-radius: var(--radius-pill);
  background: var(--chip-bg);
  border: 1px solid var(--chip-border);
  color: var(--chip-text);
  font-weight: var(--font-weight-medium);
  line-height: var(--pill-line);
}

.trending-list a:hover {
  border-color: var(--chip-hover-border);
  background: var(--chip-hover-bg);
  color: var(--chip-hover-text);
  text-decoration: none;
}

/* Detail */
.breadcrumb-nav {
  font-size: 0.85rem;
  margin-bottom: 1rem;
  color: var(--color-text-muted);
}

.breadcrumb-nav a {
  color: var(--color-text-muted);
}

.breadcrumb-nav a:hover {
  color: var(--color-primary);
}

.detail-card {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  padding: 1.25rem;
  box-shadow: var(--shadow-sm);
}

.detail-layout {
  display: grid;
  gap: 1.25rem;
  align-items: start;
}

@media (min-width: 960px) {
  .detail-layout {
    grid-template-columns: minmax(0, 1fr) minmax(260px, 320px);
    gap: 1.5rem;
  }

  .detail-layout__aside {
    position: sticky;
    top: 1rem;
  }

  .page-detail .detail-layout__aside {
    top: 9.5rem;
  }
}

.detail-insights-stack {
  margin-top: 1rem;
}

.detail-program-compact {
  margin: 0 0 0.75rem;
  padding: 0 0 0.65rem;
  border-bottom: 1px solid #e5e7eb;
}

.detail-program-compact .listing-card__meta {
  margin-bottom: 0.3rem;
}

.detail-program-compact h1 {
  font-size: 1.15rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.25;
  margin: 0 0 0.1rem;
}

.detail-program-compact .detail-card__provider {
  margin: 0 0 0.3rem;
  font-size: 0.8125rem;
  line-height: 1.3;
}

.detail-program-compact .detail-card__summary {
  margin: 0;
  font-size: 0.8125rem;
  line-height: 1.4;
}

.detail-program-compact .detail-description-more {
  margin: 0.3rem 0 0;
}

.detail-program-compact .detail-description-more summary {
  font-size: 0.75rem;
}

.detail-program-compact .detail-card__description {
  margin: 0.3rem 0 0;
  font-size: 0.8125rem;
  line-height: 1.4;
}

.detail-insights-stack .listing-community-insights {
  margin-top: 0;
}

.detail-card h1 {
  font-size: var(--text-detail);
  font-weight: var(--font-weight-bold);
  letter-spacing: -0.015em;
  margin: 0.3rem 0 0.15rem;
  line-height: 1.25;
}

.detail-card__provider {
  font-size: var(--text-lead);
  font-weight: var(--font-weight-medium);
  color: var(--color-text-muted);
  margin: 0 0 0.75rem;
}

.detail-card__summary {
  margin: 0.85rem 0 0;
  line-height: 1.55;
  font-size: var(--text-lead);
}

.detail-card__description {
  margin: 0.5rem 0 0;
  line-height: 1.55;
  font-size: var(--text-md);
  color: var(--color-text-muted);
}

.detail-description-more {
  margin: 0.65rem 0 0;
}

.detail-description-more summary {
  cursor: pointer;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--color-primary);
  list-style: none;
}

.detail-description-more summary::-webkit-details-marker {
  display: none;
}

.detail-description-more[open] summary {
  margin-bottom: 0.35rem;
}

.chip--featured {
  background: var(--color-primary);
  color: #fff;
  border-color: var(--color-primary);
}

.detail-aside-card {
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  border-radius: 8px;
  padding: 0.85rem;
}

.detail-aside-card + .detail-aside-card {
  margin-top: 0.75rem;
}

.detail-aside-card__title {
  font-size: 0.72rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--color-text-muted);
  margin: 0 0 0.5rem;
}

.detail-aside-card--map {
  padding-bottom: 0.5rem;
}

.detail-aside-card--location {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}

.detail-contact-compact {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.detail-contact-compact__row {
  display: flex;
  align-items: flex-start;
  gap: 0.4rem;
  margin: 0;
  font-size: var(--text-md);
  line-height: 1.35;
  color: var(--kp-text, var(--color-text));
}

.detail-contact-compact__body {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  min-width: 0;
}

.detail-contact-compact__label {
  font-size: 0.68rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--kp-muted, var(--color-text-muted));
}

.detail-contact-compact__meta {
  font-size: var(--text-sm);
  color: var(--kp-muted, var(--color-text-muted));
}

.detail-contact-compact__body .detail-map-link {
  margin-top: 0.15rem;
  font-size: var(--text-sm);
  font-weight: 600;
}

.detail-facts--below-map {
  margin-top: 0.15rem;
  padding-top: 0.55rem;
  border-top: 1px solid #e5e7eb;
}

.map-panel--detail-compact {
  height: 200px;
}

.map-attribution--compact {
  margin: 0.35rem 0 0;
  font-size: 0.68rem;
}

/* Detail page — match search / landing blue chrome */
.page-detail .detail-card {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 18px;
  box-shadow: 0 4px 14px rgba(15, 23, 42, 0.05);
  padding: 1.35rem 1.4rem;
  color: var(--kp-text, #1f2937);
}

.page-detail .detail-card h1 {
  font-size: 1.15rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--kp-text, #1f2937);
}

.page-detail .detail-card__provider {
  font-size: 0.8125rem;
  color: var(--kp-muted, #64748b);
}

.page-detail .detail-card__summary {
  font-size: 0.8125rem;
  color: var(--kp-text, #1f2937);
}

.page-detail .detail-card__description {
  font-size: 0.875rem;
  color: var(--kp-muted, #64748b);
}

.page-detail .breadcrumb-nav {
  color: var(--kp-muted, #64748b);
}

.page-detail .breadcrumb-nav a {
  color: var(--kp-muted, #64748b);
}

.page-detail .breadcrumb-nav a:hover,
.page-detail .detail-description-more summary,
.page-detail .detail-map-link {
  color: var(--kp-blue, #2563eb);
}

.page-detail .chip--category {
  background: #eff6ff;
  color: #1d4ed8;
  border-color: #bfdbfe;
}

.page-detail .chip--age {
  background: #f8fafc;
  color: var(--kp-muted, #64748b);
  border-color: #e5e7eb;
}

.page-detail .chip--featured {
  background: var(--kp-blue, #2563eb);
  color: #fff;
  border-color: var(--kp-blue, #2563eb);
}

.page-detail .btn-outline-secondary,
.page-detail .btn-outline-primary {
  color: var(--kp-blue, #2563eb);
  border-color: #bfdbfe;
  background: #fff;
}

.page-detail .btn-outline-secondary:hover,
.page-detail .btn-outline-secondary:focus,
.page-detail .btn-outline-primary:hover,
.page-detail .btn-outline-primary:focus {
  color: #fff;
  background: var(--kp-blue, #2563eb);
  border-color: var(--kp-blue, #2563eb);
}

.page-detail .detail-aside-card {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 16px;
  padding: 0.9rem;
  box-shadow: 0 4px 14px rgba(15, 23, 42, 0.04);
}

.page-detail .detail-facts dt {
  color: var(--kp-muted, #64748b);
}

.page-detail .detail-facts dd {
  color: var(--kp-text, #1f2937);
}

.page-detail .detail-facts a {
  color: var(--kp-blue, #2563eb);
}

.page-detail .detail-contact-compact a {
  color: var(--kp-blue, #2563eb);
  text-decoration: none;
  font-weight: 500;
}

.page-detail .detail-contact-compact a:hover {
  text-decoration: underline;
}

.page-detail .points-earn-panel {
  border-color: #bfdbfe;
  background: #eff6ff;
}

/* Detail v2 — stacked cards (main column) */
.page-detail .detail-layout__main {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  font-family: var(--font);
}

.detail-v2-card {
  background: #fff;
  border-radius: 16px;
  padding: 1.35rem 1.4rem;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
  border: 1px solid #e5e7eb;
}

.detail-v2-section-title {
  margin: 0 0 0.85rem;
  font-size: var(--text-section);
  font-weight: var(--font-weight-semibold);
  letter-spacing: -0.01em;
  color: var(--kp-text, var(--color-text));
  line-height: 1.3;
}

.detail-v2-hero__meta {
  margin-bottom: 0.25rem;
}

.detail-v2-hero__title {
  margin: 0.65rem 0 0;
  font-size: var(--text-h1-home);
  font-weight: var(--font-weight-bold);
  letter-spacing: -0.02em;
  line-height: 1.25;
  color: var(--kp-text, var(--color-text));
}

.detail-v2-hero__provider {
  margin: 0.35rem 0 0;
  font-size: var(--text-lead);
  font-weight: var(--font-weight-medium);
  color: var(--kp-muted, var(--color-text-muted));
  line-height: 1.4;
}

.detail-v2-hero__social {
  margin: 0.25rem 0 0;
  font-size: var(--text-sm);
  font-weight: var(--font-weight-normal);
  color: var(--kp-muted, var(--color-text-muted));
  line-height: 1.4;
}

.detail-v2-hero__recommend {
  color: #d97706;
  font-weight: var(--font-weight-semibold);
}

.detail-v2-hero__dot {
  margin: 0 0.3rem;
}

.detail-v2-hero__description {
  margin: 0.75rem 0 0;
  font-size: var(--text-lead);
  font-weight: var(--font-weight-normal);
  color: var(--kp-text, var(--color-text));
  line-height: 1.55;
}

.detail-v2-hero__buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  margin-top: 1rem;
}

.detail-v2-skills {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 0.75rem;
}

.detail-v2-skill {
  background: #f8fafc;
  border-radius: 12px;
  padding: 0.7rem 0.85rem;
  font-size: var(--text-base);
  font-weight: var(--font-weight-medium);
  color: var(--kp-text, var(--color-text));
  line-height: 1.4;
}

.detail-v2-skill--link {
  display: block;
  text-decoration: none;
  color: var(--kp-text, var(--color-text));
  transition: background 0.15s ease, box-shadow 0.15s ease;
}

.detail-v2-skill--link:hover {
  background: #eef6ff;
  color: var(--kp-blue, #2563eb);
  text-decoration: none;
  box-shadow: 0 2px 8px rgba(37, 99, 235, 0.08);
}

.detail-v2-community__header {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-start;
  gap: 0.65rem;
  margin-bottom: 0.15rem;
}

.detail-v2-community__meta {
  margin: 0.2rem 0 0;
  font-size: var(--text-sm);
  font-weight: var(--font-weight-normal);
  color: var(--kp-muted, var(--color-text-muted));
  line-height: 1.4;
}

.detail-v2-community__corner-link {
  font-size: var(--text-md);
  font-weight: var(--font-weight-semibold);
  color: var(--kp-blue, #2563eb);
  text-decoration: none;
  white-space: nowrap;
}

.detail-v2-community__corner-link:hover {
  text-decoration: underline;
}

.detail-v2-community__empty {
  margin: 0.5rem 0 0;
  font-size: var(--text-base);
  font-weight: var(--font-weight-normal);
  color: var(--kp-muted, var(--color-text-muted));
  line-height: 1.45;
}

.detail-v2-preview,
.insight-early-preview {
  background: #fff9e8;
  border: 1px solid #f7d774;
  border-radius: 12px;
  padding: 0.85rem 1rem;
  margin: 0.65rem 0 1rem;
  font-size: var(--text-base);
  line-height: 1.45;
}

.detail-v2-preview strong,
.insight-early-preview strong {
  font-weight: var(--font-weight-semibold);
}

.detail-v2-preview p,
.insight-early-preview p {
  margin: 0.4rem 0 0;
  font-size: var(--text-base);
  font-weight: var(--font-weight-normal);
  color: var(--kp-muted, var(--color-text-muted));
  line-height: 1.45;
}

.pc-summary .insight-early-preview {
  margin: 0.5rem 0 0.75rem;
}

.detail-v2-community__subtitle {
  margin: 0 0 0.65rem;
  font-size: var(--text-base);
  font-weight: var(--font-weight-semibold);
  color: var(--kp-text, var(--color-text));
  line-height: 1.35;
}

.detail-v2-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.85rem;
  margin-bottom: 1.25rem;
}

.detail-v2-stat {
  background: #f8fafc;
  text-align: center;
  border-radius: 12px;
  padding: 0.9rem 0.65rem;
}

.detail-v2-stat__percent {
  font-size: var(--text-metric);
  font-weight: var(--font-weight-bold);
  color: var(--kp-blue, #2563eb);
  line-height: 1.1;
}

.detail-v2-stat__label {
  margin-top: 0.3rem;
  font-size: var(--text-sm);
  font-weight: var(--font-weight-medium);
  color: var(--kp-muted, var(--color-text-muted));
  line-height: 1.35;
}

.detail-v2-community__lists {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}

.detail-v2-community__list {
  list-style: none;
  margin: 0;
  padding: 0;
  font-size: var(--text-base);
  font-weight: var(--font-weight-normal);
  color: var(--kp-text, var(--color-text));
  line-height: 1.45;
}

.detail-v2-community__list li {
  margin-bottom: 0.5rem;
}

.detail-v2-community__list strong {
  font-weight: var(--font-weight-semibold);
}

.detail-v2-feedback {
  text-align: center;
}

.detail-v2-feedback__lead {
  margin: 0.4rem 0 0;
  font-size: var(--text-lead);
  font-weight: var(--font-weight-normal);
  color: var(--kp-muted, var(--color-text-muted));
  line-height: 1.5;
}

.detail-v2-feedback__points {
  margin: 0.5rem 0 0;
  font-size: var(--text-sm);
  font-weight: var(--font-weight-semibold);
  color: var(--kp-blue, #2563eb);
}

.detail-v2-feedback .btn {
  margin-top: 0.9rem;
}

.detail-v2-feedback__note {
  margin: 0.85rem auto 0;
  max-width: 36rem;
  font-size: var(--text-sm);
  font-weight: var(--font-weight-normal);
  color: var(--kp-muted, var(--color-text-muted));
  line-height: 1.45;
}

.page-detail .detail-v2-hero .chip--category {
  background: #eff6ff;
  color: #1d4ed8;
  border-color: #bfdbfe;
}

.page-detail .detail-v2-hero .chip--age {
  background: #f8fafc;
  color: var(--kp-muted, var(--color-text-muted));
  border-color: #e5e7eb;
}

.page-detail .detail-v2-hero .chip--featured {
  background: var(--kp-blue, #2563eb);
  color: #fff;
  border-color: var(--kp-blue, #2563eb);
}

@media (max-width: 700px) {
  .detail-v2-hero__title {
    font-size: var(--text-h1);
  }

  .detail-v2-hero__buttons {
    flex-direction: column;
  }

  .detail-v2-hero__buttons .btn {
    width: 100%;
  }

  .detail-v2-stats {
    grid-template-columns: 1fr;
  }

  .detail-v2-community__lists {
    grid-template-columns: 1fr;
  }

  .detail-v2-card {
    padding: 1.15rem 1.2rem;
  }
}

/* Detail v3 — compact single-column layout (mock placement, app tokens) */
.page-detail .breadcrumb-nav {
  margin-bottom: 0.65rem;
}

.page-detail .detail-v3 {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  max-width: var(--page-column);
  margin: 0 auto;
  font-family: var(--font);
  color: var(--kp-text, #243447);
}

.detail-v3-card {
  background: #fff;
  border-radius: 16px;
  padding: 1.15rem 1.25rem;
  box-shadow: 0 3px 12px rgba(15, 23, 42, 0.05);
  border: 1px solid #e8ecf3;
}

.detail-v3-section-title {
  margin: 0 0 0.7rem;
  font-size: var(--text-md);
  font-weight: var(--font-weight-semibold);
  letter-spacing: -0.01em;
  color: var(--kp-text, #243447);
  line-height: 1.3;
}

.detail-v3-community__header .detail-v3-section-title {
  margin-bottom: 0.15rem;
}

/* Header */
.detail-v3-hero {
  padding: 1.25rem 1.35rem;
}

.detail-v3-title-row {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  flex-wrap: wrap;
}

.detail-v3-hero__title {
  margin: 0;
  font-size: var(--text-h1-home);
  font-weight: var(--font-weight-bold);
  letter-spacing: -0.02em;
  line-height: 1.2;
  color: var(--kp-text, #243447);
}

.detail-v3-hero__provider {
  margin: 0.25rem 0 0;
  font-size: var(--text-base);
  font-weight: var(--font-weight-medium);
  color: var(--kp-muted, #64748b);
  line-height: 1.35;
}

.detail-v3-social-proof {
  text-align: right;
  font-size: var(--text-sm);
  line-height: 1.45;
  color: var(--kp-muted, #64748b);
}

.detail-v3-social-proof__recommend {
  color: #b45309;
}

.detail-v3-social-proof__recommend strong {
  color: var(--kp-text, #243447);
  font-weight: var(--font-weight-semibold);
}

.detail-v3-social-proof__responses {
  margin-top: 0.15rem;
}

.detail-v3-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin: 0.9rem 0 0.85rem;
}

.detail-v3-tag {
  background: var(--color-primary-soft, #eef6ff);
  color: var(--color-primary-hover, #0f766e);
  padding: 0.4rem 0.75rem;
  border-radius: 20px;
  font-size: var(--text-sm);
  font-weight: var(--font-weight-semibold);
  line-height: 1.3;
}

.detail-v3-tag--highlight {
  background: #fff7e6;
  color: #92400e;
}

.detail-v3-tag--featured {
  background: var(--color-primary);
  color: #fff;
}

.detail-v3-hero__description {
  margin: 0;
  font-size: var(--text-base);
  font-weight: var(--font-weight-normal);
  color: var(--kp-muted, #64748b);
  line-height: 1.5;
}

.detail-v3-description-more {
  margin: 0;
}

.detail-v3-description-more summary {
  list-style: none;
  cursor: pointer;
}

.detail-v3-description-more summary::-webkit-details-marker {
  display: none;
}

.detail-v3-description-more:not([open]) .detail-v3-hero__description {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.detail-v3-description-more__more,
.detail-v3-description-more__less {
  display: inline-block;
  margin-top: 0.3rem;
  font-size: var(--text-xs);
  font-weight: var(--font-weight-semibold);
  color: var(--color-primary-hover);
}

.detail-v3-description-more:not([open]) .detail-v3-description-more__less,
.detail-v3-description-more[open] .detail-v3-description-more__more {
  display: none;
}

.detail-v3-hero__buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  margin-top: 1rem;
}

.page-detail .detail-v3-hero__buttons .btn-secondary,
.page-detail .detail-v3-enrollment .btn-secondary {
  background: #e5e7eb;
  border: none;
  color: var(--kp-text, #243447);
  font-weight: var(--font-weight-semibold);
}

.page-detail .detail-v3-hero__buttons .btn-secondary:hover,
.page-detail .detail-v3-hero__buttons .btn-secondary:focus {
  background: #d1d5db;
  color: var(--kp-text, #243447);
}

/* Quick facts grid */
.detail-v3-facts {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 0.75rem;
}

.detail-v3-fact {
  padding: 1rem 1.1rem;
}

.detail-v3-fact__title {
  margin: 0 0 0.4rem;
  font-size: var(--text-sm);
  font-weight: var(--font-weight-semibold);
  color: var(--kp-text, #243447);
  line-height: 1.3;
}

.detail-v3-fact__body {
  margin: 0;
  font-size: var(--text-sm);
  line-height: 1.45;
  color: var(--kp-muted, #64748b);
}

/* Skills */
.detail-v3-skills {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.detail-v3-skill {
  background: #f1f5f9;
  color: var(--kp-text, #243447);
  padding: 0.45rem 0.8rem;
  border-radius: 20px;
  font-size: var(--text-sm);
  font-weight: var(--font-weight-medium);
  line-height: 1.3;
}

/* Parent insights — progress bars */
.detail-v3-community__header {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-start;
  gap: 0.45rem;
  margin-bottom: 0.35rem;
}

.detail-v3-community__meta {
  margin: 0.1rem 0 0;
  font-size: var(--text-sm);
  color: var(--kp-muted, #64748b);
  line-height: 1.4;
}

.detail-v3-community__corner-link {
  font-size: var(--text-sm);
  font-weight: var(--font-weight-semibold);
  color: var(--color-primary-hover);
  text-decoration: none;
  white-space: nowrap;
}

.detail-v3-community__corner-link:hover {
  text-decoration: underline;
}

.detail-v3-community__empty {
  margin: 0.35rem 0 0;
  font-size: var(--text-sm);
  color: var(--kp-muted, #64748b);
  line-height: 1.4;
}

.detail-v3-community .insight-early-preview {
  margin-top: 0.75rem;
}

.detail-v3-progress-list {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin: 0.85rem 0 1rem;
}

.detail-v3-progress__label {
  margin-bottom: 0.35rem;
  font-size: var(--text-sm);
  font-weight: var(--font-weight-medium);
  color: var(--kp-text, #243447);
  line-height: 1.35;
  text-transform: capitalize;
}

.detail-v3-progress__bar {
  height: 10px;
  background: #e5e7eb;
  border-radius: 20px;
  overflow: hidden;
}

.detail-v3-progress__fill {
  height: 100%;
  background: linear-gradient(90deg, #2dd4bf, #0d9488);
  border-radius: 20px;
  min-width: 0;
  transition: width 0.35s ease;
}

.detail-v3-parent-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.detail-v3-parent-chips--concerns {
  margin-top: 0.55rem;
}

.detail-v3-parent-chip {
  background: #fff1f2;
  color: #9f1239;
  padding: 0.45rem 0.8rem;
  border-radius: 20px;
  font-size: var(--text-sm);
  font-weight: var(--font-weight-medium);
  line-height: 1.3;
  text-transform: capitalize;
}

.detail-v3-parent-chip--concern {
  background: #f8fafc;
  color: var(--kp-muted, #64748b);
}

/* Location + enrollment */
.detail-v3-split {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 0.75rem;
}

.detail-v3-location__info h3,
.detail-v3-enrollment p:first-child {
  margin: 0 0 0.45rem;
  font-size: var(--text-base);
  font-weight: var(--font-weight-semibold);
  color: var(--kp-text, #243447);
}

.detail-v3-location__info p,
.detail-v3-enrollment p {
  margin: 0 0 0.45rem;
  font-size: var(--text-sm);
  line-height: 1.45;
  color: var(--kp-text, #243447);
}

.detail-v3-location__info a {
  color: var(--color-primary-hover);
  text-decoration: none;
}

.detail-v3-location__info a:hover {
  text-decoration: underline;
}

.detail-v3-enrollment .btn {
  margin-top: 0.5rem;
}

/* Map */
.detail-v3-map-card {
  padding: 0.85rem;
}

.detail-v3-map {
  min-height: 180px;
  position: relative;
  z-index: 0;
  isolation: isolate;
}

.detail-v3-map .map-panel--detail {
  height: 180px;
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid #e2e8f0;
  position: relative;
  z-index: 0;
  background: #e2e8f0;
}

/* Feedback CTA */
.detail-v3-feedback {
  background: #fff7ed;
  border-color: #ffedd5;
  text-align: left;
}

.detail-v3-feedback__lead {
  margin: 0;
  font-size: var(--text-base);
  color: var(--kp-muted, #64748b);
  line-height: 1.5;
}

.detail-v3-feedback .btn {
  margin-top: 0.75rem;
}

.detail-v3-feedback__note {
  margin: 0.65rem 0 0;
  font-size: var(--text-xs);
  color: #777;
  line-height: 1.4;
}

@media (max-width: 600px) {
  .detail-v3-card {
    padding: 1rem;
  }

  .detail-v3-hero {
    padding: 1rem;
  }

  .detail-v3-hero__title {
    font-size: var(--text-h1);
  }

  .detail-v3-social-proof {
    text-align: left;
    width: 100%;
  }

  .detail-v3-hero__buttons {
    flex-direction: column;
  }

  .detail-v3-hero__buttons .btn {
    width: 100%;
  }

  .detail-v3-facts {
    grid-template-columns: 1fr;
  }
}

.detail-actions--primary {
  margin-top: 0;
  margin-bottom: 0;
}

.detail-facts--compact {
  padding: 0;
  background: transparent;
  gap: 0.55rem;
}

.detail-facts {
  display: grid;
  gap: 0.75rem;
  margin: 0;
  padding: 1rem;
  background: var(--color-bg);
  border-radius: 8px;
}

.detail-location-grid {
  display: grid;
  gap: 1.25rem;
  margin: 0 0 1.25rem;
  align-items: start;
}

@media (min-width: 960px) {
  .detail-location-grid {
    grid-template-columns: 1fr 1fr;
  }

  .detail-location-grid--no-map {
    grid-template-columns: 1fr;
    max-width: 32rem;
  }
}

.detail-business__title {
  font-size: 1rem;
  font-weight: 600;
  margin: 0 0 0.5rem;
}

.detail-map-section {
  margin: 0;
  min-width: 0;
}

.detail-business {
  min-width: 0;
}

.detail-facts dt {
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--color-text-muted);
}

.detail-facts dd {
  margin: 0.15rem 0 0;
  font-weight: 500;
}

.detail-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 1.5rem;
}

.empty-state {
  text-align: center;
  padding: 2.5rem 1rem;
  color: var(--color-text-muted);
  background: var(--color-surface);
  border: 1px dashed var(--color-border);
  border-radius: var(--radius);
}

/* Footer */
.site-footer {
  margin-top: auto;
  background: var(--color-surface);
  border-top: 1px solid var(--color-border);
}

.site-footer__inner {
  max-width: var(--content-max);
  margin: 0 auto;
  padding: 1.25rem 1.5rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  font-size: 0.85rem;
  color: var(--color-text-muted);
}

.site-footer__inner p {
  margin: 0;
}

.site-footer__nav {
  display: flex;
  gap: 1rem;
}

.site-footer__nav a {
  color: var(--color-text-muted);
  font-weight: 500;
}

.site-footer__nav-muted {
  opacity: 0.72;
  font-weight: 400;
  font-size: 0.9em;
}

.site-footer__nav-muted:hover {
  opacity: 1;
}

.results-count {
  font-size: 0.9rem;
  color: var(--color-text-muted);
  margin-bottom: 1rem;
}

.listing-card__distance {
  color: var(--color-primary-hover);
  font-weight: 500;
}

.map-panel--search-toolbar.map-panel--no-pins {
  height: 200px;
  min-height: 180px;
  max-height: 220px;
}

.map-panel--search-toolbar.map-panel--with-pins {
  height: min(360px, calc(100vh - 12rem));
  min-height: 260px;
}

@media (min-width: 1100px) {
  .search-page:not(.search-page--home) .map-panel--search-toolbar.map-panel--with-pins {
    height: 340px;
    min-height: 260px;
    max-height: min(380px, calc(100vh - 11rem));
  }

  .search-page:not(.search-page--home) .listing-card__body {
    padding: 0.65rem 0.7rem 0.3rem;
  }

  .search-page:not(.search-page--home) .listing-card__title {
    font-size: var(--text-md);
  }

  .search-page:not(.search-page--home) .listing-card__summary {
    font-size: var(--text-xs);
    line-height: 1.4;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }

  .search-page:not(.search-page--home) .listing-card__footer {
    padding: 0.4rem 0.7rem 0.55rem;
  }
}

.map-panel {
  width: 100%;
  min-height: 300px;
  height: 480px;
  border-radius: var(--radius);
  border: 1px solid var(--color-border);
  background: #e8eef4;
  position: relative;
  overflow: hidden;
}

.map-panel__loading,
.map-panel__message {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  color: var(--color-text-muted);
  font-size: 0.9rem;
  z-index: 0;
  pointer-events: none;
  text-align: center;
  padding: 1rem;
  line-height: 1.5;
}

.map-panel--error {
  background: #fef2f2;
}

.map-panel--detail {
  height: 320px;
}

.map-notice {
  font-size: 0.875rem;
  color: var(--color-text-muted);
  background: #fffbeb;
  border: 1px solid #fde68a;
  border-radius: 8px;
  padding: 0.75rem 1rem;
  margin-bottom: 1rem;
}

.detail-map-section__title {
  font-size: 1rem;
  font-weight: 600;
  margin: 0 0 0.5rem;
}

.detail-map-link {
  display: inline-block;
  margin-left: 0.5rem;
  font-size: 0.85rem;
  font-weight: 500;
}

.map-info {
  font-size: 0.875rem;
  line-height: 1.4;
  max-width: 200px;
}

.map-attribution {
  font-size: 0.75rem;
  color: var(--color-text-muted);
  margin: 0.35rem 0 0;
}

.map-legend {
  font-size: 0.8rem;
  color: var(--color-text-muted);
  margin: 0 0 0.5rem;
}

.map-panel .leaflet-container {
  height: 100% !important;
  width: 100% !important;
  min-height: 300px;
  border-radius: var(--radius);
  z-index: 0;
}

/* Keep Leaflet tile/marker panes inside the map panel stacking context. */
.page-detail .map-panel,
.page-detail .detail-v3-map .leaflet-container {
  isolation: isolate;
}

.map-marker-label {
  background: transparent;
  border: none;
}

.map-marker-label__pin {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--color-primary);
  color: #fff;
  font-weight: 700;
  font-size: 0.85rem;
  line-height: 1;
  box-shadow: 0 2px 6px rgba(15, 23, 42, 0.25);
  border: 2px solid #fff;
}

.chip--map-label {
  background: var(--color-primary);
  color: #fff;
  border-color: var(--color-primary);
  min-width: 1.5rem;
  justify-content: center;
  text-align: center;
  font-weight: var(--font-weight-bold);
}

.map-info__label {
  display: inline-block;
  background: var(--color-primary);
  color: #fff;
  font-weight: 700;
  padding: 0.1rem 0.4rem;
  border-radius: 4px;
  margin-right: 0.25rem;
}

/* Mobile */
@media (max-width: 900px) {
  .app-shell {
    grid-template-columns: 1fr;
    padding: 1rem;
  }

  .category-sidebar {
    position: static;
  }

  .sidebar-panel__summary {
    padding: 0.45rem 0.35rem;
  }

  .category-nav__list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
  }

  .category-nav__list li {
    flex: 0 0 auto;
  }

  .category-sidebar__header {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.25rem;
  }

  .sidebar-motivation-list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 0.35rem;
  }

  .sidebar-motivation-tile {
    padding: 0.45rem 0.55rem;
  }

  .sidebar-motivation-tile__label {
    font-size: 0.82rem;
  }

  .search-form__row {
    flex-direction: column;
  }

  .search-form__filters,
  .search-form__filters--wide,
  .search-form__filters--three {
    grid-template-columns: 1fr;
  }

  .search-page__map {
    position: static;
  }

  .map-panel--search-toolbar.map-panel--no-pins {
    height: 180px;
    min-height: 160px;
    max-height: 200px;
  }

  .map-panel--search-toolbar.map-panel--with-pins {
    height: 240px;
    min-height: 220px;
  }

  .search-page--home .map-panel--home.map-panel--no-pins {
    height: 180px;
    min-height: 160px;
    max-height: 200px;
  }

  .listing-grid,
  .listing-grid--search,
  .search-page--home .listing-grid--home,
  .search-page--discovery .listing-grid--search,
  .search-page:not(.search-page--home) .listing-grid--home {
    grid-template-columns: 1fr;
  }
}

@media (min-width: 601px) and (max-width: 900px) {
  .search-form__filters--three {
    grid-template-columns: repeat(3, 1fr);
  }

  .listing-grid,
  .listing-grid--search,
  .search-page--home .listing-grid--home,
  .search-page--discovery .listing-grid--search,
  .search-page:not(.search-page--home) .listing-grid--home {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 901px) and (max-width: 1200px) {
  .listing-grid,
  .listing-grid--search,
  .search-page--home .listing-grid--home,
  .search-page--discovery .listing-grid--search,
  .search-page:not(.search-page--home) .listing-grid--home {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (min-width: 1201px) and (max-width: 1400px) {
  .listing-grid,
  .listing-grid--search,
  .search-page--home .listing-grid--home,
  .search-page--discovery .listing-grid--search,
  .search-page:not(.search-page--home) .listing-grid--home {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (min-width: 1401px) {
  .listing-grid,
  .listing-grid--search,
  .search-page--home .listing-grid--home,
  .search-page--discovery .listing-grid--search,
  .search-page:not(.search-page--home) .listing-grid--home {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
}

/* Outbound / go landing */
.outbound-landing {
  max-width: 32rem;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  padding: 1.5rem;
  margin: 1rem 0;
}

.outbound-landing h1 {
  font-size: var(--text-h1-compact);
  font-weight: var(--font-weight-bold);
  letter-spacing: -0.015em;
  margin: 0 0 0.5rem;
}

.outbound-landing__lead {
  margin: 0 0 1rem;
}

.outbound-landing__feedback-card {
  background: #f0fdfa;
  border: 1px solid #99f6e4;
  border-radius: var(--radius);
  padding: 1rem 1.25rem;
  margin: 0 0 1.25rem;
}

.outbound-landing__feedback-heading {
  font-size: 1rem;
  margin: 0 0 0.5rem;
}

.outbound-landing__feedback-text {
  font-size: 0.9rem;
  color: var(--color-text-muted);
  margin: 0 0 1rem;
}

.outbound-landing__return-note {
  margin: 0.75rem 0 0;
}

.outbound-landing__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
  margin-bottom: 0.75rem;
}

.detail-actions__hint {
  flex-basis: 100%;
  margin: 0.35rem 0 0;
}

.feedback-prompt--inline {
  margin-top: 1.25rem;
}

/* Post-visit feedback prompt */
.feedback-prompt {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  background: #f0fdfa;
  border: 1px solid #99f6e4;
  border-radius: var(--radius);
  padding: 1rem 1.25rem;
  margin-bottom: 1.25rem;
}

.feedback-prompt__title {
  margin: 0 0 0.25rem;
  font-size: 0.95rem;
  font-weight: 600;
}

.feedback-prompt__text {
  margin: 0;
  font-size: 0.85rem;
  color: var(--color-text-muted);
}

.feedback-prompt__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
}

.feedback-prompt__dismiss-form {
  margin: 0;
}

/* Parent interest + feedback */
.parent-interest {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  padding: 1rem 1.25rem;
  margin: 1.25rem 0;
}

.parent-interest__title {
  font-size: 1rem;
  font-weight: 600;
  margin: 0 0 0.35rem;
}

.parent-interest__hint {
  font-size: 0.85rem;
  color: var(--color-text-muted);
  margin: 0 0 0.75rem;
}

.parent-interest__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.feedback-form {
  max-width: 28rem;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  padding: 1.25rem;
}

.feedback-form__field {
  margin-bottom: 1rem;
}

.feedback-form__label {
  display: block;
  font-size: var(--text-md);
  font-weight: var(--font-weight-semibold);
  margin-bottom: 0.35rem;
}

.feedback-listing-name {
  margin-bottom: 1rem;
}

.feedback-signin-gate {
  max-width: 36rem;
  padding: 1.25rem;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  box-shadow: var(--shadow-sm);
}

.feedback-signin-gate .btn-google {
  margin-right: 0.5rem;
  margin-bottom: 0.5rem;
}

/* Admin insights */
.admin-table-wrap {
  overflow-x: auto;
}

.admin-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9rem;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
}

.admin-table th,
.admin-table td {
  padding: 0.65rem 0.85rem;
  border-bottom: 1px solid var(--color-border);
  text-align: left;
}

.admin-table th {
  background: #f1f5f9;
  font-weight: 600;
}

.insights-stats {
  display: grid;
  gap: 0.75rem;
  margin-bottom: 1.5rem;
}

.insights-stats--row {
  grid-template-columns: repeat(auto-fit, minmax(7.5rem, 1fr));
}

.insights-stats div {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: 8px;
  padding: 0.75rem 1rem;
}

.insights-stats dt {
  font-size: 0.8rem;
  color: var(--color-text-muted);
  margin: 0;
}

.insights-stats dd {
  font-size: 1.1rem;
  font-weight: 600;
  margin: 0.15rem 0 0;
}

.insights-period-form {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  padding: 1rem 1.25rem;
  margin-bottom: 1.25rem;
}

.insights-period-form__fields {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 0.75rem 1rem;
}

.insights-period-form__label {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  font-size: 0.85rem;
  font-weight: 500;
  margin: 0;
}

.insights-period-form__label input[type="date"] {
  padding: 0.45rem 0.65rem;
  border: 1px solid var(--color-border);
  border-radius: 8px;
  font: inherit;
  min-width: 10.5rem;
}

.insights-period-form__hint {
  margin: 0.65rem 0 0;
  font-size: 0.85rem;
}

.insights-chart-card {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  box-shadow: var(--shadow-md);
  padding: 1.25rem 1.5rem 1.5rem;
  margin-bottom: 1.5rem;
}

.insights-chart-card__header {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem 1.5rem;
  margin-bottom: 1.25rem;
}

.insights-chart-card__title {
  font-size: 1.15rem;
  font-weight: 600;
  margin: 0;
}

.insights-chart-card__subtitle {
  margin: 0.25rem 0 0;
  font-size: 0.9rem;
  color: var(--color-text-muted);
}

.insights-chart-card__totals {
  display: flex;
  gap: 1.5rem;
}

.insights-chart-card__total {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
}

.insights-chart-card__total-value {
  font-size: var(--text-h1);
  font-weight: var(--font-weight-bold);
  line-height: 1.1;
}

.insights-chart-card__total-value--views {
  color: var(--color-primary);
}

.insights-chart-card__total-value--clicks {
  color: #d97706;
}

.insights-chart-card__total-label {
  font-size: 0.8rem;
  color: var(--color-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.insights-chart-card__canvas-wrap {
  position: relative;
  height: 320px;
}

.insights-chart-card__empty {
  padding: 2.5rem 1rem;
  text-align: center;
  background: #f8fafc;
  border-radius: 8px;
  border: 1px dashed var(--color-border);
}

.insights-chart-card__empty p {
  margin: 0 0 0.35rem;
}

.provider-feedback-empty {
  background: var(--color-surface);
  border: 1px dashed var(--color-border);
  border-radius: var(--radius);
  padding: 2rem 1.5rem;
  text-align: center;
  margin-bottom: 1.5rem;
}

.provider-feedback-empty p {
  margin: 0 0 0.35rem;
}

.provider-feedback-count {
  margin: 0 0 1rem;
  font-size: 0.9rem;
}

.provider-feedback-list {
  display: grid;
  gap: 1rem;
  margin-bottom: 1.5rem;
}

.provider-feedback-card {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  padding: 1rem 1.25rem;
  box-shadow: var(--shadow-sm);
}

.provider-feedback-card__header {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.5rem;
}

.provider-feedback-card__header time {
  font-size: 0.85rem;
  color: var(--color-text-muted);
}

.provider-feedback-card__recommend {
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--color-primary);
}

.provider-feedback-card__experience {
  margin: 0 0 0.65rem;
  font-size: 0.95rem;
}

.provider-feedback-card__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-bottom: 0.75rem;
}

.provider-feedback-tag {
  display: inline-flex;
  align-items: center;
  font-size: var(--pill-font-sm);
  font-weight: var(--font-weight-medium);
  line-height: var(--pill-line);
  padding: var(--pill-pad-y-sm) var(--pill-pad-x-sm);
  border-radius: var(--radius-pill);
  background: var(--chip-meta-bg);
  color: var(--chip-meta-text);
  border: 1px solid var(--color-border);
}

.provider-feedback-tag--outcome {
  background: var(--chip-outcome-bg);
  color: var(--chip-outcome-text);
  border-color: var(--chip-outcome-border);
}

.provider-feedback-tag--loved {
  background: var(--chip-loved-bg);
  color: var(--chip-loved-text);
  border-color: var(--chip-loved-border);
}

.provider-feedback-tag--concern {
  background: var(--chip-concern-bg);
  color: var(--chip-concern-text);
  border-color: var(--chip-concern-border);
}

.provider-feedback-card__note {
  margin: 0;
  padding: 0.75rem 1rem;
  background: #f8fafc;
  border-left: 3px solid var(--color-primary);
  border-radius: 0 8px 8px 0;
  font-size: 0.95rem;
  line-height: 1.5;
  color: var(--color-text);
}

.provider-feedback-back {
  margin-top: 1.5rem;
  font-size: 0.9rem;
}

.insights-pitch {
  background: #f0fdfa;
  border-left: 4px solid var(--color-primary);
  padding: 1rem 1.25rem;
  margin: 0 0 1.5rem;
  font-size: 0.95rem;
  line-height: 1.55;
}

/* Structured feedback tags */
.feedback-form__hint {
  font-size: 0.85rem;
  color: var(--color-text-muted);
  margin: 0 0 0.75rem;
}

.feedback-tag-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.feedback-tag {
  display: inline-flex;
  cursor: pointer;
  margin: 0;
}

.feedback-tag input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.feedback-tag span {
  display: inline-flex;
  align-items: center;
  padding: var(--pill-pad-y) var(--pill-pad-x);
  border: 1px solid var(--chip-border);
  border-radius: var(--radius-pill);
  font-size: var(--pill-font);
  font-weight: var(--font-weight-medium);
  line-height: var(--pill-line);
  background: var(--chip-bg);
  color: var(--chip-text);
  transition: border-color 0.15s, background 0.15s, color 0.15s;
}

.feedback-tag:hover span {
  border-color: var(--chip-hover-border);
  background: var(--chip-hover-bg);
  color: var(--chip-hover-text);
}

.feedback-tag input:checked + span {
  border-color: var(--chip-active-border);
  background: var(--chip-active-bg);
  color: var(--chip-active-text);
  font-weight: var(--pill-weight);
}

/* Parents Corner */
.parents-corner-disclaimer {
  background: #fffbeb;
  border-left: 3px solid #fbbf24;
  border-radius: 6px;
  padding: 0.45rem 0.7rem;
  margin-bottom: 1rem;
  font-size: 0.8125rem;
  line-height: 1.45;
  color: #92400e;
}

.parents-corner-disclaimer p {
  margin: 0;
}

.parents-corner-disclaimer strong {
  font-weight: 600;
  color: #78350f;
}

/* Parents Corner — category chips + compact summary */
.pc-category-chips {
  display: flex;
  flex-wrap: nowrap;
  gap: 0.45rem;
  margin: 0 0 1rem;
  padding: 0.15rem 0 0.45rem;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
}

.pc-category-chips__chip {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  flex: 0 0 auto;
  padding: var(--pill-pad-y) var(--pill-pad-x);
  border-radius: var(--radius-pill);
  border: 1px solid var(--chip-border);
  background: var(--chip-bg);
  color: var(--chip-text);
  font-size: var(--pill-font);
  font-weight: var(--font-weight-medium);
  text-decoration: none;
  white-space: nowrap;
  line-height: var(--pill-line);
  transition: border-color 0.15s, background 0.15s, color 0.15s;
}

.pc-category-chips__chip:hover {
  border-color: var(--chip-hover-border);
  background: var(--chip-hover-bg);
  color: var(--chip-hover-text);
  text-decoration: none;
}

.pc-category-chips__chip.is-active {
  border-color: var(--chip-active-border);
  background: var(--chip-active-bg);
  color: var(--chip-active-text);
  font-weight: var(--pill-weight);
}

.pc-category-chips__emoji {
  font-size: 1rem;
  line-height: 1;
}

.pc-panel {
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  background: var(--color-surface);
  padding: 1rem 1.1rem 1.15rem;
  box-shadow: var(--shadow-sm);
}

.pc-panel__header {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.65rem;
  margin-bottom: 0.75rem;
}

.pc-panel__title {
  margin: 0;
  font-size: var(--text-h1-compact);
  font-weight: var(--font-weight-bold);
  letter-spacing: -0.015em;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
}

.pc-panel__layout {
  display: grid;
  gap: 1rem;
  align-items: start;
}

@media (min-width: 900px) {
  .pc-panel__layout {
    grid-template-columns: minmax(0, 1fr) minmax(220px, 280px);
    gap: 1.25rem;
  }
}

.pc-panel__choose-card {
  background: linear-gradient(160deg, #eff6ff 0%, #f0f9ff 100%);
  border: 1px solid #bfdbfe;
  border-radius: 14px;
  padding: 0.85rem 1rem 0.95rem;
  box-shadow: 0 4px 14px rgba(37, 99, 235, 0.06);
}

.pc-panel__choose-lead {
  margin: 0 0 0.45rem;
  font-size: var(--text-md);
  font-weight: var(--font-weight-semibold);
  line-height: 1.35;
  color: #1e40af;
}

.pc-panel__choose-list {
  margin: 0;
  padding-left: 1.1rem;
  font-size: var(--text-md);
  color: #1f2937;
}

.pc-panel__choose-list li {
  margin: 0.2rem 0;
  line-height: 1.35;
}

.page-parents-corner .pc-panel__choose-card {
  background: linear-gradient(160deg, #eff6ff 0%, #f8fafc 100%);
  border-color: #dbeafe;
}

.page-parents-corner .pc-panel__choose-lead {
  color: var(--kp-blue, #2563eb);
}

.page-parents-corner .pc-panel__choose-list {
  color: var(--kp-text, #1f2937);
}

.pc-summary__meta {
  margin: 0 0 0.65rem;
}

.pc-summary__empty {
  margin: 0.25rem 0 0;
}

.pc-summary {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}

.pc-summary__row {
  display: grid;
  grid-template-columns: 4.5rem minmax(0, 1fr);
  gap: 0.5rem 0.65rem;
  align-items: start;
}

.pc-summary__label {
  font-size: var(--text-xs);
  font-weight: var(--font-weight-semibold);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--color-text-muted);
  padding-top: 0.35rem;
}

.pc-summary__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.pc-summary__chip {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  padding: var(--pill-pad-y-sm) var(--pill-pad-x-sm);
  border-radius: var(--radius-pill);
  font-size: var(--pill-font-sm);
  font-weight: var(--font-weight-medium);
  line-height: var(--pill-line);
  max-width: 100%;
  border: 1px solid transparent;
}

.pc-summary__chip strong {
  font-weight: var(--font-weight-bold);
}

.pc-summary__chip--outcomes {
  background: var(--chip-outcome-bg);
  color: var(--chip-outcome-text);
  border-color: var(--chip-outcome-border);
}

.pc-summary__chip--loved {
  background: var(--chip-loved-bg);
  color: var(--chip-loved-text);
  border-color: var(--chip-loved-border);
}

.pc-summary__chip--concerns {
  background: var(--chip-concern-bg);
  color: var(--chip-concern-text);
  border-color: var(--chip-concern-border);
}

.pc-summary__more {
  margin-top: 0.35rem;
}

.pc-summary__more > summary {
  cursor: pointer;
  font-size: var(--text-sm);
  font-weight: var(--font-weight-semibold);
  color: var(--kp-blue, #2563eb);
  list-style: none;
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
}

.pc-summary__more > summary:hover {
  color: #1d4ed8;
}

.pc-summary__more > summary::-webkit-details-marker {
  display: none;
}

.pc-summary__more-label--less {
  display: none;
}

.pc-summary__more[open] .pc-summary__more-label--more {
  display: none;
}

.pc-summary__more[open] .pc-summary__more-label--less {
  display: inline;
}

.pc-summary__more-body {
  margin-top: 0.55rem;
  padding-top: 0.55rem;
  border-top: 1px solid #e5e7eb;
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}

@media (max-width: 520px) {
  .pc-summary__row {
    grid-template-columns: 1fr;
    gap: 0.25rem;
  }

  .pc-summary__label {
    padding-top: 0;
  }
}

.parents-corner-accordion {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.parents-corner-accordion--truncated:not(.is-list-expanded) .parents-corner-row--extra {
  display: none;
}

.parents-corner-show-all {
  margin-top: 0.65rem;
}

.parents-corner-row {
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  background: var(--color-surface);
  overflow: hidden;
  transition: opacity 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.parents-corner-row__summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.65rem;
  padding: 0.5rem 0.85rem;
  cursor: pointer;
  list-style: none;
  user-select: none;
  transition: padding 0.2s ease, background 0.2s ease;
}

.parents-corner-accordion:has(.parents-corner-row[open]) .parents-corner-row:not([open]) {
  opacity: 0.65;
}

.parents-corner-accordion:has(.parents-corner-row[open]) .parents-corner-row:not([open]) .parents-corner-row__summary {
  padding: 0.4rem 0.85rem;
}

.parents-corner-row[open] {
  opacity: 1;
  border-color: rgba(13, 148, 136, 0.35);
  box-shadow: var(--shadow-md);
}

.parents-corner-row[open] .parents-corner-row__summary {
  padding: 0.75rem 1rem;
  background: #f8fafc;
}

.parents-corner-row__summary::-webkit-details-marker {
  display: none;
}

.parents-corner-row__summary::marker {
  content: "";
}

.parents-corner-row__heading {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem;
  min-width: 0;
}

.parents-corner-row__name {
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--color-text);
}

.parents-corner-row[open] .parents-corner-row__name {
  font-size: 1.0625rem;
}

.parents-corner-row__meta {
  font-size: 0.72rem;
  color: var(--color-text-muted);
}

.parents-corner-row:not([open]) .parents-corner-row__meta::before {
  content: "· ";
}

.parents-corner-row__chevron {
  flex-shrink: 0;
  width: 0.5rem;
  height: 0.5rem;
  border-right: 2px solid var(--color-text-muted);
  border-bottom: 2px solid var(--color-text-muted);
  transform: rotate(45deg);
  transition: transform 0.15s ease;
  margin-top: -0.15rem;
}

.parents-corner-row[open] .parents-corner-row__chevron {
  transform: rotate(-135deg);
  margin-top: 0.15rem;
}

.parents-corner-row__body {
  padding: 0 1rem 1rem;
  border-top: 1px solid var(--color-border);
}

.parents-corner-row__columns {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 1.25rem;
  padding-top: 0.85rem;
  align-items: start;
}

.parents-corner-row__columns--insights-only {
  grid-template-columns: 1fr;
}

.parents-corner-row__col--insights .parents-corner-inline-block:first-of-type {
  margin-top: 0;
}

.parents-corner-row__choose {
  padding: 0.85rem 1rem;
  margin-bottom: 0;
  background: #f0fdfa;
  border: 1px solid rgba(13, 148, 136, 0.2);
  border-left: 4px solid var(--color-primary);
  border-radius: var(--radius);
}

.parents-corner-row__choose-lead {
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--color-text);
  margin: 0 0 0.35rem;
}

.parents-corner-row__choose-list {
  margin: 0;
  padding-left: 1.15rem;
  font-size: 0.9375rem;
  line-height: 1.55;
  color: var(--color-text-muted);
}

.parents-corner-row__choose-list li {
  margin-bottom: 0.15rem;
}

.parents-corner-row__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  align-items: center;
  margin-top: 0.85rem;
  padding-top: 0.75rem;
  border-top: 1px solid var(--color-border);
}

.parents-corner-inline-block {
  margin-bottom: 0.65rem;
}

.parents-corner-inline-block--outcomes,
.parents-corner-inline-block--loved,
.parents-corner-inline-block--concerns,
.parents-corner-section--outcomes,
.parents-corner-section--loved,
.parents-corner-section--concerns {
  background: #eff6ff;
  border: 1px solid rgba(59, 130, 246, 0.18);
  border-radius: var(--radius);
  padding: 0.85rem 1rem;
}

.parents-corner-section--outcomes,
.parents-corner-section--loved,
.parents-corner-section--concerns {
  padding: 1rem 1.15rem;
  margin-bottom: 1.75rem;
}

.parents-corner-inline-block--outcomes,
.parents-corner-section--outcomes {
  border-left: 4px solid #3b82f6;
}

.parents-corner-inline-block--loved,
.parents-corner-section--loved {
  border-left: 4px solid #059669;
}

.parents-corner-inline-block--concerns,
.parents-corner-section--concerns {
  border-left: 4px solid #64748b;
}

.parents-corner-inline-block--outcomes .parents-corner-inline-block__title,
.parents-corner-section--outcomes .content-section__title {
  color: #1e40af;
}

.parents-corner-inline-block--loved .parents-corner-inline-block__title,
.parents-corner-section--loved .content-section__title {
  color: #047857;
}

.parents-corner-inline-block--concerns .parents-corner-inline-block__title,
.parents-corner-section--concerns .content-section__title {
  color: #475569;
}

.parents-corner-inline-block__title {
  font-size: 0.72rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--color-text-muted);
  margin: 0 0 0.35rem;
}

.parents-corner-inline-note,
.parents-corner-inline-empty {
  margin: 0.65rem 0 0.5rem;
}

.parents-corner-insights--compact li {
  padding: 0.3rem 0;
  font-size: 0.9375rem;
  line-height: 1.5;
}

@media (max-width: 640px) {
  .parents-corner-row__columns {
    grid-template-columns: 1fr;
    gap: 0.85rem;
  }

  .parents-corner-row__col--choose {
    padding-top: 0.75rem;
    border-top: 1px solid var(--color-border);
  }
}

.parents-corner-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 1rem;
}

.parents-corner-card {
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  padding: 1rem 1.25rem;
  background: var(--color-surface);
}

.parents-corner-card__title {
  font-size: 1.05rem;
  margin: 0 0 0.5rem;
}

.parents-corner-card__meta {
  font-size: 0.85rem;
  margin: 0 0 0.75rem;
}

.parents-corner-card__choose-lead {
  font-size: 0.85rem;
  font-weight: 500;
  margin: 0 0 0.35rem;
  color: var(--color-text);
}

.parents-corner-card__choose-list {
  margin: 0 0 0.75rem;
  padding-left: 1.15rem;
  font-size: 0.82rem;
  color: var(--color-text-muted);
}

.parents-corner-card__choose-list li {
  margin-bottom: 0.15rem;
}

/* Why parents choose — activity guide */
.parents-choose-guide {
  background: #f0fdfa;
  border: 1px solid rgba(13, 148, 136, 0.2);
  border-left: 4px solid var(--color-primary);
  border-radius: var(--radius);
  padding: 1.15rem 1.35rem;
  margin-bottom: 1.25rem;
}

.parents-choose-guide__title {
  font-size: 1.05rem;
  font-weight: 600;
  margin: 0 0 0.65rem;
  line-height: 1.4;
}

.parents-choose-guide__list {
  margin: 0;
  padding-left: 1.25rem;
  font-size: 0.95rem;
  line-height: 1.55;
}

.parents-choose-guide__list li {
  margin-bottom: 0.25rem;
}

.parents-corner-teaser {
  margin: 0 0 1rem;
  font-size: 0.95rem;
}

.parents-corner-meta {
  margin: 0 0 1.25rem;
  font-size: 0.9rem;
}

.parents-corner-section {
  margin-bottom: 1.75rem;
}

.parents-corner-insights {
  list-style: none;
  padding: 0;
  margin: 0;
}

.parents-corner-insights li {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  padding: 0.5rem 0;
  border-bottom: 1px solid var(--color-border);
  font-size: 0.975rem;
  line-height: 1.55;
}

.parents-corner-insights__icon {
  flex-shrink: 0;
}

.parents-corner-footer-links {
  margin-top: 2rem;
  font-size: 0.9rem;
}

/* Home discovery tiles — removed from main; motivation tiles live in sidebar */

/* Listing detail — community insights (above Visit website) */
.listing-community-insights {
  background: #f0fdfa;
  border: 1px solid #99f6e4;
  border-radius: var(--radius);
  padding: 0.85rem 1rem;
  margin: 0.85rem 0 0;
}

.listing-community-insights__title {
  font-size: 0.95rem;
  font-weight: 600;
  margin: 0 0 0.2rem;
}

.listing-community-insights__lead {
  font-size: 0.8rem;
  color: var(--color-text-muted);
  margin: 0 0 0.5rem;
}

.listing-community-insights__preview,
.listing-community-insights__empty {
  margin: 0 0 0.5rem;
}

.listing-community-insights__grid {
  display: grid;
  gap: 0.65rem;
}

@media (min-width: 640px) {
  .listing-community-insights__grid {
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 0.75rem;
  }
}

.listing-community-insights__block {
  margin-bottom: 0;
  background: #eff6ff;
  border: 1px solid rgba(59, 130, 246, 0.18);
  border-radius: 8px;
  padding: 0.55rem 0.65rem;
}

.listing-community-insights__block--outcomes {
  border-left: 3px solid #3b82f6;
}

.listing-community-insights__block--loved {
  border-left: 3px solid #059669;
}

.listing-community-insights__block--concerns {
  border-left: 3px solid #64748b;
}

.listing-community-insights__block--outcomes .listing-community-insights__label {
  color: #1e40af;
}

.listing-community-insights__block--loved .listing-community-insights__label {
  color: #047857;
}

.listing-community-insights__block--concerns .listing-community-insights__label {
  color: #475569;
}

.listing-community-insights__label {
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--color-text-muted);
  margin: 0 0 0.35rem;
}

.listing-community-insights__list {
  list-style: none;
  padding: 0;
  margin: 0;
  font-size: 0.88rem;
}

.listing-community-insights__list li {
  padding: 0.2rem 0;
  display: flex;
  align-items: flex-start;
  gap: 0.35rem;
}

.listing-community-insights__disclaimer {
  margin: 0.45rem 0 0;
}

.listing-community-insights__link {
  margin: 0.35rem 0 0;
  font-size: 0.82rem;
}

.detail-actions__hint {
  flex-basis: 100%;
  margin: 0.35rem 0 0;
}

/* —— Current offers browse —— */
.offer-filters {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.75rem 1rem;
  align-items: end;
  margin: 0 0 1.25rem;
  padding: 1rem 1.1rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  background: var(--color-surface);
}

.offer-filters__field .form-label {
  margin-bottom: 0.3rem;
  font-family: var(--font);
  font-size: var(--text-sm);
  font-weight: var(--font-weight-medium);
  color: var(--color-text);
}

.offer-filters__field .form-select,
.offer-filters__field .form-control {
  height: 2.15rem;
  min-height: 2.15rem;
  padding: 0.3rem 0.65rem;
  font-family: var(--font);
  font-size: var(--text-md);
  font-weight: var(--font-weight-normal);
  line-height: 1.3;
  color: var(--color-text);
  border-radius: 8px;
  background-color: #fff;
}

.offer-filters__field .form-select {
  padding-right: 2rem;
  background-size: 14px 10px;
}

.offer-filters__field .form-control::placeholder {
  font-family: var(--font);
  font-size: var(--text-md);
  color: var(--color-text-muted);
  opacity: 1;
}

.offer-filters__actions {
  display: flex;
  align-items: end;
}

.offer-filters__actions .btn {
  height: 2.15rem;
  padding: 0.3rem 0.9rem;
  font-family: var(--font);
  font-size: var(--text-md);
  font-weight: var(--font-weight-semibold);
  line-height: 1.3;
}

.offer-empty {
  padding: 1.25rem 1.1rem;
  border: 1px dashed var(--color-border);
  border-radius: var(--radius);
  background: var(--color-surface);
  color: var(--color-text-muted);
}

/* Prefer Activities listing-grid column rules; keep offer-grid as a hook for card styles */
.offer-grid.offer-grid {
  /* listing-grid--search already defines columns; only tighten row gap for taller offer cards */
  gap: 0.85rem;
}

.offer-card {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid var(--color-border);
  border-radius: 10px;
  background: var(--color-surface);
  position: relative;
  transform: scale(1);
  transform-origin: center center;
  transition:
    transform 0.28s cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 0.28s cubic-bezier(0.22, 1, 0.36, 1),
    border-color 0.28s ease;
  will-change: transform;
}

.offer-card:hover {
  transform: scale(1.07);
  box-shadow: 0 12px 32px rgba(15, 23, 42, 0.14);
  border-color: rgba(13, 148, 136, 0.35);
  z-index: 2;
}

.offer-card__media {
  display: block;
  height: 6.5rem;
  background: #eef4ff;
  overflow: hidden;
}

.offer-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.28s cubic-bezier(0.22, 1, 0.36, 1);
}

.offer-card:hover .offer-card__media img {
  transform: scale(1.04);
}

.offer-card__body {
  display: flex;
  flex-direction: column;
  flex: 1;
  gap: 0.2rem;
  padding: 0.7rem 0.75rem 0.75rem;
}

.offer-card__provider {
  margin: 0;
  font-size: var(--text-xs);
  font-weight: var(--font-weight-medium);
  color: var(--color-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.offer-card__title {
  margin: 0;
  font-size: var(--text-md);
  font-weight: var(--font-weight-semibold);
  line-height: 1.3;
}

.offer-card__title a {
  color: inherit;
  text-decoration: none;
}

.offer-card__title a:hover {
  color: var(--color-primary-hover);
}

.offer-card__offer {
  margin: 0;
  font-size: var(--text-sm);
  font-weight: var(--font-weight-semibold);
  color: var(--color-primary-hover);
  line-height: 1.35;
}

.offer-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem 0.5rem;
  margin: 0.1rem 0 0;
  font-size: var(--text-xs);
  color: var(--color-text-muted);
}

.offer-card__cta {
  align-self: flex-start;
  margin-top: auto;
  padding: var(--pill-pad-y-sm) var(--pill-pad-x-sm);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-semibold);
  line-height: var(--pill-line);
}

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

@media (max-width: 640px) {
  .offer-filters {
    grid-template-columns: 1fr;
  }
}

/* —— Parent dashboard —— */
.parent-dash {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

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

.parent-stat-card {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  padding: 0.9rem 1rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  background: var(--color-surface);
  box-shadow: var(--shadow-sm);
}

.parent-stat-card__value {
  font-size: var(--text-metric);
  font-weight: var(--font-weight-bold);
  letter-spacing: -0.02em;
  line-height: 1;
  color: var(--color-primary-hover);
}

.parent-stat-card__label {
  font-size: var(--text-sm);
  font-weight: var(--font-weight-medium);
  color: var(--color-text-muted);
}

a.parent-stat-card--link {
  color: inherit;
  text-decoration: none;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

a.parent-stat-card--link:hover {
  border-color: rgba(13, 148, 136, 0.35);
  box-shadow: var(--shadow-md);
  color: inherit;
  text-decoration: none;
}

.parent-panel {
  padding: 1.1rem 1.15rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  background: var(--color-surface);
  box-shadow: var(--shadow-sm);
}

.parent-panel__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.85rem;
}

.parent-panel__title {
  margin: 0 0 0.85rem;
  font-size: var(--text-section);
  font-weight: var(--font-weight-semibold);
  line-height: 1.3;
}

.parent-panel__header .parent-panel__title {
  margin-bottom: 0;
}

.parent-panel__empty {
  margin: 0;
  font-size: var(--text-md);
  color: var(--color-text-muted);
}

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

.parent-claim-card {
  padding: 0.9rem 1rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  background: #f8fafc;
}

.parent-claim-card--redeemed {
  opacity: 0.85;
}

.parent-claim-card__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.45rem;
}

.parent-claim-card__status {
  font-size: var(--text-xs);
  font-weight: var(--font-weight-semibold);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 0.15rem 0.45rem;
  border-radius: 999px;
}

.parent-claim-card__status.is-ready {
  background: #dcfce7;
  color: #166534;
}

.parent-claim-card__status.is-redeemed {
  background: #e2e8f0;
  color: #475569;
}

.parent-claim-card__code {
  font-family: var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);
  font-size: var(--text-sm);
  font-weight: var(--font-weight-semibold);
  letter-spacing: 0.04em;
  padding: 0.15rem 0.45rem;
  border: 1px dashed var(--color-border);
  border-radius: calc(var(--radius) - 2px);
  background: #fff;
  color: var(--color-primary-hover);
  white-space: nowrap;
}

.parent-claim-card__title {
  margin: 0 0 0.2rem;
  font-size: var(--text-md);
  font-weight: var(--font-weight-semibold);
  line-height: 1.3;
}

.parent-claim-card__offer {
  margin: 0 0 0.35rem;
  font-size: var(--text-sm);
  font-weight: var(--font-weight-medium);
  color: var(--color-primary-hover);
}

.parent-claim-card__meta {
  margin: 0;
  font-size: var(--text-sm);
  color: var(--color-text-muted);
  line-height: 1.35;
}


.parent-kids-split {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 0.85rem 1.1rem;
  align-items: start;
  margin-top: 0.75rem;
}

.parent-kids-split__add,
.parent-kids-split__list {
  min-width: 0;
  padding: 0.7rem 0.85rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  background: #f8fafc;
}

.parent-kids-split__label {
  margin: 0 0 0.55rem;
  font-size: var(--text-xs);
  font-weight: var(--font-weight-semibold);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--color-text-muted);
}

.parent-kid-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.parent-kid-list__item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.75rem;
  padding: 0.45rem 0;
  border-bottom: 1px solid var(--color-border);
  font-size: var(--text-md);
  font-weight: var(--font-weight-medium);
}

.parent-kid-list__item:first-child {
  border-top: 1px solid var(--color-border);
}

.parent-kid-list__item:last-child {
  border-bottom: none;
  padding-bottom: 0;
}

.parent-kid-add {
  display: grid;
  gap: 0.25rem;
}

.parent-kid-add .form-label {
  margin: 0.4rem 0 0;
  font-size: var(--text-xs);
  font-weight: var(--font-weight-medium);
  color: var(--color-text-muted);
  line-height: 1.2;
}

.parent-kid-add .form-label:first-child {
  margin-top: 0;
}

.parent-kid-add .form-control {
  height: 2rem;
  min-height: 2rem;
  padding: 0.3rem 0.55rem;
  font-family: var(--font);
  font-size: var(--text-md);
  font-weight: var(--font-weight-normal);
  line-height: 1.3;
  color: var(--color-text);
  border-radius: 8px;
}

.parent-kid-add .form-control::placeholder {
  font-size: var(--text-md);
  color: var(--color-text-muted);
  opacity: 1;
}

.parent-kid-add .btn {
  margin-top: 0.45rem;
  justify-self: start;
  padding: var(--pill-pad-y-sm) var(--pill-pad-x);
  font-size: var(--text-sm);
  font-weight: var(--font-weight-semibold);
  line-height: var(--pill-line);
}

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

.parent-account-card__item {
  min-width: 0;
}

.parent-account-card dt {
  margin: 0 0 0.15rem;
  font-size: var(--text-xs);
  font-weight: var(--font-weight-medium);
  color: var(--color-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.parent-account-card dd {
  margin: 0;
  font-size: var(--text-md);
  font-weight: var(--font-weight-medium);
  overflow-wrap: anywhere;
  line-height: 1.3;
}

@media (max-width: 900px) {
  .parent-account-card {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 800px) {
  .parent-dash__split,
  .parent-claim-grid,
  .parent-kids-split {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 520px) {
  .parent-account-card {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 520px) {
  .parent-dash__stats {
    grid-template-columns: 1fr;
  }
}

.coupon-panel {
  margin: 0.85rem 0 0;
  padding: 1rem 1.1rem;
  border: 1px dashed var(--color-border);
  border-radius: var(--radius);
  background: #fafbff;
}

.coupon-panel--generated {
  border-style: solid;
  border-color: var(--color-primary);
  background: #f0f7ff;
}

.coupon-panel__title {
  font-size: var(--text-section);
  font-weight: var(--font-weight-semibold);
  margin: 0 0 0.35rem;
}

.coupon-panel__lead {
  margin: 0 0 0.75rem;
  font-size: 0.9rem;
}

.coupon-panel__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  margin-top: 0.75rem;
}

.coupon-panel__fine-print {
  margin: 0.65rem 0 0;
}

.coupon-generate-form {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 0.65rem;
}

.coupon-generate-form__field {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}

.coupon-generate-form__label {
  font-size: 0.78rem;
  font-weight: 500;
  color: var(--color-text-muted);
}

.coupon-ticket {
  padding: 0.85rem 1rem;
  border-radius: var(--radius);
  background: #fff;
  border: 1px solid var(--color-border);
  text-align: center;
}

.coupon-ticket__label {
  margin: 0 0 0.35rem;
  font-size: 0.82rem;
  color: var(--color-text-muted);
}

.coupon-ticket__code {
  margin: 0;
  font-size: var(--text-h1);
  font-weight: var(--font-weight-bold);
  letter-spacing: 0.06em;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  color: var(--color-primary);
}

.coupon-ticket__expiry {
  margin: 0.45rem 0 0;
  font-size: 0.88rem;
}

.coupon-ticket__location {
  margin: 0.35rem 0 0;
}

.coupon-redeem-panel {
  max-width: 36rem;
  padding: 1rem 1.1rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  background: var(--color-surface);
}

.coupon-redeem-panel__title {
  font-size: var(--text-section);
  font-weight: var(--font-weight-semibold);
  margin: 0 0 0.35rem;
}

.coupon-redeem-panel__hint {
  margin: 0 0 0.85rem;
  font-size: 0.9rem;
  color: var(--color-text-muted);
}

.coupon-redeem-form__row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.coupon-redeem-form__input {
  flex: 1 1 12rem;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.coupon-redeem-panel__meta {
  margin: 0.75rem 0 0;
}

.coupon-redeem-result {
  max-width: 36rem;
  margin-top: 1rem;
  padding: 0.85rem 1rem;
  border-radius: var(--radius);
  background: #ecfdf5;
  border: 1px solid #a7f3d0;
}

.coupon-redeem-result__title {
  font-size: 0.95rem;
  font-weight: 600;
  margin: 0 0 0.5rem;
}

.coupon-redeem-result__facts {
  margin: 0;
  font-size: 0.88rem;
}

.coupon-redeem-result__facts dt {
  font-weight: 600;
  margin-top: 0.35rem;
}

.coupon-redeem-result__facts dd {
  margin: 0.1rem 0 0;
}

.provider-sign-in-panel,
.provider-locations {
  max-width: 36rem;
  margin-bottom: 1rem;
}

.provider-sign-in-panel__title,
.provider-locations__title {
  font-size: 1rem;
  font-weight: 600;
  margin: 0 0 0.35rem;
}

.provider-sign-in-form__field {
  margin-bottom: 0.75rem;
}

.provider-sign-in-form__label {
  display: block;
  font-size: 0.78rem;
  font-weight: 500;
  margin-bottom: 0.25rem;
}

.provider-sign-in-form__input {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

.provider-redeem-header {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
}

.provider-locations__list {
  margin: 0;
  padding-left: 1.1rem;
  font-size: 0.9rem;
}

.provider-locations__list li {
  margin-bottom: 0.25rem;
}

.admin-issued-link {
  margin: 1rem 0;
  padding: 1rem;
  border: 1px solid #a7f3d0;
  border-radius: var(--radius);
  background: #ecfdf5;
}

.admin-issued-link__title {
  font-size: 1rem;
  margin: 0 0 0.35rem;
}

.admin-issued-link__code {
  display: block;
  word-break: break-all;
  font-size: 0.85rem;
}

.admin-coupon-status {
  display: inline-flex;
  align-items: center;
  padding: 0.18rem 0.5rem;
  border-radius: var(--radius-pill);
  font-size: var(--pill-font-sm);
  font-weight: var(--pill-weight);
  line-height: var(--pill-line);
  border: 1px solid transparent;
}

.admin-coupon-status--active {
  background: var(--chip-loved-bg);
  color: var(--chip-loved-text);
  border-color: var(--chip-loved-border);
}

.admin-coupon-status--redeemed {
  background: var(--chip-outcome-bg);
  color: var(--chip-outcome-text);
  border-color: var(--chip-outcome-border);
}

.btn-google {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: var(--pill-pad-y) var(--pill-pad-x);
  border: 1px solid var(--chip-border);
  border-radius: var(--radius-pill);
  background: var(--chip-bg);
  color: var(--chip-text);
  font-size: var(--pill-font);
  font-weight: var(--font-weight-medium);
  line-height: var(--pill-line);
}

.btn-google:hover {
  background: var(--chip-hover-bg);
  border-color: var(--chip-hover-border);
  color: var(--chip-hover-text);
}

.auth-panel {
  max-width: 28rem;
  margin: 2rem auto;
  padding: 1.5rem;
  border: 1px solid var(--border, #e5e7eb);
  border-radius: var(--radius);
  background: #fff;
}

.auth-panel--narrow {
  max-width: 24rem;
}

.auth-panel h1 {
  font-size: var(--text-h1);
  font-weight: var(--font-weight-bold);
  letter-spacing: -0.015em;
  line-height: 1.25;
  margin: 0 0 0.3rem;
}

.auth-panel > p {
  margin: 0 0 1rem;
  color: var(--color-text-muted);
  font-size: var(--text-lead);
  line-height: 1.55;
}

.auth-providers {
  display: grid;
  gap: 0.6rem;
  margin: 1.1rem 0;
}

.auth-provider-btn {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.6rem 0.9rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  background: var(--color-surface);
  color: var(--color-text);
  font-size: var(--text-base);
  font-weight: var(--font-weight-medium);
  text-decoration: none;
  line-height: 1.2;
}

.auth-provider-btn:hover {
  border-color: var(--color-primary);
  background: #f8fffe;
  color: var(--color-text);
}

.auth-provider-btn__icon {
  flex: 0 0 auto;
}

.auth-provider-btn--disabled {
  opacity: 0.55;
  cursor: not-allowed;
  pointer-events: none;
  background: #f8fafc;
}

.auth-provider-btn__badge {
  margin-left: auto;
  padding: 0.14rem 0.5rem;
  border-radius: var(--radius-pill);
  background: var(--chip-meta-bg);
  color: var(--chip-meta-text);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-semibold);
}

.auth-panel__fine-print {
  margin: 0.75rem 0 0;
  font-size: var(--text-sm);
  color: var(--color-text-muted);
}

.auth-form__field {
  margin-bottom: 1rem;
}

.auth-form__field label {
  display: block;
  font-weight: 500;
  margin-bottom: 0.25rem;
}

.admin-nav,
.provider-nav {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem 1.25rem;
  margin-bottom: 1.25rem;
  padding: 0.65rem 0.85rem;
  border-radius: var(--radius);
  background: #f8fafc;
  border: 1px solid #e2e8f0;
}

.admin-nav a,
.provider-nav a {
  font-size: var(--text-md);
  font-weight: var(--font-weight-medium);
  text-decoration: none;
}

.admin-nav__logout,
.provider-nav__logout {
  margin-left: auto;
}

.admin-form-panel {
  max-width: 40rem;
  padding: 1.25rem;
  border: 1px solid #e2e8f0;
  border-radius: var(--radius);
  background: #fff;
}

/* Standard section heading inside portal panels (matches coupon-redeem-panel__title). */
.portal-section-title {
  font-size: var(--text-section);
  font-weight: var(--font-weight-semibold);
  margin: 0 0 0.6rem;
}

.admin-form__field {
  margin-bottom: 1rem;
}

.admin-form__field label {
  display: block;
  font-weight: 500;
  margin-bottom: 0.25rem;
}

.admin-form__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}

.admin-form--wide {
  max-width: none;
}

.admin-form--inline {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  gap: 0.75rem;
}

.admin-form__fieldset {
  margin: 1.25rem 0;
  padding: 1rem;
  border: 1px dashed #cbd5e1;
  border-radius: var(--radius);
}

.admin-form__checkbox label {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-weight: 400;
}

.provider-dashboard-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
  gap: 1rem;
}

.provider-dashboard-card {
  display: block;
  padding: 1rem 1.1rem;
  border: 1px solid #e2e8f0;
  border-radius: var(--radius);
  background: #fff;
  text-decoration: none;
  color: inherit;
}

.provider-dashboard-card:hover {
  border-color: #94a3b8;
  color: inherit;
}

.provider-dashboard-card h2 {
  font-size: var(--text-section);
  font-weight: var(--font-weight-semibold);
  margin: 0 0 0.35rem;
}

.provider-dashboard-card p {
  margin: 0;
  font-size: var(--text-md);
  font-weight: var(--font-weight-normal);
  color: #64748b;
  line-height: 1.45;
}

.provider-dashboard-card__meta {
  display: inline-block;
  margin-top: 0.65rem;
  font-size: var(--text-sm);
  font-weight: var(--font-weight-semibold);
  color: #2563eb;
}

.provider-dashboard-card--muted {
  background: #f8fafc;
  pointer-events: none;
}

.admin-table__clickable-row {
  cursor: pointer;
}

.admin-table__clickable-row:hover {
  background: #f8fafc;
}

/* Static pages (Contact, etc.) — match detail-v3 / page rail */
.kp-static {
  max-width: var(--page-column);
  margin: 0 auto;
  padding: 0 var(--page-gutter) 2rem;
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  font-family: var(--font);
}

.kp-static__hero {
  padding: 1.25rem 1.35rem;
}

.kp-static__title {
  margin: 0;
  font-size: var(--text-h1-home);
  font-weight: var(--font-weight-bold);
  letter-spacing: -0.02em;
  line-height: 1.2;
  color: var(--kp-text, #243447);
}

.kp-static__lead {
  margin: 0.45rem 0 0;
  font-size: var(--text-base);
  line-height: 1.5;
  color: var(--kp-muted, #64748b);
  max-width: 40rem;
}

.kp-static__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 0.85rem;
}

.kp-static__section-title {
  margin: 0 0 0.55rem;
  font-size: var(--text-md);
  font-weight: var(--font-weight-semibold);
  letter-spacing: -0.01em;
  color: var(--kp-text, #243447);
  line-height: 1.3;
}

.kp-static__body {
  margin: 0 0 0.85rem;
  font-size: var(--text-sm);
  line-height: 1.5;
  color: var(--kp-muted, #64748b);
}

.kp-static__email-row {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  margin: 0 0 0.85rem;
}

.kp-static__label {
  font-size: var(--text-xs);
  font-weight: var(--font-weight-semibold);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--kp-muted, #64748b);
}

.kp-static__email {
  font-size: var(--text-base);
  font-weight: var(--font-weight-semibold);
  color: var(--color-primary-hover);
  text-decoration: none;
  word-break: break-word;
}

.kp-static__email:hover {
  text-decoration: underline;
  color: var(--color-primary);
}

.kp-static__note {
  margin: 0.25rem 0 0;
  font-size: var(--text-sm);
  line-height: 1.45;
  color: var(--kp-muted, #64748b);
}

.kp-static__note a {
  color: var(--color-primary-hover);
  font-weight: var(--font-weight-medium);
  text-decoration: none;
}

.kp-static__note a:hover {
  text-decoration: underline;
}

@media (max-width: 600px) {
  .kp-static {
    padding-bottom: 1.5rem;
  }

  .kp-static__title {
    font-size: var(--text-h1);
  }
}
