/* ============================================================
   Eye Cue overrides — loaded AFTER healingy styles.css.
   Redesign-in-place (2026-06-05): cinematic video hero, animated
   proof band, refreshed imagery, insurance / founder / locations
   / FAQ sections. Keeps healingy's warm palette + chrome.

   Palette tokens (kept inline-consistent with healingy --Color-*):
     ink     #3c210e   (deep brown text / dark band)
     clay    #c72929   (accent / CTA)
     paper   #f5f1ed   (warm section wash)
     sand    #fedac2   (top-bar text on ink)
     body    #5e5a56   (muted body)
   ============================================================ */

:root {
  --ec-ink: #3c210e;
  --ec-clay: #c72929;
  --ec-paper: #f5f1ed;
  --ec-sand: #fedac2;
  --ec-body: #5e5a56;
  --ec-line: rgba(60,33,14,.12);
  --ec-shadow: 0 10px 34px rgba(60,33,14,.10);
  --ec-radius: 18px;
  --ec-ease: cubic-bezier(.22,.61,.36,1);
}

/* ---- Header: always solid, dark links (not white-over-hero) ---- */
#header-main.style-1 { position: relative; background: #fff; box-shadow: 0 1px 0 rgba(60,33,14,.10); }
#header-main .header-logo #logo_header { max-height: 46px; width: auto; }
#header-main .navigation > li > a { color: var(--ec-ink); }
#header-main .navigation > li > a:hover { color: var(--ec-clay); }
#header-main .mobile-button { color: var(--ec-ink); }

