@import url("https://fonts.googleapis.com/css2?family=Source+Serif+4:ital,opsz,wght@0,8..60,300..700;1,8..60,300..700&family=Instrument+Sans:ital,wght@0,400..700;1,400..700&display=swap");

:root {
  --font: "Instrument Sans", Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --display: "Source Serif 4", Georgia, serif;
  --page: #faf8f4;
  --panel: #ffffff;
  --panel-soft: #f0f5ef;
  --panel-tint: #e7f0e9;
  --border: #e5e2d9;
  --border-green: #dde4dd;
  --brand: #2d6a4f;
  --brand-dark: #1b4332;
  --footer: #14231c;
  --text: #1f2a24;
  --text-strong: #17281f;
  --body: #55645b;
  --muted: #7a867d;
  --eyebrow: #4b7a63;
  --crisis: #a8442e;
  --crisis-bg: #f9eae3;
  --crisis-border: #eacdbf;
  --gold: #d9a441;
  --radius: 18px;
  --radius-lg: 22px;
}

html {
  background: var(--page);
  -webkit-tap-highlight-color: transparent;
}

body {
  background: var(--page) !important;
  color: var(--text) !important;
  font-family: var(--font) !important;
  letter-spacing: 0 !important;
}

body *,
body *::before,
body *::after {
  letter-spacing: 0 !important;
}

::selection {
  background: #cde3d2;
}

[data-scroll-row] {
  -ms-overflow-style: none;
  scrollbar-width: none;
}

[data-scroll-row]::-webkit-scrollbar {
  display: none;
}

a,
button,
.card,
.blog-card,
.facility-card,
.therapist-card,
.th-card,
.audio-card,
.collection-card,
.nearby-card,
.city-card,
.resource-card,
.grid-card,
[data-lift] {
  transition:
    background-color .18s ease,
    color .18s ease,
    border-color .18s ease,
    box-shadow .22s ease,
    transform .20s ease !important;
}

button:active {
  transform: translateY(1px);
}

h1,
h2,
.logo,
.logo-text,
.sober-logo-text,
.sec-title,
.blog-hero h1,
.single-header h1,
.single-post .content h2,
.aa-hero h1,
.hero-content h1,
.page-title h1,
.therapist-name,
.card-name,
.card-title,
.footer h4 {
  font-family: var(--display) !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
}

a:focus-visible,
button:focus-visible,
[role="button"]:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 2px solid var(--brand) !important;
  outline-offset: 3px !important;
}

.header,
.sober-header {
  background: rgba(250, 248, 244, 0.92) !important;
  -webkit-backdrop-filter: blur(12px) saturate(160%) !important;
  backdrop-filter: blur(12px) saturate(160%) !important;
  border-bottom: 1px solid rgba(27, 67, 50, 0.09) !important;
  box-shadow: none !important;
  font-family: var(--font) !important;
}

.header-inner,
.sober-header-inner {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  flex-wrap: nowrap !important;
  max-width: 1200px !important;
  min-height: 62px !important;
  height: auto !important;
  padding: 10px clamp(18px, 4vw, 32px) !important;
  gap: 18px !important;
}

.logo,
.sober-logo {
  gap: 11px !important;
  color: var(--brand-dark) !important;
  flex: 0 0 auto !important;
}

.sober-brand-mark,
.sober-logo-img,
.logo-mark {
  width: 37px !important;
  height: 37px !important;
  border-radius: 11px !important;
  box-shadow: 0 1px 2px rgba(23, 40, 31, 0.10) !important;
}

.logo .logo-text,
.sober-logo-text,
.sober-logo-text .accent {
  color: var(--brand-dark) !important;
  font-size: 19px !important;
  font-weight: 600 !important;
}

.header-right,
.sober-nav {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
}

.header-right {
  flex: 0 0 auto !important;
  flex-wrap: nowrap !important;
  margin-left: auto !important;
}

.sober-nav-links {
  display: flex !important;
  align-items: center !important;
  gap: 2px !important;
  flex-wrap: nowrap !important;
  min-width: 0 !important;
  overflow-x: auto !important;
  -webkit-overflow-scrolling: touch !important;
}

.homepage-nav {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 2px !important;
  flex: 1 1 auto !important;
  min-width: 0 !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  flex-wrap: nowrap !important;
  -webkit-overflow-scrolling: touch !important;
}

.homepage-nav a {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 36px !important;
  padding: 8px 13px !important;
  border-radius: 999px !important;
  color: #3d4a42 !important;
  font-family: var(--font) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  white-space: nowrap !important;
  flex: 0 0 auto !important;
}

.homepage-nav a:hover {
  background: #ecf1eb !important;
  color: var(--brand-dark) !important;
}

.sober-nav-link,
.sober-nav-crisis,
.sober-nav-cta {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 36px !important;
  padding: 8px 13px !important;
  border-radius: 999px !important;
  font-family: var(--font) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  white-space: nowrap !important;
}

.sober-nav-link {
  color: #3d4a42 !important;
  background: transparent !important;
}

.sober-nav-link:hover {
  background: #ecf1eb !important;
  color: var(--brand-dark) !important;
}

.sober-nav-crisis {
  background: var(--crisis-bg) !important;
  border: 1px solid var(--crisis-border) !important;
  color: var(--crisis) !important;
}

.sober-nav-cta {
  background: var(--brand-dark) !important;
  color: #f4f1e8 !important;
  padding-left: 18px !important;
  padding-right: 18px !important;
}

