.locale-modal {
    position: fixed;
    inset: 0;
    width: min(1120px, calc(100% - 32px));
    max-width: none;
    max-height: calc(100dvh - 32px);
    height: fit-content;
    margin: auto;
    color: #fff;
    background: transparent;
    border: 0;
    padding: 0;
    overflow: visible;
    opacity: 0;
    transform: translate3d(0, 30px, 0) scale(.96);
    transition: opacity 360ms ease, transform 560ms cubic-bezier(.16, 1, .3, 1);
}

.locale-modal::backdrop {
    background: rgb(2 10 24 / 82%);
    backdrop-filter: blur(8px);
    opacity: 0;
    transition: opacity 420ms ease;
}

.locale-modal.is-visible {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
}

.locale-modal.is-visible::backdrop {
    opacity: 1;
}

.locale-modal.is-closing {
    transform: translate3d(0, 18px, 0) scale(.98);
    transition-duration: 320ms;
}

.locale-modal.is-closing::backdrop {
    transition-duration: 320ms;
}

.locale-modal__panel {
    isolation: isolate;
    max-height: calc(100dvh - 32px);
    background: #071a32;
    border: 1px solid rgb(216 183 110 / 42%);
    border-radius: 20px;
    padding: clamp(20px, 3vw, 38px);
    position: relative;
    overflow: auto;
    overscroll-behavior: contain;
    box-shadow: 0 32px 100px rgb(0 0 0 / 55%);
}

.locale-modal__backdrop {
    z-index: -2;
    background:
        linear-gradient(100deg, rgb(7 16 38 / 76%), rgb(7 16 38 / 94%)),
        url('/assets/images/country-gateway.png') center / cover no-repeat;
    border-radius: inherit;
    position: absolute;
    inset: 0;
}

.locale-modal__header,
.locale-modal__actions {
    display: flex;
    align-items: center;
}

.locale-modal__header {
    justify-content: space-between;
    gap: 20px;
}

.locale-modal__actions {
    gap: 8px;
}

.locale-modal__logo {
    width: clamp(124px, 14vw, 176px);
    height: 68px;
    object-fit: contain;
    filter: brightness(0) saturate(100%) invert(72%) sepia(38%) saturate(747%) hue-rotate(2deg) brightness(91%) contrast(88%);
}

.locale-modal__language {
    min-width: 52px;
    min-height: 42px;
    color: #fff;
    background: rgb(7 16 38 / 64%);
    border-color: rgb(255 255 255 / 22%);
    padding-inline: 14px;
}

.locale-modal__close {
    width: 42px;
    height: 42px;
    color: #fff;
    cursor: pointer;
    background: rgb(7 16 38 / 64%);
    border: 1px solid rgb(255 255 255 / 22%);
    border-radius: 50%;
    place-items: center;
    display: grid;
}

.locale-modal__language:hover,
.locale-modal__close:hover {
    background: rgb(255 255 255 / 14%);
}

.locale-modal__intro {
    max-width: 760px;
    text-align: center;
    margin: 18px auto 22px;
}

.locale-modal__intro .eyebrow {
    justify-content: center;
}

.locale-modal__intro h2 {
    text-wrap: balance;
    margin: 8px 0 10px;
    font-size: clamp(32px, 4vw, 54px);
    line-height: 1.18;
}

.locale-modal__intro p {
    max-width: 660px;
    color: rgb(255 255 255 / 76%);
    margin: 0 auto;
    font-size: clamp(15px, 1.5vw, 18px);
    line-height: 1.7;
}

.locale-modal__prompt {
    max-width: 480px;
    margin: 0 auto 18px;
    font-size: 14px;
    display: flex;
    align-items: center;
    gap: 14px;
}

