@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500;1,600;1,700&family=Dancing+Script:wght@400;500;600;700&family=Inter:wght@300;400;500;600;700&display=swap');

body {
    font-family: var(--font-sans);
    font-size: var(--fs-body);
    color: var(--color-text);
    background-color: var(--color-bg);
    overflow-x: hidden;
}

.container {
    width: 100%;
    max-width: var(--container-width);
    margin: 0 auto;
    padding-left: var(--container-padding);
    padding-right: var(--container-padding);
}

.section {
    padding: var(--space-4xl) 0;
}

.section--compact {
    padding: var(--space-3xl) 0;
}

/* Typography helpers */
.font-serif {
    font-family: var(--font-serif);
}

.font-script {
    font-family: var(--font-script);
}

.text-gold {
    color: var(--color-gold);
}

.text-muted {
    color: var(--color-text-muted);
}

/* Buttons */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-sm);
    padding: 0.8125rem 1.75rem;
    font-family: var(--font-sans);
    font-size: var(--fs-body);
    font-weight: var(--fw-medium);
    border-radius: var(--radius-full);
    transition: all var(--transition-base);
    white-space: nowrap;
    cursor: pointer;
}

.btn--primary {
    background: linear-gradient(135deg, var(--color-gold), var(--color-gold-dark));
    color: var(--color-white);
    box-shadow: var(--shadow-button);
}

.btn--primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 24px rgba(184, 146, 62, 0.35);
}

.btn--secondary {
    background: var(--color-white);
    color: var(--color-text);
    border: 1.5px solid var(--color-border);
}

.btn--secondary:hover {
    border-color: var(--color-gold);
    color: var(--color-gold);
    transform: translateY(-2px);
}

.btn--ghost {
    background: transparent;
    color: var(--color-gold);
    border: 1.5px solid var(--color-gold);
}

.btn--ghost:hover {
    background: var(--color-gold-muted);
    transform: translateY(-2px);
}

.btn--large {
    padding: 1rem 2.25rem;
    font-size: 1rem;
}

.btn svg,
.btn img {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
}

/* Selection */
::selection {
    background: var(--color-gold-muted);
    color: var(--color-text);
}

/* Scrollbar */
::-webkit-scrollbar {
    width: 8px;
}

::-webkit-scrollbar-track {
    background: var(--color-bg);
}

::-webkit-scrollbar-thumb {
    background: var(--color-border);
    border-radius: var(--radius-full);
}

::-webkit-scrollbar-thumb:hover {
    background: var(--color-gold-light);
}