.sober-nav-cta:hover {
  background: var(--brand) !important;
  color: #f4f1e8 !important;
}

.saved-count-link {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;
  min-height: 36px !important;
  padding: 8px 13px !important;
  border-radius: 999px !important;
  background: #f6ede8 !important;
  border: 1px solid #e3c0b4 !important;
  color: #b14e33 !important;
  font-family: var(--font) !important;
  font-size: 13.5px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  text-decoration: none !important;
  white-space: nowrap !important;
}

.saved-count-link[hidden] {
  display: none !important;
}

.saved-count-link:hover {
  background: #f3e3db !important;
  color: #9f3f28 !important;
}

.saved-count-link .material-symbols-outlined {
  font-size: 17px !important;
  font-variation-settings: "FILL" 1 !important;
}

.desktop-header-link,
.desktop-provider-link,
.globe-btn,
.sober-city-button,
.sober-city-select,
.blog-pill,
.filter-tab {
  background: transparent !important;
  border: 0 !important;
  border-radius: 999px !important;
  color: #3d4a42 !important;
  box-shadow: none !important;
  font-family: var(--font) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
}

.desktop-header-link:hover,
.desktop-provider-link:hover,
.globe-btn:hover,
.sober-city-button:hover,
.blog-pill:hover {
  background: #ecf1eb !important;
  color: var(--brand-dark) !important;
}

.desktop-crisis-link,
.blog-crisis,
.mobile-city-secondary[href*="988"],
.desktop-hero-secondary[href*="988"] {
  background: var(--crisis-bg) !important;
  border: 1px solid var(--crisis-border) !important;
  color: var(--crisis) !important;
  border-radius: 999px !important;
  box-shadow: none !important;
  text-shadow: none !important;
}

.desktop-crisis-link:hover,
.blog-crisis:hover,
.mobile-city-secondary[href*="988"]:hover,
.desktop-hero-secondary[href*="988"]:hover {
  background: #f5dfd4 !important;
  color: var(--crisis) !important;
}

.header-search {
  display: none !important;
}

.search-expanded {
  background: var(--panel) !important;
  border: 1px solid var(--border) !important;
  border-radius: 26px !important;
  box-shadow: 0 14px 36px rgba(23, 40, 31, 0.10) !important;
  min-height: 66px !important;
  overflow: hidden !important;
}

.sf {
  padding: 13px 20px !important;
}

.sf-label {
  color: var(--muted) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
}

.sf-value {
  color: var(--text) !important;
  font-size: 14.5px !important;
  font-weight: 600 !important;
}

.s-div {
  background: #efede5 !important;
}

.s-btn,
.desktop-hero-primary,
.mobile-city-primary,
.blog-pill-primary,
.cta-bar a,
.action-btn.primary,
.therapist-btn.primary,
.fd-sticky-call {
  background: var(--brand) !important;
  border-color: var(--brand) !important;
  color: #f4f1e8 !important;
  border-radius: 999px !important;
  box-shadow: none !important;
}

.s-btn:hover,
.desktop-hero-primary:hover,
.mobile-city-primary:hover,
.blog-pill-primary:hover,
.cta-bar a:hover,
.action-btn.primary:hover,
.therapist-btn.primary:hover,
.fd-sticky-call:hover {
  background: var(--brand-dark) !important;
  color: #f4f1e8 !important;
}

.mobile-listing-cta,
.trust-band,
.directory-cta,
.coming-soon,
.source-box {
  background: var(--panel) !important;
  border: 1px solid var(--border) !important;
  border-radius: var(--radius) !important;
  box-shadow: none !important;
}

.mobile-listing-cta {
  border-left: 0 !important;
}

.mobile-listing-main b,
.trust-band .material-symbols-outlined,
.sec-link,
.blog-card .read,
.source-box a {
  color: var(--brand) !important;
}

.content-tabs,
main,
.blog-wrap,
.single-wrap,
.audio-page,
.container,
.content,
.cards-section,
.therapist-section {
  background: var(--page) !important;
}

