:root {
  --deep:   #1c3d5a;
  --navy:   #1e4e78;
  --ocean:  #2a6899;
  --tide:   #3a96c8;
  --mist:   #8ecae6;
  --foam:   #ceeaf7;
  --salt:   #eef7fb;
  --white:  #ffffff;
  --text:   #1a2e3d;
  --subtle: #2d5f78;
  --accent: #5bbedd;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; background: #0e1f36; min-height: 100%; overflow-x: hidden; width: 100%; }
body { font-family: 'DM Sans', sans-serif; background: var(--white); color: var(--text); overflow-x: hidden; width: 100%; max-width: 100vw; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; min-height: 100vh; display: flex; flex-direction: column; overflow-wrap: break-word; word-break: break-word; }
body > footer { margin-top: auto; }
* { -webkit-tap-highlight-color: transparent; touch-action: manipulation; }
a { text-decoration: none; color: inherit; }

/* SKIP LINK */
.skip-link { position: absolute; left: -9999px; }
.skip-link:focus { position: fixed; top: 1rem; left: 1rem; z-index: 9999; background: var(--tide); color: white; padding: .5rem 1rem; border-radius: 2px; }

/* ── NAV ── */
nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 100;
  display: flex; align-items: center; justify-content: space-between;
  flex-wrap: nowrap;
  padding: 1.1rem 4rem;
  background: rgba(10,22,40,0.94);
  -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(74,168,200,0.12);
  transition: background 0.3s;
}
nav.scrolled { background: rgba(6,15,26,0.98); }

.pmhs-breadcrumb { display: flex; align-items: center; flex-wrap: wrap; gap: 0.45rem; font-family: 'DM Sans', sans-serif; font-size: 0.76rem; }
.pmhs-breadcrumb-link { display: inline-flex; align-items: center; gap: 0.32rem; color: var(--ocean); text-decoration: none; font-weight: 500; transition: color 0.2s; }
.pmhs-breadcrumb-link:hover { color: var(--deep); text-decoration: underline; }
.pmhs-breadcrumb-sep { color: rgba(58,150,200,0.4); flex-shrink: 0; }
.pmhs-breadcrumb-current { color: var(--deep); font-weight: 500; }

.logo { display: flex; align-items: center; cursor: pointer; }
.logo-text { margin-left: 0.75rem; }
.logo-mark {
  width: 36px; height: 36px; flex-shrink: 0;
  filter:
    drop-shadow(0 0 3px rgba(196,212,230,0.85))
    drop-shadow(0 0 7px rgba(196,212,230,0.55))
    drop-shadow(0 0 13px rgba(196,212,230,0.3));
}
.logo-text { display: flex; flex-direction: column; line-height: 1.15; }
.logo-text .brand { font-family: 'Cormorant Garamond', serif; font-weight: 400; font-size: 1.5rem; color: var(--white); letter-spacing: 0.04em; }
.logo-text .sub { font-size: 0.6rem; color: var(--mist); letter-spacing: 0.18em; text-transform: uppercase; font-weight: 300; }

.nav-links { display: flex; align-items: center; list-style: none; flex-wrap: nowrap; white-space: nowrap; }
.nav-links li + li { margin-left: 2.25rem; }
.nav-links a { color: rgba(200,230,240,0.7); font-size: 0.8rem; letter-spacing: 0.1em; text-transform: uppercase; font-weight: 400; transition: color 0.3s; cursor: pointer; }
.nav-links a:hover, .nav-links a.active { color: var(--white); }
.nav-cta { background: var(--tide); color: var(--white) !important; padding: 0.5rem 1.3rem; border-radius: 2px; transition: background 0.3s !important; }
.nav-cta:hover { background: var(--accent) !important; }
.nav-portal { border: 1px solid rgba(142,202,230,0.35); color: rgba(200,230,240,0.8) !important; padding: 0.5rem 1.1rem; border-radius: 2px; font-size: 0.78rem; transition: all 0.3s !important; }
.nav-portal:hover { border-color: rgba(142,202,230,0.7); color: var(--white) !important; background: rgba(142,202,230,0.08) !important; }

.mobile-menu-btn { display: none; background: none; border: none; cursor: pointer; color: var(--mist); padding: 0.25rem; }

/* ── PAGES ── */
.page { display: none; }

/* ── HOME HERO ── */
.hero {
  min-height: 100vh; display: grid; grid-template-columns: 1fr 1fr;
  background: var(--deep); position: relative; overflow: hidden;
}
.hero-left {
  display: flex; flex-direction: column; justify-content: center;
  padding: 9rem 4rem 6rem; position: relative; z-index: 2;
}
.consult-badge {
  display: inline-flex; align-items: center; gap: 0.5rem;
  background: rgba(46,124,168,0.15); border: 1px solid rgba(79,168,200,0.3);
  color: var(--mist); font-size: 0.7rem; letter-spacing: 0.14em;
  text-transform: uppercase; font-weight: 500; padding: 0.4rem 0.9rem;
  border-radius: 6px; margin-bottom: 1.25rem; width: -webkit-fit-content; width: fit-content;
  opacity: 1;
}
.hero-eyebrow {
  font-size: 0.7rem; letter-spacing: 0.22em; text-transform: uppercase;
  color: var(--mist); font-weight: 400; margin-bottom: 1.25rem;
  opacity: 1;
}
.hero-title {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(2.4rem, 3.2vw, 4rem); font-weight: 300; line-height: 1.1;
  color: var(--white); margin-bottom: 1.75rem;
  opacity: 1;
}
.hero-title em { font-style: italic; color: var(--mist); font-size: 0.8em; }
.hero-body {
  font-size: 0.95rem; line-height: 1.8; color: #ffffff;
  max-width: 420px; font-weight: 300; margin-bottom: 2.5rem;
  opacity: 1;
}
.hero-actions { display: flex; flex-direction: column; align-items: flex-start; opacity: 1; gap: 0.85rem; }
.hero-actions > * + * { margin-left: 0; }
.btn-primary {
  display: inline-flex; align-items: center; gap: 0.5rem;
  background: var(--tide); color: var(--white); padding: 0.85rem 1.75rem;
  font-size: 0.8rem; letter-spacing: 0.1em; text-transform: uppercase;
  font-weight: 500; border-radius: 8px; transition: all 0.3s; border: none; cursor: pointer;
}
.btn-primary:hover { background: var(--accent); transform: translateY(-2px); }

@keyframes btn-pulse {
  0%   { box-shadow: 0 0 0 0 rgba(58,150,200,0.85); }
  70%  { box-shadow: 0 0 0 14px rgba(58,150,200,0); }
  100% { box-shadow: 0 0 0 0 rgba(58,150,200,0); }
}
.btn-pulse { animation: btn-pulse 2.2s ease-out infinite; will-change: box-shadow; }
.nav-cta.btn-pulse { animation-delay: 1.1s; }

@keyframes btn-pulse-dark {
  0%   { box-shadow: 0 0 0 0 rgba(58,150,200,0.85); }
  70%  { box-shadow: 0 0 0 14px rgba(58,150,200,0); }
  100% { box-shadow: 0 0 0 0 rgba(58,150,200,0); }
}
.btn-pulse-dark { animation: btn-pulse-dark 2.2s ease-out infinite; }

@keyframes btn-pulse-light {
  0%   { box-shadow: 0 0 0 0 rgba(255,255,255,0.65); }
  70%  { box-shadow: 0 0 0 12px rgba(255,255,255,0); }
  100% { box-shadow: 0 0 0 0 rgba(255,255,255,0); }
}
.btn-pulse-light { animation: btn-pulse-light 2.2s ease-out infinite; border-radius: 8px; }
.btn-pulse-light.delay { animation-delay: 1.1s; }

/* CALL BUTTON FLIP */
.call-flip { display: inline-block; perspective: 600px; height: 44px; width: 220px; vertical-align: middle; border-radius: 8px; }
.call-flip-inner {
  position: relative; width: 100%; height: 100%;
  transform-style: preserve-3d; transition: transform 0.45s ease;
}
.call-flip:hover .call-flip-inner { transform: rotateX(180deg); }
.call-flip-front, .call-flip-back {
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center; gap: 0.5rem;
  background: var(--tide); color: var(--white);
  font-size: 0.8rem; letter-spacing: 0.1em;
  text-transform: uppercase; font-weight: 500; border-radius: 8px;
  white-space: nowrap; backface-visibility: hidden; -webkit-backface-visibility: hidden;
  text-decoration: none; font-family: 'DM Sans', sans-serif;
  overflow: hidden;
}
.call-flip-back {
  transform: rotateX(180deg);
  background: var(--ocean);
}
.call-flip:hover .call-flip-front { background: var(--accent); }
.call-flip:hover .call-flip-back { background: var(--accent); }

.btn-ghost {
  display: inline-flex; align-items: center; gap: 0.5rem;
  color: var(--mist); font-size: 0.8rem; letter-spacing: 0.1em;
  text-transform: uppercase; font-weight: 400; transition: color 0.3s;
  border-bottom: 1px solid rgba(122,184,212,0.3); padding-bottom: 2px; cursor: pointer;
  background: none; border-top: none; border-left: none; border-right: none;
}
.btn-ghost:hover { color: var(--white); border-color: var(--white); }

.hero-right { position: relative; overflow: hidden; }
.hero-photo { position: absolute; inset: 0; width: 100%; height: 100%; -webkit-object-fit: cover; object-fit: cover; -webkit-object-position: center; object-position: center; filter: brightness(0.65) saturate(0.85); }
.hero-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to right, var(--deep) 0%, transparent 35%), linear-gradient(to top, rgba(10,22,40,0.45) 0%, transparent 55%);
}
.hero-stats {
  position: absolute; bottom: 3rem; right: 2.5rem;
  display: flex; flex-direction: column; z-index: 3;
  opacity: 1;
  transition: opacity 0.3s ease;
}
.stat { text-align: right; border-right: 2px solid rgba(122,184,212,0.25); padding-right: 1.1rem; padding-left: 1.1rem; margin-bottom: 1.5rem; }
.stat-num { font-family: 'Cormorant Garamond', serif; font-size: 2rem; font-weight: 300; color: var(--white); line-height: 1; }
.stat-label { font-size: 0.65rem; letter-spacing: 0.15em; text-transform: uppercase; color: var(--mist); font-weight: 300; }

.scroll-hint {
  position: absolute; bottom: 2rem; left: 4rem; display: flex;
  flex-direction: column; align-items: center; gap: 0.4rem;
  color: rgba(255,255,255,0.92);
  font-size: 0.62rem; letter-spacing: 0.18em; text-transform: uppercase; background: none; border: none; cursor: pointer; font-family: 'DM Sans', sans-serif; padding: 0;
  opacity: 1;
}
.scroll-hint svg { animation: bounce-down 1.8s ease-in-out infinite, pulse-white 1.8s ease-in-out infinite; }
@keyframes pulse-white { 0%,100%{opacity:1;filter:drop-shadow(0 0 0 rgba(255,255,255,0))} 50%{opacity:0.5;filter:drop-shadow(0 0 6px rgba(255,255,255,0.95))} }
@keyframes bounce-down { 0%,100%{transform:translateY(0)} 50%{transform:translateY(5px)} }
.scroll-line { display: none; }

/* TRUST BAR */
.trust-bar {
  background: var(--navy); border-top: 1px solid rgba(74,168,200,0.08);
  border-bottom: 1px solid rgba(74,168,200,0.08); padding: 0;
  overflow: hidden; position: relative; height: 44px; display: flex; align-items: center;
}
.trust-bar::before, .trust-bar::after {
  content: ''; position: absolute; top: 0; bottom: 0; width: 80px; z-index: 2; pointer-events: none;
}
.trust-bar::before { left: 0; background: linear-gradient(to right, var(--navy), transparent); }
.trust-bar::after  { right: 0; background: linear-gradient(to left, var(--navy), transparent); }
.trust-track {
  display: flex; align-items: center; white-space: nowrap;
  animation: ticker 65s linear infinite;
  will-change: transform;
}
.trust-track:hover { animation-play-state: paused; }
@keyframes ticker {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}
.trust-item { display: inline-flex; align-items: center; white-space: nowrap; flex-shrink: 0; padding: 0 2.25rem; }
.trust-item span { margin-left: 0.6rem; }
.trust-dot { width: 5px; height: 5px; border-radius: 50%; background: var(--tide); flex-shrink: 0; }
.trust-item span { font-size: 0.72rem; letter-spacing: 0.12em; text-transform: uppercase; color: rgba(200,230,240,0.55); font-weight: 300; }
.trust-divider { width: 1px; height: 20px; background: rgba(122,184,212,0.12); flex-shrink: 0; }

/* ── HOME SERVICES ── */
.home-services { background: var(--salt); padding: 5rem 4rem; }
.section-header { display: grid; grid-template-columns: 1fr 1fr; grid-gap: 3rem; margin-bottom: 4rem; align-items: end; }
.section-label { font-size: 0.68rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--tide); font-weight: 400; margin-bottom: 0.75rem; }
.section-title { font-family: 'Cormorant Garamond', serif; font-size: clamp(1.8rem, 2.4vw, 2.8rem); font-weight: 300; line-height: 1.15; color: var(--deep); }
.section-title em { font-style: italic; color: var(--ocean); }
.section-desc { font-size: 0.9rem; line-height: 1.8; color: var(--subtle); font-weight: 300; max-width: 440px; align-self: end; }

.services-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
/* County detail page single-card wrapper: force explicit centering and full,
   symmetric width so the card cannot render off-center on any viewport,
   regardless of what upstream cascade produced an offset. */
#page-service-areas .services-grid[style*="grid-template-columns:1fr;"] {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}
#page-service-areas .services-grid[style*="grid-template-columns:1fr;"] .service-card {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}
.service-card {
  background: rgba(255,255,255,0.97); padding: 0; position: relative; border-radius: 14px; border: 2px solid rgba(58,150,200,0.55); box-shadow: 0 4px 20px rgba(46,124,168,0.07);
  overflow: hidden; transition: border-color 0.3s, box-shadow 0.3s, transform 0.3s; cursor: default;
  
}
.status-dot { animation: statusPulse 1.6s ease-out infinite; }
@keyframes statusPulse { 0%{box-shadow:0 0 0 0 rgba(34,139,70,0.8);}70%{box-shadow:0 0 0 10px rgba(34,139,70,0);}100%{box-shadow:0 0 0 0 rgba(34,139,70,0);} }
#page-service-areas .service-card {
  display:flex;
  flex-direction:column;
  height:460px !important;
  overflow:hidden !important;
  cursor:pointer;
}
/* County pages (/service-areas/{county}) consolidate everything into one
   card and need it to grow with its content, the 460px hub-grid height
   above exists only for the uniform preview cards on the /service-areas
   index and must not clip the full article. */
#page-service-areas .service-card.pmhs-county-card {
  height:auto !important;
  overflow:visible !important;
  cursor:default !important;
}
#page-service-areas .service-card.pmhs-county-card .service-card-body {
  overflow:visible !important;
  flex:none !important;
  align-items:flex-start !important;
}
#page-service-areas .service-card.sa-expanded {
  height:auto !important;
  overflow:visible !important;
  cursor:default;
}
#page-service-areas .service-card-body {
  flex:1;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  position:relative;
  padding:1.25rem 1.5rem 0;
}
#page-service-areas .sa-preview {
  flex:1;
  overflow:hidden;
  position:relative;
}
#page-service-areas .sa-preview::after {
  content:'';
  position:absolute;
  bottom:0;left:0;right:0;
  height:60px;
  background:linear-gradient(to bottom, transparent, rgba(255,255,255,0.97));
  pointer-events:none;
}
#page-service-areas .service-card.sa-expanded .sa-preview::after { display:none; }
#page-service-areas .service-card.sa-expanded .sa-preview { overflow:visible; }
#page-service-areas .sa-county-full { display:none; margin-top:0.75rem; border-top:1.5px solid rgba(58,150,200,0.3); padding-top:0.75rem; }
#page-service-areas .service-card.sa-expanded .sa-county-full { display:block; }
#page-service-areas .sa-byline {
  font-size:0.62rem;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:var(--tide);
  font-weight:500;
  padding:0.75rem 1.5rem;
  margin-top:auto;
  border-top:1.5px solid rgba(58,150,200,0.3);
  flex-shrink:0;
  display:flex;
  align-items:center;
  justify-content:space-between;
}
#page-service-areas .service-card.sa-expanded .sa-byline { margin-top:0.85rem; }
#page-service-areas .sa-expand-btn {
  display:inline-flex;
  align-items:center;
  gap:0.35rem;
  font-size:0.62rem;
  letter-spacing:0.1em;
  text-transform:uppercase;
  font-weight:600;
  color:var(--ocean);
  background:rgba(58,150,200,0.1);
  border:1.5px solid rgba(58,150,200,0.55);
  border-radius:6px;
  padding:0.3rem 0.75rem;
  transition:background 0.2s, border-color 0.2s;
  cursor:pointer;
}
#page-service-areas .service-card:hover .sa-expand-btn {
  background:rgba(58,150,200,0.18);
  border-color:rgba(58,150,200,0.55);
}
#page-service-areas .service-card.sa-expanded .sa-expand-btn { display:none; }
#page-service-areas .sa-collapse {
  display:none;
  font-size:0.62rem;
  letter-spacing:0.1em;
  text-transform:uppercase;
  font-weight:500;
  color:rgba(58,150,200,0.55);
  cursor:pointer;
  background:none;
  border:none;
  align-items:center;
  gap:0.3rem;
  padding:0;
}
#page-service-areas .service-card.sa-expanded .sa-collapse { display:inline-flex; }
.service-card:hover { border-color: rgba(58,150,200,0.55); box-shadow: 0 12px 40px rgba(46,124,168,0.14); transform: translateY(-2px); }
/* FAQ page: 3 columns, cards auto-height */

.service-card-header {
  background: linear-gradient(135deg, var(--deep) 0%, #1e4d72 100%);
  padding: 1.4rem 1.5rem 1.3rem; border-radius: 12px 12px 0 0;
  display: flex; align-items: center; gap: 0.9rem;
}
.service-card-header-icon { width: 44px; height: 44px; flex-shrink: 0; background: rgba(255,255,255,0.1); border-radius: 50%; display: flex; align-items: center; justify-content: center; border: 1px solid rgba(255,255,255,0.18); }
.service-card-header-icon svg { width: 22px; height: 22px; }
.service-card-header-text { flex: 1; }
.service-num { font-family: 'Cormorant Garamond', serif; font-size: 2.2rem; font-weight: 300; color: rgba(200,230,240,0.25); line-height: 1; flex-shrink: 0; margin-left: auto; }
.service-name { font-family: 'Cormorant Garamond', serif; font-size: 1.15rem; font-weight: 400; color: var(--white); line-height: 1.25; margin: 0; }
.service-card-body { padding: 1.25rem 1.5rem 1.5rem; }
.service-desc { font-size: 0.85rem; line-height: 1.75; color: var(--subtle); font-weight: 300; }
.service-desc + .service-desc { margin-top: 0.75rem; }
.service-link { display: inline-flex; align-items: center; gap: 0.4rem; margin-top: 1.25rem; font-size: 0.72rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--tide); font-weight: 500; cursor: pointer; background: none; border: none; }

