/* Blue Swan Games — палитра выведена из админки проекта:
   зелёный «в продаже», оранжевый «предзаказ», синий как акцент действий */
:root{
  --bg:#0a0d14; --surface:#111725; --surface-2:#161d2d; --surface-3:#1c2536;
  --border:#232d42; --border-str:#2e3a52;
  --text:#e7ecf6; --text-2:#a4b0c6; --muted:#6f7d96;
  --accent:#3574f0; --accent-h:#4b85f7; --accent-dim:#16305e;
  --ok:#3ecf7a; --ok-dim:#12351f; --warn:#e8a33d; --warn-dim:#3a2a10;
  --r:10px; --r-lg:14px;
  --f:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  --mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,monospace;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--f);
  font-size:14px;line-height:1.5;font-feature-settings:"tnum" 1,"cv05" 1;}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
button{font:inherit;color:inherit;cursor:pointer}
.wrap{max-width:1440px;margin:0 auto;padding:0 20px}

/* ── шапка ─────────────────────────────────────────── */
.topbar{position:sticky;top:0;z-index:50;background:rgba(10,13,20,.92);
  backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}
.topbar__in{display:flex;align-items:center;gap:28px;height:60px}
.logo{display:flex;align-items:center;gap:10px;font-weight:700;letter-spacing:-.02em;font-size:16px}
.logo svg{flex:none}
.logo b{color:var(--accent)}
.nav{display:flex;gap:2px;margin-left:8px}
.nav a{padding:7px 12px;border-radius:8px;color:var(--text-2);font-weight:500}
.nav a:hover{background:var(--surface-2);color:var(--text)}
.nav a[aria-current]{background:var(--surface-3);color:var(--text)}
.topbar__end{margin-left:auto;display:flex;align-items:center;gap:10px}

/* ── кнопки ────────────────────────────────────────── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:9px 15px;border-radius:9px;border:1px solid var(--border-str);
  background:var(--surface-2);font-weight:600;font-size:13px;transition:.14s}
.btn:hover{background:var(--surface-3);border-color:#3a4763}
.btn--pri{background:var(--accent);border-color:var(--accent);color:#fff}
.btn--pri:hover{background:var(--accent-h);border-color:var(--accent-h)}
.btn--sm{padding:6px 11px;font-size:12px;border-radius:8px}
.btn--block{width:100%}

/* ── раскладка каталога ────────────────────────────── */
.layout{display:grid;grid-template-columns:248px minmax(0,1fr);gap:22px;
  align-items:start;padding:22px 20px 60px}
.side{position:sticky;top:82px;background:var(--surface);border:1px solid var(--border);
  border-radius:var(--r-lg);padding:16px}
.side>summary{list-style:none;cursor:pointer;margin:0 0 14px;font-size:13px;letter-spacing:.04em;
  text-transform:uppercase;color:var(--muted);display:flex;align-items:center;justify-content:space-between}
.side>summary::-webkit-details-marker{display:none}
.side>summary::after{content:"";width:8px;height:8px;border-right:2px solid currentColor;
  border-bottom:2px solid currentColor;transform:rotate(45deg);transition:transform .18s;margin-right:3px}
.side[open]>summary::after{transform:rotate(-135deg)}
.fgroup{margin-bottom:18px}
.fgroup:last-child{margin-bottom:0}
.fgroup__t{font-size:12px;color:var(--text-2);margin-bottom:7px;font-weight:600}
.seg{display:flex;background:var(--bg);border:1px solid var(--border);border-radius:9px;padding:3px;gap:3px}
.seg button{flex:1;padding:7px 3px;border:0;background:transparent;border-radius:6px;
  color:var(--text-2);font-size:11.5px;font-weight:600;transition:.14s;
  white-space:nowrap;letter-spacing:-.01em}
.seg button:hover{color:var(--text)}
.seg button[aria-pressed="true"]{background:var(--accent);color:#fff}
.side__note{margin-top:16px;padding-top:14px;border-top:1px solid var(--border);
  font-size:11.5px;color:var(--muted);line-height:1.55}
.side__note a{color:var(--accent)}

/* ── панель поиска ─────────────────────────────────── */
.toolbar{display:flex;gap:12px;align-items:center;margin-bottom:16px;flex-wrap:wrap}
.search{position:relative;flex:1;min-width:220px}
.search input{width:100%;padding:11px 13px 11px 38px;background:var(--surface);
  border:1px solid var(--border);border-radius:10px;color:var(--text);font-size:14px;outline:0}
.search input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}
.search svg{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:var(--muted)}
select{padding:11px 13px;background:var(--surface);border:1px solid var(--border);
  border-radius:10px;color:var(--text);outline:0;cursor:pointer}
