/* ============================================================
   BUTTON DESIGN SYSTEM — Les Voyages en Art
   ------------------------------------------------------------
   Forme de référence : .nav__cta (.btn par défaut)
     • border-radius : var(--radius-1) — 4px
     • padding       : var(--space-3) var(--space-5) — 12px 20px
     • font-size     : var(--fs-12) — 13px
     • font-weight   : var(--fw-medium)
   ------------------------------------------------------------
   Base    : .btn
   Variants: .btn--primary | .btn--secondary | .btn--danger
             | .btn--ghost | .btn--outline | .btn--link
   Modifiers: .btn--block | .btn--lift | .btn--bold
   ------------------------------------------------------------
   Dépend des tokens CSS définis dans :root de la page.
   ============================================================ */

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);

    font-family: inherit;
    font-size: var(--fs-12);
    font-weight: var(--fw-medium);
    letter-spacing: var(--ls-wide);
    text-transform: uppercase;
    line-height: 1;
    text-decoration: none;
    white-space: nowrap;

    cursor: pointer;
    border: 1px solid transparent;
    border-radius: var(--radius-1);
    padding: var(--space-3) var(--space-5);
    min-height: 39px;

    -webkit-appearance: none;
    appearance: none;

    transition:
        background-color 0.2s ease,
        color 0.2s ease,
        border-color 0.2s ease,
        transform 0.2s ease;
}

.btn:focus-visible {
    outline: 2px solid var(--gold-400);
    outline-offset: 2px;
}

.btn[disabled],
.btn:disabled {
    opacity: 0.55;
    cursor: not-allowed;
    transform: none !important;
}

/* SVG icons inside any button */
.btn svg {
    width: 14px;
    height: 14px;
    flex: none;
    transition: transform 0.2s ease;
}
.btn:hover svg { transform: translateX(3px); }

/* ============================================================
   VARIANTS — couleurs uniquement, forme identique
   ============================================================ */

.btn--primary {
    background: var(--gold-400);
    color: var(--primary-500);
    border-color: var(--gold-400);
}
.btn--primary:hover {
    background: var(--gold-500);
    border-color: var(--gold-500);
}

.btn--secondary {
    background: var(--neutral-0);
    color: var(--primary-500);
    border-color: var(--neutral-0);
}
.btn--secondary:hover {
    background: var(--gold-400);
    border-color: var(--gold-400);
    color: var(--primary-500);
}

.btn--danger {
    background: var(--red-400);
    color: var(--neutral-0);
    border-color: var(--red-400);
}
.btn--danger:hover {
    background: var(--red-500);
    border-color: var(--red-500);
}

.btn--ghost {
    background: transparent;
    color: var(--neutral-0);
    border-color: var(--neutral-0);
}
.btn--ghost:hover {
    background: var(--neutral-0);
    color: var(--primary-500);
}

/* Outline — le pendant de .btn--ghost pour les sections claires */
.btn--outline {
    background: transparent;
    color: var(--primary-500);
    border-color: var(--primary-500);
}
.btn--outline:hover {
    background: var(--primary-500);
    color: var(--neutral-0);
    border-color: var(--primary-500);
}

/* Link — même forme que .btn, fond transparent */
.btn--link {
    background: transparent;
    border-color: transparent;
    color: var(--gold-400);
}
.btn--link:hover {
    background: transparent;
    border-color: transparent;
    color: var(--gold-500);
}

/* ============================================================
   MODIFIERS — n'affectent pas la forme
   ============================================================ */
.btn--block {
    display: inline-flex;
    width: 100%;
}

.btn--lift:hover { transform: translateY(-2px); }

.btn--bold { font-weight: var(--fw-bold); }
