/* ════════════════════════════════════════════════════════════
   NEZNAKOV BOOST · COACHING PAGE · CUSTOM COMPONENTS
   Imports tokens & base from styles/boost.css
   ════════════════════════════════════════════════════════════ */

/* ────────────────────────────────────────────────────────────
   HERO LAYOUT — re-balance toward the card (less left-heavy)
   ──────────────────────────────────────────────────────────── */
.hero .hero-grid{
  grid-template-columns:1fr .9fr;
  gap:48px;
  align-items:start;
}
.hero h1{
  font-size:clamp(40px, 5.6vw, 80px);
}
.hero h1 .h1-fade{
  background:linear-gradient(90deg, var(--v-300) 0%, var(--v-200) 35%, #fff 100%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
  font-style:normal;font-weight:800;
}
.hero h1 .h1-white{
  color:#fff;-webkit-text-fill-color:#fff;
  font-style:normal;font-weight:800;
}
.hero-sub{max-width:540px}
.hero .hero-card{
  align-self:start;
  margin-top:clamp(48px, 6vw, 72px);
}
@media (max-width:980px){
  .hero .hero-grid{grid-template-columns:1fr}
  .hero .hero-card{margin-top:0}
}

/* ────────────────────────────────────────────────────────────
   HERO BG — soft blur + shift right ~1/6
   ──────────────────────────────────────────────────────────── */
.hero .hero-bg-img{
  transform:translateX(16.67%);
  filter:saturate(1.1) contrast(1.05) blur(6px);
}

/* ────────────────────────────────────────────────────────────
   BOOSTER HERO PORTRAIT — rectangles instead of text pills
   ──────────────────────────────────────────────────────────── */
.booster-hero-rect{
  width:46px;height:30px;border-radius:6px;
  object-fit:cover;object-position:center top;
  border:1px solid var(--line);
  background:rgba(255,255,255,.04);
  flex:0 0 auto;display:block;
}

/* ────────────────────────────────────────────────────────────
   BENTO BIG NUMBER — keep "+800 MMR" inside the card
   ──────────────────────────────────────────────────────────── */
.bento-card .bento-big-num{
  font-size:clamp(48px, 6.2vw, 96px);
  letter-spacing:-.045em;
  word-break:keep-all;
}
.bento-card .bento-big-num span{
  display:inline-block;margin-left:.15em;
  font-size:.38em;
}

/* ────────────────────────────────────────────────────────────
   HERO CARD · COACH PREVIEW ROW
   ──────────────────────────────────────────────────────────── */
.coach-hero-row{
  display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:center;
  padding-bottom:20px;border-bottom:1px solid var(--line);margin-bottom:20px;
}
.coach-hero-photo{
  width:72px;height:72px;border-radius:18px;overflow:hidden;
  background:linear-gradient(135deg, var(--v-500), var(--v-800));
  border:1px solid var(--line-strong);position:relative;flex-shrink:0;
  box-shadow:0 8px 24px -10px var(--v-glow);
}
.coach-hero-photo img{
  width:100%;height:100%;object-fit:cover;display:block;
}
/* rank variant: show the Titan emblem instead of a photo */
.coach-hero-photo.coach-hero-photo--rank{
  background:transparent;border:none;border-radius:0;overflow:visible;
  box-shadow:none;
  display:flex;align-items:center;justify-content:center;
  filter:drop-shadow(0 8px 18px var(--v-glow));
}
.coach-hero-photo.coach-hero-photo--rank img{
  width:100%;height:100%;object-fit:contain;
}
/* match-history board between coach row and stats */
.coach-hero-board{
  margin:0 0 16px;
  border-radius:12px;overflow:hidden;
  border:1px solid var(--line);
  background:rgba(255,255,255,.02);
  box-shadow:0 6px 18px -10px rgba(0,0,0,.6);
}
.coach-hero-board img{
  display:block;width:100%;height:auto;object-fit:cover;
}
.coach-hero-info{
  min-width:0;display:flex;flex-direction:column;gap:4px;
}
.coach-hero-name{
  font-family:var(--f-display);font-weight:700;font-size:18px;
  color:var(--text);letter-spacing:-.01em;line-height:1.1;
}
.coach-hero-mmr{
  font-family:var(--f-mono);font-size:11px;color:var(--text-3);
  letter-spacing:.04em;
}
.coach-hero-price-tag{
  display:inline-flex;align-items:baseline;gap:4px;
  margin-top:4px;
  font-family:var(--f-mono);font-size:12px;color:var(--text-2);
}
.coach-hero-price-tag b{
  font-family:var(--f-display);font-weight:700;font-size:15px;color:var(--v-200);
  letter-spacing:.01em;
}

/* ────────────────────────────────────────────────────────────
   CALC · TRAINER GRID
   ──────────────────────────────────────────────────────────── */
.trainer-grid{
  display:grid;grid-template-columns:repeat(3, 1fr);gap:10px;
  margin-bottom:8px;
}
.trainer-pick{
  position:relative;
  padding:16px 12px 14px;
  background:var(--bg-2);border:1px solid var(--line);border-radius:14px;
  display:flex;flex-direction:column;gap:6px;align-items:center;
  text-align:center;cursor:pointer;
  transition:all .2s var(--easing);
}
.trainer-pick .tp-icon{
  width:54px;height:54px;object-fit:contain;
  filter:drop-shadow(0 6px 14px var(--accent-glow, rgba(167,139,250,.35)));
  pointer-events:none;
}
.trainer-pick:hover{
  border-color:var(--line-2);
  background:color-mix(in oklch, var(--surface) 50%, var(--bg-1));
  transform:translateY(-1px);
}
.trainer-pick.on{
  border-color:var(--v-500);
  background:linear-gradient(180deg, color-mix(in oklch, var(--v-500) 14%, var(--bg-2)), var(--bg-2));
  box-shadow:0 0 0 1px var(--v-500), 0 12px 28px -16px var(--v-glow);
}
.trainer-pick .tp-mmr{
  font-family:var(--f-display);font-weight:700;font-size:14px;
  color:var(--text);letter-spacing:-.01em;line-height:1;
}
.trainer-pick .tp-name{
  font-family:var(--f-mono);font-size:10px;color:var(--text-3);
  letter-spacing:.06em;text-transform:uppercase;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;
}
.trainer-pick .tp-pph{
  font-family:var(--f-mono);font-size:12px;color:var(--v-200);
  font-weight:600;letter-spacing:.01em;margin-top:2px;
}
.trainer-pick.on .tp-pph{color:var(--v-100)}
.trainer-pick.featured::before{
  content:"author";position:absolute;top:-8px;right:8px;
  font-family:var(--f-mono);font-size:9px;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;
  background:linear-gradient(135deg, var(--v-500), var(--v-700));
  color:#fff;padding:2px 7px;border-radius:999px;
  box-shadow:0 4px 12px -4px var(--v-glow);
}

/* ────────────────────────────────────────────────────────────
   CALC · HOURS GRID
   ──────────────────────────────────────────────────────────── */
.hours-grid{
  display:grid;grid-template-columns:repeat(10, 1fr);gap:6px;
  margin-bottom:8px;
}
.hours-pick{
  position:relative;
  padding:12px 6px 10px;
  background:var(--bg-2);border:1px solid var(--line);border-radius:12px;
  display:flex;flex-direction:column;gap:2px;align-items:center;
  cursor:pointer;transition:all .18s var(--easing);
}
.hours-pick:hover{
  border-color:var(--line-2);background:color-mix(in oklch, var(--surface) 50%, var(--bg-1));
}
.hours-pick.on{
  border-color:var(--v-500);
  background:linear-gradient(180deg, color-mix(in oklch, var(--v-500) 14%, var(--bg-2)), var(--bg-2));
  box-shadow:0 0 0 1px var(--v-500), 0 8px 20px -12px var(--v-glow);
}
.hours-pick .hp-num{
  font-family:var(--f-display);font-weight:700;font-size:16px;color:var(--text);
  line-height:1;
}
.hours-pick .hp-disc{
  font-family:var(--f-mono);font-size:9.5px;color:var(--text-3);
  letter-spacing:.04em;line-height:1;
}
.hours-pick.on .hp-disc{color:var(--ok)}
.hours-pick.disabled{
  opacity:.4;cursor:not-allowed;pointer-events:none;
}

/* ────────────────────────────────────────────────────────────
   CALC · ROLE TOGGLE (segmented control with icons)
   ──────────────────────────────────────────────────────────── */
.role-toggle{
  display:grid;grid-template-columns:repeat(5,1fr);gap:6px;
  margin-bottom:8px;
}
.role-toggle button{
  padding:11px 6px;
  background:var(--bg-2);border:1px solid var(--line);border-radius:12px;
  display:flex;flex-direction:column;gap:5px;align-items:center;justify-content:center;
  font-family:var(--f-mono);font-size:11px;font-weight:600;
  color:var(--text-2);letter-spacing:.01em;
  cursor:pointer;transition:all .18s var(--easing);
}
.role-toggle button:hover{
  border-color:var(--line-2);background:color-mix(in oklch, var(--surface) 50%, var(--bg-1));
  color:var(--text);
}
.role-toggle button.on{
  border-color:var(--v-500);color:var(--text);
  background:linear-gradient(180deg, color-mix(in oklch, var(--v-500) 14%, var(--bg-2)), var(--bg-2));
  box-shadow:0 0 0 1px var(--v-500), 0 8px 20px -12px var(--v-glow);
}
.role-toggle .role-ic{
  font-size:18px;line-height:1;
  display:inline-flex;align-items:center;justify-content:center;
  color:var(--text-3);
  transition:color .2s ease;
}
.role-toggle .role-ic svg{width:20px;height:20px;display:block}
.role-toggle button:hover .role-ic{color:var(--text-2)}
.role-toggle button.on .role-ic{color:var(--v-200)}

/* ────────────────────────────────────────────────────────────
   COMPARE · 3-COLUMN VARIANT (1.8fr 1fr 1fr 1fr)
   ──────────────────────────────────────────────────────────── */
.compare.compare-3 .compare-row{
  grid-template-columns:1.8fr 1fr 1fr 1fr;
}

/* ────────────────────────────────────────────────────────────
   RESPONSIVE — keep grids manageable on mobile
   ──────────────────────────────────────────────────────────── */
@media (max-width:980px){
  .trainer-grid{grid-template-columns:repeat(3,1fr)}
  .hours-grid{grid-template-columns:repeat(5,1fr)}
}
@media (max-width:768px){
  /* CTA banner: the giant "−18%" is one unbreakable token, so its min-content
     (~330px) inflates the single grid track past the padded banner and the right
     edge gets clipped by overflow:hidden. min-width:0 lets the track shrink back
     to the container; centering + a viewport-scaled size keep it fully inside.
     (boost.css already sets text-align:center here — this completes that intent.) */
  .cta-banner-content,.cta-banner-right{min-width:0}
  .cta-banner-right{align-items:center;text-align:center;min-height:auto;margin-top:6px}
  .cta-discount{font-size:clamp(64px,19vw,104px)}
}
@media (max-width:640px){
  .trainer-grid{grid-template-columns:repeat(2,1fr)}
  .hours-grid{grid-template-columns:repeat(5,1fr)}
  .role-toggle{grid-template-columns:repeat(3,1fr)}
  .coach-hero-photo{width:64px;height:64px;border-radius:16px}
  .coach-hero-name{font-size:16px}

  /* compare-3 → labeled stacked cards.
     A plain 1fr collapse detaches the column header row from the values, so
     YouTube vs «случайный тренер» become indistinguishable. Instead: drop the
     table chrome, hide the header, turn each feature into a card and prefix every
     value with its column name via ::before (labels mirror the header cells). */
  .compare.compare-3{background:none;border:none;box-shadow:none;overflow:visible}
  .compare.compare-3 .compare-row{
    grid-template-columns:1fr;
    background:linear-gradient(180deg, var(--surface), var(--bg-2));
    border:1px solid var(--line-2);
    border-radius:var(--r-lg);
    margin-bottom:12px;overflow:hidden;
  }
  .compare.compare-3 .compare-row:last-child{margin-bottom:0}
  .compare.compare-3 .compare-row.us-head{display:none}
  .compare.compare-3 .compare-cell{
    padding:11px 16px;font-size:13.5px;
    border-bottom:1px solid var(--line);
  }
  .compare.compare-3 .compare-cell:last-child{border-bottom:0}
  .compare.compare-3 .compare-cell.feat{
    background:var(--bg-1);
    font-family:var(--f-mono);font-size:11px;font-weight:700;
    letter-spacing:.08em;text-transform:uppercase;color:var(--v-200);
  }
  .compare.compare-3 .compare-cell.us{
    background:color-mix(in oklch, var(--v-500) 7%, transparent);
  }
  /* value cells: column label on its own line above the value */
  .compare.compare-3 .compare-row .compare-cell:not(.feat){flex-wrap:wrap;align-items:center}
  .compare.compare-3 .compare-row .compare-cell:not(.feat)::before{
    flex-basis:100%;
    font-family:var(--f-mono);font-size:9.5px;font-weight:700;
    letter-spacing:.07em;text-transform:uppercase;color:var(--text-3);
  }
  .compare.compare-3 .compare-row .compare-cell:nth-child(2)::before{content:"Neznakov Coaching";color:var(--v-300)}
  .compare.compare-3 .compare-row .compare-cell:nth-child(3)::before{content:"YouTube / гайды"}
  .compare.compare-3 .compare-row .compare-cell:nth-child(4)::before{content:"Случайный тренер"}
}
@media (max-width:560px){
  /* Две hero-CTA («Рассчитать стоимость» 258px + «Подобрать тренера» 236px) с
     gap 10px дают ~504px и ниже ~540px перестают помещаться в строку: flex-wrap
     роняет вторую кнопку на новый ряд, и обе остаются разной ширины, прижатые
     влево, — рваный правый край. Стекаем в колонку на всю ширину: ровный,
     одинаково широкий и легко тапаемый блок (тот же приём, что .hero-card-cta). */
  .hero-ctas{flex-direction:column}
  .hero-ctas .btn{width:100%}
}

/* ────────────────────────────────────────────────────────────
   TICKER — coaching variant (mention "провёл занятие")
   Style is inherited from boost.css .ticker-item, no override needed.
   ──────────────────────────────────────────────────────────── */
