/*
 * Stripe checkout button and account page extras (added October 2026).
 * Loaded on every page by includes/header.php, after style.css.
 *
 * Mobile first: on phones the buy button fills the panel width with a tall,
 * easy tap target and text that can wrap. On wider screens it keeps the same
 * look but stops at 420px wide so it lines up with the login form.
 */

.buy-form {
    margin-top: 1rem;
}

.btn-buy {
    display: flex;
    width: 100%;
    max-width: 420px;
    min-height: 52px;
    padding: 0.85rem 1.25rem;
    font-size: 1.05rem;
    line-height: 1.25;
    text-align: center;
    white-space: normal;
    box-shadow: 0 6px 16px rgba(196, 30, 58, 0.25);
}

.btn-buy:hover {
    transform: translateY(-1px);
}

.btn-buy:disabled {
    opacity: 0.75;
    cursor: wait;
    transform: none;
}

.buy-hint {
    margin-top: 0.6rem;
    margin-bottom: 0;
}

/* My Account: "nothing to renew" note and payment history.
   (.account-renew kept its old name from the 1-year plan.) */
.account-renew {
    margin-top: 1.5rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--color-border);
}

.account-renew > p {
    margin-top: 0;
    color: var(--color-muted);
}

/* Buy button area when the visitor already has access (buy-button.php) */
.already-member-note {
    margin: 0 0 0.75rem;
}

.payment-history-title {
    margin: 1.75rem 0 0.5rem;
    font-size: 1.1rem;
}

.payment-history {
    list-style: none;
    margin: 0;
    padding: 0;
    font-size: 0.95rem;
}

.payment-history li {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 0.25rem 1rem;
    padding: 0.6rem 0;
    border-bottom: 1px solid var(--color-border);
}

@media (max-width: 480px) {
    .btn-buy {
        max-width: none;
        font-size: 1rem;
    }

    .payment-history li {
        flex-direction: column;
    }
}
