/* Base = action primaire (ink plein). Anton capitales, 48px, sans ombre. */
.btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 10px;
    min-height: 48px; padding: 0 24px;
    font-family: var(--display); font-weight: 400; font-size: 16px;
    letter-spacing: 0.03em; text-transform: uppercase; text-decoration: none;
    background: var(--ink); color: var(--paper);
    border: 2px solid var(--ink); cursor: pointer;
    transition: background 140ms ease, color 140ms ease,
                transform 140ms ease, box-shadow 140ms ease;
}
.btn:hover, .btn:focus-visible { background: var(--ink); color: var(--yellow); }
.btn:focus-visible { outline: 3px solid var(--yellow); outline-offset: 3px; }
.btn:disabled, .btn[aria-disabled="true"] {
    background: var(--paper); color: var(--gray-disabled);
    border-color: var(--border); cursor: not-allowed;
}

/* CTA de don : rouge + ombre signature. Un seul par écran. */
.btn-cta {
    background: var(--red); color: var(--paper);
    border-color: var(--red); box-shadow: var(--shadow);
}
.btn-cta:hover, .btn-cta:focus-visible {
    background: var(--red-deep); color: var(--paper);
    transform: translate(2px, 2px); box-shadow: var(--shadow-hover);
}

/* CTA de don posé sur un aplat rouge : le rouge y serait invisible. */
.btn-yellow {
    background: var(--yellow); color: var(--ink);
    border-color: var(--yellow); box-shadow: var(--shadow);
}
.btn-yellow:hover, .btn-yellow:focus-visible {
    background: var(--yellow); color: var(--ink);
    transform: translate(2px, 2px); box-shadow: var(--shadow-hover);
}
.btn-yellow:focus-visible { outline-color: var(--ink); }

/* Secondaire : contour ink. */
.btn-secondary {
    background: var(--paper); color: var(--ink); border-color: var(--ink);
}
.btn-secondary:hover, .btn-secondary:focus-visible {
    background: var(--ink); color: var(--paper);
}

/* Lien mono souligné jaune. */
.btn-link {
    display: inline-block; min-height: 0; padding: 0 0 3px; gap: 0;
    background: none; border: 0;
    font-family: var(--mono); font-weight: 500; font-size: 13px;
    letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink);
    text-decoration: none;
    border-bottom: 3px solid var(--yellow);
}
.btn-link:hover, .btn-link:focus-visible { border-bottom-color: var(--ink); color: var(--ink); }

.btn-block { display: flex; width: 100%; box-shadow: none; }
.btn-block:hover, .btn-block:focus-visible { transform: none; }
.btn-lg { min-height: 56px; padding: 0 32px; font-size: 18px; }
.btn-sm { min-height: 40px; padding: 0 16px; font-size: 14px; }

@media (max-width: 768px) {
    .btn-cta, .btn-yellow { box-shadow: var(--shadow-mobile); }
}
