/* ============================================================
   ХимПодготовка — шапка банка заданий (ЕГЭ и ОГЭ)

   Раньше страницу открывал обычный заголовок с чертой под ним:
   по нему нельзя было понять ни сколько в банке заданий, ни что
   с ними можно делать. Шапка собрана как карточка-обложка —
   тёмная, с колбами на фоне, счётчиком и кнопками действий.

   Один и тот же файл подключают статическая страница ЕГЭ и
   приложение ОГЭ, поэтому все имена с префиксом bank-.
   ============================================================ */

.bank-hero {
    --bh-gold: #F5A623;
    --bh-sky:  #56CCF2;

    position: relative;
    isolation: isolate;
    /* clip, а не только hidden: свечение выходит за край обложки, и
       hidden оставлял внутри прокручиваемую область — scrollIntoView
       или фокус с клавиатуры сдвигали содержимое обложки вверх.
       Браузеры без clip останутся на hidden. */
    overflow: hidden;
    overflow: clip;
    margin: 0 auto 26px;
    max-width: 1040px;
    padding: 26px 28px 24px;
    border-radius: 24px;
    color: #EAF1FB;
    background:
        radial-gradient(115% 150% at 100% 0%, rgba(245, 166, 35, .30) 0%, rgba(245, 166, 35, 0) 55%),
        radial-gradient(95% 130% at 0% 100%, rgba(86, 204, 242, .22) 0%, rgba(86, 204, 242, 0) 60%),
        linear-gradient(140deg, #0C1A2C 0%, #12273F 48%, #0A1524 100%);
    box-shadow: 0 22px 44px -26px rgba(9, 20, 36, .85);
}

/* Гексагональная сетка — бензольное кольцо как фоновый мотив.
   Вшита как data-URI, чтобы шапка не ждала отдельного запроса. */
.bank-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    opacity: .9;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='49' viewBox='0 0 28 49'%3E%3Cpath d='M13.99 9.25l13 7.5v15l-13 7.5L1 31.75v-15l12.99-7.5zM3 17.9v12.7l10.99 6.34 11-6.35V17.9l-11-6.34L3 17.9zM0 15l12.98-7.5V0h-2v6.35L0 12.69v2.3zm0 18.5L12.98 41v8h-2v-6.85L0 35.81v-2.3zM15 0v7.5L27.99 15H28v-2.31h-.01L17 6.35V0h-2zm0 49v-8l12.99-7.5H28v2.31h-.01L17 42.15V49h-2z' fill='%23ffffff' fill-opacity='0.05'/%3E%3C/svg%3E");
}

.bank-hero__eyebrow {
    margin: 0 0 10px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: rgba(234, 241, 251, .62);
}

.bank-hero__title {
    /* На страницах сайта у h1 своя оранжевая черта снизу — здесь она
       перечёркивала бы карточку во всю ширину.
       Шрифт — плотный гротеск, а не книжная антиква: обложка банка
       должна звучать как тренажёр, а не как учебник. */
    margin: 0;
    padding: 0;
    border: 0;
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    font-size: clamp(1.7rem, 1.1rem + 1.9vw, 2.4rem);
    font-weight: 900;
    line-height: 1.06;
    color: #FFFFFF;
    letter-spacing: -.035em;
}
.bank-hero__title::after { content: none; }
.bank-hero__title span { color: var(--bh-gold); }

.bank-hero__lead {
    margin: 12px 0 0;
    text-align: left;
    max-width: 54ch;
    font-size: .96rem;
    line-height: 1.6;
    color: rgba(234, 241, 251, .78);
}

/* ——— счётчики ——— */
.bank-hero__stats {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 22px 0 0;
    padding: 0;
    list-style: none;
}
.bank-hero__stats li {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 108px;
    padding: 10px 15px;
    border: 1px solid rgba(255, 255, 255, .13);
    border-radius: 14px;
    background: rgba(255, 255, 255, .05);
    backdrop-filter: blur(2px);
}
.bank-hero__stats b {
    font-size: 1.22rem;
    font-weight: 800;
    line-height: 1.1;
    color: #FFFFFF;
    font-variant-numeric: tabular-nums;
}
.bank-hero__stats span {
    font-size: .74rem;
    letter-spacing: .03em;
    color: rgba(234, 241, 251, .6);
}

/* ——— кнопки ——— */
.bank-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 24px;
}

.bank-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 20px;
    border: 1px solid transparent;
    border-radius: 13px;
    font: inherit;
    font-size: .92rem;
    font-weight: 700;
    text-decoration: none;
    cursor: pointer;
    transition: transform .16s ease, box-shadow .16s ease,
                background-color .16s ease, border-color .16s ease;
}
.bank-btn svg { flex: none; }

.bank-btn--gold {
    background: linear-gradient(135deg, #F7B23F, #E08A0B);
    color: #21150A;
    box-shadow: 0 10px 22px -12px rgba(245, 166, 35, .95);
}
.bank-btn--gold:hover { transform: translateY(-2px); box-shadow: 0 16px 28px -14px rgba(245, 166, 35, 1); }

.bank-btn--ghost {
    background: rgba(255, 255, 255, .07);
    border-color: rgba(255, 255, 255, .16);
    color: #EAF1FB;
}
.bank-btn--ghost:hover { background: rgba(255, 255, 255, .13); transform: translateY(-2px); }

.bank-btn:focus-visible { outline: 2px solid var(--bh-gold); outline-offset: 3px; }

/* ============================================================
   Обложка с панелью прогресса

   Слева — что это за страница и что с ней делать, справа — сколько
   номеров ученик уже освоил. Прогресс виден с первого экрана: это
   то, ради чего возвращаются, а раньше его не было нигде.
   ============================================================ */

.bank-hero--split {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(320px, 1fr);
    gap: 26px;
    align-items: center;
}

/* Медленно плывущее золотое свечение: обложка живая, но не мельтешит */
.bank-hero--split::after {
    content: "";
    position: absolute;
    z-index: -1;
    width: 360px; height: 360px;
    right: -120px; bottom: -160px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(245, 166, 35, .28), transparent 65%);
    animation: bhDrift 14s ease-in-out infinite alternate;
    pointer-events: none;
}