.desktop-hero,
.mobile-city-intro {
  position: relative !important;
  overflow: hidden !important;
  background: radial-gradient(1100px 520px at 88% -12%, #e2eee4, rgba(226, 238, 228, 0)), var(--page) !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  color: var(--text) !important;
  text-shadow: none !important;
}

.desktop-hero::before,
.desktop-hero::after,
.mobile-city-intro::before,
.mobile-city-intro::after {
  display: none !important;
}

.desktop-hero {
  max-width: 1200px !important;
  margin: 0 auto !important;
  padding: clamp(44px, 6.5vw, 76px) clamp(18px, 4vw, 32px) clamp(40px, 5vw, 56px) !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: clamp(28px, 5vw, 56px) !important;
  min-height: 0 !important;
}

.desktop-hero.has-city-hero {
  grid-template-columns: minmax(0, 1.08fr) minmax(300px, 0.92fr) !important;
}

.mobile-city-intro {
  min-height: 0 !important;
  margin: 0 !important;
  padding: 36px clamp(18px, 4vw, 28px) 30px !important;
}

.desktop-hero-copy::before,
.mobile-city-intro::marker {
  display: none !important;
}

.desktop-hero-copy::before,
.mobile-city-intro h2::before {
  content: "Independent recovery directory";
  display: flex;
  align-items: center;
  gap: 9px;
  margin-bottom: 18px;
  color: var(--eyebrow);
  font-family: var(--font);
  font-size: 12.5px;
  font-weight: 700;
  text-transform: uppercase;
}

.desktop-hero-copy::before {
  content: "Independent recovery directory";
}

.desktop-hero h2,
.mobile-city-intro h2 {
  color: var(--text-strong) !important;
  font-family: var(--display) !important;
  font-size: clamp(36px, 4.6vw, 58px) !important;
  line-height: 1.06 !important;
  font-weight: 600 !important;
  text-shadow: none !important;
  max-width: 620px !important;
}

.desktop-hero h2 em,
.mobile-city-intro h2 em {
  color: var(--brand) !important;
  font-style: italic !important;
}

.mobile-city-intro h2 {
  font-size: clamp(32px, 10vw, 44px) !important;
}

.desktop-hero-copy > p,
.mobile-city-intro > p {
  color: var(--body) !important;
  font-size: 16.5px !important;
  line-height: 1.62 !important;
  max-width: 540px !important;
  text-shadow: none !important;
}

.hero-search-card {
  width: min(100%, 560px) !important;
  min-height: 92px !important;
  display: grid !important;
  grid-template-columns: 1fr 1fr 1fr auto !important;
  align-items: stretch !important;
  gap: 0 !important;
  margin-top: 28px !important;
  padding: 0 !important;
  background: var(--panel) !important;
  border: 1px solid var(--border) !important;
  border-radius: 26px !important;
  box-shadow: 0 18px 42px rgba(23, 40, 31, 0.10) !important;
  color: var(--text) !important;
  cursor: pointer !important;
  font-family: var(--font) !important;
  overflow: hidden !important;
  text-align: left !important;
}

.hero-search-card:hover {
  border-color: var(--border-green) !important;
  box-shadow: 0 22px 48px rgba(23, 40, 31, 0.13) !important;
}

.hero-search-seg {
  display: flex !important;
  min-width: 0 !important;
  flex-direction: column !important;
  justify-content: center !important;
  padding: 16px 20px !important;
  border-right: 1px solid #efede5 !important;
}

.hero-search-seg span {
  color: var(--muted) !important;
  font-size: 11px !important;
  font-weight: 750 !important;
  line-height: 1.1 !important;
  text-transform: uppercase !important;
}

.hero-search-seg b {
  color: var(--text) !important;
  display: block !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  line-height: 1.18 !important;
  margin-top: 5px !important;
}

.hero-search-icon {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 76px !important;
}

.hero-search-icon .material-symbols-outlined {
  width: 50px !important;
  height: 50px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: var(--brand) !important;
  border-radius: 999px !important;
  color: #f4f1e8 !important;
  font-size: 24px !important;
}

.desktop-hero-links,
.mobile-city-actions {
  display: flex !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: 10px !important;
  margin-top: 28px !important;
}

.hero-search-card + .desktop-hero-links {
  margin-top: 16px !important;
}

.desktop-hero-primary,
.desktop-hero-secondary,
.mobile-city-primary,
.mobile-city-secondary {
  min-height: 46px !important;
  padding: 0 18px !important;
  font-family: var(--font) !important;
  font-size: 14px !important;
  font-weight: 650 !important;
}

.desktop-hero-actions {
  display: grid !important;
  grid-column: 1 / -1 !important;
  grid-row: 2 !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 14px !important;
}

.desktop-action,
.mobile-city-stat {
  background: var(--panel) !important;
  border: 1px solid var(--border) !important;
  border-radius: var(--radius) !important;
  box-shadow: none !important;
  color: var(--text) !important;
  text-shadow: none !important;
}

.desktop-action {
  padding: 18px 20px !important;
}

.desktop-action:hover,
.mobile-city-stat:hover {
  border-color: var(--brand) !important;
  box-shadow: 0 10px 26px rgba(23, 40, 31, 0.08) !important;
}

.show-all-grid.active {
  margin-top: 18px !important;
}

.show-all-filters {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  flex-wrap: wrap !important;
  margin: 0 0 20px !important;
}

.show-all-filter-row {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  min-width: 0 !important;
  flex: 1 1 auto !important;
  overflow-x: auto !important;
  padding-bottom: 2px !important;
  scrollbar-width: none !important;
}

.show-all-filter-row::-webkit-scrollbar {
  display: none !important;
}

.show-filter-pill {
  flex: 0 0 auto !important;
  padding: 7px 15px !important;
  border: 1px solid var(--border-green) !important;
  border-radius: 999px !important;
  background: var(--panel) !important;
  color: #3d4a42 !important;
  cursor: pointer !important;
  font-family: var(--font) !important;
  font-size: 13.5px !important;
  font-weight: 650 !important;
  white-space: nowrap !important;
}

.show-filter-pill.active,
.show-filter-pill:hover {
  background: #ecf1eb !important;
  border-color: var(--brand) !important;
  color: var(--brand-dark) !important;
}

.show-all-sort {
  display: flex !important;
  align-items: center !important;
  gap: 14px !important;
  margin-left: auto !important;
}

.show-all-count {
  color: var(--muted) !important;
  font-size: 13.5px !important;
  white-space: nowrap !important;
}

.show-sort-label {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  padding: 7px 12px !important;
  border: 1px solid var(--border-green) !important;
  border-radius: 999px !important;
  background: var(--panel) !important;
  color: #3d4a42 !important;
}

.show-sort-label .material-symbols-outlined {
  color: #64756b !important;
  font-size: 17px !important;
}

.show-sort-select {
  appearance: none !important;
  border: 0 !important;
  background: transparent !important;
  color: #3d4a42 !important;
  cursor: pointer !important;
  font-family: var(--font) !important;
  font-size: 13.5px !important;
  font-weight: 650 !important;
  outline: 0 !important;
}

.show-all-wrap {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(252px, 1fr)) !important;
  gap: 16px !important;
}

