/* ══════════════════════════════════════════════════════════════════
   Inner Strength Counseling — shared design system
   Used by every page (index, contact, resources, notices, faq) so the
   whole site stays visually identical.
   ══════════════════════════════════════════════════════════════════ */

/* ── CSS custom properties (design system) ────────────────────── */
:root {
  --radius: 0.875rem;
  --background:      #F4F4F4;
  --foreground:      #3A3937;
  --card:            #FBFBFA;
  --card-foreground: #3A3937;
  --muted:           #E7E6E4;
  --muted-foreground:#726F6D;
  --accent:          #8478AA;
  --destructive:     oklch(0.58  0.18   25);
  --border:          #DEDDDB;
  --sage:            #685E93;
  --sage-deep:       #4C4370;
  --sage-soft:       #9088B5;
  --sage-mist:       #E9E6F1;
  --cream:           #F4F4F4;
  --cream-deep:      #EAEAE8;
  --ink:             #3A3937;
}

/* ── Reset / base ─────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; font-size: 17.5px; }
html, body { overflow-x: hidden; max-width: 100%; }
body {
  min-height: 100svh;
  background-color: var(--background);
  color: var(--foreground);
  font-family: 'Inter', sans-serif;
  font-size: 1rem;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
ul { list-style: none; }

/* ── Typography helpers ───────────────────────────────────────── */
.font-display  { font-family: 'Fraunces', serif; font-weight: 400; }
.font-display-medium { font-family: 'Fraunces', serif; font-weight: 500; }
.italic        { font-style: italic; }
.text-balance  { text-wrap: balance; }
.sr-only       { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

/* ── Reveal animation ─────────────────────────────────────────── */
.reveal {
  opacity: 0;
  transform: translateY(1.5rem);
  transition: opacity .7s ease-out, transform .7s ease-out;
}
.reveal.visible { opacity: 1; transform: translateY(0); }
@media (prefers-reduced-motion: reduce) {
  .reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
}

/* ── Skip link ───────────────────────────────────────────────── */
.skip-link {
  position: absolute; left: 1rem; top: 1rem; z-index: 100;
  padding: .5rem 1.25rem;
  border-radius: 9999px;
  background: var(--sage-deep);
  color: var(--cream);
  font-size: .875rem;
  transform: translateY(-200%);
  transition: transform .2s;
}
.skip-link:focus { transform: translateY(0); }

/* ── HEADER ──────────────────────────────────────────────────── */
.site-header {
  position: sticky; top: 0; z-index: 50;
  border-bottom: 1px solid transparent;
  background: color-mix(in oklch, var(--background) 60%, transparent);
  backdrop-filter: blur(4px);
  transition: background .3s, border-color .3s, box-shadow .3s;
}
.site-header.scrolled {
  border-bottom-color: color-mix(in oklch, var(--border) 70%, transparent);
  background: color-mix(in oklch, var(--background) 90%, transparent);
  backdrop-filter: blur(12px);
  box-shadow: 0 1px 20px -12px rgba(0,0,0,.4);
}
.header-inner {
  max-width: 104rem; margin: 0 auto;
  display: flex; align-items: center; justify-content: space-between;
  padding: 1.75rem 2rem;
  gap: .75rem;
}
.logo { display: flex; align-items: center; gap: .75rem; flex-shrink: 0; }
.logo-mark {
  display: block; width: 4.5rem; height: 4.5rem; flex-shrink: 0;
  object-fit: contain;
}
.logo-text { line-height: 1.2; }
.logo-name { display: block; white-space: nowrap; font-family:'Fraunces',serif; font-size:1.25rem; color: var(--ink); }
.logo-sub  {
  display: block; white-space: nowrap; margin-top: .1rem;
  font-size:.6875rem; font-weight: 600; text-transform:uppercase; letter-spacing:.14em;
  color: var(--sage-deep);
}
@media(min-width:480px){
  .logo { gap: .875rem; }
  .logo-mark { width: 5.25rem; height: 5.25rem; }
  .logo-name { font-size: 1.5rem; }
  .logo-sub { font-size: .8125rem; letter-spacing: .16em; }
}
@media(min-width:1024px){
  .logo { gap: 1rem; }
  .logo-mark { width: 6rem; height: 6rem; }
  .logo-name { font-size: 1.75rem; }
  .logo-sub { font-size: .875rem; }
}
@media(min-width:1680px){
  .logo-mark { width: 7rem; height: 7rem; }
  .logo-name { font-size: 1.875rem; }
  .logo-sub { font-size: .9375rem; }
}

.nav-desktop { display: none; align-items: center; gap: 1.375rem; font-size:.8125rem; color: var(--muted-foreground); white-space: nowrap; }
@media(min-width:1280px){ .nav-desktop { display: flex; } }
@media(min-width:1900px){ .nav-desktop { gap: 1.75rem; font-size:.875rem; } }
.nav-desktop a {
  position: relative; padding: .25rem 0;
  transition: color .2s;
  white-space: nowrap;
}
.nav-desktop a::after {
  content:''; position:absolute; left:0; right:0; bottom:-.125rem; height:1px;
  background: var(--sage-deep);
  transform: scaleX(0); transform-origin: left; transition: transform .2s;
}
.nav-desktop a:hover, .nav-desktop a[aria-current="page"] { color: var(--sage-deep); }
.nav-desktop a:hover::after, .nav-desktop a[aria-current="page"]::after { transform: scaleX(1); }

.header-right { display: flex; align-items: center; gap: .75rem; flex-shrink: 0; }

.header-locations { display: none; flex-direction: column; align-items: stretch; gap: .35rem; }
@media(min-width:1280px){ .header-locations { display: flex; } }
.loc-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .3rem;
  border-radius: 9999px; border: 1px solid var(--border);
  padding: .3rem .7rem; font-size: .6875rem; font-weight: 500; color: var(--ink);
  white-space: nowrap;
  transition: background .2s, border-color .2s, color .2s;
}
.loc-btn .site-icon { font-size: .75rem; width: .75rem; height: .75rem; flex-shrink: 0; color: var(--sage-deep); transition: color .2s; }
.loc-btn:hover { background: var(--sage-deep); border-color: var(--sage-deep); color: var(--cream); }
.loc-btn:hover .site-icon { color: var(--sage-soft); }

.btn-book {
  display: none;
  border-radius: 9999px;
  background: var(--sage-deep);
  padding: .625rem 1.25rem;
  font-size: .875rem; font-weight:500;
  color: var(--cream);
  box-shadow: 0 1px 3px rgba(0,0,0,.1);
  transition: background .2s, transform .2s, box-shadow .2s;
  white-space: nowrap;
}
@media(min-width:1280px){ .btn-book { display: inline-block; } }
.btn-book:hover { background: var(--sage); transform: translateY(-.125rem); box-shadow: 0 4px 12px rgba(0,0,0,.15); }

