/*
 * KTO All-In-K V16 Responsive CSS
 *
 * File này chứa toàn bộ các @media query được tách ra từ:
 * assets/css/kto-all-in-k-v16.css
 *
 * Quy ước chỉnh sửa:
 * - CSS desktop/base: chỉnh trong kto-all-in-k-v16.css
 * - CSS responsive/tablet/mobile: chỉnh trong file này
 */

@media (max-width: 1024px) {
    .kto-v16-hero {
            height: clamp(360px, 60vw, 719px);
            min-height: 360px;
        }

    .kto-v16-partner-brand-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .kto-v16-mosaic {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-template-rows: auto;
    }

    .kto-v16-mosaic-card.is-large {
        grid-column: span 2;
        grid-row: span 1;
        min-height: 520px;
    }

    .kto-v16-mosaic-card:not(.is-large) {
        min-height: 278px;
    }

    .kto-v16-way-grid,
    .kto-v16-reward-grid {
        grid-template-columns: 1fr;
    }

    .kto-v16-event-form,
    .kto-v16-event-form.is-reverse {
        grid-template-columns: 1fr;
    }

    .kto-v16-event-form.is-reverse .kto-v16-event-form__side {
        order: 0;
    }

    .kto-v16-footer__inner {
        grid-template-columns: 1fr;
    }
    .kto-v16-mosaic-card__content {
        min-height: 100px;
    }
}


@media (max-width: 767px) {
    .kto-v16-header {
        padding: 10px 16px;
        flex-wrap: wrap;
    }

    .kto-v16-header__brand img {
        width: 120px;
    }

    .kto-v16-header__toggle {
        display: inline-grid;
        display: none;
        place-items: center;
    }

    .kto-v16-header__nav {
        display: none;
        width: 100%;
    }

    .kto-v16-header.is-open .kto-v16-header__nav {
        display: block;
    }

    .kto-v16-header-menu {
        display: grid;
        gap: 12px;
        padding: 14px 0;
    }

    .kto-v16-hero {
            width: calc(100% - 24px);
            height: 300px;
            min-height: 300px;
            margin-bottom: 24px;
            border-radius: 24px;
        }

    .kto-v16-partner-brands {
        width: calc(100% - 24px);
        padding: 36px 16px;
        border-radius: 24px;
    }

    .kto-v16-partner-brand-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 20px 18px;
    }

    .kto-v16-offer-grid {
        grid-template-columns: 1fr;
        justify-items: center;
    }

    .kto-v16-section-heading h2,
    .kto-v16-rewards h2 {
        font-size: 30px;
        line-height: 38px;
    }

    .kto-v16-section-heading p {
        font-size: 16px;
        line-height: 24px;
    }

    .kto-v16-destination {
        padding: 48px 0;
    }

    .kto-v16-mosaic {
        grid-template-columns: 1fr;
        grid-template-rows: auto;
    }

    .kto-v16-mosaic-card.is-large,
    .kto-v16-mosaic-card:not(.is-large) {
        grid-column: span 1;
        grid-row: span 1;
        min-height: 320px;
    }

    .kto-v16-mosaic-card.is-large .kto-v16-mosaic-card__content {
        left: 16px;
        right: 16px;
        bottom: 16px;
        padding: 20px 21px;
    }

    .kto-v16-mosaic-card.is-large h3 {
        font-size: 18px;
        line-height: 24px;
    }

    .kto-v16-mosaic-card.is-large p {
        font-size: 13px;
        line-height: 18px;
    }

    .kto-v16-way-card img {
        height: 220px;
    }

    .kto-v16-event-button {
        min-height: 64px;
        padding: 18px 22px;
        font-size: 12px;
        letter-spacing: 1px;
    }

    .kto-v16-event-form__side,
    .kto-v16-event-form__content {
        padding: 28px 20px;
    }

    .kto-v16-event-form .wpcf7-form .form-grid,
    .kto-v16-event-form .wpcf7-form .kto-form-grid,
    .kto-v16-popup-form-grid {
        grid-template-columns: 1fr;
    }

    .kto-v16-cta {
        padding: 64px 20px;
        border-radius: 24px;
    }

    .kto-v16-cta h2 {
        font-size: 30px;
        line-height: 40px;
    }

    .kto-v16-cta__buttons {
        flex-direction: column;
    }

    .kto-v16-cta__buttons a {
        min-width: 0;
    }

    .kto-v16-scroll-top {
        right: 18px;
        bottom: 18px;
        width: 54px;
        height: 54px;
    }

    .kto-v16-offer-popup {
        padding: 20px;
    }

    .kto-v16-popup-section h3 {
        font-size: 22px;
    }

    .kto-v16-popup-section p,
    .kto-v16-popup-section li {
        font-size: 15px;
    }

    .kto-v16-popup-cta {
        font-size: 16px;
    }
}


@media (max-width: 767px) {
    .kto-v16-offer-popup {
        padding: 24px 18px;
    }

    .kto-v16-offer-popup .kto-v16-popup-section h3 {
        font-size: 24px;
    }

    .kto-v16-offer-popup .kto-v16-popup-section p,
    .kto-v16-offer-popup .kto-v16-popup-section li {
        font-size: 16px;
    }

    .kto-v16-offer-popup .kto-v16-popup-cta {
        min-height: 56px;
        padding: 12px 20px;
        font-size: 18px;
        white-space: normal;
    }
}


@media (max-width: 767px) {
    .kto-v16-offer-post-popup {
        padding: 24px 18px;
    }

    .kto-v16-popup-post__content {
        font-size: 16px;
    }

    .kto-v16-popup-post__content h1 {
        font-size: 26px;
    }

    .kto-v16-popup-post__content h2,
    .kto-v16-popup-post__content h3 {
        font-size: 24px;
    }

    .kto-v16-popup-post__content .wp-block-button__link,
    .kto-v16-popup-post__content a.wp-block-button__link {
        width: 100%;
        min-height: 56px;
        padding: 12px 20px;
        font-size: 18px;
        white-space: normal;
    }
}


@media (max-width: 767px) {
    .kto-v16-upload-field {
        min-height: 210px;
        padding: 34px 20px;
    }
}


@media (max-width: 767px) {
    .kto-v16-event-form .wpcf7-form .kto-v16-form-help,
    .kto-v16-event-form .wpcf7-form .kto-v16-form-help strong,
    .kto-v16-event-form .wpcf7-form .kto-v16-form-help li {
        font-size: 10px;
        line-height: 15.5px;
    }

    .kto-v16-event-form .wpcf7-form .wpcf7-list-item label,
    .kto-v16-event-form .wpcf7-form label.kto-v16-checkbox-label {
        align-items: flex-start !important;
    }

    .kto-v16-event-form .wpcf7-form input[type="checkbox"] {
        margin-top: 2px;
    }
}


@media (max-width: 767px) {
    .kto-v16-event-form .wpcf7-form .kto-v16-lck-schedule-link {
        gap: 14px;
    }

    .kto-v16-event-form .wpcf7-form .kto-v16-lck-schedule-icon {
        width: 58px;
    }

    .kto-v16-event-form .wpcf7-form .kto-v16-lck-schedule-text {
        font-size: 13px;
        line-height: 18px;
        letter-spacing: 1px;
    }
}


@media (max-width: 767px) {
    .kto-v16-partner-brands {
        min-height: auto;
        padding: 36px 18px;
    }

    .kto-v16-partner-brands__inner {
        gap: 20px;
    }

    .kto-v16-eyebrow {
        font-size: 16px;
        line-height: 18px;
        letter-spacing: 1.6px;
    }

    .kto-v16-partner-brands h2 {
        margin-top: -6px;
        font-size: 20px;
        line-height: 28px;
    }

    .kto-v16-partner-brand-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 20px 24px;
    }

    .kto-v16-partner-brand img {
        max-width: 132px;
        max-height: 40px;
    }
}


