/* Ben Allen PPC: shared design system. Extracted verbatim from the original page so every page shares one source of truth. */

:root{
  --paper:#F6F1E7;
  --paper-2:#FBF8F1;
  --tint:#EFE7D6;
  --ink:#221D16;
  --ink-soft:#5A5346;
  --accent:#C25A2B;
  --accent-deep:#A6461E;
  --dark:#211B14;
  --dark-2:#2C251C;
  --gold:#E0A33E;
  --line:rgba(34,29,22,.14);
  --line-dark:rgba(246,241,231,.16);
  --font-display:'Fraunces',Georgia,'Times New Roman',serif;
  --font-body:'Hanken Grotesk',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  --maxw:1140px;
  --r:18px;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:var(--font-body);
  background:var(--paper);
  color:var(--ink);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
/* subtle grain for warmth/depth */
body::before{
  content:"";position:fixed;inset:0;z-index:9999;pointer-events:none;opacity:.035;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

a{color:inherit;text-decoration:none}
.skip-link{position:absolute;left:-9999px;top:0;z-index:1000;background:var(--accent);color:#fff;padding:.7rem 1.1rem;border-radius:0 0 10px 0;font-weight:700;font-size:.9rem}
.skip-link:focus{left:0}
#main:focus{outline:none}
img{max-width:100%;display:block}

.wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px}
.eyebrow{
  font-size:.74rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;
  color:var(--accent);display:inline-flex;align-items:center;gap:.55em;
}
.eyebrow::before{content:"";width:26px;height:1px;background:var(--accent);display:inline-block}

h1,h2,h3{font-family:var(--font-display);font-weight:600;line-height:1.05;letter-spacing:-.01em}
h2{font-size:clamp(2rem,4.4vw,3.1rem)}
h3{font-size:1.3rem;line-height:1.2}
p{color:var(--ink-soft)}
.lead{font-size:1.15rem;color:var(--ink-soft);max-width:62ch}

em.acc{font-style:italic;color:var(--accent)}
.hl{color:var(--accent)}

/* ===== Buttons ===== */
.btn{
  display:inline-flex;align-items:center;gap:.6em;justify-content:center;
  background:var(--accent);color:#fff;font-family:var(--font-body);
  font-weight:700;font-size:1rem;padding:1rem 1.6rem;border-radius:100px;border:none;cursor:pointer;
  letter-spacing:.005em;transition:transform .25s cubic-bezier(.2,.7,.2,1),box-shadow .25s,background .25s;
  box-shadow:0 10px 26px -10px rgba(194,90,43,.65);
}
.btn:hover{background:var(--accent-deep);transform:translateY(-2px);box-shadow:0 16px 34px -12px rgba(194,90,43,.7)}
.btn:active{transform:translateY(0)}
.btn .arr{transition:transform .25s}
.btn:hover .arr{transform:translateX(4px)}
.btn-ghost{background:transparent;color:var(--ink);border:1.5px solid var(--line);box-shadow:none;font-weight:600}
.btn-ghost:hover{background:var(--ink);color:var(--paper);border-color:var(--ink);transform:translateY(-2px)}
.risk{font-size:.85rem;color:var(--ink-soft);display:inline-flex;align-items:center;gap:.5em;margin-top:.9rem}
.risk b{color:var(--ink);font-weight:600}
.dot{width:4px;height:4px;border-radius:50%;background:var(--accent);display:inline-block}

/* ===== Header ===== */
header{
  position:sticky;top:0;z-index:100;
  background:rgba(246,241,231,.82);backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);
}
.nav{display:flex;align-items:center;justify-content:space-between;height:74px}
.brand{display:inline-flex;align-items:center;gap:.6rem;white-space:nowrap;text-decoration:none}
.brand-mark{width:38px;height:38px;border:2px solid var(--accent);border-radius:10px;display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:600;font-size:.95rem;letter-spacing:.02em;color:var(--accent);flex-shrink:0}
.brand-txt{display:inline-flex;flex-direction:column;line-height:1}
.brand-name{font-family:var(--font-display);font-weight:600;font-size:1.3rem;letter-spacing:-.01em;color:var(--ink)}
.brand-ppc{font-family:var(--font-body);font-weight:700;font-size:.6rem;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);margin-top:3px}
.nav-links{display:flex;align-items:center;gap:2rem}
.nav-links a{font-weight:500;font-size:.95rem;color:var(--ink-soft);transition:color .2s}
.nav-links a:hover{color:var(--ink)}
.nav .btn{padding:.7rem 1.2rem;font-size:.92rem;white-space:nowrap}
.nav-cta-wrap{display:flex;align-items:center;gap:1.4rem}
.nav-toggle{display:none;flex-direction:column;justify-content:center;gap:5px;width:44px;height:40px;padding:0 10px;border:1px solid var(--line);border-radius:10px;background:transparent;cursor:pointer}
.nav-toggle span{display:block;height:2px;width:100%;background:var(--ink);border-radius:2px;transition:transform .3s cubic-bezier(.2,.7,.2,1),opacity .2s}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.mobile-menu{max-height:0;overflow:hidden;transition:max-height .35s ease;background:rgba(246,241,231,.98);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.mobile-menu.open{max-height:320px;border-top:1px solid var(--line)}
.mobile-menu a{display:block;padding:1rem 28px;font-weight:600;font-size:1.02rem;color:var(--ink);border-bottom:1px solid var(--line)}
.mobile-menu a:last-child{border-bottom:none}

/* ===== Hero ===== */
.hero{padding:clamp(3rem,7vw,5.5rem) 0 clamp(3rem,6vw,5rem);position:relative;overflow:hidden}
.hero-copy{max-width:50rem}
.hero h1{font-weight:600;font-size:clamp(2.3rem,5vw,4.1rem);line-height:1.06;letter-spacing:-.022em;margin:1.4rem 0 1.4rem}
.hero h1 .hl{font-style:italic;font-weight:500}
.hero .lead{margin-bottom:2rem;max-width:48ch}
.hero-cta{display:flex;flex-direction:column;align-items:flex-start;gap:.2rem}
.trustbar{margin-top:2.6rem;display:flex;flex-wrap:wrap;gap:.55rem 1.4rem;padding-top:1.6rem;border-top:1px solid var(--line)}
.trustbar span{font-size:.86rem;font-weight:600;color:var(--ink);display:inline-flex;align-items:center;gap:.55em}
.trustbar span::before{content:"";width:6px;height:6px;background:var(--accent);border-radius:2px;display:inline-block;transform:rotate(45deg)}

/* shared bits reused across sections */
.stars{color:var(--gold);font-size:1.05rem;letter-spacing:.12em;margin-bottom:1rem}
.avatar{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--gold));display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:1rem;flex-shrink:0}
.who .nm{font-weight:700;font-size:.95rem;color:var(--ink)}
.who .rl{font-size:.82rem;color:var(--ink-soft)}

