/*
 * Core block fallback layer.
 *
 * Some production stacks remove WordPress global styles and block-library CSS.
 * Keep the core blocks used by this theme visually stable without depending on
 * those optional frontend assets.
 */

.header__brand .brand__img,
.site-footer .brand__img {
    width: 100%;
    min-width: 8em;
    max-width: 8em;
}

.wp-block-navigation__container {
    display: flex;
    justify-content: center;
    align-items: center;
    list-style: none;
    padding: 0;
    gap: 20px;
}

.wp-block-navigation__container > .wp-block-navigation-item {
    margin: 0 !important;
    padding: 0 !important;
}

.wp-block-navigation__container > .wp-block-navigation-item::before {
    display: none;
}

h3.wp-block-heading {
    font-family: var(--new-theme-font-heading);
    font-size: 17px;
    font-weight: 700;
    line-height: 1.3;
}

.has-aposta-green-color {
    color: var(--theme-accent) !important;
}

.has-rating-yellow-color {
    color: var(--theme-cta-from) !important;
}

.has-bonus-orange-color {
    color: var(--theme-cta-strong) !important;
}

.has-ink-color {
    color: var(--theme-text) !important;
}

.has-soft-gray-color {
    color: var(--theme-bg-elevated) !important;
}

.has-white-color {
    color: var(--theme-bg-card) !important;
}

.has-aposta-green-background-color {
    background-color: var(--theme-accent) !important;
}

.has-rating-yellow-background-color {
    background-color: var(--theme-cta-from) !important;
}

.has-bonus-orange-background-color {
    background-color: var(--theme-cta-strong) !important;
}

.has-ink-background-color {
    background-color: var(--theme-text) !important;
}

.has-soft-gray-background-color {
    background-color: var(--theme-bg-elevated) !important;
}

.has-white-background-color {
    background-color: var(--theme-bg-card) !important;
}

/* New palette additions for sky-blue redesign */
.has-bg-base-color { color: var(--theme-bg-base) !important; }
.has-bg-base-background-color { background-color: var(--theme-bg-base) !important; }
.has-text-muted-color { color: var(--theme-text-muted) !important; }
.has-text-muted-background-color { background-color: var(--theme-text-muted) !important; }
.has-text-soft-color { color: var(--theme-text-soft) !important; }
.has-sky-light-color { color: var(--theme-accent-light) !important; }
.has-sky-light-background-color { background-color: var(--theme-accent-light) !important; }
.has-peach-text-color { color: var(--theme-cta-text) !important; }
.has-bg-deep-color { color: var(--theme-bg-deep) !important; }
.has-bg-deep-background-color { background-color: var(--theme-bg-deep) !important; }

.has-small-font-size {
    font-size: 13px !important;
}

.has-body-font-size {
    font-size: 16px !important;
}

.has-lead-font-size {
    font-size: 20px !important;
}

.has-heading-3-font-size {
    font-size: 17px !important;
}

.has-heading-2-font-size {
    font-size: 24px !important;
}

.has-heading-1-font-size {
    font-size: 40px !important;
}

.wp-block-columns {
    align-items: normal;
    box-sizing: border-box;
    display: flex;
    flex-wrap: nowrap;
    gap: 32px;
}

