/* gencv-btn — primary (crimson pill), ghost, link variants */

.gencv-btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 10px 18px;
    border-radius: var(--radius-pill);
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    border: 1px solid transparent;
    transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
    text-decoration: none;
    user-select: none;
}

.gencv-btn--primary {
    background: var(--btn-primary-bg);
    color: var(--accent-ink);
    border: none;
    font-weight: 600;
    box-shadow: var(--btn-primary-shadow);
    position: relative;
    overflow: hidden;
}
.gencv-btn--primary:hover {
    background: var(--btn-primary-bg-hover);
    transform: translateY(-1px);
    box-shadow: var(--btn-primary-shadow-hover);
}
.gencv-btn--primary:disabled, .gencv-btn--primary[disabled] {
    opacity: 0.4;
    cursor: not-allowed;
    transform: none;
}

.gencv-btn--ghost {
    background: transparent;
    color: var(--ink-muted);
    border: 1px solid var(--line-strong);
}
.gencv-btn--ghost:hover {
    background: var(--ink-whisper);
    color: var(--ink);
    border-color: var(--ink-muted);
}

.gencv-btn--link {
    background: transparent;
    color: var(--ink-subtle);
    border: none;
    padding: 12px 8px;
    text-decoration: underline;
    text-underline-offset: 4px;
    text-decoration-color: var(--ink-whisper);
}
.gencv-btn--link:hover { color: var(--ink-muted); text-decoration-color: var(--ink-muted); }

.gencv-btn--lg {
    padding: 18px 36px;
    font-size: 16px;
}

.gencv-btn--xl {
    padding: 20px 40px;
    font-size: 17px;
    font-weight: 600;
}

/* CTA shimmer: ::before sweeps a darker sheen across the white surface */
.gencv-btn--primary::before {
    content: "";
    position: absolute;
    inset: 0;
    background: var(--btn-primary-sheen);
    transform: translateX(-120%);
    transition: transform 0.85s cubic-bezier(0.16, 1, 0.3, 1);
    pointer-events: none;
}
.gencv-btn--primary:hover::before { transform: translateX(120%); }

/* Compact XL/LG sizing on small screens — keeps prominent CTAs tap-friendly without overflowing. */
@media (max-width: 720px) {
    .gencv-btn--xl {
        padding: 16px 28px;
        font-size: 15px;
    }
    .gencv-btn--lg {
        padding: 14px 24px;
        font-size: 14px;
    }
}
