/* ==========================================================================
   Therapy and Coaching with Jayne — Human First
   palette: burgundy · stone · clay   type: Literata + Hanken Grotesk
   Structural rules live in base.css; this file carries the look.
   ========================================================================== */

:root{
  /* brand */
  --ox:        #6b2b34;
  --ox-deep:   #55222a;
  --stone:     #efe7dd;
  --stone-2:   #f4ece2;
  --clay:      #c2764f;
  --clay-deep: #8a4a2c;
  --clay-soft: #e8b79c;
  --paper:     #fbf8f3;

  /* base.css token overrides */
  --ink:        #2a2422;
  --ink-2:      #332c28;
  --ink-3:      #3d3530;
  --surface:    #fbf8f3;
  --surface-2:  #efe7dd;
  --text:       #f7f1e8;
  --muted:      #cbbfb2;
  --ink-text:   #2a2422;
  --ink-mute:   #57504a;
  --accent:     #6b2b34;
  --accent-lit: #e8b79c;
  --accent-2:   #e8b79c;
  --line:       rgba(247,241,232,.16);
  --line-d:     rgba(42,36,34,.12);

  /* type */
  --font-display: "Literata", Georgia, "Times New Roman", serif;
  --font-body:    "Hanken Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-mono:    "Hanken Grotesk", system-ui, sans-serif;

  /* layout */
  --wrap-max: 1200px;
  --pad: clamp(1.15rem, 4.2vw, 2.8rem);
  --radius: 20px;
  --ease: cubic-bezier(.22,.61,.36,1);
  --body: #3c3530;
}

body{
  background:var(--paper);
  color:var(--ink-text);
  font-family:var(--font-body);
  font-size:17px;
  line-height:1.65;
  font-weight:400;
  letter-spacing:.002em;
}

/* warm paper grain */
body::after{
  content:"";
  position:fixed; inset:0; z-index:9998;
  pointer-events:none;
  opacity:.035;
  mix-blend-mode:multiply;
  background-image:url("assets/grain.svg");
  background-size:160px 160px;
}

::selection{ background:var(--ox); color:var(--paper); }

/* focus: burgundy on paper, clay on the dark bands */
:focus-visible{ outline:2px solid var(--ox); outline-offset:3px; border-radius:3px; }
.hero :focus-visible,
.hdr :focus-visible,
.foot :focus-visible,
.book :focus-visible,
.sect--ox :focus-visible,
.sect--deep :focus-visible{ outline-color:var(--clay-soft); }

.sr-only{
  position:absolute; width:1px; height:1px;
  padding:0; margin:-1px; overflow:hidden;
  clip:rect(0 0 0 0); white-space:nowrap; border:0;
}

.skip{
  position:fixed; top:.6rem; left:.6rem; z-index:10000;
  padding:.7rem 1.1rem; border-radius:12px;
  background:var(--paper); color:var(--ox);
  font-size:.85rem; font-weight:600;
  transform:translateY(-160%);
  transition:transform .25s var(--ease);
}
.skip:focus{ transform:none; }

/* ================================ preloader ============================== */
.pre{
  background:var(--ox);
  color:var(--paper);
}
.pre__mark{
  width:96px; height:96px;
  display:grid; place-items:center;
}
.pre__svg{ width:66px; height:66px; overflow:visible; }
.pre__svg .dot{ fill:var(--clay-soft); }
/* four dots arrive from the four corners and settle into a square */
.dot--1{ animation:dotIn1 1.1s var(--ease) .05s both; }
.dot--2{ animation:dotIn2 1.1s var(--ease) .17s both; }
.dot--3{ animation:dotIn3 1.1s var(--ease) .29s both; }
.dot--4{ animation:dotIn4 1.1s var(--ease) .41s both; }

