.ll-promotion[hidden] { display: none !important; }

.ll-promotion {
    position: fixed;
    inset: 0;
    z-index: 15000;
    display: grid;
    place-items: center;
    padding: 24px;
    opacity: 0;
    transition: opacity .28s ease;
}

.ll-promotion.is-open { opacity: 1; }

.ll-promotion__backdrop {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
    border-radius: 0;
    background: rgb(12 10 9 / 72%);
    cursor: default;
}

.ll-promotion__dialog {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(310px, .88fr) minmax(420px, 1.12fr);
    width: min(940px, calc(100vw - 48px));
    min-height: 520px;
    max-height: calc(100vh - 48px);
    overflow: hidden;
    border-radius: 6px;
    background: #f7f4ef;
    box-shadow: 0 32px 90px rgb(0 0 0 / 32%);
    transform: translateY(16px) scale(.985);
    transition: transform .32s cubic-bezier(.2, .7, .2, 1);
}

.ll-promotion.is-open .ll-promotion__dialog { transform: translateY(0) scale(1); }

.ll-promotion__close {
    position: absolute;
    top: 17px;
    right: 18px;
    z-index: 2;
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: #211d1a;
    font: 300 36px/1 Onest, sans-serif;
}

.ll-promotion__close:hover { background: rgb(33 29 26 / 7%); }

.ll-promotion__media { min-width: 0; margin: 0; background: #241b17; }
.ll-promotion__media img { width: 100%; height: 100%; object-fit: cover; }

.ll-promotion__content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: stretch;
    padding: 66px 54px 48px;
    color: #27221f;
    text-align: center;
}

.ll-promotion__eyebrow {
    margin: 0 0 16px;
    color: #6f675f;
    font: 500 13px/1.4 Onest, sans-serif;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.ll-promotion__content h2 {
    margin: 0;
    color: #211d1a;
    font: 400 clamp(42px, 4vw, 58px)/1.05 Italiana, serif;
    letter-spacing: 0;
}

.ll-promotion__body {
    max-width: 520px;
    margin: 22px auto 30px;
    color: #514a44;
    font: 400 18px/1.6 Onest, sans-serif;
}

.ll-promotion__cta {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    min-height: 62px;
    padding: 15px 24px;
    border: 1px solid #171513;
    border-radius: 3px;
    background: #171513;
    color: #fff;
    font: 500 14px/1.2 Onest, sans-serif;
    letter-spacing: .12em;
    text-decoration: none;
    text-transform: uppercase;
    transition: background-color .2s ease, color .2s ease;
}

.ll-promotion__cta:hover { background: transparent; color: #171513; }

.ll-promotion__decline {
    align-self: center;
    margin: 19px 0 0;
    padding: 3px 0;
    border: 0;
    border-bottom: 1px solid currentColor;
    border-radius: 0;
    background: transparent;
    color: #3d3732;
    font: 400 15px/1.3 Onest, sans-serif;
}

.ll-promotion__note {
    max-width: 430px;
    margin: 27px auto 0;
    color: #777069;
    font: 300 12px/1.55 Onest, sans-serif;
}

body.ll-promotion-open { overflow: hidden; }

@media (max-width: 760px) {
    .ll-promotion { padding: 16px; }
    .ll-promotion__dialog {
        grid-template-columns: 1fr;
        width: min(430px, calc(100vw - 32px));
        min-height: 0;
        max-height: calc(100dvh - 32px);
        overflow-y: auto;
    }
    .ll-promotion__media { min-height: 205px; aspect-ratio: 16 / 9; }
    .ll-promotion__content { padding: 34px 24px 27px; }
    .ll-promotion__content h2 { font-size: clamp(34px, 10vw, 43px); }
    .ll-promotion__body { margin: 16px auto 22px; font-size: 15px; line-height: 1.55; }
    .ll-promotion__cta { min-height: 54px; }
    .ll-promotion__note { margin-top: 20px; }
    .ll-promotion__close { top: 9px; right: 9px; background: rgb(247 244 239 / 92%); }
}

@media (prefers-reduced-motion: reduce) {
    .ll-promotion,
    .ll-promotion__dialog { transition: none; }
}
