/* GG funnel design system — Growth General build pattern v1 (2026-07-03)
   Premium black+gold, mobile-first, matches the grimeguardians.com hub. */
:root{
  --ink:#000000; --coal:#18181b; --card:#1e1e22; --line:#2A2A33;
  --gold:#ca8a04; --gold-bright:#e3a50c; --cream:#F5F1E6;
  --text:#E8E6E0; --muted:#A6A29A;
  --good:#5FBF7F; --shadow:0 10px 30px rgba(0,0,0,.45);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--ink);color:var(--text);
     font:17px/1.65 Inter,-apple-system,"Segoe UI",sans-serif}
img,video{max-width:100%;height:auto;display:block}
img{border-radius:8px}
:where(a,button,input,summary):focus-visible{outline:3px solid var(--gold-bright);outline-offset:3px}
.wrap{max-width:760px;margin:0 auto;padding:0 22px}
.wrap.wide{max-width:1080px}
.eyebrow{font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}
h1{font-size:clamp(30px,6vw,44px);line-height:1.12;margin:14px 0 12px;font-weight:800;
   color:var(--cream);letter-spacing:-.015em;text-wrap:balance}
h2{font-size:clamp(22px,4vw,30px);line-height:1.2;margin:0 0 14px;font-weight:800;color:var(--cream);text-wrap:balance}
h3{font-size:19px;margin:0 0 8px;color:var(--cream)}
p{margin:0 0 16px}
.lead{font-size:19px;color:var(--text)}
.muted{color:var(--muted)}
strong{color:var(--cream)}

/* header — compact on phones so the hero CTA lands in the first screen */
.top{display:flex;justify-content:space-between;align-items:center;padding-top:16px;padding-bottom:10px}
.top img{width:auto;height:96px;border-radius:0}
@media(min-width:700px){.top{padding:26px 0 14px}.top img{height:140px}}
.top a.phone{color:var(--gold);text-decoration:none;font-weight:700;font-size:16px;display:inline-flex;align-items:center;min-height:48px;margin:-12px 0;padding:0 0 0 12px}

/* sections */
section{padding:64px 0}
section.alt{background:var(--coal)}
.hero{padding-top:34px;padding-bottom:56px}
.hero .sub{font-size:19px;color:var(--muted);max-width:56ch}
.hero-layout{display:grid;gap:26px;align-items:center}
.hero-proof{margin:0}
.hero-proof img{width:100%;height:auto;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow)}
.hero-proof figcaption{max-width:52ch;margin:8px auto 0;color:var(--muted);font-size:13.5px;line-height:1.45;text-align:center}
@media(max-width:859px){
  .hero-image-first .hero-proof{order:-1}
  .hero-image-first .hero-proof img{height:clamp(150px,44vw,210px);object-fit:cover;object-position:center 58%}
}
@media(min-width:860px){.hero-layout{grid-template-columns:minmax(0,1.08fr) minmax(300px,.92fr);gap:42px}}

/* CTA */
.btn{display:inline-block;background:linear-gradient(180deg,var(--gold-bright),var(--gold));
     color:#141414;font-weight:800;font-size:18px;text-decoration:none;
     padding:16px 30px;border-radius:10px;box-shadow:var(--shadow);text-align:center}
.btn:active{transform:translateY(1px)}
.btn-note{font-size:16px;color:var(--muted);margin-top:10px}
.cta-block{margin:26px 0 0}
.sticky-cta{position:fixed;bottom:0;left:0;right:0;z-index:50;background:rgba(11,11,13,.92);
     -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:1px solid var(--line);
     padding:10px 16px calc(10px + env(safe-area-inset-bottom));
     display:flex;flex-wrap:wrap;gap:8px 12px;justify-content:center;align-items:center}
.sticky-cta .btn{font-size:16px;padding:12px 22px;box-shadow:none;flex:0 1 auto}
.sticky-cta span{font-size:16px;color:var(--muted)}
@media(max-width:700px){.sticky-cta span{display:none}} /* label hides before it can wrap the bar to two rows */
@media(max-width:480px){.sticky-cta .btn{flex:1 1 auto;width:100%}} /* full-width thumb bar on phones */
body{padding-bottom:calc(96px + env(safe-area-inset-bottom))} /* room for sticky bar */