@keyframes dotIn1{
  0%   { transform:translate(-22px,-22px); opacity:0; }
  55%  { opacity:1; }
  100% { transform:translate(0,0); opacity:1; }
}
@keyframes dotIn2{
  0%   { transform:translate(22px,-22px); opacity:0; }
  55%  { opacity:1; }
  100% { transform:translate(0,0); opacity:1; }
}
@keyframes dotIn3{
  0%   { transform:translate(-22px,22px); opacity:0; }
  55%  { opacity:1; }
  100% { transform:translate(0,0); opacity:1; }
}
@keyframes dotIn4{
  0%   { transform:translate(22px,22px); opacity:0; }
  55%  { opacity:1; }
  100% { transform:translate(0,0); opacity:1; }
}

.pre__meta{
  font-size:.66rem; letter-spacing:.14em; text-transform:uppercase;
  color:rgba(247,241,232,.62);
  width:min(240px,66vw); justify-content:space-between;
}
.pre__pct{ color:var(--clay-soft); }
.pre__bar{
  width:min(240px,66vw); height:2px;
  background:rgba(247,241,232,.18);
  border-radius:2px; margin-bottom:2.4rem;
}
.pre__bar i{ background:var(--clay-soft); }

/* ================================= header ================================ */
.hdr{
  background:var(--ox-deep);
  border-bottom:1px solid rgba(247,241,232,.14);
  color:var(--paper);
}
@media (min-width:1024px){
  .hdr{ background:color-mix(in srgb, var(--ox-deep) 93%, transparent); }
}
.hdr__in{ min-height:80px; gap:.9rem; }

.brand{
  display:flex; align-items:center; gap:.6rem;
  flex-shrink:0;
}
.brand__mark{
  width:23px; height:23px; flex-shrink:0;
  fill:var(--clay-soft);
  transition:transform .55s var(--ease);
}
.brand:hover .brand__mark{ transform:rotate(45deg); }
.brand__text{ display:grid; gap:.25rem; }
.brand__name{
  font-family:var(--font-display);
  font-size:1.18rem; font-weight:500;
  letter-spacing:-.008em; line-height:1;
  color:var(--paper);
}
.brand__sub{
  font-size:.575rem; font-weight:500;
  letter-spacing:.145em; text-transform:uppercase;
  line-height:1; color:rgba(247,241,232,.62);
}

.nav__list{ gap:.05rem; }
.nav__link{
  position:relative;
  padding:.55rem .6rem;
  font-size:.855rem; font-weight:500;
  color:rgba(247,241,232,.86);
  border-radius:999px;
}
.nav__link::after{
  content:"";
  position:absolute; left:.6rem; right:.6rem; bottom:.34rem;
  height:1px; background:currentColor;
  transform:scaleX(0); transform-origin:left;
  transition:transform .35s var(--ease);
}
.nav__link:hover{ color:var(--clay-soft); background:rgba(247,241,232,.07); }
.nav__link:hover::after{ transform:scaleX(1); }

.nav__foot{ display:none; }

.hdr__cta{
  font-size:.8rem; font-weight:600;
  padding:.72rem 1.05rem;
  white-space:nowrap;
}

@media (max-width:1179px){
  .hdr__cta{ display:none; }
}