/* ===== Proof strip ===== */
.proofstrip{padding:clamp(1.7rem,3.4vw,2.5rem) 0;background:var(--paper-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.proofstrip-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;align-items:center}
.proofstrip .stat{text-align:center;padding:.3rem 1rem;border-left:1px solid var(--line)}
.proofstrip .stat:first-child{border-left:none}
.stat-num{font-family:var(--font-display);font-weight:600;font-size:clamp(2.1rem,3.8vw,3rem);line-height:1;color:var(--ink);letter-spacing:-.02em;display:inline-flex;align-items:baseline}
.stat-num .pre{color:var(--accent);font-size:.62em;margin-right:.03em;font-weight:600}
.stat-num .unit{color:var(--accent);font-size:.46em;font-weight:700;margin-left:.12em;letter-spacing:0}
.stat-lbl{margin-top:.55rem;font-size:.78rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-soft)}
.proofstrip .partner{display:flex;justify-content:center;align-items:center;border-left:1px solid var(--line)}
.gpartner-img{height:74px;width:auto;display:block}

/* ===== Section scaffolding ===== */
section{padding:clamp(4rem,8vw,6.5rem) 0}
.sec-head{max-width:48rem;margin-bottom:3rem}
.sec-head h2{margin-top:1rem}
.sec-head p{margin-top:1.1rem;font-size:1.1rem}