.show-all-card {
  position: relative !important;
  display: flex !important;
  flex-direction: column !important;
  min-width: 0 !important;
  overflow: hidden !important;
  background: var(--panel) !important;
  border: 1px solid var(--border) !important;
  border-radius: 18px !important;
  box-shadow: none !important;
  color: var(--text) !important;
  cursor: pointer !important;
}

.show-all-card:hover {
  border-color: #d5ded5 !important;
  box-shadow: 0 12px 30px rgba(23, 40, 31, 0.10) !important;
}

.show-all-card .card-photo {
  aspect-ratio: auto !important;
  height: 166px !important;
  border-radius: 0 !important;
  overflow: hidden !important;
}

.show-all-card .card-photo img {
  width: 100% !important;
  height: 100% !important;
  display: block !important;
  object-fit: cover !important;
}

.show-all-card .card-info {
  display: flex !important;
  flex: 1 !important;
  flex-direction: column !important;
  gap: 8px !important;
  padding: 14px 16px 16px !important;
}

.show-all-card .card-r1 {
  display: flex !important;
  align-items: flex-start !important;
  justify-content: space-between !important;
  gap: 10px !important;
}

.show-all-card .card-name,
.show-all-card .card-name-link {
  color: var(--text) !important;
  display: block !important;
  font-family: var(--font) !important;
  font-size: 15.5px !important;
  font-weight: 700 !important;
  line-height: 1.32 !important;
  max-height: 42px !important;
  overflow: hidden !important;
  text-decoration: none !important;
}

.show-all-card .card-star {
  color: var(--text) !important;
  flex: 0 0 auto !important;
  font-size: 13.5px !important;
  font-weight: 700 !important;
}

.show-all-card .card-star svg {
  color: var(--gold) !important;
}

.show-all-card .card-rev {
  color: var(--muted) !important;
  font-weight: 500 !important;
}

.show-all-card .card-sub {
  color: var(--body) !important;
  font-size: 13px !important;
  margin: 0 !important;
}

.show-all-card .card-cta {
  margin-top: auto !important;
  min-height: 36px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border: 1.5px solid var(--brand) !important;
  border-radius: 999px !important;
  background: transparent !important;
  color: var(--brand) !important;
  font-size: 13.5px !important;
  font-weight: 700 !important;
}

.show-all-card .card-heart {
  background: rgba(255, 255, 255, 0.94) !important;
  border: 1px solid var(--border-green) !important;
}

.show-all-card .card-heart.active svg path {
  fill: #b14e33 !important;
  stroke: #b14e33 !important;
}

.show-all-empty {
  display: none;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 10px;
  padding: 40px 20px 8px;
  text-align: center;
}

.show-all-empty > .material-symbols-outlined {
  width: 56px !important;
  height: 56px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: #edf3ec !important;
  border-radius: 999px !important;
  color: var(--brand) !important;
  font-size: 28px !important;
}

.show-all-empty b {
  color: var(--text-strong) !important;
  font-family: var(--display) !important;
  font-size: 19px !important;
  font-weight: 600 !important;
}

.show-all-empty p {
  max-width: 340px !important;
  margin: 0 !important;
  color: var(--body) !important;
  font-size: 14px !important;
  line-height: 1.6 !important;
}

.desktop-action .material-symbols-outlined,
.mobile-city-stat .material-symbols-outlined,
.card-ph .material-symbols-outlined {
  color: var(--brand) !important;
}

.desktop-action,
.desktop-action *,
.desktop-action small,
.desktop-action span:last-child,
.mobile-city-stat b,
.mobile-city-stat span {
  color: var(--text) !important;
}

.desktop-action small,
.mobile-city-stat span {
  color: var(--body) !important;
}

.mobile-city-stats {
  gap: 10px !important;
}

.sec {
  max-width: 1200px !important;
  margin: 0 auto !important;
  padding-left: clamp(18px, 4vw, 32px) !important;
  padding-right: clamp(18px, 4vw, 32px) !important;
}

.sec-head {
  align-items: flex-end !important;
}

.sec-title {
  color: var(--text-strong) !important;
  font-size: clamp(27px, 3.4vw, 38px) !important;
}

.rnav-a,
.show-all-back,
.carousel-btn,
.card-map-toggle {
  background: var(--panel) !important;
  border: 1px solid var(--border-green) !important;
  border-radius: 999px !important;
  color: #3d4a42 !important;
  box-shadow: none !important;
}

.crow {
  gap: 16px !important;
}

.card,
.blog-card,
.facility-card,
.therapist-card,
.th-card,
.audio-card,
.collection-card,
.nearby-card,
.info-card,
.seo-faq,
.fd-samhsa,
.add-facility-card {
  background: var(--panel) !important;
  border: 1px solid var(--border) !important;
  border-radius: var(--radius) !important;
  box-shadow: none !important;
  overflow: hidden;
}