/* TELEHEALTH PANEL */
.telehealth-panel {
  background: linear-gradient(135deg, var(--navy) 0%, var(--ocean) 100%);
  padding: 5rem 4rem; display: grid; grid-template-columns: 1fr 1fr; grid-gap: 4rem; align-items: center;
  position: relative; overflow: hidden;
}
.telehealth-panel::before {
  content: ''; position: absolute; top: -40%; right: -8%; width: 500px; height: 500px;
  border-radius: 50%; background: radial-gradient(circle, rgba(79,168,200,0.1) 0%, transparent 70%);
}
.banner-label { font-size: 0.68rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--mist); font-weight: 400; margin-bottom: 0.75rem; }
.banner-title { font-family: 'Cormorant Garamond', serif; font-size: clamp(1.8rem, 2.8vw, 2.8rem); font-weight: 300; color: var(--white); line-height: 1.2; margin-bottom: 1.25rem; }
.banner-title em { font-style: italic; color: var(--mist); }
.banner-body { font-size: 0.88rem; line-height: 1.8; color: rgba(200,230,240,0.6); font-weight: 300; }
.tele-features { display: flex; flex-direction: column; }
.tele-features .tele-feature + .tele-feature { margin-top: 1.25rem; }
.tele-feature {
  display: flex; align-items: flex-start; padding: 1.25rem;
  background: rgba(255,255,255,0.04); border: 1px solid rgba(122,184,212,0.1);
  border-radius: 12px;  box-shadow: 0 2px 12px rgba(10,22,40,0.12); transition: background 0.3s, border-color 0.3s, transform 0.3s;
}
.tele-feature:hover { background: rgba(255,255,255,0.07); border-color: rgba(122,184,212,0.22); }
.tele-icon { width: 38px; height: 38px; background: rgba(46,124,168,0.18); border-radius: 2px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; margin-right: 1.1rem; }
.tele-feature h4 { font-size: 0.82rem; font-weight: 500; color: var(--white); margin-bottom: 0.25rem; }
.tele-feature p { font-size: 0.78rem; color: rgba(200,230,240,0.5); font-weight: 300; line-height: 1.55; }

/* HOME PROVIDERS */
.home-providers { background: var(--white); padding: 7rem 4rem; }
.provider-grid { display: grid; grid-template-columns: 1fr 1fr; grid-gap: 1.75rem; margin-top: 1.5rem; }
.provider-card {
  border: 2px solid rgba(58,150,200,0.55); border-radius: 14px; padding: 0; position: relative; box-shadow: 0 4px 20px rgba(46,124,168,0.08); background: rgba(255,255,255,0.97); 
  overflow: hidden; transition: border-color 0.4s, box-shadow 0.4s;
  display: flex; flex-direction: column;
}
.provider-card:hover { border-color: rgba(58,150,200,0.55); box-shadow: 0 20px 50px rgba(10,22,40,0.12), 0 0 0 1px rgba(91,190,221,0.15); transform: translateY(-3px); }
.provider-card::after { content: ''; position: absolute; top: 0; left: 0; width: 3px; height: 0; background: linear-gradient(180deg, var(--tide), var(--accent)); transition: height 0.4s; }
.provider-card:hover::after { height: 100%; }
.provider-avatar { width: 64px; height: 64px; border-radius: 50%; background: linear-gradient(135deg, var(--ocean), var(--tide)); display: flex; align-items: center; justify-content: center; margin-bottom: 1.5rem; font-family: 'Cormorant Garamond', serif; font-size: 1.6rem; font-weight: 300; color: var(--white); }
.provider-portrait-wrap { width: 160px; height: 160px; margin-bottom: 1.75rem; border-radius: 14px; overflow: hidden; border: 2px solid rgba(58,150,200,0.55); box-shadow: 0 4px 18px rgba(46,124,168,0.12); background: var(--salt); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.provider-portrait-wrap img { width: 100%; height: 100%; object-fit: cover; object-position: center top; display: block; }
.provider-portrait-placeholder { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.6rem; color: var(--subtle); padding: 2rem; text-align: center; }
.provider-portrait-placeholder svg { opacity: 0.3; }
.provider-portrait-placeholder span { font-size: 0.72rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--subtle); opacity: 0.5; font-weight: 400; }
.provider-cred { font-size: 0.7rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--tide); font-weight: 500; margin-bottom: 0.25rem; }
.provider-name { font-family: 'Cormorant Garamond', serif; font-size: 1.5rem; font-weight: 400; color: var(--deep); margin-bottom: 0.25rem; }
.provider-license { font-size: 0.7rem; color: var(--subtle); font-weight: 300; margin-bottom: 1.25rem; }
.provider-role { display: inline-block; background: var(--salt); color: var(--ocean); font-size: 0.67rem; letter-spacing: 0.12em; text-transform: uppercase; padding: 0.3rem 0.8rem; border-radius: 2px; font-weight: 500; margin-bottom: 1.25rem; }
.provider-bio { font-size: 0.85rem; line-height: 1.8; color: var(--subtle); font-weight: 300; margin-bottom: 0.75rem; }
.provider-bio:last-of-type { margin-bottom: 0; }

/* HOME CONTACT */
.home-contact { background: var(--deep); padding: 7rem 4rem; position: relative; overflow: hidden; }
.home-contact::before { content: ''; position: absolute; inset: 0; background: radial-gradient(ellipse at 10% 50%, rgba(46,124,168,0.13) 0%, transparent 50%), radial-gradient(ellipse at 90% 20%, rgba(26,74,110,0.18) 0%, transparent 40%); pointer-events: none; }
.contact-grid { display: grid; grid-template-columns: 1fr 1fr; grid-gap: 5rem; align-items: start; position: relative; z-index: 1; }
.contact-left .section-label { color: var(--mist); }
.contact-left .section-title { color: var(--white); margin-bottom: 1.25rem; }
.contact-left .section-title em { color: var(--mist); }
.contact-left > p { font-size: 0.9rem; line-height: 1.8; color: rgba(200,230,240,0.5); font-weight: 300; margin-bottom: 2.5rem; }
.contact-details { display: flex; flex-direction: column; }
.contact-details .contact-item + .contact-item { margin-top: 1.25rem; }
.contact-item { display: flex; align-items: flex-start; }
.contact-item > div:last-child { margin-left: 1rem; }
.contact-icon-wrap { width: 42px; height: 42px; background: rgba(46,124,168,0.13); border: 1px solid rgba(122,184,212,0.13); border-radius: 2px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.contact-item-label { font-size: 0.65rem; letter-spacing: 0.15em; text-transform: uppercase; color: var(--mist); font-weight: 400; margin-bottom: 0.25rem; }
.contact-item-value { font-size: 0.9rem; color: var(--white); font-weight: 300; transition: color 0.3s; }
a.contact-item-value:hover { color: var(--mist); }

.contact-form { background: rgba(255,255,255,0.06); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); border: 2px solid rgba(122,184,212,0.28); padding: 2.75rem; border-radius: 14px; box-shadow: 0 8px 32px rgba(10,22,40,0.2); }
.form-title { font-family: 'Cormorant Garamond', serif; font-size: 1.5rem; font-weight: 300; color: var(--white); margin-bottom: 0.35rem; }
.form-subtitle { font-size: 0.77rem; color: rgba(200,230,240,0.4); margin-bottom: 1.75rem; font-weight: 300; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; grid-gap: 0.85rem; }
.form-group { display: flex; flex-direction: column; gap: 0.4rem; margin-bottom: 1rem; }
.form-group label { font-size: 0.65rem; letter-spacing: 0.15em; text-transform: uppercase; color: rgba(216,238,246,0.78); font-weight: 400; }
.form-group input, .form-group select, .form-group textarea {
  background: rgba(255,255,255,0.05); border: 1px solid rgba(122,184,212,0.13);
  border-radius: 2px; padding: 0.75rem 0.9rem; color: var(--white);
  font-family: 'DM Sans', sans-serif; font-size: 0.85rem; font-weight: 300;
  outline: none; transition: border-color 0.3s, background 0.3s; width: 100%;
}
.form-group input::placeholder, .form-group textarea::placeholder { color: rgba(200,230,240,0.18); }
.form-group select option { background: var(--navy); color: var(--white); }
.form-group input:focus, .form-group select:focus, .form-group textarea:focus { border-color: rgba(79,168,200,0.45); background: rgba(255,255,255,0.07); }
.form-group textarea { resize: none; min-height: 90px; }
.form-submit { width: 100%; background: var(--tide); color: var(--white); border: none; padding: 0.9rem; font-family: 'DM Sans', sans-serif; font-size: 0.78rem; letter-spacing: 0.12em; text-transform: uppercase; font-weight: 500; cursor: pointer; border-radius: 2px; transition: background 0.3s, transform 0.2s; margin-top: 0.35rem; }
.form-submit:hover { background: var(--accent); transform: translateY(-1px); }
.form-note { font-size: 0.68rem; color: rgba(200,230,240,0.28); text-align: center; margin-top: 0.85rem; font-weight: 300; line-height: 1.6; }

/* ── INNER PAGES ── */
.page-hero {
  position: relative; overflow: hidden;
  min-height: 370px;
  display: flex; align-items: center;
  padding: 8rem 4rem 5rem;
}
.page-hero-bg {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover; object-position: center;
  filter: brightness(0.62) saturate(0.82);
  z-index: 0;
}
.page-hero::before {
  content: ''; position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(to right, rgba(10,22,40,0.68) 0%, rgba(10,22,40,0.38) 55%, rgba(10,22,40,0.08) 100%);
}
.page-hero::after {
  content: ''; position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(to top, rgba(10,22,40,0.22) 0%, transparent 55%);
}
.page-hero-inner { max-width: 640px; position: relative; z-index: 2; }
.blog-p { font-size:0.84rem; color:var(--subtle); line-height:1.58; font-weight:300; margin-bottom:0.55rem; }
.blog-p:last-child { margin-bottom:0; }
.article-card { background:rgba(255,255,255,0.97); border:2px solid rgba(58,150,200,0.55); border-radius:6px; box-shadow:0 8px 28px rgba(46,124,168,0.1), 7px 7px 0 0 #ffffff, 7px 7px 0 1px rgba(58,150,200,0.25), 14px 14px 0 0 #ffffff, 14px 14px 0 1px rgba(58,150,200,0.18); padding:3rem 3.75rem 2.75rem; margin-right:16px; margin-bottom:16px; position:relative; overflow:hidden; }
.article-card::before { content:''; position:absolute; top:0; left:0; width:5px; height:100%; background:linear-gradient(180deg, var(--tide), var(--accent)); }
.article-card::after { content:'\201C'; position:absolute; top:-1.2rem; right:1.75rem; font-family:'Cormorant Garamond',serif; font-size:9.5rem; font-weight:300; color:rgba(58,150,200,0.4); line-height:1; pointer-events:none; }
.article-p { font-family:'Cormorant Garamond',serif; font-size:1.15rem; color:var(--subtle); line-height:1.85; font-weight:400; margin-bottom:1.1rem; position:relative; z-index:1; text-align:justify; hyphens:auto; -webkit-hyphens:auto; }
.article-p:last-child { margin-bottom:0; }
.article-p:first-of-type::first-letter { font-family:'Cormorant Garamond',serif; font-size:3.4rem; font-weight:500; color:var(--ocean); float:left; line-height:0.8; padding-right:0.5rem; padding-top:0.3rem; }
.article-tag-row { display:flex; gap:0.5rem; margin-bottom:1.5rem; position:relative; z-index:1; }
.article-tag-pill { font-size:0.68rem; font-weight:600; letter-spacing:0.04em; color:var(--ocean); background:#eaf4fb; border:1.5px solid rgba(58,150,200,0.55); border-radius:20px; padding:0.3rem 0.85rem; }
.article-audience-line { font-family:'Cormorant Garamond',serif; font-size:1.15rem; font-style:italic; color:var(--ocean); font-weight:500; margin-bottom:1.25rem; padding-bottom:1.1rem; border-bottom:1px dashed rgba(58,150,200,0.25); position:relative; z-index:1; }
.article-toolbar { display:flex; flex-wrap:wrap; align-items:center; gap:0.55rem; margin-bottom:1.5rem; position:relative; z-index:1; }
.article-toolbar-btn { display:inline-flex; align-items:center; gap:0.35rem; height:32px; font-size:0.66rem; font-weight:600; letter-spacing:0.02em; color:var(--ocean); background:#eaf4fb; border:1.5px solid rgba(58,150,200,0.55); border-radius:20px; padding:0 0.85rem 0 0.7rem; cursor:pointer; box-sizing:border-box; transition:background 0.15s; font-family:'DM Sans',sans-serif; }
.article-toolbar-btn:hover { background:rgba(58,150,200,0.18); }
.article-fontsize-group { display:inline-flex; align-items:center; gap:0.35rem; height:32px; box-sizing:border-box; background:#eaf4fb; border:1.5px solid rgba(58,150,200,0.55); border-radius:20px; padding:0 0.4rem; }
.article-fontsize-btn { display:flex; align-items:center; justify-content:center; box-sizing:border-box; width:28px; height:28px; min-width:28px; min-height:28px; max-width:28px; max-height:28px; aspect-ratio:1/1; flex:0 0 28px; padding:0; margin:0; border-radius:50%; background:transparent; border:none; color:var(--ocean); cursor:pointer; font-size:0.72rem; font-weight:700; font-family:'DM Sans',sans-serif; line-height:1; }
.article-fontsize-btn:hover { background:rgba(58,150,200,0.25); }
.article-takeaways { background:#eaf4fb; border:1.5px solid rgba(58,150,200,0.55); border-radius:12px; padding:1.25rem 1.5rem; margin:0.5rem 0 1.75rem; position:relative; z-index:1; }
.article-takeaways-title { font-size:0.66rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--ocean); font-weight:700; margin-bottom:0.75rem; display:flex; align-items:center; gap:0.4rem; }
.article-takeaways ul { margin:0; padding:0 0 0 1.1rem; }
.article-takeaways li { font-size:0.85rem; color:var(--deep); font-weight:400; line-height:1.6; margin-bottom:0.5rem; }
.article-takeaways li:last-child { margin-bottom:0; }
.article-closing-note { font-family:'Cormorant Garamond',serif; font-size:1rem; font-style:italic; color:var(--subtle); font-weight:400; line-height:1.7; margin-top:0.85rem; padding-top:0.85rem; border-top:1px dashed rgba(58,150,200,0.2); position:relative; z-index:1; }
@media print {
  .page-hero, .pi-back, .article-toolbar, .related-articles-title, .related-articles-grid, #reading-progress-track, #crisis-pill, nav, .nav-links, .a11y-opt, header, footer { display:none !important; }
  .article-card { border:none !important; box-shadow:none !important; padding:0 !important; }
  .article-card::before, .article-card::after { display:none !important; }
  body { background:#fff !important; }
}
.article-author-row { display:flex; align-items:center; justify-content:space-between; gap:0.85rem; margin-top:1.75rem; padding-top:1.5rem; border-top:1.5px solid rgba(58,150,200,0.3); position:relative; z-index:1; flex-wrap:wrap; }
.article-author-left { display:flex; align-items:center; gap:0.85rem; }
.article-share-btn { display:flex; align-items:center; justify-content:center; box-sizing:border-box; width:32px; height:32px; min-width:32px; min-height:32px; max-width:32px; max-height:32px; aspect-ratio:1/1; flex:0 0 32px; padding:0; margin:0; border-radius:50%; background:#eaf4fb; border:1.5px solid rgba(58,150,200,0.55); color:var(--ocean); cursor:pointer; transition:background 0.15s, transform 0.15s; text-decoration:none; font:inherit; line-height:1; -webkit-appearance:none; appearance:none; }
.article-share-btn:hover { background:rgba(58,150,200,0.18); transform:translateY(-1px); }
.article-author-avatar { width:38px; height:38px; border-radius:50%; background:linear-gradient(135deg, var(--ocean), var(--tide)); display:flex; align-items:center; justify-content:center; font-family:'Cormorant Garamond',serif; font-size:0.95rem; font-weight:500; color:var(--white); flex-shrink:0; }
.article-author-name { font-size:0.7rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--deep); font-weight:600; }
.article-author-role { font-size:0.68rem; color:var(--subtle); font-weight:300; margin-top:0.1rem; }
.article-pullquote { font-family:'Cormorant Garamond',serif; font-style:italic; font-size:1.65rem; font-weight:500; color:var(--deep); line-height:1.45; border-left:4px solid var(--tide); padding:0.3rem 0 0.3rem 1.75rem; margin:1.75rem 0; position:relative; z-index:1; }
.related-articles-title { font-size:0.68rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--subtle); font-weight:500; margin:2.25rem 0 1rem; }
.related-articles-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.25rem; margin-bottom:2.25rem; }
.related-article-card { background:rgba(255,255,255,0.97); border:2px solid rgba(58,150,200,0.55); border-radius:12px; padding:1.25rem 1.5rem; text-decoration:none; display:block; transition:border-color 0.3s, box-shadow 0.3s, transform 0.3s; }
.related-article-card:hover { border-color:rgba(58,150,200,0.55); box-shadow:0 12px 30px rgba(46,124,168,0.1); transform:translateY(-2px); }
.related-article-tag { font-size:0.6rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--ocean); font-weight:600; margin-bottom:0.4rem; display:block; }
.related-article-title { font-family:'Cormorant Garamond',serif; font-size:1.05rem; font-weight:500; color:var(--deep); line-height:1.3; }
@media (max-width:768px) { .related-articles-grid { grid-template-columns:1fr; } }
@media (max-width: 640px) { .article-card { padding:1.75rem 1.5rem; } .article-card::after { font-size:5.5rem; right:1rem; top:-0.6rem; } .article-p:first-of-type::first-letter { font-size:2.6rem; } .article-author-row { flex-direction:column; align-items:flex-start; gap:1rem; } .article-author-row > div:last-child { width:100%; justify-content:flex-start; } }
/* eyebrow gets a small left accent line like Korcek */
.page-eyebrow {
  font-size: 0.65rem; letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--tide); font-weight: 500; margin-bottom: 0.9rem;
  display: flex; align-items: center; gap: 0.65rem;
}
.page-eyebrow::before {
  content: ''; display: inline-block; width: 28px; height: 1.5px;
  background: var(--tide); flex-shrink: 0;
}
h1.page-title, h2.page-title {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(1.6rem, 1rem + 3.5vw, 3rem); font-weight: 300;
  color: var(--white); line-height: 1.1; margin-bottom: 1.1rem;
  white-space: normal;
}
h1.page-title em, h2.page-title em { font-style: italic; color: var(--mist); }
.page-subtitle { font-size: 0.875rem; line-height: 1.75; color: rgba(216,238,246,0.88); font-weight: 300; max-width: 480px; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; }

/* connect hero matches */
.connect-hero .page-eyebrow::before { background: var(--tide); }


@media (max-width: 767px) {
  .page-hero { padding: 7rem 1.25rem 3.5rem; min-height: 290px; }
}

.page-body { background: var(--salt); padding: 5rem 4rem; }
.page-body-white { background: var(--white); padding: 2.5rem 4rem 5rem; }

/* SERVICES PAGE */
.issues-card {
  background: linear-gradient(135deg, var(--navy) 0%, var(--ocean) 100%);
  padding: 3rem 3.5rem; border-radius: 14px; margin-bottom: 3.5rem; border: 2px solid rgba(122,184,212,0.24); box-shadow: 0 8px 32px rgba(10,22,40,0.16);
  position: relative; overflow: hidden;
}
.issues-card::after {
  content: '';
  position: absolute; right: -60px; top: -60px;
  width: 240px; height: 240px; border-radius: 50%;
  background: radial-gradient(circle, rgba(142,202,230,0.1) 0%, transparent 70%);
}
.issues-label { font-size: 0.68rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--mist); font-weight: 400; margin-bottom: 0.75rem; }
.issues-title { font-family: 'Cormorant Garamond', serif; font-size: 1.6rem; font-weight: 300; color: var(--white); margin-bottom: 1rem; }
.issues-text { font-size: 0.9rem; line-height: 1.85; color: rgba(200,230,240,0.65); font-weight: 300; max-width: 800px; }