@keyframes bhDrift {
    from { transform: translate(0, 0) scale(1); }
    to   { transform: translate(-80px, -40px) scale(1.15); }
}

/* Кольцо слева, заголовок и подсказка справа от него, счётчики —
   отдельной строкой на всю ширину: в узкой колонке они иначе
   ломались по одному слову. */
.bnk-me {
    position: relative;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    grid-template-areas:
        "ring body"
        "stats stats";
    align-items: center;
    gap: 16px 18px;
    padding: 20px;
    border-radius: 20px;
    background: linear-gradient(160deg, rgba(255, 255, 255, .10), rgba(255, 255, 255, .04));
    border: 1px solid rgba(255, 255, 255, .14);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .08), 0 20px 40px -24px rgba(0, 0, 0, .6);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
}

.bnk-me__ring {
    grid-area: ring;
    position: relative;
    flex: none;
    width: 112px; height: 112px;
}

.bnk-me__ring svg { width: 100%; height: 100%; transform: rotate(-90deg); }
.bnk-me__ring .bg { fill: none; stroke: rgba(255, 255, 255, .12); stroke-width: 9; }
.bnk-me__ring .fg {
    fill: none;
    stroke: url(#bnkRingGrad);
    stroke-width: 9;
    stroke-linecap: round;
    transition: stroke-dashoffset 1s cubic-bezier(.2, .8, .2, 1);
}

.bnk-me__ringtext {
    position: absolute;
    inset: 0;
    display: grid;
    place-content: center;
    text-align: center;
    line-height: 1;
}

.bnk-me__ringtext b {
    font-size: 1.9rem;
    font-weight: 900;
    color: #fff;
    letter-spacing: -.03em;
    font-variant-numeric: tabular-nums;
}

.bnk-me__ringtext b::after { content: "★"; font-size: .9rem; color: var(--bh-gold); margin-left: 2px; vertical-align: top; }
.bnk-me__ringtext span { margin-top: 4px; font-size: .72rem; font-weight: 600; color: rgba(234, 241, 251, .6); }

.bnk-me__body { grid-area: body; min-width: 0; }

.bnk-me__title {
    margin: 0;
    font-size: .74rem;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: rgba(234, 241, 251, .62);
}

.bnk-me__hint {
    margin: 8px 0 0;
    font-size: .88rem;
    line-height: 1.45;
    color: #EAF1FB;
    text-align: left;
}

.bnk-me__hint b { color: var(--bh-gold); }

.bnk-me__stats {
    grid-area: stats;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.bnk-me__stats li {
    padding: 8px 10px;
    border-radius: 12px;
    background: rgba(255, 255, 255, .06);
    border: 1px solid rgba(255, 255, 255, .08);
}

.bnk-me__stats b {
    display: block;
    font-size: 1.12rem;
    font-weight: 900;
    color: #fff;
    font-variant-numeric: tabular-nums;
}

.bnk-me__stats span {
    display: block;
    margin-top: 2px;
    font-size: .68rem;
    line-height: 1.2;
    color: rgba(234, 241, 251, .6);
}

@media (prefers-reduced-motion: reduce) {
    .bank-hero--split::after { animation: none; }
}

@media (max-width: 960px) {
    /* minmax(0, …), а не просто 1fr: иначе колонка не сжимается уже
       самого широкого содержимого и обложка вылезает за экран. */
    .bank-hero--split { grid-template-columns: minmax(0, 1fr); gap: 22px; }
}

/*
  Телефон: до первого задания раньше было около 900 px одной обложки.
  Здесь остаётся только то, что отвечает на вопрос «где я и что делать»:
  заголовок, короткий абзац, кнопки одной прокручиваемой строкой и
  кольцо прогресса с подсказкой. Счётчики банка на телефоне не нужны —
  номера и так видны на карте ниже.
*/
@media (max-width: 720px) {
    .bank-hero { padding: 18px 16px 16px; border-radius: 18px; margin-bottom: 16px; }
    .bank-hero__eyebrow { display: none; }
    .bank-hero__title { font-size: 1.55rem; }
    .bank-hero__lead { margin-top: 8px; font-size: .86rem; line-height: 1.5; }
    .bank-hero__stats { display: none; }
    .bank-hero__actions {
        flex-wrap: nowrap;
        gap: 8px;
        margin: 14px -16px 0;
        padding: 0 16px 2px;
        overflow-x: auto;
        scrollbar-width: none;
    }
    .bank-hero__actions::-webkit-scrollbar { display: none; }
    .bank-hero__actions .bank-btn { flex: 0 0 auto; padding: 9px 14px; font-size: .84rem; border-radius: 12px; }

    .bank-hero--split { gap: 14px; }
    .bnk-me {
        grid-template-areas: "ring body";
        padding: 12px 14px;
        gap: 12px;
        border-radius: 16px;
    }
    .bnk-me__ring { width: 62px; height: 62px; }
    .bnk-me__ringtext b { font-size: 1.15rem; }
    .bnk-me__ringtext b::after { font-size: .7rem; }
    .bnk-me__ringtext span { font-size: .56rem; margin-top: 2px; }
    .bnk-me__title { display: none; }
    .bnk-me__hint { margin: 0; font-size: .8rem; line-height: 1.4; }
    .bnk-me__stats { display: none; }
}
