:root {
    /* Brand Colors (legacy names — kept for backward compat) */
    --charcoal-blue: #383d50;
    --charcoal-blue-dark: #272B38;
    --charcoal-blue-light: #666F93;
    --charcoal-light: #4e546b;

    --azure-mist: #daedf3;
    --azure-mist-dark: #93CBDC;
    --azure-mist-rich: #5AA3BB;
    --azure-deep: #b8d9e4;
    --azure-light: #edf7fa;

    --tan: #B08C80;
    --tan-dark: #845F52;
    --tan-light: #C8AFA7;

    --brown: #684D44;
    --brown-dark: #493630;
    --brown-light: #A27D70;
    --mauve-light: #8a6258;

    --rosy-granite: #a19a96;
    --rosy-granite-light: #ABA4A1;

    /* Core palette */
    --white: #ffffff;
    --parchment: #ede9e7;
    --parchment-dark: #ddd6d1;
    --silver: #cbc9c8;

    --gray: #959599;
    --gray-light: #b8b8bc;
    --gray-dark: #6b6b6f;

    /* Neutrals */
    --navy: #1a2d45;
    --cream: #f9f7f4;
    --black: #000000;
    --gray-100: #f4f5f7;
    --gray-200: #e5e7eb;
    --gray-600: #4b5563;
    --gray-800: #1f2937;

    /* Typography */
    --font-serif: 'Cormorant Garamond', sans-serif;
    --font-sans: 'Montserrat', sans-serif;

    /* Heading Sizes (responsive via clamp) */
    --h1-size: clamp(36px, 4vw, 50px);
    --h2-size: clamp(30px, 3vw, 44px);
    --h3-size: clamp(22px, 3vw, 30px);
    --h4-size: clamp(18px, 2.5vw, 24px);
    --h5-size: clamp(16px, 2vw, 20px);
    --h6-size: clamp(14px, 1.5vw, 18px);
    --p-size: clamp(14px, 1.5vw, 17px);
    --small-text: clamp(12px, 1.5vw, 15px);

    /* Home-specific heading sizes (only where different) */
    --h1-home-size: clamp(34px, 4vw, 80px);
    --h2-home-size: clamp(28px, 3.5vw, 52px);
    --h3-home-size: clamp(22px, 3vw, 42px);

    --section-padding: clamp(40px, 8vw, 100px);
    --section-narrow-padding: 20px;
    --section-padding-lr: clamp(20px, 8vw, 60px);
    --card-padding: clamp(15px, 3vw, 30px);
    --card-border-radius: 4px;
    --section-pad-v: clamp(60px, 8vw, 100px);
    --section-pad-h: clamp(20px, 8vw, 60px);
    --content-pad: clamp(40px, 6vw, 80px);

    /* Repeated shadow values — used on cards, CTA, contact form */
    --shadow-sm: 0 4px 20px rgba(0, 0, 0, 0.06);
    --shadow-md: 0 16px 40px rgba(0, 0, 0, 0.08);
    --shadow-lg: 0 20px 60px rgba(0, 0, 0, 0.15);

    /* Repeated hover shadow on orange buttons */
    --shadow-orange: 0 8px 16px rgba(227, 94, 46, 0.35);

    /* Repeated translucent white values (used across dark backgrounds) */
    --white-60: rgba(255, 255, 255, 0.6);
    --white-70: rgba(255, 255, 255, 0.7);
    --white-80: rgba(255, 255, 255, 0.8);

    /* Transition — used everywhere as 0.2s or 0.3s ease */
    --transition: 0.2s ease;
    --transition-slow: 0.3s ease;

    /* Container max-width — repeated as 1300px and 1340px */
    --container-max: 100%;
    --container-footer-max: 100%;

    /* Hover lift — used on nearly every card */
    --hover-lift: translateY(-4px);
}

/*!  RESET & BASE ===== */

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: var(--font-sans);
    font-size: 17px;
    line-height: 1.7;
    color: var(--brown-dark);
    background: var(--white);
    -webkit-font-smoothing: antialiased;
    overflow-x: hidden;
}

a {
    color: var(--brown);
}

a:hover {
    color: var(--tan);
}

/*! ===== TYPOGRAPHY ===== */

h1,
h2,
h3,
h4,
h5,
h6 {
    margin-bottom: 1.6rem;
    color: var(--charcoal-blue);
    line-height: 1.15;
    font-family: var(--font-serif);
    font-weight: 300;
    margin-bottom: 20px;
}

h1 {
    font-size: var(--h1-size);
}

h2 {
    font-size: var(--h2-size);
}

h3 {
    font-size: var(--h3-size);
}

h4 {
    font-size: var(--h4-size);
}

h5 {
    font-size: var(--h5-size);
}

h6 {
    font-size: var(--h6-size);
}

h1 em,
h2 em {
    font-style: italic;
    color: var(--brown-light);
}


/* Home page hero sizing (only h1-h3 differ) */
.home h1 {
    font-size: var(--h1-home-size);
}

.home h2 {
    font-size: var(--h2-home-size);
}

.home h3 {
    font-size: var(--h3-home-size);
}

p {
    font-size: var(--p-size);
    margin-bottom: 1.6rem;
    color: var(--brown-dark);
}

li {
    font-size: var(--p-size);
    color: var(--brown-dark);
}

ul,
ol {
    padding-left: 60px;
    margin-bottom: 1.6rem;
}

/*! Light text on dark backgrounds */
.rw-dark-bg h1,
.rw-dark-bg h2,
.rw-dark-bg h3,
.rw-dark-bg h4,
.rw-dark-bg h5,
.rw-dark-bg h6,
.rw-dark-bg p,
.rw-dark-bg address,
.rw-dark-bg th,
.rw-dark-bg td,
.rw-dark-bg li,
.light h1,
.light h2,
.light h3,
.light h4,
.light h5,
.light h6,
.light p,
.light li {
    color: var(--white);
}

.rw-dark-bg .gfield_checkbox label {
    color: var(--white);
}