/* ============================================================
   KAP page — Ketamine-Assisted Psychotherapy
   Same ink field, same clay and moss lights.
   ============================================================ */

.page-kap .nav{ position:relative; }

/* ---------- hero ---------- */

.kap-hero{
  padding:clamp(28px,5vw,56px) 0 var(--section-gap);
  background:
    radial-gradient(110% 70% at 88% 4%, rgba(125,155,122,.20) 0%, transparent 58%),
    radial-gradient(80% 60% at 4% 96%, rgba(217,138,95,.14) 0%, transparent 62%),
    var(--forest);
  color:var(--forest-text);
  --text:var(--forest-text);
  --muted:var(--forest-muted);
  --accent:var(--forest-accent);
  --accent-text:var(--forest-accent-text);
}
.kap-hero__title{
  font-family:var(--font-display);
  font-weight:600;
  font-size:clamp(2.6rem,7.4vw,5.6rem);
  line-height:.98;
  letter-spacing:-.035em;
  margin:0 0 clamp(28px,4vw,48px);
  max-width:18ch;
}
.kap-hero__grid{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:32px;
  align-items:start;
}
@media (min-width:900px){
  .kap-hero__grid{
    grid-template-columns:repeat(12,minmax(0,1fr));
    gap:40px;
  }
  .kap-hero__copy{ grid-column:1 / span 7; }
  .kap-hero__figure{ grid-column:9 / span 4; }
  .kap-hero__aside{ grid-column:9 / span 4; }
}
.kap-hero__copy p{
  margin:0 0 18px;
  color:var(--muted);
  max-width:58ch;
}
.kap-hero__lede{
  font-family:var(--font-display);
  font-weight:400;
  font-size:clamp(1.25rem,2.2vw,1.6rem);
  line-height:1.35;
  letter-spacing:-.01em;
  color:var(--text) !important;
}
.kap-hero__actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:28px;
}
.kap-hero__figure{
  margin:0;
  aspect-ratio:4/5;
  border-radius:999px 999px 0 0;
  overflow:hidden;
  background:var(--surface);
  position:relative;
}
.kap-hero__figure img{
  width:100%; height:100%;
  object-fit:cover;
  filter:saturate(.6) brightness(.86) contrast(1.02);
}
/* the arc of care, set as a quiet numbered list beside the opening copy */
.kap-hero__aside{
  align-self:start;
  padding:24px 24px 22px;
  border-radius:var(--kr-radius);
  background:color-mix(in srgb, var(--forest-text) 7%, transparent);
  border:1px solid color-mix(in srgb, var(--forest-text) 18%, transparent);
  border-top:2px solid var(--forest-accent);
}
.kap-hero__asidelabel{
  margin:0 0 14px;
  font-size:12px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--accent);
  font-weight:600;
}
.kap-hero__arc{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:0;
}
.kap-hero__arc li{
  display:flex;
  align-items:baseline;
  gap:12px;
  padding:11px 0;
  border-top:1px solid color-mix(in srgb, var(--text) 13%, transparent);
  font-size:15px;
  line-height:1.4;
  color:var(--text);
}
.kap-hero__arc li:first-child{ border-top:0; padding-top:0; }
.kap-hero__arc li span{
  font-family:var(--font-display);
  font-weight:600;
  font-size:13px;
  letter-spacing:.02em;
  color:var(--accent);
  font-variant-numeric:tabular-nums;
  flex:0 0 auto;
}
.kap-hero__asidenote{
  margin:16px 0 0;
  padding-top:14px;
  border-top:1px solid color-mix(in srgb, var(--text) 13%, transparent);
  font-size:13px;
  line-height:1.55;
  color:var(--muted);
}

.kap-hero__facts{
  list-style:none;
  margin:clamp(32px,4vw,48px) 0 0;
  padding:20px 0 0;
  border-top:1.5px solid color-mix(in srgb, var(--text) 22%, transparent);
  display:flex;
  flex-wrap:wrap;
  gap:10px 28px;
  font-size:12px;
  letter-spacing:.13em;
  text-transform:uppercase;
  color:var(--muted);
}
.kap-hero__facts li{ position:relative; padding-left:14px; }
.kap-hero__facts li::before{
  content:"";
  position:absolute;
  left:0; top:.62em;
  width:5px; height:5px;
  border-radius:50%;
  background:var(--sage);
}

/* ---------- two-column body + note ---------- */

.kap-two{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:32px;
  align-items:start;
  margin-top:clamp(28px,4vw,44px);
}
@media (min-width:900px){
  .kap-two{
    grid-template-columns:repeat(12,minmax(0,1fr));
    gap:40px;
  }
  .kap-two__main{ grid-column:1 / span 7; }
  .kap-note{ grid-column:9 / span 4; }
  .kap-side{ grid-column:9 / span 4; }
}
.kap-two__main .sec__body{ margin-bottom:18px; }
.kap-two__main .sec__body:last-child{ margin-bottom:0; }