.band-tint{background:var(--tint)}
.band-dark{background:var(--dark);color:var(--paper)}
.band-dark h2,.band-dark h3{color:var(--paper)}
.band-dark p{color:rgba(246,241,231,.72)}
.band-dark .eyebrow{color:var(--gold)}
.band-dark .eyebrow::before{background:var(--gold)}

/* ===== Problem ===== */
.problem-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4rem);align-items:start}
.problem-copy p{font-size:1.12rem;margin-bottom:1.2rem;color:var(--ink-soft)}
.pivot{font-family:var(--font-display);font-size:1.7rem;color:var(--ink);font-weight:600;line-height:1.25;margin-top:.4rem}
.pivot .acc{font-style:italic}

/* ===== Diagnostic (dark) ===== */
.leaks{display:grid;gap:0;margin-top:.5rem}
.leak{display:flex;gap:1.3rem;padding:1.6rem 0;border-bottom:1px solid var(--line-dark);align-items:flex-start}
.leak:last-child{border-bottom:none}
.leak .ix{font-family:var(--font-display);font-size:1.5rem;font-weight:600;color:var(--gold);line-height:1;min-width:2.2rem}
.leak .lx h3{font-size:1.18rem;color:var(--paper);margin-bottom:.25rem}
.leak .lx p{color:rgba(246,241,231,.66);font-size:.98rem}
.diag-note{margin-top:2.4rem;font-size:1.05rem;color:rgba(246,241,231,.85);max-width:60ch}
.diag-note b{color:var(--paper)}

/* ===== Benefits ===== */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.card{
  background:var(--paper-2);border:1px solid var(--line);border-radius:var(--r);padding:2rem 1.8rem;
  transition:transform .3s cubic-bezier(.2,.7,.2,1),box-shadow .3s;
}
.card:hover{transform:translateY(-5px);box-shadow:0 24px 48px -28px rgba(34,29,22,.4)}
.card .ic{width:48px;height:48px;border-radius:12px;background:rgba(194,90,43,.12);display:flex;align-items:center;justify-content:center;margin-bottom:1.3rem;color:var(--accent)}
.card h3{margin-bottom:.7rem}
.card p{font-size:.98rem}

/* ===== How it works ===== */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem;counter-reset:s}
.step{position:relative;padding-top:1rem}
.step .num{font-family:var(--font-display);font-size:3.4rem;font-weight:600;color:var(--accent);line-height:1;opacity:.9}
.step h3{margin:.6rem 0 .6rem}
.step p{font-size:1rem}