.btn-menu {
  display: flex; align-items:center; justify-content:center;
  width:2.75rem; height:2.75rem; border-radius:9999px;
  border: 1px solid var(--border); flex-shrink: 0;
  background: transparent; cursor: pointer; color: var(--ink);
}
@media(min-width:1280px){ .btn-menu { display: none; } }

.mobile-nav {
  display: none; border-top: 1px solid var(--border);
  background: var(--background);
}
.mobile-nav.open { display: block; }
.mobile-nav-inner { max-width:72rem; margin:0 auto; display:flex; flex-direction:column; padding: .75rem 1.5rem; }
.mobile-nav a {
  border-bottom: 1px solid color-mix(in oklch,var(--border) 60%,transparent);
  padding: .875rem 0; font-size:.9375rem; color: var(--ink);
  min-height: 44px; display: flex; align-items: center;
}
.mobile-nav a:last-of-type { border-bottom: none; }
.mobile-nav .mobile-phones {
  display: flex; flex-direction: column; gap: .25rem;
  padding: .875rem 0; border-bottom: 1px solid color-mix(in oklch,var(--border) 60%,transparent);
  font-size: .875rem;
}
.mobile-nav .mobile-phones a { border-bottom: none; padding: .25rem 0; min-height: 0; font-weight: 500; }
.mobile-nav .mobile-book {
  margin-top:1rem; margin-bottom:.5rem;
  border-radius:9999px; background: var(--sage-deep);
  padding:.875rem 1.25rem; text-align:center; justify-content: center;
  font-size:.9375rem; font-weight:500; color:var(--cream);
  min-height: 48px;
}

/* ── PAGE HERO (subpages) ────────────────────────────────────── */
.page-hero {
  position: relative; overflow: hidden;
  background: var(--cream); padding: 4rem 1.5rem 3.5rem;
  text-align: center;
}
.page-hero-inner { position: relative; max-width: 44rem; margin: 0 auto; }
.page-hero .eyebrow { justify-content: center; }
.page-hero h1 {
  margin-top: 1.5rem;
  font-family: 'Fraunces', serif; font-size: clamp(2rem,4.5vw,3rem);
  color: var(--ink); line-height: 1.1; text-wrap: balance;
}
.page-hero p { margin-top: 1.25rem; font-size: 1.0625rem; line-height: 1.7; color: var(--muted-foreground); }

/* ── HERO ────────────────────────────────────────────────────── */
.hero {
  position: relative; overflow: hidden;
  background: var(--cream);
}
.hero-blob1, .hero-blob2 {
  position:absolute; pointer-events:none;
  border-radius:9999px; filter:blur(64px);
}
.hero-blob1 { right:-6rem; top:-6rem; width:24rem; height:24rem; background:color-mix(in oklch,var(--sage-mist) 40%,transparent); }
.hero-blob2 { left:-8rem; bottom:0; width:20rem; height:20rem; background:color-mix(in oklch,var(--accent) 30%,transparent); }
.hero-inner {
  position:relative; max-width:72rem; margin:0 auto;
  display:grid; align-items:center; gap:3rem;
  padding: 5rem 1.5rem;
}
@media(min-width:1024px){
  .hero-inner { grid-template-columns: repeat(12,1fr); padding:7rem 1.5rem; }
  .hero-copy  { grid-column: span 6; }
  .hero-media { grid-column: span 6; }
}
.eyebrow {
  display:inline-flex; align-items:center; gap:.5rem;
  font-size:.75rem; font-weight:600; text-transform:uppercase; letter-spacing:.16em; color:var(--sage-deep);
  padding:.4rem 1.1rem; border-radius:1.25rem;
  background:color-mix(in oklch, currentColor 12%, transparent);
  text-wrap:balance;
}
@media(min-width:480px){
  .eyebrow { font-size:.8125rem; letter-spacing:.18em; }
}
.eyebrow-line { display:block; height:1px; width:2rem; background:var(--sage); }
.hero h1 {
  margin-top:1.75rem;
  font-family:'Fraunces',serif; font-size:clamp(2.25rem,8vw,3.5rem);
  color:var(--ink); line-height:1.05; text-wrap:balance;
}
.hero h1 em { font-style:italic; color:var(--sage-deep); }
.hero-desc {
  margin-top:1.75rem; max-width:28rem;
  font-size:1.0625rem; line-height:1.7; color:var(--muted-foreground);
}
.hero-ctas { margin-top:2.25rem; display:flex; flex-wrap:wrap; align-items:center; gap:1rem; }
.btn-primary {
  border-radius:9999px; background:var(--sage-deep);
  padding:.875rem 1.75rem; font-size:.875rem; font-weight:500; color:var(--cream);
  box-shadow:0 1px 3px rgba(0,0,0,.1);
  transition: background .2s, transform .2s, box-shadow .2s;
  text-align: center; display: inline-block;
}
.btn-primary:hover { background:var(--sage); transform:translateY(-.125rem); box-shadow:0 8px 20px rgba(0,0,0,.15); }
.btn-outline {
  border-radius:9999px; border:1px solid color-mix(in oklch,var(--sage-deep) 20%,transparent);
  padding:.875rem 1.75rem; font-size:.875rem; color:var(--ink);
  transition: border-color .2s, background .2s;
  text-align: center; display: inline-block;
}
.btn-outline:hover { border-color:color-mix(in oklch,var(--sage-deep) 40%,transparent); background:var(--card); }
@media(max-width:479px){
  .hero-ctas { flex-direction: column; align-items: stretch; }
  .hero-ctas a { width: 100%; }
}
.hero-locations {
  margin-top:2.5rem; display:flex; flex-wrap:wrap; align-items:center;
  gap:.625rem 1.5rem; font-size:.875rem; color:var(--muted-foreground);
}
.hero-locations span { display:flex; align-items:center; gap:.5rem; }
.dot { width:.5rem; height:.5rem; border-radius:9999px; background:var(--sage); flex-shrink:0; }
.hero-badges { margin-top:2rem; display:flex; flex-wrap:wrap; gap:.5rem; }
.badge {
  display:inline-flex; align-items:center; gap:.375rem;
  border-radius:9999px; background:var(--card);
  padding:.375rem .875rem; font-size:.75rem; color:color-mix(in oklch,var(--ink) 70%,transparent);
  border:1px solid var(--border);
}
.badge .site-icon { font-size:.9375rem; width:.9375rem; height:.9375rem; flex-shrink:0; color:var(--sage-deep); }

.hero-img-wrap {
  position:relative;
  overflow:hidden; border-radius:2rem;
  outline:1px solid rgba(0,0,0,.05);
}
.hero-img-wrap img { aspect-ratio:4/5; width:100%; object-fit:cover; }
.hero-card {
  position:absolute; bottom:-1.5rem; left:-.5rem;
  width:14rem; max-width: calc(100% - 1rem);
  border-radius:1rem; background:var(--card);
  padding:1.25rem; box-shadow:0 20px 60px rgba(0,0,0,.12);
  border:1px solid rgba(0,0,0,.05);
}
@media(min-width:640px){ .hero-card { left:-1.5rem; } }
.hero-card-label { font-size:.75rem; text-transform:uppercase; letter-spacing:.1em; color:var(--muted-foreground); }
.hero-card-title { margin-top:.25rem; font-family:'Fraunces',serif; font-size:1.125rem; color:var(--ink); }
.hero-card-sub   { margin-top:.25rem; font-size:.875rem; color:var(--sage-deep); }