/* ================================== hero ================================= */
.hero{
  position:relative;
  overflow:hidden;
  display:flex;
  min-height:calc(100svh - 80px);
  background:var(--ox);
  color:var(--paper);
}
.hero__glow{
  position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(58% 62% at 84% 10%, rgba(232,183,156,.28), transparent 68%),
    radial-gradient(72% 78% at 4% 98%, rgba(42,36,34,.34), transparent 66%);
}
.hero__mark{
  position:absolute; top:50%; right:-5%;
  width:clamp(230px,32vw,470px); height:auto;
  transform:translateY(-50%);
  fill:rgba(247,241,232,.055);
  pointer-events:none;
}
.hero__in{
  position:relative; z-index:1;
  display:flex; flex-direction:column; justify-content:center;
  min-height:calc(100svh - 80px);
  padding-block:clamp(3rem,9vh,6rem);
}
.hero__eyebrow{
  display:flex; align-items:center; gap:.6rem;
  font-size:.7rem; font-weight:600;
  letter-spacing:.19em; text-transform:uppercase;
  color:rgba(247,241,232,.7);
}
.hero__eyebrow::before{
  content:""; width:6px; height:6px; border-radius:50%;
  background:var(--clay-soft); flex-shrink:0;
}
.hero__h1{
  --h1-size:clamp(2.35rem, 6.1vw, 5.5rem);
  font-size:var(--h1-size);
  font-weight:500;
  line-height:1.04;
  letter-spacing:-.022em;
  color:var(--paper);
  margin-top:clamp(1rem,2.4vh,1.6rem);
}
.hero__h1 .line{ padding-block:.06em; }
.hero__lead{
  margin-top:clamp(1.1rem,2.6vh,1.7rem);
  max-width:54ch;
  font-size:clamp(1rem,1.35vw,1.16rem);
  line-height:1.62;
  color:rgba(247,241,232,.82);
}
.hero__cta{
  display:flex; flex-wrap:wrap; gap:.7rem;
  margin-top:clamp(1.3rem,3.4vh,2rem);
}
.hero .btn{ padding:.95rem 1.45rem; font-size:.88rem; }
.hero__trust{
  display:flex; flex-wrap:wrap;
  gap:.5rem 1.5rem;
  margin-top:clamp(1.8rem,4vh,2.9rem);
  font-size:.8rem;
  color:rgba(247,241,232,.72);
}
.hero__trust li{ display:flex; align-items:center; gap:.5rem; }
.hero__trust li::before{
  content:""; width:5px; height:5px; border-radius:50%;
  background:var(--clay-soft); flex-shrink:0;
}
.hero__where{
  margin-top:.9rem;
  font-size:.75rem; letter-spacing:.03em;
  color:rgba(247,241,232,.68);
}

/* ============================ shared section bits ======================== */
main section[id]{ scroll-margin-top:92px; }

.eyebrow{
  font-size:.68rem; font-weight:600;
  letter-spacing:.2em; text-transform:uppercase;
  color:var(--clay-deep);
}
.sect--ox .eyebrow,
.sect--deep .eyebrow{ color:var(--clay-soft); }

.sect__h2{
  font-family:var(--font-display);
  font-size:clamp(1.85rem,3.6vw,3rem);
  font-weight:500;
  line-height:1.12;
  letter-spacing:-.02em;
  max-width:24ch;
  text-wrap:balance;
}
.sect--light, .sect--light-2{ color:var(--ink-text); }

.subhead{
  font-family:var(--font-display);
  font-size:1.12rem; font-weight:600;
  letter-spacing:-.005em; line-height:1.3;
  color:var(--ink);
}
.subhead--onDark{ color:var(--paper); }

.prose{ display:grid; gap:.95rem; max-width:66ch; color:var(--body); }
.prose p{ line-height:1.68; }
.prose .subhead{ margin-top:.7rem; }