/* ===== Offer / package ===== */
.offer-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(2rem,5vw,3.5rem);align-items:center}
.pkg{
  background:var(--dark);color:var(--paper);border-radius:24px;padding:2.6rem;position:relative;overflow:hidden;
  box-shadow:0 40px 80px -40px rgba(34,29,22,.6);
}
.pkg::before{content:"";position:absolute;top:-60px;right:-60px;width:200px;height:200px;border-radius:50%;background:radial-gradient(circle,rgba(194,90,43,.45),transparent 70%)}
.pkg .ribbon{font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}
.pkg .price{font-family:var(--font-display);font-size:3.6rem;font-weight:600;line-height:1;margin:.8rem 0 .2rem}
.pkg .price small{font-size:1.1rem;color:rgba(246,241,231,.6);font-family:var(--font-body);font-weight:500}
.pkg ul{list-style:none;margin:1.6rem 0 0;display:grid;gap:.85rem}
.pkg li{display:flex;gap:.7rem;align-items:flex-start;font-size:.98rem;color:rgba(246,241,231,.82)}
.pkg li svg{flex-shrink:0;margin-top:.15rem;color:var(--gold)}
/* offer comparison */
.vs{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem;margin-top:clamp(2.4rem,5vw,3.4rem)}
.vs-col{border:1px solid var(--line);border-radius:var(--r);padding:1.7rem 1.6rem}
.vs-them{background:var(--paper-2)}
.vs-you{position:relative;overflow:hidden;border:1.5px solid var(--accent);background:linear-gradient(180deg,rgba(194,90,43,.07),var(--paper-2))}
.vs-you::before{content:"";position:absolute;top:-50px;right:-50px;width:170px;height:170px;border-radius:50%;background:radial-gradient(circle,rgba(194,90,43,.32),transparent 70%);pointer-events:none}
.vs-tag{font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;margin-bottom:.9rem;position:relative}
.vs-them .vs-tag{color:var(--ink-soft)}
.vs-you .vs-tag{color:var(--accent)}
.vs-cost{font-family:var(--font-display);font-weight:600;font-size:1.9rem;line-height:1.05;color:var(--ink);margin-bottom:1.2rem;position:relative}
.vs-cost span{display:block;font-family:var(--font-body);font-size:.88rem;font-weight:500;color:var(--ink-soft);margin-top:.25rem}
.vs-them .vs-cost{color:var(--ink-soft)}
.vs ul{list-style:none;display:grid;gap:.65rem;position:relative;margin:0}
.vs li{display:flex;gap:.6rem;align-items:flex-start;font-size:.97rem;color:var(--ink)}
.vs-them li{color:var(--ink-soft)}
.vs .mk{flex-shrink:0;font-weight:700;line-height:1.45}
.vs-them .mk{color:#B58E84}
.vs-you .mk{color:var(--accent)}
@media(max-width:620px){.vs{grid-template-columns:1fr}}
.offer-copy p{font-size:1.1rem;margin-bottom:1.1rem}
.offer-copy .keepit{background:var(--tint);border-left:3px solid var(--accent);padding:1.1rem 1.3rem;border-radius:0 12px 12px 0;font-size:1rem;color:var(--ink)}
.offer-copy ol.build-steps{list-style:none;counter-reset:bs;margin:.2rem 0 1.1rem;padding:0;display:grid;gap:.55rem}
.offer-copy ol.build-steps li{counter-increment:bs;position:relative;padding-left:2.3rem;font-size:1.02rem;line-height:1.45}
.offer-copy ol.build-steps li::before{content:counter(bs);position:absolute;left:0;top:0;width:1.55rem;height:1.55rem;border-radius:50%;background:var(--accent);color:#fff;font-family:var(--font-display);font-size:.82rem;font-weight:600;display:flex;align-items:center;justify-content:center}
.after-build{text-align:center;max-width:640px;margin:2.4rem auto 0;color:var(--ink);opacity:.72;font-size:1rem}

/* ===== Testimonials ===== */
.quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.quote{background:var(--paper-2);border:1px solid var(--line);border-radius:var(--r);padding:1.9rem 1.7rem;display:flex;flex-direction:column}
.quote .stars{font-size:.95rem;margin-bottom:.9rem}
.quote p{color:var(--ink);font-size:1rem;line-height:1.55;flex-grow:1}
.quote .who{margin-top:1.4rem;display:flex;align-items:center;gap:.8rem;border-top:1px solid var(--line);padding-top:1.2rem}

/* ===== About ===== */
.about-grid{max-width:680px;margin:0 auto;text-align:center}
.about-grid .headshot{max-width:420px;margin:0 auto 2.2rem}
.photo-ph{
  aspect-ratio:4/5;border-radius:20px;border:2px dashed var(--line);
  background:linear-gradient(135deg,var(--tint),var(--paper-2));
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;color:var(--ink-soft);text-align:center;padding:1.5rem;
}
.photo-ph svg{opacity:.5}
.photo-ph .ph-l{font-weight:700;color:var(--ink);font-size:.95rem}
.photo-ph .ph-s{font-size:.82rem}
.headshot{width:100%;aspect-ratio:8/5;object-fit:cover;border-radius:20px;display:block}
.avatar-sm{width:72px;height:72px;border-radius:50%;display:block;margin:0 auto 1.1rem;box-shadow:0 0 0 1px var(--line)}
.about-copy h2{margin:1rem 0 1.3rem}
.about-copy p{font-size:1.1rem;margin-bottom:1.1rem}

/* ===== FAQ ===== */
.faq{max-width:54rem;margin:0 auto}
.faq-item{border-bottom:1px solid var(--line)}
.faq-q{width:100%;text-align:left;background:none;border:none;cursor:pointer;padding:1.5rem 0;display:flex;justify-content:space-between;align-items:center;gap:1.5rem;font-family:var(--font-display);font-size:1.2rem;font-weight:600;color:var(--ink)}
.faq-q .pm{flex-shrink:0;width:26px;height:26px;position:relative;transition:transform .3s}
.faq-q .pm::before,.faq-q .pm::after{content:"";position:absolute;background:var(--accent);border-radius:2px;top:50%;left:50%;transform:translate(-50%,-50%)}
.faq-q .pm::before{width:14px;height:2px}
.faq-q .pm::after{width:2px;height:14px;transition:transform .3s}
.faq-item.open .pm::after{transform:translate(-50%,-50%) scaleY(0)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .35s ease}
.faq-a p{padding:0 0 1.5rem;font-size:1.02rem;color:var(--ink-soft);max-width:60ch}

/* ===== Final CTA + form (dark) ===== */
.book-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2.5rem,5vw,4.5rem);align-items:center}
.book-copy h2{margin:1rem 0 1.2rem}
.book-copy p{font-size:1.15rem;color:rgba(246,241,231,.78);max-width:48ch}
.book-copy .mini{margin-top:2rem;display:grid;gap:1rem}
.book-copy .mini div{display:flex;gap:.8rem;align-items:flex-start;color:rgba(246,241,231,.85);font-size:.98rem}
.book-copy .mini svg{flex-shrink:0;margin-top:.15rem;color:var(--gold)}

