/*
Theme Name: Втопе Ru
Theme URI: https://vtope.info/
Description: Тема сайта Втопе Ru. Язык дизайна «Лига пакетов».
Version: 1.0.3
Text Domain: vtope-ru
*/

/* Палитра — кабинет vto.pe (полотно #EFF2F9, синий #108CFF, жёлтый #FFCA0E), снято кодом из DOM 14.09.2026.
   Синий под белой подписью затемнён до #0A6FD1 (4,8:1), зелёный текст — #137A45 (5,3:1 на белом). */
:root{
  --bg:#EFF2F9; --card:#FFFFFF; --soft:#F6F8FC; --ink:#1B1B1E; --mute:#555C6B; --line:#DCE2EC;
  --blue:#108CFF; --key:#0A6FD1; --keydeep:#074E96; --link:#0A63BA; --pale:#E6F2FF;
  --gold:#FFCA0E; --golddeep:#C99A00; --silver:#A9B3C2; --bronze:#D39A63; --green:#137A45; --greenbg:#E3F5EB;
  --night:#0C2340;
  --r-card:20px; --r-key:14px; --shell:1240px; --gut:24px;
  --f:"Balsamiq Sans", "Trebuchet MS", "Segoe UI", sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:400 17px/1.55 var(--f);overflow-x:clip}
img,svg{max-width:100%;display:block}
a{color:var(--link)}
a:hover{color:var(--keydeep)}
h1,h2,h3{line-height:1.12;margin:0 0 .5em;font-weight:700;overflow-wrap:break-word}
h1{font-size:clamp(2.1rem,1.3rem + 3vw,3.9rem);letter-spacing:-.01em}
h2{font-size:clamp(1.6rem,1.15rem + 1.6vw,2.5rem)}
h3{font-size:1.25rem}
p{margin:0 0 1em}
ul,ol{margin:0 0 1em;padding-left:1.2em}
.shell{width:100%;max-width:var(--shell);margin:0 auto;padding-left:var(--gut);padding-right:var(--gut)}
.skip{position:absolute;left:-9999px}
.skip:focus{left:16px;top:16px;z-index:100;background:var(--card);padding:8px 14px;border-radius:10px}
:focus-visible{outline:3px solid var(--blue);outline-offset:3px}

/* ── Клавиша: кнопка с нижней «подложкой» ── */
.key{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 24px;border-radius:var(--r-key);
  background:var(--key);color:#fff;font-weight:700;font-size:1.05rem;text-decoration:none;white-space:nowrap;
  box-shadow:0 5px 0 var(--keydeep);transition:transform .16s ease,box-shadow .16s ease}
.key:hover{color:#fff;transform:translateY(2px);box-shadow:0 3px 0 var(--keydeep)}
.key:active{transform:translateY(5px);box-shadow:0 0 0 var(--keydeep)}
.key--gold{background:var(--gold);color:var(--ink);box-shadow:0 5px 0 var(--golddeep)}
.key--gold:hover{color:var(--ink);box-shadow:0 3px 0 var(--golddeep)}
.key--ghost{background:var(--card);color:var(--ink);box-shadow:0 5px 0 var(--line);border:2px solid var(--line)}
.key--ghost:hover{color:var(--ink);box-shadow:0 3px 0 var(--line)}
.key__short{display:none}
.keys{display:flex;flex-wrap:wrap;gap:14px 16px;margin:6px 0 0}

/* ── Шапка ── */
.top{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);border-bottom:2px solid var(--line)}
.top__in{display:flex;align-items:center;gap:24px;min-height:74px}
.sign{display:inline-flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none;font-weight:700;font-size:1.35rem;flex:0 0 auto}
.sign:hover{color:var(--ink)}
.sign svg{flex:0 0 auto}
.sign__ru{color:var(--key)}
.rail{display:flex;align-items:center;gap:6px;margin-left:auto}
.rail a{padding:8px 12px;border-radius:10px;color:var(--ink);text-decoration:none;font-size:1rem}
.rail a:hover{background:var(--pale);color:var(--ink)}
.rail a.is-here{background:var(--pale);color:var(--keydeep);font-weight:700}
.top__key{flex:0 0 auto}
.burger{display:none;margin-left:12px;width:48px;height:48px;border-radius:12px;border:2px solid var(--line);background:var(--card);cursor:pointer;position:relative;flex:0 0 auto}
.burger i,.burger i::before,.burger i::after{position:absolute;left:12px;width:20px;height:2px;background:var(--ink);content:"";transition:transform .18s ease}
.burger i{top:22px}.burger i::before{left:0;top:-7px}.burger i::after{left:0;top:7px}
.burger[aria-expanded="true"] i{background:transparent}
.burger[aria-expanded="true"] i::before{transform:translateY(7px) rotate(45deg)}
.burger[aria-expanded="true"] i::after{transform:translateY(-7px) rotate(-45deg)}
.drawer{display:none;border-top:2px solid var(--line);background:var(--card);max-height:calc(100dvh - 76px);overflow-y:auto;overscroll-behavior:contain}
.drawer.is-shown{display:block}
.drawer ul{list-style:none;margin:0;padding:10px 0 18px}
.drawer a{display:flex;flex-direction:column;padding:12px 4px;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none;font-weight:700;font-size:1.1rem}
.drawer a small{font-weight:400;color:var(--mute);font-size:.9rem}
.drawer a.is-here{color:var(--keydeep)}