.note{
  border-radius:18px;
  padding:1.15rem 1.3rem;
  background:var(--stone);
  color:#3d3631;
  font-size:.94rem; line-height:1.62;
  max-width:62ch;
}
.note--clay{ background:#f7e3d4; }
.note--paper{ background:var(--paper); color:var(--ox-deep); }

.strip{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.5rem;
}
.strip li{
  background:var(--stone-2);
  border-radius:14px;
  padding:.85rem 1rem;
  display:grid; gap:.15rem;
  min-width:0;
}
.strip--onstone li{ background:var(--paper); }
.strip__k{
  font-size:.63rem; font-weight:600;
  letter-spacing:.14em; text-transform:uppercase;
  color:var(--clay-deep);
}
.strip__v{ font-size:.88rem; line-height:1.35; color:var(--ink); }

/* =============================== four ways =============================== */
.ways__head{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
  gap:.7rem clamp(1rem,3vw,3rem);
  align-items:end;
  margin-bottom:clamp(2rem,4vw,3rem);
}
.ways__head .eyebrow{ grid-column:1 / -1; }
.ways__intro{
  color:var(--ink-mute);
  font-size:1rem; line-height:1.6;
  max-width:42ch;
}
.ways__grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:.75rem;
}
.way{
  display:flex; flex-direction:column; gap:.65rem;
  padding:1.5rem 1.35rem 1.25rem;
  border-radius:22px;
  min-height:300px;
  transition:transform .4s var(--ease), box-shadow .4s var(--ease);
}
.way--1{ background:var(--paper); }
.way--2{ background:#f7e2d3; }
.way--3{ background:#e9dbd1; }
.way--4{ background:var(--ox); color:var(--paper); }

.way__num{
  font-size:.66rem; font-weight:600;
  letter-spacing:.16em;
  color:var(--clay-deep);
}
.way__title{
  font-family:var(--font-display);
  font-size:clamp(1.25rem,1.55vw,1.42rem);
  font-weight:500; line-height:1.2;
  letter-spacing:-.01em;
}
.way__copy{
  font-size:.895rem; line-height:1.58;
  color:var(--ink-mute);
}
.way--4 .way__num{ color:var(--clay-soft); }
.way--4 .way__copy{ color:rgba(247,241,232,.8); }

.way__link{
  margin-top:auto;
  padding-top:1rem;
  display:inline-flex; align-items:center; gap:.4rem;
  font-size:.79rem; font-weight:600;
  color:var(--ox);
}
.way__link svg{ width:13px; height:13px; transition:transform .3s var(--ease); }
.way--4 .way__link{ color:var(--clay-soft); }

@media (hover:hover) and (pointer:fine){
  .way:hover{ transform:translateY(-5px); box-shadow:0 24px 38px -30px rgba(42,36,34,.55); }
  .way--4:hover{ box-shadow:0 26px 42px -28px rgba(85,34,42,.65); }
  .way:hover .way__link svg{ transform:translateX(3px); }
}

/* ============================ therapy / split ============================ */
.split{
  display:grid;
  grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr);
  gap:clamp(2rem,5vw,4.5rem);
  align-items:start;
}
.split__aside{ position:relative; }
.split__lead{
  margin-top:1rem;
  font-size:1.02rem; line-height:1.66;
  color:var(--ink-mute);
  max-width:38ch;
}
.aside__meta{
  margin-top:1.2rem;
  font-size:.72rem; font-weight:600;
  letter-spacing:.12em; text-transform:uppercase;
  color:var(--clay-deep);
}
.split__body{ display:grid; gap:1.4rem; min-width:0; }

.areas{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.55rem;
}
.areas li{
  position:relative;
  padding:.85rem 1rem .85rem 2.1rem;
  background:var(--stone-2);
  border-radius:14px;
  font-size:.905rem; line-height:1.5;
  color:var(--body);
  min-width:0;
}
.areas li::before{
  content:"";
  position:absolute; left:.95rem; top:1.28rem;
  width:6px; height:6px; border-radius:50%;
  background:var(--clay);
}

.pills{ display:flex; flex-wrap:wrap; gap:.5rem; }
.pills li{
  background:var(--paper);
  border-radius:999px;
  padding:.55rem .95rem;
  font-size:.865rem; line-height:1.4;
  color:var(--body);
}

.settings{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.55rem 1.5rem;
}
.settings li{
  position:relative;
  padding-left:1.05rem;
  font-size:.905rem; line-height:1.5;
  color:var(--body);
  min-width:0;
}
.settings li::before{
  content:"";
  position:absolute; left:0; top:.58rem;
  width:5px; height:5px; border-radius:50%;
  background:var(--clay);
}

/* =============================== mindfulness ============================= */
.sect--deep{
  background:var(--ox-deep);
  color:var(--paper);
  position:relative;
  overflow:hidden;
  background-image:radial-gradient(70% 80% at 92% 0%, rgba(232,183,156,.16), transparent 62%);
}
.mind__head{ max-width:860px; margin-bottom:clamp(2rem,4vw,3rem); }
.mind__head .sect__h2{ color:var(--paper); max-width:26ch; }
.mind__lead{
  margin-top:1.1rem;
  font-size:1.04rem; line-height:1.64;
  color:rgba(247,241,232,.78);
  max-width:58ch;
}
.mind__body{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:clamp(2rem,5vw,4.5rem);
  align-items:start;
}
.mind__col{ display:grid; gap:1.05rem; min-width:0; }
.mind__col > .btn{ justify-self:start; }
.mind__col p{
  font-size:.97rem; line-height:1.7;
  color:rgba(247,241,232,.8);
  max-width:54ch;
}
/* the honest note is a paper card: its text must not inherit the cream body rule */
.mind__col .note p{
  color:var(--ox-deep);
  font-size:.94rem;
  line-height:1.62;
  max-width:none;
}
.mind__list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.5rem;
  width:100%;
}
.mind__list li{
  background:rgba(247,241,232,.07);
  border-radius:14px;
  padding:.8rem .95rem;
  display:grid; gap:.25rem;
  font-size:.885rem; line-height:1.4;
  color:rgba(247,241,232,.92);
  min-width:0;
}
.mind__list li span{
  font-size:.63rem; letter-spacing:.14em;
  color:var(--clay-soft);
}
.mind__fee{
  font-size:.9rem !important;
  color:rgba(247,241,232,.7) !important;
}
.mind__head .subhead--onDark{ margin:0; }