.card:hover,
.blog-card:hover,
.facility-card:hover,
.therapist-card:hover,
.th-card:hover,
.audio-card:hover,
.collection-card:hover,
.nearby-card:hover {
  border-color: #d5ded5 !important;
  box-shadow: 0 12px 30px rgba(23, 40, 31, 0.10) !important;
  transform: translateY(-3px);
}

#recovery-blog-section .blog-card-link:hover .blog-card,
#explore-cities-section .city-card:hover,
.city-card:hover {
  border-color: #d5ded5 !important;
  box-shadow: 0 12px 30px rgba(23, 40, 31, 0.10) !important;
  transform: translateY(-3px) !important;
}

[data-lift]:hover {
  border-color: #d5ded5 !important;
  box-shadow: 0 12px 30px rgba(23, 40, 31, 0.10) !important;
  transform: translateY(-3px) !important;
}

[data-lift]:hover img {
  transform: scale(1.04);
}

.city-card-photo img,
.blog-card img,
.card-photo img {
  transition: transform .55s cubic-bezier(.22, 1, .36, 1) !important;
}

#recovery-blog-section .blog-card-link:hover .blog-card img,
#explore-cities-section .city-card:hover .city-card-photo img,
.city-card:hover .city-card-photo img,
.card:hover .card-photo img {
  transform: scale(1.04);
}

.card-photo,
.card-image,
.card-carousel,
.blog-card img,
.placeholder-img,
.single-featured-image,
.th-photo {
  background: #e7ede6 !important;
}

.card-photo {
  height: 166px !important;
  border-radius: 0 !important;
}

.card-info,
.card-content,
.blog-card-body {
  padding: 14px 16px 16px !important;
}

.card-name,
.card-title,
.blog-card h2 a,
.therapist-name {
  color: var(--text) !important;
  font-size: 15.5px !important;
  line-height: 1.32 !important;
}

.card-sub,
.card-address,
.blog-card .meta,
.blog-card .excerpt,
.therapist-title,
.therapist-practice,
.therapist-bio,
.meeting-details {
  color: var(--body) !important;
}

.card-star,
.card-star svg,
.rating,
.fd-rate-stars {
  color: var(--gold) !important;
}

.card-cta,
.action-btn,
.therapist-btn.secondary,
.fd-sticky-web {
  background: var(--panel) !important;
  border: 1.5px solid var(--brand) !important;
  border-radius: 999px !important;
  color: var(--brand) !important;
  font-weight: 650 !important;
}

.card-cta:hover,
.action-btn:hover,
.therapist-btn.secondary:hover,
.fd-sticky-web:hover {
  background: var(--brand) !important;
  color: #ffffff !important;
}

.card-heart {
  background: rgba(255, 255, 255, 0.94) !important;
  border: 1px solid rgba(229, 226, 217, 0.9) !important;
  box-shadow: 0 8px 24px rgba(23, 40, 31, 0.14) !important;
}

