/* =========================== An Popup =========================== */

.an-popup {
    position: fixed;
    inset: 0;
    z-index: var(--z-modal);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    visibility: hidden;
    pointer-events: none;
}

.an-popup.is--active {
    visibility: visible;
    pointer-events: auto;
}

.an-popup__overlay {
    position: absolute;
    inset: 0;
    background: rgba(26, 26, 26, 0.55);
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px);
    cursor: pointer;
    opacity: 0;
}

.an-popup__dialog {
    position: relative;
    width: 100%;
    max-width: 520px;
    max-height: 85vh;
    overflow-y: auto;
    background: var(--color-white);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-xl);
    padding: 56px 48px;
    opacity: 0;
    transform: translateY(24px) scale(0.96);
}

.an-popup__close {
    position: absolute;
    top: 16px;
    right: 16px;
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--color-bg);
    color: var(--color-primary);
    border: none;
    border-radius: var(--radius-full);
    cursor: pointer;
    transition: background var(--transition-fast), color var(--transition-fast), transform var(--transition-fast);
}

.an-popup__close:hover,
.an-popup__close:focus-visible {
    background: var(--color-primary);
    color: var(--color-on-primary);
    transform: rotate(90deg);
}

.an-popup__close:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
}

.an-popup__content {
    font-family: var(--font-primary);
    color: var(--color-text);
    text-align: left;
}

.an-popup__content > *:first-child {
    margin-top: 0;
}

.an-popup__content > *:last-child {
    margin-bottom: 0;
}

.an-popup__content h1,
.an-popup__content h2,
.an-popup__content h3,
.an-popup__content h4 {
    font-family: var(--font-heading);
    color: var(--color-primary);
    margin-bottom: 16px;
    font-size: 32px;
    line-height: 1.15;
}

.an-popup__content p {
    font-weight: 300;
    line-height: 1.6;
    margin-bottom: 12px;
}

.an-popup__content a:not(.btn--primary):not(.btn--secondary) {
    color: var(--color-primary);
    text-decoration-color: var(--color-border);
    text-underline-offset: 3px;
}

.an-popup__content ul,
.an-popup__content ol {
    padding-left: 20px;
    margin-bottom: 12px;
    font-weight: 300;
}

@media (max-width: 768px) {
    .an-popup__dialog {
        padding: 40px 28px;
    }

    .an-popup__content h1,
    .an-popup__content h2,
    .an-popup__content h3,
    .an-popup__content h4 {
        font-size: 26px;
    }
}
