/* ============================================================
   Therapy for Black Women — shared design system
   Brand colors: #FF1616 (red), #008037 (green), #010101 (black)
   ============================================================ */

:root{
  --paper:#FFFFFF;
  --paper-raised:#FFFFFF;
  --ink:#010101;
  --ink-soft:#4A4A4A;
  --ink-faint:#767676;

  --red:#FF1616;        /* true brand swatch — large text, icons, decorative */
  --red-strong:#E01414; /* AA-safe on white — buttons, small text, links */
  --red-deep:#B80F0F;   /* hover / pressed */
  --red-wash:#FFEAEA;

  --green:#008037;      /* AA-safe on white already (~5:1) */
  --green-deep:#005C27;
  --green-wash:#E5F4EB;

  --gold:#F2C744;       /* logo silhouette accent — used sparingly */

  --blush:#F2F2F2;
  --sand:#E8E8E8;
  --line:rgba(1,1,1,.14);
  --line-soft:rgba(1,1,1,.08);
  --focus:#1E63C7;
  --shadow-1:0 1px 2px rgba(0,0,0,.06), 0 8px 24px -12px rgba(0,0,0,.18);
  --shadow-2:0 2px 4px rgba(0,0,0,.08), 0 20px 48px -16px rgba(0,0,0,.28);
  --radius-card:22px;
  --font-display:'Fraunces', ui-serif, Georgia, 'Times New Roman', serif;
  --font-body:'Archivo', ui-sans-serif, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}
/* This brand is intentionally light, bright, and white-dominant by design —
   the palette stays fixed regardless of system dark-mode preference so the
   site never reads as a dark theme. */

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto;} *{animation-duration:.001ms !important; transition-duration:.001ms !important;} }

html, body{overflow-x:hidden;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%; display:block;}
a{color:inherit;}
h1,h2,h3,h4{font-family:var(--font-display); margin:0; text-wrap:balance; font-weight:600;}
p{margin:0;}
ul{margin:0; padding:0; list-style:none;}
button{font:inherit; cursor:pointer;}
:focus-visible{outline:2.5px solid var(--focus); outline-offset:3px; border-radius:4px;}

.wrap{max-width:1200px; margin:0 auto; padding-inline:clamp(20px,5vw,48px);}

/* ---------- Heritage rule ---------- */
.heritage-rule{display:flex; height:4px;}
.heritage-rule span{flex:1;}
.heritage-rule span:nth-child(1){background:var(--red);}
.heritage-rule span:nth-child(2){background:var(--ink);}
.heritage-rule span:nth-child(3){background:var(--green);}

.eyebrow{
  font-family:var(--font-body); font-weight:700; font-size:.72rem; letter-spacing:.14em;
  text-transform:uppercase; color:var(--red-strong); display:inline-flex; align-items:center; gap:.5em;
}
.eyebrow::before{content:""; width:22px; height:2px; background:var(--red); display:inline-block; border-radius:2px;}
.eyebrow.green{color:var(--green);}
.eyebrow.green::before{background:var(--green);}
.lede{font-size:clamp(1.05rem,1.4vw,1.2rem); color:var(--ink-soft); max-width:56ch;}

section{padding-block:clamp(64px,9vw,112px);}
.section-head{max-width:760px; margin-bottom:clamp(36px,5vw,56px);}
.section-head h2{font-size:clamp(1.9rem,3.4vw,2.7rem); margin-top:.5em; line-height:1.12;}