.form-card{background:var(--paper-2);border-radius:24px;padding:2.4rem;box-shadow:0 40px 90px -40px rgba(0,0,0,.6)}
.form-card h3{font-size:1.5rem;margin-bottom:.4rem;color:var(--ink)}
.form-card .sub{font-size:.95rem;color:var(--ink-soft);margin-bottom:1.7rem}
.field{margin-bottom:1.15rem}
.field label{display:block;font-size:.86rem;font-weight:600;color:var(--ink);margin-bottom:.45rem}
.field label .opt{font-weight:400;color:var(--ink-soft)}
.field input,.field textarea{
  width:100%;font-family:var(--font-body);font-size:1rem;color:var(--ink);
  background:var(--paper);border:1.5px solid var(--line);border-radius:12px;padding:.85rem 1rem;transition:border-color .2s,box-shadow .2s;
}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(194,90,43,.15)}
.field textarea{resize:vertical;min-height:96px}
.form-card .btn{width:100%;margin-top:.4rem}
.form-card .formrisk{text-align:center;font-size:.83rem;color:var(--ink-soft);margin-top:1rem;display:flex;align-items:center;justify-content:center;gap:.6em}
.form-msg{margin-top:1.1rem;padding:1rem 1.1rem;border-radius:12px;font-size:.95rem;display:none}
.form-msg.ok{display:block;background:rgba(45,120,70,.12);border:1px solid rgba(45,120,70,.3);color:#235c38}
.form-msg.err{display:block;background:rgba(194,90,43,.12);border:1px solid rgba(194,90,43,.3);color:var(--accent-deep)}

/* ===== Footer ===== */
footer{background:var(--dark-2);color:rgba(246,241,231,.65);padding:3rem 0 2.5rem;text-align:center}
.footer-brand{font-family:var(--font-display);font-size:1.4rem;color:var(--paper);font-weight:600;display:flex;align-items:center;justify-content:center;gap:.55rem}
.footer-mark{width:30px;height:30px;border:1.5px solid var(--gold);border-radius:8px;display:inline-flex;align-items:center;justify-content:center;font-size:.72rem;letter-spacing:.02em;color:var(--gold);flex-shrink:0}
.footer-ppc{font-family:var(--font-body);font-weight:700;font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold)}
.footer-tag{font-size:.9rem;margin:.5rem 0 1.4rem}
.footer-links{display:flex;justify-content:center;gap:1.6rem;flex-wrap:wrap;font-size:.9rem;margin-bottom:1.6rem}
.footer-links a{color:rgba(246,241,231,.7);transition:color .2s}
.footer-links a:hover{color:var(--gold)}
.footer-copy{font-size:.82rem;color:rgba(246,241,231,.4);border-top:1px solid var(--line-dark);padding-top:1.6rem;max-width:var(--maxw);margin:0 auto}