/* Top bar: dark band, legible */
.tf-top-bar { background: var(--ec-ink); }
.tf-top-bar, .tf-top-bar a, .tf-top-bar i { color: var(--ec-sand); }
.tf-top-bar a:hover { color: #fff; }

/* Reveal images even if lazysizes doesn't swap data-src */
img.lazyload { opacity: 1 !important; }

/* Nav: keep two-word labels on one line, vertically centered */
#header-main .header-inner-wrap,
#header-main .header-left,
#header-main .main-menu,
#header-main .navigation { align-items: center; }
#header-main .navigation { display: flex; gap: 6px; flex-wrap: nowrap; }
#header-main .navigation > li > a { white-space: nowrap; }

/* Shared editorial helpers */
.ec-eyebrow { color: var(--ec-clay); font-weight: 700; letter-spacing: .06em; text-transform: uppercase; font-size: .8rem; margin-bottom: 14px; }
.ec-eyebrow-light { color: var(--ec-sand); }
.ec-lead { font-size: 1.1rem; line-height: 1.62; color: var(--ec-ink); }
.ec-center { text-align: center; max-width: 640px; margin: 0 auto 44px; }

/* ============================================================
   HERO — cinematic video background, white text, warm scrim
   ============================================================ */
.ec-hero { position: relative; overflow: hidden; background: var(--ec-ink); }
.ec-hero .page-video {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; z-index: 0;
}
.ec-hero .ec-hero-scrim {
  position: absolute; inset: 0; z-index: 1;
  background:
    linear-gradient(180deg, rgba(28,14,5,.30) 0%, rgba(28,14,5,.32) 40%, rgba(28,14,5,.72) 100%),
    linear-gradient(90deg, rgba(28,14,5,.70) 0%, rgba(28,14,5,.30) 55%, rgba(28,14,5,.10) 100%);
}
.ec-hero .tf-container { position: relative; z-index: 2; }
.ec-hero-inner { max-width: 760px; padding: 132px 0 116px; }
.ec-hero-eyebrow { color: var(--ec-sand); font-weight: 600; letter-spacing: .04em; font-size: .92rem; margin-bottom: 20px; }
.ec-hero-title {
  color: #fff; font-size: clamp(2.1rem, 4.4vw, 3.7rem); line-height: 1.08;
  margin-bottom: 22px; max-width: 16ch; overflow-wrap: anywhere; min-width: 0;
}
.ec-hero-lead { color: rgba(255,255,255,.92); font-size: 1.18rem; line-height: 1.6; max-width: 50ch; margin-bottom: 34px; }
.ec-hero-cta { display: flex; align-items: center; gap: 14px 28px; flex-wrap: wrap; }
.ec-hero-phone { margin: 0; color: rgba(255,255,255,.92); font-weight: 600; }
.ec-hero-phone a { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.ec-hero-phone a:hover { color: var(--ec-sand); }

/* ============================================================
   STAT BAND — animated proof counters on the dark ink band
   ============================================================ */
.ec-statband { background: var(--ec-ink); padding: 0 0 0; }
.ec-statband-grid {
  display: grid; grid-template-columns: repeat(4, minmax(0,1fr));
  border-top: 1px solid rgba(255,255,255,.10);
}
.ec-stat { padding: 40px 26px; text-align: center; border-right: 1px solid rgba(255,255,255,.10); }
.ec-stat:last-child { border-right: 0; }
.ec-stat-num { font-size: clamp(2.6rem, 4vw, 3.4rem); font-weight: 800; line-height: 1; color: #fff; }
.ec-stat-word { letter-spacing: -.01em; }
.ec-stat-label { margin: 12px 0 0; color: var(--ec-sand); font-size: .98rem; line-height: 1.4; }

/* ============================================================
   SPLIT (about) + shared media frame
   ============================================================ */
.ec-media { position: relative; border-radius: var(--ec-radius); overflow: hidden; box-shadow: var(--ec-shadow); }
.ec-media img { width: 100%; height: 440px; object-fit: cover; display: block; }
.ec-media-badge {
  position: absolute; left: 18px; bottom: 18px; z-index: 2;
  background: rgba(255,255,255,.94); color: var(--ec-ink); font-weight: 700;
  font-size: .85rem; padding: 9px 16px; border-radius: 999px; box-shadow: 0 6px 18px rgba(60,33,14,.18);
}
.ec-split-body { padding-left: 18px; }
.ec-split-body h2 { margin-bottom: 18px; }
.ec-split-body p { color: var(--ec-body); margin-bottom: 16px; }
.ec-split-body .tf-btn { margin-top: 8px; }

/* Benefits: give the photo our framed treatment + breathing room */
.ec-benefits .box-benefits { padding-right: 20px; }
.ec-benefits .ec-media img { height: 520px; }

/* ============================================================
   SERVICE CARDS — healingy .style-2 is a broken overlay here,
   so use the self-contained top-image card.
   ============================================================ */
.section-service .grid-layout-3 { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 26px; }
.section-service .service-item.style-2 {
  background: #fff; border-radius: 16px; overflow: hidden; height: auto !important;
  display: flex; flex-direction: column; box-shadow: 0 2px 14px rgba(60,33,14,.06);
  border: 1px solid var(--ec-line); transition: transform .4s var(--ec-ease), box-shadow .4s var(--ec-ease);
}
.section-service .service-item.style-2:hover { transform: translateY(-6px); box-shadow: var(--ec-shadow); }
.section-service .service-item.style-2 .image-wrap { position: relative; width: 100%; height: 200px; overflow: hidden; }
.section-service .service-item.style-2 .image-wrap img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s var(--ec-ease); }
.section-service .service-item.style-2:hover .image-wrap img { transform: scale(1.05); }
.section-service .service-item.style-2 .content { position: static; padding: 22px 24px 4px; }
.section-service .service-item.style-2 .content .title { margin-bottom: 10px; }
.section-service .service-item.style-2 .content .title a { color: var(--ec-ink); }
.section-service .service-item.style-2 .content .title a:hover { color: var(--ec-clay); }
.section-service .service-item.style-2 .content p { color: var(--ec-body); }
.section-service .service-item.style-2 .tf-btn-link { padding: 6px 24px 22px; margin-top: auto; color: var(--ec-ink); }
.section-service .service-item.style-2 .tf-btn-link:hover { color: var(--ec-clay); }

/* ============================================================
   INSURANCE band
   ============================================================ */
.ec-insurance { background: var(--ec-paper); }
.ec-ins-grid { display: grid; grid-template-columns: 1.3fr 1fr 1fr; gap: 24px; }
.ec-ins-card { background: #fff; border: 1px solid var(--ec-line); border-radius: 16px; padding: 30px 30px 34px; box-shadow: 0 2px 14px rgba(60,33,14,.05); }
.ec-ins-card:first-child { border-top: 4px solid var(--ec-clay); }
.ec-ins-name { color: var(--ec-ink); font-size: 1.45rem; margin-bottom: 10px; }
.ec-ins-sub { color: var(--ec-body); margin-bottom: 14px; }
.ec-ins-list { display: flex; flex-wrap: wrap; gap: 8px; }
.ec-ins-list li { background: var(--ec-paper); border: 1px solid var(--ec-line); color: var(--ec-ink); font-weight: 600; font-size: .92rem; padding: 7px 14px; border-radius: 999px; }
.ec-ins-note { text-align: center; margin-top: 30px; color: var(--ec-body); }
.ec-ins-note a { color: var(--ec-clay); font-weight: 700; }

/* ============================================================
   FOUNDER
   ============================================================ */
.ec-founder-media { position: relative; border-radius: var(--ec-radius); overflow: hidden; box-shadow: var(--ec-shadow); }
.ec-founder-media img { width: 100%; height: 540px; object-fit: cover; object-position: top center; display: block; }
.ec-founder-card {
  position: absolute; left: 16px; right: 16px; bottom: 16px; z-index: 2;
  background: rgba(255,255,255,.95); border-radius: 14px; padding: 16px 20px;
  display: flex; flex-direction: column; box-shadow: 0 8px 22px rgba(60,33,14,.18);
}
.ec-founder-name { color: var(--ec-ink); font-weight: 800; font-size: 1.15rem; }
.ec-founder-role { color: var(--ec-body); font-size: .9rem; margin-top: 2px; }
.ec-founder-body { padding-left: 28px; }
.ec-founder-body h2 { margin-bottom: 18px; }
.ec-founder-body p { color: var(--ec-body); margin-bottom: 16px; }
.ec-lang-row { display: flex; flex-wrap: wrap; gap: 8px; margin: 22px 0 26px; }
.ec-lang-row span { background: var(--ec-paper); border: 1px solid var(--ec-line); color: var(--ec-ink); font-weight: 600; font-size: .88rem; padding: 6px 13px; border-radius: 999px; }
.ec-founder-cta { display: flex; align-items: center; gap: 14px 26px; flex-wrap: wrap; }
.ec-founder-cta .tf-btn-link { color: var(--ec-ink); }
.ec-founder-cta .tf-btn-link:hover { color: var(--ec-clay); }

/* ============================================================
   LOCATIONS — banner + link grid
   ============================================================ */
.ec-locations-banner { position: relative; border-radius: var(--ec-radius); overflow: hidden; margin-bottom: 34px; box-shadow: var(--ec-shadow); }
.ec-locations-banner img { width: 100%; height: 360px; object-fit: cover; display: block; }
.ec-locations-banner::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(28,14,5,.82) 0%, rgba(28,14,5,.55) 50%, rgba(28,14,5,.18) 100%); }
.ec-locations-banner-text { position: absolute; inset: 0; z-index: 2; display: flex; flex-direction: column; justify-content: center; max-width: 620px; padding: 0 clamp(24px, 5vw, 56px); }
.ec-locations-banner-text h2 { color: #fff; margin-bottom: 12px; }
.ec-locations-banner-text p { color: rgba(255,255,255,.9); margin: 0; }
.ec-loc-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 20px; }
.ec-loc-card {
  position: relative; display: flex; flex-direction: column; gap: 6px;
  background: #fff; border: 1px solid var(--ec-line); border-radius: 14px; padding: 26px 26px 28px;
  box-shadow: 0 2px 12px rgba(60,33,14,.05); transition: transform .35s var(--ec-ease), box-shadow .35s var(--ec-ease), border-color .35s var(--ec-ease);
}
.ec-loc-card:hover { transform: translateY(-4px); box-shadow: var(--ec-shadow); border-color: rgba(199,41,41,.4); }
.ec-loc-pin { width: 42px; height: 42px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; background: var(--ec-paper); color: var(--ec-clay); margin-bottom: 8px; }
.ec-loc-name { color: var(--ec-ink); font-weight: 800; font-size: 1.2rem; }
.ec-loc-note { color: var(--ec-body); font-size: .96rem; line-height: 1.45; }
.ec-loc-arrow { color: var(--ec-clay); margin-top: 6px; transition: transform .35s var(--ec-ease); }
.ec-loc-card:hover .ec-loc-arrow { transform: translateX(5px); }

/* ============================================================
   TESTIMONIAL + results note
   ============================================================ */
.ec-testimonial { background: #fff; border: 1px solid var(--ec-line); border-radius: var(--ec-radius); padding: 36px 40px; box-shadow: var(--ec-shadow); max-width: 760px; }
.ec-testimonial .rating i { color: var(--ec-clay); }
.ec-results-note { text-align: center; color: var(--ec-body); font-size: .9rem; margin-top: 22px; font-style: italic; }

/* ============================================================
   FAQ accordion
   ============================================================ */
.ec-faq-head { padding-right: 30px; }
.ec-faq-head h2 { margin-bottom: 16px; }
.ec-faq-head .ec-lead { color: var(--ec-body); }
.ec-faq-head .ec-lead a { color: var(--ec-clay); font-weight: 700; }
.ec-accordion .tf-accordion-item { background: #fff; border: 1px solid var(--ec-line); border-radius: 14px; margin-bottom: 14px; overflow: hidden; }
.ec-accordion .accordion-header .title {
  display: flex; align-items: center; justify-content: space-between; gap: 18px;
  cursor: pointer; margin: 0; padding: 20px 24px; color: var(--ec-ink); font-weight: 700; transition: color .3s var(--ec-ease);
}
.ec-accordion .accordion-header .title:hover { color: var(--ec-clay); }
/* Reuse healingy's centered +/- icon; just recolor it to clay. */
.ec-accordion .accordion-header .title .icon { flex: 0 0 18px; }
.ec-accordion .icon::before,
.ec-accordion .icon::after { background-color: var(--ec-clay); }
.ec-accordion .tf-accordion-body { padding: 0 24px 22px; }
.ec-accordion .tf-accordion-body p { color: var(--ec-body); margin: 0; line-height: 1.6; }

/* Closing CTA crisis line */
.ec-crisis { margin-top: 22px; font-size: .92rem; color: var(--ec-body); max-width: 52ch; }
.ec-crisis a { color: var(--ec-clay); font-weight: 700; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 1199px) {
  .ec-hero-inner { padding: 104px 0 92px; }
}
@media (max-width: 991px) {
  .ec-hero-inner { padding: 84px 0 76px; max-width: 100%; }
  .ec-hero-title { font-size: clamp(2rem, 7vw, 2.8rem); }
  .ec-statband-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .ec-stat { border-bottom: 1px solid rgba(255,255,255,.10); }
  .ec-stat:nth-child(2) { border-right: 0; }
  .section-service .grid-layout-3 { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .ec-ins-grid { grid-template-columns: 1fr; }
  .ec-loc-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .ec-media { margin-top: 26px; }
  .ec-media img, .ec-benefits .ec-media img { height: 340px; }
  .ec-split-body, .ec-founder-body, .ec-faq-head, .ec-benefits .box-benefits { padding-left: 0; padding-right: 0; }
  .ec-founder-media { margin-bottom: 26px; }
  .ec-founder-media img { height: 460px; }
  .ec-locations-banner-text { max-width: 100%; }
}
@media (max-width: 575px) {
  .ec-hero-inner { padding: 64px 0 60px; }
  .ec-hero-cta { gap: 14px 18px; }
  .ec-statband-grid { grid-template-columns: 1fr 1fr; }
  .section-service .grid-layout-3 { grid-template-columns: 1fr; }
  .ec-loc-grid { grid-template-columns: 1fr; }
  .ec-locations-banner img { height: 300px; }
  .ec-locations-banner::after { background: linear-gradient(180deg, rgba(28,14,5,.45) 0%, rgba(28,14,5,.78) 100%); }
}

/* ============================================================
   REDUCED MOTION — collapse reveals + zoom to a short fade
   ============================================================ */
@media (prefers-reduced-motion: reduce) {
  .wow { animation: none !important; visibility: visible !important; }
  .ec-hero .page-video { display: none; }
  .ec-hero { background-image: url("/assets/img/hero-poster.jpg"); background-size: cover; background-position: center; }
  .section-service .service-item.style-2:hover { transform: none; }
  .section-service .service-item.style-2:hover .image-wrap img { transform: none; }
  .ec-loc-card:hover { transform: none; }
}

/* ===== Nav + header chrome (kept; not tied to the replaced sections) ===== */

/* Nav breathing room (items were touching) */
#header-main .navigation { gap: 26px; }
#header-main .navigation > li > a { padding: 6px 2px; }

/* Logo a little smaller */
#header-main .header-logo #logo_header { max-height: 38px; }

/* Header buffer so the logo + CTA aren't flush to the frame edge */
#header-main .header-inner-wrap { padding-left: 34px; padding-right: 34px; }

/* ============================================================
   ACCESSIBILITY TYPE SCALE
   healingy sets html{font-size:10px}, so rem-based text renders
   ~62% too small. Pin our text to explicit accessible PX sizes
   (body 16-17px, lead 19px, large H1) with line-height >= 1.5.
   ============================================================ */

/* Hero */
.ec-hero-title { font-size: clamp(34px, 5vw, 58px) !important; line-height: 1.1; }
.ec-hero-eyebrow { font-size: 14px !important; letter-spacing: .06em; }
.ec-hero-lead { font-size: 19px !important; line-height: 1.6; }
.ec-hero-phone { font-size: 17px !important; }
.ec-hero-cta .tf-btn span, .tf-btn span { font-size: 16px !important; }

/* Section eyebrows + leads + headings */
.ec-eyebrow { font-size: 13px !important; letter-spacing: .08em; }
.ec-lead, .ec-center .ec-lead { font-size: 18px !important; line-height: 1.6; }
.section-service h2, .ec-faq-head h2, .ec-insurance h2, .ec-locations h2,
.ec-split-body h2, .ec-founder-body h2 { font-size: clamp(30px, 3.6vw, 44px) !important; line-height: 1.15; }

/* Stat band */
.ec-stat-num { font-size: clamp(40px, 4.4vw, 52px) !important; }
.ec-stat-label { font-size: 15px !important; line-height: 1.45; }

/* Generic section body copy -> 17px */
.ec-split-body p, .ec-founder-body p, .ec-ins-sub, .ec-ins-note,
.ec-loc-note, .ec-faq-head .ec-lead, .tf-accordion-body p,
.ec-testimonial p, .ec-crisis,
.section-service .service-item.style-2 .content p,
.ec-benefits .box-benefits p { font-size: 17px !important; line-height: 1.6; }

/* Card / block titles */
.section-service .service-item.style-2 .content .title { font-size: 20px !important; line-height: 1.3; }
.ec-ins-name { font-size: 22px !important; line-height: 1.3; }
.ec-loc-name { font-size: 20px !important; line-height: 1.25; }
.ec-accordion .accordion-header .title { font-size: 19px !important; line-height: 1.4; }
.ec-founder-name { font-size: 20px !important; }
.ec-founder-role { font-size: 14px !important; }
.ec-media-badge { font-size: 14px !important; }
.ec-results-note { font-size: 15px !important; }

/* Benefits checklist */
.ec-benefits .list-check .title, .ec-benefits .list-check .title.h5 { font-size: 19px !important; line-height: 1.35; }

/* Pills / chips -> 14px */
.ec-ins-list li, .ec-lang-row span { font-size: 14px !important; line-height: 1.4; }

/* Chrome */
#header-main .navigation > li > a { font-size: 16px !important; }
.tf-top-bar, .tf-top-bar a { font-size: 14px !important; }

/* Catch healingy helper classes used inside our sections */
.main-content .description, .main-content .text-1 { font-size: 17px !important; line-height: 1.6; }
.main-content .text-2.sub, .main-content .sub { font-size: 13px !important; }

/* ============================================================
   QC FIX-LIST (2026-06-05) — HIPAA / a11y / restored content
   ============================================================ */

/* --- (10) Section eyebrows 13px -> 14px (incl. .sub-classed ones) --- */
.ec-eyebrow { font-size: 14px !important; }
.main-content .text-2.sub.ec-eyebrow,
.main-content .sub.ec-eyebrow { font-size: 14px !important; }

/* --- (7) Nav labels demoted from headings: preserve their visual style ---
   wg-title was an <h5>, service-item titles were <h6>. They are now <p>.
   Re-assert the look the theme gave the headings. */
#header-main .sub-menu .wg-title {
  font-size: 18px; font-weight: 700; color: var(--ec-ink); margin: 0 0 18px;
}
#header-main .sub-menu .service-item-list .service-item-title {
  font-size: 16px; font-weight: 700; line-height: 1.3; margin: 0 0 6px;
}
#header-main .sub-menu .service-item-list .service-item-title a { color: var(--ec-ink); }
#header-main .sub-menu .service-item-list .service-item-title a:hover { color: var(--ec-clay); }

/* --- (8) FAQ accordion header is now a <button>: strip native button chrome,
   keep the heading-like look + full-width clickable row --- */
.ec-accordion .accordion-header .title {
  width: 100%; background: transparent; border: 0; text-align: left;
  font-family: inherit; appearance: none; -webkit-appearance: none;
}
.ec-accordion .accordion-header .title .ec-acc-q { flex: 1 1 auto; }
.ec-accordion .accordion-header .title:focus-visible {
  outline: 2px solid var(--ec-clay); outline-offset: 2px;
}

/* --- (1) TREATMENT APPROACH section --- */
.ec-approach { background: var(--ec-paper); }
.ec-approach-body h2 { margin-bottom: 16px; }
.ec-approach-body p { color: var(--ec-body); margin-bottom: 16px; }
.ec-approach-card {
  background: #fff; border: 1px solid var(--ec-line); border-top: 4px solid var(--ec-clay);
  border-radius: 16px; padding: 30px 32px 32px; box-shadow: var(--ec-shadow);
}
.ec-approach-card-label {
  color: var(--ec-clay); font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
  font-size: 13px !important; margin-bottom: 16px;
}
.ec-approach-list { list-style: none; margin: 0; padding: 0; }
.ec-approach-list li {
  position: relative; color: var(--ec-ink); font-weight: 600; font-size: 17px;
  padding: 12px 0 12px 30px; border-bottom: 1px solid var(--ec-line);
}
.ec-approach-list li:last-child { border-bottom: 0; }
.ec-approach-list li::before {
  content: ""; position: absolute; left: 4px; top: 19px;
  width: 9px; height: 9px; border-radius: 50%; background: var(--ec-clay);
}
@media (max-width: 991px) {
  .ec-approach-card { margin-top: 26px; }
  .ec-approach-body { padding-left: 0; padding-right: 0; }
}

/* --- (2) CONDITIONS link grid (pill row) --- */
.ec-cond-grid {
  display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; margin-top: 8px;
}
.ec-cond-pill {
  display: inline-flex; align-items: center; gap: 10px;
  background: #fff; border: 1px solid var(--ec-line); border-radius: 999px;
  padding: 14px 24px; min-height: 48px; color: var(--ec-ink); font-weight: 700; font-size: 16px;
  box-shadow: 0 2px 12px rgba(60,33,14,.05);
  transition: transform .3s var(--ec-ease), box-shadow .3s var(--ec-ease), border-color .3s var(--ec-ease), color .3s var(--ec-ease);
}
.ec-cond-pill:hover {
  transform: translateY(-3px); box-shadow: var(--ec-shadow);
  border-color: rgba(199,41,41,.45); color: var(--ec-clay);
}
.ec-cond-pill i { color: var(--ec-clay); font-size: 14px; }

/* --- (4) AUTHOR BOX (YMYL E-E-A-T) --- */
.ec-authorbox { background: var(--ec-paper); }
.ec-authorbox-inner {
  display: flex; gap: 32px; align-items: flex-start;
  background: #fff; border: 1px solid var(--ec-line); border-radius: var(--ec-radius);
  padding: 36px 40px; box-shadow: var(--ec-shadow); max-width: 920px; margin: 0 auto;
}
.ec-authorbox-media { flex: 0 0 132px; }
.ec-authorbox-media img {
  width: 132px; height: 132px; object-fit: cover; border-radius: 50%; display: block;
}
.ec-authorbox-name { font-size: 24px !important; line-height: 1.2; margin: 4px 0 2px; color: var(--ec-ink); }
.ec-authorbox-role { color: var(--ec-clay); font-weight: 700; margin-bottom: 14px; font-size: 15px; }
.ec-authorbox-bio { color: var(--ec-body); font-size: 17px; line-height: 1.6; margin-bottom: 12px; }
.ec-authorbox-note { color: var(--ec-body); font-size: 15px; font-style: italic; margin: 0; }
@media (max-width: 575px) {
  .ec-authorbox-inner { flex-direction: column; padding: 28px 24px; gap: 20px; }
  .ec-authorbox-media { align-self: center; }
}

/* --- (6) FOOTER TEXT CONTRAST — ink-on-near-black was 1.06:1 (invisible).
   Force footer text to sand; hover links to white. --- */
#footer,
#footer.style-2 .footer-col-block .title-desktop,
#footer.style-2 .footer-col-block .title-mobile,
#footer .tf-collapse-content,
#footer .tf-collapse-content p,
#footer .footer-menu-list li,
#footer .footer-menu-list a { color: var(--ec-sand); }
#footer .footer-menu-list a:hover,
#footer .tf-collapse-content a:hover { color: #fff; }
#footer .footer-bottom p,
#footer .footer-bottom .content-right a { color: var(--ec-sand); }
#footer .footer-bottom .content-right a:hover { color: #fff; }
#footer .tf-collapse-content i { color: var(--ec-sand); }

/* --- (10) Tap targets >= 44px on mobile --- */
@media (max-width: 991px) {
  #footer .footer-menu-list a,
  #footer .tf-collapse-content a,
  #footer .footer-bottom .content-right a {
    display: inline-flex; align-items: center; min-height: 44px;
  }
  #footer .footer-menu-list li { padding: 2px 0; }
  #footer .tf-social a {
    width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center;
  }
}

