:root {
    --bg-page: #f7f4ef;
    --bg-surface: #ffffff;
    --bg-surface-soft: #fcfaf7;
    --text-primary: #2f2a24;
    --text-secondary: #6b6258;
    --brand-gold: #b38b6d;
    --brand-gold-deep: #8f6b51;
    --accent-success: #1f7a43;
    --accent-danger: #b9473f;
    --border-soft: #e7ddd3;
    --shadow-soft: 0 10px 26px rgba(94, 67, 45, 0.1);
    --shadow-hover: 0 16px 36px rgba(77, 52, 33, 0.16);
    --radius-sm: 8px;
    --radius-md: 14px;
    --radius-lg: 22px;
    --space-1: 0.25rem;
    --space-2: 0.5rem;
    --space-3: 0.75rem;
    --space-4: 1rem;
    --space-5: 1.5rem;
    --space-6: 2rem;
    --space-7: 3rem;
}

html {
    font-size: 16px;
    position: relative;
    min-height: 100%;
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

body {
    margin: 0;
    background: radial-gradient(circle at 15% -10%, #fff8ec 0%, var(--bg-page) 40%, #f4efe8 100%);
    color: var(--text-primary);
    font-family: "Segoe UI", "Helvetica Neue", Arial, sans-serif;
    line-height: 1.6;
}

a {
    color: var(--brand-gold-deep);
    transition: color 0.2s ease;
}

a:hover {
    color: var(--brand-gold);
}

.btn:focus,
.btn:active:focus,
.btn-link.nav-link:focus,
.form-control:focus,
.form-check-input:focus,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
    outline: none;
    box-shadow: 0 0 0 2px #fff, 0 0 0 4px rgba(179, 139, 109, 0.4);
}

@keyframes fadeInUpSoft {
    from {
        opacity: 0;
        transform: translateY(8px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.fade-in-up {
    animation: fadeInUpSoft 0.45s ease both;
}