/* ===== Sticky mobile CTA ===== */
.sticky-cta{
  position:fixed;left:0;right:0;bottom:0;z-index:200;display:none;
  background:rgba(33,27,20,.96);backdrop-filter:blur(8px);padding:.8rem 1rem;border-top:1px solid var(--line-dark);
}
.sticky-cta .btn{width:100%}

/* ===== Reveal animations ===== */
.js .reveal{opacity:0;transform:translateY(26px);transition:opacity .75s cubic-bezier(.2,.7,.2,1),transform .75s cubic-bezier(.2,.7,.2,1)}
.js .reveal.in{opacity:1;transform:none}
/* staggered reveals */
.js .stagger>*{opacity:0;transform:translateY(22px);transition:opacity .6s cubic-bezier(.2,.7,.2,1),transform .6s cubic-bezier(.2,.7,.2,1)}
.js .stagger.in>*{opacity:1;transform:none}
.js .stagger.in>*:nth-child(1){transition-delay:.05s}
.js .stagger.in>*:nth-child(2){transition-delay:.13s}
.js .stagger.in>*:nth-child(3){transition-delay:.21s}
.js .stagger.in>*:nth-child(4){transition-delay:.29s}
.js .stagger.in>*:nth-child(5){transition-delay:.37s}
.js .stagger.in>*:nth-child(6){transition-delay:.45s}
/* steps connector line (desktop) */
.steps{position:relative}
.step{z-index:1}
/* steps connector line removed: it struck through the step numbers on desktop */
/* price emphasis */
.js .pkg .price{transform:scale(.93);transition:transform .6s cubic-bezier(.2,.7,.2,1) .25s}
.js .pkg.in .price{transform:scale(1)}
@keyframes fadeUp{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
.js .hero-anim{opacity:0;animation:fadeUp .85s cubic-bezier(.2,.7,.2,1) forwards}

@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .js .reveal,.js .stagger>*{opacity:1;transform:none}
  .js .hero-anim{opacity:1;animation:none}
  .js .pkg .price{transform:none}
  html{scroll-behavior:auto}
}

/* ===== Responsive ===== */
@media (max-width:920px){
  .problem-grid,.offer-grid,.about-grid,.book-grid{grid-template-columns:1fr}
  .cards,.steps,.quotes{grid-template-columns:repeat(2,minmax(0,1fr))}
  .nav-links{display:none}
  .nav-toggle{display:flex}
  .proofstrip-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.6rem 1rem}
  .proofstrip .stat,.proofstrip .partner{border-left:none}
  .proofstrip .stat{padding:.3rem .4rem}
  .proofstrip .stat-lbl{font-size:.74rem;letter-spacing:.03em}
  .about-grid .photo-ph,.about-grid .headshot{max-width:340px}
  .offer-grid .pkg{order:-1}
}
@media (max-width:560px){
  .wrap{padding:0 20px}
  .brand{font-size:1.22rem}
  .nav-cta-wrap .btn{display:none}
  .sticky-cta{display:block}
  body{padding-bottom:74px}
  header{position:static}
  .hero{padding-top:2.1rem}
  .hero h1{margin-top:1.05rem}
  .proofstrip-grid{grid-template-columns:1fr;gap:1.35rem}
  .proofstrip .stat{min-width:0;border-left:none;padding:.2rem}
  .proofstrip .stat-num{font-size:2.1rem}
  .cards,.steps,.quotes{grid-template-columns:1fr}
}

/* ===== Multi-page additions (home + service pages) ===== */
.nav-links a[aria-current="page"]{color:var(--ink);font-weight:600}
.hero-actions{display:flex;flex-wrap:wrap;gap:.9rem 1rem;align-items:center}
/* B5.2: quiet inline hero link (no button chrome) so the demoted secondary action does not regress the layout */
.hero-textlink{color:var(--ink);font-weight:600;text-decoration:underline;text-underline-offset:2px;transition:color .2s}
.hero-textlink:hover{color:var(--accent)}
.svc{display:flex;flex-direction:column}
.svc-tag{align-self:flex-start;font-size:.7rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--accent);background:rgba(194,90,43,.1);padding:.4rem .75rem;border-radius:100px;margin-bottom:1.2rem}
.svc h3{margin-bottom:.6rem}
.svc p{font-size:.99rem}
.svc-more{margin-top:auto;padding-top:1.4rem;font-weight:700;color:var(--accent);display:inline-flex;align-items:center;gap:.45em}
.svc-more .arr{transition:transform .25s}
.card.svc:hover .svc-more .arr{transform:translateX(4px)}