select:focus{border-color:var(--accent)}
.count{color:var(--muted);font-size:13px;white-space:nowrap}
.count b{color:var(--text-2)}

/* ── сетка карточек ────────────────────────────────── */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(268px,1fr));gap:16px}
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);
  overflow:hidden;display:flex;flex-direction:column;transition:border-color .16s,transform .16s}
.card:hover{border-color:var(--border-str);transform:translateY(-2px)}
.card__media{position:relative;aspect-ratio:616/353;background:var(--surface-3);overflow:hidden}
.card__media img{width:100%;height:100%;object-fit:cover}
/* заглушка для игр без официального арта */
.ph{position:absolute;inset:0;overflow:hidden;
  background:
    repeating-linear-gradient(115deg,rgba(255,255,255,.03) 0 1px,transparent 1px 13px),
    linear-gradient(150deg,hsl(var(--h) 40% 24%) 0%,hsl(var(--h) 46% 12%) 55%,#0d1220 100%)}
.ph svg{display:none}
.ph::after{content:"";position:absolute;inset:0;
  background:radial-gradient(120% 90% at 78% 15%,rgba(255,255,255,.10),transparent 60%)}
.card__tags{position:absolute;top:9px;left:9px;display:flex;gap:5px;flex-wrap:wrap}
.tag{padding:3px 7px;border-radius:6px;font-size:10.5px;font-weight:700;letter-spacing:.02em;
  background:rgba(8,11,18,.78);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.09)}
.tag--pre{background:var(--warn);color:#2a1c05;border-color:transparent}
.tag--ps{color:#9db8ea}
.card__body{padding:12px 13px 13px;display:flex;flex-direction:column;gap:10px;flex:1}
.card__title{font-size:14.5px;font-weight:650;line-height:1.3;letter-spacing:-.01em;
  min-height:2.6em;display:flex;align-items:flex-start}
.chips{display:flex;gap:5px;flex-wrap:wrap}
.chip{padding:5px 9px;border-radius:7px;border:1px solid var(--border);background:var(--bg);
  font-size:11.5px;font-weight:600;color:var(--text-2);transition:.14s}
.chip:hover{border-color:var(--border-str);color:var(--text)}
.chip[aria-pressed="true"]{background:var(--surface-3);border-color:#41527a;color:#fff}
.card__meta{display:flex;justify-content:space-between;align-items:center;
  font-size:11.5px;color:var(--muted);gap:8px}
.code{font-family:var(--mono);font-size:11px;color:#7f92b5;background:var(--bg);
  padding:2px 6px;border-radius:5px;border:1px solid var(--border)}
.prices{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:auto}
.price{background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:9px 10px 10px}
.price__k{font-size:10.5px;font-weight:700;color:var(--muted);letter-spacing:.04em}
.price__v{font-size:16px;font-weight:700;letter-spacing:-.02em;margin:1px 0 7px}
.stock{font-size:10.5px;font-weight:600;margin-bottom:8px;display:block}
.stock--y{color:var(--ok)}
.stock--n{color:var(--muted)}
.price .btn{width:100%;padding:6px;font-size:11.5px}
.price--out{opacity:.5}
.empty{grid-column:1/-1;text-align:center;padding:70px 20px;color:var(--muted)}

/* ── правовые страницы ─────────────────────────────── */
.doc{max-width:860px;margin:0 auto;padding:36px 20px 80px;width:100%}
.doc h1{font-size:27px;letter-spacing:-.02em;margin:0 0 6px}
.doc__date{color:var(--muted);font-size:13px;margin-bottom:26px;
  padding-bottom:20px;border-bottom:1px solid var(--border)}
.doc h2{font-size:17px;margin:32px 0 10px;letter-spacing:-.01em}
.doc h3{font-size:14.5px;margin:22px 0 8px;color:var(--text-2)}
.doc p,.doc li{color:var(--text-2);line-height:1.72}
.doc ul{padding-left:20px}
.doc li{margin-bottom:5px}
.doc strong{color:var(--text)}
.lead{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--accent);
  border-radius:var(--r);padding:15px 17px;margin-bottom:26px}
.lead p{margin:0;color:var(--text-2)}
.todo{background:var(--warn-dim);border:1px solid #5c4415;border-radius:var(--r);
  padding:13px 15px;margin:20px 0;font-size:13px;color:#f0c583}
.todo b{color:#ffd89b}

/* таблица тарифов */
.tbl{width:100%;border-collapse:collapse;margin:18px 0;font-size:13.5px;
  border:1px solid var(--border);border-radius:var(--r);overflow:hidden}
.tbl th{background:var(--surface-2);text-align:left;padding:11px 13px;
  font-size:12px;color:var(--text-2);font-weight:650;border-bottom:1px solid var(--border)}
.tbl td{padding:11px 13px;border-bottom:1px solid var(--border);color:var(--text-2);vertical-align:top}
.tbl tr:last-child td{border-bottom:0}
.tbl td:first-child{color:var(--text);font-weight:600;white-space:nowrap}
.scroll-x{overflow-x:auto}
/* на узких экранах широкие таблицы разворачиваются в карточки */
@media(max-width:640px){
  .tbl--stack,.tbl--stack tbody,.tbl--stack tr{display:block;width:100%}
  .tbl--stack td{display:block}
  .tbl--stack tr:first-child{display:none}                 /* строка заголовков */
  .tbl--stack{border:0}
  .tbl--stack tr{background:var(--surface);border:1px solid var(--border);
    border-radius:var(--r);margin-bottom:10px;padding:4px 0}
  .tbl--stack td{border:0;padding:8px 13px;display:flex;gap:14px;
    justify-content:space-between;align-items:baseline}
  .tbl--stack td::before{content:attr(data-label);color:var(--muted);font-size:11.5px;
    font-weight:650;text-transform:uppercase;letter-spacing:.03em;flex:none;padding-top:2px}
  .tbl--stack td:first-child{background:var(--surface-2);border-radius:8px;margin:0 6px 4px;
    padding:9px 8px;font-size:14px}
  .tbl--stack td:first-child::before{display:none}
  .tbl--stack td:not(:first-child){text-align:right}
  .scroll-x:has(.tbl--stack){overflow-x:visible}
}

/* карточки контактов */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;margin:22px 0}
.ctc{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:17px}
.ctc__k{font-size:11.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:7px}
.ctc__v{font-size:14.5px;font-weight:650;overflow-wrap:anywhere;word-break:normal;line-height:1.4}
.ctc__v a{color:var(--accent)}
.ctc__d{font-size:12.5px;color:var(--muted);margin-top:7px;line-height:1.5}

/* ── подвал ────────────────────────────────────────── */
.foot{border-top:1px solid var(--border);background:var(--surface);padding:30px 0;margin-top:auto}
.foot__in{display:flex;gap:30px;flex-wrap:wrap;justify-content:space-between}
.foot__c{font-size:12.5px;color:var(--muted);line-height:1.85;max-width:420px}
.foot__c a{color:var(--text-2)}
.foot__c a:hover{color:var(--accent)}
.foot__nav{display:flex;flex-direction:column;gap:6px;font-size:12.5px}
.foot__nav a{color:var(--text-2)}
.foot__nav a:hover{color:var(--accent)}
.foot__t{font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:3px}

@media(max-width:900px){
  .layout{grid-template-columns:1fr;padding:16px 16px 48px}
  .side{position:static}
  .topbar__in{flex-wrap:wrap;height:auto;padding:10px 0;gap:10px 14px}
  .logo{font-size:15px}
  .topbar__end{margin-left:auto}
  .nav{order:3;width:100%;margin:0;overflow-x:auto;scrollbar-width:none;
    padding-bottom:2px;-webkit-overflow-scrolling:touch}
  .nav::-webkit-scrollbar{display:none}
  .nav a{white-space:nowrap;padding:7px 10px;font-size:13px}
  .toolbar{gap:8px}
  .search{min-width:100%}
  .doc{padding:24px 16px 60px}
  .doc h1{font-size:23px}
}
@media(max-width:420px){
  .grid{grid-template-columns:1fr}
  .prices{grid-template-columns:1fr 1fr}
  .card__title{min-height:0}
}

/* ── оформление заказа и оплата ─────────────────────── */
.co{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:24px;
  align-items:start;padding:28px 0 70px;max-width:1040px;margin:0 auto}
.co h1{font-size:25px;letter-spacing:-.02em;margin:0 0 4px}
.co__sub{color:var(--muted);font-size:13.5px;margin:0 0 22px}
.steps{display:flex;gap:8px;align-items:center;margin-bottom:22px;font-size:12.5px;flex-wrap:wrap}
.step{display:flex;align-items:center;gap:7px;color:var(--muted)}
.step b{width:20px;height:20px;border-radius:50%;background:var(--surface-3);
  display:grid;place-items:center;font-size:11px;font-weight:700;color:var(--text-2)}
.step--now{color:var(--text)}
.step--now b{background:var(--accent);color:#fff}
.step--done b{background:var(--ok-dim);color:var(--ok)}
.step__sep{color:var(--border-str)}

.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:20px}
.panel + .panel{margin-top:16px}
.panel h2{font-size:15.5px;margin:0 0 14px;letter-spacing:-.01em}

.field{margin-bottom:16px}
.field:last-child{margin-bottom:0}
.field label{display:block;font-size:13px;font-weight:600;margin-bottom:6px}
.field .req{color:var(--warn)}
.field input[type=email],.field input[type=text],.field textarea{
  width:100%;padding:11px 13px;background:var(--bg);border:1px solid var(--border);
  border-radius:10px;color:var(--text);font:inherit;outline:0}
.field input:focus,.field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}
.field textarea{resize:vertical;min-height:72px}
.field__hint{font-size:11.5px;color:var(--muted);margin-top:5px;line-height:1.5}
.field--bad input,.field--bad textarea{border-color:#e05a5a}
.field__err{display:none;font-size:12px;color:#ff8a8a;margin-top:5px}
.field--bad .field__err{display:block}

.check{display:flex;gap:10px;align-items:flex-start;font-size:13px;color:var(--text-2);line-height:1.55}
.check input{margin-top:2px;width:16px;height:16px;flex:none;accent-color:var(--accent)}
.check a{color:var(--accent)}

.errbox{display:none;background:#3a1717;border:1px solid #6b2626;border-radius:var(--r);
  padding:14px 16px;margin-bottom:18px;outline:0}
.errbox[data-show]{display:block}
.errbox h2{font-size:14.5px;margin:0 0 8px;color:#ffb4b4}
.errbox ul{margin:0;padding-left:18px}
.errbox li{margin-bottom:3px}
.errbox a{color:#ffb4b4}

/* правая колонка — состав заказа */
.sum{position:sticky;top:82px;background:var(--surface);border:1px solid var(--border);
  border-radius:var(--r-lg);overflow:hidden}
.sum__media{aspect-ratio:616/353;background:var(--surface-3);position:relative}
.sum__media img{width:100%;height:100%;object-fit:cover}
.sum__in{padding:16px}
.sum__t{font-size:15px;font-weight:650;line-height:1.3;margin-bottom:12px}
.sum__rows{display:flex;flex-direction:column;gap:8px;font-size:13px;
  padding-bottom:14px;border-bottom:1px solid var(--border)}
.sum__row{display:flex;justify-content:space-between;gap:12px}
.sum__row span:first-child{color:var(--muted)}
.sum__row span:last-child{text-align:right;font-weight:600}
.sum__total{display:flex;justify-content:space-between;align-items:baseline;padding-top:14px}
.sum__total span{color:var(--text-2);font-size:13px}
.sum__total b{font-size:23px;letter-spacing:-.02em}
.sum__note{font-size:11.5px;color:var(--muted);margin-top:12px;line-height:1.5}

.actions{margin-top:18px;display:flex;flex-direction:column;gap:10px}
.actions .btn{padding:13px;font-size:14px}
.back{font-size:13px;color:var(--muted);text-align:center}
.back a{color:var(--text-2)}
.back a:hover{color:var(--accent)}

/* заглушка оплаты */
.pay{max-width:620px;margin:0 auto;padding:36px 0 80px;text-align:center}
.pay__icon{width:58px;height:58px;border-radius:50%;background:var(--warn-dim);
  border:1px solid #5c4415;display:grid;place-items:center;margin:0 auto 18px;font-size:26px}
.pay h1{font-size:23px;margin:0 0 10px;letter-spacing:-.02em}
.pay__lead{color:var(--text-2);line-height:1.65;margin:0 auto 24px;max-width:470px}
.order{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);
  padding:18px;text-align:left;margin-bottom:20px}
.order__no{font-family:var(--mono);font-size:13px;color:var(--accent);
  background:var(--accent-dim);padding:4px 9px;border-radius:6px;display:inline-block;margin-bottom:12px}
.methods{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin:18px 0}
.method{padding:7px 13px;border:1px solid var(--border);border-radius:8px;
  background:var(--surface);font-size:12.5px;color:var(--text-2)}
.pay__next{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);
  padding:18px;text-align:left;font-size:13.5px;color:var(--text-2);line-height:1.65}
.pay__next b{color:var(--text)}
.pay__next a{color:var(--accent)}

@media(max-width:860px){
  .co{grid-template-columns:1fr;padding-top:20px}
  .sum{position:static;order:-1}
}

/* выжимка условий и строка акцепта на странице заказа */
.terms-brief{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:9px}
.terms-brief li{color:var(--text-2);font-size:13.5px;line-height:1.6}
.terms-full{margin:14px 0 0;font-size:13px;color:var(--muted)}
.terms-full a{color:var(--accent)}
.accept-line{font-size:12px;color:var(--muted);line-height:1.6;margin:2px 0 0;text-align:center}
.accept-line a{color:var(--text-2);text-decoration:underline;text-underline-offset:2px}
.accept-line a:hover{color:var(--accent)}