.kap-note{
  padding:24px 24px 8px;
  border-radius:var(--kr-radius);
  background:color-mix(in srgb, var(--text) 5%, transparent);
  border:1px solid color-mix(in srgb, var(--text) 16%, transparent);
  border-left:2px solid var(--accent);
}
.kap-note__label{
  margin:0 0 12px;
  font-size:12px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--accent);
  font-weight:600;
}
.kap-note p:not(.kap-note__label){
  margin:0 0 16px;
  font-size:15px;
  line-height:1.6;
  color:var(--muted);
  max-width:46ch;
}

.kap-side{
  margin:0;
  aspect-ratio:4/5;
  border-radius:999px 999px 0 0;
  overflow:hidden;
  background:var(--surface);
  position:relative;
}
.kap-side img{
  width:100%; height:100%;
  object-fit:cover;
  filter:saturate(.6) brightness(.86) contrast(1.02);
}

/* ---------- list ---------- */

.kap-list{
  list-style:none;
  margin:8px 0 24px;
  padding:0;
  display:grid;
  gap:0;
}
.kap-list li{
  display:grid;
  gap:4px;
  padding:16px 0;
  border-top:1px solid color-mix(in srgb, var(--text) 14%, transparent);
}
.kap-list li:last-child{ border-bottom:1px solid color-mix(in srgb, var(--text) 14%, transparent); }
.kap-list strong{
  font-family:var(--font-display);
  font-weight:600;
  font-size:clamp(1.15rem,1.8vw,1.4rem);
  line-height:1.2;
  letter-spacing:-.01em;
  color:var(--text);
}
.kap-list span{ color:var(--muted); font-size:15px; line-height:1.55; max-width:56ch; }

/* ---------- pathways ---------- */

.kap-intro{ margin-top:clamp(20px,3vw,28px); }
.kap-paths{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:24px;
  margin-top:clamp(28px,4vw,44px);
}
@media (min-width:800px){
  .kap-paths{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:40px; }
}
.kap-path{
  padding:clamp(24px,3vw,36px);
  border-radius:var(--kr-radius);
  background:color-mix(in srgb, var(--surface) 72%, transparent);
  border:1px solid color-mix(in srgb, var(--text) 14%, transparent);
}
.kap-path__n{
  font-family:var(--font-display);
  font-weight:600;
  font-size:clamp(40px,5vw,64px);
  line-height:.9;
  margin:0 0 14px;
  color:transparent;
  -webkit-text-stroke:1px var(--accent);
  text-stroke:1px var(--accent);
}
.kap-path h3{
  font-family:var(--font-display);
  font-weight:600;
  font-size:clamp(1.35rem,2.2vw,1.9rem);
  line-height:1.15;
  letter-spacing:-.01em;
  margin:0 0 12px;
}
.kap-path p:last-child{
  margin:0;
  color:var(--muted);
  font-size:16px;
  line-height:1.6;
  max-width:52ch;
}

/* ---------- comparison table: Journey Clinical vs Joyous ---------- */

.kap-cmp{
  margin-top:clamp(32px,4vw,48px);
  padding:clamp(22px,3vw,40px);
  border-radius:var(--kr-radius);
  background:color-mix(in srgb, var(--bg) 62%, transparent);
  border:1px solid color-mix(in srgb, var(--text) 16%, transparent);
}
.kap-cmp__title{
  font-family:var(--font-display);
  font-weight:600;
  font-size:clamp(1.35rem,2.6vw,2.1rem);
  line-height:1.15;
  letter-spacing:-.02em;
  margin:0 0 10px;
  max-width:24ch;
}
.kap-cmp__sub{
  margin:0 0 clamp(22px,3vw,32px);
  color:var(--muted);
  font-size:15px;
  line-height:1.6;
  max-width:56ch;
}
.kap-cmp__scroll{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.kap-cmp__table{
  width:100%;
  min-width:520px;
  border-collapse:collapse;
  text-align:left;
}
.kap-cmp__cap{
  caption-side:top;
  text-align:left;
  font-size:12px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--muted);
  font-weight:600;
  padding-bottom:14px;
}
.kap-cmp__table thead th{
  vertical-align:bottom;
  padding:0 0 16px;
  border-bottom:1.5px solid color-mix(in srgb, var(--text) 26%, transparent);
  font-weight:400;
}
.kap-cmp__table thead th + th{ padding-left:clamp(16px,2.4vw,32px); }
.kap-cmp__k{
  display:block;
  font-size:12px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--muted);
  font-weight:600;
}
.kap-cmp__mark{
  display:block;
  font-family:var(--font-display);
  font-weight:600;
  font-size:clamp(26px,3vw,36px);
  line-height:.9;
  letter-spacing:-.02em;
  color:transparent;
  -webkit-text-stroke:1px var(--accent);
  text-stroke:1px var(--accent);
  margin-bottom:8px;
}
.kap-cmp__name{
  display:block;
  font-family:var(--font-display);
  font-weight:600;
  font-size:clamp(1.1rem,1.9vw,1.5rem);
  line-height:1.15;
  letter-spacing:-.01em;
  color:var(--text);
}
.kap-cmp__table tbody th{
  width:26%;
  padding:16px 16px 16px 0;
  border-bottom:1px solid color-mix(in srgb, var(--text) 13%, transparent);
  font-size:12px;
  letter-spacing:.13em;
  text-transform:uppercase;
  color:var(--muted);
  font-weight:600;
  vertical-align:top;
}
.kap-cmp__table tbody td{
  padding:16px 0;
  border-bottom:1px solid color-mix(in srgb, var(--text) 13%, transparent);
  font-size:16px;
  line-height:1.5;
  color:var(--muted);
  vertical-align:top;
}
.kap-cmp__table tbody td + td{ padding-left:clamp(16px,2.4vw,32px); }
.kap-cmp__table tbody td strong{
  font-weight:600;
  color:var(--text);
}
.kap-cmp__table tbody tr:last-child th,
.kap-cmp__table tbody tr:last-child td{ border-bottom:0; }
.kap-cmp__close{
  margin-top:clamp(22px,3vw,30px);
  padding-top:clamp(18px,2.4vw,24px);
  border-top:1.5px solid color-mix(in srgb, var(--text) 22%, transparent);
  max-width:62ch;
}
.kap-cmp__closelabel{
  margin:0 0 8px;
  font-family:var(--font-display);
  font-weight:600;
  font-size:clamp(1.15rem,1.9vw,1.45rem);
  line-height:1.2;
  letter-spacing:-.01em;
  color:var(--accent);
}
.kap-cmp__close p:last-child{
  margin:0;
  color:var(--text);
  font-size:16px;
  line-height:1.6;
}

