/* Explain: Bridal showroom cards, buttons, galleries, and commerce UI - */
.btn-primary {
    min-height: 3rem;
    border-radius: var(--radius-button);
    background: var(--brand-gold);
    color: var(--brand-dark);
    border: 1px solid var(--brand-gold);
    padding-inline: 1.5rem;
    transition: all 300ms ease;
    cursor: pointer;
    font-weight: 600;
}

.btn-primary:hover,
.btn-primary:focus-visible {
    background: var(--brand-gold-hover);
    border-color: var(--brand-gold-hover);
    transform: translateY(-1px);
}

.btn-outline {
    min-height: 3rem;
    border-radius: var(--radius-button);
    background: transparent;
    color: var(--brand-gold);
    border: 1px solid var(--brand-gold);
    padding-inline: 1.5rem;
    transition: all 300ms ease;
    cursor: pointer;
    font-weight: 600;
}

.btn-outline:hover,
.btn-outline:focus-visible {
    background: rgba(203, 161, 83, 0.1);
    transform: translateY(-1px);
}

.brand-card {
    border: 1px solid var(--brand-border);
    background: var(--brand-surface);
    box-shadow: var(--shadow-card);
    border-radius: var(--radius-card);
    transition: transform 300ms ease, box-shadow 300ms ease;
}

.brand-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-soft);
}

.toast-message {
    position: fixed;
    left: 50%;
    bottom: 1.25rem;
    z-index: 80;
    transform: translateX(-50%) translateY(1rem);
    opacity: 0;
    pointer-events: none;
    transition: all 240ms ease;
}

.toast-message.is-visible {
    transform: translateX(-50%) translateY(0);
    opacity: 1;
}

.mobile-sticky-cta {
    padding-bottom: max(0.75rem, env(safe-area-inset-bottom));
}