/* Modalities */
.modalities-grid { display: grid; grid-template-columns: repeat(2, 1fr); grid-gap: 1.5rem; margin-bottom: 3rem; }
.treats-grid { grid-template-columns: repeat(3, 1fr) !important; }
.modality-card {
  background: rgba(255,255,255,0.97);
  
  border: 2px solid rgba(58,150,200,0.55);
  padding: 0;
  position: relative;
  overflow: hidden;
  transition: border-color 0.35s, box-shadow 0.35s, transform 0.35s;
  border-radius: 14px;
  box-shadow: 0 4px 20px rgba(46,124,168,0.08);
}
.modality-card:hover {
  border-color: rgba(58,150,200,0.55);
  box-shadow: 0 16px 48px rgba(46,124,168,0.14), 0 0 0 1px rgba(91,190,221,0.12);
  transform: translateY(-2px);
}
.modality-card-header {
  background: linear-gradient(135deg, var(--deep) 0%, #1e4d72 100%);
  padding: 1.4rem 1.5rem 1.3rem;
  border-radius: 12px 12px 0 0;
  display: flex;
  align-items: flex-start;
  gap: 1rem;
}
.modality-card-header .modality-icon-wrap {
  width: 44px; height: 44px; flex-shrink: 0;
  background: rgba(255,255,255,0.1);
  border-radius: 50%; display: flex; align-items: center; justify-content: center;
  border: 1px solid rgba(255,255,255,0.18);
  margin-bottom: 0;
}
.modality-card-header .modality-icon { width: 22px; height: 22px; }
.modality-card-header-text { display: flex; flex-direction: column; gap: 0.3rem; }
.modality-tag {
  display: inline-block; font-size: 0.58rem; letter-spacing: 0.14em; text-transform: uppercase;
  color: rgba(200,230,240,0.75); font-weight: 500;
  margin-bottom: 0;
}
.modality-name { font-family: 'Cormorant Garamond', serif; font-size: 1.25rem; font-weight: 400; color: var(--white); margin-bottom: 0; line-height: 1.2; }
.modality-card-body { padding: 1.25rem 1.5rem 1.5rem; }
.modality-desc { font-size: 0.855rem; line-height: 1.8; color: var(--subtle); font-weight: 300; margin-bottom: 1rem; }
.modality-detail { font-size: 0.82rem; line-height: 1.75; color: var(--text); font-weight: 300; margin-bottom: 1rem; opacity: 0.75; }
.modality-card { display: flex; flex-direction: column; }
.modality-card-body { flex: 1; display: flex; flex-direction: column; }
.modality-list { list-style: none; padding: 0; border-top: 1.5px solid rgba(58,150,200,0.3); padding-top: 1rem; margin-top: auto; }
.modality-list li { font-size: 0.8rem; color: var(--subtle); font-weight: 300; padding: 0.28rem 0 0.28rem 1.1rem; position: relative; }
.modality-list li::before { content: ''; position: absolute; left: 0; top: 0.65rem; width: 5px; height: 5px; border-radius: 50%; background: var(--tide); opacity: 0.6; }
.review-card { padding: 2.5rem 2.25rem 2rem !important; display: flex; flex-direction: column; }
/* Pin the "Google Review · Month Year" footer row to the card bottom so the
   label sits at the same position on every card, regardless of review length.
   !important is required to beat the footer's inline margin-top:1rem. */
.review-card > div:last-child { margin-top: auto !important; padding-top: 1rem; }

/* COVERAGE PAGE */
.coverage-grid { display: grid; grid-template-columns: 1fr 1fr; grid-gap: 2rem; }
.info-card { background: rgba(255,255,255,0.97);  border: 2px solid rgba(58,150,200,0.55); padding: 0; border-radius: 14px; box-shadow: 0 4px 20px rgba(46,124,168,0.07); transition: border-color 0.3s, box-shadow 0.3s, transform 0.3s; overflow: hidden; }
.info-card:hover { border-color: rgba(58,150,200,0.55); box-shadow: 0 16px 48px rgba(46,124,168,0.13); transform: translateY(-2px); }
.info-card-header { background: linear-gradient(135deg, var(--deep) 0%, #1e4d72 100%); padding: 1.5rem 1.75rem 1.4rem; border-radius: 12px 12px 0 0; }
.info-card-label { font-size: 0.6rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--tide); font-weight: 500; margin-bottom: 0.4rem; display: block; }
.info-card-header .info-card-label { color: rgba(255,255,255,0.75); }
.info-card-title { font-family: 'Cormorant Garamond', serif; font-size: 1.2rem; font-weight: 400; color: var(--white); margin: 0; line-height: 1.25; }
.info-card-body { padding: 1rem 1.75rem 1.5rem; }
.info-card p { font-size: 0.85rem; line-height: 1.75; color: var(--subtle); font-weight: 300; margin-bottom: 0.75rem; }
.info-list { list-style: none; padding: 0; margin: 0.75rem 0; }
.info-list li { font-size: 0.83rem; color: var(--subtle); font-weight: 300; padding: 0.35rem 0 0.35rem 1.1rem; position: relative; border-bottom: 1.5px solid rgba(58,150,200,0.3); }
.info-list li::before { content: ''; position: absolute; left: 0; top: 50%; transform: translateY(-50%); width: 5px; height: 5px; border-radius: 50%; background: var(--tide); }
.info-list li:last-child { border-bottom: none; }

/* PRIVACY PAGE */
.privacy-grid { display: grid; grid-template-columns: repeat(3, 1fr); grid-gap: 1.75rem; }
.privacy-card { background: rgba(255,255,255,0.97);  border: 2px solid rgba(58,150,200,0.55); padding: 0; border-radius: 14px; box-shadow: 0 4px 20px rgba(46,124,168,0.06); transition: border-color 0.3s, box-shadow 0.3s, transform 0.3s; overflow: hidden; }
.privacy-card:hover { border-color: rgba(58,150,200,0.55); box-shadow: 0 14px 40px rgba(46,124,168,0.12); transform: translateY(-2px); }
.privacy-card-icon { width: 36px; height: 36px; margin-bottom: 1rem; color: var(--ocean); }

/* Compact square cards for referral directories */
.referral-card { background: rgba(255,255,255,0.97); border: 2px solid rgba(58,150,200,0.55); border-radius: 14px; padding: 0; box-shadow: 0 4px 20px rgba(46,124,168,0.06); display: flex; flex-direction: column; overflow: hidden; transition: border-color 0.3s, box-shadow 0.3s, transform 0.3s; }
.referral-card:hover { border-color: rgba(58,150,200,0.55); box-shadow: 0 14px 40px rgba(46,124,168,0.14); transform: translateY(-3px); }
.referral-card-header { background: linear-gradient(135deg, var(--deep) 0%, #1e4d72 100%); padding: 1.3rem 1.5rem 1.2rem; border-radius: 12px 12px 0 0; display: flex; align-items: center; gap: 0.75rem; }
.referral-card-header svg { width: 22px; height: 22px; color: var(--mist); flex-shrink: 0; opacity: 0.85; }
.referral-card-header h3 { font-family: 'Cormorant Garamond', serif; font-size: 1.1rem; font-weight: 400; color: var(--white); margin: 0; line-height: 1.2; letter-spacing: 0; }
.referral-card-body { padding: 1.1rem 1.5rem 1.4rem; display: flex; flex-direction: column; flex: 1; }
.referral-card p { font-size: 0.82rem; line-height: 1.75; color: var(--subtle); font-weight: 300; margin: 0 0 0.75rem; flex: 1; }
.referral-card a { font-size: 0.74rem; color: var(--tide); font-weight: 500; text-decoration: none; border-bottom: 1px solid rgba(58,150,200,0.3); word-break: break-all; margin-top: auto; display: inline-block; }
.referral-card a:hover { color: var(--ocean); border-color: var(--ocean); }
.referral-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 1.25rem; margin-bottom: 2.5rem; }
.privacy-card { padding: 0 !important; overflow: hidden; }
.privacy-card-header { background: linear-gradient(135deg, var(--deep) 0%, #1e4d72 100%); padding: 1.4rem 1.5rem 1.3rem; border-radius: 12px 12px 0 0; display: flex; align-items: center; gap: 1rem; }
.privacy-card-icon-wrap { width: 44px; height: 44px; flex-shrink: 0; background: rgba(255,255,255,0.1); border-radius: 50%; display: flex; align-items: center; justify-content: center; border: 1px solid rgba(255,255,255,0.18); }
.privacy-card-header svg.privacy-card-icon { width: 22px; height: 22px; flex-shrink: 0; color: var(--mist); opacity: 0.9; margin: 0; }
.privacy-card-title { font-family: 'Cormorant Garamond', serif; font-size: 1.15rem; font-weight: 400; color: var(--white); margin: 0; line-height: 1.25; }
.privacy-card-body { padding: 1.25rem 1.5rem 1.4rem; }
.privacy-card p { font-size: 0.82rem; line-height: 1.75; color: var(--subtle); font-weight: 300; }
.privacy-card p + p { margin-top: 0.6rem; }

/* FOR YOU PAGE */
.for-you-grid { display: grid; grid-template-columns: 1fr 1fr; grid-gap: 2rem; margin-bottom: 2rem; }
.for-you-card { background: rgba(255,255,255,0.97);  border: 2px solid rgba(58,150,200,0.55); padding: 0; border-radius: 14px; box-shadow: 0 4px 20px rgba(46,124,168,0.08); transition: border-color 0.3s, box-shadow 0.3s, transform 0.3s; overflow: hidden; min-width: 0; }
.for-you-card:hover { border-color: rgba(58,150,200,0.55); box-shadow: 0 20px 50px rgba(10,22,40,0.12); transform: translateY(-3px); }
.for-you-card.full { grid-column: 1 / -1; }
.for-you-card-header { background: linear-gradient(135deg, var(--deep) 0%, #1e4d72 100%); padding: 1.3rem 1.5rem 1.2rem; border-radius: 12px 12px 0 0; }
.for-you-card-label { font-size: 0.58rem; letter-spacing: 0.16em; text-transform: uppercase; color: rgba(200,230,240,0.7); font-weight: 500; display: block; margin-bottom: 0.3rem; }
.for-you-card h3 { font-family: 'Cormorant Garamond', serif; font-size: 1.2rem; font-weight: 400; color: var(--white); margin: 0; line-height: 1.25; }
.for-you-card-body { padding: 1rem 1.5rem 1.25rem; }
.for-you-card p, .for-you-card li { font-size: 0.85rem; line-height: 1.7; color: var(--subtle); font-weight: 300; }
.for-you-card ul { list-style: none; padding: 0; margin-top: 0.5rem; }
.for-you-card li { padding: 0.2rem 0 0.2rem 1rem; position: relative; }
.for-you-card li::before { content: ''; position: absolute; left: 0; top: 50%; transform: translateY(-50%); width: 4px; height: 4px; border-radius: 50%; background: var(--tide); }
.for-you-card a { color: var(--tide); border-bottom: 1px solid rgba(79,168,200,0.3); transition: color 0.3s; }
.for-you-card a:hover { color: var(--ocean); }
.for-you-actions { display: flex; margin-top: 1.25rem; flex-wrap: wrap; }
.for-you-actions > * + * { margin-left: 0.85rem; }
.doxy-input { background: var(--salt); border: 2px solid rgba(58,150,200,0.55); border-radius: 14px; padding: 0.7rem 1rem; color: var(--text); font-family: 'DM Sans', sans-serif; font-size: 0.85rem; width: 100%; margin: 0.75rem 0; outline: none; transition: border-color 0.3s; }
.doxy-input:focus { border-color: rgba(79,168,200,0.4); }
.doxy-embed { border: 2px solid rgba(58,150,200,0.55); border-radius: 14px; height: 360px; overflow: hidden; margin-top: 0.75rem; display: grid; place-items: center; background: var(--salt); color: var(--subtle); font-size: 0.82rem; }
.doxy-embed iframe { width: 100%; height: 100%; border: none; }
.btn-sm { display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.6rem 1.1rem; font-size: 0.75rem; letter-spacing: 0.1em; text-transform: uppercase; font-weight: 500; border-radius: 2px; cursor: pointer; transition: all 0.3s; border: none; }
.btn-sm-primary { background: var(--tide); color: var(--white); }
.btn-sm-primary:hover { background: var(--accent); }
.btn-sm-ghost { background: var(--salt); color: var(--ocean); border: 1px solid rgba(46,124,168,0.15) !important; }
.btn-sm-ghost:hover { background: var(--foam); }
.h4-label {
  font-family: 'Cormorant Garamond', serif;
  font-size: 2.6rem;
  letter-spacing: normal;
  text-transform: none;
  font-weight: 700;
  color: var(--deep);
  margin: 0.4rem 0 0.4rem;
  padding-left: 0.85rem;
  border-left: 2px solid var(--tide);
  line-height: 1;
  -webkit-text-stroke: 0.4px var(--deep);
}
.for-you-card-body > .h4-label:first-child,
.service-card-body > .h4-label:first-child { margin-top: 0; }

/* County page section headers already have their own icon + divider treatment
   built earlier; the label itself stays compact so it doesn't collide with
   the icon chip sitting right next to it. */
.pmhs-county-card .h4-label {
  font-family: 'DM Sans', sans-serif;
  font-size: 0.7rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ocean);
  font-weight: 500;
  margin: 0.55rem 0 0.25rem;
  padding-left: 0;
  border-left: none;
  line-height: normal;
}

/* EMERGENCY BANNER */


/* ── FOOTER ── */
footer {
  background: #0e1f36;
  border-top: 1px solid rgba(74,168,200,0.08);
  padding: 4rem 4rem 2.5rem;
}
.footer-inner {
  display: grid;
  grid-template-columns: 1.6fr 1fr 1fr 1fr 1fr;
  gap: 3rem;
  margin-bottom: 3rem;
}
.footer-col-brand .footer-brand {
  font-family: 'Cormorant Garamond', serif; font-size: 1.1rem;
  color: rgba(220,240,252,0.95); font-weight: 400; display: block; margin-bottom: 0.5rem;
}
.footer-col-brand p {
  font-size: 0.78rem; line-height: 1.75; color: rgba(216,238,246,0.78);
  font-weight: 300; max-width: 260px; margin-bottom: 1.25rem;
}
.footer-social { display: flex; align-items: center; gap: 0.9rem; }
.footer-social a { color: rgba(200,230,240,0.38); transition: color 0.3s; }
.footer-social a:hover { color: rgba(200,230,240,0.9); }
.footer-col-heading {
  font-size: 0.65rem; letter-spacing: 0.2em; text-transform: uppercase;
  color: var(--tide); font-weight: 500; margin-bottom: 1.1rem;
}
.footer-col-links { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 0.6rem; }
.footer-col-links a {
  font-size: 0.78rem; color: rgba(200,230,240,0.55); cursor: pointer;
  transition: color 0.3s; font-weight: 300; letter-spacing: 0.01em;
}
.footer-col-links a:hover { color: rgba(255,255,255,0.9); }
.footer-bottom {
  border-top: 1px solid rgba(74,168,200,0.07);
  padding-top: 1.5rem;
  display: flex; flex-wrap: wrap; gap: 0.5rem; flex-direction: column;
}
.footer-bottom-row {
  display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 0.75rem;
}
.footer-copy { font-size: 0.65rem; color: rgba(200,230,240,0.35); font-weight: 300; }
.footer-bottom-links { display: flex; gap: 1.5rem; }
.footer-bottom-links a {
  font-size: 0.65rem; color: rgba(200,230,240,0.35); cursor: pointer;
  transition: color 0.3s; letter-spacing: 0.08em; text-transform: uppercase;
}
.footer-bottom-links a:hover { color: rgba(200,230,240,0.7); }
@media (max-width: 767px) {
  footer { padding: 3rem 1.25rem 2rem; }
  .footer-inner { grid-template-columns: 1fr 1fr; gap: 2rem; }
  body { padding-bottom: 72px; background: #0e1f36; }
  html { background: #0e1f36; }
  .hero-badge-secondary { display: none !important; }
  /* Phones: center the whole content block vertically in the hero.
     The chevron now travels in-flow with the block, so centering
     cannot reopen a gap between the pills and the chevron, free
     space distributes above and below the block, never inside it. */
  .hero-left { justify-content: center !important; padding-bottom: 9rem !important; }
  /* Chevron: normal document flow right after the pills — applies to
     every phone width, closing the same gap found on iPad mini before
     it gets reported separately. Top margin bumped from 2.5rem to
     4rem: the "Medi-Cal via Partnership HealthPlan of California"
     pill wraps to two lines on phone widths, and the old fixed value
     left almost no visible gap once that pill grew taller. */
  .scroll-hint { position: static !important; left: auto !important; bottom: auto !important; align-self: flex-start !important; margin: 4rem 0 0 1.25rem !important; }
}
@media (max-width: 480px) {
  .footer-inner { grid-template-columns: 1fr; }
}

/* SMS TEXT WIDGET */
.sms-fab { position: fixed; right: 4.25rem; bottom: max(1.25rem, env(safe-area-inset-bottom)); z-index: 9000; }
.sms-btn { background: rgba(10,22,40,0.9); border: 1.5px solid rgba(255,255,255,0.45); color: var(--mist); width: 44px; height: 44px; border-radius: 50%; cursor: pointer; display: flex; align-items: center; justify-content: center;  transition: all 0.3s; box-shadow: 0 0 0 1px rgba(255,255,255,0.08); }
.sms-btn:hover { background: var(--ocean); border-color: rgba(255,255,255,0.7); }
.sms-panel { position: fixed; right: 1.25rem; bottom: 4.5rem; z-index: 200; width: 272px; min-width: 240px; max-width: 90vw; background: rgba(13,34,64,0.97); border: 1px solid rgba(122,184,212,0.2); border-radius: 14px; padding: 1rem 1rem 1.15rem 1rem;  display: none; box-shadow: 0 8px 32px rgba(10,22,40,0.35); overflow: auto; }
.sms-panel.open { display: block; }
.sms-panel-title { font-size: 0.62rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--tide); font-weight: 600; margin-bottom: 1rem; }
.sms-person-card { background: rgba(255,255,255,0.04); border: 1px solid rgba(122,184,212,0.14); border-radius: 10px; padding: 0.85rem 0.9rem; margin-bottom: 0.6rem; }
.sms-person-card:last-of-type { margin-bottom: 0; }
.sms-person-name { font-size: 0.78rem; font-weight: 500; color: var(--white); margin-bottom: 0.18rem; font-family: 'DM Sans', sans-serif; }
.sms-person-number { font-size: 0.65rem; color: rgba(122,184,212,0.7); letter-spacing: 0.06em; margin-bottom: 0.65rem; font-family: 'DM Sans', sans-serif; }
.sms-person-actions { display: flex; gap: 0.5rem; }
.sms-action-btn { flex: 1; display: flex; align-items: center; justify-content: center; gap: 0.4rem; padding: 0.48rem 0; border-radius: 7px; text-decoration: none; font-size: 0.65rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; transition: all 0.2s; font-family: 'DM Sans', sans-serif; }
.sms-action-btn.call { background: rgba(58,150,200,0.15); border: 1.5px solid rgba(58,150,200,0.55); color: var(--tide); }
.sms-action-btn.call:hover { background: rgba(58,150,200,0.28); border-color: rgba(58,150,200,0.6); }
.sms-action-btn.text { background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.15); color: var(--mist); }
.sms-action-btn.text:hover { background: rgba(255,255,255,0.12); border-color: rgba(255,255,255,0.3); }
.sms-note { font-size: 0.63rem; color: var(--white); line-height: 1.55; margin-top: 0.85rem; }

/* A11Y FAB */
.a11y-fab { position: fixed; right: 1.25rem; bottom: 1.25rem; z-index: 9000; }
.a11y-btn { background: rgba(10,22,40,0.9); border: 1.5px solid rgba(255,255,255,0.45); color: var(--mist); width: 44px; height: 44px; border-radius: 50%; cursor: pointer; display: flex; align-items: center; justify-content: center;  transition: all 0.3s; box-shadow: 0 0 0 1px rgba(255,255,255,0.08); }
.a11y-btn:hover { background: var(--ocean); border-color: rgba(255,255,255,0.7); }
.a11y-panel { position: fixed; right: 1.25rem; bottom: 4.5rem; z-index: 200; width: 300px; background: rgba(13,34,64,0.97); border: 1px solid rgba(122,184,212,0.15); border-radius: 14px; padding: 1.25rem;  display: none; max-height: calc(100vh - 6rem); overflow-y: auto; }
.a11y-panel.open { display: block; }
.a11y-panel-title { font-size: 0.72rem; letter-spacing: 0.15em; text-transform: uppercase; color: var(--mist); font-weight: 500; margin-bottom: 1rem; }
.a11y-grid { display: grid; grid-template-columns: 1fr 1fr; grid-gap: 0.5rem; }
.a11y-opt { background: rgba(255,255,255,0.04); border: 1px solid rgba(122,184,212,0.1); color: rgba(200,230,240,0.7); font-size: 0.72rem; padding: 0.5rem; border-radius: 8px; cursor: pointer; text-align: center; transition: all 0.3s; font-family: 'DM Sans', sans-serif; }
.a11y-opt:hover { background: rgba(255,255,255,0.08); color: var(--white); }
.a11y-contact { font-size: 0.7rem; color: rgba(200,230,240,0.4); margin-top: 0.85rem; line-height: 1.6; }
.a11y-contact a { color: var(--mist); border-bottom: 1px solid rgba(122,184,212,0.3); }

/* BODY A11Y CLASSES */
/* Dyslexia font - OpenDyslexic via CDN */
body.a11y-text-lg, body.a11y-text-lg * { font-size: 18px !important; }
body.a11y-text-xl, body.a11y-text-xl * { font-size: 20px !important; }
body.a11y-contrast, body.a11y-contrast * { color: #000 !important; background: #fff !important; border-color: #0002 !important; }
body.a11y-links a { text-decoration: underline !important; }
body.a11y-reduce-motion *, body.a11y-reduce-motion *::before, body.a11y-reduce-motion *::after { animation: none !important; transition: none !important; }
body.a11y-text-spacing { letter-spacing: 0.06em; word-spacing: 0.12em; }
body.a11y-leading p, body.a11y-leading li { line-height: 1.9; }
body.a11y-dyslexia, body.a11y-dyslexia * { font-family: "OpenDyslexic", "Comic Sans MS", Arial, sans-serif !important; letter-spacing: 0.05em; word-spacing: 0.15em; }
/* body.a11y-colorblind filter: kept inline in index.php (fragment URL must resolve against the page) */
body.a11y-colorblind img { filter: grayscale(30%); }
body.a11y-focus-highlight *:focus, body.a11y-focus-highlight *:focus-visible { outline: 3px solid #FFD700 !important; outline-offset: 3px !important; box-shadow: 0 0 0 5px rgba(255,215,0,0.35) !important; }
body.a11y-hide-images img { visibility: hidden !important; }
body.a11y-focus-highlight a:focus, body.a11y-focus-highlight button:focus, body.a11y-focus-highlight input:focus, body.a11y-focus-highlight select:focus, body.a11y-focus-highlight textarea:focus { outline: 3px solid #FFD700 !important; outline-offset: 3px !important; background: rgba(255,215,0,0.08) !important; }

/* ── HOW IT WORKS ── */
.how-it-works-section { background: #eaf1f7; padding: 5rem 4rem; }
.how-it-works-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; position: relative;
}
.how-it-works-grid::before {
  content: ''; position: absolute; top: 2.6rem;
  left: calc(16.66% + 1rem); right: calc(16.66% + 1rem); height: 1px;
  background: linear-gradient(to right, rgba(58,150,200,0.2), rgba(58,150,200,0.5), rgba(58,150,200,0.2));
  pointer-events: none;
}
.how-it-works-step { text-align: center; padding: 0 2.5rem; }
.how-it-works-step-mid { border-left: 1px solid rgba(58,150,200,0.1); border-right: 1px solid rgba(58,150,200,0.1); }
.how-it-works-icon {
  width: 64px; height: 64px; border-radius: 14px;
  background: linear-gradient(135deg, var(--deep) 0%, #1e4d72 100%);
  border: 1.5px solid rgba(58,150,200,0.55);
  display: flex; align-items: center; justify-content: center;
  margin: 0 auto 1.75rem; position: relative; z-index: 1;
  box-shadow: 0 4px 16px rgba(10,22,40,0.18);
}
.how-it-works-label { font-size: 0.65rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--tide); font-weight: 500; margin-bottom: 0.6rem; }
.how-it-works-title { font-family: 'Cormorant Garamond', serif; font-size: 1.4rem; font-weight: 400; color: var(--deep); margin-bottom: 0.75rem; line-height: 1.2; }
.how-it-works-body { font-size: 0.88rem; line-height: 1.8; color: var(--subtle); font-weight: 300; }

/* ══════════════════════════════════════════════════════════════
   TABLET BREAKPOINTS, iPad mini · iPad · iPad Air · iPad Pro
   Samsung Galaxy Tab A/S · Surface Pro · All 768px–1180px devices
══════════════════════════════════════════════════════════════ */

/* iPad mini portrait (744px) */
@media (min-width: 740px) and (max-width: 767px) {
  nav { padding: 1rem 1.5rem; }
  .nav-links { display: none; }
  .mobile-menu-btn { display: flex; }
  .hero { grid-template-columns: 1fr; background-image: var(--pmhs-hero-mobile-img); background-size: cover; background-position: center; background-repeat: no-repeat; }
  .hero-left { background: linear-gradient(to bottom, rgba(10,22,40,0.45) 0%, rgba(10,22,40,0.28) 100%); }
  .hero-right { display: none; }
  .hero-left { padding: 8rem 2rem 2rem; justify-content: flex-start !important; }
  .hero-title { font-size: 3rem; }
  /* Chevron: normal document flow right after the pills, not an absolute
     offset, this way it always sits between the last pill and the
     crisis pill, regardless of how many pills are shown. */
  .scroll-hint { position: static !important; left: auto !important; bottom: auto !important; align-self: flex-start !important; margin: 2.5rem 0 0 1.25rem !important; }
  /* Stats box: fixed to viewport, sitting above the FABs — matches every
     other tablet breakpoint. This block was missing it. */
  .hero-stats {
    position: fixed !important;
    bottom: 5.5rem !important;
    right: 1.25rem !important;
    display: flex !important;
  }
  .section-header { grid-template-columns: 1fr 1fr; }
  .services-grid { grid-template-columns: 1fr 1fr; }
  .modalities-grid, .privacy-grid, .provider-grid,
  .coverage-grid, .for-you-grid { grid-template-columns: 1fr 1fr; }
  .connect-card-grid { grid-template-columns: 1fr !important; }
  .how-it-works-grid { grid-template-columns: 1fr; }
  .how-it-works-grid::before { display: none; }
  .how-it-works-step-mid { border: none; border-top: 1px solid rgba(58,150,200,0.1); border-bottom: 1px solid rgba(58,150,200,0.1); padding: 1.5rem 1rem; }
  .how-it-works-step { padding: 1.5rem 1rem; }
  .how-it-works-section { padding: 3.5rem 2rem; }
  .telehealth-panel { grid-template-columns: 1fr 1fr; padding: 4rem 2rem; }
  .home-services, .home-providers, .home-contact, .page-body { padding-left: 2rem; padding-right: 2rem; }
  .page-hero, .connect-hero { padding: 7rem 2rem 4rem !important; }
  .footer-inner { grid-template-columns: 1fr 1fr; }
}

/* iPad portrait standard · Galaxy Tab S8 portrait (768px–834px) */
@media (min-width: 768px) and (max-width: 834px) {
  .how-it-works-grid { grid-template-columns: 1fr; }
  .how-it-works-grid::before { display: none; }
  .how-it-works-step { padding: 1.5rem 2rem; }
  .how-it-works-step-mid { border: none; border-top: 1px solid rgba(58,150,200,0.1); border-bottom: 1px solid rgba(58,150,200,0.1); }
  .how-it-works-section { padding: 4rem 2rem; }
  .connect-card-grid { grid-template-columns: 1fr !important; }
  #session-grid { grid-template-columns: 1fr !important; }
  .footer-inner { grid-template-columns: 1fr 1fr; }
  /* iPad mini portrait: PHP section */
  #php-section { padding: 3.5rem 2rem !important; }
  #php-section > div > div[style*="grid-template-columns:1fr 1fr"] { grid-template-columns: 1fr !important; }
  #php-section div[style*="grid-template-columns:repeat(4,1fr)"] { grid-template-columns: repeat(2,1fr) !important; }
  #php-section div[style*="grid-template-columns:repeat(3,1fr)"] { grid-template-columns: repeat(2,1fr) !important; }
  .php-left-col { align-items: flex-start !important; text-align: left !important; }
  .php-cta-btns { flex-direction: column !important; width: 100% !important; }
  .php-cta-btns a, .php-cta-btns button { width: 100% !important; text-align: center !important; }
  /* iPad mini portrait: Connect page */
  .page-body, .connect-form-body { padding: 2.5rem 1.5rem !important; }
  .connect-hero { padding: 6rem 1.5rem 3rem !important; }
  .php-banner-outer { padding: 0 1.5rem 2rem !important; }
  .php-banner-grid { grid-template-columns: 1fr !important; gap: 1.25rem !important; }
  /* iPad mini portrait: hero fixes */
  .hero-left { padding-bottom: 2rem !important; justify-content: flex-start !important; }
  .scroll-hint { position: static !important; left: auto !important; bottom: auto !important; align-self: flex-start !important; margin: 2.5rem 0 0 1.25rem !important; }
  .hero-stats {
    position: fixed !important;
    bottom: 5.5rem !important;
    right: 1.25rem !important;
    display: flex !important;
  }
}

/* iPad Air portrait · iPad 10th gen (820px–834px already covered above) */

/* iPad Pro 11" portrait · Galaxy Tab S9+ (834px–1024px) */
@media (min-width: 835px) and (max-width: 1023px) {
  nav { padding: 1rem 2rem; }
  .nav-links { display: none; }
  .mobile-menu-btn { display: flex; }
  .hero { grid-template-columns: 1fr 1fr; }
  .hero-right { display: block; }
  .hero-left { padding: 8rem 2.5rem 5rem; justify-content: flex-start; }
  .hero-title { font-size: 2.8rem; }
  /* Only the 3 most essential pills — same rule applied everywhere else */
  .hero-badge-secondary { display: none !important; }
  /* Chevron: normal flow after the pills, left-aligned with everything
     else in this column instead of centering in the stretched width */
  .scroll-hint { position: static !important; left: auto !important; bottom: auto !important; align-self: flex-start !important; margin: 2rem 0 0 1.25rem !important; }
  /* Stats box: fixed to viewport, sitting above the FABs */
  .hero-stats {
    position: fixed !important;
    bottom: 5.5rem !important;
    right: 1.25rem !important;
    display: flex !important;
  }
  .services-grid { grid-template-columns: 1fr 1fr 1fr; }
  .modalities-grid, .treats-grid { grid-template-columns: 1fr 1fr; }
  .privacy-grid { grid-template-columns: 1fr 1fr; }
  .provider-grid, .coverage-grid, .for-you-grid { grid-template-columns: 1fr 1fr; }
  .connect-card-grid { grid-template-columns: 1fr !important; }
  #session-grid { grid-template-columns: 1fr !important; }
  .how-it-works-grid { grid-template-columns: repeat(3, 1fr); }
  .how-it-works-step { padding: 0 1.25rem; }
  .how-it-works-section { padding: 5rem 2.5rem; }
  .telehealth-panel { grid-template-columns: 1fr 1fr; padding: 4rem 2.5rem; }
  .home-services, .home-providers, .home-contact, .page-body { padding-left: 2.5rem; padding-right: 2.5rem; }
  .page-hero, .connect-hero { padding: 8rem 2.5rem 4rem !important; }
  .footer-inner { grid-template-columns: 1fr 1fr; }
  #php-section { padding: 3.5rem 2.5rem !important; }
  #php-section > div > div[style*="grid-template-columns:1fr 1fr"] { grid-template-columns: 1fr !important; }
  .php-left-col { align-items: flex-start !important; text-align: left !important; }
  .php-cta-btns { flex-wrap: wrap !important; }
  .php-banner-grid { grid-template-columns: 1fr !important; gap: 1.25rem !important; }
}

/* iPad Pro 12.9" portrait · Surface Pro (1024px–1180px) */
@media (min-width: 1024px) and (max-width: 1180px) {
  .how-it-works-grid { grid-template-columns: repeat(3, 1fr); }
  .how-it-works-step { padding: 0 1.5rem; }
  .how-it-works-section { padding: 5rem 3rem; }
  .connect-card-grid { grid-template-columns: 1fr 1fr; }
  .services-grid { grid-template-columns: repeat(3, 1fr); }
  .modalities-grid, .treats-grid { grid-template-columns: 1fr 1fr; }
  /* Only the 3 most essential pills — same tablet rule applied consistently */
  .hero-badge-secondary { display: none !important; }
  .scroll-hint { position: static !important; left: auto !important; bottom: auto !important; align-self: flex-start !important; margin: 2.5rem 0 0 1.25rem !important; }
}

/* iPad landscape (all) + Galaxy Tab landscape (1180px–1366px) */
@media (min-width: 1181px) and (max-width: 1366px) {
  .how-it-works-grid { grid-template-columns: repeat(3, 1fr); }
  .connect-card-grid { grid-template-columns: 1fr 1fr; }
  /* Only the 3 most essential pills — same tablet rule applied consistently */
  .hero-badge-secondary { display: none !important; }
}

/* ── iPad mini landscape (1024px) ── */
@media (min-width: 961px) and (max-width: 1080px) and (orientation: landscape) {
  nav { padding: 1rem 1.5rem; }
  .nav-links { display: flex; }
  .mobile-menu-btn { display: none; }
  .nav-links li + li { margin-left: 1rem; }
  .nav-links a { font-size: 0.7rem; letter-spacing: 0.06em; }
  .hero { grid-template-columns: 1fr 1fr; }
  .hero-right { display: block; }
  .hero-left { padding: 6rem 2rem 3rem; }
  .hero-title { font-size: 2.4rem; }
  /* Hide all secondary pills and show only 3 */
  .hero-badge-secondary { display: none !important; }
  /* Pill row: no wrap, controlled width */
  .hero-left > div[style*="display:flex"][style*="gap:0.65rem"] {
    flex-wrap: nowrap !important;
    gap: 0.4rem !important;
    max-width: 100% !important;
    overflow: hidden !important;
    margin-bottom: 1rem !important;
  }
  /* Hide scroll hint — not enough vertical room */
  .scroll-hint { display: none !important; }
  /* Hide hero stats boxes so they don't overlap left content */
  .hero-stats { display: none !important; }
  /* Fix floating contact/accessibility buttons so they don't overlap */
  .sms-fab { right: 4.5rem !important; bottom: 1rem !important; }
  .a11y-fab { right: 1rem !important; bottom: 1rem !important; }
  /* Crisis pill: bottom right */
  #crisis-pill { left: auto !important; right: 5rem !important; bottom: 1rem !important; }
  /* Card grids: 2-column in mini landscape */
  .services-grid { grid-template-columns: repeat(2, 1fr) !important; gap: 1rem; }
  .modalities-grid, .treats-grid { grid-template-columns: 1fr 1fr; }
  .privacy-grid { grid-template-columns: 1fr 1fr; }
  .provider-grid, .coverage-grid, .for-you-grid { grid-template-columns: 1fr 1fr; }
  .service-card { height: auto !important; overflow: visible !important; }
  .section-header { grid-template-columns: 1fr 1fr; gap: 2rem; }
  .telehealth-panel { grid-template-columns: 1fr 1fr; padding: 4rem 2rem; }
  .home-services, .home-providers, .home-contact, .page-body { padding-left: 2rem; padding-right: 2rem; }
  .page-hero, .connect-hero { padding: 8rem 2rem 4rem !important; }
  .how-it-works-grid { grid-template-columns: repeat(3, 1fr); }
  .how-it-works-section { padding: 4rem 2rem; }
  .contact-grid { grid-template-columns: 1fr 1fr; }
  .footer-inner { grid-template-columns: 1fr 1fr; }
  .connect-card-grid { grid-template-columns: 1fr !important; }
  #session-grid { grid-template-columns: 1fr !important; }
  #php-section { padding: 3.5rem 2rem !important; }
  #php-section > div > div[style*="grid-template-columns:1fr 1fr"] { grid-template-columns: 1fr !important; }
  .php-left-col { align-items: flex-start !important; text-align: left !important; }
  .php-cta-btns { flex-wrap: wrap !important; gap: 0.65rem !important; }
  .php-banner-grid { grid-template-columns: 1fr !important; gap: 1rem !important; }
}

/* ── iPad Air/standard landscape (~1180px) ── */
@media (min-width: 1081px) and (max-width: 1180px) and (orientation: landscape) {
  .services-grid { grid-template-columns: repeat(3, 1fr); }
  .modalities-grid, .treats-grid { grid-template-columns: 1fr 1fr; }
  .privacy-grid { grid-template-columns: 1fr 1fr; }
  .provider-grid, .coverage-grid, .for-you-grid { grid-template-columns: 1fr 1fr; }
  
  .service-card { height: auto !important; overflow: visible !important; }
  .home-services, .home-providers, .home-contact, .page-body { padding-left: 2rem; padding-right: 2rem; }
}

/* All mobile: How It Works collapses to single column */
@media (max-width: 767px) {
  .how-it-works-section { padding: 3rem 1.25rem; }
  .how-it-works-grid { grid-template-columns: 1fr !important; gap: 0; }
  .how-it-works-grid::before { display: none; }
  .how-it-works-step { padding: 1.25rem 0.5rem; }
  .how-it-works-step-mid {
    border-left: none; border-right: none;
    border-top: 1px solid rgba(58,150,200,0.1);
    border-bottom: 1px solid rgba(58,150,200,0.1);
    padding: 1.25rem 0.5rem;
  }
  .how-it-works-title { font-size: 1.3rem; }
  .how-it-works-body { font-size: 0.85rem; }
}
@media (max-width: 767px) {
  .for-you-card [style*="grid-template-columns:1fr 1fr 1fr 1fr"] {
    grid-template-columns: 1fr 1fr !important;
  }
  .for-you-card [style*="grid-template-columns:1fr 1fr;grid-gap:1.25rem"] {
    grid-template-columns: 1fr !important;
  }
}
@media (max-width: 479px) {
  .for-you-card [style*="grid-template-columns:1fr 1fr 1fr 1fr"] {
    grid-template-columns: 1fr !important;
  }
}

/* ── ANIMATIONS ── */
@keyframes fadeUp { from { opacity: 1; transform: none; } to { opacity: 1; transform: none; } }
.reveal { opacity: 1; transform: none; }
.reveal.visible { opacity: 1; transform: none; }

/* ═══════════════════════════════════════════════════════
   EQUAL-HEIGHT CARD SYSTEM
   Cards stretch to fill the full row height via CSS Grid stretch (default).
   Each card uses flex-column so content stacks top-to-bottom and cards
   within the same row are always identical height.
═══════════════════════════════════════════════════════ */

/* All card grids use stretch (Grid default) so rows are equal height */
.services-grid,
.modalities-grid,
.privacy-grid,
.coverage-grid,
.for-you-grid,
.provider-grid,
.referral-grid {
  align-items: stretch;
}

/* Every card becomes a flex column so its interior stacks naturally
   and the card itself grows to fill the grid cell height */
.service-card,
.modality-card,
.privacy-card,
.info-card,
.for-you-card,
.provider-card,
.referral-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  box-sizing: border-box;
  overflow: visible;
}





/* ═══════════════════════════════════════════════════════
   RESPONSIVE, ALL DEVICES
   iPhone SE · iPhone · iPad · Tablet · Laptop · Desktop · 4K/5K
═══════════════════════════════════════════════════════ */

/* ═══════════════════════════════════════════════════════
   MOBILE, iPHONE ALL MODELS + SAMSUNG GALAXY ALL MODELS
   Covers: iPhone SE · iPhone 12/13/14/15/16/17 mini/standard/Plus/Pro/Pro Max
           Galaxy S21–S25 · Galaxy A series · Galaxy Z Fold/Flip
   Safe area insets for notch, Dynamic Island, punch-hole cameras
═══════════════════════════════════════════════════════ */

/* Safe area inset support, notch, Dynamic Island, punch-hole */
:root {
  --sat: env(safe-area-inset-top, 0px);
  --sar: env(safe-area-inset-right, 0px);
  --sab: env(safe-area-inset-bottom, 0px);
  --sal: env(safe-area-inset-left, 0px);
}

/* Ensure nothing bleeds under notch/Dynamic Island */
nav {
  padding-top: calc(env(safe-area-inset-top, 0px) + 0.75rem);
  padding-left: max(1.25rem, env(safe-area-inset-left));
  padding-right: max(1.25rem, env(safe-area-inset-right));
}

/* Bottom safe area for fixed elements (a11y fab) */
.a11y-fab {
  bottom: max(1.25rem, env(safe-area-inset-bottom));
  right: max(1.25rem, env(safe-area-inset-right));
}

/* Footer safe area */
footer, .footer-disclaimer {
  padding-left: max(1.5rem, env(safe-area-inset-left));
  padding-right: max(1.5rem, env(safe-area-inset-right));
  padding-bottom: max(1.5rem, env(safe-area-inset-bottom));
}

/* ── iPhone SE 1st gen (320px) ── */
@media (max-width: 320px) {
  html { font-size: 13px; }
  nav { padding: calc(env(safe-area-inset-top, 0px) + 0.75rem) 0.85rem 0.75rem; }
  .logo-text .brand { font-size: 0.72rem; }
  .logo-text .sub { display: none; }
  .hero-left { padding: 6rem 0.85rem 2.5rem; }
  .hero-title { font-size: 1.85rem; line-height: 1.15; }
  .hero-body { font-size: 0.82rem; }
  .page-hero { padding: 6rem 0.85rem 3rem; min-height: 270px; }
  .page-subtitle { font-size: 0.8rem; }
  .home-services, .home-providers, .home-contact,
  .page-body, .connect-form-body { padding: 2.5rem 0.85rem; }
  #php-banner-connect { padding: 0 0 2.5rem; }
  .pi-landing-card { padding: 1.25rem; }
  .connect-card-grid, .for-you-grid,
  .coverage-grid, .privacy-grid,
  .modalities-grid, .services-grid,
  .provider-grid, .footer-inner { grid-template-columns: 1fr !important; }
  .section-header { grid-template-columns: 1fr; }
  .telehealth-panel { grid-template-columns: 1fr; padding: 2.5rem 0.85rem; }
  .contact-grid { grid-template-columns: 1fr; }
  .hero-stats { display: none; }
  .scroll-hint { position: static !important; left: auto !important; bottom: auto !important; align-self: flex-start !important; margin: 4rem 0 0 1.25rem !important; }
  .stat { display: none; }
  .btn-primary, .btn-ghost { width: 100%; justify-content: center; font-size: 0.72rem; }
  .call-flip { width: 100%; }
  .home-cta-btns { flex-direction: column; align-items: stretch; }
  .home-cta-view-services { width: 100% !important; justify-content: center; }
  .coverage-cta-btns { flex-direction: column; align-items: stretch; }
  .coverage-cta-btns .call-flip { width: 100% !important; }
  .verify-coverage-btn { width: 100% !important; }
  .hero-request-care { width: auto !important; max-width: 260px; align-self: flex-start; }
  .php-cta-btns { flex-direction: column; align-items: center; width: 100%; }
  .php-cta-btn { width: 240px !important; min-width: unset !important; box-sizing: border-box; }
  .php-left-col { display: flex; flex-direction: column; align-items: center; text-align: center; }
  .a11y-panel { width: calc(100vw - 1.5rem); right: 0.75rem; left: 0.75rem; }
  .mobile-call-flip { width: 100%; }
  [style*="grid-template-columns:1fr 1fr"] { grid-template-columns: 1fr !important; }
}

/* ── iPhone SE 2nd/3rd gen · iPhone 12/13 mini (375–390px) ── */
@media (min-width: 321px) and (max-width: 390px) {
  html { font-size: 14px; }
  .hero-title { font-size: 2rem; }
  .hero-left { padding: 6.5rem 1rem 3rem; }
  .page-hero { padding: 7rem 1rem 3.5rem; }
  .home-services, .home-providers, .home-contact,
  .page-body, .connect-form-body { padding: 3rem 1rem; }
  #php-banner-connect { padding: 0 0 3rem; }
  .connect-card-grid { grid-template-columns: 1fr !important; }
  .for-you-grid, .coverage-grid, .privacy-grid,
  .modalities-grid, .provider-grid, .treats-grid { grid-template-columns: 1fr !important; }
  .services-grid { grid-template-columns: 1fr !important; }
  .footer-inner { grid-template-columns: 1fr 1fr !important; }
  .section-header { grid-template-columns: 1fr; }
  .telehealth-panel { grid-template-columns: 1fr; padding: 3rem 1rem; }
  .contact-grid { grid-template-columns: 1fr; }
  .hero-stats { display: none; }
  .stat { display: none; }
  [style*="grid-template-columns:1fr 1fr"] { grid-template-columns: 1fr !important; }
  .form-group input, .form-group select, .form-group textarea { font-size: 16px; }
}

/* ── iPhone 14/15/16/17 standard · Plus · Galaxy S23/S24/S25 (391–430px) ── */
@media (min-width: 391px) and (max-width: 430px) {
  html { font-size: 15px; }
  .hero-title { font-size: 2.2rem; }
  .hero-left { padding: 6.5rem 1.15rem 3rem; }
  .page-hero { padding: 7rem 1.15rem 3.5rem; }
  .connect-hero { padding: 7rem 1.15rem 3.5rem; }
  .home-services, .home-providers, .home-contact,
  .page-body, .connect-form-body { padding: 3rem 1.15rem; }
  #php-banner-connect { padding: 0 0 3rem; }
  .connect-card-grid { grid-template-columns: 1fr !important; }
  .for-you-grid, .coverage-grid, .privacy-grid,
  .modalities-grid, .provider-grid, .treats-grid { grid-template-columns: 1fr !important; }
  .services-grid { grid-template-columns: 1fr !important; }
  .footer-inner { grid-template-columns: 1fr 1fr !important; }
  .section-header { grid-template-columns: 1fr; }
  .telehealth-panel { grid-template-columns: 1fr; padding: 3rem 1.15rem; }
  .contact-grid { grid-template-columns: 1fr; }
  .hero-stats { display: none; }
  [style*="grid-template-columns:1fr 1fr"] { grid-template-columns: 1fr !important; }
  .form-group input, .form-group select, .form-group textarea { font-size: 16px; }
}

/* ── iPhone Pro Max / 17 Pro Max · Galaxy S Ultra · Galaxy Z Fold outer (431–480px) ── */
@media (min-width: 431px) and (max-width: 480px) {
  .hero-title { font-size: 2.4rem; }
  .hero-left { padding: 7rem 1.25rem 3.5rem; }
  .page-hero { padding: 7rem 1.25rem 3.5rem; }
  .connect-hero { padding: 7rem 1.25rem 3.5rem; }
  .home-services, .home-providers, .home-contact,
  .page-body, .connect-form-body { padding: 3.5rem 1.25rem; }
  #php-banner-connect { padding: 0 0 3.5rem; }
  .modalities-grid, .provider-grid, .treats-grid { grid-template-columns: 1fr !important; }
  .services-grid { grid-template-columns: 1fr !important; }
  .footer-inner { grid-template-columns: 1fr 1fr !important; }
  .section-header { grid-template-columns: 1fr; }
  .telehealth-panel { grid-template-columns: 1fr; padding: 3.5rem 1.25rem; }
  .contact-grid { grid-template-columns: 1fr; }
  .hero-stats { display: none; }
  [style*="grid-template-columns:1fr 1fr"] { grid-template-columns: 1fr !important; }
  .form-group input, .form-group select, .form-group textarea { font-size: 16px; }
}

/* ── All phones: force inline-styled 2-col grids to single col ── */
@media (max-width: 767px) {
  /* PHP section two-column grid */
  #php-section > div > div[style*="grid-template-columns:1fr 1fr"] {
    grid-template-columns: 1fr !important;
    gap: 1.5rem !important;
  }
  #php-section > div > div[style*="grid-template-columns:1fr 1fr"] > div {
    width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
  }
  /* Inline form grids inside cards */
  [style*="display:grid"][style*="grid-template-columns:1fr 1fr"] {
    grid-template-columns: 1fr !important;
  }
  /* Connect card grid */
  .connect-card-grid { grid-template-columns: 1fr !important; gap: 1.25rem !important; }
  /* Patient info landing */
  #page-my-care .page-body > div { grid-template-columns: 1fr !important; }
  /* Availability stat boxes */
  [style*="grid-template-columns:1fr 1fr;gap:0.75rem"] { grid-template-columns: 1fr !important; }
  /* Footer */
  footer { padding: 3rem 1.5rem 2rem !important; }
  .footer-inner { grid-template-columns: 1fr 1fr !important; gap: 2rem 1.5rem !important; }
  /* Brand block gets its own full-width row with a divider, then the four
     link columns pair up cleanly (Services|My Care, Policies|Legal) instead
     of the brand squeezing beside a link column and Legal dangling alone */
  .footer-col-brand { grid-column: 1 / -1; padding-bottom: 1.5rem; border-bottom: 1px solid rgba(74,168,200,0.1); }
  .footer-col-heading { margin-bottom: 0.85rem !important; }
  .footer-col-links { gap: 0.7rem !important; }
  .footer-bottom-row { flex-direction: column; gap: 0.5rem; align-items: flex-start; }
  /* Page hero */
  .page-hero { padding: 7rem 1.25rem 3.5rem !important; min-height: 220px; }
  .page-hero-inner { max-width: 100%; }
  .page-title { white-space: normal; }
  .page-subtitle { font-size: 0.82rem; max-width: 100%; }
  /* Connect hero */
  .connect-hero { padding: 7rem 1.25rem 3.5rem !important; }
  .connect-hero-inner { max-width: 100%; }
  /* Provider cards */
  /* Prevent horizontal overflow */
  body { overflow-x: hidden; }
  * { max-width: 100%; box-sizing: border-box; }
  img { max-width: 100%; height: auto; }
  /* Pills on home hero */
  .hero-left > div[style*="display:flex"][style*="gap:0.65rem"] {
    flex-wrap: wrap;
    gap: 0.5rem !important;
  }
  /* Emergency banner removed — checkbox acknowledgment used instead */
  /* Session hub mobile padding */
  #page-session .page-body { padding: 2rem 1rem !important; }
  #page-session .pi-back { margin-bottom: 1.25rem; }
  /* Modality tag pills */
  .modality-tag { font-size: 0.58rem; }
  /* Issues card */
  .issues-card { padding: 2rem 1.25rem; }
  /* No Surprises block */
  [style*="grid-column:1/-1"] { grid-column: 1 / -1 !important; }
}

/* ── New home sections, mobile overrides ── */
@media (max-width: 767px) {
  /* Is therapy right for me, section padding */
  section[style*="padding:5rem 4rem"] { padding: 3rem 1.25rem !important; }
  section[style*="padding:4rem 4rem"] { padding: 2.5rem 1.25rem !important; }
  section[style*="padding:4.5rem 4rem"] { padding: 2.5rem 1.25rem !important; }
  /* Is therapy right for me, inner grid gap */
  div[style*="gap:4rem"] { gap: 1.5rem !important; }
  /* max-width inner container full width on mobile */
  div[style*="max-width:1100px"] { max-width: 100% !important; }
  /* Blog grid min-width override */
  .blog-grid { grid-template-columns: 1fr !important; }
  /* Blog card fixed height, let it auto on mobile */
  .blog-card { height: auto !important; }
  .privacy-card { height: auto !important; }
  
  /* How it works section */
  .how-it-works-section { padding: 3rem 1.25rem !important; }
  .how-it-works-grid { grid-template-columns: 1fr !important; gap: 2rem !important; }
  .how-it-works-step-mid { border: none !important; }
  /* Provider info tiles */
  div[style*="grid-template-columns:1fr 1fr;gap:0.75rem;margin-top:1.5rem"] { grid-template-columns: 1fr !important; }
  /* PHP section: collapse two-column layout to single column */
  #php-section > div > div[style*="grid-template-columns:1fr 1fr"] { grid-template-columns: 1fr !important; }
  /* PHP county grid: 2 columns on phone */
  #php-section div[style*="grid-template-columns:repeat(4,1fr)"] { grid-template-columns: repeat(2,1fr) !important; }
  /* PHP 3-step check widget: stack on mobile */
  #php-section div[style*="grid-template-columns:repeat(3,1fr)"] { grid-template-columns: 1fr !important; }
  /* PHP feature cards: ensure they don't overflow */
  #php-section { overflow-x: hidden; }
  #php-section > div { overflow-x: hidden; }
}
@media (min-width: 717px) and (max-width: 820px) {
  .services-grid { grid-template-columns: 1fr 1fr !important; }
  .modalities-grid { grid-template-columns: 1fr 1fr !important; }
  .connect-card-grid { grid-template-columns: 1fr !important; }
  .hero-left { padding: 7.5rem 2rem 4rem; }
  .page-hero { padding: 7.5rem 2rem 4rem !important; }
  div[style*="gap:4rem"] { gap: 2rem !important; }
  section[style*="padding:5rem 4rem"] { padding: 3.5rem 2rem !important; }
  section[style*="padding:4rem 4rem"] { padding: 3rem 2rem !important; }
}

/* ── iPad Mini / iPad Air / iPad Pro portrait (768px–1024px) ── */
@media (min-width: 768px) and (max-width: 1024px) {
  section[style*="padding:5rem 4rem"] { padding: 4rem 2.5rem !important; }
  section[style*="padding:4rem 4rem"] { padding: 3rem 2.5rem !important; }
  div[style*="gap:4rem"] { gap: 2.5rem !important; }
  div[style*="max-width:1100px"] { padding: 0 0.5rem; }
  .blog-grid { grid-template-columns: repeat(auto-fill, minmax(280px,1fr)) !important; }
  .blog-card { height: 360px !important; }
  /* PHP county grid: 3 columns on tablet */
  #php-section div[style*="grid-template-columns:repeat(4,1fr)"] { grid-template-columns: repeat(3,1fr) !important; }
  /* Only the 3 most essential pills on tablet — eliminates clutter and keeps the scroll chevron clear */
  .hero-badge-secondary { display: none !important; }
  /* Chevron: normal document flow right after the pills, not an absolute
     offset calibrated for the old 8-pill stack, this way it always sits
     between the last pill and the crisis pill, regardless of pill count. */
  .hero-left { padding-bottom: 2rem !important; justify-content: flex-start !important; }
  .hero-left > div[style*="display:flex"][style*="gap:0.65rem"] { margin-bottom: 0.5rem !important; }
  .scroll-hint { position: static !important; left: auto !important; bottom: auto !important; align-self: flex-start !important; margin: 2.5rem 0 0 1.25rem !important; }
  /* Stats box: fixed to viewport, sitting above the FABs */
  .hero-stats {
    position: fixed !important;
    bottom: 5.5rem !important;
    right: 1.25rem !important;
    display: flex !important;
  }
}

/* ── iPad mini landscape — override portrait rules ── */
@media (min-width: 768px) and (max-width: 1024px) and (orientation: landscape) {
  /* Hide all secondary pills — only 3 primary ones show */
  .hero-badge-secondary { display: none !important; }
  /* Pills: single line, no wrap */
  .hero-left > div[style*="display:flex"][style*="gap:0.65rem"] {
    flex-wrap: nowrap !important;
    overflow: hidden !important;
    gap: 0.4rem !important;
    margin-bottom: 0.75rem !important;
  }
  /* Less bottom padding in landscape */
  .hero-left { padding-bottom: 3rem !important; }
  /* Hide scroll hint */
  .scroll-hint { display: none !important; }
  /* Hide stats boxes — no room in landscape */
  .hero-stats { display: none !important; }
  /* Floating buttons — keep clear of crisis pill */
  .sms-fab { right: 4.5rem !important; bottom: 1rem !important; }
  .a11y-fab { right: 1rem !important; bottom: 1rem !important; }
  /* Crisis pill */
  #crisis-pill { left: auto !important; right: 9rem !important; bottom: 1rem !important; }
}

/* ── Landscape phone (any phone in landscape) ── */
@media (max-height: 500px) and (orientation: landscape) {
  .page-hero { min-height: 190px; height: 190px; max-height: 190px; padding: 5.5rem 1.5rem 2.5rem !important; }
  .connect-hero { min-height: 180px; padding: 5.5rem 1.5rem 2.5rem !important; }
  .hero { min-height: auto; }
  .hero-left { padding: 5rem 1.5rem 3rem; }
  .hero-title { font-size: 2rem; }
  .mobile-nav { overflow-y: auto; }
}

/* ── Prevent zoom on input focus (iOS) ── */
@media (max-width: 767px) {
  input[type="text"],
  input[type="email"],
  input[type="tel"],
  input[type="url"],
  select,
  textarea {
    font-size: 16px !important;
    -webkit-text-size-adjust: 100%;
  }
}

/* ═══════════════════════════════════════════════════════
   END MOBILE RESPONSIVE
═══════════════════════════════════════════════════════ */


/* ═══════════════════════════════════════════════════════
   CONNECT FORM MOBILE OPTIMIZATIONS
═══════════════════════════════════════════════════════ */
@media (max-width: 767px) {
  #connect-card-info { display: none !important; }
  .connect-card-grid { grid-template-columns: 1fr !important; gap: 0 !important; }
  .connect-hero { padding: 5rem 1.25rem 2rem !important; }
  .connect-hero .page-title { font-size: 2.2rem !important; }
  .connect-hero .page-subtitle { font-size: 0.82rem !important; }
  .connect-form-body { padding: 1.5rem 1rem !important; }
  .reason-chip { font-size: 0.72rem !important; padding: 0.28rem 0.65rem !important; }
  #connect-selects-row { grid-template-columns: 1fr !important; }
  #connect-submit-btn { width: 100% !important; }
  #qualify-widget { width: 100% !important; box-sizing: border-box !important; }
  #php-section { overflow: hidden !important; }
}

/* iPad landscape wide nav */
@media (min-width: 961px) and (max-width: 1180px) {
  nav { padding: 1rem 1.5rem; }
  .nav-links li + li { margin-left: 1.2rem; }
  .nav-links a { font-size: 0.72rem; letter-spacing: 0.07em; }
  .nav-portal { padding: 0.4rem 0.75rem; font-size: 0.7rem; }
  .logo-text .brand { font-size: 1.2rem; }
  .logo-text .sub { font-size: 0.55rem; }
}

/* iPhone SE / very small phones (max 479px) */
@media (max-width: 479px) {
  nav { padding: calc(env(safe-area-inset-top, 0px) + 0.85rem) 4px 0.85rem 4px; justify-content: space-between; }
  .logo { margin-left: -4px; }
  .mobile-menu-btn { margin-right: -4px; }
  .logo-text .brand { font-size: 1rem; }
  .logo-text .sub { display: none; }
  .logo-mark { width: 36px; height: 36px; }
  .nav-links { display: none; }
  .mobile-menu-btn { display: flex; }
  .hero-actions { flex-direction: column; align-items: flex-start; }
  .hero { grid-template-columns: 1fr; min-height: 100svh; background-image: var(--pmhs-hero-mobile-img); background-size: cover; background-position: center; background-repeat: no-repeat; }
  .hero-right { display: none; }
  .hero-left { padding: 6.5rem 1rem 3rem; background: linear-gradient(to bottom, rgba(10,22,40,0.45) 0%, rgba(10,22,40,0.28) 100%); }
  .hero-title { font-size: 2.2rem; }
  .hero-body { font-size: 0.85rem; max-width: 100%; }
  .hero-actions > * + * { margin-left: 0; margin-top: 0.75rem; }
  .btn-primary { width: 100%; justify-content: center; }
  .consult-badge { font-size: 0.62rem; padding: 0.35rem 0.7rem; }
  .trust-bar { padding: 0; }
  .section-header { grid-template-columns: 1fr; }
  .services-grid, .modalities-grid, .privacy-grid, .provider-grid, .coverage-grid, .for-you-grid, .contact-grid { grid-template-columns: 1fr; }
  .telehealth-panel { grid-template-columns: 1fr; padding: 3rem 1rem; }
  .home-services, .home-providers, .home-contact, .page-body, .page-hero { padding-left: 1rem; padding-right: 1rem; padding-top: 3rem; padding-bottom: 3rem; }
  .page-hero { padding-top: 7rem; }
  .form-row { grid-template-columns: 1fr; }
  .contact-form { padding: 1.5rem 1rem; }
  .section-title { font-size: 1.8rem; }
  .provider-card { padding: 1.75rem 1.25rem; }
  .a11y-panel { width: calc(100vw - 2rem); right: 1rem; }
  footer { padding: 1.75rem 1rem; flex-direction: column; align-items: flex-start; }
  .hero-stats { display: none; }
  /* Top margin matches the 767px base rule: this range's own scroll-hint
     rule comes later in the cascade and was silently overriding that
     fix back down for every real phone (320-479px covers nearly all of
     them), which is why the gap never actually grew. */
  .scroll-hint { position: static !important; left: auto !important; bottom: auto !important; align-self: flex-start !important; margin: 4rem 0 0 1.25rem !important; }
  .form-group input, .form-group select, .form-group textarea { font-size: 16px; }
}

/* Standard phones (480px-767px) */
@media (min-width: 480px) and (max-width: 767px) {
  nav { padding: calc(env(safe-area-inset-top, 0px) + 1rem) 1.25rem 1rem; }
  .nav-links { display: none; }
  .mobile-menu-btn { display: flex; }
  .hero { grid-template-columns: 1fr; min-height: 100svh; background-image: var(--pmhs-hero-mobile-img); background-size: cover; background-position: center; background-repeat: no-repeat; }
  .hero-right { display: none; }
  .hero-left { padding: 7rem 1.25rem 3.5rem; background: linear-gradient(to bottom, rgba(10,22,40,0.45) 0%, rgba(10,22,40,0.28) 100%); }
  .hero-title { font-size: 2.6rem; }
  .trust-bar { padding: 0; }
  .section-header { grid-template-columns: 1fr; }
  .services-grid { grid-template-columns: 1fr; }
  .modalities-grid, .treats-grid { grid-template-columns: 1fr 1fr; }
  .privacy-grid, .provider-grid, .coverage-grid, .for-you-grid, .contact-grid { grid-template-columns: 1fr; }
  .telehealth-panel { grid-template-columns: 1fr; padding: 3.5rem 1.25rem; }
  .home-services, .home-providers, .home-contact, .page-body, .page-hero { padding-left: 1.25rem; padding-right: 1.25rem; }
  .form-row { grid-template-columns: 1fr; }
  .hero-stats { display: none; }
  footer { padding: 2rem 1.25rem; flex-direction: column; align-items: flex-start; }
  .form-group input, .form-group select, .form-group textarea { font-size: 16px; }
}

/* iPad portrait (768px-959px) */
@media (min-width: 768px) and (max-width: 959px) {
  nav { padding: calc(env(safe-area-inset-top, 0px) + 1rem) 2rem 1rem; }
  .nav-links { display: none; }
  .mobile-menu-btn { display: flex; }
  .hero { grid-template-columns: 1fr; background-image: var(--pmhs-hero-img); background-size: cover; background-position: center; background-repeat: no-repeat; }
  .hero-right { display: none; }
  .hero-left { padding: 8rem 2rem 4rem; background: linear-gradient(to bottom, rgba(10,22,40,0.45) 0%, rgba(10,22,40,0.28) 100%); }
  .hero-title { font-size: 3.2rem; }
  .trust-bar { padding: 1.1rem 2rem; }
  .section-header { grid-template-columns: 1fr 1fr; }
  .services-grid { grid-template-columns: 1fr 1fr 1fr; }
  .modalities-grid, .privacy-grid, .provider-grid, .coverage-grid, .for-you-grid { grid-template-columns: 1fr 1fr; }
  .contact-grid { grid-template-columns: 1fr; }
  .telehealth-panel { grid-template-columns: 1fr 1fr; padding: 4rem 2rem; }
  .home-services, .home-providers, .home-contact, .page-body, .page-hero { padding-left: 2rem; padding-right: 2rem; }
  .form-row { grid-template-columns: 1fr 1fr; }
  footer { padding: 2rem; }
}

/* 600px-767px bridge. Foldable phones (iPhone Duo unfolded, and similar
   devices) report a viewport in roughly this range when open: wider and
   squarer than a normal phone, narrower than the 768px tablet breakpoint
   above. Apple has not published official point dimensions for iPhone Duo
   as of this device's announcement, so this is a defensive bridge, not a
   pixel-exact fit -- it hands this width range the same collapsed-nav,
   tablet-style layout as the breakpoint above instead of letting it fall
   through to phone-width rules built for a much narrower screen. Revisit
   with real numbers once the device ships and can actually be tested.
*/
@media (min-width: 600px) and (max-width: 767px) {
  nav { padding: calc(env(safe-area-inset-top, 0px) + 1rem) 2rem 1rem; }
  .nav-links { display: none; }
  .mobile-menu-btn { display: flex; }
  .hero-title { font-size: 3.2rem; }
  .trust-bar { padding: 1.1rem 2rem; }
  .section-header { grid-template-columns: 1fr 1fr; }
  .modalities-grid, .privacy-grid, .provider-grid, .coverage-grid, .for-you-grid { grid-template-columns: 1fr 1fr; }
  .telehealth-panel { grid-template-columns: 1fr 1fr; padding: 4rem 2rem; }
  .form-row { grid-template-columns: 1fr 1fr; }
}

/* Tablet narrow / hamburger collapse - phones and small tablets only, NOT iPad landscape */
@media (max-width: 960px) and (orientation: portrait),
       (max-width: 767px) {
  nav { padding: calc(env(safe-area-inset-top, 0px) + 1rem) 1.5rem 1rem; }
  .section-header { grid-template-columns: 1fr; gap: 1.25rem; }
  .services-grid, .modalities-grid { grid-template-columns: 1fr; }
  .telehealth-panel, .contact-grid, .provider-grid, .coverage-grid, .for-you-grid { grid-template-columns: 1fr; gap: 2rem; }
  .privacy-grid { grid-template-columns: 1fr; }
  .home-services, .home-providers, .home-contact, .page-body, .page-body-white, .page-hero, .telehealth-panel { padding-left: 1.5rem; padding-right: 1.5rem; }
  .form-row { grid-template-columns: 1fr; }
  .trust-bar { padding: 0; }
  footer { padding: 2rem 1.5rem; flex-direction: column; align-items: flex-start; }
}

/* iPad Pro / laptops (1024px-1279px) */
@media (min-width: 1024px) and (max-width: 1279px) {
  .modalities-grid, .treats-grid { grid-template-columns: 1fr 1fr; }
  .home-services, .home-providers, .home-contact, .page-body, .page-hero { padding-left: 3rem; padding-right: 3rem; }
  footer { padding: 2.5rem 3rem; }
  .a11y-panel { width: 380px; }
}

/* Large desktop 1080p (1536px-1919px) */
@media (min-width: 1536px) and (max-width: 1919px) {
  nav { padding: 1.25rem 5rem; }
  .hero-left { padding: 10rem 5rem 6rem; }
  .home-services, .home-providers, .home-contact, .page-body, .page-hero { padding-left: 5rem; padding-right: 5rem; max-width: 1800px; margin-left: auto; margin-right: auto; }
  .page-hero { max-width: 100%; }
  .telehealth-panel { padding: 6rem 5rem; }
  .modalities-grid, .treats-grid { grid-template-columns: 1fr 1fr; }
  footer { padding: 3rem 5rem; }
}

/* QHD / 2K (1920px-2559px) */
@media (min-width: 1920px) and (max-width: 2559px) {
  html { font-size: 17px; }
  nav { padding: 1.5rem 8rem; }
  .hero-left { padding: 11rem 8rem 6rem; }
  .home-services, .home-providers, .home-contact, .page-body, .page-hero { padding-left: 8rem; padding-right: 8rem; max-width: 2400px; margin-left: auto; margin-right: auto; }
  .telehealth-panel { padding: 7rem 8rem; }
  .modalities-grid, .treats-grid { grid-template-columns: 1fr 1fr; }
  .trust-bar { padding: 1.5rem 8rem; }
}

/* 4K / 5K (2560px+) */
@media (min-width: 2560px) {
  html { font-size: 16px; }
  .hero-title { font-size: clamp(2.8rem, 2vw, 3.6rem) !important; }
  .section-title { font-size: clamp(2rem, 1.5vw, 2.8rem) !important; }
  .page-title { font-size: clamp(1.8rem, 1.3vw, 2.4rem) !important; }
  .hero-left { padding: 10rem 8rem 6rem; }
  .home-services, .home-providers, .home-contact, .page-body, .page-hero { padding-left: 8rem; padding-right: 8rem; max-width: 2800px; margin-left: auto; margin-right: auto; }
  .telehealth-panel { padding: 6rem 8rem; }
  .services-grid { grid-template-columns: repeat(3,1fr); }

/* FAQ page: force 3-column grid — must stay after all other .services-grid rules */
#page-faq-page .services-grid {
  grid-template-columns: repeat(3, 1fr) !important;
  grid-auto-flow: row !important;
  align-items: stretch !important;
}
#page-patient-education .page-body {
  padding-bottom: 2rem !important;
}
#page-faq-page #faq-mental-health-crisis {
  grid-column: span 2;
}
#page-faq-page .service-card {
  height: auto !important;
  min-height: 0 !important;
  overflow: visible !important;
  display: flex !important;
  flex-direction: column !important;
}
#page-faq-page .service-card-body {
  flex: 1 0 auto !important;
}
  .modalities-grid, .treats-grid { grid-template-columns: 1fr 1fr; }
  .trust-bar { padding: 1.5rem 8rem; }
}

/* iOS Safari safe area insets */
@supports (padding: max(0px)) {
  nav {
    padding-left: max(4rem, env(safe-area-inset-left));
    padding-right: max(4rem, env(safe-area-inset-right));
  }
  footer { padding-bottom: max(3rem, env(safe-area-inset-bottom)); }
}

/* Xbox / TV / touch-only */
@media (hover: none) and (pointer: coarse) {
  .btn-primary, .nav-cta, .nav-portal { min-height: 44px; }
  .a11y-opt { min-height: 44px; }
  .form-group input, .form-group select, .form-group textarea { font-size: 16px; }

  /* Minimum tap targets per WCAG 2.5.5 */
  .mobile-menu-btn { min-width: 44px; min-height: 44px; padding: 0.6rem; }
  .footer-social { gap: 0rem; }
  .footer-social a { display: inline-flex; align-items: center; justify-content: center; min-width: unset; min-height: 44px; padding: 0 0.55rem; }
  .footer-bottom-links a { display: inline-flex; align-items: center; min-height: 44px; padding: 0.5rem 0.5rem; }
  #cookie-banner button { min-height: 44px; padding: 0.65rem 1.1rem; }
  .site-search-btn { min-width: 44px; min-height: 44px; padding: 0.6rem; }

  /* Catch-all: any standalone button or anchor button hits 44px on touch */
  main button, main a[onclick] { min-height: 44px; }
  /* Share buttons: keep the 44px tap target but as a true circle, both dimensions equal */
  main .article-share-btn, main a[onclick].article-share-btn { width: 44px; height: 44px; min-width: 44px; min-height: 44px; max-width: 44px; max-height: 44px; }
}

/* Windows High Contrast */
@media (forced-colors: active) {
  .btn-primary, .nav-cta { border: 2px solid ButtonText; }
  .service-card, .modality-card, .provider-card { border: 1px solid ButtonText; }
}

/* PHP Banner Connect Page */
.php-banner-outer { padding: 0 3rem 1.5rem; background: var(--salt); }
.php-banner-inner { padding: 2.5rem 3rem; }
.php-banner-grid { grid-template-columns: 1fr 1fr; gap: 3rem; }

@media (max-width: 959px) {
  .php-banner-outer { padding: 0 1.5rem 1.5rem !important; }
  .php-banner-inner { padding: 2rem 1.5rem !important; }
  .php-banner-grid { grid-template-columns: 1fr !important; gap: 1.5rem !important; }
}
@media (max-width: 767px) {
  .php-banner-outer { padding: 0 1rem 1.5rem !important; }
}
@media (max-width: 480px) {
  .php-banner-outer { padding: 0 1rem 1.5rem !important; }
  .php-banner-inner { padding: 1.75rem 1.25rem !important; }
  .php-banner-grid { grid-template-columns: 1fr !important; gap: 1.25rem !important; }
}
@media (max-width: 430px) {
  .php-banner-outer { padding: 0 1rem 1.5rem !important; }
  .php-banner-inner { padding: 1.5rem 1.15rem !important; }
}
@media (max-width: 390px) {
  .php-banner-outer { padding: 0 1rem 1.5rem !important; }
  .php-banner-inner { padding: 1.5rem 1rem !important; }
}
@media (max-width: 320px) {
  .php-banner-outer { padding: 0 1rem 1.25rem !important; }
  .php-banner-inner { padding: 1.25rem 0.85rem !important; }
}

/* Print */
@media print {
  .page { display: block !important; }
  body { background: white; color: black; font-size: 12pt; }
  .page-hero { background: white !important; padding: 1cm 2cm; }
  .page-hero .page-title, .page-hero .page-subtitle { color: black !important; }
  a[href]::after { content: " (" attr(href) ")"; font-size: 0.8em; }
}



/* MOBILE NAV MENU */
.mobile-nav { display: none; position: fixed; inset: 0; background: rgba(8,18,36,0.97); z-index: 99; flex-direction: column; align-items: flex-start; justify-content: flex-start; -webkit-backdrop-filter: blur(24px) saturate(1.5); backdrop-filter: blur(24px) saturate(1.5); overflow-y: auto; padding: max(5.5rem, calc(env(safe-area-inset-top, 0px) + 5rem)) 1.25rem max(1rem, env(safe-area-inset-bottom)); box-sizing: border-box; width: 100%; }
.mobile-nav.open { display: flex; }
.mobile-nav-close { background: none; border: none; color: rgba(200,230,240,0.5); cursor: pointer; padding: 0.25rem; }
.mobile-nav a { text-decoration: none; }
.mnav-primary { font-family: 'Cormorant Garamond', serif; font-size: 2rem; font-weight: 300; color: var(--white); letter-spacing: 0.02em; cursor: pointer; transition: all 0.2s; padding: 0.4rem 0; display: block; width: 100%; border-bottom: 1px solid transparent; }
.mnav-primary:hover { color: var(--mist); border-bottom-color: rgba(122,184,212,0.2); padding-left: 0.5rem; }
.mnav-secondary { font-family: 'DM Sans', sans-serif; font-size: 0.9rem; font-weight: 300; color: rgba(200,230,240,0.85); letter-spacing: 0.03em; cursor: pointer; transition: all 0.2s; padding: 0.45rem 0; display: block; width: 100%; border-bottom: 1px solid rgba(122,184,212,0.08); }
.mnav-secondary:hover { color: var(--white); padding-left: 0.4rem; }
.mobile-nav-search-btn { display: flex; align-items: center; gap: 0.4rem; background: rgba(58,150,200,0.1); border: 1.5px solid rgba(58,150,200,0.55); border-radius: 8px; padding: 0.4rem 0.85rem; color: var(--mist); font-family: 'DM Sans', sans-serif; font-size: 0.7rem; letter-spacing: 0.1em; text-transform: uppercase; cursor: pointer; }

/* Mobile nav flip call button */
.mobile-call-flip { width: 100%; height: 36px; perspective: 600px; }
.mobile-call-flip-inner {
  position: relative; width: 100%; height: 100%;
  transform-style: preserve-3d; transition: transform 0.45s ease;
}
.mobile-call-flip:hover .mobile-call-flip-inner,
.mobile-call-flip:focus-within .mobile-call-flip-inner { transform: rotateX(180deg); }
.mobile-call-flip-front, .mobile-call-flip-back {
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center; gap: 0.5rem;
  border-radius: 10px; font-family: 'DM Sans', sans-serif;
  font-size: 0.82rem; letter-spacing: 0.12em; text-transform: uppercase;
  font-weight: 500; backface-visibility: hidden; -webkit-backface-visibility: hidden;
  cursor: pointer; text-decoration: none;
}
.mobile-call-flip-front {
  background: var(--tide); color: var(--white);
}
.mobile-call-flip-front svg { margin-right: 0.4rem; flex-shrink: 0; }
.mobile-call-flip-back svg { display: none; }
.mobile-call-flip-back {
  transform: rotateX(180deg);
  background: var(--deep); color: var(--white);
}
.mobile-call-flip:hover .mobile-call-flip-front { background: var(--navy); }
.mobile-call-flip:hover .mobile-call-flip-back { background: var(--deep); color: var(--white); }

/* PROVIDER CARD FLIP BUTTONS */
.tc-flip { display: inline-block; perspective: 600px; height: 34px; width: 190px; vertical-align: middle; }
.tc-flip-inner {
  position: relative; width: 100%; height: 100%;
  transform-style: preserve-3d; transition: transform 0.45s ease;
}
.tc-flip:hover .tc-flip-inner { transform: rotateX(180deg); }
.tc-flip-front, .tc-flip-back {
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center; gap: 0.45rem;
  border-radius: 8px; font-family: 'DM Sans', sans-serif;
  font-size: 0.75rem; letter-spacing: 0.08em; text-transform: uppercase;
  font-weight: 500; backface-visibility: hidden; -webkit-backface-visibility: hidden;
  text-decoration: none; white-space: nowrap; overflow: hidden;
}
.tc-flip-front { background: var(--tide); color: var(--white); }
.tc-flip-back  { background: var(--deep); color: var(--white) !important; transform: rotateX(180deg); }
.tc-flip:hover .tc-flip-front { background: var(--ocean); }
.tc-flip:hover .tc-flip-back  { background: var(--navy); }

/* Email flip */
.tc-email-flip { display: inline-block; perspective: 600px; height: 34px; width: 244px; vertical-align: middle; }
.tc-email-flip-inner {
  position: relative; width: 100%; height: 100%;
  transform-style: preserve-3d; transition: transform 0.45s ease;
}
.tc-email-flip:hover .tc-email-flip-inner { transform: rotateX(180deg); }
.tc-email-flip-front, .tc-email-flip-back {
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center; gap: 0.45rem;
  border-radius: 8px; font-family: 'DM Sans', sans-serif;
  font-size: 0.75rem; letter-spacing: 0.08em; text-transform: uppercase;
  font-weight: 500; backface-visibility: hidden; -webkit-backface-visibility: hidden;
  text-decoration: none; white-space: nowrap; overflow: hidden;
  padding: 0 0.75rem;
}
.tc-email-flip-front { background: transparent; color: var(--tide); border: 1.5px solid rgba(58,150,200,0.55); }
.tc-email-flip-back  { background: var(--tide); color: var(--white); transform: rotateX(180deg); border: 1px solid transparent; }
.tc-email-flip:hover .tc-email-flip-front { background: rgba(58,150,200,0.06); }
.tc-email-flip:hover .tc-email-flip-back  { background: var(--ocean); }

/* Provider card contact buttons: uniform full-width stack on mobile/tablet */
@media (max-width: 1023px) {
  .provider-contact-actions { flex-direction: column; align-items: stretch; gap: 0.6rem; }
  .provider-contact-actions .tc-flip,
  .provider-contact-actions .tc-email-flip { width: 100%; }
  .provider-contact-actions > a { width: 100%; justify-content: center !important; box-sizing: border-box; }
}

/* Contact duo grid: person columns stack cleanly on mobile */
@media (max-width: 767px) {
  .contact-duo-grid p[style*="min-height:2.2em"] { min-height: 0 !important; margin-bottom: 0.4rem !important; }
  .contact-duo-grid { gap: 1.1rem 0.65rem !important; }
}

/* FOR PROVIDERS PAGE: responsive collapse for inline grids */
@media (max-width: 767px) {
  #page-referrals-page [style*="grid-template-columns:repeat(3,1fr)"],
  #page-referrals-page [style*="grid-template-columns:repeat(2,1fr)"],
  #page-careers-page [style*="grid-template-columns:repeat(3,1fr)"],
  #page-careers-page [style*="grid-template-columns:repeat(2,1fr)"] { grid-template-columns: 1fr !important; }
}
@media (min-width: 768px) and (max-width: 1023px) {
  #page-referrals-page [style*="grid-template-columns:repeat(3,1fr)"],
  #page-careers-page [style*="grid-template-columns:repeat(3,1fr)"] { grid-template-columns: repeat(2,1fr) !important; }
}
#page-referrals-page [style*="grid-template-columns:repeat(3,1fr)"] > div,
#page-referrals-page [style*="grid-template-columns:repeat(2,1fr)"] > div,
#page-careers-page [style*="grid-template-columns:repeat(3,1fr)"] > div,
#page-careers-page [style*="grid-template-columns:repeat(2,1fr)"] > div { min-width: 0; }
/* Careers cards: stack the body so the last box sits at the bottom of every card */
#page-careers-page .page-hero-bg { object-position: center 35%; }
#page-careers-page .service-card { display: flex; flex-direction: column; }
#page-careers-page .service-card-body { flex: 1; display: flex; flex-direction: column; }
#page-careers-page .service-card-body > div:last-child { margin-top: auto; }

/* PREFERS REDUCED MOTION */
@media (prefers-reduced-motion: reduce) {
  .trust-track { animation: none; overflow-x: auto; }
  .call-flip-inner, .mobile-call-flip-inner, .tc-flip-inner, .tc-email-flip-inner { transition: none; }
  .scroll-line::after { animation: none; }
  * { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; }
}

/* A11Y CURSOR ENLARGER */
body.a11y-big-cursor, body.a11y-big-cursor * {
  cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 48 48'%3E%3Cpath d='M8 4 L8 36 L16 28 L22 42 L26 40 L20 26 L32 26 Z' fill='white' stroke='black' stroke-width='2'/%3E%3C/svg%3E") 8 4, auto !important;
}

/* REASON CHIPS */
.reason-chip { background: rgba(248,252,255,1); border: 1.5px solid rgba(58,150,200,0.55); border-radius: 99px; padding: 0.3rem 0.8rem; font-family: 'DM Sans', sans-serif; font-size: 0.76rem; color: var(--subtle); font-weight: 400; cursor: pointer; transition: all 0.2s; white-space: nowrap; line-height: 1.4; }
.reason-chip:hover:not(.chip-disabled) { border-color: var(--tide); color: var(--ocean); background: rgba(58,150,200,0.06); }
.reason-chip.selected { background: var(--tide); border-color: var(--tide); color: white; font-weight: 500; }
.reason-chip.chip-disabled { opacity: 0.35; cursor: not-allowed; pointer-events: none; }

/* QUIZ STYLES */
.quiz-options { display: flex; flex-direction: column; gap: 0.75rem; }
.quiz-opt {
  background: rgba(255,255,255,0.97); border: 1.5px solid rgba(58,150,200,0.55);
  border-radius: 12px; padding: 1.1rem 1.5rem; font-family: 'DM Sans', sans-serif;
  font-size: 0.9rem; color: var(--text); text-align: left; cursor: pointer;
  transition: background 0.25s, border-color 0.25s, transform 0.2s;
  box-shadow: 0 2px 8px rgba(46,124,168,0.06); font-weight: 300;
}
.quiz-opt:hover { background: var(--foam); border-color: rgba(58,150,200,0.55); transform: translateX(4px); }

/* ── FLUID LAYOUT, all resolutions ── */
.page-body, .page-hero, .home-services, .home-providers, .home-contact {
  box-sizing: border-box;
  width: 100%;
}
@media (min-width: 1440px) {
  .page-body, .home-services, .home-providers, .home-contact { padding-left: clamp(4rem, 8vw, 10rem); padding-right: clamp(4rem, 8vw, 10rem); }
  .page-hero { padding-left: clamp(4rem, 8vw, 10rem); padding-right: clamp(4rem, 8vw, 10rem); }
  nav { padding-left: clamp(4rem, 8vw, 10rem); padding-right: clamp(4rem, 8vw, 10rem); }
  footer { padding-left: clamp(4rem, 8vw, 10rem); padding-right: clamp(4rem, 8vw, 10rem); }
}
@media (min-width: 2560px) {
  html { font-size: clamp(16px, 0.8vw, 22px); }
  .home-services, .home-providers, .home-contact, .page-body, .page-hero { max-width: 3400px; margin-left: auto; margin-right: auto; padding-left: clamp(4rem, 8vw, 12rem); padding-right: clamp(4rem, 8vw, 12rem); }
  .page-hero { max-width: 100%; }
  nav { max-width: 100%; padding-left: clamp(4rem, 8vw, 12rem); padding-right: clamp(4rem, 8vw, 12rem); }
}
/* 34"+ ultrawide / curved monitors (3440px wide, 21:9 aspect) */
@media (min-width: 3200px) and (max-width: 3839px) {
  html { font-size: clamp(14px, 0.45vw, 18px); }
  .hero-title { font-size: clamp(2.4rem, 1.8vw, 3rem) !important; }
  .section-title { font-size: clamp(1.8rem, 1.4vw, 2.4rem) !important; }
  .page-title { font-size: clamp(1.5rem, 1.2vw, 2rem) !important; }
  .home-services, .home-providers, .home-contact, .page-body { max-width: 3000px; margin-left: auto; margin-right: auto; padding-left: clamp(4rem, 5vw, 10rem); padding-right: clamp(4rem, 5vw, 10rem); }
  .page-hero { max-width: 100%; padding-left: clamp(4rem, 5vw, 10rem); padding-right: clamp(4rem, 5vw, 10rem); }
  nav { padding-left: clamp(4rem, 5vw, 10rem); padding-right: clamp(4rem, 5vw, 10rem); max-width: 100%; }
  .home-services, .home-providers, .home-contact { padding-top: 4rem; padding-bottom: 4rem; }
}
@media (min-width: 3840px) {
  html { font-size: clamp(18px, 0.55vw, 26px); }
  .home-services, .home-providers, .home-contact, .page-body { max-width: 3800px; margin-left: auto; margin-right: auto; padding-left: clamp(6rem, 6vw, 14rem); padding-right: clamp(6rem, 6vw, 14rem); }
  .page-hero { max-width: 100%; padding-left: clamp(6rem, 6vw, 14rem); padding-right: clamp(6rem, 6vw, 14rem); }
  nav { max-width: 100%; padding-left: clamp(6rem, 6vw, 14rem); padding-right: clamp(6rem, 6vw, 14rem); }
}

/* County pages responsive grid */
.county-grid { display:grid; grid-template-columns:1fr 1fr; gap:3rem; align-items:start; }
@media (max-width: 767px) {
  .county-grid { grid-template-columns:1fr; gap:1.5rem; }
}

/* ══════════════════════════════════════════════
   FROSTED GLASS SYSTEM
══════════════════════════════════════════════ */

/* Nav, deepen the blur and lighten the glass */
nav {
  background: rgba(8,18,36,0.72) !important;
  -webkit-backdrop-filter: blur(20px) saturate(1.4) !important;
  backdrop-filter: blur(20px) saturate(1.4) !important;
  border-bottom: 1px solid rgba(79,168,200,0.14) !important;
}
nav.scrolled {
  background: rgba(4,10,22,0.88) !important;
  -webkit-backdrop-filter: blur(24px) saturate(1.6) !important;
  backdrop-filter: blur(24px) saturate(1.6) !important;
}

/* Dropdown menu, frosted glass panel */
.nav-dropdown-menu {
  background: rgba(6,14,28,0.82) !important;
  -webkit-backdrop-filter: blur(20px) saturate(1.5) !important;
  backdrop-filter: blur(20px) saturate(1.5) !important;
  border: 1px solid rgba(79,168,200,0.18) !important;
}

/* Page hero, subtle frosted overlay on the radial gradients */
.page-hero::after {
  content: '';
  position: absolute; inset: 0;
  background: rgba(10,22,40,0.08);
  -webkit-backdrop-filter: blur(0.5px);
  backdrop-filter: blur(0.5px);
  pointer-events: none;
  z-index: 0;
}

/* Telehealth panel, frosted glass feature tiles */
.tele-feature {
  background: rgba(255,255,255,0.05) !important;
  -webkit-backdrop-filter: blur(8px) !important;
  backdrop-filter: blur(8px) !important;
  border: 1px solid rgba(122,184,212,0.14) !important;
}

/* Home contact form, glass card */
.contact-form {
  background: rgba(255,255,255,0.04) !important;
  -webkit-backdrop-filter: blur(12px) !important;
  backdrop-filter: blur(12px) !important;
  border: 1px solid rgba(122,184,212,0.12) !important;
}

/* Provider cards, subtle glass lift */
.provider-card {
  background: rgba(255,255,255,0.97) !important;
  -webkit-backdrop-filter: blur(4px) !important;
  backdrop-filter: blur(4px) !important;
}
.provider-card:hover {
  background: rgba(255,255,255,1) !important;
  box-shadow: 0 24px 60px rgba(10,22,40,0.1) !important;
}

/* Service cards, glass hover state on dark bg */
.service-card:hover {
  -webkit-backdrop-filter: blur(4px) !important;
  backdrop-filter: blur(4px) !important;
}

/* Mobile nav, deeper glass */
.mobile-nav {
  background: rgba(8,18,36,0.96) !important;
  -webkit-backdrop-filter: blur(24px) saturate(1.5) !important;
  backdrop-filter: blur(24px) saturate(1.5) !important;
}

/* A11y panel, glass */
.a11y-panel {
  background: rgba(10,22,44,0.92) !important;
  -webkit-backdrop-filter: blur(18px) saturate(1.4) !important;
  backdrop-filter: blur(18px) saturate(1.4) !important;
  border: 1px solid rgba(122,184,212,0.16) !important;
}

/* Connect hero, frosted radial glow overlay */
.connect-hero::before {
  -webkit-backdrop-filter: blur(1px) !important;
  backdrop-filter: blur(1px) !important;
}

/* For-you cards, glass on hover */
.for-you-card {
  -webkit-backdrop-filter: blur(2px);
  backdrop-filter: blur(2px);
}

/* Info cards (coverage, privacy), glass */
.info-card, .privacy-card {
  -webkit-backdrop-filter: blur(2px);
  backdrop-filter: blur(2px);
}

/* Modality cards, subtle glass */
.modality-card {
  -webkit-backdrop-filter: blur(2px);
  backdrop-filter: blur(2px);
}

/* Consult badge, glass pill */
.consult-badge {
  background: rgba(46,124,168,0.18) !important;
  -webkit-backdrop-filter: blur(8px) !important;
  backdrop-filter: blur(8px) !important;
  border: 1px solid rgba(79,168,200,0.32) !important;
}

/* Hero stats, glass backing */
.stat {
  background: rgba(10,22,40,0.18);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  padding: 0.5rem 1.1rem 0.5rem 0;
  border-radius: 14px;
  border: 2px solid rgba(58,150,200,0.55);
}

/* ── NAV DROPDOWN ── */
.nav-dropdown { position: relative; }
.nav-dropdown-menu {
  display: none;
  position: absolute; top: calc(100% + 0.5rem); left: 50%;
  transform: translateX(-50%);
  background: rgba(6,15,26,0.98);
  border: 1px solid rgba(74,168,200,0.18);
  border-radius: 14px;
  overflow: hidden;
  padding: 0;
  list-style: none;
  margin: 0;
  min-width: 200px;
  -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
  z-index: 300;
  box-shadow: 0 16px 48px rgba(0,0,0,0.45);
}
.nav-dropdown-menu.open { display: block; }
.nav-dropdown-menu li { margin: 0; padding: 0; list-style: none; }
.nav-dropdown-menu li a {
  display: block;
  padding: 0.65rem 1.4rem;
  font-size: 0.76rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(200,230,240,0.72);
  font-weight: 400;
  transition: all 0.2s;
  white-space: nowrap;
  cursor: pointer;
  text-indent: 0;
  margin: 0;
}
.nav-dropdown-menu li a:hover { color: var(--white); background: rgba(74,168,200,0.1); }
.nav-dropdown-menu li:first-child a { border-radius: 14px 14px 0 0; }
.nav-dropdown-menu li:last-child a { border-radius: 0 0 14px 14px; }
.nav-dropdown-menu li + li { border-top: 1px solid rgba(74,168,200,0.07); }
.nav-dropdown-trigger {
  cursor: pointer;
  user-select: none;
}
.nav-dropdown-trigger .dd-arrow {
  display: inline-block;
  margin-left: 4px;
  vertical-align: middle;
  transition: transform 0.2s;
}
.nav-dropdown-trigger.dd-open .dd-arrow { transform: rotate(180deg); }
@media (hover: hover) and (pointer: fine) { .nav-dropdown:hover .nav-dropdown-menu { display: block; } .nav-dropdown:hover .nav-dropdown-trigger .dd-arrow { transform: rotate(180deg); } }
/* Invisible bridge fills the gap between trigger and menu so hover doesn't break (mouse only) */
@media (hover: hover) and (pointer: fine) { .nav-dropdown::before {
  content: '';
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  height: 0.6rem;
  background: transparent;
} }

/* ── PATIENT INFO SUB-NAV ── */
.pi-subnav {
  display: flex; border-bottom: 1px solid rgba(46,124,168,0.12); margin-bottom: 2rem;
  gap: 0;
}
.pi-subnav-btn {
  background: none; border: none; border-bottom: 2px solid transparent;
  padding: 0.75rem 1.5rem; font-family: 'DM Sans', sans-serif;
  font-size: 0.72rem; letter-spacing: 0.12em; text-transform: uppercase;
  font-weight: 500; color: var(--subtle); cursor: pointer;
  transition: all 0.25s; margin-bottom: -1px;
}
.pi-subnav-btn:hover { color: var(--ocean); }
.pi-subnav-btn.pi-active { color: var(--tide); border-bottom-color: var(--tide); }

/* ── CONNECT HERO (photo style matching page-hero) ── */
.connect-hero {
  position: relative; overflow: hidden;
  min-height: 320px; display: flex; align-items: center;
  padding: 8rem 4rem 5rem;
}
.connect-hero-bg {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover; object-position: center;
  filter: brightness(0.62) saturate(0.82);
  z-index: 0;
}
.connect-hero::before {
  content: ''; position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(to right, rgba(10,22,40,0.68) 0%, rgba(10,22,40,0.38) 55%, rgba(10,22,40,0.08) 100%);
}
.connect-hero::after {
  content: ''; position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(to top, rgba(10,22,40,0.22) 0%, transparent 55%);
}
.connect-hero-inner { max-width: 640px; position: relative; z-index: 2; }

/* ── CONNECT FORM BODY ── */
.connect-form-body { background: var(--salt); padding: 3.5rem 3rem; }

/* two equal cards side by side, full page width */
.connect-card-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.75rem;
  align-items: stretch;
}
.connect-card-grid > * { min-width: 0; }
#connect-card-info { display: flex; flex-direction: column; height: 100%; }