/* ── MISSION ─────────────────────────────────────────────────── */
.mission {
  background:var(--sage-deep); padding:5rem 1.5rem; text-align:center; color:var(--cream);
}
.mission-inner { max-width:48rem; margin:0 auto; }
.mission-icon {
  display:flex; align-items:center; justify-content:center;
  width:3.25rem; height:3.25rem; border-radius:9999px; margin:0 auto 1.5rem;
  background:color-mix(in oklch,var(--cream) 12%,transparent);
  color:var(--sage-soft);
}
.mission-icon .site-icon { font-size:1.5rem; width:1.5rem; height:1.5rem; }
.mission .eyebrow { color: var(--sage-soft); justify-content:center; }
.mission h2 {
  margin-top:1.5rem;
  font-family:'Fraunces',serif; font-size:clamp(1.5rem,3vw,2.25rem);
  line-height:1.3; text-wrap:balance;
}
.mission-divider { margin:2rem auto 0; width:6rem; height:1px; background:color-mix(in oklch,var(--sage-soft) 40%,transparent); }
.mission p { margin-top:2rem; color:color-mix(in oklch,var(--cream) 70%,transparent); }

/* ── SERVICES ────────────────────────────────────────────────── */
.services { background:var(--cream); padding:6rem 1.5rem; }
.services-inner { max-width:72rem; margin:0 auto; }
.section-header { max-width:28rem; }
.section-header.center { max-width: 36rem; margin: 0 auto; text-align: center; }
.section-header h2 {
  margin-top:1.25rem;
  font-family:'Fraunces',serif; font-size:clamp(1.75rem,3vw,2.5rem);
  color:var(--ink); line-height:1.2;
}
.section-header p { margin-top: 1rem; color: var(--muted-foreground); }
.cards-grid {
  margin-top:3.5rem;
  display:grid; gap:1.5rem;
}
@media(min-width:768px){ .cards-grid { grid-template-columns:repeat(3,1fr); } }
.cards-grid.cols-2 { }
@media(min-width:640px){ .cards-grid.cols-2 { grid-template-columns:repeat(2,1fr); } }
.service-card {
  display:flex; flex-direction:column;
  border-radius:1.75rem; padding:2rem;
  border:1px solid var(--border);
  transition: border-color .2s;
}
.service-card.default { background:var(--card); color:var(--ink); }
.service-card.default:hover { border-color:color-mix(in oklch,var(--sage) 40%,transparent); }
.service-card.featured { background:var(--sage-deep); color:var(--cream); border-color:var(--sage-deep); }
.card-top { display:flex; align-items:center; justify-content:space-between; margin-bottom:1.5rem; }
.card-no {
  display:flex; align-items:center; justify-content:center;
  width:3rem; height:3rem; border-radius:1rem;
  font-family:'Fraunces',serif; font-size:1.125rem; flex-shrink: 0;
}
.card-no.default { background:var(--sage-mist); color:var(--sage-deep); }
.card-no.featured { background:color-mix(in oklch,var(--cream) 10%,transparent); color:var(--sage-soft); }
.card-thumb img { width:3.5rem; height:3.5rem; border-radius:9999px; object-fit:cover; border:1px solid rgba(0,0,0,.05); }
.service-card h3 { font-family:'Fraunces',serif; font-size:1.25rem; }
.service-card p { margin-top:.75rem; font-size:.875rem; line-height:1.7; }
.service-card.default p { color:var(--muted-foreground); }
.service-card.featured p { color:color-mix(in oklch,var(--cream) 70%,transparent); }
.service-items { margin-top:1.5rem; display:flex; flex-direction:column; gap:.5rem; font-size:.875rem; }
.service-card.default .service-items { color:var(--muted-foreground); }
.service-card.featured .service-items { color:color-mix(in oklch,var(--cream) 80%,transparent); }
.service-item { display:flex; align-items:center; gap:.5rem; }
.service-item a { color: var(--sage-deep); text-underline-offset: .2rem; }
.service-item a:hover { text-decoration: underline; }
.item-dot { width:.375rem; height:.375rem; border-radius:9999px; flex-shrink:0; }
.item-dot.default { background:var(--sage); }
.item-dot.featured { background:var(--sage-soft); }

.card-link {
  margin-top:1.5rem; display:inline-flex; align-items:center; gap:.375rem;
  font-size:.875rem; font-weight:500;
  transition: gap .2s;
}
.service-card.default .card-link { color:var(--sage-deep); }
.service-card.default .card-link:hover { gap:.625rem; text-decoration:underline; }
.service-card.featured .card-link { color:var(--cream); text-decoration:underline; text-underline-offset:.2rem; }
.service-card.featured .card-link:hover { gap:.625rem; }
.loc-link { margin-top:.75rem; display:inline-flex; align-items:center; gap:.375rem; font-size:.8125rem; font-weight:500; color:var(--sage-soft); transition: gap .2s; }
.loc-link:hover { gap:.625rem; text-decoration:underline; }

/* ── PROCESS ─────────────────────────────────────────────────── */
.process { background:color-mix(in oklch,var(--cream-deep) 60%,transparent); padding:6rem 1.5rem; scroll-margin-top:6rem; }
.process-inner { max-width:72rem; margin:0 auto; }
.process h2 { margin-top:1.25rem; font-family:'Fraunces',serif; font-size:clamp(1.75rem,3vw,2.5rem); color:var(--ink); line-height:1.2; }
.steps-grid { margin-top:3.5rem; display:grid; gap:2rem; }
@media(min-width:768px){ .steps-grid { grid-template-columns:repeat(3,1fr); } }
.steps-grid.cols-4 { }
@media(min-width:640px){ .steps-grid.cols-4 { grid-template-columns:repeat(2,1fr); } }
@media(min-width:1024px){ .steps-grid.cols-4 { grid-template-columns:repeat(4,1fr); } }
.step-top { display:flex; align-items:flex-start; justify-content:space-between; }
.step-icon {
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
  width:2.75rem; height:2.75rem; border-radius:9999px; margin-top:.5rem;
  background:var(--card); color:var(--sage-deep);
  border:1px solid var(--border);
}
.step-icon .site-icon { font-size:1.25rem; width:1.25rem; height:1.25rem; }
.step-no { font-family:'Fraunces',serif; font-size:3rem; color:color-mix(in oklch,var(--sage) 35%,transparent); }
.step-title { margin-top:.75rem; font-family:'Fraunces',serif; font-size:1.25rem; color:var(--ink); }
.step-desc { margin-top:.75rem; font-size:.875rem; line-height:1.7; color:var(--muted-foreground); }
.step-line { margin-top:1.5rem; height:1px; background:var(--border); }