/* ================================= about ================================= */
.about__grid{
  display:grid;
  grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);
  gap:clamp(2rem,5vw,4rem);
  align-items:start;
}
.portrait{ margin:0; position:relative; }
.portrait__frame{
  position:relative;
  border-radius:26px;
  overflow:hidden;
  background:var(--stone);
  box-shadow:18px 18px 0 -2px #f1e7dc;
}
.portrait__frame img{
  width:100%; height:auto;
  position:relative;
}
.portrait__frame::after{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(107,43,52,.04), rgba(107,43,52,.16));
  pointer-events:none;
}
.portrait figcaption{
  margin-top:1rem;
  font-size:.68rem; font-weight:600;
  letter-spacing:.16em; text-transform:uppercase;
  color:var(--ink-mute);
}
.about__body{ display:grid; gap:1.3rem; min-width:0; }

.pull{
  font-family:var(--font-display);
  font-style:italic;
  font-size:clamp(1.45rem,2.5vw,2rem);
  line-height:1.22;
  letter-spacing:-.01em;
  color:var(--ox);
  background:var(--stone-2);
  border-radius:18px;
  padding:1.25rem 1.5rem;
}
.quote{
  font-family:var(--font-display);
  font-style:italic;
  font-size:clamp(1.1rem,1.9vw,1.35rem);
  line-height:1.45;
  color:var(--ink);
  border-left:3px solid var(--clay);
  padding-left:1.3rem;
  max-width:48ch;
}

.facts{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.55rem;
}
.facts li{
  background:var(--stone-2);
  border-radius:16px;
  padding:1rem 1.05rem;
  display:grid; gap:.2rem;
  min-width:0;
}
.facts__n{
  font-family:var(--font-display);
  font-size:1.65rem; font-weight:500;
  line-height:1; color:var(--ox);
}
.facts__l{
  font-size:.76rem; line-height:1.35;
  color:var(--ink-mute);
}

.quals{
  background:var(--stone);
  border-radius:20px;
  padding:1.3rem 1.4rem;
}
.quals__list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.4rem 1.4rem;
  margin-top:.9rem;
}
.quals__list li{
  position:relative;
  padding-left:.95rem;
  font-size:.82rem; line-height:1.45;
  color:#4a423c;
  min-width:0;
}
.quals__list li::before{
  content:"";
  position:absolute; left:0; top:.52rem;
  width:4px; height:4px; border-radius:50%;
  background:var(--clay-deep);
}

