@font-face {
    font-family:ShopTitle;
    src:url('/img/shop/fonts/shop-title-v2.woff2') format('woff2');
    font-weight:400;
    font-style:normal;
    font-display:swap;
}
:root {
    color-scheme:dark;
    --bg:#0c111b;
    --panel:#151e2d;
    --line:#2a3649;
    --muted:#a3b0c3;
    --text:#edf2fa;
    --blue:#87b8ff;
    --gold:#eacb85;
}
* {
    box-sizing:border-box;
}
body {
    margin:0;
    background:var(--bg);
    color:var(--text);
    font:16px/1.55 Arial,Helvetica,sans-serif;
}
a {
    color:var(--blue);
    text-underline-offset:4px;
}
button,input {
    font:inherit;
}
button,a,input,summary {
    -webkit-tap-highlight-color:transparent;
}
button,summary {
    cursor:pointer;
}
button,input,a,summary {
    touch-action:manipulation;
}
:focus-visible {
    outline:3px solid #acd0ff;
    outline-offset:4px;
}
button:disabled {
    opacity:.5;
    cursor:not-allowed;
}
.wrap {
    max-width:1220px;
    margin:auto;
    padding:0 32px;
}
h1,h2,p {
    margin:0;
}
h1 {
    font-size:clamp(30px,3.3vw,44px);
    line-height:1.15;
    letter-spacing:-1.3px;
    margin:12px 0 18px;
}
h1 span {
    color:#aabbd3;
}
h2 {
    font-size:23px;
    line-height:1.3;
    letter-spacing:-.4px;
}
small,.sub,.micro {
    font-size:13px;
}
.hint,.micro,.sub {
    color:var(--muted);
}
.hint {
    font-size:14px;
    margin-top:7px;
}
.micro {
    margin-top:12px;
    line-height:1.6;
}
.eyebrow {
    font-size:11px;
    font-weight:bold;
    letter-spacing:2px;
    color:var(--gold);
}
.shop-header {
    display:block;
    height:120px;
    min-height:120px;
    border-bottom:1px solid var(--line);
}
.shop-navigation {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    height:28px;
}
.shop-banner {
    display:flex;
    align-items:center;
    height:92px;
    padding:0 28px;
    background:linear-gradient(90deg,#07111dd9,transparent 85%), var(--bg) url('/img/shop/header-rings-v5.webp') center / cover no-repeat;
    border-radius:5px;
}
.brand {
    margin:0;
    color:#f4e6c8;
    font-family:ShopTitle, sans-serif;
    font-size:30px;
    font-weight:400;
    line-height:1.2;
    letter-spacing:1px;
    text-shadow:0 2px 8px #000;
}
.brand-shop {
    color:#e6be78;
    font-size:20px;
    white-space:nowrap;
}
.back {
    color:var(--text);
    font-size:14px;
    text-decoration:none;
    white-space:nowrap;
}
.back:hover {
    color:white;
}
.top {
    display:grid;
    grid-template-columns:1fr 1.2fr 1fr;
    gap:24px;
    border:1px solid var(--line);
    border-radius:12px;
    background:#121a27;
    padding:16px 20px;
    margin-bottom:28px;
}
.top>div+div {
    border-left:1px solid var(--line);
    padding-left:18px;
}
.top strong {
    overflow-wrap:anywhere;
    display:block;
    font-size:16px;
}
.top small {
    color:var(--muted);
    font-weight:normal;
    margin-left:5px;
}
.lbl {
    display:block;
    color:var(--muted);
    font-size:12px;
    margin-bottom:4px;
}
.gold-text {
    color:var(--gold);
}
.shop-layout {
    display:grid;
    grid-template-columns:minmax(0,1fr) 336px;
    gap:28px;
    align-items:start;
    margin-top:24px;
}
.catalog {
    min-width:0;
}
.section-heading {
    display:flex;
    gap:14px;
    align-items:flex-start;
    margin-bottom:20px;
}
.section-icon {
    width:50px;
    height:50px;
    object-fit:contain;
    flex-shrink:0;
}
.benefits {
    font-size:14px;
    color:var(--muted);
    margin:-4px 0 22px;
}
.benefits summary {
    color:var(--blue);
    min-height:32px;
}
.benefits p {
    margin:8px 0;
}
.cards {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
    border:0;
    margin:0;
    padding:0;
}
.product-card {
    position:relative;
    cursor:pointer;
    min-width:0;
}
.product-card>input {
    position:absolute;
    opacity:0;
    width:1px;
    height:1px;
}
.card-surface {
    display:flex;
    flex-direction:column;
    gap:7px;
    background:var(--panel);
    border:1px solid var(--line);
    border-radius:12px;
    padding:20px;
    transition:border-color .15s,background .15s;
}
.product-card:hover .card-surface {
    border-color:#607496;
}
.product-card>input:checked+.card-surface {
    border-color:var(--blue);
    background:#1b2b43;
    box-shadow:inset 0 0 0 1px var(--blue);
}
.product-card>input:focus-visible+.card-surface {
    outline:3px solid #acd0ff;
    outline-offset:4px;
}
.card-top {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
}
.ttl {
    font-size:24px;
    font-weight:bold;
}
.ttl small {
    font-size:15px;
    font-weight:normal;
    color:#bcc8d9;
}
.selection-mark {
    display:grid;
    place-items:center;
    width:22px;
    height:22px;
    border:1px solid #526078;
    border-radius:50%;
    color:transparent;
    font-size:13px;
}
.product-card>input:checked+.card-surface .selection-mark {
    background:var(--blue);
    border-color:var(--blue);
    color:#0c192d;
}
.price {
    font-size:28px;
    font-weight:bold;
    letter-spacing:-.7px;
}
.saving {
    font-size:12px;
    color:var(--gold);
    min-height:19px;
}
.pick-label {
    border-top:1px solid var(--line);
    padding-top:11px;
    margin-top:6px;
    font-size:13px;
    color:var(--muted);
}
.picked-label {
    display:none;
}
.product-card>input:checked+.card-surface .pick-label {
    color:var(--blue);
}
.product-card>input:checked+.card-surface .picked-label {
    display:inline;
}
.gold-section {
    margin-top:38px;
}
.gold-panel,.checkout,.box {
    background:var(--panel);
    border:1px solid var(--line);
    border-radius:12px;
    padding:24px;
}
.gold-choice {
    display:flex;
    align-items:center;
    gap:10px;
    min-height:32px;
    cursor:pointer;
}
.gold-choice input,.payment-option input {
    accent-color:var(--blue);
    width:18px;
    height:18px;
    flex-shrink:0;
}
.qty-presets {
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin:18px 0;
}
.q {
    min-width:52px;
    min-height:44px;
    border:1px solid #41516a;
    border-radius:7px;
    background:#1b273a;
    color:var(--text);
    padding:8px 14px;
}
.q[aria-pressed=true] {
    background:#2a4163;
    border-color:var(--blue);
    color:var(--blue);
}
.q:hover {
    border-color:var(--blue);
}
.gold-custom {
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:16px;
}
.gold-custom label,.email-field label {
    display:block;
    font-size:13px;
    color:#c5d0e0;
    margin-bottom:8px;
}
input[type=email],input[type=number],#mail {
    border:1px solid #45546e;
    border-radius:7px;
    background:#0d1522;
    color:var(--text);
    min-height:46px;
    padding:10px 12px;
    width:100%;
    min-width:0;
}
input[type=number] {
    max-width:160px;
}
input[aria-invalid=true] {
    border-color:#ed9898;
}
.gold-cost {
    text-align:right;
}
.gold-cost strong {
    display:block;
    font-size:25px;
}
.checkout {
    position:sticky;
    top:24px;
}
.checkout h2 {
    margin:8px 0 18px;
}
.summary-product {
    border-top:1px solid var(--line);
    padding:18px 0;
}
.summary-product strong {
    font-size:17px;
}
.payment-methods {
    padding:0;
    border:0;
    margin:0 0 20px;
    min-width:0;
}
.payment-methods legend {
    font-size:13px;
    color:#c5d0e0;
    margin-bottom:10px;
}
.payment-option {
    display:flex;
    align-items:center;
    gap:10px;
    padding:12px;
    border:1px solid #3b4960;
    border-radius:8px;
    margin-bottom:8px;
    cursor:pointer;
}
.payment-option:has(input:checked) {
    border-color:var(--blue);
    background:#20314c;
}
.payment-option strong {
    display:block;
    font-size:14px;
}
.payment-option small {
    display:block;
    font-size:11px;
    color:var(--muted);
    margin-top:2px;
}
.currency-mark {
    margin-left:auto;
    font-size:20px;
    color:#bbcae0;
}
.payment-option:has(input:disabled) {
    opacity:.5;
}
.email-field .micro {
    margin-top:8px;
    font-size:12px;
}
.summary-total {
    display:flex;
    justify-content:space-between;
    align-items:center;
    border-top:1px solid var(--line);
    padding:18px 0;
    margin-top:20px;
}
.summary-total strong {
    font-size:27px;
}
.pay-button {
    width:100%;
    min-height:50px;
    background:var(--blue);
    border:0;
    border-radius:8px;
    color:#10213b;
    font-weight:bold;
    padding:12px 14px;
}
.pay-button:hover:enabled {
    background:#a5cbff;
}
.checkout-note {
    text-align:center;
    font-size:12px;
}
.field-error {
    font-size:13px;
    color:#ffb3b3;
    margin-top:8px;
}
.field-error:empty {
    display:none;
}
.alert {
    border:1px solid #526384;
    border-radius:10px;
    background:#1c2b42;
    margin-top:20px;
    padding:18px;
    font-size:14px;
}
.alert p {
    margin-top:7px;
}
.alert.bad {
    border-color:#754044;
    background:#321d26;
    color:#ffd0d0;
}
.alert.good {
    border-color:#356851;
    background:#162e26;
    color:#bcebd2;
}
.alert.wait {
    color:#bed8ff;
}
.order-action {
    display:inline-block;
    margin-top:10px;
}
.history {
    margin-top:46px;
}
.order-row {
    display:grid;
    grid-template-columns:145px minmax(0,1fr) 105px 165px;
    align-items:center;
    gap:16px;
    padding:17px 18px;
    border-top:1px solid var(--line);
    font-size:14px;
}
.order-row small {
    display:block;
    color:var(--muted);
    font-size:12px;
    margin-top:4px;
}
.order-ref {
    text-decoration:none;
}
.status {
    font-size:12px;
    justify-self:end;
    display:inline-block;
    padding:5px 10px;
    border-radius:6px;
    background:#26334a;
    color:#c9d8ed;
}
.st-delivered {
    background:#1b362e;
    color:#a7ddc1;
}
.st-failed,.st-refunded {
    background:#38242d;
    color:#f1b5bb;
}
.st-paid {
    background:#3b3322;
    color:#ead295;
}
.older-orders summary {
    min-height:48px;
    padding:12px 18px;
    color:var(--blue);
    font-size:14px;
    border-top:1px solid var(--line);
}
.shop-footer {
    border-top:1px solid var(--line);
    margin-top:44px;
    padding:24px 0 32px;
    display:flex;
    justify-content:space-between;
    gap:16px;
    font-size:12px;
    color:var(--muted);
}
.shop-footer a {
    color:var(--muted);
}
.sr-only {
    position:absolute;
    width:1px;
    height:1px;
    padding:0;
    margin:-1px;
    overflow:hidden;
    clip:rect(0,0,0,0);
    white-space:nowrap;
    border:0;
}
.js-only {
    display:none;
}
.has-js .js-only {
    display:flex;
}
.has-js .summary-product {
    display:block;
}
@media(min-width:1200px) {
    .cards {
        grid-template-columns:repeat(4,minmax(0,1fr));
    }
    .card-surface {
        padding:17px 13px;
    }
    .price {
        font-size:25px;
    }
    .ttl {
        font-size:23px;
    }
    .card-surface .sub {
        font-size:11px;
    }
}
@media(max-width:960px) {
    .shop-layout {
        grid-template-columns:minmax(0,1fr) 310px;
        gap:20px;
    }
    .wrap {
        padding:0 24px;
    }
    .top {
        grid-template-columns:1fr 1fr;
        padding:18px;
        gap:16px;
    }
    .top>div+div {
        padding-left:0;
        border:0;
    }
    .top>div:first-child {
        grid-column:1/-1;
    }
}
@media(max-width:760px) {
    .shop-layout {
        grid-template-columns:1fr;
        margin-top:28px;
    }
    .checkout {
        position:static;
    }
    .wrap {
        padding:0 18px;
    }
    .shop-header {
        height:96px;
        min-height:96px;
    }
    .shop-banner {
        height:68px;
        padding:0 16px;
        background-position:right center;
    }
    .brand {
        font-size:23px;
        letter-spacing:1px;
    }
    .brand-shop {
        display:block;
        margin-top:4px;
        font-size:13px;
        letter-spacing:3px;
    }
    .brand-unlimited {
        font-size:18px;
    }
    .back {
        font-size:12px;
    }
    h1 {
        letter-spacing:-.8px;
    }
    .top {
        grid-template-columns:1fr 1fr;
        gap:16px;
    }
    .top>div+div {
        border:0;
        padding:0;
    }
    .top>div:first-child {
        grid-column:1/-1;
        border-bottom:1px solid var(--line);
        padding-bottom:12px;
    }
    .top strong {
        font-size:14px;
    }
    .top small {
        display:block;
        margin:0;
    }
    .order-row {
        grid-template-columns:1fr auto;
        gap:10px;
        padding:16px 0;
    }
    .order-title {
        grid-row:2;
        grid-column:1;
    }
    .order-row>strong {
        grid-column:2;
        grid-row:1;
    }
    .status {
        grid-column:2;
        grid-row:2;
        max-width:140px;
        text-align:center;
    }
    .shop-footer {
        font-size:11px;
    }
    .gold-section {
        margin-top:30px;
    }
}
@media(max-width:380px) {
    .card-surface {
        padding:16px 12px;
    }
    .price {
        font-size:25px;
    }
    .gold-panel,.checkout {
        padding:18px;
    }
    .q {
        min-width:44px;
        padding:8px 11px;
    }
    .gold-custom {
        align-items:flex-start;
        flex-direction:column;
    }
    .gold-cost {
        text-align:left;
    }
    .brand {
        font-size:21px;
    }
    .brand-unlimited {
        font-size:15px;
    }
    .back {
        max-width:95px;
        text-align:right;
    }
}
@media(prefers-reduced-motion:reduce) {
    * {
        transition:none!important;
        scroll-behavior:auto!important;
    }
}
.card-surface {
    height:100%;
}
.pick-label {
    margin-top:auto;
}
.has-js .mobile-checkout-bar {
    display:none;
}
@media(max-width:760px) {
    .has-js .mobile-checkout-bar {
        position:fixed;
        bottom:0;
        left:0;
        right:0;
        z-index:10;
        display:flex;
        justify-content:space-between;
        align-items:center;
        gap:16px;
        padding:12px 20px max(12px,env(safe-area-inset-bottom));
        background:#151e2df5;
        border-top:1px solid #41516a;
        box-shadow:0 -8px 24px #0004;
    }
    .mobile-checkout-bar small {
        display:block;
        color:var(--muted);
        font-size:11px;
    }
    .mobile-checkout-bar strong {
        font-size:20px;
    }
    .mobile-checkout-bar a {
        padding:10px 14px;
        border-radius:7px;
        background:var(--blue);
        color:#10213b;
        font-weight:bold;
        font-size:13px;
        text-decoration:none;
        min-height:44px;
    }
    .has-js body {
        padding-bottom:90px;
    }
    .has-js .mobile-checkout-bar.is-hidden {
        display:none;
    }
}
/* Артефакты и валентинки */
.art-section {
    margin-top:38px;
}
.art-cards {
    grid-template-columns:repeat(3,minmax(0,1fr));
}
.art-card .card-surface {
    padding:16px;
    gap:6px;
}
.art-top {
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
}
.art-img {
    width:80px;
    height:80px;
    object-fit:contain;
    filter:drop-shadow(0 4px 10px rgba(0,0,0,.45));
}
.art-title {
    font-size:15px;
    font-weight:bold;
    line-height:1.3;
}
.art-bonus {
    font-size:13px;
    line-height:1.35;
    color:var(--gold);
}
.art-price {
    font-size:20px;
    font-weight:bold;
    margin-top:2px;
}
.art-price small {
    font-size:12px;
    font-weight:normal;
    color:var(--muted);
}
.art-filter {
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin:-6px 0 16px;
}
.has-js .art-fields {
    display:none;
}
.has-js .art-fields.is-on {
    display:block;
}
.art-fields {
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
    padding:6px 0 4px;
    margin:12px 0 16px;
}
.art-fields select,.art-fields input[type=text] {
    width:100%;
    min-height:40px;
    padding:8px 10px;
    border-radius:8px;
    border:1px solid #47566d;
    background:#0f1725;
    color:var(--text);
    font-size:14px;
}
.art-fields input[type=text]:disabled {
    opacity:.45;
}
.art-terms {
    border:0;
    margin:12px 0;
    padding:0;
    display:flex;
    gap:18px;
    flex-wrap:wrap;
}
.art-terms legend {
    font-size:13px;
    color:var(--muted);
    margin-bottom:6px;
    padding:0;
}
.art-terms label,.gift-toggle {
    display:flex;
    align-items:center;
    gap:8px;
    cursor:pointer;
    min-height:32px;
}
.art-terms input,.gift-toggle input {
    accent-color:var(--blue);
    width:18px;
    height:18px;
}
.art-qty-presets {
    margin-bottom:8px;
}
.art-gift .micro {
    margin-top:6px;
}
@media(max-width:960px) {
    .art-cards {
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}
@media(max-width:380px) {
    .art-cards {
        grid-template-columns:minmax(0,1fr);
    }
}
/* Колонка оформления не выше окна: прокручивается сама (колесом над ней), кнопка оплаты всегда видна внизу */
@media(min-width:761px) {
    .checkout {
        max-height:calc(100vh - 48px);
        overflow-y:auto;
        overscroll-behavior:contain;
        scrollbar-width:thin;
    }
    .checkout .pay-button {
        position:sticky;
        bottom:0;
        z-index:1;
        box-shadow:0 -14px 14px -4px var(--panel), 0 4px 0 6px var(--panel);
    }
}
/* Вход в магазин (страница без игровой сессии) */
.shop-login {
    display:flex;
    justify-content:center;
    margin-top:32px;
}
.login-box {
    width:100%;
    max-width:420px;
    display:flex;
    flex-direction:column;
    gap:8px;
}
.login-box h2 {
    margin:0 0 4px;
}
.login-box label {
    font-size:13px;
    color:var(--muted);
    margin-top:8px;
}
.login-box input[type=text],.login-box input[type=password] {
    border:1px solid #45546e;
    border-radius:7px;
    background:#0d1522;
    color:var(--text);
    min-height:46px;
    padding:10px 12px;
    width:100%;
    font-size:15px;
}
.login-box input:focus {
    border-color:var(--blue);
    outline:none;
}
.login-box .pay-button {
    margin-top:16px;
}
.login-links {
    text-align:center;
    margin-top:8px;
}
