/* ============================================================
   Email verification step (contact + newsletter)
   Shown in place of the form after it is sent; see main.js.
   ============================================================ */

/* [hidden] loses to any class that sets display, so make it win here. */
.contact__form[hidden],
.newsletter-form[hidden],
.verify-step[hidden] {
    display: none !important;
}

.verify-step {
    color: var(--c-white);
    font-family: var(--f-body);
}

.verify-step__title {
    font-family: var(--f-display);
    font-size: clamp(1.6rem, 3vw, 2rem);
    color: var(--c-white);
    margin: 0 0 0.75rem;
}

.verify-step__text {
    font-size: 0.95rem;
    line-height: 1.6;
    color: rgba(255, 255, 255, 0.75);
    margin: 0 0 1.5rem;
    overflow-wrap: anywhere;
}

.verify-step__text strong {
    color: var(--c-gold-light);
    font-weight: 600;
}

.verify-step__form {
    display: flex;
    gap: 0.75rem;
}

.verify-step__code {
    flex: 1;
    min-width: 0;
    font-family: var(--f-body);
    font-size: 1.4rem;
    font-weight: 600;
    letter-spacing: 0.4em;
    text-align: center;
    padding: 0.85rem 1rem;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 10px;
    color: var(--c-white);
    outline: none;
    transition: border-color 0.3s ease;
}

.verify-step__code::placeholder {
    font-size: 0.9rem;
    font-weight: 400;
    letter-spacing: 0.05em;
    color: rgba(255, 255, 255, 0.3);
}

.verify-step__code:focus {
    border-color: var(--c-gold);
}

.verify-step__btn {
    font-family: var(--f-body);
    font-size: 0.85rem;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--c-dark);
    background: linear-gradient(135deg, var(--c-gold), var(--c-gold-light));
    border: none;
    border-radius: 10px;
    padding: 0 1.75rem;
    cursor: pointer;
}

.verify-step__btn:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

.verify-step__msg {
    min-height: 1.4em;
    font-size: 0.85rem;
    margin: 0.75rem 0 0;
}

.verify-step__msg--ok {
    color: var(--c-teal-light);
}

.verify-step__msg--err {
    color: #e74c3c;
}

.verify-step__links {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1.25rem;
    margin: 0.5rem 0 0;
}

.verify-step__link {
    font-family: var(--f-body);
    font-size: 0.8rem;
    color: rgba(255, 255, 255, 0.6);
    background: none;
    border: none;
    padding: 0;
    text-decoration: underline;
    text-underline-offset: 3px;
    cursor: pointer;
}

.verify-step__link:hover {
    color: var(--c-gold-light);
}

.verify-step__link:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

/* Footer newsletter: same parts, sized to the footer column. */
.verify-step--compact {
    max-width: 320px;
}

.verify-step--compact .verify-step__text {
    font-size: 0.8rem;
    margin-bottom: 0.6rem;
}

.verify-step--compact .verify-step__form {
    gap: 0;
}

.verify-step--compact .verify-step__code {
    font-size: 1rem;
    letter-spacing: 0.3em;
    padding: 0.55rem 0.75rem;
    border-radius: 6px 0 0 6px;
    border-right: none;
}

.verify-step--compact .verify-step__btn {
    font-size: 0.75rem;
    letter-spacing: 0.05em;
    padding: 0 1rem;
    border-radius: 0 6px 6px 0;
}

.verify-step--compact .verify-step__msg {
    font-size: 0.8rem;
    margin-top: 0.4rem;
}

@media (max-width: 480px) {
    .verify-step:not(.verify-step--compact) .verify-step__form {
        flex-direction: column;
    }

    .verify-step:not(.verify-step--compact) .verify-step__btn {
        padding: 0.95rem 1.75rem;
    }
}
