/* ============================================================
   Suzette Cook, LCSW — Landing Page (Still Point)
   The stock LP's structure in the main site's design language.
   Tokens, type scale and section idioms are lifted from client.css so this
   page reads as the same site; only the funnel structure differs.
   ============================================================ */

:root{
  --teal:#3F6F66;
  --teal-deep:#335A52;
  --teal-ink:#25433C;
  --teal-light:#8FC4B7;
  --plum:#6E5A7A;
  --plum-soft:#A294AE;
  --plum-lift:#D6C9DF;
  --stone:#E3E0DA;
  --stone-warm:#DAD7CF;
  --ink:#2A2F2F;
  --ink-soft:#4A5252;
  --paper:#F6F6F1;
  --disp:'Instrument Serif',Georgia,serif;
  --grot:'Schibsted Grotesk',sans-serif;
  --body:'Onest',sans-serif;
  --serif:'Source Serif 4',Georgia,serif;
  --sans:'Work Sans',sans-serif;
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body.lps{font-family:var(--body);color:var(--ink);background:var(--stone);line-height:1.65;font-weight:400;overflow-x:hidden}
h1,h2,h3,h4{font-family:var(--disp);font-weight:400;line-height:1.02;text-wrap:balance;letter-spacing:-.01em}
p{text-wrap:pretty}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
.duo{filter:url(#suzduo)}

.lps-wrap{width:90%;max-width:1240px;margin:0 auto}
.lps-container{width:90%;max-width:1180px;margin:0 auto}
.lps-container-narrow{max-width:880px}
.lps-narrow{max-width:760px}

.lps-skip{position:absolute;left:-9999px;top:0;background:var(--paper);color:var(--teal-ink);padding:.9rem 1.4rem;z-index:999}
.lps-skip:focus{left:1rem;top:1rem}

/* ── buttons ───────────────────────────────────────────────── */
.lps-btn{display:inline-flex;align-items:center;gap:.7em;font-family:var(--grot);font-weight:600;font-size:.92rem;letter-spacing:.02em;padding:1rem 1.9rem;border-radius:999px;transition:background .3s,color .3s,box-shadow .3s;border:1px solid transparent}
.lps-btn-paper{background:var(--paper);color:var(--teal-ink)}
.lps-btn-paper:hover{background:#fff;box-shadow:0 18px 38px -20px rgba(37,67,60,.55)}
.lps-btn-teal{background:var(--teal-deep);color:var(--paper)}
.lps-btn-teal:hover{background:var(--teal-ink)}
.lps-btn:focus-visible{outline:3px solid var(--plum-lift);outline-offset:3px}
.lps-ar{transition:transform .3s}
.lps-btn:hover .lps-ar{transform:translateX(4px)}
.lps-lk{font-family:var(--grot);font-weight:600;font-size:.92rem;color:var(--paper);border-bottom:1px solid rgba(246,246,241,.5);padding-bottom:.25rem}
.lps-lk:hover{border-bottom-color:var(--paper)}

/* ── header: transit rail ──────────────────────────────────── */
.lps-hdr{position:fixed;inset:0 0 auto 0;z-index:200;transition:background .4s,box-shadow .4s}
.lps-hdr-in{display:flex;align-items:center;gap:2rem;padding:1.15rem 0}
.lps-logo{font-family:var(--grot);font-weight:700;font-size:1.18rem;letter-spacing:-.01em;color:var(--paper);transition:color .4s}
.lps-anchors{margin-left:auto}
.lps-anchors ul{display:flex;gap:1.7rem;list-style:none}
.lps-anchors a{font-family:var(--grot);font-weight:600;text-transform:uppercase;letter-spacing:.14em;font-size:.7rem;color:rgba(246,246,241,.86);transition:color .3s}
.lps-anchors a:hover{color:var(--paper)}
.lps-hdr-act{display:flex;align-items:center;gap:1.3rem;margin-left:auto}
.lps-anchors + .lps-hdr-act{margin-left:0}
.lps-tel{font-family:var(--grot);font-weight:600;font-size:.9rem;color:var(--paper);border-bottom:1px solid transparent;padding-bottom:2px;transition:color .25s,border-color .25s}
.lps-tel:hover,.lps-tel:focus-visible{color:var(--plum-lift);border-bottom-color:var(--plum-lift)}
.lps-hdr.is-solid .lps-tel:hover,.lps-hdr.is-solid .lps-tel:focus-visible{color:var(--plum);border-bottom-color:var(--plum)}
.lps-hdr .lps-btn-paper{padding:.72rem 1.35rem;font-size:.8rem}
.lps-hdr.is-solid{background:var(--paper);box-shadow:0 1px 0 rgba(37,67,60,.1)}
.lps-hdr.is-solid .lps-logo,.lps-hdr.is-solid .lps-tel{color:var(--teal-deep)}
.lps-hdr.is-solid .lps-anchors a{color:var(--ink-soft)}
.lps-hdr.is-solid .lps-anchors a:hover{color:var(--teal-deep)}
.lps-hdr.is-solid .lps-btn-paper{background:var(--teal-deep);color:var(--paper)}
.lps-hdr.is-solid .lps-btn-paper:hover{background:var(--teal-ink)}

/* ── hero ──────────────────────────────────────────────────── */
.lps-hero{position:relative;min-height:92vh;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;background:var(--teal-ink)}
.lps-hero-bg{position:absolute;inset:0;z-index:0}
.lps-hero-bg img{width:100%;height:100%;object-fit:cover;object-position:center 34%;filter:saturate(1.28) contrast(1.06) brightness(1.04)}
/* Two-layer scrim, same construction as the homepage hero: a short band that
   keeps the fixed header legible, plus a left-weighted wash under the type. */
.lps-hero-bg::after{content:"";position:absolute;inset:0;background:
  linear-gradient(180deg,rgba(37,67,60,.86) 0,rgba(37,67,60,.58) 78px,rgba(37,67,60,0) 165px),
  linear-gradient(180deg,rgba(37,67,60,.22) 0%,rgba(37,67,60,.12) 34%,rgba(37,67,60,.44) 70%,rgba(37,67,60,.90) 100%),
  linear-gradient(90deg,rgba(37,67,60,.72) 0%,rgba(37,67,60,.62) 40%,rgba(37,67,60,.34) 62%,rgba(37,67,60,.08) 84%,rgba(37,67,60,0) 100%)}
/* The block is bottom-anchored (justify-content:flex-end), so padding-TOP does not
   position it — padding-bottom does. +9vh lifts the whole hero block that much
   higher; padding-top sits at 14vh so the box still fits above the ticker. */
.lps-hero-in{position:relative;z-index:2;padding:14vh 0 calc(3rem + 9vh)}
/* the site's .lab label idiom, lightened for the dark hero ground */
.lps-kicker{display:inline-flex;align-items:center;gap:.7em;font-family:var(--grot);font-weight:600;text-transform:uppercase;letter-spacing:.28em;font-size:.72rem;color:var(--plum-lift);margin-bottom:1.5rem}
.lps-kicker::before{content:"";width:24px;height:1px;background:var(--plum-lift);opacity:.75}
.lps-hero h1{color:var(--paper);font-size:clamp(2.7rem,7.4vw,6.2rem);max-width:15ch;text-shadow:0 2px 28px rgba(37,67,60,.5)}
.lps-hero h1 em{font-style:italic;color:var(--plum-lift)}
.lps-hero-sub{font-family:var(--body);color:rgba(246,246,241,.88);font-size:clamp(1.02rem,1.6vw,1.28rem);font-weight:500;max-width:46ch;margin-top:1.7rem}
.lps-hero-act{display:flex;align-items:center;gap:1.7rem;flex-wrap:wrap;margin-top:2.3rem}

/* hero ticker */
.lps-ticker{position:relative;z-index:2;border-top:1px solid rgba(246,246,241,.16);background:rgba(37,67,60,.42);overflow:hidden}
.lps-ticker-track{display:flex;width:max-content;animation:lps-marquee 46s linear infinite}
.lps-ticker span{font-family:var(--disp);font-size:1.16rem;color:rgba(246,246,241,.8);white-space:nowrap;padding:.85rem 0;letter-spacing:.01em}
.lps-ticker i{font-style:normal;color:var(--plum-soft);font-size:.5rem;vertical-align:middle;padding:0 .85rem}
@keyframes lps-marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ── vignette bands ────────────────────────────────────────── */
.lps-band{position:relative}
.lps-band-paper{background:var(--paper)}
.lps-deepfield{background:var(--teal-ink);color:var(--paper)}
.lps-vig{display:grid;grid-template-columns:1fr 1fr;align-items:stretch}
.lps-vig-words{display:flex;flex-direction:column;justify-content:center;max-width:33rem;padding:clamp(2.6rem,5vw,5rem) clamp(1.8rem,3vw,3.2rem)}
.lps-vig:not(.lps-vig-flip) .lps-vig-words{justify-self:end}
.lps-vig-flip .lps-vig-words{justify-self:start}
.lps-vig-flip .lps-vig-pic{order:-1}
.lps-vig-pic{position:relative;min-height:520px;overflow:hidden}
.lps-vig-pic img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
/* Portrait photos of a couple in a landscape-ish slot, so the cover crop drops
   most of the frame — each one is biased to whichever end holds the subject.
   #how-to-escape (lp-escape-kitchen): the couple stand low in the tall frame,
   feet near 84% of its height, so the crop is pushed DOWN to keep them whole —
   a centred or upward bias cuts their legs off at the frame edge. */
#solution .lps-vig-pic img{object-position:center 28%}
#how-to-escape .lps-vig-pic img{object-position:center 72%}
.lps-vig h2{font-size:clamp(1.9rem,4vw,3.2rem);color:var(--teal-ink);margin-bottom:1.4rem;max-width:17ch}
.lps-deepfield .lps-vig h2{color:var(--paper)}
.lps-vig p{color:var(--ink-soft);font-size:1.06rem;margin-bottom:1.1rem}
.lps-deepfield p{color:rgba(246,246,241,.84)}
.lps-vig p:last-child{margin-bottom:0}
.lps-symptoms{list-style:none;margin-top:1.4rem;display:grid;gap:.7rem}
.lps-symptoms li{position:relative;padding-left:1.5rem;color:var(--ink-soft);font-size:1.02rem}
.lps-symptoms li::before{content:"";position:absolute;left:0;top:.62em;width:7px;height:7px;border-radius:50%;background:var(--plum-soft)}
.lps-deepfield .lps-symptoms li{color:rgba(246,246,241,.84)}
.lps-aside{font-family:var(--disp);font-size:1.28rem;color:var(--plum);line-height:1.35;margin-top:1.5rem}
.lps-vig .lps-btn{align-self:flex-start;margin-top:1.7rem}

.lps-deepfield .lps-wrap{padding:clamp(3.4rem,7vw,6rem) 0}
.lps-pull{font-family:var(--disp);font-size:clamp(1.6rem,3.4vw,2.5rem);line-height:1.16;color:var(--paper);margin-bottom:1.6rem}

/* ── grounded half ─────────────────────────────────────────── */
.aside-a{font-family:var(--sans);background:var(--paper)}
.aside-a h2,.aside-a h3,.aside-a h4{font-family:var(--serif);font-weight:600;line-height:1.14;letter-spacing:0}
.lps-pad{padding:clamp(3.6rem,7vw,6.5rem) 0}
.lps-pad-stone{background:var(--stone-warm)}
.lps-g-head{font-size:clamp(1.75rem,3.4vw,2.65rem);color:var(--teal-deep);margin-bottom:1.2rem;max-width:24ch}
.lps-g-intro,.lps-lead p{color:var(--ink-soft);font-size:1.07rem;line-height:1.75;max-width:62ch}
.lps-lead p{margin-bottom:1.1rem}
.lps-g-head-block{margin-bottom:clamp(2rem,4vw,3rem)}
/* Process intro is centred — the phase cards below it read as one symmetrical block */
#process .lps-g-head-block,#faq{text-align:center}
#process .lps-g-head,#process .lps-g-intro,#faq .lps-g-head,#faq .lps-g-intro{margin-left:auto;margin-right:auto}
/* the questions themselves stay left-aligned — only the section heading centres */
#faq .lps-faqs{text-align:left}

/* benefits — cards rather than long bare lines, so each one reads as its own
   thought and the measure stays short */
#what-becomes-possible .lps-container{max-width:1020px}
.lps-benefits{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:1.1rem;margin-top:2.3rem}
.lps-benefits li{position:relative;display:flex;gap:.95rem;align-items:flex-start;background:#fff;border-radius:12px;padding:1.25rem 1.4rem;
  box-shadow:0 20px 44px -32px rgba(37,67,60,.5);transition:transform .35s ease,box-shadow .35s ease}
.lps-benefits li:hover{box-shadow:0 26px 54px -30px rgba(37,67,60,.62)}
/* the check sits in the flex row, not as an absolute pseudo-dot */
.lps-benefits li::before{content:"";flex:none;width:22px;height:22px;margin-top:.15em;border-radius:50%;background:var(--teal-light);
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%2325433C' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 8.5l3 3 6-6'/%3E%3C/svg%3E");
  background-size:14px 14px;background-position:center;background-repeat:no-repeat}
.lps-benefits strong{display:block;font-family:var(--serif);font-weight:600;font-size:1.08rem;color:var(--teal-deep);margin-bottom:.25rem}
.lps-benefits span{display:block;color:var(--ink-soft);font-size:1.01rem;line-height:1.62;max-width:34ch}

/* process */
/* Phase cycle: each card lifts in turn — 1, 2, 3, then round again. --n is the
   phase count (set inline), so the timing divides evenly however many there are.
   The lift is deliberately small; this sits on a therapy page, not a dashboard. */
.lps-steps{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:1.8rem;--cycle:10.5s}
/* The active phase is signalled by COLOUR, not movement — the card flips to the
   deepfield teal the site already alternates bands with. Nothing translates:
   cards hopping up and down is not the register this page is in. */
.lps-step{position:relative;background:var(--paper);border-radius:10px;padding:clamp(1.6rem,3vw,2.2rem);box-shadow:0 26px 52px -34px rgba(37,67,60,.4);
  animation:lps-phase var(--cycle) ease-in-out infinite;
  animation-delay:calc(var(--i, 0) * var(--cycle) / var(--n, 3))}
.lps-step h3{font-size:1.24rem;color:var(--teal-deep);margin-bottom:.8rem;
  animation:lps-phase-ink var(--cycle) ease-in-out infinite;
  animation-delay:calc(var(--i, 0) * var(--cycle) / var(--n, 3))}
.lps-step p{color:var(--ink-soft);font-size:1.01rem;line-height:1.72;margin-bottom:.8rem;
  animation:lps-phase-body var(--cycle) ease-in-out infinite;
  animation-delay:calc(var(--i, 0) * var(--cycle) / var(--n, 3))}
.lps-step p:last-child{margin-bottom:0}
@keyframes lps-phase{
  0%, 100%{background:var(--paper);     box-shadow:0 26px 52px -34px rgba(37,67,60,.4)}
  5%,  28%{background:var(--teal-deep); box-shadow:0 34px 66px -30px rgba(37,67,60,.72)}
  33%     {background:var(--paper);     box-shadow:0 26px 52px -34px rgba(37,67,60,.4)}
}
@keyframes lps-phase-ink{
  0%, 100%{color:var(--teal-deep)}
  5%,  28%{color:#fff}
  33%     {color:var(--teal-deep)}
}
@keyframes lps-phase-body{
  0%, 100%{color:var(--ink-soft)}
  5%,  28%{color:rgba(246,246,241,.92)}
  33%     {color:var(--ink-soft)}
}

/* bio panel — the homepage's full-bleed dark teal band */
.lps-bio{position:relative;margin:0;background:linear-gradient(152deg,#22413A 0%,#2C5249 58%,#335A52 100%);color:#F6F6F1;overflow:hidden}
.lps-bio::before{content:"";position:absolute;top:-8rem;right:-6rem;width:34rem;height:34rem;border-radius:50%;background:radial-gradient(circle,rgba(110,90,122,.28),transparent 68%);pointer-events:none}
.lps-bio-in{position:relative;width:90%;max-width:1000px;margin:0 auto;padding:clamp(3rem,6vw,5rem) 0}
.lps-bio-top{display:grid;grid-template-columns:380px 1fr;gap:clamp(2rem,4vw,3.4rem);align-items:stretch}
.lps-bio-portrait{position:relative;margin:0;border-radius:14px;overflow:hidden;box-shadow:0 36px 72px -34px rgba(0,0,0,.6)}
.lps-bio-portrait img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 25%}
.lps-bio-story h2{color:#fff;font-family:var(--disp);font-weight:400;font-size:clamp(1.9rem,3.4vw,2.7rem);margin:0 0 clamp(1.4rem,3vw,2rem)}
.lps-bio-story p{color:rgba(246,246,241,.9);font-size:1.06rem;line-height:1.78;margin-bottom:1rem}
.lps-bio-story p:last-child{margin-bottom:0}
/* auto-fit, not 1fr 1fr: this row often has only the pillars (no credentials
   list), and a fixed two-column grid would strand them in a half-width column
   with dead space beside it */
.lps-bio-detail{margin-top:clamp(2rem,4vw,2.8rem);border-top:1px solid rgba(246,246,241,.16);padding-top:clamp(1.7rem,3vw,2.3rem);display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:clamp(2rem,4vw,3.4rem)}
.lps-creds h3{font-family:var(--serif);font-weight:600;font-size:1.06rem;color:#fff;margin-bottom:.9rem}
.lps-creds ul{list-style:none;display:grid;gap:.55rem}
.lps-creds li{position:relative;padding-left:1.3rem;color:rgba(246,246,241,.82);font-size:1rem;line-height:1.62}
.lps-creds li::before{content:"";position:absolute;left:0;top:.62em;width:6px;height:6px;border-radius:50%;background:var(--plum-soft)}
.lps-pillars{display:grid;gap:1.4rem clamp(1.6rem,3vw,2.6rem);grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.lps-pillar h4{font-family:var(--serif);font-weight:600;font-size:1.06rem;color:#fff;margin-bottom:.35rem}
.lps-pillar p{color:rgba(246,246,241,.8);font-size:1rem;line-height:1.65}

/* testimonials */
.lps-tst-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.8rem;margin-top:2rem}
.lps-tst{background:var(--paper);border-radius:10px;padding:1.9rem;box-shadow:0 26px 52px -34px rgba(37,67,60,.4)}
.lps-tst blockquote{font-family:var(--serif);font-size:1.08rem;line-height:1.7;color:var(--ink-soft)}
.lps-tst figcaption{margin-top:1rem;font-family:var(--grot);font-size:.82rem;letter-spacing:.1em;text-transform:uppercase;color:var(--plum)}

/* FAQ — editorial display Q&A, matching page-faq.php */
.lps-faq-sec{position:relative;overflow:hidden}
.lps-faqs{margin-top:2.4rem}
.lps-faq-item{padding:40px 0;transition:background .45s cubic-bezier(.2,.8,.2,1),box-shadow .5s cubic-bezier(.2,.8,.2,1)}
.lps-faq-item + .lps-faq-item{border-top:1px solid rgba(63,111,102,.16)}
.lps-faq-item.open,.lps-faq-item.open + .lps-faq-item{border-top-color:transparent}
.lps-faq-item.open{background:#FBFBF7;box-shadow:0 38px 76px -44px rgba(37,67,60,.55);border-radius:20px;padding:40px clamp(1.5rem,3.6vw,2.6rem);margin:.5rem calc(-1 * clamp(1.5rem,3.6vw,2.6rem))}
.lps-faq-q{width:100%;text-align:left;background:none;border:none;cursor:pointer;display:flex;align-items:flex-start;justify-content:space-between;gap:1.6rem;padding:0;font-family:var(--disp);font-weight:400;font-size:clamp(1.35rem,2.7vw,2.1rem);color:var(--teal-ink);line-height:1.1;transition:color .35s}
.lps-faq-q:hover,.lps-faq-item.open .lps-faq-q{color:var(--plum)}
.lps-faq-ind{flex:none;margin-top:.45em;transition:transform .4s,color .35s;color:var(--teal)}
.lps-faq-item.open .lps-faq-ind{transform:rotate(45deg);color:var(--plum)}
.lps-faq-a{display:grid;grid-template-rows:0fr;transition:grid-template-rows .5s cubic-bezier(.2,.8,.2,1)}
.lps-faq-item.open .lps-faq-a{grid-template-rows:1fr}
.lps-faq-a-in{overflow:hidden}
.lps-faq-body{max-width:64ch;padding-top:1.3rem;color:#46504C;font-size:1.06rem;line-height:1.8}
.lps-faq-body p{margin-bottom:.9rem}
.lps-faq-body p:last-child{margin-bottom:0}

/* what's next */
.lps-next{list-style:none;counter-reset:lpsnext;display:grid;gap:1.1rem;margin-top:1.8rem}
.lps-next li{position:relative;padding-left:1.6rem;color:var(--ink-soft);font-size:1.06rem;line-height:1.75}
.lps-next li::before{content:"";position:absolute;left:0;top:.66em;width:8px;height:8px;border-radius:50%;background:var(--teal-light)}

/* ── final CTA ─────────────────────────────────────────────── */
.lps-final{position:relative;padding:clamp(3.8rem,7vw,6.5rem) 0;overflow:hidden;isolation:isolate}
.lps-final-bg{position:absolute;inset:0;z-index:-2}
.lps-final-bg img{width:100%;height:100%;object-fit:cover;object-position:center;filter:saturate(1.2) contrast(1.05) brightness(1.02)}
.lps-final-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(26,31,31,.86) 0%,rgba(30,52,47,.6) 42%,rgba(40,64,58,.22) 72%,rgba(40,64,58,.08) 100%),linear-gradient(to top,rgba(26,31,31,.36),rgba(26,31,31,0) 32%)}
.lps-final-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2.4rem,5vw,4.5rem);align-items:start}
.lps-final-copy h2{font-family:var(--serif);font-weight:600;font-size:clamp(1.9rem,3.6vw,2.8rem);color:var(--paper);margin-bottom:1.2rem;max-width:16ch}
.lps-final-copy p{color:rgba(246,246,241,.88);font-size:1.06rem;line-height:1.75;margin-bottom:1rem;max-width:46ch}
.lps-cx{display:grid;gap:1.1rem;margin-top:1.9rem}
.lps-cx-item{display:flex;align-items:center;gap:.9rem;color:var(--paper)}
.lps-cx-ico{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;border:1px solid rgba(246,246,241,.32);flex:none}
.lps-cx-lab{display:block;font-family:var(--grot);font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--plum-lift)}
.lps-cx-val{display:block;font-size:1.04rem;font-weight:500}
/* "What Happens Next?" — a sub-block of the final CTA copy, not its own stripe */
.lps-next-block{margin-top:clamp(1.9rem,3.5vw,2.6rem);padding-top:clamp(1.5rem,3vw,2rem);border-top:1px solid rgba(246,246,241,.22)}
.lps-next-block h3{font-family:var(--serif);font-weight:600;font-size:clamp(1.25rem,2.2vw,1.6rem);color:var(--paper);margin-bottom:1rem}
.lps-next-block .lps-lead p{color:rgba(246,246,241,.86);max-width:46ch}
.lps-final .lps-next{margin-top:1.1rem}
.lps-final .lps-next li{color:rgba(246,246,241,.86);max-width:46ch}
.lps-final .lps-next li::before{background:var(--plum-lift)}
.lps-telink{font-weight:700;color:#fff;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:2px;text-decoration-color:var(--plum-lift);transition:color .25s,text-decoration-color .25s}
.lps-telink:hover,.lps-telink:focus-visible{color:var(--plum-lift);text-decoration-color:#fff}

.lps-form-card{background:var(--paper);border-radius:14px;padding:clamp(1.7rem,3.4vw,2.6rem);box-shadow:0 40px 80px -40px rgba(0,0,0,.6)}

/* assurances — a second row under the copy + form, inside the same section */
.lps-assure{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.8rem,4vw,3.4rem);margin-top:clamp(2.6rem,5vw,4rem);padding-top:clamp(1.8rem,3.5vw,2.6rem);border-top:1px solid rgba(246,246,241,.22)}
.lps-assure h3{font-family:var(--serif);font-weight:600;font-size:1.14rem;color:var(--paper);margin-bottom:.6rem}
.lps-assure p{color:rgba(246,246,241,.82);font-size:1rem;line-height:1.72;max-width:52ch}
.lps-form-card h3{font-family:var(--serif);font-weight:600;font-size:1.32rem;color:var(--teal-deep);margin-bottom:1.3rem}

/* ── footer ────────────────────────────────────────────────── */
.lps-foot{background:var(--teal-ink);color:rgba(246,246,241,.72);padding:clamp(2.6rem,5vw,3.6rem) 0 2.2rem;font-family:var(--sans)}
.lps-foot-top{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:1.2rem}
.lps-foot-name{font-family:var(--grot);font-weight:700;font-size:1.1rem;color:var(--paper)}
.lps-foot-contact{display:flex;flex-wrap:wrap;gap:1.6rem;font-size:.98rem}
.lps-foot-contact a:hover{color:var(--paper)}
.lps-foot-disclosure{margin-top:1.6rem;font-size:.9rem;line-height:1.7;color:rgba(246,246,241,.62);max-width:70ch}
.lps-foot-base{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;margin-top:2rem;padding-top:1.5rem;border-top:1px solid rgba(246,246,241,.12);font-size:.84rem;color:rgba(246,246,241,.5)}
.lps-foot-legal{display:flex;gap:1.4rem}
.lps-foot-legal a:hover{color:var(--paper)}

/* ── responsive ────────────────────────────────────────────── */
@media(max-width:1024px){
  .lps-benefits{grid-template-columns:1fr}
  .lps-steps{grid-template-columns:1fr}
  .lps-bio-top{grid-template-columns:300px 1fr}
  .lps-final-grid{grid-template-columns:1fr}
}
@media(max-width:880px){
  .lps-anchors{display:none}
  .lps-bio-top{grid-template-columns:1fr;gap:1.6rem}
  /* width:100% is load-bearing — the only child is position:absolute, so with
     shrink-to-fit the figure collapsed to 0 wide and the headshot vanished */
  .lps-bio-portrait{width:100%;max-width:320px;min-height:400px;margin:0 auto 1.9rem}
  .lps-bio-detail{grid-template-columns:1fr}
  .lps-assure{grid-template-columns:1fr;gap:1.6rem}
}
@media(max-width:768px){
  body.lps{font-size:15px}
  .lps-vig{grid-template-columns:1fr}
  .lps-vig-words{max-width:none;justify-self:stretch}
  .lps-vig-pic{min-height:340px;order:-1}
  .lps-vig-flip .lps-vig-pic{order:-1}
  .lps-hero{min-height:88vh}
  .lps-hero-in{padding:12vh 0 calc(2.4rem + 9vh)}
  .lps-hero-act{gap:1.2rem}
  .lps-hero-act .lps-btn{width:100%;justify-content:center}
  .lps-foot-base{flex-direction:column;align-items:flex-start}
}
/* A phone in landscape is ~926px wide, so it clears every max-width gate above.
   Identify it by height plus touch, never width. */
@media(max-width:768px),(hover:none) and (pointer:coarse) and (max-height:500px){
  /* the headline runs full width here, so the left-weighted wash cannot cover
     it — swap the hero scrim to an all-over vertical one */
  .lps-hero-bg::after{background:linear-gradient(180deg,rgba(37,67,60,.80) 0%,rgba(37,67,60,.68) 24%,rgba(37,67,60,.66) 52%,rgba(37,67,60,.80) 78%,rgba(37,67,60,.94) 100%)}
  /* hide-only: a landscape phone clears the 880px gate, so the anchor row would
     otherwise wrap onto two lines and eat a 428px-tall viewport */
  .lps-hdr .lps-tel,.lps-anchors{display:none}
}
/* Short viewports (landscape phones): the hero block is already taller than the
   viewport, so the box fills the hero and padding-TOP is what sets the content
   position — the opposite of the desktop case. No lift here; a fixed top pad
   clears the ~83px header instead. */
@media(max-height:560px){
  .lps-hero-in{padding-top:118px;padding-bottom:2.4rem}
}
@media(max-width:480px){
  .lps-vig-pic{min-height:300px}
  .lps-hdr .lps-btn-paper{padding:.62rem 1rem;font-size:.74rem}
}

/* Touch devices: nothing below 14px, and no parallax-style fixed attachment. */
@media(hover:none) and (pointer:coarse){
  .lps-anchors a,.lps-foot-base,.lps-cx-lab,.lps-tst figcaption{font-size:.88rem}
  .lps-foot-disclosure{font-size:.95rem}
  .lps-hero-bg img,.lps-final-bg img{background-attachment:scroll}
  .lps-form-card .wpforms-field-label{font-size:.95rem !important}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .lps-ticker-track{animation:none}
  .lps-faq-a{transition:none}
}

/* ==========================================================================
   2026-08-19 client round — mirrored from the stock LP where it applies
   ========================================================================== */
.lps-atnarrow{display:none}

/* form column: fields, and the submit label, need room */
.lps-final-grid{grid-template-columns:1fr 1.05fr}
.lps-form-card .wpforms-container,.lps-form-card .wpforms-form{max-width:none;width:100%}
.lps-form-card .wpforms-field{max-width:none}
.lps-form-card .wpforms-field input,
.lps-form-card .wpforms-field textarea,
.lps-form-card .wpforms-field select{width:100% !important;max-width:none !important}
.lps-form-card .wpforms-submit{width:100% !important;white-space:nowrap;padding-left:1rem !important;padding-right:1rem !important}

/* "What Happens Next?" heading needs air before its list */
.lps-next-block h3{margin-bottom:1.15rem}

/* footer centred, matching the main site */
.lps-foot-top,.lps-foot-base{flex-direction:column;align-items:center;text-align:center;gap:1rem}
.lps-foot-legal{justify-content:center;flex-wrap:wrap}
.lps-foot-disclosure{margin-left:auto;margin-right:auto;text-align:center}

@media(max-width:767px){
  .lps-atwide{display:none}
  .lps-atnarrow{display:inline}
  /* primary CTA on one line, "Or Call Direct" as a bordered button beneath it */
  .lps-hero-act{flex-direction:column;align-items:stretch;gap:.75rem}
  .lps-hero-act .lps-btn{width:100%;justify-content:center;white-space:nowrap;font-size:.9rem;padding-left:1rem;padding-right:1rem}
  .lps-hero-act .lps-lk{display:flex;align-items:center;justify-content:center;gap:.4em;width:100%;min-height:48px;
    border:1.5px solid rgba(246,246,241,.55);border-bottom-color:rgba(246,246,241,.55);border-radius:999px;padding:.85rem 1rem;text-align:center}
  .lps-hero-act .lps-lk:hover{border-color:var(--paper);background:rgba(246,246,241,.08)}
}

/* --- header wordmark: the site's lockup, not a text string --------------- */
.lps-logo{display:inline-flex;align-items:center;gap:.42em;font-family:'Hanken Grotesk','Schibsted Grotesk',sans-serif;font-size:1.15rem;line-height:1}
.lps-logo .lg-name{font-weight:600;font-size:1.4em;letter-spacing:-.025em;text-transform:lowercase;color:var(--paper);white-space:nowrap;transition:color .4s}
.lps-logo .lg-pill{display:inline-flex;align-items:center;font-weight:600;font-size:.42em;letter-spacing:.16em;padding:.5em .85em .5em .95em;
  border-radius:999px;line-height:1;white-space:nowrap;color:var(--teal-ink);background:var(--paper);transition:background .4s,color .4s}
.lps-hdr.is-solid .lps-logo .lg-name{color:var(--teal-deep)}
.lps-hdr.is-solid .lps-logo .lg-pill{color:var(--paper);background:var(--teal-deep)}

/* --- burger + drawer ----------------------------------------------------- */
.lps-burger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:10px;margin-left:auto;position:relative;z-index:320;min-width:44px;min-height:44px}
.lps-burger span{width:25px;height:2px;background:var(--paper);transition:transform .3s,opacity .3s,background .3s}
.lps-hdr.is-solid .lps-burger span{background:var(--teal-ink)}
body.lps-locked .lps-burger span{background:var(--teal-ink)}
body.lps-locked .lps-burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
body.lps-locked .lps-burger span:nth-child(2){opacity:0}
body.lps-locked .lps-burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
body.lps-locked{overflow:hidden}
.lps-drawer{position:fixed;inset:0;z-index:300;background:var(--paper);padding:6rem 1.4rem 2.4rem;overflow-y:auto;display:flex;flex-direction:column}
.lps-drawer[hidden]{display:none}
.lps-drawer-links{list-style:none;display:flex;flex-direction:column;gap:.2rem}
.lps-drawer-links a{display:flex;align-items:center;min-height:48px;padding:.85rem 1rem;border-radius:8px;
  font-family:var(--grot);font-weight:600;text-transform:uppercase;letter-spacing:.12em;font-size:14px;color:var(--ink-soft)}
.lps-drawer-links a:hover{background:var(--stone-warm);color:var(--teal-deep)}
.lps-drawer-cta{display:flex;flex-direction:column;gap:.7rem;margin-top:1.6rem;padding-top:1.4rem;border-top:1px solid rgba(51,90,82,.18)}
.lps-drawer-primary{display:flex;align-items:center;justify-content:center;min-height:48px;background:var(--teal-deep);color:var(--paper);
  font-family:var(--grot);font-size:.82rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;border-radius:999px;padding:.9rem 1.2rem;text-align:center}
.lps-drawer-tel{display:flex;align-items:center;justify-content:center;min-height:48px;border:1.5px solid rgba(51,90,82,.4);color:var(--teal-deep);
  font-family:var(--grot);font-size:.95rem;font-weight:700;border-radius:999px;padding:.9rem 1.2rem}

@media(max-width:880px){
  .lps-burger{display:flex}
  /* the header keeps only the wordmark and the burger */
  .lps-hdr-act{display:none}
}

@media(max-width:767px){
  /* hero: tighter, and the eyebrow no longer sits alone above a gap */
  .lps-hero{min-height:82vh}
  .lps-hero-in{padding:10vh 0 calc(2rem + 6vh)}
  .lps-kicker{font-size:.66rem;letter-spacing:.2em;margin-bottom:.9rem}
  .lps-hero h1{font-size:clamp(2.3rem,9vw,3.1rem)}
  .lps-hero-sub{margin-top:1.1rem}
  .lps-hero-act{margin-top:1.6rem;align-items:center}
  .lps-hero-act .lps-lk{text-align:center}

  /* body headings were capped at 17ch and wrapping to a skinny column */
  .lps-vig h2{max-width:none}
  .lps-vig-words{padding-left:1.35rem;padding-right:1.35rem}

  /* FAQ cards were pulling 9px past the viewport via their negative margin */
  .lps-faq-item.open{margin-left:0;margin-right:0;padding-left:1.15rem;padding-right:1.15rem}

  /* bio copy was running flush to the panel edges */
  .lps-bio-in{width:100%;padding-left:1.35rem;padding-right:1.35rem}
  .lps-bio-story h2,.lps-bio-story p,.lps-creds,.lps-pillars{max-width:none}
}

/* --- footer wordmark: the light-on-dark variant, matching the main site ---- */
.lps-foot-brand{display:inline-flex;align-items:flex-end;gap:.3em;font-family:'Hanken Grotesk','Schibsted Grotesk',sans-serif;font-size:1.7rem;line-height:1}
.lps-foot-brand .b-name{font-weight:600;font-size:1em;letter-spacing:-.025em;line-height:.78;text-transform:lowercase;color:var(--stone);white-space:nowrap}
.lps-foot-brand .b-pill{display:inline-flex;align-items:center;font-weight:600;font-size:.28em;letter-spacing:.16em;padding:.55em 1em .55em 1.13em;
  border-radius:999px;line-height:1;background:var(--stone);color:var(--ink);white-space:nowrap}

@media(max-width:880px){
  /* the header sat transparent over a pale part of the hero and the cream
     wordmark vanished into it — give the bar its own ground */
  .lps-hdr{background:var(--teal-ink);box-shadow:0 1px 0 rgba(246,246,241,.08)}
  .lps-hdr.is-solid{background:var(--paper)}
}

@media(max-width:900px){
  /* final CTA has to stack: copy, then What Happens Next, then the form, then
     the assurances. Two columns squeezed both and clipped the form. */
  .lps-final-grid{grid-template-columns:1fr;gap:1.8rem}
  .lps-form-card{width:100%;box-sizing:border-box}
  .lps-assure{grid-template-columns:1fr;gap:1.5rem}
}