/* cards & lists */
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:22px}
.grid{display:grid;gap:14px}
@media(min-width:640px){.grid.g2{grid-template-columns:1fr 1fr}.grid.g3{grid-template-columns:1fr 1fr 1fr}}
ul.checks{list-style:none;padding:0;margin:0;display:grid;gap:10px}
ul.checks li{padding-left:30px;position:relative}
ul.checks li::before{content:"✓";position:absolute;left:0;top:0;color:var(--gold);font-weight:800}
.check-groups{display:grid;gap:14px;margin-top:18px}
.check-group{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:20px}
.check-group h3{color:var(--gold-bright);font-size:17px;margin-bottom:12px}
@media(min-width:760px){.check-groups{grid-template-columns:repeat(3,minmax(0,1fr))}}
ol.steps{list-style:none;counter-reset:s;padding:0;margin:0;display:grid;gap:16px}
ol.steps li{counter-increment:s;padding-left:52px;position:relative}
ol.steps li::before{content:counter(s);position:absolute;left:0;top:0;width:36px;height:36px;
     border:2px solid var(--gold);border-radius:50%;display:grid;place-items:center;
     color:var(--gold);font-weight:800;font-size:16px}

/* proof */
.quote{border-left:3px solid var(--gold);padding:6px 0 6px 18px;margin:0 0 14px;font-size:18px;color:var(--cream)}
.quote footer{font-size:14px;color:var(--muted);margin-top:6px}
.stars{color:var(--gold);letter-spacing:2px}
.ba{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:start}
.ba figure{margin:0}
.ba img{width:100%;aspect-ratio:3/4;object-fit:cover}
.ba figcaption{font-size:12.5px;color:var(--muted);margin-top:6px;text-align:center}

/* guarantee */
.guarantee{border:2px solid var(--gold);border-radius:12px;padding:22px;background:var(--coal)}
.guarantee h3{color:var(--gold-bright)}

/* reviews widget: reserve height to kill layout shift */
.lc_reviews_widget{min-height:600px}

/* vsl */
.vsl{display:grid;justify-items:center;gap:12px}
.vsl video{width:100%;max-width:400px;aspect-ratio:9/16;border-radius:14px;border:1px solid var(--gold);box-shadow:var(--shadow);background:#000}
.vsl.wide video{max-width:100%;aspect-ratio:16/9}
.vsl figcaption{font-size:13.5px;color:var(--muted);text-align:center;max-width:46ch}

/* booking */
.booking iframe{width:100%;min-height:700px;border:none;border-radius:12px;background:#fff}

/* faq — padding lives on the summary so the whole row is a ≥48px tap target */
details{border:1px solid var(--line);border-radius:10px;padding:0 18px;margin-bottom:10px;background:var(--card)}
summary{cursor:pointer;font-weight:700;color:var(--cream);padding:14px 0;min-height:48px;display:flex;align-items:center;gap:8px}
summary::after{content:"+";margin-left:auto;color:var(--gold);font-weight:800;font-size:20px;line-height:1;flex:none}
details[open] summary::after{content:"−"}
details p{margin:0 0 14px}

footer.site{padding:36px 0 46px;border-top:1px solid var(--line);font-size:14px;color:var(--muted)}
footer.site a{color:var(--gold);text-decoration:none}
footer.site .service-area{margin:24px 0 0}
footer.site .service-area h2{margin:0 0 10px;color:var(--gold);font-size:14px;letter-spacing:.12em;text-transform:uppercase}
footer.site .service-area ul{display:grid;grid-auto-flow:column;grid-template-rows:repeat(6,auto);grid-template-columns:repeat(3,minmax(0,1fr));gap:6px 24px;list-style:none;padding:0;margin:0}
footer.site .service-area li{margin:0}
footer.site .back-to-top{margin:18px 0 0}
@media(max-width:560px){footer.site .service-area ul{grid-template-rows:repeat(9,auto);grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 16px}}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}