/* ================================== fees ================================= */
.fees__head{ max-width:760px; }
.fees__intro{
  margin-top:.9rem;
  color:var(--ink-mute);
  max-width:52ch;
}
.fee-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.7rem;
  margin-top:clamp(1.8rem,3.5vw,2.6rem);
}
.fee{
  background:var(--paper);
  border-radius:18px;
  padding:1.15rem 1.2rem;
  display:grid; gap:.4rem;
  align-content:start;
  min-width:0;
}
.fee__name{
  font-size:.875rem; font-weight:600;
  line-height:1.35; color:var(--ink);
}
.fee__price{
  font-family:var(--font-display);
  font-size:clamp(1.55rem,2.3vw,1.95rem);
  font-weight:500; line-height:1;
  color:var(--ox);
}
.fee__unit{
  font-family:var(--font-body);
  font-size:.78rem; font-weight:500;
  color:var(--ink-mute);
  letter-spacing:0;
}
.fee__meta{
  font-size:.76rem; line-height:1.5;
  color:var(--ink-mute);
}
.fee--free{ background:var(--ox); color:var(--paper); }
.fee--free .fee__name{ color:var(--paper); }
.fee--free .fee__price{ color:var(--clay-soft); }
.fee--free .fee__meta{ color:rgba(247,241,232,.76); }

.fees__notes{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr);
  gap:clamp(1.5rem,4vw,3rem);
  margin-top:1.7rem;
  align-items:start;
}
.fees__notes ul{ display:grid; gap:.55rem; }
.fees__notes li{
  position:relative;
  padding-left:1.05rem;
  font-size:.87rem; line-height:1.55;
  color:#4a423c;
}
.fees__notes li::before{
  content:"";
  position:absolute; left:0; top:.6rem;
  width:5px; height:5px; border-radius:50%;
  background:var(--clay);
}
.fees__notes strong{ color:var(--ink); font-weight:600; }
.fees__cta{ display:grid; gap:.65rem; justify-items:start; }
.btn--ox{ background:var(--ox); color:var(--paper); }
.btn--ox:hover{ background:var(--ox-deep); transform:translateY(-2px); }
.fees__tel{
  font-size:.84rem; color:var(--ink-mute);
  text-decoration:underline; text-underline-offset:3px;
}
.fees__tel:hover{ color:var(--ox); }

/* ================================= proof ================================= */
.sect--ox{
  background:var(--ox);
  color:var(--paper);
  background-image:radial-gradient(64% 70% at 90% 8%, rgba(232,183,156,.2), transparent 64%);
}
.proof__grid{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr);
  gap:clamp(2rem,5vw,4rem);
  align-items:start;
}
.proof .sect__h2{ color:var(--paper); }
.proof__block{
  margin-top:1.3rem;
  font-family:var(--font-display);
  font-size:clamp(1.18rem,1.95vw,1.5rem);
  line-height:1.5;
  color:var(--paper);
  max-width:44ch;
}
.proof__block::before{
  content:"\201C";
  display:block;
  font-family:var(--font-display);
  font-size:3.2rem; line-height:.55;
  color:var(--clay-soft);
  margin-bottom:.7rem;
}
.proof__block footer{
  margin-top:1.2rem;
  font-family:var(--font-body);
  font-size:.8rem; letter-spacing:.07em;
  color:rgba(247,241,232,.7);
}
.proof__cards{ display:grid; gap:.7rem; }
.rating{
  background:var(--paper);
  border-radius:18px;
  padding:1.3rem 1.4rem;
  color:var(--ink);
  display:grid; gap:.25rem;
}
.rating__score{
  font-family:var(--font-display);
  font-size:2.5rem; font-weight:500;
  line-height:1; color:var(--ox);
}
.rating__stars{
  font-size:.9rem; letter-spacing:.2em;
  color:var(--clay);
}
.rating__meta{ font-size:.76rem; color:var(--ink-mute); }
.bacp{
  background:var(--paper);
  border-radius:18px;
  padding:1.2rem 1.4rem;
}
.bacp img{
  width:min(230px,100%); height:auto;
  margin-bottom:.75rem;
}
.bacp p{ font-size:.74rem; line-height:1.5; color:var(--ink-mute); }
.proof__list{
  display:grid; gap:.4rem;
  font-size:.85rem;
  color:rgba(247,241,232,.82);
}
.proof__list li{
  position:relative; padding-left:1.05rem;
}
.proof__list li::before{
  content:"";
  position:absolute; left:0; top:.53rem;
  width:5px; height:5px; border-radius:50%;
  background:var(--clay-soft);
}

