/*
Theme Name: BrighterPath Therapy
Description: The approved BrighterPath design, with editable practice content and local brand assets.
Version: 1.0.3
Author: SteadyState IT
Requires at least: 6.6
Requires PHP: 7.4
Text Domain: brighterpath-therapy
License: GPL-2.0-or-later
*/

:root{
  --sand:#F1EBDE;
  --sand-deep:#E5DBC8;
  --stone:#B2A996;
  --sage:#7C8B72;
  --sage-deep:#46523E;
  --plum:#452742;
  --plum-soft:#6B4566;
  --ink:#2B2823;
  --body:#57524A;
  --display:"Fraunces",Georgia,"Times New Roman",serif;
  --text:"Karla",-apple-system,"Helvetica Neue",Arial,sans-serif;
  --gut:clamp(20px,5vw,88px);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  margin:0;background:var(--sand);color:var(--body);
  font-family:var(--text);font-weight:300;font-size:17px;line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
body::before{
  content:"";position:fixed;inset:0;z-index:9;pointer-events:none;opacity:.32;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.16'/%3E%3C/svg%3E");
  mix-blend-mode:multiply;
}
h1,h2,h3{font-family:var(--display);font-weight:300;color:var(--ink);margin:0;letter-spacing:-.012em}
p{margin:0}
a{color:inherit}
:focus-visible{outline:2px solid var(--plum);outline-offset:3px}

.eyebrow{
  font-size:13px;letter-spacing:.24em;text-transform:uppercase;
  color:var(--plum-soft);font-weight:500;
}
.hero .eyebrow{white-space:nowrap}
.wrap{max-width:1240px;margin:0 auto;padding-inline:var(--gut)}


/* ---------- stage: woods behind masthead and hero together ---------- */
.stage{
  position:relative;isolation:isolate;
  background-image:url('assets/273379e007d3.webp');
  background-size:cover;background-position:58% 42%;
}
.stage::before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:linear-gradient(100deg,
    rgba(241,235,222,.975) 0%,
    rgba(241,235,222,.95) 36%,
    rgba(241,235,222,.72) 58%,
    rgba(241,235,222,.50) 78%,
    rgba(241,235,222,.46) 100%);
}
.stage::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:34%;z-index:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(241,235,222,0),rgba(241,235,222,.72));
}
.stage>*{position:relative;z-index:1}
@media (max-width:860px){
  .stage{background-image:url('assets/8790c5c97555.webp');background-position:52% 22%}
  .stage::before{
    background:linear-gradient(180deg,
      rgba(241,235,222,.62) 0%,
      rgba(241,235,222,.55) 30%,
      rgba(241,235,222,.86) 62%,
      rgba(241,235,222,.97) 100%);
  }
}