/* ── CONDITIONS ──────────────────────────────────────────────── */
.conditions { background:color-mix(in oklch,var(--sage-mist) 40%,transparent); padding:5rem 1.5rem; }
.conditions-inner { max-width:60rem; margin:0 auto; text-align:center; }
.conditions h2 { margin-top:1.25rem; font-family:'Fraunces',serif; font-size:clamp(1.5rem,3vw,2rem); color:var(--ink); }
.tags { margin-top:2.5rem; display:flex; flex-wrap:wrap; justify-content:center; gap:.75rem; }
.tag {
  border-radius:9999px; background:var(--card);
  padding:.5rem 1rem; font-size:.75rem; font-weight:500;
  text-transform:uppercase; letter-spacing:.05em;
  color:color-mix(in oklch,var(--ink) 70%,transparent);
  border:1px solid var(--border); transition:border-color .2s;
}
.tag:hover { border-color:color-mix(in oklch,var(--sage) 50%,transparent); }

/* ── TEAM ────────────────────────────────────────────────────── */
.team { background:var(--cream); padding:6rem 1.5rem; scroll-margin-top:6rem; }
.team-inner { max-width:72rem; margin:0 auto; }
.team-header { text-align:center; }
.team-header h2 { margin-top:1.25rem; font-family:'Fraunces',serif; font-size:clamp(1.75rem,3vw,2.5rem); color:var(--ink); }
.team-header p { margin:1rem auto 0; max-width:36rem; color:var(--muted-foreground); }
.team-grid { margin-top:4rem; display:flex; flex-wrap:wrap; justify-content:center; gap:2rem; }
.team-member { display:flex; flex-direction:column; flex:1 1 100%; }
@media(min-width:640px){
  .team-member { flex:0 1 calc(50% - 1rem); }
}
@media(min-width:1024px){
  .team-member { flex:0 1 calc(33.333% - 1.334rem); }
}
.team-photo {
  overflow:hidden; border-radius:1.5rem; outline:1px solid rgba(0,0,0,.05);
}
.team-photo img {
  aspect-ratio:4/5; width:100%; object-fit:cover;
  transition: transform .5s ease;
}
.team-member:hover .team-photo img { transform:scale(1.03); }
.team-name { margin-top:1rem; font-family:'Fraunces',serif; font-size:1.125rem; color:var(--ink); }
.team-creds { font-size:.875rem; font-style:italic; color:var(--sage-deep); }
.team-blurb { margin-top:.75rem; font-size:.875rem; line-height:1.7; color:var(--muted-foreground); }
@media(min-width:640px){ .team-blurb { min-height:13.5rem; } }

/* ── LOCATIONS ───────────────────────────────────────────────── */
.locations { background:var(--ink); padding:6rem 1.5rem; color:var(--cream); scroll-margin-top:6rem; }
.locations-inner { max-width:72rem; margin:0 auto; display:grid; gap:4rem; }
@media(min-width:1024px){ .locations-inner { grid-template-columns:1fr 1fr; } }
.locations .eyebrow { color:var(--sage-soft); }
.locations h2 { margin-top:1.25rem; font-family:'Fraunces',serif; font-size:clamp(1.75rem,3vw,2.5rem); }
.locations-desc { margin-top:1.25rem; max-width:28rem; color:color-mix(in oklch,var(--cream) 70%,transparent); }
.location-cards { margin-top:2.5rem; display:flex; flex-direction:column; gap:2rem; }
.location-card { display:flex; gap:1.25rem; }
.loc-icon {
  flex-shrink:0; display:flex; align-items:center; justify-content:center;
  width:2.5rem; height:2.5rem; border-radius:9999px;
  background:color-mix(in oklch,var(--cream) 10%,transparent);
}
.loc-icon .site-icon { font-size:1rem; width:1rem; height:1rem; color:var(--sage-soft); }
.loc-name { font-family:'Fraunces',serif; font-size:1.125rem; color:var(--cream); }
.loc-address { margin-top:.25rem; font-size:.875rem; color:color-mix(in oklch,var(--cream) 60%,transparent); }
.loc-phone { margin-top:.5rem; display:block; font-size:.875rem; color:var(--sage-soft); }
.loc-phone:hover { text-decoration:underline; }
.loc-hours { margin-top:.75rem; font-size:.75rem; text-transform:uppercase; letter-spacing:.1em; color:var(--sage-soft); }
.loc-note { margin-top:.25rem; font-size:.75rem; color:color-mix(in oklch,var(--cream) 40%,transparent); }
.telehealth-note {
  border-radius:1rem; border:1px solid color-mix(in oklch,var(--cream) 10%,transparent);
  background:color-mix(in oklch,var(--cream) 5%,transparent);
  padding:1.5rem; font-size:.875rem; font-style:italic;
  color:color-mix(in oklch,var(--cream) 80%,transparent);
}
.location-imgs { display:grid; gap:1rem; }
.location-imgs img { aspect-ratio:4/3; width:100%; border-radius:1.5rem; object-fit:cover; border:1px solid color-mix(in oklch,var(--cream) 10%,transparent); }
.location-imgs iframe { aspect-ratio:4/3; width:100%; max-width: 100%; border-radius:1.5rem; border:1px solid color-mix(in oklch,var(--cream) 10%,transparent); display:block; }

/* ── INSURANCE ───────────────────────────────────────────────── */
.insurance { border-top:1px solid var(--border); border-bottom:1px solid var(--border); background:var(--cream); padding:4rem 1.5rem; scroll-margin-top:6rem; }
.insurance-inner { max-width:72rem; margin:0 auto; text-align:center; }
.insurance h2 { margin-top:1rem; font-family:'Fraunces',serif; font-size:clamp(1.25rem,2vw,1.75rem); color:var(--ink); }
.insurance-tags { margin-top:2.5rem; display:flex; flex-wrap:wrap; justify-content:center; gap:1rem; }
.insurance-tags .ins-tag { flex:0 1 calc(50% - .5rem); }
@media(min-width:640px){
  .insurance-tags .ins-tag { flex:0 1 calc(33.333% - .667rem); }
}
@media(min-width:900px){
  .insurance-tags .ins-tag { flex:0 1 calc(20% - .8rem); }
}
.ins-tag {
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.75rem;
  border-radius:1rem; background:var(--card);
  padding:1.5rem 1rem; text-align:center;
  border:1px solid var(--border);
  box-shadow:0 1px 3px rgba(0,0,0,.04);
  transition:transform .2s, box-shadow .2s;
}
.ins-tag:hover { transform:translateY(-3px); box-shadow:0 8px 18px -8px rgba(0,0,0,.15); }
.ins-logo-img {
  width:100%; height:3.5rem; object-fit:contain;
}
.ins-logo {
  width:2.75rem; height:2.75rem; border-radius:.65rem;
  display:flex; align-items:center; justify-content:center;
  color:#fff; font-family:'Fraunces',serif; font-weight:500; font-size:1.05rem;
  letter-spacing:.02em;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.25);
}
.ins-tag span { font-size:.8rem; font-weight:500; line-height:1.3; color:color-mix(in oklch,var(--ink) 78%,transparent); }
.insurance-note { margin-top:2rem; font-size:.75rem; color:var(--muted-foreground); }