@media (max-width: 767px) {
    .fancybox__slide {
        padding: 16px !important;
    }

    .fancybox__content.kto-v16-fancybox-popup,
    .fancybox__content .kto-v16-fancybox-popup,
    .kto-v16-fancybox-popup,
    .kto-v16-offer-popup,
    .kto-v16-offer-post-popup,
    .kto-v16-rules-popup {
        width: calc(100vw - 24px);
        max-height: calc(100dvh - 32px);
        padding: 24px 18px;
        border-radius: 18px;
    }

    .kto-v16-rules-image-popup {
        width: calc(100vw - 24px);
        max-height: calc(100dvh - 32px);
        padding: 0;
        border-radius: 18px;
    }

    .kto-v16-popup-form-grid {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    .kto-v16-popup-section h3,
    .kto-v16-popup-post__content h1,
    .kto-v16-popup-post__content h2,
    .kto-v16-popup-post__content h3,
    .kto-v16-rules-popup h3 {
        font-size: 24px;
    }

    .kto-v16-popup-section p,
    .kto-v16-popup-section li,
    .kto-v16-popup-post__content p,
    .kto-v16-popup-post__content li {
        font-size: 16px;
    }

    .kto-v16-popup-cta,
    .kto-v16-popup-post__content .wp-block-button__link,
    .kto-v16-popup-post__content a.wp-block-button__link {
        min-height: 56px;
        padding: 12px 20px;
        font-size: 18px;
    }
}


@media (max-width: 767px) {
    .kto-v16-scrollbar::-webkit-scrollbar,
    .kto-v16-menu-drawer::-webkit-scrollbar,
    .kto-v16-fancybox-popup::-webkit-scrollbar,
    .kto-v16-offer-popup::-webkit-scrollbar,
    .kto-v16-offer-post-popup::-webkit-scrollbar,
    .kto-v16-rules-popup::-webkit-scrollbar,
    .kto-v16-rules-image-popup::-webkit-scrollbar,
    .kto-v16-popup-post__content::-webkit-scrollbar,
    .kto-v16-event-form__side::-webkit-scrollbar,
    .kto-v16-event-form__content::-webkit-scrollbar,
    .fancybox__content.kto-v16-fancybox-popup::-webkit-scrollbar {
        width: 5px;
        height: 5px;
    }

    .kto-v16-scrollbar::-webkit-scrollbar-thumb,
    .kto-v16-menu-drawer::-webkit-scrollbar-thumb,
    .kto-v16-fancybox-popup::-webkit-scrollbar-thumb,
    .kto-v16-offer-popup::-webkit-scrollbar-thumb,
    .kto-v16-offer-post-popup::-webkit-scrollbar-thumb,
    .kto-v16-rules-popup::-webkit-scrollbar-thumb,
    .kto-v16-rules-image-popup::-webkit-scrollbar-thumb,
    .kto-v16-popup-post__content::-webkit-scrollbar-thumb,
    .kto-v16-event-form__side::-webkit-scrollbar-thumb,
    .kto-v16-event-form__content::-webkit-scrollbar-thumb,
    .fancybox__content.kto-v16-fancybox-popup::-webkit-scrollbar-thumb {
        border-width: 1.5px !important;
    }
}


@media (max-width: 767px) {
    .kto-v16-menu-drawer {
        width: 80vw;
        min-width: 0;
        max-width: none;
        padding: 30px 18px 42px;
    }

    .kto-v16-menu-drawer__top {
        gap: 16px;
    }

    .kto-v16-menu-drawer__logos {
        padding-top: 76px;
        gap: 18px;
        flex-wrap: wrap;
    }

    .kto-v16-menu-drawer__logo.is-primary-logo img {
        max-width: 170px;
        max-height: 58px;
    }

    .kto-v16-menu-drawer__logo.is-secondary-logo img {
        max-width: 150px;
        max-height: 38px;
    }

    .kto-v16-menu-drawer__logo-text {
        font-size: 22px;
        letter-spacing: -0.8px;
    }

    .kto-v16-menu-drawer__close {
        width: 44px;
        height: 44px;
        font-size: 44px;
        line-height: 38px;
        flex-shrink: 0;
    }

    .kto-v16-header-menu a {
        min-height: 92px;
        padding: 0 8px;
        font-size: 24px;
        letter-spacing: 1px;
    }
}


@media (max-width: 991px) {
    .kto-v16-menu-drawer {
        width: 80vw !important;
        max-width: 794px !important;
    }

    .kto-v16-menu-drawer__header {
        min-height: 210px !important;
        padding: 96px 24px 34px !important;
        gap: 26px !important;
    }

    .kto-v16-menu-drawer__close {
        top: 32px !important;
        right: 26px !important;
        width: 52px !important;
        height: 52px !important;
        min-width: 52px !important;
        min-height: 52px !important;
    }

    .kto-v16-menu-drawer__nav a,
    .kto-v16-header-menu a {
        min-height: 86px !important;
        padding: 0 24px !important;
        font-size: 24px !important;
        letter-spacing: 1.2px !important;
    }
}


@media (max-width: 767px) {
    .kto-v16-menu-drawer {
        width: 80vw !important;
        max-width: none !important;
    }

    .kto-v16-menu-drawer__header {
        min-height: 156px !important;
        padding: 72px 16px 28px !important;
        gap: 18px !important;
    }

    .kto-v16-menu-drawer__logo:first-child img,
    .kto-v16-drawer-logo:first-child img {
        max-width: 168px !important;
        max-height: 50px !important;
    }

    .kto-v16-menu-drawer__logo:nth-child(2) img,
    .kto-v16-drawer-logo:nth-child(2) img {
        max-width: 148px !important;
    }

    .kto-v16-menu-drawer__brand-text,
    .kto-v16-menu-drawer__logo-text,
    .kto-v16-drawer-logo-text {
        font-size: 24px !important;
        letter-spacing: -0.8px !important;
    }

    .kto-v16-menu-drawer__close {
        top: 28px !important;
        right: 18px !important;
        width: 46px !important;
        height: 46px !important;
        min-width: 46px !important;
        min-height: 46px !important;
    }

    .kto-v16-menu-drawer__close::before,
    .kto-v16-menu-drawer__close::after {
        width: 30px !important;
        height: 4px !important;
    }

    .kto-v16-menu-drawer__nav a,
    .kto-v16-header-menu a {
        min-height: 72px !important;
        padding: 0 16px !important;
        font-size: 20px !important;
        letter-spacing: 1px !important;
    }
}


@media (max-width: 480px) {
    .kto-v16-menu-drawer {
        width: 86vw !important;
    }

    .kto-v16-menu-drawer__header {
        min-height: 136px !important;
        padding-top: 62px !important;
    }

    .kto-v16-menu-drawer__nav a,
    .kto-v16-header-menu a {
        min-height: 64px !important;
        font-size: 17px !important;
    }
}


@media (max-width: 991px) {
    .kto-v16-menu-drawer {
        width: min(80vw, 500px) !important;
        max-width: 500px !important;
    }

    .kto-v16-menu-drawer__header {
        min-height: 148px !important;
        padding: 60px 22px 24px !important;
        gap: 16px !important;
    }

    .kto-v16-menu-drawer__close {
        top: 22px !important;
        right: 22px !important;
        width: 36px !important;
        height: 36px !important;
        min-width: 36px !important;
        min-height: 36px !important;
    }

    .kto-v16-menu-drawer a,
    .kto-v16-menu-drawer__nav a,
    .kto-v16-header-menu a {
        min-height: 54px !important;
        padding: 0 22px !important;
        font-size: 16px !important;
        letter-spacing: 0.8px !important;
    }
}


@media (max-width: 767px) {
    .kto-v16-menu-drawer {
        width: 82vw !important;
        max-width: none !important;
    }

    .kto-v16-menu-drawer__header {
        min-height: 128px !important;
        padding: 54px 16px 22px !important;
        gap: 12px !important;
    }

    .kto-v16-menu-drawer__logo:first-child img,
    .kto-v16-drawer-logo:first-child img {
        max-width: 138px !important;
        max-height: 42px !important;
    }

    .kto-v16-menu-drawer__logo:nth-child(2) img,
    .kto-v16-drawer-logo:nth-child(2) img {
        max-width: 120px !important;
    }

    .kto-v16-menu-drawer__brand-text,
    .kto-v16-menu-drawer__logo-text,
    .kto-v16-drawer-logo-text {
        font-size: 19px !important;
        letter-spacing: -0.5px !important;
    }

    .kto-v16-menu-drawer__close {
        top: 18px !important;
        right: 16px !important;
        width: 34px !important;
        height: 34px !important;
        min-width: 34px !important;
        min-height: 34px !important;
    }

    .kto-v16-menu-drawer__close::before,
    .kto-v16-menu-drawer__close::after {
        width: 12px !important;
        height: 2px !important;
    }

    .kto-v16-menu-drawer a,
    .kto-v16-menu-drawer__nav a,
    .kto-v16-header-menu a {
        min-height: 50px !important;
        padding: 0 16px !important;
        font-size: 15px !important;
        letter-spacing: 0.7px !important;
    }
}


@media (max-width: 480px) {
    .kto-v16-menu-drawer {
        width: 84vw !important;
    }

    .kto-v16-menu-drawer__header {
        min-height: 116px !important;
        padding-top: 48px !important;
    }

    .kto-v16-menu-drawer a,
    .kto-v16-menu-drawer__nav a,
    .kto-v16-header-menu a {
        min-height: 48px !important;
        font-size: 14px !important;
        letter-spacing: 0.6px !important;
    }
}


@media (max-width: 767px) {
    .kto-v16-menu-drawer {
        width: 82vw !important;
        max-width: 400px !important;
    }

    .kto-v16-menu-drawer__header {
        min-height: 88px !important;
        padding: 32px 18px 16px !important;
    }

    .kto-v16-menu-drawer__close {
        top: 18px !important;
        right: 18px !important;
        width: 24px !important;
        height: 24px !important;
        min-width: 24px !important;
        min-height: 24px !important;
    }

    .kto-v16-menu-drawer__logo,
    .kto-v16-drawer-logo,
    .kto-v16-menu-drawer__logo img,
    .kto-v16-drawer-logo img {
        max-height: 34px !important;
    }

    .kto-v16-menu-drawer a,
    .kto-v16-menu-drawer__nav a,
    .kto-v16-header-menu a {
        padding: 0 18px !important;
        font-size: 12px !important;
        line-height: 30px !important;
    }
}


@media (max-width: 767px) {
    .kto-v16-header__brand-image {
        width: 82px;
        height: 29px;
    }

    .kto-v16-header__brand-image img {
        max-width: 82px;
        max-height: 29px;
    }
}


@media (max-width: 767px) {
    .kto-v16-popup-post__content,
    .kto-v16-popup-section,
    .kto-v16-rules-popup {
        font-size: 16px;
        line-height: 24px;
    }

    .kto-v16-popup-section h1,
    .kto-v16-popup-section h2,
    .kto-v16-popup-section h3,
    .kto-v16-popup-post__content h1,
    .kto-v16-popup-post__content h2,
    .kto-v16-popup-post__content h3,
    .kto-v16-rules-popup h3 {
        margin-bottom: 14px;
        font-size: 24px;
        line-height: 32px;
        letter-spacing: -0.2px;
    }

    .kto-v16-popup-section h4,
    .kto-v16-popup-post__content h4,
    .kto-v16-rules-popup h4 {
        font-size: 18px;
        line-height: 26px;
    }

    .kto-v16-popup-section p,
    .kto-v16-popup-section li,
    .kto-v16-popup-post__content p,
    .kto-v16-popup-post__content li,
    .kto-v16-rules-popup p,
    .kto-v16-rules-popup li {
        font-size: 16px;
        line-height: 24px;
    }
}


@media (max-width: 767px) {
    .kto-v16-event-buttons {
        width: calc(100% - 24px);
        gap: 14px;
        margin-bottom: 48px;
    }

    .kto-v16-event-button {
        height: 64px !important;
        max-height: 64px !important;
        padding: 0 22px !important;
        border-radius: 9999px;
        font-size: 12px;
        line-height: 18px;
        letter-spacing: 1px;
        white-space: normal;
    }

    .kto-v16-event-button span {
        width: 20px;
        height: 20px;
        min-width: 20px;
        font-size: 18px;
    }
}


@media (max-width: 767px) {
    .kto-v16-event-form .wpcf7-form {
        gap: 16px !important;
    }

    .kto-v16-event-form .wpcf7-form .form-grid,
    .kto-v16-event-form .wpcf7-form .kto-form-grid {
        grid-template-columns: 1fr !important;
        gap: 16px !important;
    }

    .kto-v16-event-form .wpcf7-form input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
    .kto-v16-event-form .wpcf7-form select {
        height: 52px !important;
        min-height: 52px !important;
        max-height: 52px !important;
    }
}


@media (max-width: 767px) {
    .fancybox__content.kto-v16-rules-image-popup,
    .fancybox__content .kto-v16-rules-image-popup,
    .kto-v16-rules-image-popup {
        width: calc(100vw - 24px) !important;
        max-width: calc(100vw - 24px) !important;
        max-height: calc(100dvh - 32px) !important;
        border-radius: 18px !important;
    }

    @supports not (height: 100dvh) {
        .fancybox__content.kto-v16-rules-image-popup,
        .fancybox__content .kto-v16-rules-image-popup,
        .kto-v16-rules-image-popup {
            max-height: calc(100vh - 32px) !important;
        }
    }

    @supports selector(:has(*)) {
        .fancybox__content:has(.kto-v16-rules-image-popup) {
            width: calc(100vw - 24px) !important;
            max-width: calc(100vw - 24px) !important;
            max-height: calc(100dvh - 32px) !important;
            border-radius: 18px !important;
        }
    }
}


@media (max-width: 767px) {
    .fancybox__slide:has(.kto-v16-rules-image-popup) {
        padding: 12px !important;
    }

    .fancybox__content.kto-v16-rules-image-popup,
    .fancybox__content.kto-v16-rules-image-popup.kto-v16-fancybox-popup,
    .fancybox__content:has(.kto-v16-rules-image-popup),
    .kto-v16-rules-image-popup-shell,
    .kto-v16-rules-image-popup {
        width: calc(100vw - 24px) !important;
        max-width: calc(100vw - 24px) !important;
        max-height: calc(100dvh - 24px) !important;
        border-radius: 18px !important;
    }

    @supports not (height: 100dvh) {
        .fancybox__content.kto-v16-rules-image-popup,
        .fancybox__content.kto-v16-rules-image-popup.kto-v16-fancybox-popup,
        .fancybox__content:has(.kto-v16-rules-image-popup),
        .kto-v16-rules-image-popup-shell,
        .kto-v16-rules-image-popup {
            max-height: calc(100vh - 24px) !important;
        }
    }
}


@media (max-width: 1024px) {
    .kto-v16-hero {
        height: auto !important;
        min-height: 0 !important;
        aspect-ratio: 16 / 9 !important;
    }
}


@media (max-width: 767px) {
    .kto-v16-hero {
        height: auto !important;
        min-height: 0 !important;
        aspect-ratio: 16 / 9 !important;
    }
}


/* V16 footer responsive hotfix - Figma node 2:2805 */
@media (max-width: 1024px) {
    .kto-v16-footer {
        width: calc(100% - 32px);
        max-width: none;
        padding: 36px 28px 28px;
        border-radius: 18px 18px 0 0;
    }

    .kto-v16-footer__inner {
        display: grid !important;
        grid-template-columns: 170px minmax(0, 1fr);
        align-items: flex-start;
        justify-content: stretch;
        gap: 28px;
    }

    .kto-v16-footer__brand {
        width: 170px;
        height: 72px;
        padding: 0;
        justify-content: flex-start;
    }

    .kto-v16-footer__brand img {
        width: 158px;
        max-width: 100%;
        height: auto;
        object-fit: contain;
    }

    .kto-v16-footer__columns {
        width: 100%;
        display: grid;
        grid-template-columns: /*minmax(96px, 0.75fr)*/ minmax(120px, 0.75fr) minmax(220px, 1.35fr);
        align-items: flex-start;
        justify-content: stretch;
        gap: 24px;
    }

    .kto-v16-footer__link-column,
    .kto-v16-footer__social-column,
    .kto-v16-footer__contact {
        width: 100%;
        min-width: 0;
        gap: 10px;
    }

    .kto-v16-footer__link-column a,
    .kto-v16-footer__social-column strong,
    .kto-v16-footer__contact strong {
        font-size: 14px;
        line-height: 21px;
    }

    .kto-v16-footer__contact p {
        font-size: 12.5px;
        line-height: 1.35;
    }

    .kto-v16-footer__divider {
        width: 100%;
        margin: 30px auto 16px;
    }
}

@media (max-width: 767px) {
    .kto-v16-footer {
        width: 100%;
        max-width: none;
        padding: 32px 20px 24px;
        border-radius: 18px 18px 0 0;
    }

    .kto-v16-footer__inner {
        display: grid !important;
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .kto-v16-footer__brand {
        width: 160px;
        height: auto;
        min-height: 0;
        padding: 0;
    }

    .kto-v16-footer__brand img {
        width: 150px;
        max-width: 100%;
        height: auto;
        object-fit: contain;
    }

    .kto-v16-footer__columns {
        width: 100%;
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        gap: 22px 18px;
    }

    .kto-v16-footer__link-column,
    .kto-v16-footer__social-column,
    .kto-v16-footer__contact {
        width: 100%;
        min-width: 0;
        gap: 9px;
    }

    .kto-v16-footer__contact {
        grid-column: 1 / -1;
    }

    .kto-v16-footer__link-column a,
    .kto-v16-footer__social-column strong,
    .kto-v16-footer__contact strong {
        font-size: 13.5px;
        line-height: 20px;
    }

    .kto-v16-footer__social-list {
        gap: 6px;
        flex-wrap: wrap;
    }

    .kto-v16-footer__social-link {
        width: 32px;
        height: 32px;
        border-radius: 4px;
    }

    .kto-v16-footer__contact p {
        max-width: 100%;
        font-size: 12.5px;
        line-height: 1.45;
    }

    .kto-v16-footer__divider {
        margin: 26px auto 14px;
    }

    .kto-v16-footer__copyright {
        font-size: 11.5px;
        line-height: 1.4;
    }
}

@media (max-width: 480px) {
    .kto-v16-footer {
        padding: 28px 18px 22px;
    }

    .kto-v16-footer__inner {
        gap: 22px;
    }

    .kto-v16-footer__brand {
        width: 148px;
    }

    .kto-v16-footer__brand img {
        width: 142px;
    }

    .kto-v16-footer__columns {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .kto-v16-footer__contact {
        grid-column: auto;
    }

    .kto-v16-footer__link-column,
    .kto-v16-footer__social-column,
    .kto-v16-footer__contact {
        align-items: flex-start;
    }


    .kto-v16-footer__link-column a,
    .kto-v16-footer__social-column strong,
    .kto-v16-footer__contact strong {
        font-size: 13px;
        line-height: 19.5px;
    }

    .kto-v16-footer__contact p {
        font-size: 12px;
        line-height: 1.45;
    }
}


/* V16 mobile header spacing hotfix - Figma node 26:6707 */
@media (max-width: 767px) {
    .kto-v16-header-wrap {
        min-height: 50px !important;
    }

    .kto-v16-header,
    .kto-v16-header.is-sticky {
        min-height: 50px !important;
        padding: 0 !important;
    }

    .kto-v16-header__bar {
        min-height: 50px !important;
        padding: 0 16px !important;
        gap: 12px !important;
    }

    .kto-v16-header__brand {
        gap: 10px !important;
        min-width: 0 !important;
    }

    .kto-v16-header__logo-frame {
        width: 116px !important;
        padding: 4px 0 !important;
        align-items: center !important;
        justify-content: flex-start !important;
    }

    .kto-v16-header__logo-frame img,
    .kto-v16-header__brand img {
        width: 116px !important;
        max-width: 116px !important;
        height: auto !important;
        object-fit: contain !important;
    }

    .kto-v16-header__brand-image {
        width: 72px !important;
        height: 24px !important;
    }

    .kto-v16-header__brand-image img {
        width: auto !important;
        max-width: 72px !important;
        max-height: 24px !important;
        height: auto !important;
        object-fit: contain !important;
    }

    .kto-v16-header__brand-text {
        width: auto !important;
        height: 24px !important;
        font-size: 18px !important;
        line-height: 24px !important;
        letter-spacing: -0.72px !important;
    }

    .kto-v16-header__toggle {
        width: 32px !important;
        height: 32px !important;
        min-width: 32px !important;
        min-height: 32px !important;
        border-radius: 7px !important;
    }

    .kto-v16-header__toggle img {
        width: 17px !important;
        height: 15px !important;
        object-fit: contain !important;
    }
}

@media (max-width: 480px) {
    .kto-v16-header-wrap {
        min-height: 48px !important;
    }

    .kto-v16-header,
    .kto-v16-header.is-sticky {
        min-height: 48px !important;
    }

    .kto-v16-header__bar {
        min-height: 48px !important;
        padding: 0 12px !important;
        gap: 8px !important;
    }

    .kto-v16-header__brand {
        gap: 8px !important;
    }

    .kto-v16-header__logo-frame {
        width: 104px !important;
        padding: 3px 0 !important;
    }

    .kto-v16-header__logo-frame img,
    .kto-v16-header__brand img {
        width: 104px !important;
        max-width: 104px !important;
    }

    .kto-v16-header__brand-image {
        width: 64px !important;
        height: 22px !important;
    }

    .kto-v16-header__brand-image img {
        max-width: 64px !important;
        max-height: 22px !important;
    }

    .kto-v16-header__brand-text {
        height: 22px !important;
        font-size: 16px !important;
        line-height: 22px !important;
        letter-spacing: -0.64px !important;
    }

    .kto-v16-header__toggle {
        width: 30px !important;
        height: 30px !important;
        min-width: 30px !important;
        min-height: 30px !important;
        border-radius: 7px !important;
    }

    .kto-v16-header__toggle img {
        width: 16px !important;
        height: 14px !important;
    }
}


/* V16 mobile partner offer swiper - Figma nodes 2:2009 and 96:671 */
@media (max-width: 767px) {
    .kto-v16-partner-offers {
        width: 100%;
        max-width: none;
        margin: 0 auto 48px;
        overflow: hidden;
    }

    .kto-v16-partner-offers .kto-v16-offer-grid {
        display: none !important;
    }

    .kto-v16-offer-mobile-swiper {
        width: 100%;
        display: block !important;
        padding: 0 0 2px 0;
        overflow: visible;
    }

    .kto-v16-offer-mobile-swiper .swiper-wrapper {
        align-items: stretch;
    }

    .kto-v16-offer-mobile-swiper .swiper-slide {
        width: 264px !important;
        height: auto;
        display: flex;
    }

    .kto-v16-offer-card--mobile {
        width: 264px;
        height: 460px;
        min-height: 460px;
        max-height: 460px;
        border: 1px solid #e5e5e5;
        border-radius: 9px;
        background: #ffffff;
        box-shadow: none;
        overflow: hidden;
        display: flex;
        flex-direction: column;
        justify-content: space-between;
    }

    .kto-v16-offer-card--mobile .kto-v16-offer-card__image {
        width: 264px;
        height: 149px;
        min-height: 149px;
        flex: 0 0 149px;
    }

    .kto-v16-offer-card--mobile .kto-v16-offer-card__image img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .kto-v16-offer-card--mobile .kto-v16-offer-card__body {
        flex: 1 1 auto;
        min-height: 0;
        padding: 24px;
        gap: 16px;
        justify-content: flex-start;
    }

    .kto-v16-offer-card--mobile .kto-v16-offer-card__logo {
        width: auto;
        height: auto;
        max-width: 170px;
        max-height: 40px;
        object-fit: contain;
        object-position: left center;
        align-self: flex-start;
        flex: 0 0 auto;
    }

    .kto-v16-offer-card--mobile h3 {
        min-height: 54px;
        margin: 0;
        color: #334155;
        font-size: 20px;
        font-weight: 800;
        line-height: 1.36;
        letter-spacing: -0.5px;
    }

    .kto-v16-offer-card--mobile p {
        margin: 0;
        color: #64748b;
        font-size: 16px;
        font-weight: 400;
        line-height: 24.38px;
        text-align: justify;
    }

    .kto-v16-offer-card--mobile .kto-v16-offer-card__button {
        min-height: 40px;
        height: 40px;
        margin-top: auto;
        padding: 0 18px;
        border-radius: 8px;
        background: var(--kto-v16-pink);
        color: #ffffff;
        font-size: 16px;
        font-weight: 600;
        line-height: 20px;
        white-space: nowrap;
    }
}

@media (max-width: 360px) {
    .kto-v16-offer-mobile-swiper .swiper-slide,
    .kto-v16-offer-card--mobile {
        width: 252px !important;
    }

    .kto-v16-offer-card--mobile .kto-v16-offer-card__image {
        width: 252px;
    }
}


/* V16 mobile offer swiper left offset and snap hotfix */
@media (max-width: 767px) {
    .kto-v16-offer-mobile-swiper {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .kto-v16-offer-mobile-swiper .swiper-wrapper {
        transition-timing-function: ease;
    }
}


/* V16 tablet partner offer overflow hotfix - Figma node 2:2009 */
@media (min-width: 768px) and (max-width: 1024px) {
    .kto-v16-partner-offers {
        width: calc(100% - 40px);
        max-width: 840px;
        margin-right: auto;
        margin-left: auto;
        overflow: hidden;
        box-sizing: border-box;
    }

    .kto-v16-partner-offers .kto-v16-offer-grid {
        width: 100%;
        max-width: 840px;
        display: grid !important;
        grid-template-columns: repeat(3, minmax(0, 264px));
        gap: clamp(14px, 2vw, 20px);
        justify-content: center;
        box-sizing: border-box;
    }

    .kto-v16-partner-offers .kto-v16-offer-card {
        width: 100%;
        min-width: 0;
        max-width: 264px;
        box-sizing: border-box;
    }

    .kto-v16-partner-offers .kto-v16-offer-card__image {
        width: 100%;
    }

    .kto-v16-partner-offers .kto-v16-offer-card__body {
        padding-right: clamp(18px, 2.2vw, 24px);
        padding-left: clamp(18px, 2.2vw, 24px);
    }

    .kto-v16-partner-offers .kto-v16-offer-card__logo {
        max-width: min(170px, 100%);
    }
}

@media (min-width: 768px) and (max-width: 860px) {
    .kto-v16-partner-offers {
        width: calc(100% - 32px);
    }

    .kto-v16-partner-offers .kto-v16-offer-grid {
        grid-template-columns: repeat(2, minmax(0, 264px));
        gap: 20px;
    }

    .kto-v16-partner-offers .kto-v16-offer-card {
        max-width: 264px;
    }
}


/* V16 reward note overlay responsive hotfix - Figma node 2:2367 */
@media (max-width: 1024px) {
    .kto-v16-reward-note-wrap {
        width: calc(100% - 24px);
    }

    .kto-v16-reward-note-box {
        padding-right: 18px;
        padding-left: 54px;
    }

    .kto-v16-reward-note {
        white-space: normal;
        line-height: 16px;
        text-align: left;
    }
}

@media (max-width: 767px) {
    .kto-v16-reward-note-wrap {
        width: calc(100% - 16px);
        min-height: 40px;
    }

    .kto-v16-reward-note-icon {
        width: 40px;
        height: 40px;
    }

    .kto-v16-reward-note-box {
        top: 6px;
        left: 4px;
        width: calc(100% - 4px);
        min-height: 30px;
        padding: 8px 14px 8px 46px;
        border-radius: 28px;
        overflow: visible;
    }

    .kto-v16-reward-note {
        font-size: 10.5px;
        line-height: 15.5px;
    }

    .kto-v16-reward-note__divider {
        display: none;
    }
}


/* V16 event button arrow image responsive hotfix */
@media (max-width: 767px) {
    .kto-v16-event-button .kto-v16-event-button__icon {
        width: 15px !important;
        height: 10px !important;
        min-width: 15px !important;
        min-height: 10px !important;
        flex-basis: 15px !important;
        align-self: center !important;
    }

    .kto-v16-event-button .kto-v16-event-button__icon img {
        width: 15px !important;
        height: 10px !important;
    }
}


/* V16 event button label alignment responsive hotfix */
@media (max-width: 767px) {
    .kto-v16-event-button .kto-v16-event-button__label {
        width: auto !important;
        height: auto !important;
        min-width: 0 !important;
        min-height: 0 !important;
        flex: 1 1 auto !important;
        line-height: 18px !important;
        text-align: left !important;
        white-space: normal !important;
        overflow: visible !important;
        transform: none !important;
    }

    .kto-v16-event-button .kto-v16-event-button__icon {
        align-self: center !important;
        margin-left: 12px !important;
    }
}


/* V16 event button font-size responsive hotfix */
@media (max-width: 767px) {
    .kto-v16-event-button,
    .kto-v16-event-button .kto-v16-event-button__label {
        font-size: 18px !important;
        line-height: 18px !important;
    }
}


/* V16 event button mobile style hotfix - Figma node 2:2176 */
@media (max-width: 767px) {
    .kto-v16-event-buttons {
        width: calc(100% - 24px) !important;
        gap: 14px !important;
        margin-bottom: 48px !important;
    }

    .kto-v16-event-button {
        width: 100% !important;
        height: auto !important;
        min-height: 64px !important;
        max-height: none !important;
        padding: 14px 22px !important;
        gap: 12px !important;
        align-items: center !important;
        justify-content: space-between !important;
        border-radius: 9999px !important;
        overflow: visible !important;
        font-size: clamp(11px, 3.2vw, 13px) !important;
        line-height: 1.32 !important;
        letter-spacing: 0.8px !important;
        white-space: normal !important;
    }

    .kto-v16-event-button .kto-v16-event-button__label {
        width: auto !important;
        min-width: 0 !important;
        max-width: calc(100% - 27px) !important;
        font-size: clamp(11px, 3.2vw, 13px) !important;
        line-height: 1.32 !important;
        letter-spacing: 0.8px !important;
        white-space: normal !important;
        word-break: normal !important;
        overflow-wrap: anywhere !important;
        display: flex !important;
        align-items: center !important;
        text-align: left !important;
    }

    .kto-v16-event-button .kto-v16-event-button__icon {
        width: 15px !important;
        height: 10px !important;
        min-width: 15px !important;
        min-height: 10px !important;
        margin-left: 0 !important;
        flex: 0 0 15px !important;
        align-self: center !important;
        transform: none !important;
    }

    .kto-v16-event-button .kto-v16-event-button__icon img {
        width: 15px !important;
        height: 10px !important;
        object-fit: contain !important;
        display: block !important;
    }
}

@media (max-width: 380px) {
    .kto-v16-event-button {
        padding: 12px 18px !important;
        font-size: 11px !important;
        letter-spacing: 0.55px !important;
    }

    .kto-v16-event-button .kto-v16-event-button__label {
        font-size: 11px !important;
        line-height: 1.28 !important;
        letter-spacing: 0.55px !important;
    }
}


/* V16 event button mobile final layout hotfix - Figma node 2:2176 */
@media (max-width: 767px) {
    .kto-v16-event-buttons {
        width: calc(100% - 24px) !important;
        max-width: none !important;
        margin: 0 auto 20px !important;
        gap: 14px !important;
    }

    .kto-v16-event-button {
        width: 100% !important;
        min-height: 50px !important;
        height: auto !important;
        max-height: none !important;
        padding: 12px 22px !important;
        gap: 14px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        overflow: hidden !important;
        font-size: 12px !important;
        line-height: 16px !important;
        letter-spacing: 1.15px !important;
        white-space: normal !important;
    }

    .kto-v16-event-button .kto-v16-event-button__label {
        width: auto !important;
        min-width: 0 !important;
        max-width: calc(100% - 31px) !important;
        display: block !important;
        flex: 1 1 auto !important;
        color: #ffffff !important;
        font-size: 12px !important;
        font-weight: 800 !important;
        line-height: 16px !important;
        letter-spacing: 1.15px !important;
        text-align: left !important;
        text-transform: uppercase !important;
        white-space: normal !important;
        word-break: normal !important;
        overflow-wrap: normal !important;
        hyphens: none !important;
        transform: none !important;
    }

    .kto-v16-event-button .kto-v16-event-button__icon {
        width: 15px !important;
        height: 10px !important;
        min-width: 15px !important;
        min-height: 10px !important;
        margin: 0 !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        flex: 0 0 15px !important;
        align-self: center !important;
        line-height: 0 !important;
        transform: none !important;
    }

    .kto-v16-event-button .kto-v16-event-button__icon img {
        width: 15px !important;
        height: 10px !important;
        max-width: none !important;
        max-height: none !important;
        display: block !important;
        object-fit: contain !important;
    }
}

@media (max-width: 380px) {
    .kto-v16-event-button {
        padding: 12px 18px !important;
    }

    .kto-v16-event-button,
    .kto-v16-event-button .kto-v16-event-button__label {
        font-size: 11px !important;
        line-height: 15px !important;
        letter-spacing: 0.75px !important;
    }
}


/* V16 scroll-top FAB icon responsive hotfix */
@media (max-width: 767px) {
    .kto-v16-scroll-top img {
        width: 22px !important;
        height: 22px !important;
    }
}


/* V16 scroll-top FAB icon visibility responsive hotfix */
@media (max-width: 767px) {
    .kto-v16-scroll-top::before,
    .kto-v16-scroll-top img {
        width: 22px !important;
        height: 22px !important;
    }

    .kto-v16-scroll-top::before {
        flex-basis: 22px;
    }
}


/* V16 tablet drawer menu style hotfix - Figma node 26:6707 */
@media (min-width: 768px) and (max-width: 1024px) {
    .kto-v16-menu-drawer {
        width: min(56vw, 430px) !important;
        max-width: 430px !important;
        min-width: 360px !important;
        background: #f7f8fa !important;
        box-shadow: 22px 0 56px rgba(15, 23, 42, 0.16) !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
    }

    .kto-v16-menu-drawer__header {
        min-height: 104px !important;
        padding: 34px 24px 18px !important;
        border-bottom: 0 !important;
        display: flex !important;
        align-items: center !important;
        justify-content: flex-start !important;
        gap: 14px !important;
        position: relative !important;
    }

    .kto-v16-menu-drawer__logos,
    .kto-v16-menu-drawer__brand,
    .kto-v16-menu-drawer__logo-group {
        width: 100% !important;
        min-width: 0 !important;
        height: 44px !important;
        margin: 0 !important;
        padding: 0 !important;
        display: flex !important;
        align-items: center !important;
        justify-content: flex-start !important;
        gap: 14px !important;
    }

    .kto-v16-menu-drawer__logo,
    .kto-v16-drawer-logo {
        height: 44px !important;
        max-height: 44px !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: flex-start !important;
        flex: 0 1 auto !important;
    }

    .kto-v16-menu-drawer__logo:first-child,
    .kto-v16-drawer-logo:first-child,
    .kto-v16-menu-drawer__logo.is-primary-logo {
        padding-left: 0 !important;
    }

    .kto-v16-menu-drawer__logo img,
    .kto-v16-drawer-logo img,
    .kto-v16-menu-drawer__logo:first-child img,
    .kto-v16-drawer-logo:first-child img {
        width: auto !important;
        height: auto !important;
        max-width: 152px !important;
        max-height: 44px !important;
        object-fit: contain !important;
        display: block !important;
    }

    .kto-v16-menu-drawer__logo:nth-child(2) img,
    .kto-v16-drawer-logo:nth-child(2) img {
        max-width: 108px !important;
        max-height: 32px !important;
    }

    .kto-v16-menu-drawer__brand-text,
    .kto-v16-menu-drawer__logo-text,
    .kto-v16-drawer-logo-text {
        height: 32px !important;
        color: var(--kto-v16-pink) !important;
        display: inline-flex !important;
        align-items: center !important;
        font-size: 22px !important;
        font-weight: 800 !important;
        line-height: 32px !important;
        letter-spacing: -0.88px !important;
        text-transform: none !important;
        white-space: nowrap !important;
    }

    .kto-v16-menu-drawer__close {
        position: absolute !important;
        top: 16px !important;
        right: 16px !important;
        width: 30px !important;
        height: 30px !important;
        min-width: 30px !important;
        min-height: 30px !important;
        padding: 0 !important;
        border: 0 !important;
        border-radius: 9999px !important;
        background: #ef4444 !important;
        color: #ffffff !important;
        box-shadow: none !important;
        font-size: 0 !important;
        line-height: 1 !important;
        cursor: pointer !important;
    }

    .kto-v16-menu-drawer__close::before,
    .kto-v16-menu-drawer__close::after {
        content: "" !important;
        position: absolute !important;
        left: 50% !important;
        top: 50% !important;
        width: 18px !important;
        height: 2.5px !important;
        border-radius: 9999px !important;
        background: #ffffff !important;
        transform-origin: center !important;
    }

    .kto-v16-menu-drawer__close::before {
        transform: translate(-50%, -50%) rotate(45deg) !important;
    }

    .kto-v16-menu-drawer__close::after {
        transform: translate(-50%, -50%) rotate(-45deg) !important;
    }

    .kto-v16-menu-drawer__nav,
    .kto-v16-drawer-menu-nav {
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    .kto-v16-menu-drawer ul,
    .kto-v16-menu-drawer ol,
    .kto-v16-menu-drawer .menu,
    .kto-v16-menu-drawer__nav ul,
    .kto-v16-menu-drawer__nav ol,
    .kto-v16-menu-drawer__nav .menu,
    .kto-v16-header-menu {
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        list-style: none !important;
        display: block !important;
    }

    .kto-v16-menu-drawer li,
    .kto-v16-menu-drawer__nav li,
    .kto-v16-header-menu li {
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        border-top: 1px solid #e5e7eb !important;
        border-bottom: 0 !important;
        list-style: none !important;
    }

    .kto-v16-menu-drawer li:first-child,
    .kto-v16-menu-drawer__nav li:first-child,
    .kto-v16-header-menu li:first-child {
        border-top: 0 !important;
    }

    .kto-v16-menu-drawer a,
    .kto-v16-menu-drawer__nav a,
    .kto-v16-menu-drawer__nav .menu-item a,
    .kto-v16-header-menu a {
        width: 100% !important;
        min-height: 50px !important;
        height: 50px !important;
        margin: 0 !important;
        padding: 0 24px !important;
        color: #606166 !important;
        display: flex !important;
        align-items: center !important;
        justify-content: flex-start !important;
        font-size: 13px !important;
        font-weight: 800 !important;
        line-height: 30px !important;
        letter-spacing: 0.65px !important;
        text-decoration: none !important;
        text-transform: uppercase !important;
        box-shadow: none !important;
    }

    .kto-v16-menu-drawer a:hover,
    .kto-v16-menu-drawer a:focus,
    .kto-v16-menu-drawer__nav a:hover,
    .kto-v16-menu-drawer__nav a:focus,
    .kto-v16-header-menu a:hover,
    .kto-v16-header-menu a:focus {
        color: var(--kto-v16-pink) !important;
        background: rgba(255, 56, 92, 0.035) !important;
        text-decoration: none !important;
    }

    .kto-v16-menu-drawer__nav .sub-menu a {
        min-height: 42px !important;
        height: 42px !important;
        padding-left: 40px !important;
        font-size: 12px !important;
        line-height: 28px !important;
        letter-spacing: 0.55px !important;
    }
}


/* V16 tablet drawer logo indent hotfix */
@media (min-width: 768px) and (max-width: 1024px) {
    .kto-v16-menu-drawer__logo:first-child,
    .kto-v16-drawer-logo:first-child,
    .kto-v16-menu-drawer__logo.is-primary-logo {
        padding-left: 20px !important;
    }
}


/* V16 footer contact paragraph line-height responsive hotfix */
@media (max-width: 1024px) {
    .kto-v16-footer__contact p {
        line-height: 1.8;
    }
}

@media (max-width: 767px) {
    .kto-v16-footer__contact p {
        line-height: 1.8;
    }
}

@media (max-width: 480px) {
    .kto-v16-footer__contact p {
        line-height: 1.8;
    }
}

/* V16 event step three-column spacing responsive refinement */
@media (max-width: 767px) {
    .kto-v16-event-form__steps li {
        --kto-v16-step-column-gap: 7px;
    }
}

@media (max-width: 380px) {
    .kto-v16-event-form__steps li {
        --kto-v16-step-column-gap: 6px;
        grid-template-columns: 40px 40px minmax(0, 1fr);
    }

    .kto-v16-event-step__number,
    .kto-v16-event-step__icon-cell,
    .kto-v16-event-step__icon {
        width: 40px;
        height: 40px;
    }
}

/* V16 mobile spacing, box padding and typography refinement */
@media (max-width: 767px) {
    :root {
        --kto-v16-mobile-gutter: 20px;
        --kto-v16-mobile-section-gap: 42px;
        --kto-v16-mobile-box-padding-x: 18px;
        --kto-v16-mobile-box-padding-y: 24px;
        --kto-v16-mobile-radius: 24px;
    }

    .kto-v16-container {
        width: calc(100% - (var(--kto-v16-mobile-gutter) * 2));
        max-width: none;
    }

    .kto-v16-hero,
    .kto-v16-partner-brands,
    .kto-v16-partner-offers,
    .kto-v16-destination,
    .kto-v16-three-ways,
    .kto-v16-rewards,
    .kto-v16-event-buttons,
    .kto-v16-event-form,
    .kto-v16-cta {
        margin-bottom: var(--kto-v16-mobile-section-gap);
    }

    .kto-v16-hero {
        width: calc(100% - 24px);
        margin-top: 0;
        margin-bottom: 32px;
        border-radius: 0 0 24px 24px;
    }

    .kto-v16-section-heading {
        margin-bottom: 22px;
        gap: 10px;
    }

    .kto-v16-section-heading h2,
    .kto-v16-rewards h2 {
        margin-bottom: 12px;
        font-size: 28px;
        line-height: 34px;
        letter-spacing: -0.4px;
    }

    .kto-v16-section-heading p {
        max-width: 100%;
        font-size: 14px;
        line-height: 21px;
    }

    .kto-v16-partner-brands {
        width: calc(100% - 24px);
        padding: 30px var(--kto-v16-mobile-box-padding-x);
        border-radius: var(--kto-v16-mobile-radius);
    }

    .kto-v16-partner-brand-grid {
        gap: 18px 16px;
    }

    .kto-v16-offer-grid,
    .kto-v16-way-grid,
    .kto-v16-reward-grid {
        gap: 22px;
    }

    .kto-v16-offer-card,
    .kto-v16-mosaic-card,
    .kto-v16-way-card img,
    .kto-v16-reward-card img {
        border-radius: 22px;
    }

    .kto-v16-offer-card__body {
        padding: 20px var(--kto-v16-mobile-box-padding-x) 22px;
        gap: 10px;
    }

    .kto-v16-offer-card h3,
    .kto-v16-way-card h3 {
        margin-top: 16px;
        margin-bottom: 6px;
        font-size: 18px;
        line-height: 23px;
        letter-spacing: -0.2px;
    }

    .kto-v16-offer-card p,
    .kto-v16-way-card p {
        font-size: 14px;
        line-height: 20px;
    }

    .kto-v16-destination {
        padding: 40px 0;
    }

    .kto-v16-mosaic {
        gap: 18px;
    }

    .kto-v16-mosaic-card.is-large,
    .kto-v16-mosaic-card:not(.is-large) {
        min-height: 280px;
    }

    .kto-v16-mosaic-card__content,
    .kto-v16-mosaic-card.is-large .kto-v16-mosaic-card__content {
        left: 14px;
        right: 14px;
        bottom: 14px;
        padding: 16px;
        border-radius: 18px;
    }

    .kto-v16-mosaic-card h3,
    .kto-v16-mosaic-card.is-large h3 {
        font-size: 16px;
        line-height: 22px;
    }

    .kto-v16-mosaic-card p,
    .kto-v16-mosaic-card.is-large p {
        font-size: 13px;
        line-height: 19px;
    }

    .kto-v16-event-form,
    .kto-v16-event-form.is-reverse {
        width: calc(100% - 24px);
        margin-left: auto;
        margin-right: auto;
        border-radius: 24px;
        overflow: hidden;
    }

    .kto-v16-event-form__side,
    .kto-v16-event-form__content {
        padding: 24px var(--kto-v16-mobile-box-padding-x);
    }

    .kto-v16-event-form__side small {
        padding-bottom: 8px;
        font-size: 11px;
        line-height: 15px;
        letter-spacing: 0.8px;
    }

    .kto-v16-event-form__side h3 {
        min-height: 0;
        margin-bottom: 18px;
        font-size: 26px;
        line-height: 31px;
        letter-spacing: -0.35px;
    }

    .kto-v16-event-form__image-wrap {
        height: auto;
        min-height: 220px;
        aspect-ratio: 1 / 0.82;
        border-radius: 18px;
    }

    .kto-v16-event-form__steps strong {
        margin-bottom: 8px;
        font-size: 15px;
        line-height: 20px;
    }

    .kto-v16-event-form .wpcf7-form {
        gap: 16px;
    }

    .kto-v16-event-form .wpcf7-form label {
        gap: 6px;
        font-size: 10px;
        line-height: 15px;
        letter-spacing: 0.8px;
    }

    .kto-v16-event-form .wpcf7-form input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
    .kto-v16-event-form .wpcf7-form textarea,
    .kto-v16-event-form .wpcf7-form select {
        min-height: 52px;
        padding: 14px 16px;
        border-radius: 20px;
        font-size: 14px;
        line-height: 20px;
    }

    .kto-v16-event-form .wpcf7-form textarea {
        min-height: 136px;
    }

    .kto-v16-cta {
        width: calc(100% - 24px);
        padding: 46px var(--kto-v16-mobile-box-padding-x);
        border-radius: 24px;
    }

    .kto-v16-cta h2 {
        font-size: 28px;
        line-height: 35px;
        letter-spacing: -0.4px;
    }

    .kto-v16-cta p {
        font-size: 14px;
        line-height: 21px;
    }

    .kto-v16-button,
    .kto-v16-cta__buttons a,
    .kto-v16-event-form .wpcf7-submit {
        min-height: 48px;
        padding: 13px 18px;
        border-radius: 9999px;
        font-size: 14px;
        line-height: 18px;
    }

    .kto-v16-footer {
        padding-top: 40px;
        padding-bottom: 28px;
    }

    .kto-v16-footer__inner {
        gap: 24px;
    }

    .kto-v16-footer__contact p,
    .kto-v16-footer__menu a,
    .kto-v16-footer__copyright {
        font-size: 13px;
    }

    .kto-v16-footer__contact p {
        line-height: 1.8;
    }
}

@media (max-width: 480px) {
    :root {
        --kto-v16-mobile-gutter: 16px;
        --kto-v16-mobile-section-gap: 36px;
        --kto-v16-mobile-box-padding-x: 16px;
        --kto-v16-mobile-box-padding-y: 22px;
    }

    .kto-v16-section-heading h2,
    .kto-v16-rewards h2 {
        font-size: 26px;
        line-height: 32px;
    }

    .kto-v16-section-heading p,
    .kto-v16-offer-card p,
    .kto-v16-way-card p,
    .kto-v16-cta p {
        font-size: 13px;
        line-height: 20px;
    }

    .kto-v16-event-form__side h3 {
        font-size: 24px;
        line-height: 30px;
    }

    .kto-v16-event-form__image-wrap {
        min-height: 200px;
    }

    .kto-v16-event-form__content {
        padding-top: 22px;
        padding-bottom: 22px;
    }
}

/* V16 CF7 required consent validation responsive */
@media (max-width: 767px) {
    .kto-v16-event-form .wpcf7-form .kto-v16-consent-error {
        margin-top: 4px;
        margin-left: 20px;
        font-size: 10px;
        line-height: 15px;
    }

    .kto-v16-event-form .wpcf7-form .wpcf7-response-output.kto-v16-consent-response {
        margin-top: 10px;
        padding: 9px 11px;
        font-size: 11px;
        line-height: 17px;
    }
}

/* V16 CF7 required consent validation v2 responsive */
@media (max-width: 767px) {
    .kto-v16-event-form .wpcf7-form .kto-v16-consent-error {
        margin-top: 4px;
        margin-left: 20px;
        font-size: 10px;
        line-height: 15px;
    }

    .kto-v16-event-form .wpcf7-form .wpcf7-response-output.kto-v16-consent-response {
        margin-top: 10px;
        padding: 9px 11px;
        font-size: 11px;
        line-height: 17px;
    }
}

/* V16 CF7 acceptance validation v3 responsive */
@media (max-width: 767px) {
    .kto-v16-event-form .wpcf7-form .kto-v16-consent-error {
        margin-top: 4px;
        margin-left: 20px;
        font-size: 10px;
        line-height: 15px;
    }

    .kto-v16-event-form .wpcf7-form .wpcf7-response-output.kto-v16-consent-response {
        margin-top: 10px;
        padding: 9px 11px;
        font-size: 11px;
        line-height: 17px;
    }
}

/* V16 mobile Three Ways swiper - Figma node 2:2150 - added after latest responsive CSS baseline */
@media (max-width: 767px) {
    .kto-v16-three-ways {
        width: 100%;
        overflow: hidden;
    }

    .kto-v16-three-ways .kto-v16-way-grid {
        display: none;
    }

    .kto-v16-three-ways .kto-v16-way-mobile-swiper {
        display: block;
        width: 100%;
        overflow: visible;
        padding: 0;
    }

    .kto-v16-way-mobile-swiper .swiper-slide {
        height: auto;
    }

    .kto-v16-way-card--mobile {
        min-width: 0;
        height: 100%;
        text-align: center;
    }

    .kto-v16-way-card--mobile img {
        width: 100%;
        aspect-ratio: 1.332 / 1;
        height: auto;
        min-height: 0;
        border-radius: 22px;
        object-fit: cover;
        box-shadow: var(--kto-v16-shadow);
        display: block;
    }

    .kto-v16-way-card--mobile h3 {
        margin: 14px 0 6px;
        color: var(--kto-v16-pink);
        font-size: 15px;
        font-weight: 800;
        line-height: 20px;
        letter-spacing: -0.15px;
        text-align: center;
        text-transform: uppercase;
    }

    .kto-v16-way-card--mobile p {
        margin: 0;
        color: var(--kto-v16-muted);
        font-size: 12px;
        font-weight: 400;
        line-height: 17px;
        text-align: center;
    }
}

@media (min-width: 768px) {
    .kto-v16-three-ways .kto-v16-way-mobile-swiper {
        display: none;
    }
}

/* V16 mobile Destination swiper - Figma node 2:2098 */
@media (max-width: 767px) {
    .kto-v16-destination {
        overflow: hidden;
    }

    .kto-v16-destination .kto-v16-mosaic {
        display: none;
    }

    .kto-v16-destination .kto-v16-destination-mobile-swiper {
        display: block;
        width: 100%;
        overflow: visible;
        padding: 0;
    }

    .kto-v16-destination-mobile-swiper .swiper-slide {
        height: auto;
        display: flex;
    }

    .kto-v16-destination-mobile-swiper .kto-v16-mosaic-card--mobile {
        position: relative;
        width: 100%;
        min-height: 236px;
        aspect-ratio: 1 / 1.08;
        border-radius: 22px;
        overflow: hidden;
        background: #d9d9d9;
        box-shadow: var(--kto-v16-shadow);
        display: block;
    }

    .kto-v16-destination-mobile-swiper .kto-v16-mosaic-card--mobile img {
        width: 100%;
        height: 100%;
        max-width: none;
        object-fit: cover;
        object-position: center center;
        display: block;
    }

    .kto-v16-destination-mobile-swiper .kto-v16-mosaic-card--mobile .kto-v16-mosaic-card__content {
        left: 0;
        right: 0;
        bottom: 0;
        width: auto;
        min-height: 75px;
        padding: 13px 14px;
        /* border: 1px solid rgba(255, 255, 255, 0.4); */
        border-radius: 0;
        background: rgba(255, 255, 255, 0.9);
        backdrop-filter: blur(1px);
    }

    .kto-v16-destination-mobile-swiper .kto-v16-mosaic-card--mobile h3 {
        margin: 0 0 4px;
        color: var(--kto-v16-pink);
        font-size: 12px;
        font-weight: 700;
        line-height: 15.6px;
        letter-spacing: 0;
        text-align: left;
        text-transform: uppercase;
    }

    .kto-v16-destination-mobile-swiper .kto-v16-mosaic-card--mobile p {
        margin: 0;
        color: var(--kto-v16-text);
        font-size: 10.5px;
        font-weight: 400;
        line-height: 14px;
        text-align: left;
    }
}

@media (max-width: 380px) {
    .kto-v16-destination-mobile-swiper .kto-v16-mosaic-card--mobile {
        min-height: 220px;
    }

    .kto-v16-destination-mobile-swiper .kto-v16-mosaic-card--mobile .kto-v16-mosaic-card__content {
        left: 10px;
        right: 10px;
        bottom: 10px;
        padding: 12px;
    }
}

@media (min-width: 768px) {
    .kto-v16-destination .kto-v16-destination-mobile-swiper {
        display: none;
    }
}

/* V16 mobile Reward swiper - Figma node 2:2197 */
@media (max-width: 767px) {
    .kto-v16-rewards {
        overflow: hidden;
    }

    .kto-v16-rewards .kto-v16-reward-grid {
        display: none;
    }

    .kto-v16-rewards .kto-v16-reward-mobile-swiper {
        display: block;
        width: 100%;
        overflow: visible;
        padding: 0;
    }

    .kto-v16-reward-mobile-swiper .swiper-slide {
        height: auto;
        display: flex;
    }

    .kto-v16-reward-mobile-swiper .kto-v16-reward-card--mobile {
        min-width: 0;
        height: 100%;
    }

    .kto-v16-reward-mobile-swiper .kto-v16-reward-card--mobile img {
        width: 100%;
        height: auto;
        border-radius: 0;
        object-fit: cover;
        display: block;
        box-shadow: var(--kto-v16-shadow);
    }

    .kto-v16-reward-mobile-swiper .kto-v16-reward-card__link {
        width: 100%;
        height: 100%;
        display: block;
    }
}

@media (min-width: 768px) {
    .kto-v16-rewards .kto-v16-reward-mobile-swiper {
        display: none;
    }
}

/* V16 tablet swiper visibility - Figma nodes 2:2009, 2:2098, 2:2150 */
@media (max-width: 1024px) {
    .kto-v16-partner-offers {
        width: 100%;
        max-width: none;
        overflow: hidden;
    }

    .kto-v16-partner-offers .kto-v16-offer-grid {
        display: none !important;
    }

    .kto-v16-destination .kto-v16-mosaic {
        display: none;
    }

    .kto-v16-three-ways .kto-v16-way-grid {
        display: none;
    }

    .kto-v16-partner-offers .kto-v16-offer-mobile-swiper,
    .kto-v16-destination .kto-v16-destination-mobile-swiper,
    .kto-v16-three-ways .kto-v16-way-mobile-swiper {
        display: block;
        width: 100%;
        overflow: visible;
    }
}

@media (min-width: 1025px) {
    .kto-v16-partner-offers .kto-v16-offer-mobile-swiper,
    .kto-v16-destination .kto-v16-destination-mobile-swiper,
    .kto-v16-three-ways .kto-v16-way-mobile-swiper {
        display: none;
    }
}

/* V16 Partner Offers tablet swiper sizing - Figma node 2:2009 */
@media (max-width: 767px) {
    .kto-v16-offer-mobile-swiper .swiper-slide {
        width: auto;
    }
}

@media (min-width: 768px) and (max-width: 1024px) {
    .kto-v16-partner-offers .kto-v16-offer-mobile-swiper {
        width: 100%;
        overflow: visible;
    }

    .kto-v16-offer-mobile-swiper .swiper-slide {
        width: auto;
    }

    .kto-v16-offer-mobile-swiper .kto-v16-offer-card {
        width: 100%;
        min-width: 0;
    }
}

/* V16 Reward tablet swiper visibility - Figma node 2:2197 */
@media (max-width: 1024px) {
    .kto-v16-rewards {
        overflow: visible;
    }

    .kto-v16-rewards .kto-v16-reward-grid {
        display: none;
    }

    .kto-v16-rewards .kto-v16-reward-mobile-swiper {
        display: block;
        width: 100%;
        overflow: visible;
        padding: 0;
    }

    .kto-v16-reward-mobile-swiper .swiper-slide {
        height: auto;
        display: flex;
    }

    .kto-v16-reward-mobile-swiper .kto-v16-reward-card--mobile {
        min-width: 0;
        height: 100%;
    }

    .kto-v16-reward-mobile-swiper .kto-v16-reward-card--mobile img {
        width: 100%;
        height: auto;
        border-radius: 0;
        object-fit: cover;
        display: block;
        box-shadow: var(--kto-v16-shadow);
    }

    .kto-v16-reward-mobile-swiper .kto-v16-reward-card__link {
        width: 100%;
        height: 100%;
        display: block;
    }
}

@media (min-width: 1025px) {
    .kto-v16-rewards .kto-v16-reward-mobile-swiper {
        display: none;
    }
}

/* V16 Three Ways tablet swiper spacing fix - Figma node 2:2150 */
@media (min-width: 768px) and (max-width: 1024px) {
    .kto-v16-three-ways {
        width: 100%;
        overflow: hidden;
    }

    .kto-v16-three-ways .kto-v16-way-mobile-swiper {
        display: block;
        width: 100%;
        overflow: visible;
        padding: 0;
    }

    .kto-v16-way-mobile-swiper .swiper-wrapper {
        align-items: stretch;
    }

    .kto-v16-way-mobile-swiper .swiper-slide {
        height: auto;
        display: flex;
    }

    .kto-v16-way-card--mobile {
        width: 100%;
        min-width: 0;
        height: 100%;
        text-align: center;
    }

    .kto-v16-way-card--mobile img {
        width: 100%;
        aspect-ratio: 1.332 / 1;
        height: auto;
        min-height: 0;
        border-radius: 28px;
        object-fit: cover;
        box-shadow: var(--kto-v16-shadow);
        display: block;
    }

    .kto-v16-way-card--mobile h3 {
        margin: 18px 0 8px;
        color: var(--kto-v16-pink);
        font-size: 18px;
        font-weight: 800;
        line-height: 24px;
        letter-spacing: -0.2px;
        text-align: center;
        text-transform: uppercase;
    }

    .kto-v16-way-card--mobile p {
        margin: 0;
        color: var(--kto-v16-muted);
        font-size: 14px;
        font-weight: 400;
        line-height: 21px;
        text-align: center;
    }
}

/* V16 Three Ways tablet initial spacing fallback - Figma node 2:2150 */
@media (min-width: 768px) and (max-width: 1024px) {
    .kto-v16-way-mobile-swiper {
        --swiper-space-between: 20px;
    }

    .kto-v16-way-mobile-swiper .swiper-slide {
        height: auto;
        display: flex;
        flex-shrink: 0;
    }
}

/* V16 Three Ways tablet spaceBetween 20 final override - Figma node 2:2150 */
@media (min-width: 768px) and (max-width: 1024px) {
    .kto-v16-way-mobile-swiper {
        --swiper-space-between: 20px;
    }
}

/* V16 tablet swiper visual gap 20 final override */
@media (min-width: 768px) and (max-width: 1024px) {
    .kto-v16-partner-offers .kto-v16-offer-mobile-swiper,
    .kto-v16-destination .kto-v16-destination-mobile-swiper,
    .kto-v16-three-ways .kto-v16-way-mobile-swiper,
    .kto-v16-rewards .kto-v16-reward-mobile-swiper {
        overflow: visible;
    }

    .kto-v16-offer-mobile-swiper .swiper-wrapper,
    .kto-v16-destination-mobile-swiper .swiper-wrapper,
    .kto-v16-way-mobile-swiper .swiper-wrapper,
    .kto-v16-reward-mobile-swiper .swiper-wrapper {
        align-items: stretch;
    }

    .kto-v16-offer-mobile-swiper .swiper-slide,
    .kto-v16-destination-mobile-swiper .swiper-slide,
    .kto-v16-way-mobile-swiper .swiper-slide,
    .kto-v16-reward-mobile-swiper .swiper-slide {
        height: auto;
        display: flex;
        flex-shrink: 0;
        margin-right: 20px;
        box-sizing: border-box;
    }

    .kto-v16-offer-mobile-swiper .swiper-slide {
        width: calc((100% - 40px) / 2.5);
    }

    .kto-v16-destination-mobile-swiper .swiper-slide,
    .kto-v16-way-mobile-swiper .swiper-slide,
    .kto-v16-reward-mobile-swiper .swiper-slide {
        width: calc((100% - 20px) / 1.5);
    }

    .kto-v16-offer-mobile-swiper .kto-v16-offer-card,
    .kto-v16-offer-mobile-swiper .kto-v16-offer-card--mobile,
    .kto-v16-destination-mobile-swiper .kto-v16-mosaic-card--mobile,
    .kto-v16-way-mobile-swiper .kto-v16-way-card--mobile,
    .kto-v16-reward-mobile-swiper .kto-v16-reward-card--mobile {
        width: 100%;
        max-width: none;
        min-width: 0;
        box-sizing: border-box;
    }
}