/* on phones the table becomes two stacked cards, still a real table */
@media (max-width:640px){
  .kap-cmp{ padding:20px 18px; }
  .kap-cmp__scroll{ overflow-x:visible; }
  .kap-cmp__table{ min-width:0; }
  .kap-cmp__table thead{ display:none; }
  .kap-cmp__table tbody,
  .kap-cmp__table tbody tr{ display:block; }
  .kap-cmp__table tbody tr{
    padding:16px 0;
    border-top:1px solid color-mix(in srgb, var(--text) 16%, transparent);
  }
  .kap-cmp__table tbody tr:first-child{ border-top:0; padding-top:0; }
  .kap-cmp__table tbody th{
    display:block;
    width:auto;
    padding:0 0 10px;
    border-bottom:0;
  }
  .kap-cmp__table tbody td{
    display:grid;
    grid-template-columns:minmax(0,1fr);
    gap:2px;
    padding:10px 0 10px 14px;
    border-bottom:0;
    border-left:2px solid color-mix(in srgb, var(--accent) 55%, transparent);
    font-size:15px;
  }
  .kap-cmp__table tbody td + td{ padding-left:14px; margin-top:8px; }
  .kap-cmp__table tbody td::before{
    content:attr(data-label);
    font-size:11px;
    letter-spacing:.13em;
    text-transform:uppercase;
    color:var(--accent);
    font-weight:600;
  }
}

/* ---------- FAQ ---------- */

.kap-faq{
  margin-top:clamp(28px,4vw,44px);
  border-top:1px solid color-mix(in srgb, var(--text) 16%, transparent);
  max-width:900px;
}
.kap-faq details{
  border-bottom:1px solid color-mix(in srgb, var(--text) 16%, transparent);
}
.kap-faq summary{
  list-style:none;
  cursor:pointer;
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:20px;
  padding:20px 0;
  font-family:var(--font-display);
  font-weight:600;
  font-size:clamp(1.05rem,1.7vw,1.35rem);
  line-height:1.3;
  letter-spacing:-.01em;
  transition:color .2s ease;
}
.kap-faq summary::-webkit-details-marker{ display:none; }
.kap-faq summary::after{
  content:"+";
  flex:0 0 auto;
  font-family:var(--font-body);
  font-weight:400;
  font-size:22px;
  line-height:1;
  color:var(--accent);
  transition:transform .25s ease;
}
.kap-faq details[open] summary::after{ transform:rotate(45deg); }
.kap-faq summary:hover,
.kap-faq details[open] summary{ color:var(--accent); }
.kap-faq summary:focus-visible{ outline:2px solid var(--accent); outline-offset:4px; }
.kap-faq details p{
  margin:0 0 22px;
  color:var(--muted);
  max-width:64ch;
  line-height:1.65;
}

/* ---------- form status ---------- */

.page-kap .ct__status{ margin:0; font-size:15px; color:var(--muted); min-height:1.5em; }

@media (prefers-reduced-motion:reduce){
  .kap-faq summary,
  .kap-faq summary::after{ transition:none; }
}