/* ===== Accessibility + contrast pass (v3) ===== */

/* A8: small/!important accent text needs the darker accent for AA on cream */
.eyebrow{color:var(--accent-deep)}
.eyebrow::before{background:var(--accent-deep)}
.svc-tag{color:var(--accent-deep);background:rgba(166,70,30,.10)}
.svc-more{color:var(--accent-deep)}
.quote .stars{color:#B8801F}            /* darker gold so 5-star row meets AA on paper */
.risk b{color:var(--ink)}               /* keep bold ink; ensure not faded */
/* in-copy links inside body text use the darker accent + underline for affordance */
.offer-copy a:not(.btn),
.about-copy a:not(.btn),
.problem-copy a:not(.btn),
.faq-a a:not(.btn),
.diag-note a:not(.btn){color:var(--accent-deep);text-decoration:underline;text-underline-offset:2px}
/* Resting primary button: use the darker accent so white text passes AA; lighter accent on hover */
.btn{background:var(--accent-deep)}
.btn:hover{background:var(--accent)}

/* keep dark-band eyebrow gold (re-assert after the A8 override above) */
.band-dark .eyebrow{color:var(--gold)}
.band-dark .eyebrow::before{background:var(--gold)}

/* A9: visible keyboard focus everywhere */
a:focus-visible,
button:focus-visible,
.btn:focus-visible,
.faq-q:focus-visible,
.nav-toggle:focus-visible,
input:focus-visible,
textarea:focus-visible{
  outline:3px solid var(--ink);
  outline-offset:3px;
  border-radius:6px;
}
/* light ring against dark bands and dark controls */
.band-dark a:focus-visible,
.band-dark .btn:focus-visible,
.book-grid a:focus-visible,
.sticky-cta a:focus-visible,
footer a:focus-visible{
  outline-color:var(--paper);
}
/* the primary button sits on cream but is itself dark; give it an offset light-then-dark halo */
.btn:focus-visible{outline-color:var(--ink);box-shadow:0 0 0 3px var(--paper),0 0 0 6px var(--ink)}
.band-dark .btn:focus-visible{outline-color:var(--paper);box-shadow:0 0 0 3px var(--dark),0 0 0 6px var(--paper)}

/* A16: offset anchored sections so the sticky header doesn't cover them */
:target{scroll-margin-top:84px}
#main,#services,#method,#reviews,#book,#how,#faq,#top{scroll-margin-top:84px}
section[id]{scroll-margin-top:84px}

/* A16: show the sticky mobile CTA (and reserve body space) up to ~920px, not just 560px */
@media (max-width:920px){
  .sticky-cta{display:block}
  body{padding-bottom:74px}
  .nav-cta-wrap .btn{display:none}   /* hide inline header CTA when sticky CTA is shown */
}

/* A16: Calendly should fill the card on small screens */
@media (max-width:560px){
  .calendly-inline-widget{min-width:100%!important}
}


/* Calendly fallback: visible booking path if the widget script never initializes.
   Calendly's initInlineWidget replaces the widget's contents with an iframe, so this
   block only ever shows when neither Calendly's own script nor app.js initialized it. */
.cal-fallback{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;text-align:center;height:100%;min-height:320px;padding:2rem}
.cal-fallback p{color:var(--ink);font-size:1rem;margin:0}
.cal-fallback .cal-fallback-email{font-size:.92rem;color:var(--ink-soft)}
.cal-fallback a:not(.btn){color:var(--accent-deep);text-decoration:underline;text-underline-offset:2px;font-weight:600}
/* CTA buttons on dark sections: brighten so they separate clearly from the dark bands */
.band-dark .btn,
.pkg .btn,
.sticky-cta .btn,
.article-cta .btn{background:#D9632E;color:#fff;box-shadow:0 12px 30px -12px rgba(217,99,46,.55)}
.band-dark .btn:hover,
.pkg .btn:hover,
.sticky-cta .btn:hover,
.article-cta .btn:hover{background:#EA7A40}