.locale-modal__prompt span {
    height: 1px;
    background: linear-gradient(90deg, transparent, #d8b76e);
    flex: 1;
}

.locale-modal__prompt span:last-child {
    transform: scaleX(-1);
}

.locale-modal__panel .country-grid {
    width: 100%;
    align-self: auto;
}

.locale-modal__panel[dir='rtl'] .country-grid {
    direction: rtl;
}

.locale-modal__panel[dir='ltr'] .country-grid {
    direction: ltr;
}

.locale-modal__panel[dir='ltr'] .country-card__arrow svg {
    transform: rotate(180deg);
}

.locale-modal__market-form {
    display: contents;
}

.locale-modal__panel .country-card {
    width: 100%;
    min-height: 205px;
}

.locale-modal__panel .country-card--active {
    outline: 3px solid #d8b76e;
    outline-offset: -3px;
}

.locale-modal__selected {
    color: #fff;
    background: #9b732f;
    border-radius: 999px;
    align-items: center;
    gap: 5px;
    padding: 5px 10px;
    font-size: 12px;
    font-weight: 700;
    display: flex;
    position: absolute;
    top: 12px;
    inset-inline-end: 12px;
}

body:has(.locale-modal[open]) {
    overflow: hidden;
}

@media (width <= 760px) {
    .locale-modal {
        width: min(calc(100% - 16px), 620px);
        max-height: calc(100dvh - 16px);
    }

    .locale-modal__panel {
        max-height: calc(100dvh - 16px);
        border-radius: 14px;
        padding: 16px;
    }

    .locale-modal__logo {
        width: 118px;
        height: 56px;
    }

    .locale-modal__intro {
        margin-block: 10px 16px;
    }

    .locale-modal__intro h2 {
        font-size: 30px;
    }

    .locale-modal__panel .country-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .locale-modal__panel .country-card {
        min-height: 165px;
    }
}

@media (width <= 600px) {
    .locale-modal__panel {
        padding: 14px;
    }

    .locale-modal__logo {
        width: 104px;
        height: 44px;
    }

    .locale-modal__intro {
        margin-block: 8px 12px;
    }

    .locale-modal__intro .eyebrow {
        font-size: 12px;
    }

    .locale-modal__intro h2 {
        margin-block: 5px 7px;
        font-size: clamp(23px, 6vw, 30px);
        line-height: 1.25;
    }

    .locale-modal__intro p {
        font-size: 13px;
        line-height: 1.5;
    }

    .locale-modal__prompt {
        margin-bottom: 12px;
        font-size: 12px;
        gap: 8px;
    }

    .locale-modal__panel .country-grid {
        grid-template-columns: 1fr;
        gap: 8px;
    }

    .locale-modal__panel .country-card {
        min-height: 76px;
        padding: 10px 12px;
        border-radius: 12px;
        display: grid;
        grid-template-columns: 48px minmax(0, 1fr) auto;
        grid-template-rows: auto auto;
        column-gap: 10px;
        row-gap: 2px;
        align-content: center;
        align-items: center;
        text-align: start;
        box-shadow: 0 6px 18px rgb(0 0 0 / 22%);
    }

    .locale-modal__panel .country-card__pin {
        display: none;
    }

    .locale-modal__panel .country-card__flag {
        grid-column: 1;
        grid-row: 1 / span 2;
        width: 48px;
        height: 32px;
    }

    .locale-modal__panel .country-card strong {
        grid-column: 2;
        grid-row: 1;
        margin: 0;
        font-size: 14px;
        line-height: 1.35;
    }

    .locale-modal__panel .country-card small {
        grid-column: 2;
        grid-row: 2;
        font-size: 11px;
        line-height: 1.3;
    }

    .locale-modal__panel .country-card__arrow,
    .locale-modal__panel .country-card__soon-label,
    .locale-modal__selected {
        grid-column: 3;
        grid-row: 1 / span 2;
        margin: 0;
    }

    .locale-modal__panel .country-card__arrow {
        width: 32px;
        height: 32px;
    }

    .locale-modal__panel .country-card__soon-label {
        min-height: 0;
        padding: 5px 7px;
        font-size: 11px;
        white-space: nowrap;
    }

    .locale-modal__selected {
        position: static;
        padding: 5px 7px;
        font-size: 11px;
        white-space: nowrap;
    }

    .locale-modal__selected svg {
        width: 13px;
        height: 13px;
    }

    .locale-modal__panel .country-card--active .country-card__arrow {
        display: none;
    }
}

@media (width <= 600px) and (height <= 620px) {
    .locale-modal__intro {
        margin-block: 6px 10px;
    }

    .locale-modal__intro p {
        display: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .locale-modal,
    .locale-modal::backdrop {
        transition: none;
    }
}