.blog-hero,
.single-header,
.aa-hero,
.hero,
.hero-section,
.top-bar {
  background: radial-gradient(1100px 520px at 88% -12%, #e2eee4, rgba(226, 238, 228, 0)), var(--page) !important;
  border-bottom: 1px solid #e9e6dd !important;
  color: var(--text) !important;
}

.blog-hero h1,
.single-header h1,
.aa-hero h1,
.hero-content h1,
.page-title h1 {
  color: var(--text-strong) !important;
  font-size: clamp(32px, 4.6vw, 54px) !important;
  line-height: 1.06 !important;
}

.blog-hero p,
.single-header .meta,
.aa-hero p,
.hero-content p,
.hero-sub,
.page-title p {
  color: var(--body) !important;
  opacity: 1 !important;
}

.blog-eyebrow,
.badge,
.card-badge,
.specialty-tag,
.badge-verified,
.badge-insurance {
  background: var(--panel-tint) !important;
  color: var(--brand) !important;
  border-color: var(--border-green) !important;
  border-radius: 999px !important;
  font-family: var(--font) !important;
  font-weight: 700 !important;
  text-transform: none !important;
}

.hero-content h1 span {
  color: var(--brand) !important;
}

.lead-form-wrapper,
.filter-bar,
.audio-toolbar,
.filters,
.explore-care,
.quick-filters {
  background: var(--panel) !important;
  border: 1px solid var(--border) !important;
  border-radius: var(--radius) !important;
  box-shadow: none !important;
}

#cityLinks,
.footer {
  background: var(--footer) !important;
  color: #f4f1e8 !important;
}

#cityLinks h3,
#cityLinks p,
.footer h4,
.footer p,
.footer-bottom,
.footer-bottom-left,
.footer-bottom-right,
.footer-col a,
.footer a {
  color: #f4f1e8 !important;
}

#cityLinks a,
.footer-col a {
  background: rgba(244, 241, 232, 0.08) !important;
  border: 1px solid rgba(244, 241, 232, 0.10) !important;
  border-radius: 999px !important;
  color: #f4f1e8 !important;
  opacity: 1 !important;
}

#cityLinks a:hover,
.footer-col a:hover {
  background: rgba(244, 241, 232, 0.16) !important;
}

.directory-disclaimer,
.footer-stripe,
.cross-link-la {
  background: #101d16 !important;
  border-color: rgba(244, 241, 232, 0.12) !important;
  color: rgba(244, 241, 232, 0.74) !important;
}

.directory-disclaimer p,
.directory-disclaimer strong,
.directory-disclaimer a,
.footer-stripe a,
.footer-stripe span,
.cross-link-la a {
  color: rgba(244, 241, 232, 0.86) !important;
}

.datastrip {
  background: #1b4332 !important;
  color: #f4f1e8 !important;
}

.ds-kicker,
.ds-sub,
.ds-l {
  color: rgba(244, 241, 232, 0.72) !important;
}

.ds-n,
.datastrip h2 {
  color: #f4f1e8 !important;
}

.ds-cta {
  background: #f4f1e8 !important;
  color: var(--brand-dark) !important;
  border-radius: 999px !important;
}

.meeting-card,
.track,
.book-card,
.reflection-card {
  background: var(--panel) !important;
  border: 1px solid var(--border) !important;
  border-radius: var(--radius) !important;
}

.library-topbar {
  background: rgba(250, 248, 244, 0.92) !important;
  border-bottom: 1px solid rgba(27, 67, 50, 0.09) !important;
  box-shadow: none !important;
  -webkit-backdrop-filter: blur(12px) saturate(160%) !important;
  backdrop-filter: blur(12px) saturate(160%) !important;
}

.library-topbar .brand {
  color: var(--brand-dark) !important;
  font-family: var(--display) !important;
  font-weight: 600 !important;
  text-decoration: none !important;
}

.library-topbar .nav a {
  background: transparent !important;
  border: 0 !important;
  border-radius: 999px !important;
  color: #3d4a42 !important;
  font-family: var(--font) !important;
  font-weight: 600 !important;
  box-shadow: none !important;
}

.library-topbar .nav a.active,
.library-topbar .nav a:hover {
  background: #ecf1eb !important;
  color: var(--brand-dark) !important;
}

.public-hero {
  background: radial-gradient(1100px 520px at 88% -12%, #e2eee4, rgba(226, 238, 228, 0)), var(--page) !important;
  color: var(--text) !important;
  min-height: 360px !important;
  align-items: end !important;
}

.public-hero h1 {
  color: var(--text-strong) !important;
  font-family: var(--display) !important;
  font-size: clamp(38px, 5vw, 62px) !important;
  line-height: 1.06 !important;
  text-shadow: none !important;
}

.public-hero .sub {
  color: var(--body) !important;
  font-family: var(--font) !important;
  font-size: 17px !important;
  text-shadow: none !important;
}

.library-shell,
.shell {
  background: var(--page) !important;
}

.public-search {
  margin-top: -34px !important;
  border-color: var(--border) !important;
  box-shadow: 0 14px 36px rgba(23, 40, 31, 0.10) !important;
}

.library-tools-copy h2,
.panel-b > h1,
.panel-title,
.talk-card h3 {
  color: var(--text-strong) !important;
  font-family: var(--display) !important;
  font-weight: 600 !important;
}

.library-search-input,
.speaker-library .input {
  border-color: var(--border) !important;
  border-radius: 999px !important;
  font-family: var(--font) !important;
}

.library-search-input:focus,
.input:focus {
  border-color: var(--brand) !important;
  box-shadow: 0 0 0 3px rgba(45, 106, 79, 0.12) !important;
}

.talk-card-status .pill.good,
.pill.good {
  background: var(--panel-tint) !important;
  color: var(--brand) !important;
}

.talk-card-action,
.talk-card-footer,
.seg time {
  color: var(--brand) !important;
}

.talk-card-action {
  border-color: var(--border-green) !important;
}

.audio-box,
.caption-bar {
  background: var(--footer) !important;
  color: #f4f1e8 !important;
  border-color: rgba(244, 241, 232, 0.16) !important;
  border-radius: var(--radius) !important;
}

.caption-kicker {
  color: #a7c4b0 !important;
}

.seg.active {
  border-color: var(--brand) !important;
  box-shadow: 0 0 0 2px rgba(45, 106, 79, 0.12) !important;
}

@media (max-width: 744px) {
  html,
  body {
    overflow-x: hidden !important;
  }

  .header {
    position: sticky !important;
  }

  .header-inner,
  .sober-header-inner {
    padding: 10px 18px !important;
  }

  .logo .logo-text,
  .sober-logo-text {
    font-size: 18px !important;
  }

  .desktop-header-link,
  .desktop-crisis-link,
  .desktop-provider-link,
  .saved-count-link,
  .homepage-nav,
  .sober-nav-links,
  .sober-nav-crisis,
  .sober-nav-cta {
    display: none !important;
  }

  .mobile-city-intro h2::before {
    margin-bottom: 14px;
    font-size: 11.5px;
  }

  .mobile-city-intro h2 {
    display: block !important;
    max-width: calc(100vw - 40px) !important;
    font-size: 31px !important;
    line-height: 1.08 !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
  }

  .mobile-city-intro > p,
  .hero-subhead-copy {
    max-width: 100% !important;
  }

  .mobile-city-actions {
    align-items: stretch !important;
    flex-direction: column !important;
  }

  .hero-search-card {
    grid-template-columns: 1fr !important;
    min-height: 0 !important;
    width: 100% !important;
    border-radius: 20px !important;
  }

  .hero-search-seg {
    border-right: 0 !important;
    border-bottom: 1px solid #efede5 !important;
    padding: 14px 16px !important;
  }

  .hero-search-icon {
    width: 100% !important;
    padding: 12px 0 14px !important;
  }

  .mobile-city-primary,
  .mobile-city-secondary {
    flex: 1 1 auto !important;
    width: 100% !important;
  }

  .mobile-city-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    margin-top: 18px !important;
  }

  .sec {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  .card {
    border-radius: 16px !important;
  }

  .show-all-filters {
    align-items: stretch !important;
    gap: 10px !important;
  }

  .show-all-filter-row {
    flex-basis: 100% !important;
    order: 1 !important;
  }

  .show-all-sort {
    width: 100% !important;
    order: 2 !important;
    align-items: flex-start !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
    margin-left: 0 !important;
    min-width: 0 !important;
    gap: 8px !important;
  }

  .show-sort-label {
    max-width: 100% !important;
  }

  .show-all-wrap {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px !important;
  }

  .show-all-card {
    border-radius: 16px !important;
  }

  .show-all-card .card-photo {
    height: 132px !important;
  }

  .show-all-card .card-info {
    padding: 12px !important;
  }

  .show-all-card .card-r1 {
    flex-direction: column !important;
    gap: 6px !important;
  }

  .show-all-card .card-name,
  .show-all-card .card-name-link {
    font-size: 13.5px !important;
  }

  .show-all-card .card-cta {
    min-height: 32px !important;
    font-size: 12.5px !important;
  }
}

/* Secondary shared pages: about, resources, forms, state pages, and legacy directory shells. */
.sober-polish-page {
  background: var(--page) !important;
  color: var(--text) !important;
  font-family: var(--font) !important;
  line-height: 1.6 !important;
}

.sober-polish-page * {
  letter-spacing: 0 !important;
}

.sober-polish-page a {
  color: var(--brand) !important;
}

.sober-polish-page .container,
.sober-polish-page .wrap,
.sober-polish-page .content {
  max-width: 1180px !important;
}

.sober-polish-page .top-nav,
.sober-polish-page .top-bar,
.sober-polish-page .nav,
.sober-polish-page .site-header,
.sober-polish-page .page-header,
.sober-polish-reflection .topbar {
  background: rgba(250, 248, 244, 0.94) !important;
  border-bottom: 1px solid var(--border) !important;
  color: var(--text) !important;
  box-shadow: 0 10px 26px rgba(23, 40, 31, 0.06) !important;
  backdrop-filter: blur(14px) !important;
}

.sober-polish-page .nav-logo,
.sober-polish-page .logo,
.sober-polish-page .logo-link,
.sober-polish-page .brand,
.sober-polish-page .brand-home,
.sober-polish-page .city-name,
.sober-polish-page .sober-text {
  color: var(--text-strong) !important;
  font-family: var(--display) !important;
  font-weight: 650 !important;
  text-decoration: none !important;
}

.sober-polish-page .logo-mark,
.sober-polish-page .nav-logo img,
.sober-polish-page .brand-home img {
  border-radius: 10px !important;
  box-shadow: none !important;
}

.sober-polish-page .hero,
.sober-polish-state .hero,
.sober-polish-single-type .hero {
  background: radial-gradient(900px 420px at 90% -18%, #e2eee4, rgba(226, 238, 228, 0)), var(--page) !important;
  color: var(--text) !important;
  border-bottom: 1px solid var(--border) !important;
}

.sober-polish-page h1,
.sober-polish-page h2,
.sober-polish-page h3,
.sober-polish-page .hero h1,
.sober-polish-page .section h2,
.sober-polish-page .section-title,
.sober-polish-page .card-title,
.sober-polish-page .facility-name,
.sober-polish-page .day-label,
.sober-polish-page .big-num {
  color: var(--text-strong) !important;
  font-family: var(--display) !important;
  font-weight: 600 !important;
}

.sober-polish-page h1 {
  font-size: clamp(34px, 4.5vw, 54px) !important;
  line-height: 1.08 !important;
}

.sober-polish-page p,
.sober-polish-page .subtitle,
.sober-polish-page .hero p,
.sober-polish-page .section p,
.sober-polish-page .card p,
.sober-polish-page .desc,
.sober-polish-page .card-address,
.sober-polish-page .label {
  color: var(--body) !important;
  font-family: var(--font) !important;
}

.sober-polish-page .card,
.sober-polish-page .pillar,
.sober-polish-page .author-card,
.sober-polish-page .resource-card,
.sober-polish-page .grid-card,
.sober-polish-page .city-card,
.sober-polish-page .facility-card,
.sober-polish-page .total-banner,
.sober-polish-page .national,
.sober-polish-page .faq-item,
.sober-polish-page .info-block {
  background: var(--panel) !important;
  border: 1px solid var(--border) !important;
  border-radius: var(--radius) !important;
  box-shadow: 0 14px 34px rgba(23, 40, 31, 0.07) !important;
  color: var(--text) !important;
}

.sober-polish-page .card:hover,
.sober-polish-page .resource-card:hover,
.sober-polish-page .grid-card:hover,
.sober-polish-page .city-card:hover,
.sober-polish-page .facility-card:hover {
  transform: translateY(-3px) !important;
  border-color: var(--border-green) !important;
  box-shadow: 0 20px 46px rgba(23, 40, 31, 0.10) !important;
}

.sober-polish-page .badge,
.sober-polish-page .hero-tag,
.sober-polish-page .stat,
.sober-polish-page .card-badge,
.sober-polish-page .hero-badge,
.sober-polish-page .city-stats .stat,
.sober-polish-page .section-label {
  background: var(--panel-tint) !important;
  border: 1px solid var(--border-green) !important;
  color: var(--brand) !important;
  border-radius: 999px !important;
}

.sober-polish-page .btn,
.sober-polish-page .btn-primary,
.sober-polish-page .btn-p,
.sober-polish-page .submit-btn,
.sober-polish-page .cta-btn,
.sober-polish-page .card-btn.primary,
.sober-polish-page .city-links a,
.sober-polish-page .emergency a {
  background: var(--brand) !important;
  border: 1px solid var(--brand) !important;
  border-radius: 999px !important;
  color: #fff !important;
  font-family: var(--font) !important;
  font-weight: 750 !important;
  box-shadow: 0 10px 24px rgba(45, 106, 79, 0.16) !important;
}

.sober-polish-page .btn-outline,
.sober-polish-page .btn-o,
.sober-polish-page .card-btn.secondary,
.sober-polish-page .filter-tab,
.sober-polish-page .nav-link,
.sober-polish-page .nav-tab {
  background: #fff !important;
  border: 1px solid var(--border) !important;
  border-radius: 999px !important;
  color: var(--brand) !important;
  font-weight: 700 !important;
}

.sober-polish-submit .container {
  max-width: 720px !important;
}

.sober-polish-submit .header {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  color: var(--text) !important;
}

.sober-polish-submit .progress-dot.active {
  background: var(--brand) !important;
  box-shadow: none !important;
}

.sober-polish-submit .input,
.sober-polish-submit .select,
.sober-polish-submit .textarea,
.sober-polish-page input,
.sober-polish-page select,
.sober-polish-page textarea {
  background: #fff !important;
  border: 1px solid var(--border) !important;
  border-radius: 12px !important;
  color: var(--text) !important;
  font-family: var(--font) !important;
}

.sober-polish-submit .input:focus,
.sober-polish-submit .select:focus,
.sober-polish-submit .textarea:focus,
.sober-polish-page input:focus,
.sober-polish-page select:focus,
.sober-polish-page textarea:focus {
  border-color: var(--brand) !important;
  box-shadow: 0 0 0 3px rgba(45, 106, 79, 0.12) !important;
  outline: none !important;
}

.sober-polish-page .footer,
.sober-polish-page .site-footer,
.sober-polish-page .page-footer {
  background: var(--footer) !important;
  color: rgba(244, 241, 232, 0.72) !important;
  border-top: 0 !important;
}

.sober-polish-page .footer a,
.sober-polish-page .site-footer a,
.sober-polish-page .page-footer a {
  color: #a7c4b0 !important;
}

.sober-polish-reflection .topbar {
  position: sticky !important;
  top: 0 !important;
  z-index: 50 !important;
}

.sober-polish-reflection .wrap {
  max-width: 820px !important;
  padding-top: clamp(36px, 5vw, 62px) !important;
}

.sober-polish-reflection blockquote {
  color: var(--text-strong) !important;
  font-family: var(--display) !important;
  font-size: clamp(30px, 4.3vw, 48px) !important;
  line-height: 1.23 !important;
}

.sober-polish-reflection .crisis-pill,
.sober-polish-page .emergency {
  background: var(--crisis-bg) !important;
  border: 1px solid var(--crisis-border) !important;
  color: var(--crisis) !important;
  border-radius: 18px !important;
}

.sober-polish-state .city-grid {
  gap: 18px !important;
}

.sober-polish-state .city-card h2 a {
  color: var(--text-strong) !important;
}

/* Shared recovery books modal and reader. */
#aa-books-btn {
  background: var(--brand) !important;
  color: #fff !important;
  border: 1px solid rgba(255, 255, 255, 0.22) !important;
  box-shadow: 0 12px 30px rgba(23, 40, 31, 0.24) !important;
}

#aa-books-modal {
  background: rgba(20, 35, 28, 0.54) !important;
}

#aa-books-modal .bmc,
#aa-books-modal .book-modal-content {
  background: var(--page) !important;
  color: var(--text) !important;
  border: 1px solid var(--border) !important;
  border-radius: 24px !important;
  box-shadow: 0 28px 70px rgba(23, 40, 31, 0.24) !important;
}

#aa-books-modal .bmh {
  background: rgba(250, 248, 244, 0.96) !important;
  border-bottom: 1px solid var(--border) !important;
}

#aa-books-modal .bmh h2,
#aa-books-modal .rs h3,
#aa-books-modal .bd h4 {
  color: var(--text-strong) !important;
  font-family: var(--display) !important;
}

#aa-books-modal .bo,
#aa-books-modal .ao {
  background: #fff !important;
  border: 1px solid var(--border) !important;
  border-radius: 16px !important;
  color: var(--text) !important;
  box-shadow: 0 10px 26px rgba(23, 40, 31, 0.06) !important;
}

#aa-books-modal .bo:hover,
#aa-books-modal .ao:hover {
  border-color: var(--border-green) !important;
  box-shadow: 0 18px 40px rgba(23, 40, 31, 0.10) !important;
}

#aa-books-modal .bd p,
#aa-books-modal .cpage {
  color: var(--body) !important;
}

#aa-books-modal .bd .rc,
#aa-books-modal .bmx {
  color: var(--brand) !important;
}

#aa-books-modal .bmx {
  background: var(--panel-tint) !important;
}
