/* ==========================================================================
   Taravella — theme stylesheet

   1. The approved static build, ported rule for rule (generated section).
   2. The theme layer: WordPress-only pieces (editor-driven section
      modifiers, Gravity Forms, prose, accessibility helpers) that have no
      counterpart in the static build.
   ========================================================================== */

/* ==========================================================================
   Ported from the approved static build — generated, do not edit by hand.
   Rules shared by every page that can use them are global; rules that differ
   between pages are scoped with :where(.tv-style-<page>), which adds no
   specificity, so each page cascades exactly as its static original.
   ========================================================================== */
:root { --navy: #3d5a6b; --navy-mid: #4a6878; --navy-light: #587585; --blue: #7aaec2; --blue-light: #9dc4d4; --blue-pale: #e8f3f7; --smoke: #f5f3f0; --smoke-2: #ede9e3; --white: #ffffff; --ink: #2a3d48; --body: #4e6470; --muted: #849aa4; --border: #d8e4e9; --ff: 'Barlow', system-ui, sans-serif; }
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { font-family: var(--ff); background: var(--white); color: var(--ink); overflow-x: hidden; line-height: 1; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font-family: var(--ff); cursor: pointer; }
:where(.tv-style-home) .eyebrow { display: inline-flex; align-items: center; gap: 10px; font-size: 11px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var(--blue); }
:where(.tv-style-home) .eyebrow::before { content: ''; display: block; width: 28px; height: 2px; background: var(--blue); flex-shrink: 0; }
.section-title { font-size: clamp(28px, 4vw, 42px); font-weight: 700; line-height: 1.15; color: var(--navy); letter-spacing: -.01em; }
.body-text { font-size: 16px; font-weight: 400; line-height: 1.75; color: var(--body); }
:where(.tv-style-home) .cta-primary { display: inline-flex; align-items: center; gap: 10px; background: var(--blue); color: var(--white); font-size: 13px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; padding: 16px 32px; transition: background .2s, transform .15s; border: none; white-space: nowrap; }
:where(.tv-style-home) .cta-primary:hover { background: var(--blue-light); transform: translateY(-1px); }
:where(.tv-style-home) .cta-primary svg { flex-shrink: 0; }
.cta-secondary { display: inline-flex; align-items: center; gap: 8px; background: transparent; color: var(--navy); font-size: 13px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; padding: 16px 32px; border: 1.5px solid var(--navy); transition: background .2s, color .2s; }
.cta-secondary:hover { background: var(--navy); color: var(--white); }
:where(.tv-style-service, .tv-style-service-detailed, .tv-style-about, .tv-style-approach, .tv-style-services, .tv-style-testimonials, .tv-style-media, .tv-style-contact) .eyebrow { display: inline-flex; align-items: center; gap: 10px; font-size: 11px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var(--navy); }
:where(.tv-style-service, .tv-style-service-detailed, .tv-style-about, .tv-style-approach, .tv-style-services, .tv-style-testimonials, .tv-style-media, .tv-style-contact) .eyebrow::before { content: ''; display: block; width: 28px; height: 2px; background: var(--navy); flex-shrink: 0; }
:where(.tv-style-service, .tv-style-service-detailed, .tv-style-about, .tv-style-approach, .tv-style-services, .tv-style-testimonials, .tv-style-media) .cta-primary { display: inline-flex; align-items: center; gap: 10px; background: var(--navy); color: var(--white); font-size: 13px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; padding: 16px 32px; border: none; transition: background .2s, transform .15s; white-space: nowrap; }
:where(.tv-style-service, .tv-style-service-detailed, .tv-style-about, .tv-style-approach, .tv-style-services, .tv-style-testimonials, .tv-style-media) .cta-primary:hover { background: var(--navy-light); transform: translateY(-1px); }
.cta-ghost { display: inline-flex; align-items: center; gap: 8px; background: transparent; color: var(--navy); font-size: 13px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; padding: 14px 28px; border: 1.5px solid var(--navy); transition: background .2s, color .2s; }
.cta-ghost:hover { background: var(--navy); color: var(--white); }
.rule { height: 1px; background: var(--border); }
#nav { position: fixed; top: 0; left: 0; right: 0; z-index: 300; height: 72px; background: var(--white); display: flex; align-items: center; padding: 0 5%; border-bottom: 1px solid var(--border); transition: box-shadow .3s; }
#nav.elevated { box-shadow: 0 4px 24px rgba(61,90,107,.1); }
:where(.tv-style-home) .nav-logo { flex-shrink: 0; }
.nav-logo img { height: 36px; width: auto; }
.nav-spacer { flex: 1; }
.nav-links { display: flex; align-items: center; gap: 32px; list-style: none; }
.nav-links a { font-size: 12.5px; font-weight: 500; letter-spacing: .09em; text-transform: uppercase; color: var(--muted); transition: color .2s; }
:where(.tv-style-home, .tv-style-service, .tv-style-service-detailed, .tv-style-approach, .tv-style-services, .tv-style-testimonials, .tv-style-media, .tv-style-contact) .nav-links a:hover { color: var(--navy); }
:where(.tv-style-service, .tv-style-service-detailed, .tv-style-approach, .tv-style-services, .tv-style-testimonials, .tv-style-media, .tv-style-contact) .nav-links a.active { color: var(--navy); border-bottom: 2px solid var(--navy); padding-bottom: 2px; }
:where(.tv-style-about) .nav-links a:hover, :where(.tv-style-about) .nav-links a.active { color: var(--navy); }
:where(.tv-style-about) .nav-links a.active { border-bottom: 2px solid var(--navy); padding-bottom: 2px; }
.nav-cta { margin-left: 24px; font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--white); background: var(--navy); padding: 10px 22px; border: none; transition: background .2s; }
.nav-cta:hover { background: var(--navy-light); }
.ham { display: none; flex-direction: column; gap: 5px; background: none; border: none; padding: 4px; margin-left: 16px; }
.ham span { display: block; width: 22px; height: 1.5px; background: var(--navy); transition: .25s; }
.mob-menu { display: none; position: fixed; top: 72px; left: 0; right: 0; z-index: 299; background: var(--white); border-top: 1px solid var(--border); flex-direction: column; padding: 8px 0 16px; }
.mob-menu.open { display: flex; }
.mob-menu a { font-size: 13px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); padding: 14px 5%; border-bottom: 1px solid var(--border); transition: color .2s; }
.mob-menu a:hover { color: var(--navy); }
.mob-overlay { position: fixed; inset: 0; z-index: 298; background: rgba(26,38,45,.55); -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px); opacity: 0; visibility: hidden; transition: opacity .28s ease, visibility .28s ease; }
.mob-overlay.open { opacity: 1; visibility: visible; }
body.mob-open { overflow: hidden; }
.mob-menu .mob-book { margin: 16px 5% 0; background: var(--navy); color: var(--white) !important; text-align: center; padding: 14px !important; border: none; }
.tv-hero { min-height: 100vh; padding-top: 72px; display: grid; grid-template-columns: 1fr 1fr; position: relative; overflow: hidden; }
.hero-photo-col { position: relative; background: var(--smoke-2); overflow: hidden; }
.hero-photo-col img { width: 100%; height: 100%; object-fit: cover; object-position: center top; opacity: 1; }
.hero-photo-col::after { content: ''; position: absolute; inset: 0; background: linear-gradient(to top, rgba(61,90,107,.45) 0%, transparent 45%); }
.hero-badge { position: absolute; bottom: 40px; left: 40px; z-index: 2; background: rgba(255,255,255,.88); backdrop-filter: blur(12px); border: 1px solid rgba(255,255,255,.9); padding: 20px 24px; max-width: 340px; }
.hero-badge-name { font-size: 18px; font-weight: 700; color: var(--ink); line-height: 1.2; }
.hero-badge-title { font-size: 12px; font-weight: 400; color: var(--navy); margin-top: 4px; letter-spacing: .04em; }
.hero-badge-licenses { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--border); display: flex; gap: 24px; }
.hero-badge-lic { font-size: 11px; font-weight: 500; letter-spacing: .08em; color: var(--muted); text-transform: uppercase; line-height: 1.5; }
.hero-badge-lic strong { display: block; color: var(--ink); font-weight: 700; }
.hero-panel { background: var(--smoke); display: flex; flex-direction: column; justify-content: center; padding: 60px 48px 60px 48px; border-left: 1px solid var(--border); }
.hero-panel .eyebrow { color: var(--navy); }
.hero-panel .eyebrow::before { background: var(--navy); }
.eyebrow-stacked { align-items: flex-start; line-height: 1.5; }
.eyebrow-stacked span { display: block; line-height: 1.5; }
.eyebrow-stacked::before { margin-top: calc(.75em - 1px); }
.hero-panel h1 { font-size: clamp(30px, 3.5vw, 44px); font-weight: 700; line-height: 1.15; color: var(--ink); margin-top: 18px; letter-spacing: -.01em; }
.hero-panel h1 span { color: var(--navy); }
.hero-panel .hero-sub { font-size: 15px; font-weight: 400; line-height: 1.75; color: var(--body); margin-top: 20px; }
.hero-panel .hero-actions { display: flex; flex-direction: row; align-items: center; gap: 14px; margin-top: 36px; flex-wrap: wrap; }
.hero-panel .hero-actions .cta-primary, .hero-panel .hero-actions .cta-secondary { max-width: 240px; width: 100%; justify-content: center; }
.hero-trust { margin-top: 36px; padding-top: 28px; border-top: 1px solid var(--border); display: flex; flex-direction: column; gap: 14px; }
.hero-trust-item { display: flex; align-items: center; gap: 12px; font-size: 13px; font-weight: 400; color: var(--body); }
.hero-trust-item svg { color: var(--navy); flex-shrink: 0; }
.hero-trust-item strong { font-weight: 600; color: var(--ink); }
.stats-bar { background: var(--smoke-2); display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.stats-bar-item { padding: 28px 24px; border-right: 1px solid var(--border); text-align: center; }
.stats-bar-item:last-child { border-right: none; }
.stats-bar-num { font-size: 32px; font-weight: 700; color: var(--navy); line-height: 1; }
.stats-bar-label { font-size: 11px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); margin-top: 6px; line-height: 1.4; }
.tv-about { background: var(--white); padding: 100px 5%; }
.about-grid { max-width: 1180px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: start; }
:where(.tv-style-home) .about-photo-wrap { position: relative; }
:where(.tv-style-service) .page-hero { margin-top: 72px; background: var(--smoke); border-bottom: 1px solid var(--border); padding: 72px 5%; display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; min-height: 340px; }
:where(.tv-style-service-detailed) .page-hero { margin-top: 72px; background: var(--smoke); border-bottom: 1px solid var(--border); padding: 72px 5%; display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; min-height: 360px; }
:where(.tv-style-about) .page-hero { margin-top: 72px; background: var(--smoke); border-bottom: 1px solid var(--border); padding: 64px 5%; display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; min-height: 380px; position: relative; overflow: hidden; }
:where(.tv-style-about) .page-hero::after { content: 'About'; position: absolute; right: 4%; bottom: -20px; font-size: 160px; font-weight: 700; letter-spacing: -.04em; color: var(--border); opacity: .5; pointer-events: none; user-select: none; line-height: 1; }
:where(.tv-style-about) .page-hero-text {  }
:where(.tv-style-about) .page-hero-text .eyebrow { margin-bottom: 16px; }
:where(.tv-style-about) .page-hero-text h1 { font-size: clamp(32px, 5vw, 54px); font-weight: 700; line-height: 1.1; color: var(--ink); letter-spacing: -.02em; }
:where(.tv-style-about) .page-hero-text .tagline { font-size: 17px; font-weight: 400; color: var(--muted); margin-top: 14px; letter-spacing: .04em; }
.page-hero-badges { display: flex; flex-direction: column; gap: 14px; }
.phb { display: flex; align-items: center; gap: 14px; padding: 16px 20px; background: var(--white); border: 1px solid var(--border); }
.phb-icon { width: 40px; height: 40px; flex-shrink: 0; background: var(--blue-pale); display: flex; align-items: center; justify-content: center; color: var(--navy); }
.phb-text { font-size: 13.5px; color: var(--body); line-height: 1.45; }
.phb-text strong { display: block; font-size: 12px; font-weight: 700; color: var(--ink); margin-bottom: 1px; }
:where(.tv-style-approach) .page-hero { margin-top: 72px; display: grid; grid-template-columns: 1fr 1fr; min-height: 420px; position: relative; overflow: hidden; }
.page-hero-photo { position: relative; overflow: hidden; background: var(--smoke-2); }
.page-hero-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center 20%; opacity: .92; }
.page-hero-photo::after { content: ''; position: absolute; inset: 0; background: linear-gradient(to right, transparent 60%, var(--smoke) 100%); }
:where(.tv-style-approach) .page-hero-text { background: var(--smoke); display: flex; flex-direction: column; justify-content: center; padding: 64px 5% 64px 52px; position: relative; }
:where(.tv-style-services) .page-hero { margin-top: 72px; background: var(--smoke); border-bottom: 1px solid var(--border); padding: 72px 5%; }
:where(.tv-style-services) .page-hero-inner { max-width: 1180px; margin: 0 auto; }
:where(.tv-style-services) .page-hero-inner .eyebrow { margin-bottom: 18px; }
:where(.tv-style-services) .page-hero-inner h1 { font-size: clamp(32px, 4.5vw, 52px); font-weight: 700; line-height: 1.1; color: var(--ink); letter-spacing: -.02em; max-width: 640px; }
:where(.tv-style-services) .page-hero-inner p { font-size: 17px; font-weight: 400; color: var(--muted); margin-top: 14px; max-width: 560px; line-height: 1.65; }
:where(.tv-style-testimonials) .page-hero { margin-top: 72px; background: var(--smoke); border-bottom: 1px solid var(--border); padding: 72px 5%; display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
:where(.tv-style-service, .tv-style-service-detailed, .tv-style-approach, .tv-style-testimonials) .page-hero-text .eyebrow { margin-bottom: 18px; }
:where(.tv-style-service, .tv-style-service-detailed, .tv-style-testimonials) .page-hero-text h1 { font-size: clamp(32px, 4.5vw, 52px); font-weight: 700; line-height: 1.1; color: var(--ink); letter-spacing: -.02em; }
:where(.tv-style-service, .tv-style-testimonials) .page-hero-text .tagline { font-size: 17px; font-weight: 400; font-style: italic; color: var(--muted); margin-top: 12px; }
.hero-themes { display: flex; flex-direction: column; gap: 14px; }
.ht { display: flex; align-items: center; gap: 16px; background: var(--white); border: 1px solid var(--border); padding: 18px 22px; }
.ht-icon { color: var(--navy); flex-shrink: 0; }
.ht-label { font-size: 14px; font-weight: 600; color: var(--ink); line-height: 1.2; }
.ht-sub { font-size: 12px; color: var(--muted); margin-top: 3px; }
:where(.tv-style-service-detailed) .page-hero-text .tagline { font-size: 17px; font-weight: 400; font-style: italic; color: var(--muted); margin-top: 12px; letter-spacing: .04em; }
.service-pills { display: flex; flex-wrap: wrap; gap: 10px; }
.sp { display: flex; align-items: center; gap: 10px; background: var(--white); border: 1px solid var(--border); padding: 14px 20px; }
.sp-icon { color: var(--navy); flex-shrink: 0; }
.sp-label { font-size: 13px; font-weight: 600; color: var(--ink); line-height: 1.2; }
.sp-sub { font-size: 11px; color: var(--muted); margin-top: 2px; }
:where(.tv-style-approach) .page-hero-text h1 { font-size: clamp(30px, 4vw, 50px); font-weight: 700; line-height: 1.1; color: var(--ink); letter-spacing: -.02em; }
:where(.tv-style-approach) .page-hero-text .tagline { font-size: 17px; font-weight: 400; color: var(--muted); margin-top: 12px; letter-spacing: .04em; font-style: italic; }
.page-hero-text .hero-intro { font-size: 15px; line-height: 1.75; color: var(--body); margin-top: 20px; max-width: 480px; }
.hero-mission { background: var(--navy); padding: 36px 32px; color: var(--white); }
.hero-mission p { font-size: 16px; font-weight: 300; font-style: italic; line-height: 1.75; color: rgba(255,255,255,.85); }
.hero-mission-rule { width: 36px; height: 2px; background: var(--blue-light); margin-top: 24px; }
:where(.tv-style-media) .page-hero { margin-top: 72px; background: var(--navy); padding: 80px 5%; position: relative; overflow: hidden; min-height: 340px; display: flex; align-items: center; }
:where(.tv-style-contact) .page-hero { margin-top: 72px; background: var(--navy); padding: 72px 5%; position: relative; overflow: hidden; }
:where(.tv-style-media, .tv-style-contact) .page-hero::before { content: ''; position: absolute; inset: 0; background-image: linear-gradient(rgba(255,255,255,.03) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.03) 1px, transparent 1px); background-size: 48px 48px; }
:where(.tv-style-media) .page-hero-inner { max-width: 1180px; margin: 0 auto; width: 100%; display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; position: relative; z-index: 1; }
:where(.tv-style-contact) .page-hero-inner { max-width: 1180px; margin: 0 auto; position: relative; z-index: 1; display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
:where(.tv-style-media, .tv-style-contact) .page-hero-text .eyebrow { color: var(--blue-light); margin-bottom: 18px; }
:where(.tv-style-media, .tv-style-contact) .page-hero-text .eyebrow::before { background: var(--blue-light); }
:where(.tv-style-media) .page-hero-text h1 { font-size: clamp(30px, 4vw, 52px); font-weight: 700; line-height: 1.1; color: var(--white); letter-spacing: -.02em; }
:where(.tv-style-media) .page-hero-text .tagline { font-size: 16px; font-weight: 400; font-style: italic; color: rgba(255,255,255,.55); margin-top: 12px; }
.network-strip { display: flex; flex-direction: column; gap: 12px; }
.network-strip-label { font-size: 10px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: rgba(255,255,255,.3); margin-bottom: 4px; }
.network-row { display: flex; flex-wrap: wrap; gap: 10px; }
.network-badge { font-size: 12px; font-weight: 600; letter-spacing: .06em; color: rgba(255,255,255,.75); background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.12); padding: 8px 16px; transition: background .2s; }
.network-badge:hover { background: rgba(255,255,255,.12); }
:where(.tv-style-contact) .page-hero-text h1 { font-size: clamp(32px, 4vw, 50px); font-weight: 700; line-height: 1.1; color: var(--white); letter-spacing: -.02em; }
:where(.tv-style-contact) .page-hero-text p { font-size: 16px; font-weight: 400; color: rgba(255,255,255,.55); margin-top: 14px; line-height: 1.7; }
.hero-contact-info { display: flex; flex-direction: column; gap: 16px; }
.hci { display: flex; align-items: flex-start; gap: 14px; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.1); padding: 18px 20px; }
.hci-icon { width: 36px; height: 36px; flex-shrink: 0; background: rgba(122,174,194,.2); display: flex; align-items: center; justify-content: center; color: var(--blue-light); }
.hci-body { font-size: 13.5px; color: rgba(255,255,255,.6); line-height: 1.5; }
.hci-body strong { display: block; font-size: 10.5px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: rgba(255,255,255,.75); margin-bottom: 3px; }
.hci-body a { color: rgba(255,255,255,.75); transition: color .2s; }
.hci-body a:hover { color: var(--white); }
.breadcrumb { background: var(--white); border-bottom: 1px solid var(--border); padding: 12px 5%; }
:where(.tv-style-service, .tv-style-service-detailed, .tv-style-approach, .tv-style-services, .tv-style-testimonials, .tv-style-media, .tv-style-contact) .breadcrumb-inner { max-width: 1180px; margin: 0 auto; display: flex; align-items: center; gap: 8px; font-size: 12px; color: var(--muted); }
:where(.tv-style-about) .breadcrumb-inner { max-width: 1180px; margin: 0 auto; display: flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 400; color: var(--muted); }
.breadcrumb-inner a { color: var(--muted); transition: color .2s; }
.breadcrumb-inner a:hover { color: var(--navy); }
.breadcrumb-inner svg { color: var(--border); flex-shrink: 0; }
.breadcrumb-inner span { color: var(--navy); font-weight: 500; }
.main-wrap { max-width: 1180px; margin: 0 auto; padding: 88px 5%; display: grid; grid-template-columns: 1fr 340px; gap: 80px; align-items: start; }
:where(.tv-style-service-detailed) .content-section { margin-bottom: 60px; }
.about-wrap { max-width: 1180px; margin: 0 auto; padding: 80px 5%; display: grid; grid-template-columns: 360px 1fr; gap: 80px; align-items: start; }
.about-sidebar { position: sticky; top: 92px; }
:where(.tv-style-about) .about-photo-wrap { position: relative; margin-bottom: 28px; }
.about-photo-frame { position: relative; overflow: hidden; }
:where(.tv-style-home) .about-photo-frame img { width: 100%; height: 580px; object-fit: cover; object-position: center top; }
:where(.tv-style-home) .about-photo-accent { position: absolute; bottom: -20px; left: -20px; width: 120px; height: 120px; background: var(--navy); z-index: -1; }
.about-plate { position: absolute; bottom: 28px; right: -1px; background: var(--navy); color: var(--white); padding: 16px 20px; }
.about-plate-title { font-size: 11px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: rgba(255,255,255,.65); }
.about-plate-name { font-size: 16px; font-weight: 700; margin-top: 4px; line-height: 1.2; }
.about-plate-lic { font-size: 10.5px; font-weight: 400; color: rgba(255,255,255,.6); margin-top: 6px; letter-spacing: .06em; }
.about-text {  }
.about-text .eyebrow { margin-bottom: 16px; }
.about-text .section-title { margin-bottom: 28px; }
.about-text p { font-size: 15.5px; line-height: 1.8; color: var(--body); margin-bottom: 18px; }
.about-text p:last-of-type { margin-bottom: 0; }
.about-credentials { margin-top: 36px; padding: 28px; background: var(--smoke); border-left: 4px solid var(--blue); }
.about-cred-list { list-style: none; display: flex; flex-direction: column; gap: 12px; margin-top: 12px; }
.about-cred-list li { display: flex; align-items: flex-start; gap: 10px; font-size: 14px; font-weight: 400; color: var(--body); line-height: 1.5; }
.about-cred-list li svg { color: var(--blue); flex-shrink: 0; margin-top: 2px; }
.about-cta { margin-top: 36px; display: flex; gap: 16px; flex-wrap: wrap; align-items: center; }
.tv-approach { background: var(--smoke); padding: 100px 5%; }
.approach-inner { max-width: 1180px; margin: 0 auto; }
.approach-header { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: end; margin-bottom: 60px; padding-bottom: 40px; border-bottom: 1px solid var(--border); }
.approach-header-right p { font-size: 15px; line-height: 1.75; color: var(--body); }
.approach-cards { display: grid; grid-template-columns: repeat(2, 1fr); gap: 2px; background: var(--border); }
.ac { background: var(--white); padding: 44px 40px; position: relative; transition: box-shadow .25s; }
.ac:hover { box-shadow: 0 8px 32px rgba(61,90,107,.1); z-index: 1; }
.ac-num { font-size: 11px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--blue); margin-bottom: 20px; }
.ac-icon { color: var(--navy); margin-bottom: 20px; }
.ac h3 { font-size: 20px; font-weight: 700; color: var(--navy); margin-bottom: 14px; line-height: 1.25; }
.ac p { font-size: 14.5px; line-height: 1.75; color: var(--body); }
.ac::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: var(--blue); transform: scaleX(0); transform-origin: left; transition: transform .3s ease; }
.ac:hover::before { transform: scaleX(1); }
.tv-services { background: var(--smoke-2); padding: 100px 5%; }
.services-inner { max-width: 1180px; margin: 0 auto; }
.services-header { display: grid; grid-template-columns: 1fr auto; gap: 40px; align-items: end; margin-bottom: 52px; }
.services-header .section-title { color: var(--ink); }
.services-header p { font-size: 14.5px; color: var(--muted); line-height: 1.6; max-width: 280px; text-align: right; }
.services-list { display: flex; flex-direction: column; }
.svc-row { display: grid; grid-template-columns: 56px 1fr auto; gap: 32px; align-items: center; padding: 28px 0; border-bottom: 1px solid var(--border); transition: background .2s; cursor: default; }
.svc-row:first-child { border-top: 1px solid var(--border); }
.svc-row:hover { padding-left: 12px; padding-right: 12px; margin-left: -12px; margin-right: -12px; background: rgba(122,174,194,.08); }
.svc-icon-wrap { width: 48px; height: 48px; flex-shrink: 0; background: var(--blue-pale); display: flex; align-items: center; justify-content: center; color: var(--navy); }
.svc-body {  }
.svc-name { font-size: 17px; font-weight: 600; color: var(--ink); margin-bottom: 4px; }
.svc-desc { font-size: 13.5px; font-weight: 400; color: var(--body); line-height: 1.6; }
.svc-tag { font-size: 10.5px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--navy); white-space: nowrap; border: 1px solid var(--border); padding: 5px 10px; flex-shrink: 0; }
.tv-trust { background: var(--smoke); padding: 80px 5%; }
.trust-inner { max-width: 1180px; margin: 0 auto; }
.trust-inner .eyebrow { margin-bottom: 12px; }
.trust-grid { margin-top: 48px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.trust-card { background: var(--white); padding: 32px 28px; border: 1px solid var(--border); position: relative; }
.trust-card-icon { color: var(--blue); margin-bottom: 18px; }
.trust-card h4 { font-size: 15px; font-weight: 700; color: var(--navy); margin-bottom: 8px; line-height: 1.3; }
.trust-card p { font-size: 13.5px; line-height: 1.65; color: var(--body); }
.tv-testimonials { background: var(--white); padding: 100px 5%; }
.test-inner { max-width: 1180px; margin: 0 auto; }
.test-header { display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: 48px; padding-bottom: 32px; border-bottom: 1px solid var(--border); gap: 20px; flex-wrap: wrap; }
.test-header .section-title {  }
.test-meta { font-size: 13.5px; color: var(--muted); text-align: right; line-height: 1.6; }
:where(.tv-style-home) .test-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.test-card { background: var(--smoke); padding: 36px 32px; border-top: 3px solid var(--blue); position: relative; }
.test-stars { display: flex; gap: 3px; color: var(--blue); margin-bottom: 18px; }
.test-body { font-size: 15px; font-style: italic; font-weight: 300; line-height: 1.8; color: var(--ink); margin-bottom: 24px; }
.test-author { font-size: 13px; font-weight: 700; color: var(--navy); }
.test-role { font-size: 12px; font-weight: 400; color: var(--muted); margin-top: 3px; }
.tv-contact { background: var(--smoke-2); }
.contact-top { background: var(--smoke); padding: 64px 5%; border-bottom: 1px solid var(--border); }
.contact-top-inner { max-width: 1180px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
.contact-top .eyebrow { color: var(--navy); }
.contact-top .eyebrow::before { background: var(--navy); }
.contact-top h2 { font-size: clamp(26px, 3vw, 38px); font-weight: 700; color: var(--ink); line-height: 1.2; margin-top: 14px; }
.contact-top p { font-size: 15px; font-weight: 400; line-height: 1.75; color: var(--body); margin-top: 14px; }
:where(.tv-style-home) .contact-details { margin-top: 32px; display: flex; flex-direction: column; gap: 20px; }
:where(.tv-style-home) .cd { display: flex; align-items: flex-start; gap: 14px; }
:where(.tv-style-home) .cd-icon { width: 40px; height: 40px; flex-shrink: 0; background: var(--blue-pale); display: flex; align-items: center; justify-content: center; color: var(--navy); }
:where(.tv-style-home) .cd-body { font-size: 13.5px; color: var(--body); line-height: 1.55; }
:where(.tv-style-home) .cd-body strong { display: block; font-size: 11px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--ink); margin-bottom: 3px; }
.contact-tele { background: var(--blue-pale); border: 1px solid var(--border); padding: 20px 22px; display: flex; align-items: center; gap: 14px; margin-top: 28px; }
.contact-tele svg { color: var(--navy); flex-shrink: 0; }
.contact-tele p { font-size: 13px; color: var(--body); line-height: 1.6; }
.contact-tele strong { color: var(--ink); }
:where(.tv-style-home) .contact-form-wrap { max-width: 1180px; margin: 0 auto; padding: 60px 5% 80px; display: grid; grid-template-columns: 1fr 1fr; gap: 80px; }
.form-aside {  }
.form-aside h3 { font-size: 22px; font-weight: 700; color: var(--navy); margin-bottom: 14px; }
.form-aside p { font-size: 14.5px; line-height: 1.75; color: var(--body); }
.form-areas { margin-top: 28px; display: flex; flex-direction: column; gap: 10px; }
.fa-item { display: flex; align-items: center; gap: 10px; font-size: 14px; font-weight: 400; color: var(--body); }
.fa-dot { width: 7px; height: 7px; background: var(--blue); flex-shrink: 0; }
.form-guarantee { margin-top: 32px; padding: 20px; background: var(--blue-pale); border-left: 3px solid var(--blue); font-size: 13.5px; line-height: 1.7; color: var(--body); }
.form-guarantee strong { color: var(--navy); }
:where(.tv-style-about) .about-photo-frame img { width: 100%; height: 460px; object-fit: cover; object-position: center top; }
:where(.tv-style-about) .about-photo-accent { position: absolute; bottom: -14px; left: -14px; width: 90px; height: 90px; background: var(--navy); z-index: -1; }
.about-photo-plate { position: absolute; bottom: 0; right: 0; background: var(--navy); color: var(--white); padding: 14px 18px; }
.app-title { font-size: 10px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,.6); }
.app-name { font-size: 15px; font-weight: 700; margin-top: 3px; line-height: 1.2; }
.app-lic { font-size: 10px; font-weight: 400; color: rgba(255,255,255,.55); margin-top: 5px; letter-spacing: .05em; }
.sidebar-card { background: var(--smoke); border: 1px solid var(--border); padding: 24px; }
.sidebar-card h4 { font-size: 11px; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; color: var(--muted); margin-bottom: 16px; }
.sidebar-card-row { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 14px; padding-bottom: 14px; border-bottom: 1px solid var(--border); }
.sidebar-card-row:last-child { margin-bottom: 0; padding-bottom: 0; border-bottom: none; }
.sidebar-card-row svg { color: var(--navy); flex-shrink: 0; margin-top: 1px; }
.sidebar-card-row-text { font-size: 13px; color: var(--body); line-height: 1.5; }
.sidebar-card-row-text strong { display: block; font-size: 11px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--ink); margin-bottom: 2px; }
.sidebar-cta { margin-top: 20px; width: 100%; justify-content: center; }
.about-content {  }
:where(.tv-style-service, .tv-style-about) .content-section { margin-bottom: 56px; }
.content-section:last-child { margin-bottom: 0; }
.content-section .eyebrow { margin-bottom: 14px; }
:where(.tv-style-service, .tv-style-service-detailed) .content-section h2 { font-size: clamp(22px, 2.8vw, 30px); font-weight: 700; color: var(--ink); line-height: 1.2; margin-bottom: 22px; letter-spacing: -.01em; }
:where(.tv-style-service, .tv-style-service-detailed) .content-section p { font-size: 15.5px; line-height: 1.9; color: var(--body); margin-bottom: 20px; }
:where(.tv-style-about) .content-section h2 { font-size: clamp(22px, 3vw, 30px); font-weight: 700; color: var(--ink); line-height: 1.2; margin-bottom: 20px; letter-spacing: -.01em; }
:where(.tv-style-about) .content-section p { font-size: 15.5px; line-height: 1.85; color: var(--body); margin-bottom: 18px; }
.content-section p:last-child { margin-bottom: 0; }
.content-section p strong { color: var(--ink); font-weight: 600; }
.cred-list { list-style: none; margin-top: 8px; display: flex; flex-direction: column; gap: 0; border-top: 1px solid var(--border); }
.cred-list li { display: flex; align-items: flex-start; gap: 14px; padding: 16px 0; border-bottom: 1px solid var(--border); font-size: 14.5px; color: var(--body); line-height: 1.55; }
.cred-list li svg { color: var(--navy); flex-shrink: 0; margin-top: 2px; }
.cred-list li strong { color: var(--ink); font-weight: 600; display: block; margin-bottom: 2px; }
:where(.tv-style-about) .pull-quote { margin: 36px 0; padding: 24px 28px; background: var(--blue-pale); border-left: 4px solid var(--navy); font-size: 16px; font-style: italic; font-weight: 400; line-height: 1.7; color: var(--ink); }
:where(.tv-style-service, .tv-style-about) .content-divider { height: 1px; background: var(--border); margin: 48px 0; }
.topics-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2px; background: var(--border); margin-top: 8px; }
.topic { background: var(--white); padding: 24px 22px; display: flex; align-items: flex-start; gap: 14px; transition: background .2s; }
.topic:hover { background: var(--smoke); }
.topic-icon { color: var(--navy); flex-shrink: 0; margin-top: 1px; }
.topic h4 { font-size: 14.5px; font-weight: 700; color: var(--ink); margin-bottom: 5px; line-height: 1.2; }
.topic p { font-size: 13px; line-height: 1.6; color: var(--body); }
:where(.tv-style-service) .pull-quote { margin: 36px 0; padding: 24px 28px; background: var(--blue-pale); border-left: 4px solid var(--navy); font-size: 16px; font-style: italic; font-weight: 300; line-height: 1.75; color: var(--ink); }
.ff-callout { background: var(--smoke); border: 1px solid var(--border); padding: 28px 32px; display: grid; grid-template-columns: auto 1fr; gap: 20px; align-items: start; margin-top: 8px; }
.ff-callout-icon { width: 48px; height: 48px; flex-shrink: 0; background: var(--blue-pale); display: flex; align-items: center; justify-content: center; color: var(--navy); }
.ff-callout h4 { font-size: 15px; font-weight: 700; color: var(--ink); margin-bottom: 6px; }
.ff-callout p { font-size: 13.5px; line-height: 1.65; color: var(--body); margin-bottom: 10px !important; }
.ff-callout a { font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--navy); border-bottom: 1px solid var(--border); padding-bottom: 2px; transition: border-color .2s; }
.ff-callout a:hover { border-color: var(--navy); }
:where(.tv-style-about) .cta-band { background: var(--smoke-2); border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); padding: 60px 5%; }
.principles { background: var(--navy); display: grid; grid-template-columns: repeat(3, 1fr); }
.principle { padding: 44px 36px; border-right: 1px solid rgba(255,255,255,.07); position: relative; }
.principle:last-child { border-right: none; }
.principle-num { font-size: 11px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--blue-light); margin-bottom: 16px; display: block; }
.principle h3 { font-size: 19px; font-weight: 700; color: var(--white); line-height: 1.2; margin-bottom: 12px; }
.principle p { font-size: 13.5px; line-height: 1.75; color: rgba(255,255,255,.5); }
.approach-wrap { max-width: 1180px; margin: 0 auto; padding: 88px 5%; display: grid; grid-template-columns: 1fr 340px; gap: 80px; align-items: start; }
.approach-content {  }
.ac-section { margin-bottom: 56px; }
.ac-section:last-child { margin-bottom: 0; }
.ac-section .eyebrow { margin-bottom: 14px; }
.ac-section h2 { font-size: clamp(22px, 2.8vw, 30px); font-weight: 700; color: var(--ink); line-height: 1.2; margin-bottom: 22px; letter-spacing: -.01em; }
.ac-section p { font-size: 15.5px; line-height: 1.9; color: var(--body); margin-bottom: 20px; }
.ac-section p:last-child { margin-bottom: 0; }
.opening-quote { font-size: clamp(19px, 2.5vw, 24px); font-weight: 300; font-style: italic; line-height: 1.6; color: var(--ink); padding: 0 0 32px; margin-bottom: 32px; border-bottom: 1px solid var(--border); }
.opening-quote strong { font-weight: 600; font-style: normal; color: var(--navy); }
.outcome-list { list-style: none; margin-top: 24px; display: grid; grid-template-columns: 1fr 1fr; gap: 0; border-top: 1px solid var(--border); border-left: 1px solid var(--border); }
.outcome-list li { display: flex; align-items: flex-start; gap: 12px; padding: 18px 20px; border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); font-size: 14px; color: var(--body); line-height: 1.5; }
.outcome-list li svg { color: var(--navy); flex-shrink: 0; margin-top: 2px; }
.population-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; }
.pop-tag { font-size: 12px; font-weight: 500; letter-spacing: .06em; color: var(--navy); background: var(--blue-pale); border: 1px solid var(--border); padding: 7px 14px; }
:where(.tv-style-service-detailed, .tv-style-approach) .content-divider { height: 1px; background: var(--border); margin: 52px 0; }
.who-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; }
.who-tag { font-size: 12px; font-weight: 500; letter-spacing: .06em; color: var(--navy); background: var(--blue-pale); border: 1px solid var(--border); padding: 7px 14px; }
.info-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 8px; }
.info-card { padding: 28px; background: var(--smoke); border: 1px solid var(--border); border-top: 3px solid var(--navy); }
.info-card-icon { color: var(--navy); margin-bottom: 14px; }
.info-card h4 { font-size: 15px; font-weight: 700; color: var(--ink); margin-bottom: 10px; line-height: 1.2; }
.info-card p { font-size: 13.5px; line-height: 1.7; color: var(--body); }
.sidebar { position: sticky; top: 92px; display: flex; flex-direction: column; gap: 20px; }
.sb-block { background: var(--smoke); border: 1px solid var(--border); padding: 28px; }
.sb-block h4 { font-size: 11px; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; color: var(--muted); margin-bottom: 18px; }
.sb-list { display: flex; flex-direction: column; }
.sb-item { display: flex; align-items: center; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--border); font-size: 13.5px; font-weight: 500; color: var(--body); }
.sb-item:last-child { border-bottom: none; padding-bottom: 0; }
.sb-dot { width: 7px; height: 7px; background: var(--navy); flex-shrink: 0; }
.sb-contact { background: var(--navy); padding: 28px; }
.sb-contact p { font-size: 14px; color: rgba(255,255,255,.65); line-height: 1.65; margin-bottom: 18px; }
.sb-contact .cta-primary { width: 100%; justify-content: center; background: var(--white); color: var(--navy); }
.sb-contact .cta-primary:hover { background: var(--smoke); transform: none; }
.sb-info-block { background: var(--blue-pale); border: 1px solid var(--border); padding: 24px; }
.sb-info { background: var(--blue-pale); border: 1px solid var(--border); padding: 24px; }
.sb-info-row { display: flex; align-items: flex-start; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--border); font-size: 13px; color: var(--body); line-height: 1.5; }
.sb-info-row:first-child { padding-top: 0; }
.sb-info-row:last-child { border-bottom: none; padding-bottom: 0; }
.sb-info-row svg { color: var(--navy); flex-shrink: 0; margin-top: 1px; }
.sb-info-row strong { color: var(--ink); display: block; font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; margin-bottom: 2px; }
.related { background: var(--smoke-2); border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); padding: 88px 5%; }
.related-inner { max-width: 1180px; margin: 0 auto; }
.related-inner .eyebrow { margin-bottom: 14px; }
.related-inner h2 { font-size: clamp(24px, 3vw, 32px); font-weight: 700; color: var(--ink); margin-bottom: 40px; letter-spacing: -.01em; }
.related-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2px; background: var(--border); }
.rg { background: var(--white); padding: 32px 28px; transition: box-shadow .25s; position: relative; }
.rg:hover { box-shadow: 0 8px 32px rgba(61,90,107,.08); z-index: 1; }
.rg::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: var(--navy); transform: scaleX(0); transform-origin: left; transition: transform .3s; }
.rg:hover::before { transform: scaleX(1); }
.rg-icon { color: var(--navy); margin-bottom: 16px; }
.rg h3 { font-size: 16px; font-weight: 700; color: var(--ink); margin-bottom: 8px; line-height: 1.25; }
.rg p { font-size: 13px; line-height: 1.65; color: var(--body); margin-bottom: 16px; }
.rg-link { font-size: 11.5px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--navy); border-bottom: 1px solid var(--border); padding-bottom: 2px; transition: border-color .2s; }
.rg-link:hover { border-color: var(--navy); }
.therapy-types { background: var(--smoke-2); border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); padding: 88px 5%; }
.therapy-types-inner { max-width: 1180px; margin: 0 auto; }
.therapy-types-header { margin-bottom: 52px; }
.therapy-types-header .eyebrow { margin-bottom: 14px; }
.therapy-types-header h2 { font-size: clamp(24px, 3vw, 34px); font-weight: 700; color: var(--ink); line-height: 1.2; letter-spacing: -.01em; margin-bottom: 14px; }
.therapy-types-header p { font-size: 15px; color: var(--body); line-height: 1.75; max-width: 640px; }
.therapy-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2px; background: var(--border); }
.tg { background: var(--white); padding: 36px 28px; position: relative; overflow: hidden; transition: box-shadow .25s; }
.tg:hover { box-shadow: 0 8px 32px rgba(61,90,107,.08); z-index: 1; }
.tg::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: var(--navy); transform: scaleX(0); transform-origin: left; transition: transform .3s; }
.tg:hover::before { transform: scaleX(1); }
.tg-icon { color: var(--navy); margin-bottom: 18px; }
.tg h3 { font-size: 17px; font-weight: 700; color: var(--ink); margin-bottom: 10px; line-height: 1.25; }
.tg p { font-size: 13.5px; line-height: 1.7; color: var(--body); }
.approach-sidebar { position: sticky; top: 92px; display: flex; flex-direction: column; gap: 20px; }
.services-wrap { max-width: 1180px; margin: 0 auto; padding: 80px 5%; }
.services-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2px; background: var(--border); }
.svc-card { background: var(--white); padding: 44px 36px; display: flex; flex-direction: column; position: relative; overflow: hidden; transition: box-shadow .25s; }
.svc-card:hover { box-shadow: 0 8px 32px rgba(61,90,107,.1); z-index: 1; }
.svc-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: var(--navy); transform: scaleX(0); transform-origin: left; transition: transform .3s; }
.svc-card:hover::before { transform: scaleX(1); }
.svc-card-icon { color: var(--navy); margin-bottom: 22px; }
.svc-card-num { font-size: 10px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--blue); margin-bottom: 10px; }
.svc-card h3 { font-size: 20px; font-weight: 700; color: var(--ink); margin-bottom: 14px; line-height: 1.2; }
.svc-card p { font-size: 14px; line-height: 1.75; color: var(--body); flex: 1; margin-bottom: 28px; }
.svc-card-tag { display: inline-block; font-size: 10.5px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--navy); border: 1px solid var(--border); padding: 5px 10px; margin-bottom: 20px; }
.svc-card-link { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--navy); border-bottom: 1px solid var(--border); padding-bottom: 2px; transition: border-color .2s; margin-top: auto; align-self: flex-start; }
.svc-card-link:hover { border-color: var(--navy); }
.tele-banner { background: var(--navy); padding: 48px 5%; }
.tele-inner { max-width: 1180px; margin: 0 auto; display: grid; grid-template-columns: 1fr auto; gap: 40px; align-items: center; }
.tele-inner h3 { font-size: clamp(20px, 2.5vw, 28px); font-weight: 700; color: var(--white); line-height: 1.25; }
.tele-inner p { font-size: 15px; color: rgba(255,255,255,.55); line-height: 1.6; margin-top: 8px; }
.tele-cta { flex-shrink: 0; }
.tele-cta .cta-primary { background: var(--white); color: var(--navy); }
.tele-cta .cta-primary:hover { background: var(--smoke); }
.filter-bar { background: var(--white); border-bottom: 1px solid var(--border); padding: 16px 5%; position: sticky; top: 72px; z-index: 100; }
.filter-inner { max-width: 1180px; margin: 0 auto; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.filter-label { font-size: 11px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); margin-right: 6px; }
.filter-btn { font-size: 12px; font-weight: 500; letter-spacing: .06em; text-transform: uppercase; color: var(--body); background: var(--smoke); border: 1px solid var(--border); padding: 7px 16px; cursor: pointer; transition: all .2s; }
.filter-btn:hover, .filter-btn.active { background: var(--navy); color: var(--white); border-color: var(--navy); }
.testimonials-wrap { max-width: 1180px; margin: 0 auto; padding: 64px 5%; }
.test-featured { background: var(--smoke); border-top: 4px solid var(--navy); padding: 48px; margin-bottom: 32px; display: grid; grid-template-columns: 1fr auto; gap: 40px; align-items: start; }
.tf-content {  }
.tf-stars { display: flex; gap: 4px; color: var(--navy); margin-bottom: 20px; }
.tf-body { font-size: 17px; font-weight: 300; font-style: italic; line-height: 1.85; color: var(--ink); margin-bottom: 24px; }
.tf-author { font-size: 14px; font-weight: 700; color: var(--navy); }
.tf-role { font-size: 12.5px; color: var(--muted); margin-top: 4px; font-style: italic; }
.tf-badge { flex-shrink: 0; background: var(--navy); padding: 20px 22px; text-align: center; align-self: center; }
.tf-badge-num { font-size: 32px; font-weight: 700; color: var(--white); line-height: 1; }
.tf-badge-label { font-size: 10px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,.5); margin-top: 6px; }
:where(.tv-style-testimonials) .test-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2px; background: var(--border); margin-bottom: 2px; }
.test-grid-2col { display: grid; grid-template-columns: repeat(2, 1fr); gap: 2px; background: var(--border); margin-bottom: 2px; }
.tc { background: var(--white); padding: 36px 32px; position: relative; transition: box-shadow .25s; }
.tc:hover { box-shadow: 0 8px 32px rgba(61,90,107,.08); z-index: 1; }
.tc-tag { display: inline-block; margin-bottom: 16px; font-size: 10px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--navy); background: var(--blue-pale); border: 1px solid var(--border); padding: 4px 10px; }
.tc-stars { display: flex; gap: 3px; color: var(--navy); margin-bottom: 16px; }
.tc-body { font-size: 14.5px; font-weight: 300; font-style: italic; line-height: 1.85; color: var(--ink); margin-bottom: 24px; }
.tc-author { font-size: 13px; font-weight: 700; color: var(--navy); }
.tc-role { font-size: 12px; color: var(--muted); margin-top: 3px; font-style: italic; }
.tc.professional { background: var(--smoke); }
.tc.professional .tc-tag { background: var(--navy); color: var(--white); border-color: var(--navy); }
.media-presence { max-width: 1180px; margin: 0 auto; padding: 88px 5%; display: grid; grid-template-columns: 1fr 360px; gap: 80px; align-items: start; }
.media-main {  }
.media-main .eyebrow { margin-bottom: 14px; }
.media-main h2 { font-size: clamp(24px, 3vw, 34px); font-weight: 700; color: var(--ink); line-height: 1.2; margin-bottom: 24px; letter-spacing: -.01em; }
.media-main p { font-size: 15.5px; line-height: 1.9; color: var(--body); margin-bottom: 20px; }
.media-main p:last-of-type { margin-bottom: 0; }
.media-highlights { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2px; background: var(--border); margin-top: 40px; }
.mh { background: var(--smoke); padding: 28px 24px; position: relative; overflow: hidden; }
.mh::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: var(--navy); transform: scaleX(0); transform-origin: left; transition: transform .3s ease; }
.mh:hover::before { transform: scaleX(1); }
.mh-icon { color: var(--navy); margin-bottom: 14px; }
.mh h4 { font-size: 15px; font-weight: 700; color: var(--ink); margin-bottom: 8px; line-height: 1.25; }
.mh p { font-size: 13px; line-height: 1.65; color: var(--body); }
.media-sidebar { position: sticky; top: 92px; display: flex; flex-direction: column; gap: 20px; }
.sidebar-block { background: var(--smoke); border: 1px solid var(--border); padding: 28px; }
.sidebar-block h4 { font-size: 11px; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; color: var(--muted); margin-bottom: 18px; }
.method-list { display: flex; flex-direction: column; gap: 0; }
.method-item { display: flex; align-items: center; gap: 12px; padding: 13px 0; border-bottom: 1px solid var(--border); font-size: 13.5px; font-weight: 500; color: var(--body); }
.method-item:last-child { border-bottom: none; padding-bottom: 0; }
.method-dot { width: 8px; height: 8px; background: var(--navy); flex-shrink: 0; }
.who-list { display: flex; flex-direction: column; gap: 10px; }
.who-item { display: flex; align-items: center; gap: 10px; font-size: 13.5px; color: var(--body); line-height: 1.4; }
.who-item svg { color: var(--navy); flex-shrink: 0; }
.sidebar-network-list { display: flex; flex-direction: column; gap: 0; }
.snl-item { display: flex; align-items: center; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--border); font-size: 13.5px; font-weight: 500; color: var(--body); }
.snl-item:last-child { border-bottom: none; padding-bottom: 0; }
.snl-dot { width: 7px; height: 7px; background: var(--navy); flex-shrink: 0; }
.sidebar-cta-block { background: var(--navy); padding: 28px; }
.sidebar-cta-block p { font-size: 14px; color: rgba(255,255,255,.65); line-height: 1.65; margin-bottom: 18px; }
.sidebar-cta-block .cta-primary { width: 100%; justify-content: center; background: var(--white); color: var(--navy); }
.sidebar-cta-block .cta-primary:hover { background: var(--smoke); transform: none; }
.test-pull { background: var(--smoke-2); border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); padding: 72px 5%; }
.test-pull-inner { max-width: 1180px; margin: 0 auto; }
.test-pull-inner .eyebrow { margin-bottom: 40px; }
.test-pull-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.tp-card { background: var(--white); padding: 32px 28px; border-top: 3px solid var(--navy); }
.tp-stars { display: flex; gap: 3px; color: var(--navy); margin-bottom: 16px; }
.tp-body { font-size: 14.5px; font-style: italic; font-weight: 300; line-height: 1.8; color: var(--ink); margin-bottom: 20px; }
.tp-author { font-size: 12px; font-weight: 700; color: var(--navy); letter-spacing: .04em; }
.tp-role { font-size: 11.5px; color: var(--muted); margin-top: 3px; }
.consultation-section { background: var(--smoke-2); border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); padding: 88px 5%; }
.consultation-inner { max-width: 1180px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
.consultation-text .eyebrow { margin-bottom: 14px; }
.consultation-text h2 { font-size: clamp(24px, 3vw, 34px); font-weight: 700; color: var(--ink); line-height: 1.2; margin-bottom: 22px; letter-spacing: -.01em; }
.consultation-text p { font-size: 15.5px; line-height: 1.9; color: var(--body); margin-bottom: 20px; }
.consultation-text p:last-of-type { margin-bottom: 0; }
.consult-offers { display: flex; flex-direction: column; gap: 0; margin-top: 32px; border-top: 1px solid var(--border); }
.co-item { display: flex; align-items: flex-start; gap: 16px; padding: 20px 0; border-bottom: 1px solid var(--border); }
.co-item:last-child { border-bottom: none; }
.co-icon { width: 40px; height: 40px; flex-shrink: 0; background: var(--blue-pale); display: flex; align-items: center; justify-content: center; color: var(--navy); }
.co-body h4 { font-size: 15px; font-weight: 700; color: var(--ink); margin-bottom: 4px; }
.co-body p { font-size: 13.5px; line-height: 1.6; color: var(--body); }
.consultation-cta { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; margin-top: 32px; }
.consultation-quote { background: var(--navy); padding: 48px 40px; display: flex; flex-direction: column; justify-content: center; }
.cq-text { font-size: 18px; font-weight: 300; font-style: italic; line-height: 1.7; color: rgba(255,255,255,.85); margin-bottom: 24px; }
.cq-text strong { font-weight: 600; font-style: normal; color: var(--white); }
.cq-rule { width: 40px; height: 2px; background: var(--blue-light); margin-bottom: 16px; }
.cq-label { font-size: 11px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: rgba(255,255,255,.4); }
.books-section { background: var(--white); padding: 88px 5%; }
.books-inner { max-width: 1180px; margin: 0 auto; }
.books-header { margin-bottom: 52px; }
.books-header .eyebrow { margin-bottom: 14px; }
.books-header h2 { font-size: clamp(24px, 3vw, 34px); font-weight: 700; color: var(--ink); line-height: 1.2; letter-spacing: -.01em; margin-bottom: 14px; }
.books-header p { font-size: 15px; color: var(--body); line-height: 1.75; max-width: 620px; }
.books-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; }
.book-card { display: grid; grid-template-columns: 140px 1fr; gap: 28px; align-items: start; padding: 36px; border: 1px solid var(--border); background: var(--smoke); transition: box-shadow .25s; }
.book-card:hover { box-shadow: 0 8px 32px rgba(61,90,107,.08); }
.book-cover { width: 140px; flex-shrink: 0; border: 1px solid var(--border); box-shadow: 0 4px 16px rgba(61,90,107,.12); }
.book-cover img { width: 100%; height: auto; display: block; }
.book-info {  }
.book-series { font-size: 10px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--navy); margin-bottom: 8px; }
.book-title { font-size: 18px; font-weight: 700; color: var(--ink); line-height: 1.25; margin-bottom: 12px; }
.book-desc { font-size: 14px; line-height: 1.75; color: var(--body); margin-bottom: 20px; }
.book-authors { font-size: 12px; color: var(--muted); margin-bottom: 20px; font-style: italic; }
.book-buy { display: inline-flex; align-items: center; gap: 8px; background: var(--navy); color: var(--white); font-size: 11.5px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; padding: 11px 20px; transition: background .2s; }
.book-buy:hover { background: var(--navy-light); }
.books-publisher { margin-top: 36px; padding: 24px 28px; background: var(--blue-pale); border: 1px solid var(--border); display: flex; align-items: center; gap: 16px; max-width: 560px; }
.books-publisher svg { color: var(--navy); flex-shrink: 0; }
.books-publisher p { font-size: 13.5px; color: var(--body); line-height: 1.6; }
.books-publisher a { color: var(--navy); font-weight: 600; border-bottom: 1px solid var(--border); transition: border-color .2s; }
.books-publisher a:hover { border-color: var(--navy); }
:where(.tv-style-service, .tv-style-service-detailed, .tv-style-approach, .tv-style-services, .tv-style-testimonials, .tv-style-media) .cta-band { background: var(--smoke); border-top: 1px solid var(--border); padding: 60px 5%; }
.cta-band-inner { max-width: 1180px; margin: 0 auto; display: grid; grid-template-columns: 1fr auto; gap: 40px; align-items: center; }
.cta-band h3 { font-size: clamp(20px, 2.5vw, 28px); font-weight: 700; color: var(--ink); line-height: 1.25; }
.cta-band p { font-size: 15px; color: var(--body); line-height: 1.6; margin-top: 8px; }
.cta-band-actions { display: flex; gap: 14px; flex-shrink: 0; flex-wrap: wrap; }
.contact-main { max-width: 1180px; margin: 0 auto; padding: 80px 5%; display: grid; grid-template-columns: 1fr 1.2fr; gap: 80px; align-items: start; }
.contact-info {  }
.contact-info .eyebrow { margin-bottom: 14px; }
.contact-info h2 { font-size: clamp(24px, 3vw, 34px); font-weight: 700; color: var(--ink); line-height: 1.2; margin-bottom: 20px; letter-spacing: -.01em; }
.contact-info p { font-size: 15.5px; line-height: 1.85; color: var(--body); margin-bottom: 32px; }
:where(.tv-style-contact) .contact-details { display: flex; flex-direction: column; gap: 0; border-top: 1px solid var(--border); }
:where(.tv-style-contact) .cd { display: flex; align-items: flex-start; gap: 16px; padding: 20px 0; border-bottom: 1px solid var(--border); }
:where(.tv-style-contact) .cd-icon { width: 42px; height: 42px; flex-shrink: 0; background: var(--blue-pale); display: flex; align-items: center; justify-content: center; color: var(--navy); }
:where(.tv-style-contact) .cd-body { font-size: 14px; color: var(--body); line-height: 1.55; }
:where(.tv-style-contact) .cd-body strong { display: block; font-size: 10.5px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--ink); margin-bottom: 4px; }
.cd-body a { color: var(--navy); }
.office-map { margin-top: 28px; border: 1px solid var(--border); background: var(--smoke); }
.office-map iframe { display: block; width: 100%; aspect-ratio: 4 / 3; border: 0; }
.map-directions { display: flex; align-items: center; gap: 8px; padding: 13px 16px; border-top: 1px solid var(--border); background: var(--white); font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--navy); }
.map-directions:hover { color: var(--navy-light); }
.areas-served { margin-top: 28px; padding: 24px; background: var(--smoke); border: 1px solid var(--border); }
.areas-served h4 { font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); margin-bottom: 12px; }
.areas-served p { font-size: 13.5px; line-height: 1.7; color: var(--body); }
.tele-note { margin-top: 16px; padding: 20px 22px; background: var(--blue-pale); border: 1px solid var(--border); display: flex; align-items: center; gap: 14px; }
.tele-note svg { color: var(--navy); flex-shrink: 0; }
.tele-note p { font-size: 13px; color: var(--body); line-height: 1.6; }
.tele-note strong { color: var(--ink); }
:where(.tv-style-contact) .contact-form-wrap { background: var(--smoke); border: 1px solid var(--border); padding: 44px; }
:where(.tv-style-contact) .contact-form-wrap h3 { font-size: 22px; font-weight: 700; color: var(--ink); margin-bottom: 6px; }
.contact-form-wrap .form-sub { font-size: 14px; color: var(--muted); margin-bottom: 28px; line-height: 1.5; }
.contact-form { display: flex; flex-direction: column; gap: 16px; }
.ff-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.ff { display: flex; flex-direction: column; gap: 6px; }
.ff label { font-size: 11px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.ff input, .ff textarea, .ff select { background: var(--white); border: 1.5px solid var(--border); padding: 13px 16px; font-family: var(--ff); font-size: 15px; color: var(--ink); outline: none; transition: border-color .2s; border-radius: 0; -webkit-appearance: none; appearance: none; }
:where(.tv-style-home) .ff input:focus, :where(.tv-style-home) .ff textarea:focus, :where(.tv-style-home) .ff select:focus { border-color: var(--blue); }
:where(.tv-style-contact) .ff input:focus, :where(.tv-style-contact) .ff textarea:focus, :where(.tv-style-contact) .ff select:focus { border-color: var(--navy); }
.ff input::placeholder, .ff textarea::placeholder { color: var(--muted); font-weight: 300; }
:where(.tv-style-home) .ff textarea { min-height: 120px; resize: vertical; }
:where(.tv-style-home) .ff select { color: var(--ink); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236b7d94' stroke-width='1.5' fill='none'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 16px center; padding-right: 40px; }
:where(.tv-style-contact) .ff textarea { min-height: 130px; resize: vertical; }
:where(.tv-style-contact) .ff select { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236b7d94' stroke-width='1.5' fill='none'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 16px center; padding-right: 40px; }
.ff select option { color: var(--ink); }
:where(.tv-style-home) .btn-submit { display: flex; align-items: center; justify-content: center; gap: 10px; background: var(--navy); color: var(--white); border: none; font-size: 13px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; padding: 18px; transition: background .2s; margin-top: 4px; }
.privacy-note { font-size: 12px; color: var(--muted); line-height: 1.6; display: flex; align-items: flex-start; gap: 8px; }
.privacy-note svg { flex-shrink: 0; color: var(--navy); margin-top: 1px; }
:where(.tv-style-contact) .btn-submit { display: flex; align-items: center; justify-content: center; gap: 10px; background: var(--navy); color: var(--white); border: none; font-size: 13px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; padding: 18px; transition: background .2s; cursor: pointer; }
.btn-submit:hover { background: var(--navy-light); }
footer { background: var(--smoke-2); border-top: 1px solid var(--border); }
.footer-main { max-width: 1180px; margin: 0 auto; padding: 64px 5% 40px; display: grid; grid-template-columns: 280px 1fr 1fr 1fr; gap: 48px; }
.footer-brand img { height: 34px; width: auto; }
.footer-brand p { font-size: 13px; color: var(--muted); line-height: 1.7; margin-top: 14px; }
.footer-brand .footer-lic { font-size: 11px; letter-spacing: .07em; text-transform: uppercase; color: var(--muted); opacity: .7; margin-top: 10px; line-height: 1.7; }
.footer-col h5 { font-size: 11px; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; color: var(--muted); margin-bottom: 16px; }
:where(.tv-style-home) .footer-col a { display: block; font-size: 13.5px; font-weight: 400; color: var(--body); margin-bottom: 10px; transition: color .2s; }
:where(.tv-style-service, .tv-style-service-detailed, .tv-style-about, .tv-style-approach, .tv-style-services, .tv-style-testimonials, .tv-style-media, .tv-style-contact) .footer-col a { display: block; font-size: 13.5px; color: var(--body); margin-bottom: 10px; transition: color .2s; }
.footer-col a:hover { color: var(--navy); }
.footer-col p { font-size: 13px; color: var(--body); line-height: 1.7; }
:where(.tv-style-home) .footer-bottom { border-top: 1px solid var(--border); padding: 20px 5%; max-width: 100%; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 10px; }
:where(.tv-style-service, .tv-style-service-detailed, .tv-style-about, .tv-style-approach, .tv-style-services, .tv-style-testimonials, .tv-style-media, .tv-style-contact) .footer-bottom { border-top: 1px solid var(--border); padding: 20px 5%; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 10px; }
.footer-bottom p { font-size: 12px; color: var(--muted); }
.footer-bottom .footer-book { font-size: 11px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--navy); border-bottom: 1px solid var(--border); padding-bottom: 2px; }
.sr { opacity: 0; transform: translateY(22px); transition: opacity .65s ease, transform .65s ease; }
.sr.in { opacity: 1; transform: none; }
.d1 { transition-delay: .08s; }
.d2 { transition-delay: .16s; }
.d3 { transition-delay: .24s; }
.d4 { transition-delay: .32s; }
@media (max-width: 1100px) {
  .about-grid { gap: 52px; }
  :where(.tv-style-home) .footer-main { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 960px) {
  .tv-hero { grid-template-columns: 1fr; grid-template-rows: auto auto; min-height: 0; }
  .hero-photo-col { min-height: 0; }
  .hero-photo-col img { height: 500px; object-position: center 15%; }
  .hero-photo-col::after { display: none; }
  .hero-badge { position: static; max-width: none; z-index: auto; background: var(--white); border: none; border-top: 1px solid var(--border); -webkit-backdrop-filter: none; backdrop-filter: none; padding: 22px 5%; }
  .hero-panel { padding: 48px 5%; border-left: none; border-top: 1px solid var(--border); }
  .stats-bar { grid-template-columns: repeat(2, 1fr); }
  .about-grid { grid-template-columns: 1fr; }
  :where(.tv-style-home) .about-photo-frame img { height: 440px; }
  .approach-header { grid-template-columns: 1fr; gap: 20px; }
  .approach-cards { grid-template-columns: 1fr; }
  .trust-grid { grid-template-columns: repeat(2, 1fr); }
  :where(.tv-style-home) .test-grid { grid-template-columns: 1fr 1fr; }
  .contact-top-inner { grid-template-columns: 1fr; gap: 40px; }
  :where(.tv-style-home) .contact-form-wrap { grid-template-columns: 1fr; gap: 40px; }
}
@media (max-width: 1024px) {
  .main-wrap { grid-template-columns: 1fr 300px; gap: 48px; }
  .about-wrap { grid-template-columns: 300px 1fr; gap: 48px; }
  .approach-wrap { grid-template-columns: 1fr 300px; gap: 48px; }
}
@media (max-width: 960px) {
  .services-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 860px) {
  :where(.tv-style-testimonials) .page-hero { grid-template-columns: 1fr; gap: 32px; }
  .test-featured { grid-template-columns: 1fr; }
  .tf-badge { display: none; }
  :where(.tv-style-testimonials) .test-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 1024px) {
  .media-presence { grid-template-columns: 1fr 300px; gap: 48px; }
  :where(.tv-style-service, .tv-style-service-detailed, .tv-style-about, .tv-style-approach, .tv-style-media) .footer-main { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 860px) {
  :where(.tv-style-service, .tv-style-service-detailed, .tv-style-about) .page-hero { grid-template-columns: 1fr; gap: 36px; min-height: auto; }
  .main-wrap { grid-template-columns: 1fr; }
  .sidebar { position: static; }
  .topics-grid { grid-template-columns: 1fr; }
  .related-grid { grid-template-columns: 1fr 1fr; }
  .therapy-grid { grid-template-columns: 1fr 1fr; }
  .info-cards { grid-template-columns: 1fr; }
  :where(.tv-style-about) .page-hero::after { display: none; }
  .about-wrap { grid-template-columns: 1fr; }
  .about-sidebar { position: static; }
  :where(.tv-style-about) .about-photo-frame img { height: 380px; }
  :where(.tv-style-approach) .page-hero { grid-template-columns: 1fr; }
  .page-hero-photo { min-height: 52vw; }
  .page-hero-photo::after { display: none; }
  :where(.tv-style-approach) .page-hero-text { padding: 48px 5%; }
  .principles { grid-template-columns: 1fr; }
  .principle { border-right: none; border-bottom: 1px solid rgba(255,255,255,.07); }
  .principle:last-child { border-bottom: none; }
  .approach-wrap { grid-template-columns: 1fr; gap: 48px; }
  .approach-sidebar { position: static; }
  .outcome-list { grid-template-columns: 1fr; }
  .test-pull-grid { grid-template-columns: 1fr 1fr; }
  :where(.tv-style-media) .page-hero-inner { grid-template-columns: 1fr; gap: 36px; }
  .media-presence { grid-template-columns: 1fr; }
  .media-sidebar { position: static; }
  .media-highlights { grid-template-columns: 1fr 1fr; }
  .consultation-inner { grid-template-columns: 1fr; }
  .books-grid { grid-template-columns: 1fr; }
  :where(.tv-style-service, .tv-style-service-detailed, .tv-style-about, .tv-style-approach, .tv-style-testimonials, .tv-style-media) .cta-band-inner { grid-template-columns: 1fr; }
  :where(.tv-style-about) .cta-band-actions { flex-direction: row; }
  :where(.tv-style-testimonials) .footer-main { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 960px) {
  :where(.tv-style-contact) .page-hero-inner { grid-template-columns: 1fr; gap: 40px; }
  .contact-main { grid-template-columns: 1fr; }
  :where(.tv-style-home, .tv-style-services, .tv-style-contact) .footer-main { grid-template-columns: 1fr 1fr; }
}
@media (min-width: 620px) and (max-width: 960px) {
  .hero-photo-col img { height: 85vw; max-height: 620px; }
}
@media (max-width: 960px) {
  .tele-inner { grid-template-columns: 1fr; }
  :where(.tv-style-services) .cta-band-inner { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
  .nav-links, .nav-cta { display: none; }
  .ham { display: flex; }
  .services-header { grid-template-columns: 1fr; }
  .services-header p { text-align: left; }
  .test-grid { grid-template-columns: 1fr; }
  .test-header { flex-direction: column; align-items: flex-start; }
  .trust-grid { grid-template-columns: 1fr 1fr; }
  :where(.tv-style-home) .footer-main { grid-template-columns: 1fr; gap: 32px; }
  .svc-row { grid-template-columns: 48px 1fr; }
  .svc-tag { display: none; }
  .tv-about { padding: 64px 5%; }
  .tv-approach { padding: 64px 5%; }
  .tv-services { padding: 64px 5%; }
  .tv-testimonials { padding: 64px 5%; }
}
@media (max-width: 560px) {
  .hero-panel h1 { font-size: 26px; }
  .stats-bar { grid-template-columns: 1fr 1fr; }
  .trust-grid { grid-template-columns: 1fr; }
  :where(.tv-style-home) .ff-row { grid-template-columns: 1fr; }
  .hero-badge { padding: 20px 5%; }
  .hero-badge-licenses { flex-wrap: wrap; gap: 14px 22px; }
  .about-plate { right: 0; }
  .about-credentials { padding: 20px; }
  :where(.tv-style-home) .cta-primary, :where(.tv-style-home) .cta-secondary, :where(.tv-style-home) .cta-ghost { padding: 14px 20px; font-size: 12px; }
}
@media (max-width: 768px) {
  .related-grid { grid-template-columns: 1fr; }
  .therapy-grid { grid-template-columns: 1fr; }
  .services-grid { grid-template-columns: 1fr; }
  .test-grid-2col { grid-template-columns: 1fr; }
  .filter-bar { position: static; }
  .media-highlights { grid-template-columns: 1fr; }
  .book-card { grid-template-columns: 110px 1fr; gap: 20px; padding: 24px; }
  .book-cover { width: 110px; }
  :where(.tv-style-contact) .ff-row { grid-template-columns: 1fr; }
  :where(.tv-style-contact) .contact-form-wrap { padding: 28px 24px; }
  :where(.tv-style-service, .tv-style-service-detailed, .tv-style-about, .tv-style-approach, .tv-style-services, .tv-style-media, .tv-style-contact) .footer-main { grid-template-columns: 1fr 1fr; }
  .ff-callout { grid-template-columns: 1fr; }
  .test-pull-grid { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  :where(.tv-style-service, .tv-style-service-detailed, .tv-style-about, .tv-style-approach, .tv-style-services, .tv-style-testimonials, .tv-style-media, .tv-style-contact) .footer-main { grid-template-columns: 1fr; }
  .main-wrap { padding: 48px 5%; }
  :where(.tv-style-about) .page-hero { padding: 40px 5%; }
  .about-wrap { padding: 48px 5%; }
  .approach-wrap { padding: 48px 5%; }
  .testimonials-wrap { padding: 40px 5%; }
  :where(.tv-style-media) .page-hero { padding: 56px 5%; }
  .media-presence { padding: 56px 5%; }
  .book-card { grid-template-columns: 1fr; }
  .book-cover { width: 120px; }
}
.reel-section { padding: 88px 5%; background: var(--smoke); border-top: 1px solid var(--border); }
.reel-inner { max-width: 1100px; margin: 0 auto; }
.reel-header { text-align: center; margin-bottom: 40px; }
.reel-header .eyebrow { justify-content: center; margin-bottom: 16px; }
.reel-header h2 { font-size: clamp(28px, 3.4vw, 42px); font-weight: 300; line-height: 1.15; color: var(--ink); letter-spacing: -.01em; }
.reel-header p { margin-top: 16px; font-size: 15px; line-height: 1.75; color: var(--body); }
.reel-frame { position: relative; width: 100%; padding-top: 56.25%; background: var(--ink); overflow: hidden; box-shadow: 0 18px 50px rgba(61,90,107,.18); }
.reel-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.reel-link { display: block; text-align: center; margin-top: 18px; font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--navy); }
.gallery-section { padding: 88px 5%; background: var(--white); border-top: 1px solid var(--border); }
.gallery-inner { max-width: 1180px; margin: 0 auto; }
.gallery-header { margin-bottom: 40px; }
.gallery-header h2 { font-size: clamp(26px, 3.2vw, 38px); font-weight: 300; line-height: 1.15; color: var(--ink); margin-top: 14px; }
.gallery-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.gi { background: var(--smoke); border: 1px solid var(--border); overflow: hidden; }
.gi img { width: 100%; height: 220px; object-fit: cover; transition: transform .4s ease; }
.gi:hover img { transform: scale(1.04); }
.gi-cap { padding: 14px 16px; font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--navy); }
@media (max-width: 900px) {
  .gallery-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
  .gallery-grid { grid-template-columns: 1fr; }
  .gi img { height: 200px; }
  .contact-main { padding: 48px 5%; }
}
.footer-crisis { padding: 20px 5%; border-top: 1px solid var(--border); background: var(--white); }
.footer-crisis p { max-width: 880px; margin: 0 auto; text-align: center; font-size: 12.5px; line-height: 1.65; color: var(--body); }
.footer-crisis strong { color: var(--navy); font-weight: 600; }
.gi { cursor: zoom-in; }
.gi:focus-visible { outline: 2px solid var(--navy); outline-offset: 3px; }
.lightbox { position: fixed; inset: 0; z-index: 500; background: rgba(26,38,45,.93); display: flex; align-items: center; justify-content: center; padding: 4vh 5vw; opacity: 0; transition: opacity .22s ease; }
.lightbox[hidden] { display: none; }
.lightbox.open { opacity: 1; }
.lb-stage { max-width: 100%; max-height: 100%; display: flex; flex-direction: column; align-items: center; gap: 16px; }
.lb-stage img { max-width: min(1000px, 100%); max-height: 78vh; width: auto; object-fit: contain; box-shadow: 0 24px 60px rgba(0,0,0,.45); }
.lb-cap { font-size: 12.5px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: rgba(255,255,255,.78); text-align: center; }
.lb-count { font-size: 11px; letter-spacing: .12em; color: rgba(255,255,255,.45); margin-top: 6px; }
.lb-btn { position: absolute; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.25); color: #fff; width: 46px; height: 46px; display: flex; align-items: center; justify-content: center; transition: background .2s, border-color .2s; }
.lb-btn:hover { background: rgba(255,255,255,.22); border-color: rgba(255,255,255,.5); }
.lb-close { top: 24px; right: 24px; }
.lb-prev { left: 24px; top: 50%; transform: translateY(-50%); }
.lb-next { right: 24px; top: 50%; transform: translateY(-50%); }
@media (max-width: 640px) {
  .lightbox { padding: 8vh 4vw; }
  .lb-prev { left: 10px; }
  .lb-next { right: 10px; }
  .lb-close { top: 14px; right: 14px; }
  .lb-btn { width: 40px; height: 40px; }
}

/* ==========================================================================
   Theme layer — pieces with no counterpart in the static build
   ========================================================================== */

/* Scroll reveal: content is only hidden when the script that reveals it runs. */
html:not(.tv-js) .sr { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .sr { opacity: 1; transform: none; transition: none; }
  html { scroll-behavior: auto; }
}

/* Editor-driven section modifiers. Defaults print no class, so the design's
   own backgrounds and spacing apply; these only follow a deliberate change. */
.is-bg-white { background: var(--white); }
.is-bg-smoke { background: var(--smoke); }
.is-bg-warm { background: var(--smoke-2); }
.is-bg-navy { background: var(--navy); color: rgba(255,255,255,.82); }
.is-bg-navy h1, .is-bg-navy h2, .is-bg-navy h3, .is-bg-navy h4 { color: var(--white); }
.is-bg-navy .eyebrow { color: var(--blue-light); }
.is-bg-navy .eyebrow::before { background: var(--blue-light); }
.is-space-compact { padding-top: 56px; padding-bottom: 56px; }
.is-space-roomy { padding-top: 128px; padding-bottom: 128px; }
.is-space-none { padding-top: 0; padding-bottom: 0; }
.is-width-narrow > * { max-width: 760px; margin-left: auto; margin-right: auto; }
.is-width-wide > * { max-width: 1400px; }
.is-width-full > * { max-width: none; }

/* Hero portrait focus (the design's default is "upper"). */
.tv-hero.is-focus-top .hero-photo-col img { object-position: center top; }
.tv-hero.is-focus-center .hero-photo-col img { object-position: center center; }

/* Content + sidebar with no sidebar blocks. */
.main-wrap.is-single-column, .about-wrap.is-single-column,
.approach-wrap.is-single-column, .media-presence.is-single-column { grid-template-columns: 1fr; }

/* Sections with no static twin share a simple wrapper. */
.tv-section { position: relative; padding: 88px 5%; }
.tv-wrap { width: 100%; max-width: 1180px; margin: 0 auto; }
.tv-wrap--narrow { max-width: 760px; }
.tv-section-head { max-width: 720px; margin-bottom: 40px; }
.tv-section-head h2 { font-size: clamp(24px, 3vw, 34px); font-weight: 700; color: var(--ink); line-height: 1.2; letter-spacing: -.01em; margin-top: 14px; }
.tv-section-intro { margin-top: 14px; font-size: 15px; line-height: 1.75; color: var(--body); }
.trust-intro { margin-top: 14px; font-size: 15px; line-height: 1.75; color: var(--body); max-width: 620px; }

/* Credentials band. */
.tv-credentials-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 1px; margin: 0; background: var(--border); }
.tv-credential { padding: 24px; background: var(--white); text-align: center; }
.tv-credential dt { font-size: 17px; font-weight: 700; color: var(--ink); letter-spacing: .04em; }
.tv-credential dd { margin: 4px 0 0; font-size: 11px; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.tv-credentials-note { margin-top: 20px; font-size: 12.5px; color: var(--muted); text-align: center; }

/* FAQ accordion. */
.tv-faq-list { border-top: 1px solid var(--border); }
.tv-faq-item { border-bottom: 1px solid var(--border); }
.tv-faq-item summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 20px 0; cursor: pointer; list-style: none; font-size: 16px; font-weight: 600; color: var(--ink); }
.tv-faq-item summary::-webkit-details-marker { display: none; }
.tv-faq-item summary svg { color: var(--blue); flex-shrink: 0; transition: transform .25s ease; }
.tv-faq-item[open] summary svg { transform: rotate(45deg); }
.tv-faq-item .tv-prose { padding-bottom: 24px; }

/* Editor prose (page content outside the section builder). */
.tv-prose { color: var(--body); font-size: 15.5px; line-height: 1.8; }
.tv-prose > * + * { margin-top: 1.1em; }
.tv-prose h2, .tv-prose h3 { margin-top: 1.6em; color: var(--ink); line-height: 1.25; }
.tv-prose ul, .tv-prose ol { padding-left: 1.2em; }
.tv-prose li { margin-bottom: .4em; }
.tv-prose strong { color: var(--ink); font-weight: 600; }
.tv-prose a { color: var(--navy); border-bottom: 1px solid var(--border); }
.tv-prose-page, .tv-404 { padding-top: 160px; }
.tv-page-title { font-size: clamp(32px, 4.5vw, 52px); font-weight: 700; color: var(--ink); letter-spacing: -.02em; line-height: 1.1; margin-bottom: .4em; }
.tv-post-list { display: flex; flex-direction: column; gap: 32px; }
.tv-post-card { padding-bottom: 32px; border-bottom: 1px solid var(--border); }
.tv-post-card h2 { font-size: 22px; line-height: 1.3; color: var(--ink); }
.tv-post-meta { font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); margin: 8px 0 12px; }
.tv-search { display: flex; gap: 10px; margin-top: 24px; }
.tv-search input { flex: 1; padding: 13px 16px; border: 1.5px solid var(--border); font-family: var(--ff); font-size: 15px; }
.tv-search button { padding: 13px 24px; background: var(--navy); color: var(--white); border: 0; font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }

/* Header extras. */
.nav-logo-text { font-size: 19px; font-weight: 600; color: var(--ink); letter-spacing: .02em; }
.announcement-bar { position: relative; z-index: 301; background: var(--navy); color: var(--white); text-align: center; padding: 9px 5%; font-size: 12.5px; letter-spacing: .04em; }
.nav-links, .nav-links li { margin: 0; padding: 0; }
.admin-bar #nav { top: 32px; }
.admin-bar .mob-menu { top: 104px; }
@media (max-width: 782px) {
  .admin-bar #nav { top: 46px; }
  .admin-bar .mob-menu { top: 118px; }
}

/* Footer extras. */
.footer-legal { display: flex; gap: 18px; font-size: 12px; }
.footer-legal a { color: var(--muted); }
.footer-legal a:hover { color: var(--navy); }
.cta-band-mark img { height: 40px; width: auto; margin-bottom: 14px; }
.footer-crisis p + p { margin-top: 6px; }

/* Office map when placed in the home page's contact band. */
.contact-top .office-map { margin-top: 0; }

/* The home page's contact band shows the phone number as plain text; the
   theme links it (tap to call) without changing how it looks. */
.contact-top .cd-body a { color: inherit; }

/* The home layout of the contact block, wherever it is placed. */
.tv-contact .contact-form-wrap { max-width: 1180px; margin: 0 auto; padding: 60px 5% 80px; display: grid; grid-template-columns: 1fr 1fr; gap: 80px; background: none; border: 0; }
@media (max-width: 960px) {
  .tv-contact .contact-form-wrap { grid-template-columns: 1fr; gap: 40px; }
}

/* Gravity Forms, styled as the static build's form (.ff rows, .btn-submit).
   Gravity Forms' own stylesheet is switched off by the theme (see
   inc/enqueue.php), so everything the form needs is here. */
.tv-form-notice { padding: 14px 16px; margin-bottom: 22px; background: var(--blue-pale); border-left: 3px solid var(--blue); font-size: 13.5px; line-height: 1.6; color: var(--body); }
.tv-form .gform_wrapper { margin: 0; }
.tv-form .gform_heading, .tv-form .gform_required_legend { display: none; }
/* Two columns like the static .ff-row (1fr 1fr), so half-width fields size
   the column exactly as the static inputs do. Forms that use third or
   quarter widths switch to a 12-column grid. */
.tv-form .gform_fields { display: grid; grid-template-columns: 1fr 1fr; column-gap: 14px; row-gap: 16px; margin: 0; padding: 0; list-style: none; }
.tv-form .gform_fields:has(.gfield--width-third, .gfield--width-quarter) { grid-template-columns: repeat(12, minmax(0, 1fr)); }
.tv-form .gfield { grid-column: 1 / -1; display: flex; flex-direction: column; gap: 6px; margin: 0; padding: 0; border: 0; }
.tv-form .gfield--width-half { grid-column: span 1; }
.tv-form .gform_fields:has(.gfield--width-third, .gfield--width-quarter) .gfield--width-half { grid-column: span 6; }
.tv-form .gfield--width-third { grid-column: span 4; }
.tv-form .gfield--width-quarter { grid-column: span 3; }
.tv-form .gfield_label, .tv-form .gform-field-label, .tv-form .gfield legend {
  display: block; margin: 0; padding: 0; font-family: var(--ff); font-size: 11px; font-weight: 600; line-height: 1;
  letter-spacing: .12em; text-transform: uppercase; color: var(--muted);
}
.tv-form .gfield_required, .tv-form .gfield_required_asterisk { color: inherit; font-weight: inherit; }
.tv-form .gfield_label > .gfield_required { margin-left: .37em; }
.tv-form .gfield_required .gfield_required { margin-left: 0; }
/* Fields keep their natural width and are stretched by their flex parent,
   exactly like the static .ff inputs — so the form column sizes itself the
   same way the static one does. */
.tv-form .ginput_container { margin: 0; display: flex; flex-direction: column; }
.tv-form input[type="text"], .tv-form input[type="email"], .tv-form input[type="tel"], .tv-form input[type="number"], .tv-form input[type="url"],
.tv-form select, .tv-form textarea {
  display: block; background: var(--white); border: 1.5px solid var(--border); border-radius: 0; box-shadow: none;
  padding: 13px 16px; font-family: var(--ff); font-size: 15px; color: var(--ink);
  outline: none; transition: border-color .2s; -webkit-appearance: none; appearance: none;
}
.tv-form input:focus, .tv-form select:focus, .tv-form textarea:focus { border-color: var(--blue); }
.tv-style-contact .tv-form input:focus, .tv-style-contact .tv-form select:focus, .tv-style-contact .tv-form textarea:focus { border-color: var(--navy); }
.tv-form input::placeholder, .tv-form textarea::placeholder { color: var(--muted); font-weight: 300; opacity: 1; }
.tv-form textarea { min-height: 120px; height: 120px; resize: vertical; }
.tv-style-contact .tv-form textarea { min-height: 130px; height: 130px; }
.tv-form select { color: var(--ink); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236b7d94' stroke-width='1.5' fill='none'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 16px center; padding-right: 40px; }
.tv-form .gfield_checkbox, .tv-form .gfield_radio { display: flex; flex-direction: column; gap: 8px; }
.tv-form .gchoice { display: flex; align-items: flex-start; gap: 10px; font-size: 13.5px; line-height: 1.6; color: var(--body); }
.tv-form .gchoice input { margin-top: 4px; flex-shrink: 0; }
.tv-form .gfield_description { font-size: 12.5px; line-height: 1.5; color: var(--muted); }
.tv-form .gform_footer, .tv-form .gform_page_footer { display: flex; flex-direction: column; gap: 16px; margin: 16px 0 0; padding: 0; }
.tv-form .gform_footer .btn-submit, .tv-form .gform_footer .gform_button { width: 100%; cursor: pointer; font-family: var(--ff); line-height: normal; }
.tv-form .gform_footer input.gform_button {
  background: var(--navy); color: var(--white); border: none; border-radius: 0;
  font-size: 13px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; padding: 18px; transition: background .2s;
}
.tv-form .gform_footer input.gform_button:hover { background: var(--navy-light); }
.tv-form .gform_ajax_spinner { margin-left: 10px; width: 16px; height: 16px; }
.tv-form .gform_validation_container, .tv-form .gfield--type-honeypot, .tv-form .gform_hidden,
.tv-form .gfield_visibility_hidden { display: none !important; }
.tv-form .gform_validation_errors { margin-bottom: 20px; padding: 14px 16px; border-left: 3px solid #b3261e; background: #fbeceb; font-size: 13.5px; line-height: 1.6; color: var(--ink); }
.tv-form .gform_validation_errors h2 { font-size: 13.5px; font-weight: 600; color: #b3261e; }
.tv-form .gfield_error input, .tv-form .gfield_error select, .tv-form .gfield_error textarea { border-color: #b3261e; }
.tv-form .validation_message { font-size: 12.5px; color: #b3261e; }
.tv-form .gform_confirmation_message { padding: 20px; background: var(--blue-pale); border-left: 3px solid var(--blue); font-size: 14.5px; line-height: 1.7; color: var(--body); }
.tv-form .gform_confirmation_message p + p { margin-top: 10px; }
@media (max-width: 560px) {
  .tv-form .gform_fields .gfield.gfield--width-half, .tv-form .gform_fields .gfield.gfield--width-third, .tv-form .gform_fields .gfield.gfield--width-quarter { grid-column: 1 / -1; }
  /* Side-by-side pairs stack 14px apart, as the build's .ff-row does. */
  .tv-form .gfield--width-half + .gfield--width-half { margin-top: -2px; }
}

/* Accessibility helpers. */
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.tv-skip { position: absolute; left: -9999px; top: 0; z-index: 999; padding: 12px 20px; background: var(--navy); color: var(--white); font-size: 13px; letter-spacing: .08em; text-transform: uppercase; }
.tv-skip:focus { left: 0; }
:focus-visible { outline: 2px solid var(--navy); outline-offset: 3px; }

/* Admin-only hints. */
.tv-admin-notice, .tv-editor-hint { margin: 20px auto; padding: 14px 18px; max-width: 760px; border: 1px dashed var(--border); background: var(--smoke); font-size: 14px; color: var(--body); }
.tv-admin-notice { margin-top: 110px; }