@media (max-width: 959px) {
  .connect-hero { padding: 7rem 1.5rem 3rem; }
  .connect-form-body { padding: 3rem 1.5rem; }
  #php-banner-connect { padding: 0 0 3rem; }
}

/* ── PATIENT INFO SUB-PAGE BACK LINK ── */
.pi-back {
  display: inline-flex; align-items: center; gap: 0.5rem;
  font-size: 0.72rem; letter-spacing: 0.06em; text-transform: uppercase;
  color: var(--white); font-weight: 600; cursor: pointer;
  background: var(--ocean); border: none; border-radius: 999px;
  padding: 0.55rem 1.2rem 0.55rem 0.9rem; margin-bottom: 1.75rem;
  transition: background 0.2s;
}
.pi-back-icon {
  display: inline-flex; align-items: center; justify-content: center;
  transition: transform 0.2s;
}
.pi-back-icon svg { color: var(--white); }
.pi-back:hover { background: var(--deep); color: var(--white); }
.pi-back:hover .pi-back-icon { transform: translateX(-3px); }

/* Connect form field focus */
.connect-card-form input:focus,
.connect-card-form select:focus,
.connect-card-form textarea:focus {
  border-color: rgba(58,150,200,0.7) !important;
  box-shadow: 0 0 0 3px rgba(58,150,200,0.12) !important;
  outline: none;
}