/* ── CRISIS ──────────────────────────────────────────────────── */
.crisis { background:color-mix(in oklch,var(--sage) 15%,transparent); padding:1.5rem; }
.crisis-inner {
  max-width:72rem; margin:0 auto;
  display:flex; flex-wrap:wrap; align-items:center; justify-content:center;
  gap:1rem 2rem; text-align:center; font-size:.875rem; font-weight:500; color:var(--ink);
}
.crisis-label { display:flex; align-items:center; gap:.5rem; }
.pulse-dot { width:.5rem; height:.5rem; border-radius:9999px; background:var(--destructive); animation:pulse 1.5s infinite; flex-shrink: 0; }
@keyframes pulse { 0%,100%{opacity:1}50%{opacity:.4} }
.crisis a { color:var(--sage-deep); text-underline-offset:.25rem; }
.crisis a:hover { text-decoration:underline; }
.crisis-sep { display:none; color:color-mix(in oklch,var(--ink) 20%,transparent); }
@media(min-width:768px){ .crisis-sep { display:inline; } }

/* ── FINAL CTA ───────────────────────────────────────────────── */
.final-cta { background:var(--sage-deep); padding:6rem 1.5rem; text-align:center; color:var(--cream); }
.final-cta-inner { max-width:48rem; margin:0 auto; }
.final-cta .eyebrow { color:var(--sage-soft); justify-content:center; }
.final-cta h2 { margin-top:1.5rem; font-family:'Fraunces',serif; font-size:clamp(1.75rem,3vw,2.5rem); line-height:1.2; text-wrap:balance; }
.final-cta p { margin:1.5rem auto 0; max-width:28rem; color:color-mix(in oklch,var(--cream) 70%,transparent); }
.cta-buttons { margin-top:2.5rem; display:flex; flex-wrap:wrap; justify-content:center; gap:1rem; }
.btn-cta-light {
  border-radius:9999px; background:var(--cream);
  padding:1rem 2rem; font-size:.875rem; font-weight:500; color:var(--sage-deep);
  transition: background .2s;
  text-align: center;
}
.btn-cta-light:hover { background:var(--sage-soft); }
.btn-cta-ghost {
  border-radius:9999px; border:1px solid color-mix(in oklch,var(--cream) 25%,transparent);
  padding:1rem 2rem; font-size:.875rem; color:var(--cream);
  transition: border-color .2s;
  text-align: center;
}
.btn-cta-ghost:hover { border-color:color-mix(in oklch,var(--cream) 50%,transparent); }
@media(max-width:479px){
  .cta-buttons { flex-direction: column; align-items: stretch; }
  .cta-buttons a { width: 100%; }
}

/* ── FOOTER ──────────────────────────────────────────────────── */
.site-footer { background:var(--ink); padding:4rem 1.5rem; color:color-mix(in oklch,var(--cream) 70%,transparent); }
.footer-inner { max-width:72rem; margin:0 auto; }
.footer-grid { display:grid; gap:3rem; grid-template-columns:1fr; }
@media(min-width:640px){ .footer-grid { grid-template-columns:repeat(2,1fr); } }
@media(min-width:1024px){ .footer-grid { grid-template-columns:1.6fr 1fr 1fr 1fr; } }
.footer-brand { grid-column:span 1; }
@media(min-width:640px){ .footer-brand { grid-column:span 2; } }
@media(min-width:1024px){ .footer-brand { grid-column:span 1; } }
.footer-logo { display:flex; align-items:center; gap:.75rem; }
.footer-logo-mark {
  display:block; width:4.5rem; height:4.5rem;
  object-fit:contain;
}
@media(min-width:640px){
  .footer-logo-mark { width:5.5rem; height:5.5rem; }
}
.footer-logo-name { font-family:'Fraunces',serif; font-size:1.125rem; color:var(--cream); }
.footer-desc { margin-top:1.25rem; max-width:22rem; font-size:.875rem; line-height:1.7; }
.footer-email { margin-top:1.25rem; display:block; font-size:.875rem; color:var(--sage-soft); }
.footer-email:hover { text-decoration:underline; }
.footer-col-label {
  position:relative; padding-bottom:.75rem;
  font-family:'Fraunces',serif; font-size:1.25rem; font-weight:500; line-height:1.2;
  letter-spacing:.01em; color:var(--cream);
}
.footer-col-label::after {
  content:''; position:absolute; left:0; bottom:0;
  width:2.25rem; height:2px; border-radius:2px; background:var(--sage-soft);
}
.footer-col ul { margin-top:1.25rem; display:flex; flex-direction:column; gap:.75rem; font-size:.875rem; }
.footer-col a:hover { color:var(--cream); }
.footer-notice {
  margin-top:3rem; border-radius:.75rem;
  border:1px solid color-mix(in oklch,var(--cream) 10%,transparent);
  background:color-mix(in oklch,var(--cream) 5%,transparent);
  padding:1.5rem; font-size:.75rem; line-height:1.7; color:color-mix(in oklch,var(--cream) 50%,transparent);
}
.footer-notice strong { color:color-mix(in oklch,var(--cream) 70%,transparent); display:block; margin-bottom:.25rem; }
.footer-copy { margin-top:2.5rem; text-align:center; font-size:.75rem; color:color-mix(in oklch,var(--cream) 40%,transparent); }

/* ── MOBILE CALL BAR ─────────────────────────────────────────── */
.mobile-call-bar {
  position:fixed; left:0; right:0; bottom:0; z-index:40;
  border-top:1px solid var(--border);
  background:var(--background);
  backdrop-filter:blur(8px);
  display:flex;
  padding-bottom: env(safe-area-inset-bottom);
}
@media(min-width:640px){ .mobile-call-bar { display:none; } }
.mobile-call-bar a {
  flex:1; padding:1rem .75rem;
  text-align:center; font-size:.9375rem; font-weight:500;
  min-height: 48px; display: flex; align-items: center; justify-content: center;
}
.mobile-call-bar a:first-child { border-right:1px solid var(--border); color:var(--ink); }
.mobile-call-bar a:last-child { background:var(--sage-deep); color:var(--cream); }

/* ── Padding bottom for mobile bar ──────────────────────────── */
@media(max-width:639px){ main { padding-bottom:5rem; } }

/* ── Fluid type-scale hardening for small phones ──────────────── */
@media(max-width:374px){
  .hero h1 { font-size: clamp(2rem,9vw,2.5rem); }
  .page-hero h1 { font-size: clamp(1.75rem,9vw,2.25rem); }
}

/* ══════════════════════════════════════════════════════════════════
   SUBPAGE COMPONENTS — Contact / Resources / Notices / FAQ
   Same visual language: Fraunces headings, Inter body, rounded cards,
   sage/cream palette, var(--radius) corners.
   ══════════════════════════════════════════════════════════════════ */