/* ================================ contact ================================ */
.contact__grid{
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);
  gap:clamp(2rem,5vw,4rem);
  align-items:start;
}
.contact__intro{
  margin-top:.9rem;
  color:var(--ink-mute);
  max-width:52ch;
}
.contact__list{ display:grid; gap:.5rem; margin-top:1.6rem; }
.contact__list li{
  background:var(--stone-2);
  border-radius:16px;
  padding:1rem 1.15rem;
  display:grid; gap:.25rem;
  min-width:0;
}
.contact__k{
  font-size:.63rem; font-weight:600;
  letter-spacing:.15em; text-transform:uppercase;
  color:var(--clay-deep);
}
.contact__v{
  font-size:1rem; line-height:1.5;
  font-weight:500; color:var(--ink);
  overflow-wrap:anywhere;
}
a.contact__v:hover{ color:var(--ox); }
.contact__map{
  display:inline-flex; align-items:center; gap:.3rem;
  margin-top:.25rem;
  font-size:.79rem; font-weight:600;
  color:var(--ox);
  text-decoration:underline; text-underline-offset:3px;
}
.contact__map svg{ width:12px; height:12px; }

.book{
  background:var(--ox);
  color:var(--paper);
  border-radius:24px;
  padding:clamp(1.5rem,3vw,2.2rem);
  display:grid; gap:.7rem;
  justify-items:start;
}
.book__eyebrow{
  font-size:.63rem; font-weight:600;
  letter-spacing:.18em; text-transform:uppercase;
  color:var(--clay-soft);
}
.book__title{
  font-family:var(--font-display);
  font-size:clamp(1.35rem,2.1vw,1.7rem);
  font-weight:500; line-height:1.22;
  color:var(--paper);
  max-width:20ch;
}
.book__copy{
  font-size:.9rem; line-height:1.6;
  color:rgba(247,241,232,.8);
  max-width:36ch;
}
.book__btn{ margin-top:.35rem; }
.book__small{
  font-size:.7rem;
  color:rgba(247,241,232,.68);
  overflow-wrap:anywhere;
}
.book__rule{
  width:100%; height:1px;
  background:rgba(247,241,232,.18);
  margin:.45rem 0;
}
.book__note{
  font-size:.78rem; line-height:1.55;
  color:rgba(247,241,232,.66);
  max-width:34ch;
}