/* ── PATIENT INFO LANDING CARD HOVER ── */
.pi-landing-card {
  background: rgba(255,255,255,0.97);
  
  border: 2px solid rgba(58,150,200,0.55);
  padding: 0;
  border-radius: 14px;
  cursor: pointer;
  position: relative;
  overflow: hidden;
  transition: border-color 0.3s, box-shadow 0.3s, transform 0.3s;
  box-shadow: 0 4px 20px rgba(46,124,168,0.08);
}
.pi-landing-card:hover { border-color: rgba(58,150,200,0.55); box-shadow: 0 12px 36px rgba(46,124,168,0.14); transform: translateY(-2px); }
.pi-landing-card-header { background: linear-gradient(135deg, var(--deep) 0%, #1e4d72 100%); padding: 1.4rem 1.5rem 1.3rem; border-radius: 12px 12px 0 0; }
.pi-landing-card .pi-lc-label { font-size: 0.6rem; letter-spacing: 0.18em; text-transform: uppercase; color: rgba(255,255,255,0.7); font-weight: 500; margin-bottom: 0.35rem; display: block; }
.pi-landing-card .pi-lc-title { font-family: 'Cormorant Garamond', serif; font-size: 1.25rem; font-weight: 400; color: var(--white); margin: 0; line-height: 1.2; }
.pi-landing-card-body { padding: 1.25rem 1.5rem 1.5rem; }
.pi-landing-card .pi-lc-desc { font-size: 0.85rem; color: var(--subtle); font-weight: 300; line-height: 1.7; margin-bottom: 0.9rem; }
.pi-landing-card .pi-lc-link { font-size: 0.72rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--tide); font-weight: 500; }

/* ── GLOBAL BUTTON BORDER RADIUS ── */
.btn-primary, .btn-ghost, .btn-sm, .btn-sm-primary, .btn-sm-ghost,
.form-submit, .nav-cta, button[type="submit"] { border-radius: 8px !important; }
.nav-cta { border-radius: 6px !important; }

/* ── CTA BLOCKS (dark panels with "We are happy to help") ── */
[style*="background:var(--deep)"][style*="border-radius"] {
  border-radius: 16px !important;
  border: 2px solid rgba(58,150,200,0.55) !important;
  box-shadow: 0 8px 32px rgba(10,22,40,0.18) !important;
}

/* Increase all card borders by 1px (to 2px) */
.service-card, .provider-card, .modality-card,
.for-you-card, .info-card, .privacy-card,
.tele-feature {
  border-width: 2px !important;
}

/* For You grid responsive */
@media (max-width: 767px) { .for-you-grid { grid-template-columns: 1fr !important; } }
@media (min-width: 768px) and (max-width: 1023px) { .for-you-grid { grid-template-columns: 1fr 1fr !important; } }

/* ── CONNECT PAGE: fix spacing between cards and PHP banner ──
   connect-form-body's bottom padding was sized as the page's final
   gap before the footer, back when the PHP banner was accidentally
   nested inside it (a pre-existing bug). Now that the banner is a
   correct sibling, that padding needs to move: a small gap between
   the cards and the banner, and the larger gap after the banner,
   before the footer, matching the tight spacing convention CTAs
   use on other pages. */
#connect-form { padding-bottom: 1rem !important; }
#php-banner-connect { padding-top: 1rem !important; padding-bottom: 4rem !important; }
@media (max-width: 767px) {
  #connect-form { padding-bottom: 0.75rem !important; }
  #php-banner-connect { padding-top: 0.75rem !important; padding-bottom: 3rem !important; }
}

/* ── TABLET HERO: final chevron + stat-box placement ──
   Placed at the end of the stylesheet so it wins the cascade over every
   earlier tablet breakpoint, including the landscape display:none rules.
   Chevron: pinned at the viewport bottom next to the 988 crisis pill
   (it is a "scroll down" cue, so it lives at the bottom edge), and fades
   out as soon as scrolling starts, its job is done at that point.
   Stat boxes: fixed to the viewport above the FAB row. Absolute
   positioning was why the live device and Responsive Design Mode
   disagreed: Safari's URL bar shrinks the real viewport, shifting
   fixed FABs up into hero-anchored absolute content. Fixed-to-fixed
   spacing is immune to that difference. */
.scroll-hint { opacity: 1; transition: opacity 0.25s ease; }
body.pmhs-scrolled .scroll-hint {
  opacity: 0 !important;
  pointer-events: none !important;
}
@media (min-width: 768px) and (max-width: 1366px) {
  .scroll-hint {
    display: flex !important;
    position: fixed !important;
    left: 50% !important;
    bottom: 2.1rem !important;
    top: auto !important;
    transform: translateX(-50%) !important;
    margin: 0 !important;
    z-index: 40 !important;
  }
  .hero-stats {
    position: fixed !important;
    bottom: 4.25rem !important;
    right: 1.25rem !important;
    display: flex !important;
    z-index: 30 !important;
  }
}
/* Short tablet viewports (landscape iPads): start the hero content higher
   so the last pill clears the fixed 988 crisis pill with real breathing
   room. Height-scoped, tall portrait tablets already have clearance and
   are untouched. */
@media (min-width: 768px) and (max-width: 1366px) and (max-height: 850px) {
  .hero-left { padding-top: 3.5rem !important; }
}

/* ── DESKTOP (above all tablet ranges): chevron breathing room ──
   Hero content is vertically centered on desktop with the chevron
   pinned near the hero's bottom edge. The taller subtitle and pill
   rows grew the content block downward, closing the gap. Extra
   bottom padding lifts the centered block, restoring clearance. */
@media (min-width: 1367px) {
  .hero-left { padding-bottom: 12rem; }
  .hero-stats { bottom: 6.5rem; }
}

/* ── FIX: stat box was drifting down the page on scroll ──
   On tablet widths .hero-stats is intentionally position:fixed (see the
   comment above the 768–1366px block) to avoid a Safari viewport-bar bug.
   But fixed positioning has no natural end point, so as the user scrolled
   past the hero the CA / 100% / All Ages box stayed pinned to the
   viewport and drifted down over unrelated content below (county grids,
   footer, etc). Reuse the same pmhs-scrolled body class that already
   fades the scroll-hint chevron so the stat box disappears once
   scrolling starts, instead of following the page indefinitely. Higher
   specificity (two classes) means this wins regardless of source order
   against every earlier `.hero-stats { ... !important }` breakpoint. */
body.pmhs-scrolled .hero-stats {
  opacity: 0 !important;
  pointer-events: none !important;
}

/* ── NAV: animated underline ──
   Thin tide-gradient line sweeps in from the left on hover and
   keyboard focus, and stays put under the active page. Top-level
   links only, the Get Started CTA and dropdown menu items keep
   their own treatments. The mobile nav is a separate component. */
.nav-links > li > a:not(.nav-cta):not(.nav-portal) {
  position: relative;
  padding-bottom: 0.35rem;
}
.nav-links > li > a:not(.nav-cta):not(.nav-portal)::after {
  content: '';
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 1.5px;
  background: linear-gradient(90deg, var(--tide), rgba(122,184,212,0.35));
  border-radius: 1px;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.3s ease;
}
.nav-links > li > a:not(.nav-cta):not(.nav-portal):hover::after,
.nav-links > li > a:not(.nav-cta):not(.nav-portal):focus-visible::after,
.nav-links > li > a.active::after {
  transform: scaleX(1);
}

/* ── CONNECT FORM, MOBILE: collapse the 26-chip concern picker ──
   The chip list is the single biggest contributor to the form's scroll
   height on phones (~15+ rows of wrapped buttons). Phones show the 8
   most common concerns plus Other; the rest sit behind a "show more"
   toggle. A chip the user has SELECTED always stays visible, even
   collapsed, choices never vanish. Desktop is untouched. */
.chips-more-toggle { display: none; background: rgba(58,150,200,0.08); border: 1.5px solid rgba(58,150,200,0.55); border-radius: 99px; padding: 0.3rem 0.8rem; font-family: 'DM Sans', sans-serif; font-size: 0.76rem; color: var(--ocean); font-weight: 600; cursor: pointer; transition: all 0.2s; white-space: nowrap; line-height: 1.4; }
.chips-more-toggle:active { background: rgba(58,150,200,0.18); border-color: var(--tide); }
@media (max-width: 767px) {
  .reason-chip.chip-extra { display: none !important; }
  #reason-chips.chips-expanded .reason-chip.chip-extra { display: inline-block !important; }
  .reason-chip.chip-extra.selected { display: inline-block !important; }
  .chips-more-toggle { display: inline-block; }
}
@media (max-width: 480px) {
  .chips-more-toggle { font-size: 0.72rem; padding: 0.28rem 0.65rem; }
}

/* ── ACCESSIBILITY: baseline keyboard focus indicators ──
   Links and buttons only: on these elements :focus-visible fires for
   KEYBOARD navigation, never mouse clicks, mouse users won't see it.
   Form fields are deliberately excluded: they already carry their own
   branded focus treatment (border + background lift), and inputs match
   :focus-visible even on click, which double-stacked the styles.
   The a11y widget's louder opt-in gold mode still layers on top. */
a:focus-visible, button:focus-visible, [tabindex]:focus-visible {
  outline: 2px solid var(--tide) !important;
  outline-offset: 2px;
}

/* ── CONTRAST: soft shadow behind hero text ──
   Hero copy sits directly on photos whose brightness varies by area.
   A soft dark shadow keeps text readable over the brightest regions.
   The site's high-contrast mode strips text-shadow, so no conflict. */
.page-hero-inner { text-shadow: 0 1px 14px rgba(10,22,40,0.55); }

/* ===== Deduplicated inline-style utility classes (auto-extracted, zero visual change) ===== */
.pu1 { margin-top:0.75rem; }
.pu2 { cursor:default; }
.pu3 { font-size:0.83rem;color:var(--subtle);font-weight:300;line-height:1.55; }
.pu4 { display:flex;gap:0.6rem;align-items:flex-start; }
.pu5 { font-style:italic;color:var(--mist); }
.pu6 { width:20px;height:20px;border-radius:50%;background:var(--tide);color:white;font-size:0.58rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:0.1rem;font-family:'DM Sans',sans-serif; }
.pu7 { margin:0 auto; }
.pu8 { font-size:0.68rem;letter-spacing:0.2em;text-transform:uppercase;color:var(--mist);font-weight:400;margin-bottom:0.75rem; }
.pu9 { font-family:'Cormorant Garamond',serif;font-size:1.6rem;font-weight:300;color:var(--white);margin-bottom:0.75rem;line-height:1.2; }
.pu10 { font-size:0.88rem;color:rgba(200,230,240,0.6);font-weight:300;max-width:480px;margin:0 auto 1.25rem;line-height:1.7; }
.pu11 { color:var(--ocean);text-decoration:underline; }
.pu12 { max-width:1300px;margin:0 auto; }
.pu13 { font-size:0.66rem;letter-spacing:0.12em;text-transform:uppercase;color:rgba(216,238,246,0.78);margin-top:1rem;font-weight:300; }
.pu14 { font-size:0.62rem;letter-spacing:0.08em;text-transform:uppercase;color:var(--subtle);font-weight:500;margin-right:0.15rem; }
.pu15 { display:flex;align-items:center;justify-content:space-between; }
.pu16 { display:flex;align-items:center;gap:0.5rem; }
.pu17 { background:rgba(14,32,60,0.92);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:16px;border:2px solid rgba(58,150,200,0.55);padding:1.75rem 2.5rem;text-align:center;margin-top:0.5rem;box-shadow:0 8px 32px rgba(10,22,40,0.2); }
.pu18 { font-size:0.7rem;font-weight:500;color:var(--ocean);background:#eaf4fb;border:1.5px solid rgba(58,150,200,0.55);border-radius:20px;padding:0.2rem 0.65rem; }
.pu19 { font-weight:700;font-style:normal;margin:0;white-space:nowrap;border-left:none;padding-left:0;letter-spacing:0.02em; }
.pu20 { flex:1;height:1.5px;background:rgba(58,150,200,0.35); }
.pu21 { display:flex;align-items:center;gap:0.85rem;margin:1.25rem 0 0.85rem; }
.pu22 { display:flex;align-items:flex-start;gap:0.65rem;font-size:0.83rem;color:var(--subtle);font-weight:300;line-height:1.55; }
.pu23 { font-size:0.83rem;color:var(--subtle);font-weight:300;line-height:1.5; }
.pu24 { color:var(--deep);font-weight:500; }
.pu25 { font-weight:500;color:var(--deep); }
