
:root {
    --wine-900: #3E0F1C;
    --wine-800: #4E1424;
    --wine-700: #740317;
    --wine-600: #7A2440;
    --wine-500: #8E2E4B;

    --sand-50:  #FBF6EF;
    --sand-100: #F6EDE1;
    --sand-200: #F3ECE8;
    --sand-300: #E3CFB7;

    --gold:      #C9A36A;
    --gold-soft: #DCC08F;

    --ink:      #2A161B;
    --ink-soft: #6B5257;

    --white:    #FFFFFF;
    --radius:   20px;
    --radius-sm:12px;
    --shadow:   0 18px 40px -18px rgba(62, 15, 28, .35);
    --shadow-sm:0 10px 24px -14px rgba(62, 15, 28, .35);

    --header-h: 76px;

    --font-display: 'Cormorant Garamond', Georgia, serif;
    --font-body:    'Manrope', system-ui, -apple-system, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }

html {
    height: 100%;
    scroll-behavior: smooth;
}

body {
    
    margin: 0;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    font-family: var(--font-body);
    color: var(--ink);
    background: var(--sand-50);
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
}

img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
h1, h2, h3, h4 {
    font-family: var(--font-display);
    font-weight: 600;
    line-height: 1.1;
    margin: 0 0 .5em;
    color: var(--wine-900);
}
h1 em, h2 em, h3 em { font-style: italic; color: var(--wine-600); }
p { margin: 0 0 1em; }
ul, ol { margin: 0; padding: 0; list-style: none; }
button { font: inherit; cursor: pointer; }

main {
    flex: 1 0 auto;
}

.container {
    width: 100%;
    max-width: 1180px;
    margin: 0 auto;
    padding: 0 24px;
}

.header-spacer {
    height: var(--header-h);
    flex-shrink: 0;
}

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 12px 22px;
    border-radius: 999px;
    font-weight: 600;
    font-size: .95rem;
    border: 1.5px solid transparent;
    white-space: nowrap;
    transition: transform .2s ease, background .2s ease, color .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.btn:hover { transform: translateY(-2px); }
.btn-lg { padding: 15px 30px; font-size: 1rem; }
.btn-small { padding: 8px 16px; font-size: .85rem; }

.btn-primary {
    background: var(--wine-700);
    color: var(--sand-50);
    box-shadow: 0 12px 24px -12px rgba(116, 3, 23, .55);
}
.btn-primary:hover { background: var(--wine-800); }

.btn-outline {
    border-color: var(--wine-700);
    color: var(--wine-700);
    background: transparent;
}
.btn-outline:hover { background: var(--wine-700); color: var(--sand-50); }

.btn-light {
    background: var(--sand-100);
    color: var(--wine-800);
}
.btn-light:hover { background: var(--white); }

.btn-outline-light {
    border-color: rgba(251, 246, 239, .6);
    color: var(--sand-50);
}
.btn-outline-light:hover {
    background: rgba(251, 246, 239, .12);
    border-color: var(--sand-50);
}