/* Mega-menu: whole card is the link (clickable card, not just the title) */
#header-main .sub-menu .service-link .wrap-service a.service-item-list {
  display: block;
  text-decoration: none;
  color: inherit;
  cursor: pointer;
}
#header-main .sub-menu .service-link .wrap-service a.service-item-list .service-item-title { color: var(--ec-ink); }
#header-main .sub-menu .service-link .wrap-service a.service-item-list:hover .service-item-title { color: var(--ec-clay); }

/* Our Clinicians roster (homepage + about) */
.ec-clinician-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 40px; }
@media (max-width: 991px){ .ec-clinician-grid{ grid-template-columns: repeat(2,1fr); } }
@media (max-width: 575px){ .ec-clinician-grid{ grid-template-columns: 1fr; } }
.ec-clinician-card { border: 1px solid var(--Outline); border-radius: 16px; padding: 24px; background:#fff; transition: box-shadow .3s ease, transform .3s ease; }
.ec-clinician-card:hover { box-shadow: 0 12px 30px rgba(0,0,0,.08); transform: translateY(-2px); }
.ec-clinician-photo img { width: 96px; height: 96px; border-radius: 50%; object-fit: cover; margin-bottom: 16px; }
.ec-clinician-name { font-size: 20px; font-weight: 700; margin: 0 0 4px; color: var(--ec-ink); }
.ec-clinician-role { font-size: 14px; font-weight: 600; color: var(--ec-clay); margin: 0 0 12px; }
.ec-clinician-bio { font-size: 15px; line-height: 1.6; color: var(--Color-3); margin: 0 0 16px; }
.ec-clinician-mail { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; color: var(--ec-ink); text-decoration: none; border: 1px solid var(--Outline); border-radius: 999px; padding: 8px 16px; transition: all .3s ease; }
.ec-clinician-mail:hover { background: var(--ec-ink); color: #fff; }

/* Companies we work with (insurance pills) */
.ec-companies-grid { list-style: none; padding: 0; margin: 40px 0 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }
.ec-company { border: 1px solid var(--Outline); border-radius: 999px; padding: 10px 22px; font-weight: 600; color: var(--ec-ink); background: #fff; }
.ec-company-note { font-weight: 400; color: var(--Color-3); font-size: 0.85em; }

/* Modern nav: center-out clay underline (replaces the right-to-left bar) + clay hover text */
.main-menu .navigation > li > a { transition: color 0.25s var(--ec-ease); }
.main-menu .navigation > li:hover > a,
.main-menu .navigation > li.current-menu-item > a { color: var(--ec-clay); }
.main-menu .navigation > li > a::before {
  left: 50%;
  right: auto;
  transform: translateX(-50%);
  width: 0;
  height: 2px;
  border-radius: 2px;
  background-color: var(--ec-clay);
  transition: width 0.32s var(--ec-ease);
}
.main-menu .navigation > li.current-menu-item > a::before,
.main-menu .navigation > li:hover > a::before {
  width: 64%;
  left: 50%;
}

/* Softer typography: warm humanist body (Mulish) + soft serif headings (Fraunces), lighter weights */
body { font-family: "Mulish", sans-serif; -webkit-font-smoothing: antialiased; }
h1, h2, h3, h4, h5, h6,
.ec-hero-title, .ec-faq-title, .ec-authorbox-name, .ec-clinician-name, .ec-founder-name, .ec-loc-name, .wg-title {
  font-family: "Fraunces", Georgia, serif;
  font-weight: 600;
  letter-spacing: -0.005em;
  line-height: 1.18;
}
/* lighten the heaviest weights so nothing feels blocky */
.ec-stat-num { font-family: "Mulish", sans-serif; font-weight: 700; }
.ec-hero-title { font-weight: 600; }
/* a touch more breathing room in body copy */
p, .ec-clinician-bio, .description, .text-2 { letter-spacing: 0; }

/* Nudge the nav underline down 3px */
.main-menu .navigation > li > a::before { top: 65px; }

/* ---- Nav dropdown caret: smaller + tight to the label ----
   Theme styles.css absolutely-offsets it (right:-25px, 21px), which reads
   oversized and far from the word. Flow it inline right after the text with
   a ~4px gap instead. Overrides the base + tablet media-query rules. */
#header-main .main-menu .navigation > li.has-child > a::after {
  position: static !important;
  right: auto !important;
  margin-left: 4px !important;
  font-size: 13px !important;
  line-height: 1;
  vertical-align: middle;
}

/* Nav caret: animated chevron taken out of the link width so the underline re-centers under the word, with even spacing */
.main-menu .navigation > li.has-child { padding-right: 14px; }
.main-menu .navigation > li.has-child > a { padding-right: 0; }
.main-menu .navigation > li.has-child > a::after {
  left: 100%;
  right: auto;
  margin-left: 6px;
  top: 50%;
  margin-top: -7px;
  font-size: 12px;
  line-height: 1;
  transition: transform .3s var(--ec-ease), color .3s var(--ec-ease);
  transform-origin: center;
}
.main-menu .navigation > li.has-child:hover > a::after { transform: rotate(180deg); color: var(--ec-clay); }