/* ── Первый экран ── */
.stage{padding:48px 0 56px}
.stage__grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:48px;align-items:start}
.crumbs{display:flex;flex-wrap:wrap;gap:8px;font-size:.95rem;color:var(--mute);margin:0 0 18px}
.crumbs a{color:var(--mute)}
.lead{font-size:1.2rem;color:#33363D;max-width:40em}
.facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:34px 0 0;padding:0;list-style:none}
.facts li{background:var(--card);border:2px solid var(--line);border-radius:16px;padding:14px 16px}
.facts b{display:block;font-size:1.6rem;line-height:1.1}
.facts span{font-size:.92rem;color:var(--mute)}

/* ── Медали ── */
.medal{display:inline-grid;place-items:center;min-width:48px;height:48px;padding:0 8px;border-radius:14px;font-weight:700;font-size:.95rem;color:var(--ink);box-shadow:inset 0 -4px 0 rgba(0,0,0,.14)}
.medal--gold{background:var(--gold)}
.medal--silver{background:var(--silver)}
.medal--bronze{background:var(--bronze)}
.medal--blue{background:var(--blue);color:#fff}
.medal--lg{min-width:64px;height:64px;font-size:1.2rem;border-radius:18px}

/* ── Несущий компонент: лига пакетов ── */
.league{background:var(--card);border:2px solid var(--line);border-radius:24px;padding:22px 22px 18px}
.league__head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 16px;margin:0 0 10px}
.league__title{font-size:1.45rem;margin:0}
.league__head p{margin:0;color:var(--mute);font-size:.95rem}
.league__list{list-style:none;margin:0;padding:0}
.league__row{display:grid;grid-template-columns:30px 56px minmax(0,1fr) auto;align-items:center;gap:12px;padding:9px 10px;border-radius:14px;border:2px solid transparent;transition:border-color .16s ease}
.league__row:nth-child(odd){background:var(--soft)}
.league__row:hover{border-color:var(--blue)}
.league__row:hover .medal{transform:translateY(-2px)}
.league__row .medal{transition:transform .16s ease}
.league__row.is-start{border-color:var(--blue);background:var(--pale)}
.league__n{font-weight:700;color:var(--mute);font-size:1.1rem;text-align:center}
.league__pack b{display:block;font-size:1.05rem}
.league__pack small{color:var(--mute);font-size:.88rem}
.league__cost{text-align:right}
.league__cost b{display:block;font-size:1.25rem;white-space:nowrap}
.league__promo{display:block;color:var(--green);font-size:.86rem;white-space:nowrap}
.league__line{display:flex;align-items:center;gap:10px;margin:8px 0;color:var(--green);font-weight:700;font-size:.85rem;text-transform:uppercase;letter-spacing:.06em}
.league__line::after{content:"";flex:1;border-top:2px dashed var(--green)}
.promo{margin:14px 0 0;padding:10px 14px;border-radius:12px;background:#FFF6D1;font-size:.95rem}
.promo b{background:var(--gold);border-radius:8px;padding:1px 8px;margin-right:4px}

/* ── Пьедестал ── */
.podium{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:end;margin:0 0 8px}
.podium__step{display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;background:var(--card);border:2px solid var(--line);border-bottom:0;border-radius:20px 20px 0 0;padding:18px 10px 16px}
.podium__step b{font-size:1.1rem}
.podium__step span{font-size:1.3rem;font-weight:700}
.podium__step small{color:var(--mute);font-size:.88rem}
.podium__step .podium__promo{color:var(--green)}
.podium__step--gold{min-height:250px;border-color:var(--gold)}
.podium__step--silver{min-height:215px}
.podium__step--bronze{min-height:190px}
.podium__base{height:14px;border-radius:0 0 14px 14px;background:var(--line)}

/* ── Раунды (секции) ── */
.round{padding:60px 0}
.round + .round{border-top:2px dashed var(--line)}
.round--card{background:var(--card)}
.round__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;align-items:start}
.round__intro{max-width:46em}
.tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:26px 0 0}
.tile{background:var(--card);border:2px solid var(--line);border-radius:var(--r-card);padding:22px;transition:border-color .16s ease}
.round--card .tile{background:var(--soft)}
.tile:hover{border-color:var(--blue)}
.tile .medal{margin:0 0 14px}
.tile h3{margin:0 0 8px}
.tile p:last-child{margin:0}
.score{display:flex;align-items:center;gap:16px;margin:0 0 18px}
.score b{font-size:3.2rem;line-height:1}
/* Не писать .score span: правило (0,1,1) перебивает цвет .stars__fg (0,1,0), и звёзды гаснут в серый */
.score .stars .stars__fg{color:#E0A800}
.checks{list-style:none;padding:0;margin:0 0 1em}
.checks li{position:relative;padding:0 0 10px 34px}
.checks li::before{content:"";position:absolute;left:0;top:3px;width:22px;height:22px;border-radius:7px;background:var(--gold);box-shadow:inset 0 -3px 0 rgba(0,0,0,.14)}
.note{font-size:.95rem;color:var(--mute)}

/* ── Таблицы ── */
.tbl{overflow-x:auto;margin:22px 0;border:2px solid var(--line);border-radius:18px;background:var(--card)}
.tbl table{width:100%;border-collapse:collapse;font-size:.98rem}
.tbl caption{text-align:left;padding:14px 16px 4px;font-weight:700;font-size:1.05rem}
.tbl th,.tbl td{padding:11px 16px;text-align:left;vertical-align:top;border-top:1px solid var(--line)}
.tbl thead th{color:var(--mute);font-size:.88rem;font-weight:700;border-top:0}
.tbl tbody th{font-weight:700}
.tbl__id{display:block;font-weight:400;color:var(--mute);font-size:.82rem}
.tbl tr.is-off{color:var(--mute)}
.state{display:inline-block;border-radius:8px;padding:1px 8px;font-size:.86rem;font-weight:700;white-space:nowrap}
.state--on{background:var(--greenbg);color:var(--green)}
.state--off{background:#FFF1C2;color:#6B4E00}

/* ── Отзывы ── */
.says{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:24px 0 0}
.say{margin:0;background:var(--card);border:2px solid var(--line);border-radius:var(--r-card);padding:20px;display:flex;flex-direction:column;gap:10px}
.say blockquote{margin:0}
.say blockquote p{margin:0}
.say figcaption{display:flex;flex-wrap:wrap;gap:2px 10px;font-size:.92rem;color:var(--mute);margin-top:auto}
.say figcaption b{color:var(--ink);width:100%}
.stars{position:relative;display:inline-flex;line-height:0;align-self:flex-start}
.stars__bg,.stars__fg{display:flex;gap:2px}
.stars__bg{color:#C9D1DD}
.stars__fg{position:absolute;top:0;left:0;bottom:0;overflow:hidden;white-space:nowrap;color:#E0A800}
.stars svg{width:var(--s,18px);height:var(--s,18px);flex:0 0 auto;fill:currentColor}
.crit{list-style:none;margin:0;padding:0}
.crit li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 14px;padding:14px 0;border-top:1px solid var(--line)}
.crit b{font-size:1.1rem}
.crit span.v{font-weight:700;font-size:1.3rem}
.crit p{grid-column:1 / -1;margin:0;color:var(--mute);font-size:.95rem}

/* ── Вопросы ── */
.qa{margin:22px 0 0;border-top:2px solid var(--line)}
.qa__item{border-bottom:2px solid var(--line)}
.qa__item h3{margin:0;font-size:1.1rem}
.qa__q{width:100%;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 0;background:none;border:0;font:700 1.1rem/1.35 var(--f);color:var(--ink);text-align:left;cursor:pointer}
.qa__q::after{content:"+";flex:0 0 auto;display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:var(--pale);color:var(--keydeep);font-size:1.3rem;transition:transform .18s ease}
.qa__item.is-expanded .qa__q::after{transform:rotate(45deg)}
.qa__a{display:grid;grid-template-rows:0fr;transition:grid-template-rows .22s ease}
.qa__a > div{overflow:hidden}
.qa__item.is-expanded .qa__a{grid-template-rows:1fr}
.qa__a p{margin:0 0 18px;color:#33363D}

/* ── Другие разделы ── */
.next{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:22px 0 0}
.next a{display:flex;flex-direction:column;gap:2px;padding:16px 18px;background:var(--card);border:2px solid var(--line);border-radius:16px;color:var(--ink);text-decoration:none;transition:border-color .16s ease}
.next a:hover{border-color:var(--blue);color:var(--ink)}
.next b{font-size:1.1rem}
.next span{color:var(--mute);font-size:.94rem}

/* ── Контакты ── */
.cards2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:22px 0 0}
.req{margin:0;display:grid;grid-template-columns:max-content minmax(0,1fr);gap:8px 18px}
.req dt{color:var(--mute)}
.req dd{margin:0;font-weight:700}

/* ── Подвал ── */
.base{background:var(--night);color:#DCE6F5;margin-top:0}
.base__in{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:40px;padding-top:48px;padding-bottom:30px}
.base .sign{color:#fff}
.base .sign__ru{color:var(--gold)}
.base__lead p{margin:14px 0 0;max-width:34em}
.base__key{margin-top:30px}
.base__nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 24px;align-content:start}
.base__nav a:not(.key){color:#fff;text-decoration:none;padding:6px 0}
.base__nav a:not(.key):hover{color:var(--gold)}
.base__fine{border-top:1px solid rgba(255,255,255,.14);padding-top:16px;padding-bottom:24px;font-size:.9rem;color:#B9C6DA}
.base__fine p{margin:0}

/* ── 404 ── */
.lost{padding:72px 0}

/* ════════ Адаптив: 1120 (бургер) / 900 / 720 / 560 (короткие подписи) / 420 / 350 ════════ */
@media (max-width:1120px){
  .rail{display:none}
  .top__key{margin-left:auto}
  .burger{display:block}
}
@media (max-width:900px){
  .stage__grid,.round__grid,.base__in{grid-template-columns:minmax(0,1fr)}
  .stage{padding:34px 0 44px}
  .tiles,.says,.next{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:720px){
  :root{--gut:16px}
  .round{padding:44px 0}
  .tiles,.says,.next,.cards2{grid-template-columns:minmax(0,1fr)}
  .facts{grid-template-columns:minmax(0,1fr)}
  .tbl{overflow-x:visible;border:0;background:none}
  .tbl caption{padding:0 0 8px}
  .tbl table,.tbl tbody,.tbl tr,.tbl th,.tbl td{display:block;width:100%}
  .tbl thead{display:none}
  .tbl tr{background:var(--card);border:2px solid var(--line);border-radius:16px;margin:0 0 12px;padding:6px 0}
  .tbl th,.tbl td{border-top:0;padding:6px 14px}
  .tbl td::before{content:attr(data-label);display:block;font-size:.8rem;color:var(--mute)}
  .podium{gap:8px}
  .podium__step{padding:14px 6px 12px}
  .podium__step span{font-size:1.05rem}
  .podium__step--gold{min-height:220px}.podium__step--silver{min-height:190px}.podium__step--bronze{min-height:170px}
  .req{grid-template-columns:minmax(0,1fr)}
  .req dd{margin-bottom:6px}
}
@media (max-width:560px){
  .key__full{display:none}
  .key__short{display:inline}
  .top__key{padding:0 16px}
  .league{padding:16px 12px 14px}
  .league__row{grid-template-columns:22px 50px minmax(0,1fr) auto;gap:8px;padding:8px 6px}
  .league__cost b{font-size:1.05rem}
  .medal{min-width:44px;height:44px;font-size:.85rem}
  .podium__step small{font-size:.78rem}
  .base__key .key__full{display:inline}.base__key .key__short{display:none}
}
@media (max-width:420px){
  .top__in{gap:10px;min-height:66px}
  .sign{font-size:1.2rem;gap:8px}
  .sign svg{width:32px;height:32px}
  .burger{margin-left:6px;width:44px;height:44px}
  .burger i{left:10px;top:20px}
  .league__pack small{display:none}
  .score b{font-size:2.6rem}
}
@media (max-width:350px){
  .sign__tx{display:none}
  .league__row{grid-template-columns:44px minmax(0,1fr) auto}
  .league__n{display:none}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition:none!important;animation:none!important}
}