/* ── Generic content section (Resources / Notices) ─────────────── */
.content-section { background:var(--cream); padding:4.5rem 1.5rem; scroll-margin-top:6rem; }
.content-section.alt { background:color-mix(in oklch,var(--cream-deep) 60%,transparent); }
.content-section.mist { background:color-mix(in oklch,var(--sage-mist) 40%,transparent); }
.content-section.dark { background:var(--ink); color:var(--cream); }
.content-section-inner { max-width:60rem; margin:0 auto; }
.content-section-inner.narrow { max-width: 48rem; }

/* ── Resource / link cards ──────────────────────────────────────── */
.resource-grid { margin-top:3rem; display:grid; gap:1.5rem; }
@media(min-width:640px){ .resource-grid.cols-2 { grid-template-columns:repeat(2,1fr); } }
@media(min-width:768px){ .resource-grid.cols-3 { grid-template-columns:repeat(3,1fr); } }
.resource-card {
  display:flex; flex-direction:column; gap:.5rem;
  border-radius:1.5rem; padding:1.75rem;
  background:var(--card); border:1px solid var(--border);
  transition: border-color .2s, transform .2s;
}
.resource-card.urgent { background:var(--sage-deep); color:var(--cream); border-color:var(--sage-deep); }
.resource-card:hover { border-color:color-mix(in oklch,var(--sage) 40%,transparent); }
.resource-card-icon {
  display:flex; align-items:center; justify-content:center;
  width:2.75rem; height:2.75rem; border-radius:.85rem;
  background:var(--sage-mist); color:var(--sage-deep); flex-shrink:0;
}
.resource-card.urgent .resource-card-icon { background:color-mix(in oklch,var(--cream) 12%,transparent); color:var(--sage-soft); }
.resource-card-icon .site-icon { font-size:1.25rem; width:1.25rem; height:1.25rem; }
.resource-card h3 { margin-top:.5rem; font-family:'Fraunces',serif; font-size:1.125rem; color:var(--ink); }
.resource-card.urgent h3 { color:var(--cream); }
.resource-card p { font-size:.875rem; line-height:1.7; color:var(--muted-foreground); }
.resource-card.urgent p { color:color-mix(in oklch,var(--cream) 78%,transparent); }
.resource-card .resource-link { margin-top:.25rem; font-size:.875rem; font-weight:500; color:var(--sage-deep); }
.resource-card.urgent .resource-link { color:var(--cream); text-decoration:underline; text-underline-offset:.2rem; }
.resource-card .resource-link:hover { text-decoration:underline; }

/* ── First Responders grid: inverted pyramid (3 over 2, centered) ── */
#first-responders .resource-grid {
  display:flex; flex-wrap:wrap; justify-content:center;
}
#first-responders .resource-card { flex:1 1 100%; }
@media(min-width:640px){
  #first-responders .resource-card { flex:0 1 calc(50% - .75rem); }
}
@media(min-width:768px){
  #first-responders .resource-card { flex:0 1 calc(33.333% - 1rem); }
}

/* ── Notice blocks ───────────────────────────────────────────────── */
.notice-block {
  border-radius:1.75rem; padding:2.25rem;
  background:var(--card); border:1px solid var(--border);
  margin-top: 2rem;
}
.notice-block:first-of-type { margin-top: 3rem; }
.notice-block-head { display:flex; align-items:center; gap:1rem; }
.notice-icon {
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
  width:3rem; height:3rem; border-radius:1rem;
  background:var(--sage-mist); color:var(--sage-deep);
}
.notice-icon .site-icon { font-size:1.375rem; width:1.375rem; height:1.375rem; }
.notice-block h2 { font-family:'Fraunces',serif; font-size:1.375rem; color:var(--ink); }
.notice-block .notice-updated { margin-top:.15rem; font-size:.75rem; color:var(--muted-foreground); }
.notice-body { margin-top:1.25rem; font-size:.9375rem; line-height:1.8; color:var(--muted-foreground); }
.notice-body p + p { margin-top: 1rem; }
.notice-body strong { color: var(--ink); }
.notice-placeholder {
  margin-top:1.25rem; border-radius:.85rem;
  border:1px dashed color-mix(in oklch,var(--sage) 45%,transparent);
  background:var(--sage-mist);
  padding:1rem 1.25rem; font-size:.8125rem; line-height:1.6; color:var(--sage-deep);
}

/* ── FAQ accordion ───────────────────────────────────────────────── */
.faq-list { margin-top:3rem; display:flex; flex-direction:column; gap:1rem; }
.faq-item {
  border-radius:1.25rem; border:1px solid var(--border);
  background:var(--card); overflow:hidden;
}
.faq-item[open] { border-color:color-mix(in oklch,var(--sage) 40%,transparent); }
.faq-item summary {
  cursor:pointer; list-style:none;
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
  padding:1.375rem 1.5rem;
  font-family:'Fraunces',serif; font-size:1.0625rem; color:var(--ink);
  min-height: 44px;
}
.faq-item summary::-webkit-details-marker { display:none; }
.faq-item summary:focus-visible { outline: 2px solid var(--sage-deep); outline-offset: -2px; }
.faq-icon {
  flex-shrink:0; display:flex; align-items:center; justify-content:center;
  width:2rem; height:2rem; border-radius:9999px;
  background:var(--sage-mist); color:var(--sage-deep);
  transition: transform .25s ease, background .2s ease;
}
.faq-item[open] .faq-icon { transform:rotate(45deg); background:var(--sage-deep); color:var(--cream); }
.faq-icon .site-icon { font-size:.9rem; width:.9rem; height:.9rem; }
.faq-answer { padding: 0 1.5rem 1.5rem; font-size:.9375rem; line-height:1.75; color:var(--muted-foreground); max-width: 42rem; }

/* ── Contact form ───────────────────────────────────────────────── */
.contact-layout { display:grid; gap:3rem; margin-top:3.5rem; }
@media(min-width:1024px){ .contact-layout { grid-template-columns: 1.3fr 1fr; align-items:start; } }
.contact-form {
  border-radius:1.75rem; padding:2rem;
  background:var(--card); border:1px solid var(--border);
}
.form-row { display:grid; gap:1.25rem; }
@media(min-width:560px){ .form-row.two-col { grid-template-columns:1fr 1fr; } }
.field { display:flex; flex-direction:column; gap:.5rem; margin-top:1.25rem; }
.form-row .field { margin-top:0; }
.field:first-child { margin-top:0; }
.field label { font-size:.8125rem; font-weight:500; color:var(--ink); }
.field .optional { font-weight:400; color:var(--muted-foreground); }
.field input, .field select, .field textarea {
  font-family:'Inter',sans-serif; font-size:1rem; color:var(--ink);
  background:var(--background); border:1px solid var(--border);
  border-radius:.75rem; padding:.875rem 1rem;
  min-height:44px; width:100%;
  transition: border-color .2s, box-shadow .2s;
}
.field textarea { min-height:9rem; resize:vertical; font-family:'Inter',sans-serif; }
.field input:focus, .field select:focus, .field textarea:focus {
  outline:none; border-color:var(--sage-deep);
  box-shadow:0 0 0 3px color-mix(in oklch,var(--sage) 20%,transparent);
}
.form-submit {
  margin-top:1.75rem; width:100%;
  border-radius:9999px; background:var(--sage-deep); border:none; cursor:pointer;
  padding:1rem 1.75rem; font-family:'Inter',sans-serif; font-size:.9375rem; font-weight:500; color:var(--cream);
  min-height:48px;
  transition: background .2s, transform .2s;
}
.form-submit:hover { background:var(--sage); transform:translateY(-.125rem); }
.form-note { margin-top:1rem; font-size:.75rem; line-height:1.6; color:var(--muted-foreground); }
.form-success {
  display:none; margin-top:1.25rem; border-radius:.85rem;
  border:1px solid color-mix(in oklch,var(--sage) 40%,transparent);
  background:var(--sage-mist); color:var(--sage-deep);
  padding:1rem 1.25rem; font-size:.875rem; line-height:1.6;
}
.form-success.visible { display:block; }