/* ---------- header ---------- */
.top{padding:30px 0 24px;position:relative;z-index:3}
.top-in{display:flex;align-items:center;gap:32px;flex-wrap:wrap;row-gap:16px}
.mark{display:block;text-decoration:none;flex-shrink:0;width:clamp(260px,31vw,400px);max-width:100%}
.mark img{display:block;width:100%;height:auto}
.nav{margin-left:auto;display:flex;gap:30px;align-items:center}
.nav a{font-size:14.5px;font-weight:400;text-decoration:none;color:#38342D;padding-bottom:2px;border-bottom:1px solid transparent;transition:border-color .25s,color .25s}
.nav a:hover{color:var(--ink);border-color:var(--sage)}
.nav a.btn{color:#FBF7F0;border-bottom:0;padding:14px 26px;text-align:center}
.nav a.btn:hover{color:#FFFFFF;border-bottom:0}
.btn{
  display:inline-block;background:var(--plum);color:#FBF7F0;text-decoration:none;
  font-family:var(--text);font-size:15px;font-weight:500;letter-spacing:.03em;
  padding:14px 26px;transition:background .25s;border:0;border-radius:8px;white-space:nowrap;
  text-align:center;line-height:1.2;position:relative;z-index:10;
}
.btn:hover{background:var(--plum-soft)}
.nav-toggle{display:none}

/* ---------- hero ---------- */
.hero{position:relative;padding:clamp(20px,4vw,48px) 0 0}
.hero-in{display:grid;grid-template-columns:1fr .78fr;gap:clamp(24px,4vw,56px);align-items:center}

.hero-copy{position:relative;z-index:2;max-width:44ch;align-self:start;padding-top:clamp(2px,1vw,14px)}
.hero h1{
  font-size:clamp(37px,4.9vw,62px);line-height:1.08;margin:16px 0 0;max-width:15ch;text-wrap:balance;
}
.hero h1 em{font-style:italic;color:var(--plum)}
.hero-sub{margin-top:22px;font-size:clamp(15.5px,1.25vw,17.5px);max-width:46ch;color:#48433B}
.hero-acts{margin-top:36px;display:flex;align-items:center;gap:26px;flex-wrap:wrap}
.tel{
  font-size:19px;font-weight:400;color:var(--ink);text-decoration:none;
  border-bottom:1px solid var(--stone);padding:4px 0;display:inline-block;
}
.tel:hover{border-color:var(--plum)}
.hero-note{margin-top:22px;font-size:14px;color:#6E675A}
.hero-fig{position:relative;z-index:1;margin:0 0 -1px;align-self:end}
.hero-fig img{display:block;width:100%;height:auto;border-radius:32px 32px 0 0;filter:drop-shadow(0 18px 32px rgba(58,52,38,.17))}
.hero-in{align-items:end}
@media (min-width:1001px){.hero-in{grid-template-columns:1fr 1.15fr}}
.sig{display:none}
.photo-credit{padding:10px 0 12px;text-align:center;font-size:13px;line-height:1.4;font-weight:400;color:#57524A}

/* ---------- status strip (the 2027 switch) ---------- */
.strip{background:var(--plum);color:#E7D7E4;position:relative;z-index:10}
.strip .wrap{display:flex;flex-wrap:wrap;gap:6px 30px;justify-content:center;padding-block:15px}
.strip span{font-size:13px;letter-spacing:.2em;text-transform:uppercase}
.strip span+span{position:relative}
.strip span+span::before{content:"";position:absolute;left:-16px;top:50%;width:3px;height:3px;border-radius:50%;background:#9C7B98}

/* ---------- focus list ---------- */
.focus{padding:clamp(58px,8vw,110px) 0 clamp(40px,6vw,80px)}
.focus h2{font-size:clamp(28px,3.4vw,42px);margin-top:18px;max-width:20ch}
.rows{margin-top:clamp(34px,5vw,58px);border-top:1px solid #D3C9B5}
.row{
  display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(12px,3vw,48px);
  padding:26px 0;border-bottom:1px solid #D3C9B5;align-items:baseline;
}
.row h3{font-size:clamp(20px,2.1vw,26px)}
.row p{font-size:16px}
.modes{margin-top:26px;font-size:15px;color:var(--stone);letter-spacing:.02em}

/* ---------- forest band ---------- */
.band{
  position:relative;min-height:clamp(300px,42vw,460px);display:grid;place-items:center;
  background-size:cover;background-position:center 62%;
  padding:clamp(48px,7vw,90px) 0;
}
.band::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(92,106,84,.50),rgba(78,92,72,.62))}
.band-in{position:relative;z-index:10;text-align:center;width:100%;max-width:860px;margin:0 auto;padding-inline:var(--gut)}
.band p{
  font-family:var(--display);font-weight:300;color:#FCFAF5;text-shadow:0 1px 14px rgba(52,60,46,.45);
  font-size:clamp(22px,2.9vw,36px);line-height:1.3;
  max-width:26ch;margin-inline:auto;text-wrap:balance;
}
.band svg{width:52px;height:auto;margin-bottom:26px;opacity:.8}
.band .attr{font-family:var(--text);font-size:12.5px;letter-spacing:.22em;text-transform:uppercase;color:#E2DCC9;margin-top:20px}

/* ---------- fees ---------- */
.fees{background:var(--sand-deep);padding:clamp(58px,8vw,108px) 0}
.fees-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,5vw,80px);margin-top:clamp(30px,4vw,52px)}
.fees h2{font-size:clamp(28px,3.4vw,42px);margin-top:18px}
.fees h3{font-size:clamp(21px,2.2vw,27px);margin-bottom:14px}
.fees p{font-size:16px}
.fees .col{border-top:1px solid #CFC3AC;padding-top:26px}
.hold{color:var(--plum);font-style:italic}

/* ---------- contact ---------- */
.contact{padding:clamp(58px,8vw,110px) 0}
.contact-in{display:grid;grid-template-columns:.92fr 1.08fr;gap:clamp(30px,5vw,72px);align-items:start}
.contact h2{font-size:clamp(28px,3.6vw,44px);margin-top:18px;max-width:16ch}
.contact .lede{margin-top:24px;max-width:44ch;font-size:16.5px}
.mail{
  display:inline-block;font-family:var(--display);font-size:clamp(20px,2.3vw,29px);
  color:var(--plum);text-decoration:none;border-bottom:1px solid rgba(69,39,66,.35);
  padding-bottom:5px;margin-top:8px;transition:border-color .25s;word-break:break-word;
}
.mail:hover{border-color:var(--plum)}
.card{border-top:1px solid #D3C9B5;padding-top:26px}
.card dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:14px 22px;font-size:16px}
.card dt{font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:#6E675A;padding-top:5px}
.card dd{margin:0}


/* ---------- intake form ---------- */
.frm{border-top:1px solid #D3C9B5;padding-top:28px}
.frm-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 20px}
.frm .full{grid-column:1/-1}
.frm label{display:block;font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:#6E675A;margin-bottom:7px}
.frm ::placeholder{color:#8C8372;opacity:1}
.frm input,.frm textarea,.frm select{
  width:100%;font-family:var(--text);font-size:16px;font-weight:300;color:var(--ink);
  background:#F7F3EA;border:1px solid #D3C9B5;border-radius:2px;padding:12px 13px;
  transition:border-color .2s,background .2s;
}
.frm textarea{min-height:112px;resize:vertical;line-height:1.55}
.frm input:focus,.frm textarea:focus,.frm select:focus{
  outline:none;border-color:var(--sage);background:#FFFCF6;box-shadow:0 0 0 3px rgba(124,139,114,.16);
}
.frm .help{font-size:13.5px;color:#6E675A;margin-top:8px;line-height:1.5}
.radio-set{display:flex;gap:22px;flex-wrap:wrap;padding-top:2px}
.radio-set span{display:flex;align-items:center;gap:8px;font-size:15.5px}
.radio-set input{width:auto;accent-color:var(--plum);margin:0}
.frm .btn{margin-top:4px}
.frm-foot{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:22px}
.frm-foot p{font-size:13px;color:#6E675A;max-width:30ch;line-height:1.5}
.crisis{
  margin-top:30px;border-left:3px solid var(--plum);background:rgba(69,39,66,.06);
  padding:14px 18px;font-size:13.5px;line-height:1.6;color:#57524A;
}
.sent{
  border-top:1px solid #D3C9B5;padding-top:28px;
}
.sent h3{font-family:var(--display);font-size:26px;margin-bottom:12px}
.sent p{font-size:16px;max-width:38ch}
@media (max-width:520px){.frm-grid{grid-template-columns:1fr}}

/* ---------- footer ---------- */
.foot{position:relative;z-index:10;background:var(--sage-deep);color:#CFD6C7;padding:clamp(48px,6vw,78px) 0 34px}
.foot-grid{display:grid;grid-template-columns:1fr .72fr 1.15fr;gap:clamp(26px,4vw,56px)}
.foot h3{color:#EDE7DA;font-size:23px;margin-bottom:16px}
.foot ul{list-style:none;margin:0;padding:0;font-size:14.5px;line-height:1.85}
.foot .links li{margin-bottom:2px}
.foot .q{display:block;font-size:12.5px;color:#93A18A;border:0;line-height:1.4;margin-bottom:6px}
.foot-photo img{width:100%;height:auto;border-radius:4px;opacity:.92;display:block}
.foot a{text-decoration:none;border-bottom:1px solid rgba(207,214,199,.35)}
.foot a:hover{border-color:#EDE7DA}
.foot-base{
  margin-top:clamp(34px,5vw,60px);padding-top:22px;border-top:1px solid #5B6852;
  display:flex;flex-wrap:wrap;gap:10px 28px;font-size:12.5px;color:#9DAA94;
}
.foot-base .dom{letter-spacing:.14em;text-transform:uppercase}

/* ---------- reveal ---------- */
.rv{opacity:0;transform:translateY(16px);transition:opacity .8s ease,transform .8s ease}
.rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}}

/* ---------- responsive ---------- */
@media (max-width:1000px){
  .nav{gap:20px}
  .top-in{gap:18px}
  .hero{padding-top:8px}
  .nav a:not(.btn){display:none}
}
@media (max-width:1000px){.foot-grid{grid-template-columns:1fr 1fr}}
@media (max-width:860px){
  .hero-in{grid-template-columns:1fr;gap:0}
  .hero-fig{order:-1;max-width:300px;margin:0 auto -1px;width:100%}
  .hero-copy{max-width:none;padding-bottom:32px}
  .row{grid-template-columns:1fr;gap:8px;padding:22px 0}
  .fees-grid,.contact-in,.foot-grid{grid-template-columns:1fr}
  .strip .wrap{justify-content:flex-start}
}

body.admin-bar .top{scroll-margin-top:32px}
.wp-inner{padding-block:60px;min-height:60vh}
.wp-inner h1{margin-bottom:24px}

/* Readability, keyboard focus and spacing refinements from the October 29 review. */
.hero-copy{padding-bottom:32px}
.frm ::placeholder{color:#6E675A;opacity:1}
.frm input,.frm textarea,.frm select{border-color:#94866E}
.frm input:focus-visible,.frm textarea:focus-visible,.frm select:focus-visible{outline:2px solid var(--plum);outline-offset:2px}
.frm-grid>div:not(.full){display:flex;flex-direction:column}
.frm-grid>div:not(.full)>input{margin-top:auto}
.foot-base{color:#BCC7B4}

/* Match the native WordPress form to the approved BrighterPath layout. */
.frm .wpcf7-form-control-wrap{display:block}
.frm-grid>div:not(.full)>.wpcf7-form-control-wrap{margin-top:auto}
.frm .wpcf7-form-control:not(.wpcf7-submit):not(.wpcf7-radio){max-width:100%}
.frm input.wpcf7-submit{width:auto;border:0;border-radius:8px;background:var(--plum);color:#fff;padding:14px 26px;cursor:pointer;font-weight:600}
.frm input.wpcf7-submit:hover{filter:brightness(1.12)}
.frm .radio-set label{display:inline-flex;align-items:center;gap:8px;margin:0;font-size:15.5px;letter-spacing:0;text-transform:none;color:var(--body)}
.frm .radio-set .wpcf7-list-item{margin:0 20px 0 0}
.frm .radio-set input{width:auto;margin:0}
.frm .wpcf7-not-valid-tip{margin-top:7px;color:#8A2929;font-size:14px}
.frm .wpcf7-response-output{margin:20px 0 0;padding:16px;border:1px solid var(--plum);font-size:15px;line-height:1.6}
.frm .wpcf7-response-output:empty{display:none}
.frm .frm-foot p{max-width:260px}
.bp-honeypot{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