.wp-block-column {
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.is-layout-flex {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
}

.is-layout-grid {
    display: grid;
    gap: 16px;
}

.wp-block-columns > .wp-block-column > .wp-block-group {
    padding: 15px !important;
}

.wp-block-group {
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    gap: 20px;
    height: 100%;
}

@media only screen and (max-width: 768px) {
    .wp-block-group.container {
        margin-top: 50px;
    }
}

.wp-block-group .wp-block-group .layout__row-item-padding .wp-block-buttons {
    margin: 0 !important;
}

.wp-block-buttons > .wp-block-button > .wp-block-button__link {
    width: 100%;
    text-align: center;
}

.wp-block-buttons {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.wp-block-button {
    display: inline-block;
}

.wp-block-button__link {
    align-items: center;
    background: var(--theme-button-gradient, var(--theme-cta-background));
    background-size: var(--theme-button-gradient-size, auto);
    background-position: var(--theme-button-gradient-position, 0% 0%);
    border: 0;
    border-radius: var(--theme-radius-button, 9999px);
    color: var(--theme-cta-text);
    display: inline-flex;
    font-family: var(--new-theme-font-heading);
    font-weight: var(--theme-button-weight, 700);
    letter-spacing: var(--theme-button-spacing, normal);
    text-transform: var(--theme-button-transform, none);
    justify-content: center;
    min-height: 44px;
    padding: 12px 28px;
    text-decoration: none;
    transition: background .2s;
}

.wp-block-button__link:hover {
    background: var(--theme-button-gradient, var(--theme-cta-hover));
    background-size: var(--theme-button-gradient-size, auto);
    background-position: var(--theme-button-gradient-hover-position, var(--theme-button-gradient-position, 0% 0%));
    color: var(--theme-cta-text);
}

.wp-block-button.is-style-outline > .wp-block-button__link {
    background: var(--theme-secondary-bg);
    border-color: var(--theme-secondary-border);
    border-radius: var(--theme-radius-secondary, var(--theme-radius-button, 9999px));
    text-transform: var(--theme-secondary-transform, var(--theme-button-transform, none));
    color: var(--theme-secondary-text);
}

.wp-block-button.is-style-outline > .wp-block-button__link:hover {
    background: var(--theme-secondary-hover);
    color: var(--theme-secondary-text);
}

.wp-block-group > .wp-block-image {
    background: var(--theme-cta-from);
    padding: 10px;
    border-radius: 99px;
    display: flex;
    justify-content: center;
}

.wp-block-image,
.wp-block-table,
.wp-block-quote,
.wp-block-code,
.wp-block-preformatted {
    box-sizing: border-box;
}

.wp-block-image {
    margin: 0;
}

.wp-block-columns > .wp-block-column > .wp-block-group .wp-block-image img {
    height: 60px !important;
    object-fit: contain;
}

.wp-block-image img {
    height: auto;
    max-width: 100%;
    border-radius: 24px;
}

.wp-block-gallery {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
}

.wp-block-gallery > .wp-block-image {
    flex: 1 1 calc(33.333% - 11px);
    margin: 0;
    min-width: 220px;
}

.wp-block-gallery > .wp-block-image img {
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.wp-block-cover {
    align-items: center;
    display: flex;
    justify-content: center;
    min-height: 430px;
    overflow: hidden;
    position: relative;
}

.wp-block-cover__background,
.wp-block-cover__image-background {
    inset: 0;
    position: absolute;
}

.wp-block-cover__image-background {
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.wp-block-cover__inner-container {
    color: var(--theme-bg-card);
    position: relative;
    width: 100%;
    z-index: 1;
}

.wp-block-media-text {
    align-items: center;
    display: grid;
    gap: 32px;
    grid-template-columns: 1fr 1fr;
}

.wp-block-media-text.has-media-on-the-right .wp-block-media-text__media {
    grid-column: 2;
    grid-row: 1;
}

.wp-block-media-text.has-media-on-the-right .wp-block-media-text__content {
    grid-column: 1;
    grid-row: 1;
}

.wp-block-media-text__media img {
    height: auto;
    width: 100%;
}

.wp-block-image figcaption,
.wp-block-table figcaption {
    color: var(--theme-text-caption);
    font-size: 13px;
    line-height: 1.45;
    margin-top: 8px;
}

.wp-block-table {
    overflow-x: auto;
}

.wp-block-table table {
    border-collapse: separate;
    border-spacing: 0;
    background-color: var(--theme-table-background, transparent);
    border-radius: var(--theme-radius-table, 24px);
    /* frame over the cell borders: outline does not touch the table border or its size */
    outline: var(--theme-table-frame, none);
    outline-offset: -1px;
    overflow: hidden;
    min-width: 640px;
    width: 100%;
}

.wp-block-table th,
.wp-block-table td {
    border: 1px solid var(--theme-table-border);
    border-width: var(--theme-table-cell-border-width, 1px);
    padding: var(--theme-table-cell-padding, 14px 16px);
    vertical-align: top;
}

.wp-block-table td {
    background: var(--theme-table-row);
    color: var(--theme-table-text, currentcolor);
}

.wp-block-table th {
    background: var(--theme-table-head);
    color: var(--theme-table-head-text);
    font-family: var(--new-theme-font-heading);
    font-size: 14px;
    font-weight: var(--theme-table-head-weight, 700);
    text-align: left;
    text-transform: var(--theme-table-head-transform, none);
}

.wp-block-table.is-style-stripes tbody tr:nth-child(odd) td,
.wp-block-table:not(.is-style-stripes) tbody tr:nth-child(even) td {
    background: var(--theme-table-zebra);
}

/*
 * is-style-stripes: WordPress core paints the <tr> itself (#f0f0f0 on odd rows)
 * and the figure's bottom edge in the same grey. The cells above already carry
 * the zebra colour, so the row and the edge must not show a light core colour
 * through a recoloured palette.
 */
.wp-block-table.is-style-stripes tbody tr:nth-child(odd) {
    background-color: transparent;
}

.wp-block-table.is-style-stripes {
    border-bottom-color: var(--theme-table-zebra);
}

/*
 * Phones: tables with 2-3 columns fit the screen instead of scrolling sideways
 * (the rule above gives every table min-width: 640px). Tables with 4+ columns
 * keep the horizontal scroll.
 */
@media (max-width: 767px) {
    /*
     * The content column of page.html is a flex item: with the default
     * min-width: auto a 640px table widened the whole column (and the page)
     * past the screen. Wide tables scroll inside their own figure instead.
     */
    .row > .layout__row-item-padding {
        max-width: 100%;
        min-width: 0;
    }

    .wp-block-table table:not(:has(tr > :nth-child(4))) {
        min-width: 0;
    }

    /* Narrower cells: break long words with hyphens rather than mid-letter */
    .wp-block-table table:not(:has(tr > :nth-child(4))) :is(th, td) {
        font-size: 14px;
        hyphens: auto;
        overflow-wrap: break-word;
        padding: 10px 12px;
    }
}

.wp-block-details {
    border-bottom: 1px solid var(--theme-divider-strong);
    padding: 16px 0;
}

.wp-block-details summary {
    cursor: pointer;
    font-family: var(--new-theme-font-heading);
    font-size: 18px;
    font-weight: 700;
}

.wp-block-details[open] summary {
    color: var(--theme-accent);
    margin-bottom: 12px;
}

.wp-block-quote {
    border-left: 4px solid var(--theme-accent);
    margin-block: 32px;
    padding: 8px 0 8px 24px;
}

.wp-block-quote p {
    font-size: 20px;
    font-style: italic;
}

.wp-block-separator {
    border: 0;
    border-top: 1px solid var(--theme-divider);
    margin-block: 32px;
}

/* Core content can be inserted directly into page-main or a template root. */
:where(.page__main, .wp-block-post-content, .wp-site-blocks)
    > :where(
        .wp-block-heading,
        p,
        ul,
        ol,
        .wp-block-list,
        .wp-block-image,
        .wp-block-gallery,
        .wp-block-table,
        .wp-block-quote,
        .wp-block-details,
        .wp-block-buttons,
        .wp-block-columns,
        .wp-block-group,
        .wp-block-cover,
        .wp-block-media-text,
        .wp-block-code,
        .wp-block-preformatted,
        .wp-block-separator
    ):not(.alignfull) {
    margin-left: auto;
    margin-right: auto;
    max-width: var(--new-theme-content-width);
    width: 100%;
}

:where(.page__main, .wp-block-post-content, .wp-site-blocks) > .wp-block-heading {
    font-family: var(--new-theme-font-heading);
    font-weight: 700;
    letter-spacing: -0.01em;
}

:where(.page__main, .wp-block-post-content, .wp-site-blocks) > h1.wp-block-heading {
    font-size: clamp(36px, 5vw, 64px);
    line-height: 1.03;
    margin-bottom: 24px;
    margin-top: 64px;
}

:where(.page__main, .wp-block-post-content, .wp-site-blocks) > h2.wp-block-heading {
    font-size: clamp(30px, 4vw, 48px);
    line-height: 1.08;
    margin-bottom: 24px;
    margin-top: 64px;
}

:where(.page__main, .wp-block-post-content, .wp-site-blocks) > h3.wp-block-heading {
    font-size: 24px;
    line-height: 1.2;
    margin-bottom: 16px;
    margin-top: 40px;
}

:where(.page__main, .wp-block-post-content, .wp-site-blocks) > p,
:where(.page__main, .wp-block-post-content, .wp-site-blocks) > :where(ul, ol, .wp-block-list) {
    font-size: 17px;
    line-height: 1.65;
}

:where(.page__main, .wp-block-post-content, .wp-site-blocks) > p {
    margin-bottom: 18px;
    margin-top: 0;
}

@media only screen and (max-width: 768px) {
    :where(.page__main, .wp-block-post-content, .wp-site-blocks) > p {
        padding: 0 15px;
    }
}

:where(.page__main, .wp-block-post-content, .wp-site-blocks) > :where(ul, ol, .wp-block-list) {
    margin-bottom: 24px;
    margin-top: 0;
    padding-left: 39px;
}

:where(.page__main, .wp-block-post-content, .wp-site-blocks) > :where(ul, ol, .wp-block-list) li + li {
    margin-top: 8px;
}

:where(.page__main, .wp-block-post-content, .wp-site-blocks) > :where(ul, ol, .wp-block-list) li::marker {
    color: var(--theme-bullet);
    font-weight: 700;
}

:where(.page__main, .wp-block-post-content, .wp-site-blocks)
    > :where(.wp-block-table, .wp-block-image, .wp-block-gallery, .wp-block-quote, .wp-block-details, .wp-block-buttons, .wp-block-columns, .wp-block-group, .wp-block-cover, .wp-block-media-text) {
    margin-bottom: 32px;
    margin-top: 102px;
}

/* Таблица — своим правилом той же нулевой специфичности: отступы задаёт палитра (v1.5). */
:where(.page__main, .wp-block-post-content, .wp-site-blocks) > :where(.wp-block-table) {
    margin-bottom: var(--theme-table-margin-bottom, 32px);
    margin-top: var(--theme-table-margin-top, 102px);
}

.nt-content-section__container {
    gap: 20px;
}

.nt-content-section__container > * {
    margin: 0;
}

.nt-content-section__container > h2,
.nt-content-section__container > h3,
.nt-content-section__container > ul {
    margin: 0 !important;
}

.nt-content-section__container > :where(.wp-block-columns, .wp-block-buttons),
.page-hero__content > :where(.wp-block-columns, .wp-block-buttons) {
    width: 100%;
}

/* Consistent editorial rhythm inside Section and Hero. */
:where(.nt-content-section__container, .page-hero__content) > :where(.wp-block-heading, p, ul, ol, .wp-block-list) {
    margin-top: 0;
}

:where(.nt-content-section__container, .page-hero__content) > h1.wp-block-heading {
    font-family: var(--new-theme-font-heading);
    font-size: clamp(36px, 5.7vw, 68px);
    font-weight: 700;
    letter-spacing: -0.01em;
    line-height: 1.03;
    margin-bottom: 24px;
}

:where(.nt-content-section__container, .page-hero__content) > h2.wp-block-heading {
    font-family: var(--new-theme-font-heading);
    font-size: clamp(30px, 4vw, 48px);
    font-weight: 700;
    letter-spacing: -0.01em;
    line-height: 1.08;
    margin-bottom: 28px;
}

:where(.nt-content-section__container, .page-hero__content) > h3.wp-block-heading {
    font-family: var(--new-theme-font-heading);
    font-size: 24px;
    font-weight: 700;
    line-height: 1.2;
    margin-bottom: 14px;
}

:where(.nt-content-section__container, .page-hero__content) > :where(p, ul, ol, .wp-block-list) {
    font-size: 17px;
    line-height: 1.65;
    margin-bottom: 18px;
}

:where(.nt-content-section__container, .page-hero__content) > :where(ul, ol, .wp-block-list) {
    padding-left: 24px;
}

:where(.nt-content-section__container, .page-hero__content) > :where(.wp-block-heading, p, ul, ol, .wp-block-list):last-child {
    margin-bottom: 0;
}

:where(.nt-content-section__container, .page-hero__content) > :where(p, ul, ol, .wp-block-list, .wp-block-table, .wp-block-image, .wp-block-buttons, .wp-block-columns) + h2.wp-block-heading {
    margin-top: 56px;
}

:where(.nt-content-section__container, .page-hero__content) > :where(p, ul, ol, .wp-block-list, .wp-block-table, .wp-block-image, .wp-block-buttons, .wp-block-columns) + h3.wp-block-heading {
    margin-top: 38px;
}

:where(.nt-content-section__container, .page-hero__content) > :where(ul, ol, .wp-block-list) + p {
    margin-top: 24px;
}

:where(.nt-content-section__container, .page-hero__content) > p + :where(ul, ol, .wp-block-list) {
    margin-top: 8px;
}

:where(.nt-content-section__container, .page-hero__content) > :where(ul, ol, .wp-block-list) li {
    padding-left: 4px;
}

:where(.nt-content-section__container, .page-hero__content) > :where(ul, ol, .wp-block-list) li + li {
    margin-top: 12px;
}

/* The same rhythm for core blocks inserted directly into Page Main. */
:where(.page__main, .wp-block-post-content, .wp-site-blocks) > .wp-block-heading + :where(p, ul, ol, .wp-block-list) {
    margin-top: 0;
}

:where(.page__main, .wp-block-post-content, .wp-site-blocks) > :where(ul, ol, .wp-block-list) + p {
    margin-top: 24px;
}

:where(.page__main, .wp-block-post-content, .wp-site-blocks) > p + :where(ul, ol, .wp-block-list) {
    margin-top: 8px;
}

:where(.page__main, .wp-block-post-content, .wp-site-blocks) > :where(ul, ol, .wp-block-list) li + li {
    margin-top: 12px;
}

/* Reset legacy and WP-core overrides on standard list blocks.
   legacy-reference.css applies ul:not(9 classes...) li::before {content:'\2022'}
   with specificity (0,9,3); wp-block-list is not excluded, so !important is required. */
ul.wp-block-list {
    list-style-type: disc;
    padding: 0 0 0 20px;
}

ol.wp-block-list {
    list-style-type: decimal;
    padding: 0 0 0 50px;
}

.wp-block-list li {
    list-style-type: inherit;
}

.wp-block-list li::before {
    content: none !important;
}

/* Site header compatibility layer. */
.header {
    background: linear-gradient(180deg, var(--theme-text) 0%, #0d3349 100%);
    color: #fff;
    box-shadow: 0 8px 24px rgba(13, 51, 73, 0.12);
}

.header > .container > .row {
    align-items: center;
    flex-wrap: nowrap;
    min-height: 100%;
}

.header__brand {
    align-items: center;
    flex: 0 0 auto;
}

.header__brand .brand__img,
.header__brand .brand__img--light {
    height: auto;
    max-height: 32px;
    max-width: 82px;
    min-width: 82px;
    object-fit: contain;
    width: 82px;
}

.header__nav {
    flex: 1 1 auto;
    justify-content: flex-end;
    min-width: 0;
}

.header__nav .navbar-toggler {
    background: transparent;
    border: 0;
    flex: 0 0 24px;
    margin: 0;
    padding: 0;
}

.header__nav #primaryNavBar {
    min-width: 0;
}

.header__nav #primaryNavBar .sidebar-nav__list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.header .sidebar-nav__list,
.header .dropdown-menu,
.header .nav-menu__submenu {
    list-style: none;
}

.page__overlay {
    background: var(--theme-overlay);
}

@media (max-width: 1208.98px) {
    .header {
        padding-bottom: 18px;
        padding-top: 18px;
    }

    .header.header--initial.header--with-disclaimer {
        top: 40px;
    }

    .header.header--dark .sidebar-nav.active {
        top: 68px;
    }
}

/* core/list: "Числа" block style variation */
ul.wp-block-list.is-style-numbered,
ol.wp-block-list.is-style-numbered {
    list-style-type: decimal;
}

@media (max-width: 781px) {
    .wp-block-columns:not(.is-not-stacked-on-mobile) {
        flex-wrap: wrap;
    }

    .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column {
        flex-basis: 100% !important;
    }

    .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column:has(> .wp-block-image) {
        order: -1;
    }

    .wp-block-media-text {
        grid-template-columns: 1fr;
    }

    .wp-block-media-text.has-media-on-the-right .wp-block-media-text__media,
    .wp-block-media-text.has-media-on-the-right .wp-block-media-text__content {
        grid-column: 1;
        grid-row: auto;
    }

    .has-heading-1-font-size {
        font-size: 40px !important;
    }

    :where(.nt-content-section__container, .page-hero__content) > h1.wp-block-heading {
        font-size: 38px;
        margin-bottom: 18px;
    }

    :where(.nt-content-section__container, .page-hero__content) > h2.wp-block-heading {
        font-size: 30px;
        margin-bottom: 20px;
    }

    :where(.nt-content-section__container, .page-hero__content) > h3.wp-block-heading {
        font-size: 22px;
        margin-bottom: 12px;
    }

    :where(.nt-content-section__container, .page-hero__content) > :where(p, ul, ol, .wp-block-list) {
        font-size: 16px;
        line-height: 1.6;
    }

    :where(.nt-content-section__container, .page-hero__content) > :where(ul, ol, .wp-block-list) li + li {
        margin-top: 10px;
    }

    :where(.page__main, .wp-block-post-content, .wp-site-blocks) > h1.wp-block-heading,
    :where(.page__main, .wp-block-post-content, .wp-site-blocks) > h2.wp-block-heading {
        margin-top: 44px;
    }
}

/*
 * Form tokens (standard v1.1). Undeclared by default: every use carries the
 * 2.1.0 value as the var() fallback, so a site without a palette looks the same.
 */
.wp-block-table tbody tr:last-child td {
    border-bottom-width: var(--theme-table-last-row-border-width, 1px);
}

/* Row hover: an overlay over the row colour; transparent by default, so zebra stays */
.wp-block-table tbody tr:hover td {
    background-image: linear-gradient(var(--theme-table-row-hover, transparent), var(--theme-table-row-hover, transparent));
}

.wp-block-table td strong,
.wp-block-table td b {
    color: var(--theme-table-strong, currentcolor);
}

:where(h1, h2, h3, h4, h5, h6, .wp-block-heading) {
    color: var(--theme-heading, currentcolor);
}