.contact-side { display:flex; flex-direction:column; gap:1.5rem; }
.contact-info-card {
  border-radius:1.5rem; padding:1.75rem;
  background:var(--card); border:1px solid var(--border);
}
.contact-info-card h3 { font-family:'Fraunces',serif; font-size:1.125rem; color:var(--ink); }
.contact-info-card .contact-line { margin-top:.9rem; }
.contact-info-card .contact-line:first-of-type { margin-top: 1.25rem; }
.contact-info-card .contact-line-label { font-size:.75rem; text-transform:uppercase; letter-spacing:.08em; color:var(--muted-foreground); }
.contact-info-card .contact-line a, .contact-info-card .contact-line span.plain {
  display:block; margin-top:.2rem; font-size:.9375rem; font-weight:500; color:var(--ink);
}
.contact-info-card .contact-line a:hover { color:var(--sage-deep); }
.contact-info-card.crisis-card { background:var(--sage-deep); color:var(--cream); border-color:var(--sage-deep); }
.contact-info-card.crisis-card h3 { color:var(--cream); }
.contact-info-card.crisis-card .contact-line-label { color:color-mix(in oklch,var(--cream) 65%,transparent); }
.contact-info-card.crisis-card .contact-line a { color:var(--cream); }
.contact-info-card.crisis-card .contact-line a:hover { color:var(--sage-soft); }

/* ── Staff bios (full-length, on the Staff page) ─────────────────── */
.staff-bio {
  display:flex; flex-direction:column; gap:1.75rem;
  border-radius:1.75rem; padding:2rem;
  background:var(--card); border:1px solid var(--border);
  margin-top:2rem;
}
.staff-bio:first-of-type { margin-top:3rem; }
@media(min-width:768px){ .staff-bio { flex-direction:row; align-items:flex-start; } }
.staff-bio-photo {
  flex-shrink:0; width:100%; max-width:16rem;
  border-radius:1.25rem; overflow:hidden; outline:1px solid rgba(0,0,0,.05);
}
@media(min-width:768px){ .staff-bio-photo { width:14rem; max-width:14rem; } }
.staff-bio-photo img { aspect-ratio:4/5; width:100%; object-fit:cover; }
.staff-bio-content { flex:1; min-width:0; }
.staff-bio-content h2 { font-family:'Fraunces',serif; font-size:1.375rem; color:var(--ink); }
.staff-bio-creds { margin-top:.25rem; font-size:.9375rem; font-style:italic; color:var(--sage-deep); }
.staff-bio-content p { margin-top:1rem; font-size:.9375rem; line-height:1.75; color:var(--muted-foreground); }
.staff-bio-content p:first-of-type { margin-top:1.25rem; }

/* ── Staff grid (Staff page) ──────────────────────────────────────── */
.staff-grid { margin-top:3rem; display:flex; flex-wrap:wrap; justify-content:center; gap:1.75rem; }
.staff-card {
  position:relative; flex:1 1 100%;
  display:block; width:100%; text-align:left;
  border-radius:1.75rem; overflow:hidden;
  border:1px solid var(--border); background:var(--ink);
  font:inherit; color:inherit; cursor:pointer;
  -webkit-appearance:none; appearance:none;
  transition: transform .4s cubic-bezier(.2,.8,.2,1), box-shadow .4s ease, border-color .4s ease;
}
@media(min-width:640px){ .staff-card { flex:0 1 calc(50% - .875rem); } }
@media(min-width:1024px){ .staff-card { flex:0 1 calc(33.333% - 1.167rem); } }
.staff-card:hover, .staff-card:focus-visible {
  transform: translateY(-.5rem);
  box-shadow: 0 28px 54px -24px rgba(0,0,0,.4);
  border-color: color-mix(in oklch, var(--sage-soft) 40%, transparent);
}
.staff-card:focus-visible { outline: 2px solid var(--sage-soft); outline-offset: 2px; }
.staff-card-photo-wrap { position:relative; aspect-ratio:3/4; overflow:hidden; }
.staff-card-photo-wrap img { width:100%; height:100%; object-fit:cover; transition: transform .6s ease; }
.staff-card:hover .staff-card-photo-wrap img, .staff-card:focus-visible .staff-card-photo-wrap img { transform: scale(1.06); }
.staff-card-overlay {
  position:absolute; inset:0;
  background: linear-gradient(to top, rgba(0,0,0,.82) 0%, rgba(0,0,0,.3) 48%, rgba(0,0,0,0) 72%);
}
.staff-card-no {
  position:absolute; top:1.25rem; left:1.25rem; z-index:1;
  font-family:'Fraunces',serif; font-style:italic; font-size:.8125rem; letter-spacing:.06em;
  color: color-mix(in oklch, var(--cream) 65%, transparent);
}
.staff-card-plus {
  position:absolute; top:1.1rem; right:1.1rem; z-index:1;
  display:flex; align-items:center; justify-content:center;
  width:2.5rem; height:2.5rem; border-radius:9999px;
  background: color-mix(in oklch, var(--cream) 14%, transparent);
  backdrop-filter: blur(6px);
  color: var(--cream);
  transition: transform .3s ease, background .25s ease;
}
.staff-card:hover .staff-card-plus, .staff-card:focus-visible .staff-card-plus {
  transform: rotate(90deg);
  background: var(--sage-deep);
}
.staff-card-info {
  position:absolute; left:1.5rem; right:1.5rem; bottom:1.5rem; z-index:1;
  color: var(--cream);
}
.staff-card-info h2 { font-family:'Fraunces',serif; font-size:1.375rem; line-height:1.15; }
.staff-card-info p { margin-top:.35rem; font-size:.8125rem; font-style:italic; color: color-mix(in oklch, var(--sage-soft) 85%, var(--cream) 15%); }
.staff-card-info .staff-card-blurb { margin-top:.6rem; font-size:.8125rem; font-style:normal; line-height:1.55; color: color-mix(in oklch, var(--cream) 78%, transparent); }
.staff-card-tap {
  margin-top:.9rem; display:inline-flex; align-items:center; gap:.375rem;
  font-size:.75rem; font-weight:500;
  color: color-mix(in oklch, var(--cream) 85%, transparent);
  opacity:.75; transform:translateY(.15rem);
  transition: opacity .3s ease, transform .3s ease, gap .2s ease;
}
.staff-card:hover .staff-card-tap, .staff-card:focus-visible .staff-card-tap { opacity:1; transform:translateY(0); gap:.625rem; }