/* ================================= footer ================================ */
.foot{ background:#241f1d; }
.foot .brand:hover .brand__mark{ transform:rotate(45deg); }
.foot__blurb{
  margin-top:1.1rem;
  font-size:.87rem; line-height:1.6;
  color:rgba(247,241,232,.62);
  max-width:34ch;
}
.foot__contact{
  margin-top:.6rem;
  font-size:.81rem; line-height:1.5;
  color:rgba(247,241,232,.7);
  overflow-wrap:anywhere;
}
.foot__contact a{ text-decoration:underline; text-underline-offset:3px; }
.foot__contact a:hover{ color:var(--clay-soft); }
.foot__nav a:hover{ color:var(--clay-soft); }
.foot__h{ color:rgba(247,241,232,.7); }
.foot__bottom{ color:rgba(247,241,232,.62); }

/* =============================== responsive ============================== */
@media (max-width:1023px){
  .hdr__in{ min-height:68px; }
  .brand__name{ font-size:1.1rem; }
  .brand__sub{ font-size:.545rem; letter-spacing:.12em; }

  .nav{
    background:var(--ox-deep);
    border-right:0;
  }
  .nav__head{ border-bottom-color:rgba(247,241,232,.16); }
  .nav__item{ border-bottom-color:rgba(247,241,232,.12); }
  .nav__link{ color:var(--paper); font-size:1.02rem; }
  .nav__link::after{ display:none; }
  .nav__foot{
    display:grid; gap:.55rem;
    color:rgba(247,241,232,.72);
    font-size:.85rem;
  }
  .nav__foot a:not(.btn){ overflow-wrap:anywhere; }
  .nav__foot .btn{
    margin-top:.5rem;
    width:100%; justify-content:center;
  }
  .nav__cta{ white-space:normal; text-align:center; }

  .hero,
  .hero__in{ min-height:calc(100svh - 68px); }
  main section[id]{ scroll-margin-top:80px; }

  .ways__grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .way{ min-height:250px; }
}

@media (min-width:861px){
  .portrait{ position:sticky; top:104px; }
}

@media (max-width:860px){
  .split{ grid-template-columns:minmax(0,1fr); gap:1.8rem; }
  .split__lead{ max-width:52ch; }
  .ways__head{ grid-template-columns:minmax(0,1fr); align-items:start; gap:.8rem; }
  .mind__body{ grid-template-columns:minmax(0,1fr); }
  .about__grid{ grid-template-columns:minmax(0,1fr); }
  .portrait{ max-width:540px; }
  .fee-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .fees__notes{ grid-template-columns:minmax(0,1fr); }
  .proof__grid{ grid-template-columns:minmax(0,1fr); }
  .proof__cards{
    grid-template-columns:repeat(2,minmax(0,1fr));
    display:grid;
  }
  .proof__list{ grid-column:1 / -1; }
  .contact__grid{ grid-template-columns:minmax(0,1fr); }
  .areas{ grid-template-columns:minmax(0,1fr); }
  .quals__list{ grid-template-columns:minmax(0,1fr); }
}

@media (max-width:640px){
  body{ font-size:16.5px; }

  .hero__mark{ right:-24%; opacity:.9; }
  .hero__cta{ gap:.55rem; }
  .hero__cta .btn{ width:100%; justify-content:center; }
  .hero__trust{ gap:.4rem 1rem; font-size:.76rem; }
  .hero__where{ font-size:.72rem; max-width:32ch; line-height:1.5; }

  .ways__grid{ grid-template-columns:minmax(0,1fr); }
  .way{ min-height:0; }

  .mind__list{ grid-template-columns:minmax(0,1fr); }

  .facts{ grid-template-columns:minmax(0,1fr); }
  .facts li{ grid-auto-flow:column; align-items:baseline; justify-content:start; gap:.6rem; }
  .facts__n{ font-size:1.35rem; }

  .fee-grid{ grid-template-columns:minmax(0,1fr); }
  .strip{ grid-template-columns:minmax(0,1fr); }
  .settings{ grid-template-columns:minmax(0,1fr); }
  .proof__cards{ grid-template-columns:minmax(0,1fr); }
  .portrait__frame{ box-shadow:10px 10px 0 -2px #f1e7dc; }
  .pull{ padding:1.1rem 1.2rem; }
  .quote{ padding-left:1rem; }
  .book{ border-radius:20px; }
}

/* reduced motion: base.css already flattens transitions; kill the dot stagger */
@media (prefers-reduced-motion: reduce){
  .dot--1,.dot--2,.dot--3,.dot--4{ animation:none; }
  .brand:hover .brand__mark{ transform:none; }
}