/* ---------- Inner page header band ---------- */
.page-head{padding-block:clamp(48px,7vw,84px) clamp(40px,6vw,64px); background:var(--blush);}
.page-head h1{font-size:clamp(2.1rem,4.2vw,3.3rem); margin-top:.5em; line-height:1.08;}
.page-head .lede{margin-top:16px;}
.breadcrumb{font-size:.82rem; color:var(--ink-faint); font-weight:600;}
.breadcrumb a{text-decoration:none;}
.breadcrumb a:hover{color:var(--red-strong);}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.55em;
  font-family:var(--font-body); font-weight:700; font-size:.95rem;
  padding:.85em 1.5em; border-radius:999px; border:1.5px solid transparent;
  text-decoration:none; white-space:nowrap; transition:transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease;
}
.btn:active{transform:translateY(1px);}
.btn-primary{background:var(--red-strong); color:#fff; box-shadow:var(--shadow-1);}
.btn-primary:hover{background:var(--red-deep); box-shadow:var(--shadow-2); transform:translateY(-1px);}
.btn-outline{background:transparent; color:var(--ink); border-color:var(--line);}
.btn-outline:hover{border-color:var(--ink); background:var(--line-soft);}
.btn-ghost{background:transparent; color:var(--ink); border-color:transparent; padding:.85em .4em;}
.btn-ghost:hover{color:var(--red-strong);}
.btn-lg{padding:1.05em 1.9em; font-size:1.02rem;}
.btn svg{width:1em; height:1em;}

/* ---------- Utility / announcement bar ---------- */
.announce{
  background:var(--ink); color:var(--paper); font-size:.84rem; font-weight:600;
  position:relative;
}
.announce-row{display:flex; align-items:center; justify-content:space-between; gap:1.2em; padding:.6em 1em;}
.announce-msg{flex:1; min-width:0;}
.announce a{color:var(--red); text-decoration:underline; text-underline-offset:2px;}
.announce-actions{display:flex; align-items:center; gap:1.4em; flex-shrink:0;}
.announce-phone{display:flex; align-items:center; gap:.45em; text-decoration:none; color:var(--paper); opacity:.9; white-space:nowrap;}
.announce-phone:hover{opacity:1; color:var(--red);}
.announce-phone svg{width:14px; height:14px;}
.announce-book{color:var(--paper); text-decoration:none; font-weight:800; white-space:nowrap; border-left:1px solid rgba(255,255,255,.25); padding-left:1.4em;}
.announce-book:hover{color:var(--red);}
.announce .close{background:none; border:0; color:var(--paper); opacity:.7; font-size:1.1rem; line-height:1; padding:.2em; flex-shrink:0;}
.announce .close:hover{opacity:1;}
.announce[hidden]{display:none;}
@media (max-width:760px){
  .announce-phone{display:none;}
}
@media (max-width:560px){
  .announce-book{display:none;}
}

/* ---------- Floating quick-book button ---------- */
.fab-book{
  position:fixed; right:22px; bottom:22px; z-index:60; width:76px; height:76px; border-radius:22px;
  overflow:hidden; display:flex; align-items:center; justify-content:center;
  box-shadow:var(--shadow-2); text-decoration:none; transition:transform .2s ease, box-shadow .2s ease;
}
.fab-book:hover{ transform:translateY(-3px); box-shadow:0 16px 32px rgba(0,0,0,.22); }
.fab-book img{width:100%; height:100%; object-fit:cover; display:block;}
@media (max-width:640px){ .fab-book{width:64px; height:64px; right:16px; bottom:16px; border-radius:18px;} }

/* ---------- Chat widget ---------- */
.chat-panel{
  position:fixed; right:22px; bottom:108px; z-index:61; width:min(360px,calc(100vw - 32px));
  max-height:min(70vh,560px); background:var(--paper-raised); border-radius:22px; box-shadow:0 24px 56px rgba(0,0,0,.28);
  display:flex; flex-direction:column; overflow:hidden; border:1px solid var(--line);
}
.chat-panel[hidden]{display:none;}
.chat-head{
  background:var(--ink); color:#fff; padding:16px 18px; display:flex; align-items:center; justify-content:space-between;
  font-weight:700; font-size:.92rem;
}
.chat-close{background:none; border:0; color:#fff; font-size:1.3rem; line-height:1; cursor:pointer; padding:2px 6px;}
.chat-log{flex:1; overflow-y:auto; padding:16px 18px; display:flex; flex-direction:column; gap:10px; background:var(--paper);}
.chat-bubble{max-width:85%; padding:.7em 1em; border-radius:16px; font-size:.86rem; line-height:1.5;}
.chat-bubble.bot{background:var(--paper-raised); border:1px solid var(--line); align-self:flex-start; border-bottom-left-radius:4px;}
.chat-bubble.user{background:var(--red-strong); color:#fff; align-self:flex-end; border-bottom-right-radius:4px;}
.chat-bubble a{color:inherit; text-decoration:underline;}
.chat-quick{display:flex; flex-wrap:wrap; gap:8px; padding:0 18px 12px; background:var(--paper);}
.chat-quick-btn{
  border:1.5px solid var(--line); background:var(--paper-raised); border-radius:999px; padding:.4em .9em;
  font-size:.76rem; font-weight:700; color:var(--ink-soft); cursor:pointer; transition:background .15s;
}
.chat-quick-btn:hover{background:var(--blush);}
.chat-input-row{display:flex; gap:8px; padding:12px 14px; border-top:1px solid var(--line); background:var(--paper-raised);}
.chat-input-row input{
  flex:1; padding:.6em .9em; border-radius:999px; border:1.5px solid var(--line); background:var(--paper);
  color:var(--ink); font-size:.86rem;
}
.chat-send{
  width:38px; height:38px; border-radius:50%; border:0; background:var(--red-strong); color:#fff; cursor:pointer;
  display:flex; align-items:center; justify-content:center; font-size:.95rem; flex-shrink:0;
}
.chat-send:hover{background:var(--red-deep);}
.chat-disclaimer{font-size:.68rem; color:var(--ink-faint); padding:0 16px 12px; background:var(--paper-raised); line-height:1.4;}
@media (max-width:640px){ .chat-panel{right:16px; bottom:88px;} }

/* ---------- Photo placeholder blocks ---------- */
.photo-block{
  position:relative; border-radius:22px; overflow:hidden;
  background:linear-gradient(155deg, var(--blush) 0%, var(--sand) 100%);
  border:1px solid var(--line);
  display:flex; align-items:center; justify-content:center; flex-direction:column; gap:10px;
  color:var(--ink-faint); text-align:center; padding:24px;
}
.photo-block svg{width:32px; height:32px; color:var(--red); opacity:.8;}
.photo-block span{font-size:.78rem; font-weight:700; max-width:24ch; line-height:1.4;}
.photo-block.ratio-wide{aspect-ratio:16/7;}
.photo-block.ratio-tall{aspect-ratio:3/4;}
.photo-block.ratio-square{aspect-ratio:1/1;}
.photo-block.ratio-banner{aspect-ratio:21/9;}
@media (max-width:640px){ .photo-block.ratio-wide, .photo-block.ratio-banner{aspect-ratio:4/3;} }

/* ---------- Full photo banner, edges blended/faded into the page ---------- */
.photo-fade-banner{position:relative; aspect-ratio:21/9;}
.photo-fade-banner img{
  width:100%; height:100%; object-fit:cover; border-radius:0;
  -webkit-mask-image:radial-gradient(ellipse 78% 82% at center, #000 52%, transparent 100%);
  mask-image:radial-gradient(ellipse 78% 82% at center, #000 52%, transparent 100%);
}
@media (max-width:640px){ .photo-fade-banner{aspect-ratio:4/3;} }

/* ---------- Flowing value pillars ---------- */
.value-flow{display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(20px,3vw,36px);}
@media (max-width:900px){.value-flow{grid-template-columns:repeat(2,1fr);}}
@media (max-width:520px){.value-flow{grid-template-columns:1fr;}}
.value-flow-item h3{font-size:1.55rem; display:inline-block; position:relative; padding-bottom:12px; font-weight:600;}
.value-flow-item h3::after{content:""; position:absolute; left:0; bottom:0; width:40px; height:3px; border-radius:2px; background:var(--red);}
.value-flow-item:nth-child(2) h3::after{background:var(--green);}
.value-flow-item:nth-child(3) h3::after{background:var(--ink);}
.value-flow-item:nth-child(4) h3::after{background:var(--red);}
.value-flow-item p{margin-top:16px; color:var(--ink-soft); font-size:.98rem; max-width:38ch; line-height:1.6;}

/* ---------- New / returning client split ---------- */
.start-split{display:grid; grid-template-columns:1fr 1fr; gap:24px;}
@media (max-width:760px){.start-split{grid-template-columns:1fr;}}
.start-panel{border-radius:26px; padding:clamp(28px,4vw,40px); background:var(--paper-raised); border:1px solid var(--line); box-shadow:var(--shadow-1);}
.start-panel.accent{background:var(--ink); border-color:var(--ink);}
.start-panel.accent .eyebrow{color:var(--red);}
.start-panel.accent h3{color:var(--paper);}
.start-panel.accent p{color:rgba(250,250,250,.68);}
.start-panel h3{margin-top:.5em; font-size:1.5rem;}
.start-panel p{margin-top:12px; color:var(--ink-soft);}
.start-actions{display:flex; flex-wrap:wrap; gap:12px; margin-top:22px;}
.start-panel.accent .btn-outline{border-color:rgba(250,250,250,.3); color:var(--paper);}
.start-panel.accent .btn-outline:hover{border-color:var(--paper); background:rgba(250,250,250,.08);}

/* ---------- Header ---------- */
header.site{
  position:sticky; top:0; z-index:50; background:color-mix(in srgb, var(--paper) 88%, transparent);
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line-soft);
}
.nav-row{display:flex; align-items:center; justify-content:space-between; gap:.75rem; padding-block:10px;}
.brand{display:flex; align-items:center; gap:.65em; text-decoration:none; flex-shrink:0; min-width:0;}
.brand-logo{height:44px; width:auto; flex-shrink:0;}
.brand-name{font-family:var(--font-display); font-weight:600; font-size:1.05rem; color:var(--ink); letter-spacing:-.01em;}
.brand-name em{color:var(--red-strong); font-style:normal;}

nav.primary{display:flex; align-items:center; gap:1.35rem; flex-wrap:nowrap;}
nav.primary a{font-size:.87rem; font-weight:600; text-decoration:none; color:var(--ink-soft); transition:color .15s; white-space:nowrap; position:relative; padding-bottom:2px;}
nav.primary a:hover{color:var(--red-strong);}
nav.primary a.active{color:var(--ink);}
nav.primary a.active::after{content:""; position:absolute; left:0; right:0; bottom:-6px; height:2px; background:var(--red);}
.nav-actions{display:flex; align-items:center; gap:.6rem; flex-shrink:0;}
.nav-actions .btn{white-space:nowrap;}
.lock-ic{width:14px; height:14px;}

.menu-toggle{display:none; background:none; border:0; padding:8px; color:var(--ink);}
.menu-toggle svg{width:24px; height:24px;}

#mobile-nav{display:none;}

@media (max-width: 640px){
  .brand-name{display:none;}
  .btn-primary.btn{padding:.7em 1.1em; font-size:.86rem;}
}

@media (max-width: 1240px){
  nav.primary{display:none;}
  .nav-actions .btn-outline span.label-full{display:none;}
  .menu-toggle{display:inline-flex;}
  #mobile-nav.open{
    display:flex; flex-direction:column; gap:2px; position:absolute; left:0; right:0; top:100%;
    background:var(--paper-raised); border-bottom:1px solid var(--line); box-shadow:var(--shadow-2); padding:10px 20px 18px;
  }
  #mobile-nav a{padding:12px 4px; text-decoration:none; color:var(--ink); font-weight:600; border-bottom:1px solid var(--line-soft);}
  #mobile-nav a.active{color:var(--red-strong);}
}

/* ---------- Hero ---------- */
.hero{padding-top:clamp(52px,7vw,88px); padding-bottom:clamp(56px,7vw,96px);}
.hero-intro{max-width:760px;}
.hero h1{font-size:clamp(2.4rem,5vw,4rem); line-height:1.04; letter-spacing:-.01em;}
.hero h1 em{font-style:italic; color:var(--red); font-weight:500;}
.hero .lede{margin-top:22px; font-size:clamp(1.05rem,1.6vw,1.22rem);}
.hero-ctas{display:flex; flex-wrap:wrap; gap:14px; margin-top:34px;}
.returning{margin-top:20px; font-size:.9rem; color:var(--ink-faint);}
.returning a{color:var(--ink); font-weight:700; text-decoration:underline; text-underline-offset:3px; text-decoration-color:var(--line);}
.returning a:hover{text-decoration-color:var(--red); color:var(--red-strong);}

/* Full-width editorial photo band beneath the hero intro */
.hero-art{
  position:relative; width:100%; aspect-ratio:16/7; overflow:hidden; background:var(--blush);
  margin-top:clamp(36px,5vw,56px); cursor:pointer;
}
@media (max-width:760px){ .hero-art{ aspect-ratio:4/3; } }
.hero-art img{
  width:100%; height:100%; object-fit:cover; object-position:center 32%;
  transition:transform .9s cubic-bezier(.22,.61,.36,1);
}
.hero-art:hover img, .hero-art:focus-visible img{ transform:scale(1.05); }
.hero-art::before{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(180deg, rgba(255,255,255,.28) 0%, rgba(255,255,255,0) 28%, rgba(255,255,255,0) 70%, rgba(255,255,255,.26) 100%);
}
.hero-art .frame-caption{
  position:absolute; left:clamp(20px,5vw,48px); bottom:clamp(18px,3vw,32px); color:#fff; font-size:.9rem; font-weight:700;
  background:rgba(16,10,8,.45); backdrop-filter:blur(6px); padding:.8em 1.15em; border-radius:12px;
  opacity:0; transform:translateY(10px); transition:opacity .35s ease, transform .35s ease;
}
.hero-art:hover .frame-caption, .hero-art:focus-visible .frame-caption{ opacity:1; transform:translateY(0); }
.badge-row{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:18px; overflow:hidden; margin-top:56px;}
@media (max-width:760px){.badge-row{grid-template-columns:repeat(2,1fr);}}
.badge-cell{background:var(--paper-raised); padding:22px 16px; text-align:center;}
.badge-cell .num{display:block; color:var(--red); margin-bottom:8px;}
.badge-cell .num.green-accent{color:var(--green);}
.badge-cell .num svg{width:24px; height:24px;}
.badge-cell .num.badge-icon{margin:0 auto 12px;}
.badge-cell .badge-icon img{width:68px; height:68px; margin:0 auto; object-fit:contain;}
.badge-cell p{font-weight:700; font-size:.88rem; line-height:1.3;}

/* ---------- Mission ---------- */
.band{background:var(--blush);}
.mission-grid{display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(28px,5vw,72px); align-items:start;}
@media (max-width:880px){.mission-grid{grid-template-columns:1fr;}}
.pull{font-family:var(--font-display); font-style:italic; font-weight:500; font-size:clamp(1.5rem,2.6vw,2rem); line-height:1.3;}
.mission-body p + p{margin-top:1.1em;}
.mission-body p{color:var(--ink-soft); font-size:1.05rem;}
.mission-cards{display:grid; grid-template-columns:repeat(2,1fr); gap:24px; margin-top:44px;}
@media (max-width:760px){.mission-cards{grid-template-columns:1fr;}}
.mission-card{background:var(--paper-raised); border-radius:20px; padding:30px 26px; box-shadow:var(--shadow-1);}
.mission-card .mission-num{display:block; font-family:var(--font-display); font-size:1.7rem; font-weight:600; color:var(--red); opacity:.85; line-height:1;}
.mission-card h3{margin-top:14px; font-size:1.1rem;}
.mission-card p{margin-top:10px; color:var(--ink-soft); font-size:.94rem; line-height:1.6;}
.mission-card:nth-child(2) .mission-num{color:var(--green);}
.mission-card:nth-child(3) .mission-num{color:var(--ink);}
.text-link{color:var(--ink); font-weight:700; text-decoration:underline; text-decoration-color:var(--red); text-underline-offset:4px;}
.text-link:hover{color:var(--red-strong);}

/* ---------- Cards (services / resources) ---------- */
.grid-3{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
@media (max-width:920px){.grid-3{grid-template-columns:1fr;}}
.grid-2{display:grid; grid-template-columns:repeat(2,1fr); gap:24px;}
@media (max-width:760px){.grid-2{grid-template-columns:1fr;}}
.grid-4{display:grid; grid-template-columns:repeat(4,1fr); gap:20px;}
@media (max-width:920px){.grid-4{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.grid-4{grid-template-columns:1fr;}}

.card{
  position:relative; background:var(--paper-raised); border:1px solid var(--line); border-radius:var(--radius-card);
  padding:30px 28px; display:flex; flex-direction:column; gap:14px; box-shadow:var(--shadow-1);
  transition:transform .2s ease, box-shadow .2s ease;
}
.card:hover{transform:translateY(-3px); box-shadow:var(--shadow-2);}
.card.folded::after{
  content:""; position:absolute; top:0; right:0; width:26px; height:26px;
  background:linear-gradient(135deg, transparent 50%, var(--blush) 50%);
  border-radius:0 var(--radius-card) 0 8px; box-shadow:-2px 2px 4px rgba(0,0,0,.08);
}
.card-icon{width:46px; height:46px; border-radius:13px; background:var(--red-wash); color:var(--red); display:flex; align-items:center; justify-content:center; flex-shrink:0;}
.card-icon.green{background:var(--green-wash); color:var(--green);}
.card-icon svg{width:24px; height:24px;}
.card h3{font-size:1.28rem; font-weight:600;}
.card p.desc{color:var(--ink-soft); font-size:.97rem; flex:1;}
.card-foot{display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:6px; flex-wrap:wrap;}
.link-arrow{display:inline-flex; align-items:center; gap:.4em; font-weight:700; font-size:.92rem; color:var(--ink); text-decoration:none;}
.link-arrow svg{width:15px; height:15px; transition:transform .15s;}
.link-arrow:hover{color:var(--red-strong);}
.link-arrow:hover svg{transform:translateX(3px);}
.tag{font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:var(--ink-faint); background:var(--blush); padding:.35em .75em; border-radius:999px;}

/* ---------- Support topics ---------- */
.support-card{background:var(--paper-raised); border:1px solid var(--line); border-radius:18px; padding:24px; box-shadow:var(--shadow-1);}
.support-card h4{font-size:1.05rem; margin-bottom:8px;}
.support-card p{font-size:.92rem; color:var(--ink-soft);}
.support-card .cite{display:block; margin-top:10px; font-size:.76rem; color:var(--ink-faint);}

/* ---------- Team ---------- */
.team-grid{display:grid; grid-template-columns:minmax(320px,1.05fr) 1fr; gap:clamp(32px,5vw,64px); align-items:center;}
@media (max-width:840px){.team-grid{grid-template-columns:1fr;}}
.portrait{
  aspect-ratio:3/3.6; border-radius:24px; position:relative; overflow:hidden; box-shadow:var(--shadow-2); background:var(--blush);
  display:flex; align-items:center; justify-content:center; max-height:640px;
}
.portrait img{width:100%; height:100%; object-fit:contain; object-position:center center; padding:12px; box-sizing:border-box;}
.cred-list{display:flex; flex-direction:column; gap:8px; margin-top:16px;}
.cred-list li{font-size:.92rem; color:var(--ink-soft); padding-left:1.4em; position:relative;}
.cred-list li::before{content:"—"; position:absolute; left:0; color:var(--red-strong);}
.team-actions{display:flex; flex-wrap:wrap; gap:12px; margin-top:24px;}
details.bio-toggle summary{cursor:pointer; font-weight:700; color:var(--ink); list-style:none; display:inline-flex; align-items:center; gap:.4em; margin-top:18px;}
details.bio-toggle summary::marker{content:"";}
details.bio-toggle summary svg{width:14px; height:14px; transition:transform .2s;}
details.bio-toggle[open] summary svg{transform:rotate(180deg);}
details.bio-toggle .bio-text{margin-top:14px; color:var(--ink-soft); max-width:62ch;}
.filter-note{display:flex; align-items:center; gap:.6em; font-size:.85rem; color:var(--ink-faint); margin-top:-8px; margin-bottom:28px;}
.filter-note svg{width:16px; height:16px; flex-shrink:0;}

/* ---------- Steps ---------- */
.steps{display:grid; grid-template-columns:repeat(3,1fr); gap:28px; counter-reset:step;}
@media (max-width:860px){.steps{grid-template-columns:1fr;}}
.step{position:relative; padding-top:8px;}
.step .step-num{font-family:var(--font-display); font-size:2.6rem; font-weight:600; color:var(--red); line-height:1; opacity:.9;}
.step h3{margin-top:14px; font-size:1.15rem;}
.step p{margin-top:8px; color:var(--ink-soft); font-size:.95rem;}
.step:not(:last-child)::after{
  content:""; position:absolute; top:22px; left:calc(100% + 14px); width:calc(28px - 0px); height:1.5px; background:var(--line);
}
@media (max-width:860px){.step::after{display:none;}}

/* ---------- Booking ---------- */
.booking-panel{background:var(--paper-raised); border:1px solid var(--line); border-radius:28px; box-shadow:var(--shadow-2); padding:clamp(24px,4vw,44px); display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(24px,4vw,48px);}
@media (max-width:900px){.booking-panel{grid-template-columns:1fr;}}
.field{display:flex; flex-direction:column; gap:6px;}
.field label{font-size:.82rem; font-weight:700; color:var(--ink);}
.field input, .field select, .field textarea{
  font:inherit; padding:.75em .9em; border-radius:12px; border:1.5px solid var(--line); background:var(--paper);
  color:var(--ink); width:100%;
}
.field input:focus, .field select:focus, .field textarea:focus{border-color:var(--red-strong);}
.form-grid{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
@media (max-width:520px){.form-grid{grid-template-columns:1fr;}}
.radio-row{display:flex; gap:18px; flex-wrap:wrap;}
.radio-opt{display:flex; align-items:center; gap:.5em; font-size:.92rem; font-weight:600;}
.radio-opt input{width:16px; height:16px; accent-color:var(--red-strong);}
.form-note{font-size:.82rem; color:var(--ink-faint); background:var(--blush); border-radius:12px; padding:.9em 1.1em; line-height:1.5;}
.success-msg{display:none; align-items:flex-start; gap:.7em; background:var(--green-wash); border:1px solid var(--line); border-radius:14px; padding:1em 1.2em; margin-top:16px; font-size:.92rem;}
.success-msg.show{display:flex;}
.success-msg svg{width:18px; height:18px; color:var(--green); flex-shrink:0; margin-top:2px;}
.checklist{display:flex; flex-direction:column; gap:14px; margin-top:8px;}
.checklist li{display:flex; gap:.7em; font-size:.92rem; color:var(--ink-soft);}
.checklist svg{width:18px; height:18px; color:var(--green); flex-shrink:0; margin-top:2px;}

/* ---------- Podcast (bold light band) ---------- */
.band-bold{background:linear-gradient(180deg, var(--blush) 0%, var(--paper) 100%);}
.podcast-grid{display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(32px,5vw,64px); align-items:center;}
@media (max-width:900px){.podcast-grid{grid-template-columns:1fr;}}
.cover-art{
  aspect-ratio:1/1; border-radius:24px; position:relative; overflow:hidden;
  background:var(--paper-raised); border:1px solid var(--line);
  display:flex; align-items:center; justify-content:center; box-shadow:var(--shadow-2);
}
.cover-art img{width:100%; height:100%; object-fit:cover;}
.soon-badge{position:absolute; top:16px; left:16px; background:var(--red-strong); color:#fff; font-size:.72rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; padding:.5em .9em; border-radius:999px; box-shadow:var(--shadow-1);}
.platform-row{display:flex; gap:12px; flex-wrap:wrap; margin-top:22px;}
.platform-pill{display:flex; align-items:center; gap:.6em; border:1.5px solid var(--line); color:var(--ink-soft); background:var(--paper-raised); padding:.45em 1em .45em .45em; border-radius:999px; font-size:.82rem; font-weight:700;}
.icon-badge{width:24px; height:24px; border-radius:50%; display:flex; align-items:center; justify-content:center; color:#fff; flex-shrink:0;}
.icon-badge svg{width:13px; height:13px;}
.icon-badge.yt{background:#FF0000;}
.icon-badge.sp{background:#1DB954;}
.icon-badge.ap{background:linear-gradient(135deg,#9B4DFF,#D341A6);}
.podcast-form{display:flex; gap:10px; margin-top:26px; max-width:440px; flex-wrap:wrap;}
.podcast-form input{flex:1; min-width:200px; padding:.85em 1.1em; border-radius:999px; border:1.5px solid var(--line); background:var(--paper-raised); color:var(--ink);}
.podcast-form input::placeholder{color:var(--ink-faint);}
.podcast-note{margin-top:14px; font-size:.82rem; color:var(--ink-faint);}

/* ---------- Portal ---------- */
.portal-panel{display:grid; grid-template-columns:1fr 1fr; gap:clamp(24px,4vw,56px); align-items:center; background:var(--paper-raised); border:1px solid var(--line); border-radius:28px; padding:clamp(28px,4vw,48px); box-shadow:var(--shadow-1);}
@media (max-width:880px){.portal-panel{grid-template-columns:1fr;}}
.portal-icon{width:56px; height:56px; border-radius:16px; background:var(--red-wash); color:var(--red-strong); display:flex; align-items:center; justify-content:center; margin-bottom:18px;}
.portal-icon svg{width:26px; height:26px;}
.portal-list{display:flex; flex-direction:column; gap:16px;}
.portal-list li{display:flex; gap:.9em; align-items:flex-start; font-size:.95rem; color:var(--ink-soft);}
.portal-list svg{width:18px; height:18px; color:var(--green); flex-shrink:0; margin-top:3px;}
#portal-explain{display:none; margin-top:18px; background:var(--blush); border-radius:14px; padding:1.1em 1.3em; font-size:.9rem; color:var(--ink-soft); line-height:1.55;}
#portal-explain.show{display:block;}

/* ---------- Values ---------- */
.values-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:22px;}
@media (max-width:920px){.values-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.values-grid{grid-template-columns:1fr;}}
.value-item{padding-top:18px; border-top:2px solid var(--red);}
.value-item:nth-child(2n){border-top-color:var(--green);}
.value-item h4{font-size:1.05rem; margin-bottom:8px;}
.value-item p{font-size:.92rem; color:var(--ink-soft);}

/* ---------- Insurance table ---------- */
.insurance-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:24px;}
@media (max-width:760px){.insurance-grid{grid-template-columns:1fr;}}
.insurance-card{background:var(--paper-raised); border:1px solid var(--line); border-radius:20px; padding:26px 28px; box-shadow:var(--shadow-1);}
.insurance-card h4{font-size:.78rem; text-transform:uppercase; letter-spacing:.08em; color:var(--ink-faint); margin-bottom:16px;}
.plan-list{display:flex; flex-direction:column; gap:10px;}
.plan-list li{display:flex; align-items:center; gap:.7em; font-weight:600; font-size:.98rem;}
.plan-list svg{width:18px; height:18px; color:var(--green); flex-shrink:0;}
.ordered-steps{display:flex; flex-direction:column; gap:18px; counter-reset:ins;}
.ordered-steps li{display:flex; gap:16px; counter-increment:ins;}
.ordered-steps li::before{content:counter(ins); flex-shrink:0; width:30px; height:30px; border-radius:50%; background:var(--red-wash); color:var(--red-strong); font-weight:800; font-size:.85rem; display:flex; align-items:center; justify-content:center;}
.ordered-steps p{color:var(--ink-soft); font-size:.95rem; padding-top:3px;}

/* ---------- FAQ ---------- */
.faq-list{max-width:820px; display:flex; flex-direction:column; gap:12px;}
.faq-item{border:1px solid var(--line); border-radius:16px; background:var(--paper-raised); overflow:hidden;}
.faq-item summary{list-style:none; cursor:pointer; padding:20px 24px; display:flex; align-items:center; justify-content:space-between; gap:16px; font-weight:700; font-size:1rem;}
.faq-item summary::marker{content:"";}
.faq-item summary .plus{width:20px; height:20px; flex-shrink:0; position:relative;}
.faq-item summary .plus::before, .faq-item summary .plus::after{content:""; position:absolute; background:var(--ink); border-radius:2px; transition:transform .2s;}
.faq-item summary .plus::before{width:14px; height:2px; top:9px; left:3px;}
.faq-item summary .plus::after{width:2px; height:14px; left:9px; top:3px;}
.faq-item[open] summary .plus::after{transform:rotate(90deg); opacity:0;}
.faq-item .faq-a{padding:0 24px 22px; color:var(--ink-soft); font-size:.95rem; max-width:68ch;}
.faq-item .faq-a a{color:var(--ink); font-weight:700; text-decoration:underline;}
.faq-cat{font-size:.78rem; text-transform:uppercase; letter-spacing:.08em; color:var(--ink-faint); font-weight:700; margin:36px 0 14px;}
.faq-cat:first-child{margin-top:0;}

/* ---------- Contact ---------- */
.contact-grid{display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(28px,5vw,56px);}
@media (max-width:920px){.contact-grid{grid-template-columns:1fr;}}
.info-item{display:flex; gap:14px; padding-block:16px; border-bottom:1px solid var(--line-soft);}
.info-item:first-child{padding-top:0;}
.info-item svg{width:20px; height:20px; color:var(--red); flex-shrink:0; margin-top:2px;}
.info-item h4{font-size:.8rem; text-transform:uppercase; letter-spacing:.06em; color:var(--ink-faint); margin-bottom:4px;}
.social-row{display:flex; gap:10px; margin-top:20px;}
.social-btn{width:40px; height:40px; border-radius:12px; border:1.5px solid var(--line); display:flex; align-items:center; justify-content:center; text-decoration:none; color:var(--ink);}
.social-btn:hover{border-color:var(--red-strong); color:var(--red-strong);}
.social-btn svg{width:18px; height:18px;}
.crisis-box{margin-top:26px; border:1.5px solid var(--red); background:var(--red-wash); border-radius:16px; padding:18px 20px; display:flex; gap:14px;}
.crisis-box svg{width:22px; height:22px; color:var(--red-strong); flex-shrink:0; margin-top:1px;}
.crisis-box h4{font-size:.95rem; margin-bottom:4px;}
.crisis-box p{font-size:.87rem; color:var(--ink-soft); line-height:1.55;}
.crisis-box a{font-weight:700; color:var(--ink); text-decoration:underline;}
.contact-form{background:var(--paper-raised); border:1px solid var(--line); border-radius:24px; padding:clamp(24px,3vw,36px); box-shadow:var(--shadow-1);}
.consent-row{display:flex; gap:.7em; align-items:flex-start; margin-top:4px;}
.consent-row input{margin-top:4px; width:16px; height:16px; accent-color:var(--red-strong); flex-shrink:0;}
.consent-row label{font-size:.85rem; color:var(--ink-soft); line-height:1.5;}
.phi-warning{font-size:.82rem; color:var(--ink-faint); background:var(--blush); padding:.9em 1.1em; border-radius:12px; line-height:1.5;}

/* ---------- Final CTA ---------- */
.cta-final{
  background:var(--paper-raised); border:1.5px solid var(--line); border-top:5px solid var(--ink);
  border-radius:32px; margin-inline:clamp(20px,5vw,48px); padding:clamp(48px,8vw,88px) clamp(24px,6vw,64px); text-align:center;
  box-shadow:var(--shadow-1);
}
.cta-final h2{color:var(--ink); font-size:clamp(2rem,4.2vw,3.2rem);}
.cta-final .lede{color:var(--ink-soft); margin:18px auto 0; text-align:center;}
.cta-btns{display:flex; flex-wrap:nowrap; justify-content:center; gap:14px; margin-top:32px; max-width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch;}
.cta-btns .btn{flex:0 0 auto;}
@media (max-width:640px){
  .cta-btns{gap:8px;}
  .cta-btns .btn{padding:.7em 1.1em; font-size:.82rem;}
}
@media (max-width:400px){
  .cta-btns .btn{padding:.6em .85em; font-size:.74rem;}
}
.cta-final .btn-outline{border-color:var(--line); color:var(--ink);}
.cta-final .btn-outline:hover{border-color:var(--ink); background:var(--line-soft);}

/* ---------- Footer ---------- */
footer{padding-block:56px 40px; border-top:1px solid var(--line);}
.foot-grid{display:grid; grid-template-columns:1.3fr 1fr 1fr 1fr; gap:32px;}
@media (max-width:820px){.foot-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:520px){.foot-grid{grid-template-columns:1fr;}}
.foot-logo{height:200px; width:auto; margin-bottom:14px; border-radius:8px;}
.foot-col h5{font-size:.78rem; text-transform:uppercase; letter-spacing:.08em; color:var(--ink-faint); margin-bottom:14px;}
.foot-col ul{display:flex; flex-direction:column; gap:10px;}
.foot-col a{font-size:.9rem; text-decoration:none; color:var(--ink-soft);}
.foot-col a:hover{color:var(--red-strong);}
.foot-bottom{margin-top:44px; padding-top:24px; border-top:1px solid var(--line-soft); display:flex; flex-wrap:wrap; gap:12px 24px; justify-content:space-between; align-items:center; font-size:.82rem; color:var(--ink-faint);}
.foot-license{font-size:.8rem; color:var(--ink-faint); line-height:1.6;}

/* reveal-on-scroll */
.reveal{opacity:1; transform:none;}
@media (prefers-reduced-motion: no-preference){
  .reveal{opacity:0; transform:translateY(16px); transition:opacity .6s ease, transform .6s ease;}
  .reveal.in{opacity:1; transform:none;}
}

/* ============================================================
   Home redesign — interactive full-bleed hero + intertwined flow
   ============================================================ */

/* ---------- Full-bleed interactive hero ---------- */
.hero-full{
  position:relative; overflow:hidden; color:var(--ink); background:var(--blush);
  aspect-ratio:16/9; min-height:520px; max-height:760px;
  display:flex; align-items:center;
}
@media (max-width:760px){ .hero-full{ aspect-ratio:3/4; min-height:520px; max-height:none; } }
.hero-full .hero-bg{
  position:absolute; inset:-3%; background-size:contain; background-repeat:no-repeat; background-position:center center;
  transform:scale(1.06); transition:transform .3s ease-out;
}
.hero-full::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(90deg, rgba(255,255,255,.78) 0%, rgba(255,255,255,.6) 28%, rgba(255,255,255,.25) 46%, rgba(255,255,255,0) 62%);
}
@media (max-width:760px){
  /* Content height varies with text length here, so a percentage-based fade risks
     landing transparent under text; a flat wash keeps it legible regardless. */
  .hero-full::after{ background:rgba(255,255,255,.94); }
}
.hero-full-content{
  position:relative; z-index:2; margin:0; max-width:600px;
  padding-block:clamp(32px,6vw,48px);
  padding-left:clamp(24px,6vw,72px); padding-right:24px;
}
.hero-full .eyebrow{color:var(--red-strong);}
.hero-full .eyebrow::before{background:var(--red);}
.hero-full h1{color:var(--ink); font-size:clamp(2.5rem,5.4vw,4.2rem); line-height:1.03;}
.hero-full h1 em{color:var(--red); font-style:italic; font-weight:500;}
.hero-full .lede{color:var(--ink-soft); margin-top:20px;}
.hero-full .hero-ctas{margin-top:32px;}
.hero-full .returning{color:var(--ink-faint); margin-top:18px;}
.hero-full .returning a{color:var(--ink); text-decoration-color:var(--line);}
.hero-full .returning a:hover{color:var(--red-strong);}
.scroll-cue{
  position:absolute; left:50%; bottom:22px; transform:translateX(-50%); z-index:2;
  color:var(--ink); background:rgba(255,255,255,.85); backdrop-filter:blur(4px);
  padding:.5em 1em; border-radius:999px; box-shadow:var(--shadow-1);
  opacity:.9; display:flex; flex-direction:column; align-items:center; gap:3px;
  font-size:.66rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; text-decoration:none;
}
.scroll-cue svg{width:14px; height:14px; animation:bob 1.8s ease-in-out infinite;}
@media (prefers-reduced-motion: reduce){ .scroll-cue svg{ animation:none; } }
@media (max-width:760px){ .scroll-cue{ display:none; } }
@keyframes bob{0%,100%{transform:translateY(0);}50%{transform:translateY(6px);}}

/* ---------- Bold color bands ---------- */
.color-band{padding-block:clamp(56px,8vw,96px);}
.color-band.ink{background:var(--ink); color:#fff;}
.color-band.red{background:var(--red-strong); color:#fff;}
.color-band.green{background:var(--green); color:#fff;}
.color-band .eyebrow{color:#fff; opacity:.9;}
.color-band .eyebrow::before{background:#fff;}
.color-band h2{color:#fff;}
.color-band .lede{color:rgba(255,255,255,.78);}
.color-band .support-card-v2{background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.16); border-radius:18px; padding:24px;}
.color-band .support-card-v2 h4{color:#fff; font-size:1.05rem; margin-bottom:8px;}
.color-band .support-card-v2 p{color:rgba(255,255,255,.75); font-size:.92rem;}
.color-band .support-card-v2 .cite{display:block; margin-top:10px; font-size:.76rem; color:rgba(255,255,255,.5);}

/* Flip-card behavior (Who We Support) */
.flip-card{
  display:block; width:100%; font-family:inherit; text-align:left; cursor:pointer;
  background:transparent; border:0; padding:0; border-radius:18px;
  min-height:230px; perspective:1200px; -webkit-tap-highlight-color:transparent;
}
.flip-card:focus-visible{outline:2.5px solid #fff; outline-offset:3px;}
.flip-card-inner{
  position:relative; display:block; width:100%; height:100%; min-height:230px;
  transform-style:preserve-3d; transition:transform .6s cubic-bezier(.4,.15,.2,1);
}
.flip-card.is-flipped .flip-card-inner{transform:rotateY(180deg);}
.flip-front, .flip-back{
  position:absolute; inset:0; backface-visibility:hidden; -webkit-backface-visibility:hidden;
  border-radius:18px; overflow:hidden; display:block;
}
.flip-front{
  background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.16); padding:24px;
  display:flex; flex-direction:column; justify-content:center;
}
.flip-back{transform:rotateY(180deg); background:var(--ink);}
.flip-back img{width:100%; height:100%; object-fit:cover; display:block;}
.flip-hint{
  display:inline-flex; align-items:center; gap:.4em; margin-top:14px; font-size:.72rem; font-weight:700;
  letter-spacing:.06em; text-transform:uppercase; color:rgba(255,255,255,.5);
}
.flip-hint::after{content:"⟳"; font-size:1.1em; line-height:1;}
@media (prefers-reduced-motion: reduce){ .flip-card-inner{transition:none;} }
/* Equal-height flip cards that grow to fit their wording */
.color-band .support-card-v2.flip-card{padding:0; background:transparent; border:0; height:100%; min-height:270px;}
.flip-card-inner{display:grid; min-height:270px;}
.flip-front, .flip-back{grid-area:1 / 1;}
.flip-front{position:relative; inset:auto; padding:22px 20px; justify-content:flex-start;}
.color-band .support-card-v2 .flip-front h4{font-size:1rem; line-height:1.25;}
.color-band .support-card-v2 .flip-front p{font-size:.86rem; line-height:1.5;}
.flip-front .flip-hint{margin-top:auto; padding-top:14px;}

/* ---------- Split band: full-bleed alternating photo / text ---------- */
.split-band{display:grid; grid-template-columns:1fr 1fr;}
.split-band .split-media{position:relative; min-height:440px; overflow:hidden;}
.split-band .split-media img,
.split-band .split-media .photo-block{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; border-radius:0;}
.split-band .split-text{padding:clamp(36px,6vw,88px); display:flex; flex-direction:column; justify-content:center;}
.split-band.reverse .split-media{order:2;}
.split-band.reverse .split-text{order:1;}
/* Full-body portrait photos: show the whole photo, correctly proportioned, never cropped */
.split-band.narrow-media{grid-template-columns:.8fr 1.2fr;}
.split-band.narrow-media.reverse{grid-template-columns:1.2fr .8fr;}
.split-band .split-media.portrait{min-height:600px; background:var(--blush); display:flex; align-items:center; justify-content:center;}
.split-band .split-media.portrait img{position:static; width:auto; height:100%; max-width:100%; object-fit:contain; object-position:center center; padding:12px; box-sizing:border-box; margin:0 auto;}
@media (max-width:900px){ .split-band .split-media.portrait{min-height:460px;} }
@media (max-width:900px){
  .split-band, .split-band.reverse{grid-template-columns:1fr;}
  .split-band.reverse .split-media, .split-band.reverse .split-text{order:initial;}
  .split-band .split-media{min-height:320px;}
}

/* ---------- Photo-topped service cards ---------- */
.card-photo{padding:0; overflow:hidden;}
.card-photo .card-photo-top{aspect-ratio:4/3; position:relative;}
.card-photo .card-photo-top img,
.card-photo .card-photo-top .photo-block{width:100%; height:100%; object-fit:cover; border-radius:0; border:0;}
.card-photo .card-photo-top .tag{position:absolute; top:14px; left:14px; background:var(--paper-raised);}
.card-photo .card-photo-body{padding:24px 26px 28px; display:flex; flex-direction:column; gap:12px; flex:1;}

/* ---------- Colorful start panels (New / Returning) ---------- */
.start-split-v2{display:flex; align-items:stretch; gap:24px; flex-wrap:wrap;}
.start-split-v2 > .start-panel-v2{flex:1 1 320px;}
@media (max-width:760px){.start-split-v2{flex-direction:column;}}
.start-panel-v2{
  position:relative; border-radius:28px; overflow:hidden; min-height:300px;
  display:flex; flex-direction:column; justify-content:flex-end; padding:clamp(28px,4vw,40px); color:#fff;
}
.start-panel-v2 .panel-bg{position:absolute; inset:0; z-index:0; background:linear-gradient(155deg, var(--blush) 0%, var(--sand) 100%);}
.start-panel-v2.new .panel-bg{background:linear-gradient(155deg, rgba(224,20,20,.92) 0%, rgba(1,1,1,.86) 100%);}
.start-panel-v2.for-returning .panel-bg{background:linear-gradient(155deg, rgba(0,128,55,.92) 0%, rgba(1,1,1,.86) 100%);}
.start-panel-v2 > *:not(.panel-bg){position:relative; z-index:1;}
.start-panel-v2 .eyebrow{color:#fff;}
.start-panel-v2 .eyebrow::before{background:#fff;}
.start-panel-v2 h3{color:#fff; margin-top:.5em; font-size:1.5rem;}
.start-panel-v2 p{color:rgba(255,255,255,.82); margin-top:12px;}
.start-panel-v2 .start-actions{margin-top:22px; flex-wrap:nowrap; gap:10px;}
.start-panel-v2 .start-actions .btn{flex:0 1 auto; padding-inline:1.15em; white-space:nowrap;}
.start-panel-v2 .btn-outline{border-color:rgba(255,255,255,.4); color:#fff;}
.start-panel-v2 .btn-outline:hover{border-color:#fff; background:rgba(255,255,255,.12);}

/* ---------- Full-bleed photo CTA (bookend) ---------- */
.cta-photo{position:relative; overflow:hidden; border-radius:32px; margin-inline:clamp(20px,5vw,48px); min-height:380px; display:flex; align-items:center; justify-content:center; text-align:center; color:#fff;}
.cta-photo .cta-bg{position:absolute; inset:0; background-size:cover; background-position:center 30%;}
.cta-photo::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(1,1,1,.68) 0%, rgba(1,1,1,.5) 100%);}
.cta-photo-content{position:relative; z-index:2; padding:clamp(40px,6vw,64px) clamp(24px,6vw,48px); max-width:640px;}
.cta-photo .eyebrow{color:var(--red); justify-content:center;}
.cta-photo h2{color:#fff; font-size:clamp(2rem,4.2vw,3.2rem);}
.cta-photo .lede{color:rgba(255,255,255,.82); margin:16px auto 0;}
.cta-photo .cta-btns{margin-top:30px;}
.cta-photo .btn-outline{border-color:rgba(255,255,255,.4); color:#fff;}
.cta-photo .btn-outline:hover{border-color:#fff; background:rgba(255,255,255,.12);}

/* ---------- Photo-background band with overlaid text (photo sent to back) ---------- */
.photo-overlay-band{position:relative; overflow:hidden; min-height:560px; display:flex; align-items:center; color:#fff;}
.photo-overlay-band .overlay-bg{position:absolute; inset:0; background-size:cover; background-position:50% 18%; z-index:0;}
.photo-overlay-band::after{
  content:""; position:absolute; inset:0; z-index:1;
  background:linear-gradient(100deg, rgba(1,1,1,.86) 0%, rgba(1,1,1,.62) 42%, rgba(1,1,1,.22) 75%);
}
.photo-overlay-band .overlay-content{position:relative; z-index:2; max-width:600px;}
.photo-overlay-band .eyebrow{color:var(--red);}
.photo-overlay-band .eyebrow::before{background:var(--red);}
.photo-overlay-band .pull{color:#fff;}
.photo-overlay-band p{color:rgba(255,255,255,.85);}
.photo-overlay-band .text-link{color:#fff; text-decoration-color:var(--red);}
.photo-overlay-band .text-link:hover{color:var(--red);}
@media (max-width:760px){.photo-overlay-band{min-height:480px;} .photo-overlay-band .overlay-bg{background-position:50% 12%;}}