/* ── Staff modal (clinician bio overlay) ──────────────────────────── */
#staff-bios { display:none; }
.staff-modal {
  position:fixed; inset:0; z-index:300;
  display:flex; align-items:center; justify-content:center;
  padding:1.25rem;
  opacity:0; visibility:hidden;
  transition: opacity .3s ease, visibility 0s linear .3s;
}
.staff-modal.open { opacity:1; visibility:visible; transition: opacity .3s ease; }
.staff-modal-backdrop {
  position:absolute; inset:0;
  background: color-mix(in oklch, var(--ink) 78%, transparent);
  backdrop-filter: blur(6px);
}
.staff-modal-panel {
  position:relative; z-index:1;
  width:100%; max-width:52rem; max-height:88vh;
  overflow-y:auto; -webkit-overflow-scrolling:touch;
  border-radius:1.75rem;
  background:var(--card);
  padding:1.5rem 1.25rem;
  transform: translateY(1.25rem) scale(.97);
  transition: transform .4s cubic-bezier(.2,.8,.2,1);
}
.staff-modal.open .staff-modal-panel { transform: translateY(0) scale(1); }
@media(min-width:640px){ .staff-modal-panel { padding:2rem; } }
@media(min-width:768px){ .staff-modal-panel { padding:2.5rem; } }
.staff-modal-head { display:flex; align-items:center; justify-content:space-between; }
.staff-modal-navgroup { display:flex; gap:.5rem; }
.staff-modal-nav, .staff-modal-close {
  display:flex; align-items:center; justify-content:center;
  width:2.5rem; height:2.5rem; border-radius:9999px; flex-shrink:0;
  border:1px solid var(--border); background:var(--background);
  color:var(--ink); cursor:pointer;
  transition: background .2s, border-color .2s;
}
.staff-modal-nav:hover, .staff-modal-close:hover { background:var(--sage-mist); border-color:color-mix(in oklch,var(--sage) 40%,transparent); }
.staff-modal-body { margin-top:1.5rem; }
.staff-modal-body .staff-bio { margin-top:0; border:none; padding:0; background:none; }

/* ── Simple photo gallery row (service & location pages) ─────────── */
.photo-row { margin-top:3rem; display:grid; gap:1.25rem; grid-template-columns:1fr; }
@media(min-width:640px){ .photo-row.cols-2 { grid-template-columns:repeat(2,1fr); } }
.photo-row img {
  width:100%; aspect-ratio:4/3; object-fit:cover;
  border-radius:1.5rem; border:1px solid var(--border);
}
.photo-row.wide img { aspect-ratio:16/6; }

/* ── Note card (personal message from a clinician) ───────────────── */
.note-card {
  position:relative; margin:0; padding:2.5rem 1.75rem;
  border-radius:1.75rem; background:var(--card); border:1px solid var(--border);
}
@media(min-width:768px){ .note-card { padding:3rem 3.5rem; } }
.note-card::before {
  content:'\201C'; position:absolute; top:.25rem; right:1.5rem;
  font-family:'Fraunces',serif; font-size:6rem; line-height:1;
  color:color-mix(in oklch, var(--sage) 22%, transparent); pointer-events:none;
}
.note-card blockquote { margin-top:1.5rem; }
.note-card blockquote p {
  font-family:'Fraunces',serif; font-size:1.0625rem; line-height:1.85; color:var(--ink);
}
.note-card blockquote p + p { margin-top:1.25rem; }
.note-card figcaption {
  margin-top:1.75rem; font-family:'Fraunces',serif; font-style:italic; font-size:1rem; color:var(--sage-deep);
}
@media(max-width:479px){
  .note-card { padding:2rem 1.25rem; }
  .note-card blockquote p { font-size:1rem; line-height:1.75; }
}

/* ── Footer verification seal ────────────────────────────────────── */
.footer-seal { margin-top:1.5rem; min-height:2rem; }

/* ── Insurance names (Insurance page) ────────────────────────────── */
.ins-tag .ins-name {
  font-family:'Fraunces',serif; font-weight:500; font-size:1.0625rem; line-height:1.25;
  color:var(--ink); margin:0;
}

/* ── Insurance ticker (homepage) ─────────────────────────────────── */
.ins-ticker {
  margin-top:2.5rem; padding:.75rem 0; overflow:hidden;
  -webkit-mask-image:linear-gradient(to right, transparent, #000 8%, #000 92%, transparent);
          mask-image:linear-gradient(to right, transparent, #000 8%, #000 92%, transparent);
}
.ins-ticker-track { display:flex; width:max-content; animation:ins-scroll 60s linear infinite; }
.ins-ticker:hover .ins-ticker-track,
.ins-ticker:focus-within .ins-ticker-track { animation-play-state:paused; }
.ins-ticker .ins-tag { flex:0 0 auto; width:12rem; margin-right:1.25rem; }
@keyframes ins-scroll { from { transform:translateX(0); } to { transform:translateX(-50%); } }
@media (prefers-reduced-motion: reduce) {
  .ins-ticker { -webkit-mask-image:none; mask-image:none; }
  .ins-ticker-track { animation:none; width:auto; flex-wrap:wrap; justify-content:center; gap:1rem; }
  .ins-ticker .ins-tag { margin-right:0; width:calc(50% - .5rem); }
  .ins-ticker .ins-tag[aria-hidden="true"] { display:none; }
}
.seal-fallback {
  display:inline-flex; align-items:center; gap:.5rem;
  padding:.5rem .9rem; border-radius:9999px;
  border:1px solid color-mix(in oklch, var(--cream) 25%, transparent);
  font-size:.8125rem; color:var(--cream);
  transition:border-color .2s, background .2s;
}
.seal-fallback:hover { border-color:color-mix(in oklch, var(--cream) 55%, transparent); background:color-mix(in oklch, var(--cream) 8%, transparent); }
.seal-fallback[hidden] { display:none; }
.footer-seal { display:flex; flex-wrap:wrap; align-items:center; gap:1rem; }
.nbcc-badge { display:block; width:6.25rem; height:6.25rem; border-radius:.75rem; overflow:hidden; background:#fff; transition:transform .2s; }
.nbcc-badge:hover { transform:translateY(-2px); }
.nbcc-badge img { width:100%; height:100%; object-fit:contain; }

/* Shared Font Awesome layout; context rules above retain each icon size. */
.site-icon { display:inline-block; flex-shrink:0; line-height:1; text-align:center; font-style:normal; }
