/* ============================================================
   CoachMate — Landing page styles (index.html only)
   Builds on the design tokens in styles.css (loaded first).
   All classes here are prefixed `lp-` to avoid collisions with
   the shared stylesheet used by the rest of the app.
   ============================================================ */

/* ---------- Hero ---------- */
.lp-hero{position:relative; padding:72px 0 56px; overflow:hidden}
.lp-hero__bg{position:absolute; inset:0; pointer-events:none; overflow:hidden}
.lp-hero__bg .blob{opacity:.32}
.lp-hero__mesh{
  position:absolute; inset:0;
  background:
    radial-gradient(900px 520px at 18% -8%, rgba(var(--mint-rgb),.16), transparent 60%),
    radial-gradient(720px 480px at 88% 12%, rgba(var(--purple-rgb),.10), transparent 60%),
    radial-gradient(600px 420px at 55% 110%, rgba(var(--accent-gold-rgb),.06), transparent 60%);
}
.lp-hero__grid{
  position:absolute; inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px);
  background-size:56px 56px;
  -webkit-mask-image:radial-gradient(ellipse 80% 60% at 50% 0%, #000 30%, transparent 75%);
  mask-image:radial-gradient(ellipse 80% 60% at 50% 0%, #000 30%, transparent 75%);
}
.lp-hero__inner{
  position:relative; display:grid; grid-template-columns:1.04fr .96fr;
  gap:48px; align-items:center;
}
.lp-hero__copy{max-width:620px}

.lp-eyebrow{
  display:inline-flex; align-items:center; gap:10px;
  padding:8px 14px; border-radius:999px;
  background:rgba(var(--mint-rgb),.08);
  border:1px solid rgba(var(--mint-rgb),.25);
  color:var(--mint); font-weight:800; font-size:13px; letter-spacing:.01em;
}
.lp-eyebrow .dot{
  width:7px; height:7px; border-radius:50%; background:var(--mint);
  box-shadow:0 0 0 4px rgba(var(--mint-rgb),.18);
}

.lp-h1{
  font-size:clamp(38px, 4.6vw, 64px); line-height:1.04; letter-spacing:-.035em;
  margin:18px 0 16px; font-weight:900;
}
.lp-h1 .lp-grad{
  background:linear-gradient(100deg, var(--mint) 10%, #8be3bf 45%, var(--mint2) 90%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.lp-hero__lead{
  color:var(--muted); font-size:17.5px; line-height:1.7; margin:0 0 22px; max-width:56ch;
}
.lp-hero__lead strong{color:var(--text)}

.lp-hero__cta{display:flex; gap:12px; align-items:center; flex-wrap:wrap; margin:6px 0 22px}
.lp-btn-primary{
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  padding:15px 28px; border-radius:14px; border:1px solid transparent;
  font-weight:800; font-size:15.5px; cursor:pointer; text-decoration:none;
  color:var(--ink); background:linear-gradient(135deg, #6fdcab 0%, var(--mint) 45%, var(--mint2) 100%);
  box-shadow:0 8px 28px rgba(var(--mint-rgb),.32), inset 0 1px 0 rgba(255,255,255,.35);
  transition:transform var(--transition-base), box-shadow var(--transition-base), filter var(--transition-base);
}
.lp-btn-primary:hover{
  transform:translateY(-2px);
  box-shadow:0 14px 38px rgba(var(--mint-rgb),.42), inset 0 1px 0 rgba(255,255,255,.35);
  filter:brightness(1.04);
}
.lp-btn-primary:active{transform:translateY(0)}
.lp-btn-primary:focus-visible,
.lp-btn-secondary:focus-visible{
  outline:2px solid var(--mint); outline-offset:3px;
}
.lp-btn-secondary{
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  padding:15px 26px; border-radius:14px; cursor:pointer; text-decoration:none;
  font-weight:700; font-size:15.5px; color:var(--text);
  background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.14);
  backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
  transition:background var(--transition-base), border-color var(--transition-base), transform var(--transition-base);
}
.lp-btn-secondary:hover{
  background:rgba(255,255,255,.10); border-color:rgba(255,255,255,.24); transform:translateY(-2px);
}

.lp-sportline{display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin-top:4px}
.lp-sportline__label{color:var(--muted2); font-size:13px; font-weight:700}
.lp-sportchip{
  display:inline-flex; align-items:center; gap:7px;
  padding:7px 13px; border-radius:999px; font-size:13px; font-weight:700;
  color:var(--text); background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.12);
  transition:border-color var(--transition-base), background var(--transition-base);
}
.lp-sportchip i{font-size:15px}
.lp-sportchip--soccer i{color:var(--mint)}
.lp-sportchip--basketball i{color:#ff9d5c}
.lp-sportchip--football i{color:var(--accent-gold)}
.lp-sportchip:hover{background:rgba(255,255,255,.09); border-color:rgba(255,255,255,.22)}

/* ---------- Hero mockup ---------- */
.lp-hero__visual{position:relative; perspective:1100px}
.lp-mock{
  position:relative; border-radius:20px;
  background:linear-gradient(165deg, rgba(255,255,255,.085), rgba(255,255,255,.035));
  border:1px solid rgba(255,255,255,.14);
  box-shadow:0 40px 90px rgba(0,0,0,.5), inset 0 1px 0 rgba(255,255,255,.08);
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  padding:18px; will-change:transform;
}
.lp-mock__bar{display:flex; align-items:center; justify-content:space-between; margin-bottom:14px}
.lp-mock__brand{display:flex; align-items:center; gap:9px; font-weight:800; font-size:13.5px}
.lp-mock__brand .dot{width:9px; height:9px; border-radius:50%; background:var(--gradient-main)}
.lp-mock__tabs{display:flex; gap:6px}
.lp-mocktab{
  padding:5px 11px; border-radius:999px; font-size:11.5px; font-weight:700;
  color:var(--muted); background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.08);
}
.lp-mocktab.is-on{color:var(--ink); background:var(--mint); border-color:transparent}

.lp-mock__kpis{display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-bottom:12px}
.lp-kpi{
  border-radius:14px; padding:12px 13px;
  background:rgba(255,255,255,.045); border:1px solid rgba(255,255,255,.09);
}
.lp-kpi__label{font-size:11px; font-weight:700; color:var(--muted2); text-transform:uppercase; letter-spacing:.06em; margin-bottom:5px}
.lp-kpi__value{font-size:21px; font-weight:900; letter-spacing:-.02em}
.lp-kpi__trend{font-size:11.5px; font-weight:700; color:var(--mint); margin-top:3px}
.lp-kpi__trend i{font-size:12px}

.lp-mock__list{
  border-radius:14px; padding:12px 13px;
  background:rgba(255,255,255,.045); border:1px solid rgba(255,255,255,.09);
}
.lp-mock__listTitle{display:flex; justify-content:space-between; align-items:center; font-size:12.5px; font-weight:800; margin-bottom:9px}
.lp-mock__listTitle span:last-child{color:var(--muted2); font-weight:600; font-size:11.5px}
.lp-mockrow{
  display:flex; align-items:center; gap:10px; padding:8px 6px;
  border-radius:10px; font-size:12.5px;
  transition:background var(--transition-fast);
}
.lp-mockrow:hover{background:rgba(255,255,255,.04)}
.lp-mockrow + .lp-mockrow{border-top:1px solid rgba(255,255,255,.05)}
.lp-mockrow__ic{
  width:30px; height:30px; border-radius:9px; flex:none;
  display:grid; place-items:center; font-size:15px;
}
.lp-mockrow__ic--soccer{background:rgba(var(--mint-rgb),.14); color:var(--mint)}
.lp-mockrow__ic--basketball{background:rgba(255,157,92,.14); color:#ff9d5c}
.lp-mockrow__ic--football{background:rgba(var(--accent-gold-rgb),.14); color:var(--accent-gold)}
.lp-mockrow__main{flex:1; min-width:0}
.lp-mockrow__main strong{display:block; font-size:12.5px}
.lp-mockrow__main span{color:var(--muted2); font-size:11px}
.lp-mockstatus{
  font-size:10.5px; font-weight:800; padding:4px 9px; border-radius:999px; flex:none;
}
.lp-mockstatus--ok{color:#7ce0b3; background:rgba(var(--mint-rgb),.13)}
.lp-mockstatus--info{color:var(--purple-soft); background:rgba(var(--purple-rgb),.14)}
.lp-mockstatus--warn{color:var(--accent-gold); background:rgba(var(--accent-gold-rgb),.13)}

/* floating cards over the mockup */
.lp-float{
  position:absolute; z-index:2;
  display:flex; align-items:center; gap:10px;
  padding:12px 15px; border-radius:14px;
  background:rgba(13,28,22,.82); border:1px solid rgba(255,255,255,.14);
  box-shadow:0 18px 44px rgba(0,0,0,.45);
  backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
  font-size:12.5px; pointer-events:none;
}
.lp-float strong{display:block; font-size:12.5px}
.lp-float .muted{font-size:11px}
.lp-float__ic{
  width:32px; height:32px; border-radius:10px; flex:none;
  display:grid; place-items:center; font-size:16px;
  background:rgba(var(--mint-rgb),.16); color:var(--mint);
}
.lp-float--pay .lp-float__ic{background:rgba(var(--accent-gold-rgb),.16); color:var(--accent-gold)}
.lp-float--1{top:-22px; right:-14px}
.lp-float--2{bottom:-20px; left:-18px}

/* ---------- Trust strip ---------- */
.lp-trust{padding:30px 0 0}
.lp-trust__grid{
  display:grid; grid-template-columns:repeat(4,1fr); gap:14px;
  padding:22px 0 0; border-top:1px solid rgba(255,255,255,.06);
}
.lp-trustcard{display:flex; align-items:flex-start; gap:13px; padding:8px 4px}
.lp-trustcard i{
  font-size:20px; color:var(--mint); flex:none;
  width:40px; height:40px; border-radius:12px; display:grid; place-items:center;
  background:rgba(var(--mint-rgb),.09); border:1px solid rgba(var(--mint-rgb),.18);
}
.lp-trustcard strong{display:block; font-size:14.5px; margin-bottom:3px}
.lp-trustcard span{color:var(--muted2); font-size:13px; line-height:1.5}

/* ---------- Section helpers ---------- */
.lp-kicker{
  display:inline-flex; align-items:center; gap:8px;
  font-size:12.5px; font-weight:800; letter-spacing:.1em; text-transform:uppercase;
  color:var(--mint); margin-bottom:12px;
}
.lp-kicker::before{content:""; width:22px; height:2px; border-radius:2px; background:var(--mint)}

/* ---------- Sports cards ---------- */
.lp-sports{display:grid; grid-template-columns:repeat(3,1fr); gap:18px}
.lp-sportcard{
  position:relative; border-radius:20px; padding:28px 26px; overflow:hidden;
  background:linear-gradient(170deg, rgba(255,255,255,.06), rgba(255,255,255,.02));
  border:1px solid rgba(255,255,255,.10);
  transition:transform var(--transition-base), border-color var(--transition-base), box-shadow var(--transition-base);
}
.lp-sportcard:hover{
  transform:translateY(-5px);
  border-color:rgba(255,255,255,.20);
  box-shadow:0 24px 60px rgba(0,0,0,.4);
}
.lp-sportcard::before{
  content:""; position:absolute; inset:0 0 auto 0; height:3px; opacity:.9;
}
.lp-sportcard--soccer::before{background:linear-gradient(90deg, var(--mint), transparent)}
.lp-sportcard--basketball::before{background:linear-gradient(90deg, #ff9d5c, transparent)}
.lp-sportcard--football::before{background:linear-gradient(90deg, var(--accent-gold), transparent)}
.lp-sportcard__glow{
  position:absolute; width:240px; height:240px; border-radius:50%;
  top:-110px; right:-90px; filter:blur(46px); opacity:.18; pointer-events:none;
  transition:opacity var(--transition-slow);
}
.lp-sportcard:hover .lp-sportcard__glow{opacity:.32}
.lp-sportcard--soccer .lp-sportcard__glow{background:var(--mint)}
.lp-sportcard--basketball .lp-sportcard__glow{background:#ff9d5c}
.lp-sportcard--football .lp-sportcard__glow{background:var(--accent-gold)}
.lp-sportcard__icon{
  width:52px; height:52px; border-radius:15px; display:grid; place-items:center;
  font-size:26px; margin-bottom:18px; border:1px solid rgba(255,255,255,.12);
}
.lp-sportcard--soccer .lp-sportcard__icon{background:rgba(var(--mint-rgb),.12); color:var(--mint)}
.lp-sportcard--basketball .lp-sportcard__icon{background:rgba(255,157,92,.12); color:#ff9d5c}
.lp-sportcard--football .lp-sportcard__icon{background:rgba(var(--accent-gold-rgb),.12); color:var(--accent-gold)}
.lp-sportcard h3{margin:0 0 8px; font-size:20px; letter-spacing:-.01em}
.lp-sportcard p{margin:0 0 16px; color:var(--muted); font-size:14px; line-height:1.65}
.lp-sportcard ul{list-style:none; margin:0; padding:0; display:grid; gap:8px}
.lp-sportcard li{
  display:flex; align-items:center; gap:9px; color:var(--muted); font-size:13.5px;
}
.lp-sportcard li i{font-size:14px; color:var(--mint); flex:none}

/* ---------- Solutions: Organizations vs Leagues ---------- */
.lp-solutions{display:grid; grid-template-columns:1fr 1fr; gap:20px}
.lp-solcard{
  position:relative; border-radius:22px; padding:32px 30px; overflow:hidden;
  background:linear-gradient(170deg, rgba(255,255,255,.06), rgba(255,255,255,.02));
  border:1px solid rgba(255,255,255,.11);
  display:flex; flex-direction:column;
  transition:transform var(--transition-base), border-color var(--transition-base), box-shadow var(--transition-base);
}
.lp-solcard:hover{
  transform:translateY(-4px); box-shadow:0 26px 64px rgba(0,0,0,.42);
}
.lp-solcard--org:hover{border-color:rgba(var(--mint-rgb),.40)}
.lp-solcard--league:hover{border-color:rgba(var(--accent-gold-rgb),.40)}
.lp-solcard::before{content:""; position:absolute; inset:0 0 auto 0; height:3px}
.lp-solcard--org::before{background:linear-gradient(90deg, var(--mint), transparent 70%)}
.lp-solcard--league::before{background:linear-gradient(90deg, var(--accent-gold), transparent 70%)}
.lp-solcard__glow{
  position:absolute; width:280px; height:280px; border-radius:50%;
  top:-130px; right:-100px; filter:blur(52px); opacity:.14; pointer-events:none;
}
.lp-solcard--org .lp-solcard__glow{background:var(--mint)}
.lp-solcard--league .lp-solcard__glow{background:var(--accent-gold)}
.lp-solcard__badge{
  display:inline-flex; align-items:center; gap:8px; width:fit-content;
  padding:7px 13px; border-radius:999px; font-size:12px; font-weight:800;
  letter-spacing:.04em; text-transform:uppercase; margin-bottom:16px;
}
.lp-solcard--org .lp-solcard__badge{
  color:var(--mint); background:rgba(var(--mint-rgb),.09); border:1px solid rgba(var(--mint-rgb),.26);
}
.lp-solcard--league .lp-solcard__badge{
  color:var(--accent-gold); background:rgba(var(--accent-gold-rgb),.09); border:1px solid rgba(var(--accent-gold-rgb),.26);
}
.lp-solcard h3{margin:0 0 9px; font-size:22px; letter-spacing:-.02em; font-weight:900}
.lp-solcard > p{margin:0 0 20px; color:var(--muted); font-size:14px; line-height:1.65}
.lp-solcard ul{list-style:none; margin:0 0 24px; padding:0; display:grid; gap:10px; flex:1}
.lp-solcard li{display:flex; gap:11px; align-items:flex-start; color:var(--muted); font-size:13.5px; line-height:1.55}
.lp-solcard li strong{color:var(--text); font-weight:700}
.lp-solcard li i{flex:none; font-size:15px; margin-top:2px}
.lp-solcard--org li i{color:var(--mint)}
.lp-solcard--league li i{color:var(--accent-gold)}
.lp-solcard__ctas{display:flex; gap:11px; flex-wrap:wrap; align-items:center}
.lp-solcard__cta{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:12px 22px; border-radius:12px; text-decoration:none;
  font-weight:800; font-size:14px; border:1px solid transparent;
  transition:transform var(--transition-base), box-shadow var(--transition-base), filter var(--transition-base);
}
.lp-solcard__cta:hover{transform:translateY(-2px); filter:brightness(1.05)}
.lp-solcard__cta:focus-visible{outline:2px solid var(--mint); outline-offset:3px}
.lp-solcard--org .lp-solcard__cta{
  color:var(--ink); background:linear-gradient(135deg, #6fdcab, var(--mint) 55%, var(--mint2));
  box-shadow:0 6px 22px rgba(var(--mint-rgb),.28);
}
.lp-solcard--league .lp-solcard__cta{
  color:var(--ink); background:linear-gradient(135deg, #ffe9a8, var(--accent-gold) 55%, #e8b53e);
  box-shadow:0 6px 22px rgba(var(--accent-gold-rgb),.24);
}
.lp-solcard__alt{
  color:var(--muted); font-size:13.5px; font-weight:600; text-decoration:none;
  padding:12px 6px;
}
.lp-solcard__alt:hover{color:var(--text)}
.lp-solcard__alt:focus-visible{outline:2px solid var(--mint); outline-offset:3px; border-radius:4px}
.lp-solutions__note{
  margin-top:18px; text-align:center; color:var(--muted2); font-size:13.5px;
}
.lp-solutions__note strong{color:var(--muted)}

/* ---------- League game-day spotlight ---------- */
.lp-gameday{
  margin-top:26px; border-radius:22px; padding:clamp(26px, 3.4vw, 40px); overflow:hidden;
  position:relative;
  background:linear-gradient(168deg, rgba(var(--accent-gold-rgb),.06), rgba(255,255,255,.02) 45%);
  border:1px solid rgba(var(--accent-gold-rgb),.20);
  display:grid; grid-template-columns:1fr 1.05fr; gap:clamp(26px, 4vw, 52px); align-items:center;
}
.lp-gameday::before{
  content:""; position:absolute; inset:0 0 auto 0; height:3px;
  background:linear-gradient(90deg, var(--accent-gold), transparent 70%);
}
.lp-gameday__badge{
  display:inline-flex; align-items:center; gap:8px; width:fit-content;
  padding:7px 13px; border-radius:999px; margin-bottom:16px;
  font-size:12px; font-weight:800; letter-spacing:.04em; text-transform:uppercase;
  color:var(--accent-gold); background:rgba(var(--accent-gold-rgb),.09);
  border:1px solid rgba(var(--accent-gold-rgb),.26);
}
.lp-gameday__badge .live-dot{
  width:7px; height:7px; border-radius:50%; background:#ff6b6b;
  box-shadow:0 0 0 4px rgba(255,107,107,.18);
  animation:lp-live-pulse 1.6s ease-in-out infinite;
}
@keyframes lp-live-pulse{
  0%,100%{box-shadow:0 0 0 3px rgba(255,107,107,.22)}
  50%{box-shadow:0 0 0 7px rgba(255,107,107,.06)}
}
.lp-gameday h3{margin:0 0 10px; font-size:clamp(21px, 2.2vw, 28px); letter-spacing:-.02em; font-weight:900}
.lp-gameday > div > p{margin:0 0 18px; color:var(--muted); font-size:14.5px; line-height:1.65}
.lp-gameday ul{list-style:none; margin:0; padding:0; display:grid; gap:10px}
.lp-gameday li{display:flex; gap:11px; align-items:flex-start; color:var(--muted); font-size:13.5px; line-height:1.55}
.lp-gameday li strong{color:var(--text); font-weight:700}
.lp-gameday li i{flex:none; font-size:15px; margin-top:2px; color:var(--accent-gold)}

.lp-gameday__visual{display:grid; gap:14px; min-width:0}
.lp-scoreboard{
  border-radius:16px; padding:16px 18px;
  background:rgba(10,22,17,.72); border:1px solid rgba(255,255,255,.12);
  box-shadow:0 18px 44px rgba(0,0,0,.4);
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
}
.lp-scoreboard__top{
  display:flex; justify-content:space-between; align-items:center; margin-bottom:12px;
  font-size:11.5px; font-weight:800;
}
.lp-scoreboard__live{
  display:inline-flex; align-items:center; gap:7px; color:#ff8a8a;
  text-transform:uppercase; letter-spacing:.08em;
}
.lp-scoreboard__live .live-dot{
  width:7px; height:7px; border-radius:50%; background:#ff6b6b;
  animation:lp-live-pulse 1.6s ease-in-out infinite;
}
.lp-scoreboard__viewers{color:var(--muted2); font-weight:600; display:inline-flex; align-items:center; gap:6px}
.lp-scoreboard__row{
  display:flex; justify-content:space-between; align-items:center; padding:7px 0;
  font-weight:800; font-size:14.5px;
}
.lp-scoreboard__row + .lp-scoreboard__row{border-top:1px solid rgba(255,255,255,.06)}
.lp-scoreboard__team{display:flex; align-items:center; gap:9px}
.lp-scoreboard__team .dot{width:9px; height:9px; border-radius:50%}
.lp-scoreboard__score{font-size:19px; letter-spacing:-.01em}
.lp-scoreboard__meta{
  margin-top:11px; display:flex; justify-content:space-between;
  color:var(--muted2); font-size:11.5px; font-weight:700;
}

.lp-shotchart{
  border-radius:16px; padding:15px 18px 13px;
  background:rgba(10,22,17,.72); border:1px solid rgba(255,255,255,.12);
  box-shadow:0 18px 44px rgba(0,0,0,.4);
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
}
.lp-shotchart__top{
  display:flex; justify-content:space-between; align-items:center; margin-bottom:10px;
  font-size:11.5px; font-weight:800;
}
.lp-shotchart__top span:last-child{color:var(--muted2); font-weight:600}
.lp-shotchart svg{display:block; width:100%; height:auto}
.lp-shotchart__legend{
  display:flex; gap:16px; margin-top:9px; color:var(--muted2); font-size:11px; font-weight:700;
}
.lp-shotchart__legend i{
  display:inline-block; width:8px; height:8px; border-radius:50%; margin-right:5px;
}
.lp-shotchart__legend .made i{background:var(--mint)}
.lp-shotchart__legend .missed i{background:rgba(255,138,138,.85)}

/* Community variant: mint accent, visual column first on desktop */
.lp-gameday--community{
  background:linear-gradient(168deg, rgba(var(--mint-rgb),.06), rgba(255,255,255,.02) 45%);
  border-color:rgba(var(--mint-rgb),.20);
}
.lp-gameday--community::before{
  background:linear-gradient(90deg, var(--mint), transparent 70%);
}
.lp-gameday--community .lp-gameday__badge{
  color:var(--mint); background:rgba(var(--mint-rgb),.09);
  border-color:rgba(var(--mint-rgb),.26);
}
.lp-gameday--community li i{color:var(--mint)}
.lp-gameday--community > div:first-child{order:2}
.lp-gameday--community .lp-gameday__visual{order:1}

/* Store front mock */
.lp-storecard{
  border-radius:16px; padding:16px 18px;
  background:rgba(10,22,17,.72); border:1px solid rgba(255,255,255,.12);
  box-shadow:0 18px 44px rgba(0,0,0,.4);
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
}
.lp-storecard__top{
  display:flex; justify-content:space-between; align-items:center; margin-bottom:12px;
  font-size:11.5px; font-weight:800;
}
.lp-storecard__top span:last-child{color:var(--muted2); font-weight:600}
.lp-storeitem{
  display:flex; align-items:center; gap:12px; padding:8px 0;
}
.lp-storeitem + .lp-storeitem{border-top:1px solid rgba(255,255,255,.06)}
.lp-storeitem__thumb{
  width:40px; height:40px; border-radius:10px; flex:none;
  display:grid; place-items:center; font-size:18px;
  border:1px solid rgba(255,255,255,.10);
}
.lp-storeitem__thumb--jersey{background:rgba(var(--mint-rgb),.12); color:var(--mint)}
.lp-storeitem__thumb--ball{background:rgba(255,157,92,.12); color:#ff9d5c}
.lp-storeitem__thumb--hoodie{background:rgba(var(--accent-gold-rgb),.12); color:var(--accent-gold)}
.lp-storeitem__main{flex:1; min-width:0}
.lp-storeitem__main strong{display:block; font-size:13px}
.lp-storeitem__main span{color:var(--muted2); font-size:11px}
.lp-storeitem__price{font-weight:900; font-size:13.5px}
.lp-storecard__cta{
  margin-top:11px; text-align:center; padding:9px;
  border-radius:10px; font-size:12px; font-weight:800; color:var(--ink);
  background:linear-gradient(135deg, #6fdcab, var(--mint) 55%, var(--mint2));
}

/* Gallery mock */
.lp-gallerycard{
  border-radius:16px; padding:15px 18px;
  background:rgba(10,22,17,.72); border:1px solid rgba(255,255,255,.12);
  box-shadow:0 18px 44px rgba(0,0,0,.4);
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
}
.lp-gallerycard__top{
  display:flex; justify-content:space-between; align-items:center; margin-bottom:11px;
  font-size:11.5px; font-weight:800;
}
.lp-gallerycard__top span:last-child{color:var(--muted2); font-weight:600}
.lp-gallerygrid{display:grid; grid-template-columns:repeat(3,1fr); gap:8px}
.lp-gallerygrid div{
  aspect-ratio:4/3; border-radius:9px;
  border:1px solid rgba(255,255,255,.08);
  display:grid; place-items:center; font-size:16px; color:rgba(255,255,255,.35);
}
.lp-gallerygrid div:nth-child(1){background:linear-gradient(135deg, rgba(var(--mint-rgb),.22), rgba(var(--forest-rgb),.5))}
.lp-gallerygrid div:nth-child(2){background:linear-gradient(135deg, rgba(255,157,92,.20), rgba(var(--forest-rgb),.5))}
.lp-gallerygrid div:nth-child(3){background:linear-gradient(135deg, rgba(var(--accent-gold-rgb),.20), rgba(var(--forest-rgb),.5))}
.lp-gallerygrid div:nth-child(4){background:linear-gradient(135deg, rgba(var(--purple-rgb),.20), rgba(var(--forest-rgb),.5))}
.lp-gallerygrid div:nth-child(5){background:linear-gradient(135deg, rgba(var(--mint-rgb),.16), rgba(var(--forest-rgb),.55))}
.lp-gallerygrid div:nth-child(6){
  background:rgba(255,255,255,.05); color:var(--muted); font-size:11.5px; font-weight:800;
}

@media (prefers-reduced-motion: reduce){
  .lp-gameday__badge .live-dot, .lp-scoreboard__live .live-dot{animation:none}
}
@media (max-width: 1080px){
  .lp-gameday{grid-template-columns:1fr; max-width:640px; margin-left:auto; margin-right:auto}
  .lp-gameday--community > div:first-child{order:1}
  .lp-gameday--community .lp-gameday__visual{order:2}
}

/* ---------- Features bento ---------- */
.lp-bento{
  display:grid; grid-template-columns:repeat(12,1fr); gap:16px;
}
.lp-feat{
  position:relative; grid-column:span 3; border-radius:18px; padding:24px 22px; overflow:hidden;
  background:linear-gradient(170deg, rgba(255,255,255,.055), rgba(255,255,255,.02));
  border:1px solid rgba(255,255,255,.09);
  transition:transform var(--transition-base), border-color var(--transition-base), background var(--transition-base);
}
.lp-feat:hover{transform:translateY(-4px); border-color:rgba(var(--mint-rgb),.32)}
.lp-feat--wide{grid-column:span 6}
.lp-feat__icon{
  width:42px; height:42px; border-radius:12px; display:grid; place-items:center;
  font-size:20px; margin-bottom:14px;
  background:rgba(var(--mint-rgb),.10); border:1px solid rgba(var(--mint-rgb),.20); color:var(--mint);
}
.lp-feat h3{margin:0 0 7px; font-size:15.5px; letter-spacing:-.005em}
.lp-feat p{margin:0; color:var(--muted2); font-size:13px; line-height:1.6}
.lp-feat--wide p{max-width:48ch}
.lp-feat__tags{display:flex; gap:7px; flex-wrap:wrap; margin-top:14px}
.lp-feat__tags span{
  font-size:11px; font-weight:700; padding:4px 10px; border-radius:999px;
  color:var(--muted); background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.08);
}

/* ---------- Why CoachMate ---------- */
.lp-why{display:grid; grid-template-columns:.92fr 1.08fr; gap:42px; align-items:start}
.lp-why__points{display:grid; gap:6px; margin-top:18px}
.lp-whypoint{
  display:flex; gap:14px; padding:14px 16px; border-radius:14px;
  border:1px solid transparent;
  transition:background var(--transition-base), border-color var(--transition-base);
}
.lp-whypoint:hover{background:rgba(255,255,255,.04); border-color:rgba(255,255,255,.08)}
.lp-whypoint i{
  font-size:18px; color:var(--mint); flex:none; margin-top:2px;
  width:36px; height:36px; border-radius:11px; display:grid; place-items:center;
  background:rgba(var(--mint-rgb),.09); border:1px solid rgba(var(--mint-rgb),.18);
}
.lp-whypoint strong{display:block; font-size:14.5px; margin-bottom:3px}
.lp-whypoint span{color:var(--muted2); font-size:13px; line-height:1.55}

.lp-compare{display:grid; gap:16px}
.lp-comparecard{
  border-radius:18px; padding:24px;
  border:1px solid rgba(255,255,255,.09);
}
.lp-comparecard--before{
  background:linear-gradient(170deg, rgba(239,68,68,.05), rgba(255,255,255,.015));
}
.lp-comparecard--after{
  background:linear-gradient(170deg, rgba(var(--mint-rgb),.08), rgba(255,255,255,.015));
  border-color:rgba(var(--mint-rgb),.24);
}
.lp-comparecard__head{display:flex; align-items:center; gap:10px; margin-bottom:14px; font-weight:900; font-size:15px}
.lp-comparecard--before .lp-comparecard__head i{color:#ff8a8a}
.lp-comparecard--after .lp-comparecard__head i{color:var(--mint)}
.lp-comparecard ul{list-style:none; margin:0; padding:0; display:grid; gap:9px}
.lp-comparecard li{display:flex; gap:10px; align-items:flex-start; color:var(--muted); font-size:13.5px; line-height:1.55}
.lp-comparecard--before li i{color:rgba(255,138,138,.75); font-size:15px; flex:none; margin-top:1px}
.lp-comparecard--after li i{color:var(--mint); font-size:15px; flex:none; margin-top:1px}
.lp-comparecard--after li{color:var(--text)}

/* ---------- Testimonials ---------- */
.lp-quotes{display:grid; grid-template-columns:repeat(3,1fr); gap:16px}
.lp-quote{
  display:flex; flex-direction:column; gap:16px;
  border-radius:18px; padding:26px 24px;
  background:linear-gradient(170deg, rgba(255,255,255,.055), rgba(255,255,255,.02));
  border:1px solid rgba(255,255,255,.09);
  transition:transform var(--transition-base), border-color var(--transition-base);
}
.lp-quote:hover{transform:translateY(-4px); border-color:rgba(255,255,255,.18)}
.lp-quote__mark{font-size:26px; color:var(--mint); line-height:1}
.lp-quote blockquote{margin:0; font-size:14.5px; line-height:1.7; color:var(--text); flex:1}
.lp-quote figcaption{display:flex; align-items:center; gap:11px}
.lp-quote__avatar{
  width:38px; height:38px; border-radius:50%; flex:none;
  display:grid; place-items:center; font-weight:900; font-size:13px; color:var(--ink);
  background:linear-gradient(135deg, var(--mint), var(--mint2));
}
.lp-quote figcaption strong{display:block; font-size:13px}
.lp-quote figcaption span{color:var(--muted2); font-size:12px}
.lp-quotes__note{
  margin-top:14px; color:var(--muted2); font-size:12px; text-align:center;
}

/* ---------- Final CTA ---------- */
.lp-cta{
  position:relative; margin:30px 0 0; padding:80px 0; overflow:hidden;
  border-top:1px solid rgba(255,255,255,.06);
  background:
    radial-gradient(700px 380px at 50% 0%, rgba(var(--mint-rgb),.14), transparent 65%),
    linear-gradient(180deg, rgba(255,255,255,.02), transparent);
}
.lp-cta__inner{text-align:center; max-width:740px; margin:0 auto; position:relative}
.lp-cta h2{font-size:clamp(28px, 3.4vw, 46px); letter-spacing:-.03em; margin:0 0 14px; font-weight:900}
.lp-cta p{color:var(--muted); font-size:16.5px; line-height:1.65; margin:0 auto 26px; max-width:54ch}
.lp-cta__actions{display:flex; gap:12px; justify-content:center; flex-wrap:wrap}
.lp-cta__sports{display:flex; gap:10px; justify-content:center; flex-wrap:wrap; margin-top:24px}

/* ---------- Footer ---------- */
.lp-footer{
  border-top:1px solid rgba(255,255,255,.06);
  background:linear-gradient(180deg, rgba(255,255,255,.015), transparent 40%);
}
.lp-footgrid{
  display:grid; grid-template-columns:minmax(280px, 1.1fr) 2fr; gap:72px;
  padding:72px 0 56px;
}
.lp-footbrand__mark{display:flex; align-items:center; gap:12px; margin-bottom:18px}
.lp-footbrand__mark img{height:44px; width:auto; border-radius:8px}
.lp-footbrand__mark span{font-size:19px; font-weight:900; letter-spacing:-.02em}
.lp-footbrand p{color:var(--muted); font-size:14px; line-height:1.75; margin:0 0 24px; max-width:38ch}
.lp-footbrand__cta{padding:11px 20px; font-size:14px}
.lp-footcols{
  display:grid; grid-template-columns:repeat(3,1fr); gap:40px;
}
.lp-footcol h4{
  margin:0 0 18px; font-size:12px; font-weight:800; letter-spacing:.12em;
  text-transform:uppercase; color:var(--muted2);
}
.lp-footcol a{
  display:block; color:var(--muted); text-decoration:none; font-size:14px;
  padding:7px 0; transition:color var(--transition-fast);
}
.lp-footcol a:hover{color:var(--text)}
.lp-footcol button.lp-footlink{
  display:block; background:none; border:0; padding:7px 0; cursor:pointer;
  color:var(--muted); font-size:14px; font-family:inherit; text-align:left;
  transition:color var(--transition-fast);
}
.lp-footcol button.lp-footlink:hover{color:var(--text)}
.lp-footcol a:focus-visible, .lp-footcol button.lp-footlink:focus-visible{
  outline:2px solid var(--mint); outline-offset:2px; border-radius:4px;
}
.lp-footbottom{
  display:flex; align-items:center; justify-content:space-between; gap:18px; flex-wrap:wrap;
  padding:26px 0 32px; border-top:1px solid rgba(255,255,255,.06);
}
.lp-footbottom__copy{color:var(--muted2); font-size:13px}
.lp-footbottom__legal{display:flex; gap:26px; flex-wrap:wrap}
.lp-footbottom__legal a{
  color:var(--muted2); text-decoration:none; font-size:13px; font-weight:600;
  transition:color var(--transition-fast);
}
.lp-footbottom__legal a:hover{color:var(--text)}
.lp-footbottom__legal a:focus-visible{outline:2px solid var(--mint); outline-offset:2px; border-radius:4px}

/* ---------- Motion ---------- */
@media (prefers-reduced-motion: reduce){
  .lp-btn-primary, .lp-btn-secondary, .lp-sportcard, .lp-feat, .lp-quote,
  .lp-whypoint, .lp-mockrow, .lp-sportchip, .lp-sportcard__glow{
    transition:none !important;
  }
  .lp-btn-primary:hover, .lp-btn-secondary:hover, .lp-sportcard:hover,
  .lp-feat:hover, .lp-quote:hover{transform:none}
}

/* ---------- Responsive ---------- */
@media (max-width: 1080px){
  .lp-hero__inner{grid-template-columns:1fr; gap:56px}
  .lp-hero__copy{max-width:640px}
  .lp-hero__visual{max-width:620px; margin:0 auto; width:100%}
  .lp-trust__grid{grid-template-columns:repeat(2,1fr)}
  .lp-sports{grid-template-columns:1fr; max-width:560px; margin:0 auto}
  .lp-solutions{grid-template-columns:1fr; max-width:640px; margin:0 auto}
  .lp-feat{grid-column:span 6}
  .lp-feat--wide{grid-column:span 12}
  .lp-why{grid-template-columns:1fr; gap:34px}
  .lp-quotes{grid-template-columns:1fr; max-width:560px; margin:0 auto}
  .lp-footgrid{grid-template-columns:1fr; gap:48px; padding:56px 0 44px}
}

@media (max-width: 640px){
  .lp-hero{padding:48px 0 40px}
  .lp-hero__lead{font-size:16px}
  .lp-hero__cta .lp-btn-primary, .lp-hero__cta .lp-btn-secondary{width:100%}
  .lp-mock__kpis{grid-template-columns:repeat(3,1fr); gap:7px}
  .lp-kpi{padding:10px}
  .lp-kpi__value{font-size:17px}
  .lp-float--1{top:-14px; right:-6px; padding:9px 12px}
  .lp-float--2{bottom:-14px; left:-6px; padding:9px 12px}
  .lp-trust__grid{grid-template-columns:1fr}
  .lp-feat{grid-column:span 12}
  .lp-footcols{grid-template-columns:1fr; gap:34px}
  .lp-footbottom{flex-direction:column; align-items:flex-start; gap:14px}
  .lp-cta{padding:60px 0}
}
