/* =================================================================
   BREAKPOINTS REFERENCE
   =================================================================
   Mobile:   768px   (component layouts; compact header)
   Nav:      1140px  (max-width: 1140px shows the hamburger/drawer, hides mega menus)
   Tablet:   1024px  (for intermediate layouts where needed)
   Desktop:  1360px  (design container; Figma frame is 1920 wide)

   These values are hardcoded in @media queries throughout this file
   and in footer.php / assets/js/theme.js. Update all locations if changed.
   ================================================================= */

/**
 * Flora & Fauna â€” Critical Hit theme
 *
 * Fonts | Tokens | Base | Header | Mega Menu | Footer | Components
 *
 * Fonts are served by Adobe Fonts (use.typekit.net/klv5sea.css), enqueued
 * in inc/assets.php:
 *   - "playfair-display" 400/700 (+ italics)
 *   - "avenir-lt-pro"    400 Roman / 500 Medium / 700 Heavy / 800 Black (+ italics)
 */


/* =================================================================
   TOKENS â€” Flora & Fauna Design Kit (verbatim)
   ================================================================= */

:root {
    /* Primary â€” Champagne / Chocolate scale */
    --color-primary-50: #f7f7f5;
    --color-primary-100: #e6deca;
    --color-primary-200: #dbcbab;
    --color-primary-300: #d1ba8b;
    --color-primary-400: #c6a86a;   /* Champagne */
    --color-primary-500: #a18752;
    --color-primary-600: #7d683b;
    --color-primary-700: #5b4a25;
    --color-primary-800: #3c2e10;   /* Chocolate */
    --color-primary-900: #1e1401;

    /* Secondary â€” Hunter Green scale */
    --color-secondary-50: #f4f8f6;
    --color-secondary-100: #c4ceca;
    --color-secondary-200: #95a79f;
    --color-secondary-300: #698076;
    --color-secondary-400: #3e5c50;   /* Hunter Green */
    --color-secondary-500: #344e43;
    --color-secondary-600: #2a4037;
    --color-secondary-700: #20322b;
    --color-secondary-800: #17251f;
    --color-secondary-900: #0e1914;

    /* Accent â€” Merlot scale */
    --color-accent-50: #fcf5f4;
    --color-accent-100: #d6bfbd;
    --color-accent-200: #af8c89;
    --color-accent-300: #895b57;
    --color-accent-400: #632d2a;   /* Merlot */
    --color-accent-500: #562724;
    --color-accent-600: #49211e;
    --color-accent-700: #3c1b19;
    --color-accent-800: #301513;
    --color-accent-900: #240f0e;

    /* Neutral â€” Light Gray / Black scale */
    --color-neutral-50: #f7f7f7;
    --color-neutral-100: #d8d8d8;   /* Light Gray */
    --color-neutral-200: #bababa;
    --color-neutral-300: #9c9c9c;
    --color-neutral-400: #808080;
    --color-neutral-500: #656565;
    --color-neutral-600: #4b4b4b;
    --color-neutral-700: #333333;
    --color-neutral-800: #1c1c1c;
    --color-neutral-900: #161616;   /* Black */

    /* Error scale */
    --color-error-50: #f7f2f2;
    --color-error-100: #f0dbdb;
    --color-error-200: #e6b2b2;
    --color-error-300: #df7b7b;
    --color-error-400: #db3e3e;
    --color-error-500: #dc2626;
    --color-error-600: #af1a1a;
    --color-error-700: #851515;
    --color-error-800: #591313;
    --color-error-900: #390f0f;

    /* Brand aliases */
    --color-brand: var(--color-primary-400);
    --color-brand-dark: var(--color-primary-800);
    --color-brand-light: var(--color-primary-200);
    --color-brand-rgb: 198, 168, 106;

    /* Layout aliases */
    --color-bg-light: var(--color-primary-50);
    --color-bg-dark: var(--color-neutral-900);
    --color-bg-footer: var(--color-neutral-900);
    --color-text: var(--color-primary-900);
    --color-text-muted: var(--color-primary-700);
    --color-text-on-dark: #ffffff;
    --color-cream: var(--color-primary-100);

    /* Typography â€” Design Kit */
    --font-sans: "avenir-lt-pro", "Avenir", "Avenir Next", system-ui, -apple-system, sans-serif;
    --font-heading: "playfair-display", "Playfair Display", Georgia, "Times New Roman", serif;

    --text-xs: 0.75rem;                 /* 12px */
    --text-sm: 0.875rem;                /* 14px */
    --text-md: 1rem;                    /* 16px  (text-sm style: Avenir Medium 16/24) */
    --text-base: 1.25rem;               /* 20px  (text-base: Avenir Roman 20/1.5) */
    --text-lg: 1.25rem;
    --text-xl: 1.5rem;
    --text-2xl: 1.5rem;                 /* 24px  Headline 4 / text-2xl: Playfair Bold 24/1.5 */
    --text-3xl: 2.25rem;                /* 36px  Headline 3 / text-3xl: Playfair Bold 36/1.5 */
    --text-4xl: 4rem;                   /* 64px  Headline 2 / text-4xl: Playfair Bold 64/1.1/-2% */
    --text-5xl: 5rem;                   /* 80px  Headline 1: Playfair Bold 80/1.0 */
    --text-eyebrow: 0.75rem;            /* 12px  Avenir Medium, tracking 10% (was 1rem, reduced Oct 5 review) */
    --text-label: 0.75rem;              /* 12px  Avenir Heavy/Medium, tracking 2.73px (nav, buttons, links) */

    --leading-none: 1;
    --leading-tight: 1.1;
    --leading-snug: 1.2;
    --leading-normal: 1.5;
    --leading-relaxed: 1.625;
    --leading-label: 18.9px;

    --tracking-label: 2.73px;
    --tracking-eyebrow: 0.1em;
    --tracking-h2: -0.02em;

    /* Spacing */
    --space-xs: 0.5rem;
    --space-sm: 0.75rem;
    --space-md: 1rem;
    --space-lg: 1.5rem;
    --space-xl: 2rem;
    --space-2xl: 3rem;
    --space-3xl: 4rem;
    --section-y: 190px;                 /* desktop section padding */
    --section-y-sm: 72px;               /* mobile section padding-top */

    /* Layout */
    --container-max: 1360px;            /* Figma "Container" incl. 84px gutters (1192 content) */
    --gutter: 84px;
    --header-h: 97px;

    /* Misc */
    --radius: 0;
    --radius-sm: 2px;
    --shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1);
    --shadow-lg: 0 24px 48px -8px rgba(60, 46, 16, 0.18);
    --transition: 200ms ease;
}

@media (max-width: 1024px) {
    :root {
        --gutter: 40px;
        --text-4xl: 3rem;
        --text-3xl: 2rem;
    }
}

@media (max-width: 768px) {
    :root {
        --gutter: 24px;
        --header-h: 64px;
        --text-base: 0.9375rem;         /* 15px / 24px */
        --text-2xl: 1.5rem;             /* 24px */
        --text-3xl: 1.875rem;           /* 30px / 1.18 */
        --text-4xl: 1.875rem;           /* 30px / 1.18 (Occasions H2 is 34px, set per component) */
        --text-5xl: 2.5rem;
        --text-eyebrow: 0.75rem;        /* 12px */
        --text-label: 0.75rem;
        --tracking-label: 1.68px;
        --leading-label: normal;
        --leading-tight: 1.18;
        --section-y: 72px;
    }
}


/* =================================================================
   BASE
   ================================================================= */

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

html { scroll-behavior: smooth; }

body {
    margin: 0;
    font-family: var(--font-sans);
    font-weight: 400;
    font-size: var(--text-base);
    line-height: var(--leading-normal);
    color: var(--color-text);
    background: var(--color-primary-50);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

img, video { max-width: 100%; height: auto; display: block; }

/* Animate on scroll */
.animate-on-scroll {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}
.animate-on-scroll.is-visible {
    opacity: 1;
    transform: translateY(0);
}
@media (prefers-reduced-motion: reduce) {
    .animate-on-scroll {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

/* Background image utility for components */
[class*="--bg-image"] {
    position: relative;
    background: var(--color-bg-dark) center/cover no-repeat;
    color: #fff;
}
[class*="--bg-image"] .eyebrow { color: var(--color-brand-light); }
[class*="--bg-image"] > .container,
[class*="--bg-image"] > [class*="__inner"] { position: relative; z-index: 1; }
[class*="__overlay"] { position: absolute; inset: 0; }

h1, h2, h3, h4, h5, h6 {
    margin: 0 0 var(--space-md);
    font-family: var(--font-heading);
    font-weight: 700;
    line-height: var(--leading-normal);
    color: var(--color-primary-900);
    overflow-wrap: break-word;
}
h1 { font-size: var(--text-5xl); line-height: var(--leading-none); color: var(--color-primary-500); }
h2 { font-size: var(--text-4xl); line-height: var(--leading-tight); letter-spacing: var(--tracking-h2); color: var(--color-primary-900); }
h3 { font-size: var(--text-3xl); line-height: var(--leading-normal); color: var(--color-primary-900); }
h4 { font-size: var(--text-2xl); line-height: var(--leading-normal); color: var(--color-primary-500); }
h5, h6 { font-size: var(--text-xl); }

p { margin: 0 0 var(--space-lg); }
p:last-child { margin-bottom: 0; }

a { color: var(--color-primary-800); }

/* Type helpers (Figma text styles) */
.t-eyebrow,
.eyebrow {
    display: block;
    margin: 0 0 var(--space-sm);
    font-family: var(--font-sans);
    font-size: var(--text-eyebrow);
    font-weight: 500;
    line-height: var(--leading-normal);
    letter-spacing: var(--tracking-eyebrow);
    text-transform: uppercase;
    color: var(--color-secondary-500);
}
.t-label {
    font-family: var(--font-sans);
    font-size: var(--text-label);
    font-weight: 500;
    line-height: var(--leading-label);
    letter-spacing: var(--tracking-label);
    text-transform: uppercase;
}
.subhead {
    font-size: var(--text-base);
    color: var(--color-text-muted);
}


/* =================================================================
   ACCESSIBILITY
   ================================================================= */

.skip-link {
    position: absolute;
    left: -9999px;
    top: var(--space-sm);
    background: var(--color-primary-800);
    color: #fff;
    padding: var(--space-sm) var(--space-md);
    font-weight: 700;
    text-decoration: none;
    z-index: 9999;
}
.skip-link:focus {
    left: var(--space-sm);
    outline: 2px solid var(--color-primary-400);
    outline-offset: 2px;
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

:focus-visible {
    outline: 2px solid var(--color-primary-400);
    outline-offset: 2px;
}
:focus:not(:focus-visible) { outline: none; }

[class*="--bg-dark"] :focus-visible,
[class*="--bg-brand"] :focus-visible,
[class*="--bg-image"] :focus-visible,
.site-footer :focus-visible {
    outline-color: var(--color-primary-200);
}

button,
.btn,
input[type="submit"],
input[type="button"],
a.btn {
    min-height: 44px;
}

html {
    text-size-adjust: 100%;
    -webkit-text-size-adjust: 100%;
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
    .animate-on-scroll {
        opacity: 1 !important;
        transform: none !important;
    }
}

/* Container */
.container {
    width: 100%;
    max-width: var(--container-max);
    margin: 0 auto;
    padding: 0 var(--gutter);
}
.container--narrow { max-width: 900px; }
.container--wide { max-width: 1600px; }

/* Prose (WYSIWYG content) */
.prose h2 { font-size: var(--text-3xl); line-height: var(--leading-normal); letter-spacing: 0; margin-top: var(--space-xl); }
.prose h3 { font-size: var(--text-2xl); margin-top: var(--space-lg); }
.prose ul, .prose ol { padding-left: var(--space-lg); }
.prose li { margin-bottom: var(--space-xs); }
.prose a { color: var(--color-primary-800); text-decoration: underline; }
.prose p { color: var(--color-text-muted); }

/* Buttons â€” Avenir Heavy 12px, tracking 2.73px, uppercase, champagne fill */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-xs);
    padding: 15px 26px;
    font-family: var(--font-sans);
    font-size: var(--text-label);
    font-weight: 700;
    line-height: var(--leading-label);
    letter-spacing: var(--tracking-label);
    text-transform: uppercase;
    text-decoration: none;
    border-radius: var(--radius);
    border: 1px solid transparent;
    cursor: pointer;
    transition: background-color var(--transition), color var(--transition), border-color var(--transition);
    -webkit-appearance: none;
    appearance: none;
}
.btn--primary {
    background: var(--color-primary-400);
    color: var(--color-primary-800);
    border-color: var(--color-primary-400);
}
.btn--primary:hover,
.btn--primary:focus-visible {
    background: var(--color-primary-300);
    border-color: var(--color-primary-300);
    color: var(--color-primary-900);
}
.btn--secondary {
    background: transparent;
    color: var(--color-primary-800);
    border-color: var(--color-primary-800);
    font-weight: 500;
    padding: 18px 38px;
}
.btn--secondary:hover,
.btn--secondary:focus-visible {
    background: var(--color-primary-800);
    color: var(--color-primary-50);
}
.btn--white {
    background: var(--color-primary-100);
    color: var(--color-primary-800);
    border-color: var(--color-primary-100);
}
.btn--white:hover,
.btn--white:focus-visible {
    background: #fff;
    border-color: #fff;
}
.btn--outline-light {
    background: transparent;
    color: #fff;
    border-color: var(--color-primary-200);
    font-weight: 500;
    padding: 19px 38px;
}
.btn--outline-light:hover,
.btn--outline-light:focus-visible {
    background: rgba(230, 222, 202, 0.12);
    border-color: var(--color-primary-100);
}
@media (max-width: 768px) {
    .btn { border-radius: var(--radius-sm); }
    .btn--outline-light,
    .btn--secondary { padding: 15px 28px; }
}

/* Underlined text links ("Explore", "Read the Menu", "See all nine menus") */
.link-line {
    display: inline-block;
    padding-bottom: 5px;
    font-family: var(--font-sans);
    font-size: var(--text-label);
    font-weight: 500;
    line-height: var(--leading-label);
    letter-spacing: var(--tracking-label);
    text-transform: uppercase;
    text-decoration: none;
    color: var(--color-primary-800);
    border-bottom: 1px solid var(--color-primary-800);
    transition: color var(--transition), border-color var(--transition);
}
.link-line:hover,
.link-line:focus-visible {
    color: var(--color-primary-500);
    border-color: var(--color-primary-500);
}
.link-line--light {
    color: var(--color-primary-100);
    border-color: var(--color-primary-100);
}
.link-line--light:hover,
.link-line--light:focus-visible {
    color: #fff;
    border-color: #fff;
}
@media (max-width: 768px) {
    .link-line {
        padding-bottom: 0;
        border-bottom: 0;
        text-decoration: underline;
        text-underline-position: from-font;
        font-size: 11px;
        letter-spacing: 2.2px;
        line-height: normal;
    }
}

.link-arrow {
    display: inline-flex;
    align-items: center;
    gap: var(--space-xs);
    font-weight: 600;
    color: var(--color-primary-800);
    text-decoration: none;
}
.link-arrow svg { width: 1em; height: 1em; transition: transform var(--transition); }
.link-arrow:hover svg { transform: translateX(4px); }

/* Icons */
svg { width: 24px; height: 24px; flex-shrink: 0; }
.ff-icon { display: inline-flex; align-items: center; justify-content: center; line-height: 0; }
.ff-icon svg { width: 100%; height: 100%; display: block; }


/* =================================================================
   HEADER
   ================================================================= */

.site-header {
    position: sticky;
    top: 0;
    z-index: 200;
    background: var(--color-primary-50);
    border-bottom: 1px solid var(--color-primary-800);
}
.site-header__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-lg);
    height: var(--header-h);
    padding: 22px 84px 23px;
}
.site-header__logo {
    display: block;
    flex-shrink: 0;
    width: 262.3px;
    line-height: 0;
}
.site-header__logo img,
.site-header__logo svg { width: 100%; height: auto; display: block; }
body.scrolled .site-header {
    box-shadow: 0 2px 16px rgba(30, 20, 1, 0.06);
}

/* Hamburger (mobile) */
.site-header__toggle {
    display: none;
    width: 44px;
    height: 44px;
    padding: 0;
    margin-right: -10px;
    background: none;
    border: none;
    cursor: pointer;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 5.6px;
    color: var(--color-neutral-900);
}
.site-header__toggle span,
.site-header__toggle::before,
.site-header__toggle::after {
    content: '';
    display: block;
    width: 24px;
    height: 1.4px;
    background: currentColor;
    transition: transform var(--transition), opacity var(--transition);
}
.site-header__toggle[aria-expanded="true"] span { opacity: 0; transform: scaleX(0); }
/* Diagonal strokes rasterize lighter than horizontals; 2px keeps the X visually equal to the 1.4px bars */
.site-header__toggle[aria-expanded="true"]::before,
.site-header__toggle[aria-expanded="true"]::after { height: 2px; }
.site-header__toggle[aria-expanded="true"]::before { transform: translateY(7px) rotate(45deg); }
.site-header__toggle[aria-expanded="true"]::after { transform: translateY(-7px) rotate(-45deg); }

/* Primary nav */
.site-nav {
    display: flex;
    align-items: center;
    gap: 34px;
}
.site-nav__menu {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    align-items: center;
    gap: 34px;
}
.site-nav__menu > li { position: relative; }
@media only screen and (min-width:1141px) {
    #menu-item-450 {
        display:none;
    }
}
.site-nav__menu > li > a {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-family: var(--font-sans);
    font-size: var(--text-label);
    font-weight: 700;
    line-height: var(--leading-label);
    letter-spacing: var(--tracking-label);
    text-transform: uppercase;
    text-decoration: none;
    color: var(--color-primary-800);
    white-space: nowrap;
    transition: color var(--transition);
}
.site-nav__menu > li > a:hover,
.site-nav__menu > li > a:focus-visible,
.site-nav__menu > li.current-menu-item > a,
.site-nav__menu > li.current-menu-ancestor > a,
.site-nav__menu > li.is-open > a {
    color: var(--color-primary-400);
}
/* Chevron for items with children (exported Figma vector) */
.site-nav__menu > .menu-item-has-children > a::after {
    content: '';
    display: block;
    width: 12.75px;
    height: 6.65px;
    background: currentColor;
    -webkit-mask: url("../images/icons/chevron-down-mask.svg") no-repeat center / contain;
    mask: url("../images/icons/chevron-down-mask.svg") no-repeat center / contain;
    transition: transform var(--transition);
}
.site-nav__menu > .menu-item-has-children.is-open > a::after {
    transform: rotate(180deg);
}
.site-nav__actions {
    display: flex;
    align-items: center;
    gap: 34px;
}
.site-nav__phone {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    font-size: var(--text-label);
    font-weight: 700;
    line-height: var(--leading-label);
    letter-spacing: var(--tracking-label);
    text-transform: uppercase;
    text-decoration: none;
    color: var(--color-primary-800);
    white-space: nowrap;
}
.site-nav__phone:hover { color: var(--color-primary-400); }
.site-nav__phone .ff-icon { width: 13px; height: 13px; }
.site-nav__phone svg { width: 13px; height: 13px; }
.site-nav__cta { white-space: nowrap; }
.btn--sm { padding: 15px 26px; }

/* Desktop nav (above 1140px): hide WP sub-menus (mega menu panels replace them) */
@media (min-width: 1141px) {
    .site-nav__menu .sub-menu { display: none; }
    .site-header__toggle,
    .submenu-toggle,
    .site-nav__mobile-only { display: none !important; }
}

/* Tablet compaction */
@media (max-width: 1360px) and (min-width: 1141px) {
    .site-header__inner { padding-left: var(--gutter); padding-right: var(--gutter); }
    .site-nav, .site-nav__menu, .site-nav__actions { gap: 22px; }
    .site-header__logo { width: 200px; }
}
/* 1200px down to the mobile breakpoint: tighter tracking on top-level links */
@media (max-width: 1200px) and (min-width: 1141px) {
    .site-nav, .site-nav__menu, .site-nav__actions { gap: 18px; }
    .site-nav__menu > li > a { letter-spacing: 1.5px; }
}

/* Mobile / tablet nav drawer (1140px and below) */
@media (max-width: 1140px) {
    .site-header__inner { padding-left: var(--gutter); padding-right: var(--gutter); }
    .site-header__toggle { display: flex; position: relative; z-index: 310; touch-action: manipulation; -webkit-tap-highlight-color: transparent; }

    .site-nav {
        position: fixed;
        top: var(--header-h);
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 300;
        display: block;
        background: var(--color-primary-50);
        padding: 8px var(--gutter) 40px;
        transform: translateX(100%);
        transition: transform 250ms ease;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
    }
    .site-nav.is-open { transform: translateX(0); }
    body.nav-open { overflow: hidden; }

    .site-nav__menu { flex-direction: column; align-items: stretch; gap: 0; }
    .site-nav__menu > li {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        border-bottom: 1px solid var(--color-primary-200);
    }
    .site-nav__menu > li > a {
        flex: 1;
        padding: 22px 0;
        font-size: 13px;
        letter-spacing: 2.6px;
        line-height: 1.4;
        white-space: normal;
    }
    .site-nav__menu > .menu-item-has-children > a::after { display: none; }
    .submenu-toggle {
        width: 56px;
        height: 56px;
        margin-right: -16px;
        -webkit-tap-highlight-color: transparent;
        touch-action: manipulation;
        background: none;
        border: 0;
        cursor: pointer;
        color: var(--color-primary-800);
        display: flex;
        align-items: center;
        justify-content: center;
    }
    .submenu-toggle::before {
        content: '';
        display: block;
        width: 12.75px;
        height: 6.65px;
        background: currentColor;
        -webkit-mask: url("../images/icons/chevron-down-mask.svg") no-repeat center / contain;
        mask: url("../images/icons/chevron-down-mask.svg") no-repeat center / contain;
        transition: transform var(--transition);
    }
    .site-nav__menu > .menu-item-has-children.is-open > .submenu-toggle::before { transform: rotate(180deg); }
    .site-nav__menu .sub-menu {
        flex-basis: 100%;
        list-style: none;
        margin: 0;
        padding: 0;
        max-height: 0;
        overflow: hidden;
        transition: max-height 250ms ease;
    }
    .site-nav__menu > .menu-item-has-children.is-open > .sub-menu {
        max-height: 900px;
        padding-bottom: 14px;
    }
    .site-nav__menu .sub-menu a {
        display: block;
        padding: 9px 0;
        font-family: var(--font-heading);
        font-weight: 700;
        font-size: 20px;
        line-height: 1.3;
        color: var(--color-primary-500);
        text-decoration: none;
    }
    .site-nav__menu .sub-menu li.current-menu-item > a,
    .site-nav__menu .sub-menu a:hover { color: var(--color-primary-800); }

    .site-nav__actions {
        flex-direction: column;
        align-items: stretch;
        gap: 18px;
        padding-top: 28px;
    }
    .site-nav__phone { justify-content: center; font-size: 13px; letter-spacing: 1.3px; }
    .site-nav__cta { width: 100%; }
    .site-nav__cta .btn { width: 100%; padding: 16px; }
}


/* =================================================================
   MEGA MENU
   ================================================================= */

.mega-overlay {
    position: fixed;
    top: var(--header-h);
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 190;
    background: rgba(0, 0, 0, 0.35);
    -webkit-backdrop-filter: blur(20px);
    backdrop-filter: blur(20px);
    opacity: 0;
    visibility: hidden;
    transition: opacity 250ms ease, visibility 250ms ease;
    pointer-events: none;
}
.mega-overlay.is-active {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.c-mega-menu {
    position: absolute;
    top: calc(100% + 20px);
    left: 50%;
    z-index: 210;
    width: 1240px;
    max-width: calc(100vw - 40px);
    transform: translate(-50%, -6px);
    display: flex;
    align-items: stretch;
    background: var(--color-primary-50);
    border: 1px solid var(--color-neutral-700);
    box-shadow: var(--shadow-lg);
    opacity: 0;
    visibility: hidden;
    transition: opacity 220ms ease, transform 220ms ease, visibility 220ms ease;
    pointer-events: none;
    overflow: hidden;
}
.c-mega-menu.is-active {
    opacity: 1;
    visibility: visible;
    transform: translate(-50%, 0);
    pointer-events: auto;
}

/* Feature card (left) */
.c-mega-menu__feature {
    flex: 0 0 360px;
    display: flex;
    flex-direction: column;
    background: var(--color-neutral-900);
    color: #fff;
    overflow: hidden;
}
.c-mega-menu__feature-copy {
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 34px 32px 30px;
}
.c-mega-menu__feature-title {
    margin: 0;
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 36px;
    line-height: 1.2;
    letter-spacing: 0;
    color: var(--color-primary-200);
}
.c-mega-menu__feature-text {
    margin: 0;
    font-size: 14px;
    line-height: 22px;
    color: #fff;
}
.c-mega-menu__feature-image {
    flex: 1 0 0;
    min-height: 160px;
    position: relative;
}
.c-mega-menu__feature-image img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Content (right) */
.c-mega-menu__content {
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 24px;
    padding: 36px 44px;
}
.c-mega-menu__label {
    margin: 0;
    font-size: var(--text-label);
    font-weight: 700;
    line-height: var(--leading-label);
    letter-spacing: var(--tracking-label);
    text-transform: uppercase;
    color: var(--color-primary-800);
}
.c-mega-menu__columns {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 26px 48px;
}
.c-mega-menu--cols-1 .c-mega-menu__columns { grid-template-columns: minmax(0, 1fr); }
.c-mega-menu--cols-3 .c-mega-menu__columns { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.c-mega-menu__col { display: flex; flex-direction: column; gap: 26px; }
.c-mega-menu__item {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    text-decoration: none;
    color: inherit;
}
.c-mega-menu__ornament {
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--color-neutral-900);
    border: 1px solid var(--color-neutral-900);
    border-radius: var(--radius-sm);
    transition: background-color var(--transition);
}
.c-mega-menu__ornament img,
.c-mega-menu__ornament svg {
    width: 28px;
    height: 26px;
    object-fit: contain;
}
.c-mega-menu__item-text { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.c-mega-menu__item-title {
    margin: 0;
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 24px;
    line-height: 1.5;
    color: var(--color-primary-500);
    transition: color var(--transition);
}
.c-mega-menu__item:hover .c-mega-menu__item-title,
.c-mega-menu__item:focus-visible .c-mega-menu__item-title { color: var(--color-primary-800); }
.c-mega-menu__item:hover .c-mega-menu__ornament { background: var(--color-primary-800); border-color: var(--color-primary-800); }
.c-mega-menu__item-desc {
    margin: 0;
    font-size: 13px;
    line-height: 20px;
    color: var(--color-primary-700);
}
.c-mega-menu__hairline {
    width: 100px;
    height: 1px;
    background: var(--color-primary-400);
}
.c-mega-menu__cta {
    position: relative;
    display: flex;
    align-items: center;
    gap: 24px;
    height: 76px;
    padding: 0 25px;
    background: rgba(230, 222, 202, 0.5);
    border: 1px solid var(--color-primary-100);
    text-decoration: none;
    color: inherit;
    overflow: hidden;
    transition: background-color var(--transition);
}
.c-mega-menu__cta:hover { background: rgba(230, 222, 202, 0.85); }
.c-mega-menu__cta-title {
    margin: 0;
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 24px;
    line-height: 1.5;
    color: var(--color-primary-900);
    white-space: nowrap;
}
.c-mega-menu__cta-text {
    margin: 0;
    font-size: 13px;
    line-height: 20px;
    color: var(--color-primary-700);
    white-space: nowrap;
}
.c-mega-menu__cta-arrow { width: 20px; height: 12px; flex-shrink: 0; }
.c-mega-menu__cta-arrow svg { width: 20px; height: 12px; }
.c-mega-menu__cta-art {
    position: absolute;
    right: 16px;
    top: -11px;
    width: 147px;
    height: 92px;
    pointer-events: none;
}
.c-mega-menu__cta-art img { width: 100%; height: 100%; object-fit: contain; }

@media (max-width: 1140px) {
    .c-mega-menu, .mega-overlay { display: none !important; }
}

/* Compact header (phones) */
@media (max-width: 768px) {
    .site-header__inner {
        height: var(--header-h);
        padding: 16px 20px;
        gap: 0;
    }
    .site-header__logo { width: 161px; }
}


/* =================================================================
   FOOTER
   ================================================================= */

.site-footer {
    background: var(--color-neutral-900);
    color: rgba(255, 255, 255, 0.7);
}
.site-footer__inner {
    display: flex;
    align-items: flex-start;
    padding-top: 110px;
    padding-left: 86px;
    padding-right: 86px;
    padding-bottom: 84px;
}
.site-footer__brand { flex: 0 0 410px; }
.site-footer__logo { display: block; width: 322.8px; line-height: 0; }
.site-footer__logo img { width: 100%; height: auto; }
.site-footer__tagline {
    margin: 24px 0 0;
    max-width: 322.6px;
    font-size: 16px;
    font-weight: 500;
    line-height: 24px;
    color: rgba(255, 255, 255, 0.7);
}
.site-footer__social {
    display: flex;
    gap: 14px;
    margin-top: 28px;
}
.site-footer__social a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    color: var(--color-primary-200);
    border: 1px solid var(--color-primary-700);
    border-radius: var(--radius-sm);
    transition: color var(--transition), border-color var(--transition);
}
.site-footer__social a:hover { color: #fff; border-color: var(--color-primary-400); }
.site-footer__social svg { width: 16px; height: 16px; }
.site-footer__social-icon { width: 16px; height: 16px; object-fit: contain; }

.site-footer__columns {
    flex: 1 1 auto;
    display: flex;
    align-items: flex-start;
    justify-content: space-between; /* equal space between columns; last column sits flush with the container's right edge */
    min-width: 0;
}
/* Desktop: columns hug their content so the space between them is equal.
   !important overrides the inline flex-basis/max-width the ACF column_width writes. */
.site-footer__col { flex: 0 0 auto !important; max-width: none !important; min-width: 0; }
.site-footer__col-title {
    margin: 0;
    font-family: var(--font-sans);
    font-size: 14px;
    font-weight: 800;
    line-height: normal;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    color: var(--color-primary-200);
}
.site-footer__menu {
    list-style: none;
    margin: 0;
    padding: 20px 0 0;
}
.site-footer__menu--split { columns: 2; column-gap: 36px; }
.site-footer__menu--split li { break-inside: avoid; }
.site-footer__menu li { margin: 0; }
.site-footer__menu a {
    display: block;
    padding: 5px 0;
    font-size: 14px;
    line-height: 25.2px;
    color: rgba(255, 255, 255, 0.7);
    text-decoration: none;
    transition: color var(--transition);
}
.site-footer__menu a:hover,
.site-footer__menu a:focus-visible { color: var(--color-primary-200); }
.site-footer__menu .sub-menu { list-style: none; margin: 0; padding: 0 0 0 14px; }
.site-footer__text {
    padding-top: 20px;
    font-size: 14px;
    line-height: 25.2px;
    color: rgba(255, 255, 255, 0.7);
}
.site-footer__text a { color: var(--color-primary-200); }
.site-footer__image { max-width: 100%; height: auto; padding-top: 20px; }
.site-footer__contact-info { padding-top: 20px; font-size: 14px; line-height: 25.2px; }
.site-footer__contact-info p {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin: 0 0 6px;
}
.site-footer__contact-info a { color: rgba(255, 255, 255, 0.7); text-decoration: none; }
.site-footer__contact-info a:hover { color: var(--color-primary-200); }
.site-footer__icon { width: 14px; height: 14px; margin-top: 6px; color: var(--color-primary-400); }

.site-footer__bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-lg);
    position: relative;
    padding: 29px 86px 52px;
    font-size: 11px;
    line-height: 24px;
    color: var(--color-primary-200);
}
/* Rule sits inside the padding so it aligns with the copyright and credit text, not the container edge */
.site-footer__bottom::before {
    content: '';
    position: absolute;
    top: 0;
    left: 86px;
    right: 86px;
    height: 1px;
    background: var(--color-primary-800);
}
.site-footer__bottom-left { display: flex; align-items: center; gap: 28px; }
.site-footer__copyright { margin: 0; }
.site-footer__bottom-nav { display: flex; align-items: center; }
.site-footer__bottom-menu {
    list-style: none;
    display: flex;
    gap: 22px;
    margin: 0;
    padding: 0;
}
.site-footer__bottom-menu a { color: var(--color-primary-200); text-decoration: none; }
.site-footer__bottom-menu a:hover,
.site-footer__bottom-menu a:focus-visible { color: #fff; }
.site-footer__credits { margin: 0; }
.site-footer__credits a { color: var(--color-primary-200); text-decoration: none; }
.site-footer__credits a:hover,
.site-footer__credits a:focus-visible { color: #fff; }

@media (max-width: 1100px) {
    .site-footer__inner { flex-wrap: wrap; gap: 48px 0; padding-left: var(--gutter); padding-right: var(--gutter); }
    .site-footer__brand { flex-basis: 100%; }
    .site-footer__columns { flex-basis: 100%; flex-wrap: wrap; gap: 40px; }
    .site-footer__col { flex: 1 1 200px !important; max-width: none !important; }
    .site-footer__bottom { padding-left: var(--gutter); padding-right: var(--gutter); }
    .site-footer__bottom::before { left: var(--gutter); right: var(--gutter); }
}
@media (max-width: 768px) {
    .site-footer__inner {
        flex-direction: column;
        gap: 32px;
        padding: 56px 24px 32px;
    }
    .site-footer__brand { flex-basis: auto; }
    .site-footer__logo { width: 200px; }
    .site-footer__tagline { margin-top: 32px; max-width: none; font-size: 13px; font-weight: 400; line-height: 21px; }
    .site-footer__columns { flex-direction: column; gap: 32px; }
    .site-footer__col { flex-basis: auto !important; width: 100%; }
    .site-footer__col-title { font-size: 12px; letter-spacing: 1.92px; }
    .site-footer__menu { padding-top: 10px; }
    .site-footer__menu--split { columns: 1; }
    .site-footer__menu a { padding: 5px 0; line-height: 19px; }
    /* Inset via padding, not margin: this element is also a .container (width: 100%),
       so side margins pushed it 24px past the viewport and caused horizontal scroll. */
    .site-footer__bottom {
        flex-direction: column;
        align-items: flex-start;
        gap: 6px;
        margin: 0;
        padding: 32px var(--gutter) 28px;
    }
    .site-footer__bottom::before {
        left: var(--gutter);
        right: auto;
        width: 100px;
        background: var(--color-primary-400);
    }
    .site-footer__bottom-left { flex-direction: column; align-items: flex-start; gap: 6px; }
}


/* =================================================================
   COMPONENTS (generic library)
   ================================================================= */

/* =================================================================
   COMPONENTS
   ================================================================= */

/* Adjacent same-background components: collapse top padding
   (a textured white section reads as its own band, so the section after it keeps its padding) */
[class*="--bg-white"]:not(.bg-texture) + [class*="--bg-white"]:not(.bg-texture),
[class*="--bg-light"] + [class*="--bg-light"],
[class*="--bg-dark"] + [class*="--bg-dark"],
[class*="--bg-brand"] + [class*="--bg-brand"] {
    padding-top: 0;
}

/* ----------------------- UNDER CONSTRUCTION ----------------------- */

.c-under-construction {
    padding: var(--space-3xl) 0;
    min-height: 50vh;
    display: flex;
    align-items: center;
    background: var(--color-bg-light);
}
.c-under-construction h1 {
    font-size: var(--text-3xl);
    margin-bottom: var(--space-md);
    color: var(--color-neutral-700);
}
.c-under-construction p {
    color: var(--color-neutral-500);
    font-size: var(--text-lg);
}

/* ----------------------- HERO ----------------------- */

.c-hero {
    position: relative;
    display: flex;
    align-items: center;
    padding: var(--space-3xl) 0;
    background: var(--color-bg-dark) center/cover no-repeat;
    color: #fff;
    overflow: hidden;
}
.c-hero--h-full { min-height: 100vh; }
.c-hero--h-large { min-height: 80vh; }
.c-hero--h-medium { min-height: 60vh; }
.c-hero--h-small { min-height: 40vh; }

.c-hero__overlay {
    position: absolute;
    inset: 0;
    background: #000;
}
.c-hero__inner {
    position: relative;
    z-index: 1;
}
.c-hero__content { max-width: 700px; }

.c-hero--center { text-align: center; }
.c-hero--center .c-hero__inner { display: flex; flex-direction: column; align-items: center; }
.c-hero--center .c-hero__content { margin: 0 auto; }

.c-hero__eyebrow { opacity: 0.8; color: inherit; }
.c-hero__headline { font-size: var(--text-5xl); margin-bottom: var(--space-md); }
.c-hero__subhead { font-size: var(--text-xl); opacity: 0.9; margin-bottom: var(--space-lg); }
.c-hero__buttons { display: flex; flex-wrap: wrap; gap: var(--space-sm); }
.c-hero--center .c-hero__buttons { justify-content: center; }

/* Split layout */
.c-hero--split { background: var(--color-bg-dark); }
.c-hero--split .c-hero__inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-2xl);
    align-items: center;
    max-width: none;
}
.c-hero--split .c-hero__content { max-width: none; }
.c-hero--split .c-hero__media { order: 1; }
.c-hero--split-left .c-hero__media { order: -1; }
.c-hero--split .c-hero__image {
    width: 100%;
    height: auto;
    border-radius: var(--radius);
}

@media (max-width: 768px) {
    .c-hero--split .c-hero__inner {
        grid-template-columns: 1fr;
        text-align: center;
    }
    .c-hero--split .c-hero__media { order: -1; }
    .c-hero--split .c-hero__buttons { justify-content: center; }
}

/* Minimal layout */
/* Minimal: styled to match the Brand Hero (compact / no media / no wordmark) â€” dark field,
   breadcrumb trail as the eyebrow, Playfair headline in the brand tints. */
.c-hero--minimal {
    background: var(--color-neutral-900);
    color: #fff;
    min-height: auto;
    padding: 96px 0 72px;
    border-bottom: 1px solid var(--color-primary-700);
}
.c-hero--minimal .c-hero__content { max-width: 900px; }
.c-hero--minimal .c-hero__eyebrow,
.c-hero--minimal .c-hero__crumbs,
.c-hero--minimal .c-hero__crumbs .breadcrumbs__list {
    margin: 0;
    font-size: var(--text-eyebrow);
    font-weight: 500;
    line-height: normal;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--color-primary-200);
    opacity: 1;
}
.c-hero--minimal .c-hero__crumbs .breadcrumbs__list,
.c-hero--minimal .c-hero__crumbs .breadcrumbs__item { gap: 0; }
.c-hero--minimal .c-hero__crumbs a,
.c-hero--minimal .c-hero__crumbs .last,
.c-hero--minimal .c-hero__crumbs .breadcrumbs__current { color: inherit; text-decoration: none; }
.c-hero--minimal .c-hero__crumbs a:hover,
.c-hero--minimal .c-hero__crumbs a:focus-visible { color: var(--color-primary-300); }
.c-hero--minimal .c-hero__crumbs .separator,
.c-hero--minimal .c-hero__crumbs .breadcrumbs__sep { margin: 0 6px; color: inherit; opacity: 0.7; }
.c-hero--minimal .c-hero__headline {
    /* margin: 24px 0 0; */
    /* font-size: var(--text-3xl); */
    /* line-height: var(--leading-tight); */
    /* letter-spacing: 0; */
    color: var(--color-primary-100);
}
.c-hero--minimal .c-hero__headline:first-child { margin-top: 0; }

/* Parallax */
.c-hero__parallax {
    position: absolute;
    inset: -20%;
    background: center/cover no-repeat;
    will-change: transform;
}
.c-hero--parallax {
    background: transparent;
}

@media (max-width: 768px) {
    .c-hero { padding: var(--space-2xl) 0; }
    .c-hero__headline { font-size: var(--text-3xl); }
    .c-hero--minimal { padding: 48px 0 40px; }
    .c-hero--minimal .c-hero__eyebrow,
    .c-hero--minimal .c-hero__crumbs .breadcrumbs__list { font-size: 12px; letter-spacing: 1.2px; }
    .c-hero--minimal .c-hero__headline { margin-top: 20px; font-size: 26px; line-height: 1.2; }
}

.c-hero__video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Breadcrumbs */
.breadcrumbs { margin-bottom: var(--space-sm); }
.breadcrumbs__list {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-xs);
    list-style: none;
    margin: 0;
    padding: 0;
    font-size: var(--text-sm);
}
.breadcrumbs__item { display: flex; align-items: center; gap: var(--space-xs); }
.breadcrumbs__link { color: var(--color-neutral-500); text-decoration: none; }
.breadcrumbs__link:hover { color: var(--color-brand); }
.breadcrumbs__sep { color: var(--color-neutral-300); }
.breadcrumbs__current { color: var(--color-neutral-700); }


/* ----------------------- CONTENT + MEDIA ----------------------- */

.c-content-media { padding: var(--space-3xl) 0; }
.c-content-media__inner { display: grid; gap: var(--space-2xl); align-items: center; }

@media (min-width: 768px) {
    .c-content-media__inner { grid-template-columns: 1fr 1fr; }
    .c-content-media--left .c-content-media__media { order: -1; }
}

.c-content-media__buttons { display: flex; flex-wrap: wrap; gap: var(--space-sm); margin-top: var(--space-lg); }
.c-content-media__image { border-radius: var(--radius); }
.c-content-media__video { position: relative; padding-bottom: 56.25%; border-radius: var(--radius); overflow: hidden; }
.c-content-media__video iframe { position: absolute; inset: 0; width: 100%; height: 100%; }

.c-content-media--bg-white { background: #fff; }
.c-content-media--bg-light { background: var(--color-bg-light); }
.c-content-media--bg-dark { background: var(--color-bg-dark); color: #fff; }
.c-content-media--bg-dark .eyebrow { color: var(--color-brand-light); }


/* ----------------------- CARDS ----------------------- */

.c-cards { padding: var(--space-3xl) 0; }
.c-cards__header { text-align: center; max-width: 700px; margin: 0 auto var(--space-2xl); }
.c-cards__grid { display: grid; gap: var(--space-lg); }

@media (min-width: 769px) {
    .c-cards--cols-2 .c-cards__grid,
    .c-cards--cols-3 .c-cards__grid,
    .c-cards--cols-4 .c-cards__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1024px) {
    .c-cards--cols-3 .c-cards__grid { grid-template-columns: repeat(3, 1fr); }
    .c-cards--cols-4 .c-cards__grid { grid-template-columns: repeat(4, 1fr); }
}

.c-card {
    display: flex;
    flex-direction: column;
    background: #fff;
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    text-decoration: none;
    color: inherit;
    overflow: hidden;
    transition: transform var(--transition), box-shadow var(--transition);
}
a.c-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }

.c-card__image { margin: 0; }
.c-card__image img { aspect-ratio: 4/3; object-fit: cover; width: 100%; display: block; }
.c-card__content { padding: var(--space-lg); flex: 1; display: flex; flex-direction: column; }
.c-card__title { font-size: var(--text-xl); margin-bottom: var(--space-sm); }
.c-card__desc { color: var(--color-neutral-600); flex: 1; }
.c-card__link { margin-top: var(--space-md); font-weight: 600; color: var(--color-brand); display: inline-flex; align-items: center; gap: var(--space-xs); }
.c-card__link svg { width: 1em; height: 1em; transition: transform var(--transition); }
a.c-card:hover .c-card__link svg { transform: translateX(4px); }

/* Card Style: Horizontal */
.c-cards--style-horizontal .c-card { flex-direction: row; }
.c-cards--style-horizontal .c-card__image { flex: 0 0 40%; max-width: 40%; }
.c-cards--style-horizontal .c-card__image img { aspect-ratio: 1/1; height: 100%; }
.c-cards--style-horizontal .c-card__content { justify-content: center; }
@media (max-width: 768px) {
    .c-cards--style-horizontal .c-card { flex-direction: column; }
    .c-cards--style-horizontal .c-card__image { flex: none; max-width: 100%; }
    .c-cards--style-horizontal .c-card__image img { aspect-ratio: 16/9; height: auto; }
}

/* Card Style: Overlay */
.c-cards--style-overlay .c-card { position: relative; min-height: 280px; }
.c-cards--style-overlay .c-card__image { position: absolute; inset: 0; }
.c-cards--style-overlay .c-card__image img { aspect-ratio: auto; height: 100%; }
.c-cards--style-overlay .c-card__image::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,0.8) 0%, rgba(0,0,0,0.2) 60%, transparent 100%);
}
.c-cards--style-overlay .c-card__content {
    position: relative;
    z-index: 1;
    justify-content: flex-end;
    color: #fff;
}
.c-cards--style-overlay .c-card__desc { color: var(--color-neutral-200); }
.c-cards--style-overlay .c-card__link { color: #fff; }
a.c-cards--style-overlay .c-card:hover .c-card__image img { transform: scale(1.05); }
.c-cards--style-overlay .c-card__image img { transition: transform var(--transition); }

/* Card Style: Minimal */
.c-cards--style-minimal .c-card {
    flex-direction: row;
    box-shadow: none;
    border: 1px solid var(--color-neutral-200);
}
.c-cards--style-minimal .c-card__image {
    order: 2;
    flex: 0 0 auto;
    width: 80px;
    height: 80px;
    margin: var(--space-lg);
    margin-left: 0;
    border-radius: 50%;
    overflow: hidden;
}
.c-cards--style-minimal .c-card__image img {
    aspect-ratio: 1/1;
    height: 100%;
    width: 100%;
}
.c-cards--style-minimal .c-card__content {
    padding: var(--space-xl);
    flex: 1;
}
a.c-cards--style-minimal .c-card:hover {
    transform: none;
    box-shadow: none;
    border-color: var(--color-brand);
}

.c-cards--bg-white { background: #fff; }
.c-cards--bg-light { background: var(--color-bg-light); }
.c-cards--bg-dark { background: var(--color-bg-dark); color: #fff; }
.c-cards--bg-dark .c-card { background: var(--color-neutral-800); }
.c-cards--bg-dark .c-card__desc { color: var(--color-neutral-300); }
.c-cards--bg-dark.c-cards--style-minimal .c-card { border-color: var(--color-neutral-700); }
.c-cards--bg-dark.c-cards--style-minimal a.c-card:hover { border-color: var(--color-brand-light); }


/* ----------------------- CTA ----------------------- */

.c-cta { padding: var(--space-3xl) 0; }
.c-cta__inner { display: flex; flex-direction: column; gap: var(--space-lg); }
.c-cta--center { text-align: center; }
.c-cta--center .c-cta__inner { align-items: center; max-width: 700px; margin: 0 auto; }

@media (min-width: 768px) {
    .c-cta--split .c-cta__inner,
    .c-cta--has-form .c-cta__inner { flex-direction: row; justify-content: space-between; align-items: center; gap: var(--space-2xl); }
    .c-cta--split .c-cta__content,
        .c-cta--split .c-cta__content, .c-cta--has-form .c-cta__content {
        flex: 1;
        flex-basis: 50%;
        width: 50%;
    }
	.c-cta--split .c-cta__form, .c-cta--has-form .c-cta__form {
		flex: 1;
		max-width: 50%;
		flex-basis: 50%;
	}
	
}

.c-cta__content h2 { margin-bottom: var(--space-sm); }
.c-cta__content p { margin: 0; }
.c-cta__buttons { display: flex; flex-wrap: wrap; gap: var(--space-sm); }
.c-cta--center .c-cta__buttons { justify-content: center; }

.c-cta__form {
    background: rgba(255, 255, 255, 0.1);
    padding: var(--space-xl);
    border-radius: var(--radius);
}

.c-cta--bg-light .c-cta__form {
    background: #fff;
    box-shadow: var(--shadow);
}

.c-cta__form .gform_wrapper { margin: 0; }
.c-cta__form .gfield { margin-bottom: var(--space-md); }
.c-cta__form input:not([type="submit"]),
.c-cta__form textarea,
.c-cta__form select {
    width: 100%;
    padding: var(--space-sm) var(--space-md);
    border: 1px solid rgba(255, 255, 255, 0.3);
    border-radius: var(--radius);
    background: rgba(255, 255, 255, 0.9);
    font-size: var(--text-base);
}

.c-cta--bg-dark form label, .c-cta--bg-dark form legend, .c-cta--bg-dark .gfield_description {
    color: var(--color-neutral-50)!important;
}

.gform-footer.gform_footer {
    margin-top: 0!important;
}

div#gform_fields_1 {
    row-gap: var(--space-md);
}

div.gform-theme--framework .gform-field-label>.gfield_required:where(:not(.gform-theme__disable):not(.gform-theme__disable *):not(.gform-theme__disable-framework):not(.gform-theme__disable-framework *)) {
    color: var(--color-error-500);
}

.c-cta--bg-light .c-cta__form input:not([type="submit"]),
.c-cta--bg-light .c-cta__form textarea,
.c-cta--bg-light .c-cta__form select {
    border-color: var(--color-neutral-300);
    background: #fff;
}

.c-cta__form .gform_button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 44px;
    padding: 0.75em 1.5em;
    font-size: var(--text-base);
    font-weight: 600;
    text-decoration: none;
    border-radius: var(--radius);
    border: 2px solid transparent;
    cursor: pointer;
    transition: all var(--transition);
    /* Default: white button for dark/brand backgrounds */
    background: #fff;
    color: var(--color-brand);
    border-color: #fff;
}

.c-cta__form .gform_button:hover {
    background: var(--color-neutral-100);
    border-color: var(--color-neutral-100);
}

/* Light background: use primary button style */
.c-cta--bg-light .c-cta__form .gform_button {
    background: var(--color-brand);
    color: #fff;
    border-color: var(--color-brand);
}

.c-cta--bg-light .c-cta__form .gform_button:hover {
    background: var(--color-brand-dark);
    border-color: var(--color-brand-dark);
}

.c-cta--bg-brand { background: var(--color-brand); color: #fff; }
.c-cta--bg-dark { background: var(--color-bg-dark); color: #fff; }
.c-cta--bg-light { background: var(--color-bg-light); }


/* ----------------------- TESTIMONIALS ----------------------- */

.c-testimonials { padding: var(--space-3xl) 0; }
.c-testimonials__header { text-align: center; max-width: 700px; margin: 0 auto var(--space-2xl); }

.c-testimonial { text-align: center; max-width: 800px; margin: 0 auto; }
.c-testimonial__icon { width: 48px; height: 48px; margin: 0 auto var(--space-lg); color: var(--color-brand); opacity: 0.3; }
.c-testimonial__quote { font-size: var(--text-xl); font-style: italic; line-height: var(--leading-relaxed); margin-bottom: var(--space-lg); }
.c-testimonial--featured .c-testimonial__quote { font-size: var(--text-2xl); }
.c-testimonial__author { display: flex; align-items: center; justify-content: center; gap: var(--space-md); text-align: left; }
.c-testimonial__photo { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; }
.c-testimonial__author cite { display: block; font-style: normal; font-weight: 600; }
.c-testimonial__author span { font-size: var(--text-sm); color: var(--color-neutral-500); }

/* Slider nav */
.c-testimonials__nav { display: flex; align-items: center; justify-content: center; gap: var(--space-md); margin-top: var(--space-xl); }
.c-testimonials__prev,
.c-testimonials__next {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    background: none;
    border: 1px solid var(--color-neutral-300);
    border-radius: 50%;
    cursor: pointer;
    transition: var(--transition);
}
.c-testimonials__prev:hover,
.c-testimonials__next:hover { border-color: var(--color-neutral-500); }
.c-testimonials__prev svg,
.c-testimonials__next svg { width: 20px; height: 20px; }
.c-testimonials__dots { display: flex; gap: var(--space-xs); }
.c-testimonials__dot {
    width: 10px;
    height: 10px;
    background: var(--color-neutral-300);
    border: none;
    border-radius: 50%;
    cursor: pointer;
    transition: var(--transition);
}
.c-testimonials__dot:hover,
.c-testimonials__dot.is-active { background: var(--color-brand); }

/* Grid layout */
.c-testimonials--grid .c-testimonials__grid { display: grid; gap: var(--space-lg); }
@media (min-width: 768px) {
    .c-testimonials--grid .c-testimonials__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1024px) {
    .c-testimonials--grid .c-testimonials__grid { grid-template-columns: repeat(3, 1fr); }
}
.c-testimonials--grid .c-testimonial { text-align: left; background: #fff; padding: var(--space-lg); border-radius: var(--radius); box-shadow: var(--shadow); }
.c-testimonials--grid .c-testimonial__author { justify-content: flex-start; }
.c-testimonials--grid .c-testimonial__icon { width: 32px; height: 32px; margin: 0 0 var(--space-md); }
.c-testimonials--grid .c-testimonial__quote { font-size: var(--text-base); }

.c-testimonials--bg-white { background: #fff; }
.c-testimonials--bg-light { background: var(--color-bg-light); }
.c-testimonials--bg-dark { background: var(--color-bg-dark); color: #fff; }
.c-testimonials--bg-dark .c-testimonial__author span { color: var(--color-neutral-400); }


/* ----------------------- ACCORDION ----------------------- */

.c-accordion { padding: var(--space-3xl) 0; }
.c-accordion__header { text-align: center; margin-bottom: var(--space-2xl); }
.c-accordion__items { border-top: 1px solid var(--color-neutral-200); }
.c-accordion__item { border-bottom: 1px solid var(--color-neutral-200); }
.c-accordion__item h3 { margin: 0; font-size: var(--text-base); }
.c-accordion__trigger {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-md);
    width: 100%;
    padding: var(--space-lg) 0;
    font: inherit;
    font-weight: 600;
    text-align: left;
    background: none;
    border: none;
    cursor: pointer;
}
.c-accordion__trigger:hover { color: var(--color-brand); }
.c-accordion__icon { width: 20px; height: 20px; transition: transform var(--transition); }
.c-accordion__item.is-open .c-accordion__icon { transform: rotate(180deg); }
.c-accordion__content { padding-bottom: var(--space-lg); color: var(--color-neutral-600); }

.c-accordion--bg-white { background: #fff; }
.c-accordion--bg-light { background: var(--color-bg-light); }


/* ----------------------- STATS ----------------------- */

.c-stats { padding: var(--space-3xl) 0; }
.c-stats__header { text-align: center; max-width: 700px; margin: 0 auto var(--space-2xl); }
.c-stats__grid { display: grid; gap: var(--space-xl); text-align: center; }
@media (min-width: 769px) {
    .c-stats__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1024px) {
    .c-stats__grid { grid-template-columns: repeat(4, 1fr); }
}
.c-stat__number { font-size: var(--text-4xl); font-weight: 700; color: var(--color-brand); line-height: 1; }
.c-stat__label { margin-top: var(--space-sm); font-size: var(--text-sm); text-transform: uppercase; letter-spacing: 0.05em; color: var(--color-neutral-500); }

.c-stats--bg-white { background: #fff; }
.c-stats--bg-light { background: var(--color-bg-light); }
.c-stats--bg-dark { background: var(--color-bg-dark); color: #fff; }
.c-stats--bg-dark .c-stat__number { color: var(--color-brand-light); }
.c-stats--bg-dark .c-stat__label { color: var(--color-neutral-400); }
.c-stats--bg-brand { background: var(--color-brand); color: #fff; }
.c-stats--bg-brand .c-stat__number { color: #fff; }
.c-stats--bg-brand .c-stat__label { color: rgba(255,255,255,0.8); }


/* ----------------------- LOGO GRID ----------------------- */

.c-logos { padding: var(--space-2xl) 0; }
.c-logos__header { text-align: center; margin-bottom: var(--space-xl); }
.c-logos__header h2 { font-size: var(--text-lg); font-weight: 500; }
.c-logos__grid { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: var(--space-lg) var(--space-xl); }
.c-logos__item { max-width: 140px; height: 48px; display: flex; align-items: center; }
.c-logos__item img { max-width: 100%; max-height: 100%; object-fit: contain; transition: filter var(--transition), opacity var(--transition); }
.c-logos--gray .c-logos__item img { filter: grayscale(100%); opacity: 0.6; }
.c-logos--gray .c-logos__item:hover img { filter: grayscale(0); opacity: 1; }

.c-logos--bg-white { background: #fff; }
.c-logos--bg-light { background: var(--color-bg-light); }


/* ----------------------- FORM SECTION ----------------------- */

.c-form-section { padding: var(--space-3xl) 0; }
.c-form-section--center .c-form-section__inner { max-width: 600px; margin: 0 auto; }
.c-form-section--center .c-form-section__content { text-align: center; margin-bottom: var(--space-xl); }

@media (min-width: 768px) {
    .c-form-section--split .c-form-section__inner { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-3xl); align-items: start; }
}

.c-form-section__form { background: #fff; padding: var(--space-xl); border-radius: var(--radius); box-shadow: var(--shadow); }

.c-form-section--bg-white { background: #fff; }
.c-form-section--bg-light { background: var(--color-bg-light); }
.c-form-section--bg-dark { background: var(--color-bg-dark); color: #fff; }
.c-form-section--bg-dark .eyebrow { color: var(--color-brand-light); }

.iti__selected-country{
    display:none!important;
}

.gform_body input,
.gform_body textarea {
    font-size:var(--text-xl)!important;
    padding:1.25rem 1rem!important;
    display:block!important;
    min-height:50px!important;
    border-radius:0!important;
    border-color:var(--color-neutral-200);
    box-shadow:none!important;
}

.gform_body fieldset,
.gform-theme--foundation .gform-grid-row{
    margin:0!important;    
}

.gform-theme--foundation .gform_fields,
.gform-theme--foundation .gform-grid-row{
    gap:1.75rem!important;
}

.gform-theme--foundation .gform-grid-col{
    padding:0!important;
}

.gform_body input::placeholder,
.gform_body textarea::placeholder {
    color:var(--color-neutral-600);
}

.gform-theme--foundation .gform_footer{
    margin-block-start:0!important;
    margin-top:1.75rem!important;
}

.gfield_required_text,
.gform_validation_error_link,
.gfield_validation_message,
.gform_submission_error{
    color:var(--color-error-700)!important;
}

.gform-icon--circle-error{
	display:none!important;
}

.gform_validation_errors ol{
	padding:0!important;
}

.gform_validation_errors li{
	list-style-type:none;
	font-size:.875rem!important;
}

@media (max-width:1140px) {
    .gform-theme--foundation .gform-grid-row{
        flex-direction:column!important;
        align-items:flex-start!important;
    }

    .gform-theme--foundation .gform-grid-col.gform-grid-col--size-auto{
        flex-basis:100%!important;
        inline-size:100%!important;
    }

    .gform-theme--foundation .gfield--width-half{
        grid-column:span 12!important;
    }

    .gform-theme--foundation .gform_fields, 
    .gform-theme--foundation .gform-grid-row{
        gap:var(--space-sm)!important;
    }
}

/* ----------------------- TEXT BLOCK ----------------------- */

.c-text-block { padding: var(--space-3xl) 0; }
.c-text-block h2 { margin-bottom: var(--space-lg); }

.c-text-block--bg-white { background: #fff; }
.c-text-block--bg-light { background: var(--color-bg-light); }


/* ----------------------- GALLERY ----------------------- */

.c-gallery { padding: var(--space-3xl) 0; }
.c-gallery__header { text-align: center; max-width: 700px; margin: 0 auto var(--space-2xl); }
.c-gallery__subhead { color: var(--color-neutral-600); margin-top: var(--space-sm); }

.c-gallery__grid {
    display: grid;
    gap: var(--space-md);
}
.c-gallery--cols-2 .c-gallery__grid { grid-template-columns: repeat(2, 1fr); }
.c-gallery--cols-3 .c-gallery__grid { grid-template-columns: repeat(2, 1fr); }
.c-gallery--cols-4 .c-gallery__grid { grid-template-columns: repeat(2, 1fr); }
.c-gallery--cols-5 .c-gallery__grid { grid-template-columns: repeat(2, 1fr); }

@media (min-width: 769px) {
    .c-gallery--cols-3 .c-gallery__grid { grid-template-columns: repeat(3, 1fr); }
    .c-gallery--cols-4 .c-gallery__grid { grid-template-columns: repeat(3, 1fr); }
    .c-gallery--cols-5 .c-gallery__grid { grid-template-columns: repeat(3, 1fr); }
}
@media (min-width: 1024px) {
    .c-gallery--cols-4 .c-gallery__grid { grid-template-columns: repeat(4, 1fr); }
    .c-gallery--cols-5 .c-gallery__grid { grid-template-columns: repeat(5, 1fr); }
}

.c-gallery__item {
    margin: 0;
    overflow: hidden;
    border-radius: var(--radius);
    cursor: pointer;
}
.c-gallery__item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--transition);
}
.c-gallery__item:hover img {
    transform: scale(1.05);
}

/* Aspect ratios */
.c-gallery--square .c-gallery__item { aspect-ratio: 1/1; }
.c-gallery--landscape .c-gallery__item { aspect-ratio: 4/3; }
.c-gallery--portrait .c-gallery__item { aspect-ratio: 3/4; }
.c-gallery--wide .c-gallery__item { aspect-ratio: 16/9; }

/* Masonry layout */
.c-gallery--masonry .c-gallery__grid {
    display: block;
    column-gap: var(--space-md);
}
.c-gallery--masonry.c-gallery--cols-2 .c-gallery__grid { column-count: 2; }
.c-gallery--masonry.c-gallery--cols-3 .c-gallery__grid { column-count: 2; }
.c-gallery--masonry.c-gallery--cols-4 .c-gallery__grid { column-count: 2; }
.c-gallery--masonry.c-gallery--cols-5 .c-gallery__grid { column-count: 2; }

@media (min-width: 768px) {
    .c-gallery--masonry.c-gallery--cols-3 .c-gallery__grid { column-count: 3; }
    .c-gallery--masonry.c-gallery--cols-4 .c-gallery__grid { column-count: 3; }
    .c-gallery--masonry.c-gallery--cols-5 .c-gallery__grid { column-count: 3; }
}
@media (min-width: 1024px) {
    .c-gallery--masonry.c-gallery--cols-4 .c-gallery__grid { column-count: 4; }
    .c-gallery--masonry.c-gallery--cols-5 .c-gallery__grid { column-count: 5; }
}

.c-gallery--masonry .c-gallery__item {
    break-inside: avoid;
    margin-bottom: var(--space-md);
    aspect-ratio: auto;
}
.c-gallery--masonry .c-gallery__item img {
    height: auto;
}

/* Carousel layout */
.c-gallery__carousel {
    position: relative;
}
.c-gallery__track {
    display: flex;
    gap: var(--space-md);
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    -ms-overflow-style: none;
    padding-bottom: var(--space-sm);
}
.c-gallery__track::-webkit-scrollbar { display: none; }

.c-gallery__slide {
    flex: 0 0 auto;
    width: 300px;
    scroll-snap-align: start;
    margin: 0;
    border-radius: var(--radius);
    overflow: hidden;
    cursor: pointer;
}
@media (min-width: 768px) {
    .c-gallery__slide { width: 400px; }
}
.c-gallery__slide img {
    width: 100%;
    height: 250px;
    object-fit: cover;
    transition: transform var(--transition);
}
@media (min-width: 768px) {
    .c-gallery__slide img { height: 300px; }
}
.c-gallery__slide:hover img {
    transform: scale(1.05);
}

.c-gallery__prev,
.c-gallery__next {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    border: none;
    border-radius: 50%;
    box-shadow: var(--shadow);
    cursor: pointer;
    transition: background var(--transition);
    z-index: 2;
}
.c-gallery__prev:hover,
.c-gallery__next:hover { background: var(--color-neutral-100); }
.c-gallery__prev { left: var(--space-sm); }
.c-gallery__next { right: var(--space-sm); }
.c-gallery__prev svg,
.c-gallery__next svg { width: 20px; height: 20px; }

/* Backgrounds */
.c-gallery--bg-white { background: #fff; }
.c-gallery--bg-light { background: var(--color-bg-light); }
.c-gallery--bg-dark { background: var(--color-bg-dark); color: #fff; }
.c-gallery--bg-dark .eyebrow { color: var(--color-brand-light); }
.c-gallery--bg-dark .c-gallery__subhead { color: var(--color-neutral-400); }


/* ----------------------- LIGHTBOX ----------------------- */

.c-lightbox {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s ease;
}
.c-lightbox.is-open {
    opacity: 1;
    pointer-events: auto;
}
.c-lightbox__overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.95);
}
.c-lightbox__content {
    position: relative;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--space-xl);
}
.c-lightbox__close {
    position: absolute;
    top: var(--space-md);
    right: var(--space-md);
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: none;
    color: #fff;
    cursor: pointer;
    opacity: 0.7;
    transition: opacity var(--transition);
}
.c-lightbox__close:hover { opacity: 1; }
.c-lightbox__close svg { width: 28px; height: 28px; }

.c-lightbox__prev,
.c-lightbox__next {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 50px;
    height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.1);
    border: none;
    border-radius: 50%;
    color: #fff;
    cursor: pointer;
    transition: background var(--transition);
}
.c-lightbox__prev:hover,
.c-lightbox__next:hover { background: rgba(255, 255, 255, 0.2); }
.c-lightbox__prev { left: var(--space-md); }
.c-lightbox__next { right: var(--space-md); }
.c-lightbox__prev svg,
.c-lightbox__next svg { width: 24px; height: 24px; }

.c-lightbox__figure {
    max-width: 90vw;
    max-height: 80vh;
    margin: 0;
    text-align: center;
}
.c-lightbox__image {
    max-width: 100%;
    max-height: 75vh;
    object-fit: contain;
}
.c-lightbox__caption {
    color: var(--color-neutral-400);
    font-size: var(--text-sm);
    margin-top: var(--space-md);
}
.c-lightbox__counter {
    position: absolute;
    bottom: var(--space-md);
    left: 50%;
    transform: translateX(-50%);
    color: var(--color-neutral-400);
    font-size: var(--text-sm);
}

@media (max-width: 768px) {
    .c-lightbox__prev,
    .c-lightbox__next {
        width: 40px;
        height: 40px;
        bottom: var(--space-3xl);
        top: auto;
        transform: none;
    }
    .c-lightbox__prev { left: var(--space-xl); }
    .c-lightbox__next { right: var(--space-xl); }
}


/* ----------------------- STICKY CTA ----------------------- */
.c-sticky-cta {
    display: none;
    position: fixed;
    bottom: var(--space-lg);
    right: var(--space-lg);
    z-index: 999999;
    align-items: center;
    height: 56px;
    background: var(--color-primary-400);
    border-radius: 28px;
    color: var(--color-primary-800);
    box-shadow: 0 8px 24px rgba(30, 20, 1, 0.22);
    overflow: hidden;
    transition: background var(--transition);
}

/* Header phone link is hidden at 1500px and below; the sticky phone CTA takes over */
@media (max-width: 1500px) {
    .site-nav__phone { display: none; }
    .c-sticky-cta { display: flex; }
}

.c-sticky-cta__toggle {
    display: flex;
    align-items: center;
    height: 56px;
    padding: 0;
    background: transparent;
    border: none;
    color: var(--color-primary-800);
    cursor: pointer;
}

.c-sticky-cta__toggle:active {
    transform: scale(0.98);
}

.c-sticky-cta__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    flex-shrink: 0;
}

.c-sticky-cta__icon svg {
    width: 24px;
    height: 24px;
}

.c-sticky-cta__number {
    display: block;
    max-width: 0;
    overflow: hidden;
    white-space: nowrap;
    font-weight: 700;
    font-size: var(--text-label);
    letter-spacing: var(--tracking-label);
    line-height: var(--leading-label);
    color: var(--color-primary-800);
    text-decoration: none;
    transition: max-width 0.3s ease, padding 0.3s ease;
    padding: 0;
}

.c-sticky-cta__close {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 0;
    overflow: hidden;
    flex-shrink: 0;
    transition: width 0.3s ease, padding 0.3s ease;
    padding: 0;
    background: transparent;
    border: none;
    color: var(--color-primary-800);
    cursor: pointer;
}

.c-sticky-cta__close svg {
    width: 20px;
    height: 20px;
    opacity: 0.8;
}

/* Expanded state */
.c-sticky-cta.is-open {
    background: var(--color-primary-300);
}

.c-sticky-cta.is-open .c-sticky-cta__number {
    max-width: 200px;
    padding-right: var(--space-xs);
}

.c-sticky-cta.is-open .c-sticky-cta__close {
    width: 44px;
    padding-right: var(--space-sm);
}


/* =================================================================
   ICON CARDS
   ================================================================= */

.c-icon-cards { padding: var(--space-3xl) 0; position: relative; }
.c-icon-cards--bg-light { background: var(--color-bg-light); }
.c-icon-cards--bg-dark { background: var(--color-neutral-800); color: #fff; }
.c-icon-cards--bg-dark h2, .c-icon-cards--bg-dark h3, .c-icon-cards--bg-dark h4 { color: #fff; }
.c-icon-cards--bg-brand { background: var(--color-brand); color: #fff; }
.c-icon-cards--bg-brand h2, .c-icon-cards--bg-brand h3, .c-icon-cards--bg-brand h4 { color: #fff; }

.c-icon-cards__inner { position: relative; z-index: 1; }

.c-icon-cards__header {
    text-align: center;
    max-width: 800px;
    margin: 0 auto var(--space-2xl);
}
.c-icon-cards__header h2, .c-icon-cards__header h3, .c-icon-cards__header h4 {
    font-size: var(--text-3xl);
    margin-bottom: var(--space-md);
}
.c-icon-cards__header .subhead {
    font-size: var(--text-lg);
    color: var(--color-neutral-600);
}
.c-icon-cards--bg-dark .c-icon-cards__header .subhead,
.c-icon-cards--bg-brand .c-icon-cards__header .subhead,
.c-icon-cards--bg-image .c-icon-cards__header .subhead { color: rgba(255,255,255,0.8); }

.c-icon-cards__grid {
    display: grid;
    gap: var(--space-xl);
}
.c-icon-cards--cols-2 .c-icon-cards__grid { grid-template-columns: repeat(2, 1fr); }
.c-icon-cards--cols-3 .c-icon-cards__grid { grid-template-columns: repeat(3, 1fr); }
.c-icon-cards--cols-4 .c-icon-cards__grid { grid-template-columns: repeat(4, 1fr); }

@media (max-width: 1024px) {
    .c-icon-cards--cols-3 .c-icon-cards__grid,
    .c-icon-cards--cols-4 .c-icon-cards__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 767px) {
    .c-icon-cards__grid { grid-template-columns: 1fr !important; }
}

/* Card base */
.c-icon-card {
    display: flex;
    flex-direction: column;
    gap: var(--space-md);
}

/* Icon positioning */
.c-icon-cards--top .c-icon-card { text-align: center; align-items: center; }
.c-icon-cards--left .c-icon-card { flex-direction: row; align-items: flex-start; }

/* Card styles */
.c-icon-cards--boxed .c-icon-card {
    background: #fff;
    padding: var(--space-xl);
    border-radius: var(--radius);
    box-shadow: var(--shadow);
}
.c-icon-cards--bg-dark.c-icon-cards--boxed .c-icon-card,
.c-icon-cards--bg-brand.c-icon-cards--boxed .c-icon-card,
.c-icon-cards--bg-image.c-icon-cards--boxed .c-icon-card {
    background: rgba(255,255,255,0.1);
    backdrop-filter: blur(10px);
}

.c-icon-cards--bordered .c-icon-card {
    border: 1px solid var(--color-neutral-200);
    padding: var(--space-xl);
    border-radius: var(--radius);
}
.c-icon-cards--bg-dark.c-icon-cards--bordered .c-icon-card,
.c-icon-cards--bg-brand.c-icon-cards--bordered .c-icon-card,
.c-icon-cards--bg-image.c-icon-cards--bordered .c-icon-card {
    border-color: rgba(255,255,255,0.2);
}

/* Icon */
.c-icon-card__icon {
    width: 56px;
    height: 56px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--color-brand-light);
    border-radius: var(--radius);
    color: var(--color-brand-dark);
}
.c-icon-card__icon svg {
    width: 28px;
    height: 28px;
}
.c-icon-card__img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.c-icon-cards--bg-dark .c-icon-card__icon,
.c-icon-cards--bg-brand .c-icon-card__icon,
.c-icon-cards--bg-image .c-icon-card__icon {
    background: rgba(255,255,255,0.15);
    color: #fff;
}

/* Content */
.c-icon-card__content { flex: 1; } 
.c-icon-card__title {
    font-size: var(--text-lg);
    font-weight: 600;
    margin-bottom: var(--space-xs);
}
.c-icon-card__desc {
    font-size: var(--text-base);
    color: var(--color-neutral-600);
    margin-bottom: var(--space-sm);
}
.c-icon-cards--bg-dark .c-icon-card__desc,
.c-icon-cards--bg-brand .c-icon-card__desc,
.c-icon-cards--bg-image .c-icon-card__desc { color: rgba(255,255,255,0.8); }

.c-icon-card__link {
    display: inline-flex;
    align-items: center;
    gap: var(--space-xs);
    font-weight: 600;
    color: var(--color-brand);
    text-decoration: none;
    transition: gap 0.2s ease;
}
.c-icon-card__link:hover { gap: var(--space-sm); }
.c-icon-card__link svg { width: 16px; height: 16px; }

.c-icon-cards--bg-dark .c-icon-card__link,
.c-icon-cards--bg-brand .c-icon-card__link,
.c-icon-cards--bg-image .c-icon-card__link { color: #fff; }


/* =================================================================
   MAP EMBED
   ================================================================= */

.c-map { padding: var(--space-3xl) 0; position: relative; }
.c-map--bg-light { background: var(--color-bg-light); }
.c-map--bg-dark { background: var(--color-neutral-800); color: #fff; }
.c-map--bg-dark h2, .c-map--bg-dark h3, .c-map--bg-dark h4 { color: #fff; }
.c-map--bg-brand { background: var(--color-brand); color: #fff; }
.c-map--bg-brand h2, .c-map--bg-brand h3, .c-map--bg-brand h4 { color: #fff; }

.c-map__inner { position: relative; z-index: 1; }

.c-map__header {
    text-align: center;
    max-width: 800px;
    margin: 0 auto var(--space-2xl);
}
.c-map__header h2, .c-map__header h3, .c-map__header h4 {
    font-size: var(--text-3xl);
    margin-bottom: var(--space-md);
}
.c-map__header .subhead {
    font-size: var(--text-lg);
    color: var(--color-neutral-600);
}
.c-map--bg-dark .c-map__header .subhead,
.c-map--bg-brand .c-map__header .subhead,
.c-map--bg-image .c-map__header .subhead { color: rgba(255,255,255,0.8); }

.c-map__embed {
    border-radius: var(--radius);
    overflow: hidden;
    box-shadow: var(--shadow-lg);
}
.c-map__embed iframe {
    display: block;
    width: 100%;
    border: 0;
}

/* Height variants */
.c-map--h-small .c-map__embed iframe { height: 300px; }
.c-map--h-medium .c-map__embed iframe { height: 450px; }
.c-map--h-large .c-map__embed iframe { height: 600px; }

@media (max-width: 767px) {
    .c-map--h-small .c-map__embed iframe { height: 250px; }
    .c-map--h-medium .c-map__embed iframe { height: 350px; }
    .c-map--h-large .c-map__embed iframe { height: 450px; }
}


/* =================================================================
   CONTACT INFO BLOCK
   ================================================================= */

.c-contact-info { padding: var(--space-3xl) 0; position: relative; }
.c-contact-info--bg-light { background: var(--color-bg-light); }
.c-contact-info--bg-dark { background: var(--color-neutral-800); color: #fff; }
.c-contact-info--bg-dark h2, .c-contact-info--bg-dark h3, .c-contact-info--bg-dark h4 { color: #fff; }
.c-contact-info--bg-brand { background: var(--color-brand); color: #fff; }
.c-contact-info--bg-brand h2, .c-contact-info--bg-brand h3, .c-contact-info--bg-brand h4 { color: #fff; }

.c-contact-info__inner { position: relative; z-index: 1; }

.c-contact-info__header {
    text-align: center;
    max-width: 800px;
    margin: 0 auto var(--space-2xl);
}
.c-contact-info__header h2, .c-contact-info__header h3, .c-contact-info__header h4 {
    font-size: var(--text-3xl);
    margin-bottom: var(--space-md);
}
.c-contact-info__header .subhead {
    font-size: var(--text-lg);
    color: var(--color-neutral-600);
}
.c-contact-info--bg-dark .c-contact-info__header .subhead,
.c-contact-info--bg-brand .c-contact-info__header .subhead,
.c-contact-info--bg-image .c-contact-info__header .subhead { color: rgba(255,255,255,0.8); }

/* Items layout */
.c-contact-info__items {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-xl);
}

/* Stacked layout (default) */
.c-contact-info--stacked .c-contact-info__items {
    flex-direction: column;
    align-items: center;
    max-width: 500px;
    margin: 0 auto;
}
.c-contact-info--stacked .c-contact-info__item {
    text-align: center;
    flex-direction: column;
}
.c-contact-info--stacked .c-contact-info__icon { margin-bottom: var(--space-sm); }

/* Inline layout */
.c-contact-info--inline .c-contact-info__items {
    justify-content: center;
}
@media (max-width: 1024px) {
    .c-contact-info--inline .c-contact-info__items {
        flex-direction: column;
        align-items: center;
    }
}

/* Individual item */
.c-contact-info__item {
    display: flex;
    align-items: flex-start;
    gap: var(--space-md);
}

.c-contact-info__icon {
    width: 48px;
    height: 48px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--color-brand);
    border-radius: 50%;
    color: #fff;
}
.c-contact-info__icon svg {
    width: 22px;
    height: 22px;
}
.c-contact-info--bg-dark .c-contact-info__icon,
.c-contact-info--bg-brand .c-contact-info__icon,
.c-contact-info--bg-image .c-contact-info__icon {
    background: rgba(255,255,255,0.2);
}

.c-contact-info__content { flex: 1; }

.c-contact-info__label {
    font-size: var(--text-sm);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-neutral-500);
    margin-bottom: var(--space-xs);
}
.c-contact-info--bg-dark .c-contact-info__label,
.c-contact-info--bg-brand .c-contact-info__label,
.c-contact-info--bg-image .c-contact-info__label { color: rgba(255,255,255,0.6); }

.c-contact-info__value {
    font-size: var(--text-lg);
    color: var(--color-neutral-800);
}
.c-contact-info--bg-dark .c-contact-info__value,
.c-contact-info--bg-brand .c-contact-info__value,
.c-contact-info--bg-image .c-contact-info__value { color: #fff; }

.c-contact-info__link {
    color: var(--color-brand);
    text-decoration: none;
    transition: color 0.2s ease;
}
.c-contact-info__link:hover {
    text-decoration: underline;
}
.c-contact-info--bg-dark .c-contact-info__link,
.c-contact-info--bg-brand .c-contact-info__link,
.c-contact-info--bg-image .c-contact-info__link { color: #fff; }

.c-contact-info__empty {
    text-align: center;
    color: var(--color-neutral-500);
    font-style: italic;
}


/* =================================================================
   ARCHIVE
   ================================================================= */

.archive-page { padding: var(--space-3xl) 0; }

.archive-page__header {
    margin-bottom: var(--space-2xl);
}
.archive-page__title {
    font-size: var(--text-4xl);
    margin-bottom: var(--space-sm);
}
.archive-page__description {
    font-size: var(--text-lg);
    color: var(--color-neutral-600);
    max-width: 700px;
}
.archive-page__description p:last-child { margin-bottom: 0; }

/* Archive grid */
.archive-page__grid {
    display: grid;
    gap: var(--space-xl);
}
.archive-page--grid.archive-page--cols-2 .archive-page__grid {
    grid-template-columns: repeat(2, 1fr);
}
.archive-page--grid.archive-page--cols-3 .archive-page__grid {
    grid-template-columns: repeat(3, 1fr);
}
@media (max-width: 1024px) {
    .archive-page--grid.archive-page--cols-3 .archive-page__grid {
        grid-template-columns: repeat(2, 1fr);
    }
}
@media (max-width: 767px) {
    .archive-page__grid { grid-template-columns: 1fr !important; }
}

/* List layout */
.archive-page--list .archive-page__grid {
    display: flex;
    flex-direction: column;
    gap: var(--space-lg);
}
.archive-page--list .archive-card {
    flex-direction: row;
    align-items: flex-start;
}
.archive-page--list .archive-card__image {
    width: 280px;
    flex-shrink: 0;
}
@media (max-width: 767px) {
    .archive-page--list .archive-card {
        flex-direction: column;
    }
    .archive-page--list .archive-card__image {
        width: 100%;
    }
}

/* Archive card */
.archive-card {
    display: flex;
    flex-direction: column;
    background: #fff;
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    overflow: hidden;
    transition: box-shadow 0.2s ease, transform 0.2s ease;
}
.archive-card:hover {
    box-shadow: var(--shadow-lg);
    transform: translateY(-2px);
}

.archive-card__image {
    display: block;
    overflow: hidden;
}
.archive-card__image img {
    aspect-ratio: 16/9;
    object-fit: cover;
    width: 100%;
    transition: transform 0.3s ease;
}
.archive-card:hover .archive-card__image img {
    transform: scale(1.03);
}

.archive-card__content {
    padding: var(--space-lg);
    flex: 1;
    display: flex;
    flex-direction: column;
}

.archive-card__header { margin-bottom: var(--space-sm); }

.archive-card__title {
    font-size: var(--text-xl);
    line-height: var(--leading-tight);
    margin-bottom: var(--space-xs);
}
.archive-card__title a {
    color: inherit;
    text-decoration: none;
}
.archive-card__title a:hover {
    color: var(--color-brand);
}

.archive-card__meta {
    font-size: var(--text-sm);
    color: var(--color-neutral-500);
    display: flex;
    align-items: center;
    gap: var(--space-xs);
}
.archive-card__sep { opacity: 0.5; }

.archive-card__excerpt {
    color: var(--color-neutral-600);
    flex: 1;
}
.archive-card__excerpt p { margin: 0; }

/* Empty state */
.archive-page__empty {
    text-align: center;
    padding: var(--space-3xl) var(--space-xl);
    color: var(--color-neutral-500);
}

/* Pagination */
.pagination {
    margin-top: var(--space-2xl);
    display: flex;
    justify-content: center;
}
.pagination__list {
    display: flex;
    gap: var(--space-xs);
    list-style: none;
    padding: 0;
    margin: 0;
}
.pagination__item a,
.pagination__item span {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    height: 40px;
    padding: 0 var(--space-sm);
    border-radius: var(--radius);
    text-decoration: none;
    font-weight: 500;
    transition: background 0.2s ease, color 0.2s ease;
}
.pagination__item a {
    color: var(--color-neutral-700);
    background: var(--color-neutral-100);
}
.pagination__item a:hover {
    background: var(--color-brand);
    color: #fff;
}
.pagination__item--current span {
    background: var(--color-brand);
    color: #fff;
}


/* =================================================================
   SINGLE POST
   ================================================================= */

.single-page { padding: var(--space-3xl) 0; }

/* Post article */
.single-post { margin-bottom: var(--space-2xl); }

.single-post__header {
    margin-bottom: var(--space-xl);
}
.single-post__title {
    font-size: var(--text-4xl);
    line-height: var(--leading-tight);
    margin-bottom: var(--space-sm);
}
.single-post__meta {
    font-size: var(--text-sm);
    color: var(--color-neutral-500);
}

.single-post__image {
    margin-bottom: var(--space-xl);
    border-radius: var(--radius);
    overflow: hidden;
}
.single-post__image img {
    width: 100%;
    height: auto;
}

.single-post__content {
    margin-bottom: var(--space-xl);
}

.single-post__footer {
    padding-top: var(--space-lg);
    border-top: 1px solid var(--color-neutral-200);
}
.single-post__taxonomies {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-xs);
    align-items: center;
    margin-bottom: var(--space-sm);
}
.single-post__taxonomies:last-child { margin-bottom: 0; }
.single-post__tax-label {
    font-weight: 600;
    color: var(--color-neutral-600);
    margin-right: var(--space-xs);
}
.single-post__taxonomies a {
    color: var(--color-brand);
    text-decoration: none;
}
.single-post__taxonomies a:hover {
    text-decoration: underline;
}

/* Author box */
.author-box {
    display: flex;
    gap: var(--space-lg);
    padding: var(--space-xl);
    background: var(--color-neutral-50);
    border-radius: var(--radius);
    margin-bottom: var(--space-2xl);
}
@media (max-width: 600px) {
    .author-box {
        flex-direction: column;
        text-align: center;
    }
}

.author-box__avatar { flex-shrink: 0; }
.author-box__img {
    width: 80px;
    height: 80px;
    border-radius: 50%;
}

.author-box__content { flex: 1; }
.author-box__name {
    font-size: var(--text-lg);
    margin-bottom: var(--space-xs);
}
.author-box__name a {
    color: inherit;
    text-decoration: none;
}
.author-box__name a:hover {
    color: var(--color-brand);
}
.author-box__bio {
    color: var(--color-neutral-600);
    margin-bottom: var(--space-sm);
}
.author-box__bio p:last-child { margin-bottom: 0; }
.author-box__link {
    color: var(--color-brand);
    text-decoration: none;
    font-weight: 500;
}
.author-box__link:hover {
    text-decoration: underline;
}

/* Related posts */
.related-posts {
    margin-bottom: var(--space-2xl);
    padding-top: var(--space-xl);
    border-top: 1px solid var(--color-neutral-200);
}
.related-posts__title {
    font-size: var(--text-2xl);
    margin-bottom: var(--space-lg);
}
.related-posts__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-lg);
}
@media (max-width: 767px) {
    .related-posts__grid {
        grid-template-columns: 1fr;
    }
}

.related-posts__item {
    background: #fff;
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    overflow: hidden;
}
.related-posts__image {
    display: block;
    overflow: hidden;
}
.related-posts__image img {
    aspect-ratio: 16/9;
    object-fit: cover;
    width: 100%;
    transition: transform 0.3s ease;
}
.related-posts__item:hover .related-posts__image img {
    transform: scale(1.03);
}
.related-posts__item-title {
    font-size: var(--text-base);
    padding: var(--space-md);
    padding-bottom: var(--space-xs);
}
.related-posts__item-title a {
    color: inherit;
    text-decoration: none;
}
.related-posts__item-title a:hover {
    color: var(--color-brand);
}
.related-posts__date {
    display: block;
    padding: 0 var(--space-md) var(--space-md);
    font-size: var(--text-sm);
    color: var(--color-neutral-500);
}

/* Post navigation */
.post-nav {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-lg);
    padding-top: var(--space-xl);
    border-top: 1px solid var(--color-neutral-200);
}
@media (max-width: 600px) {
    .post-nav {
        grid-template-columns: 1fr;
    }
}

.post-nav__link {
    display: flex;
    flex-direction: column;
    gap: var(--space-xs);
    padding: var(--space-lg);
    background: var(--color-neutral-50);
    border-radius: var(--radius);
    text-decoration: none;
    transition: background 0.2s ease;
}
.post-nav__link:hover {
    background: var(--color-neutral-100);
}
.post-nav__link--empty {
    opacity: 0;
    pointer-events: none;
}
.post-nav__link--next {
    text-align: right;
}

.post-nav__label {
    display: flex;
    align-items: center;
    gap: var(--space-xs);
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--color-neutral-500);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}
.post-nav__link--next .post-nav__label {
    justify-content: flex-end;
}
.post-nav__label svg {
    width: 16px;
    height: 16px;
}

.post-nav__title {
    font-size: var(--text-lg);
    font-weight: 600;
    color: var(--color-neutral-800);
    line-height: var(--leading-tight);
}

/* Search form */
.search-form-wrap {
    margin-bottom: var(--space-2xl);
}
.search-form {
    display: flex;
    gap: var(--space-sm);
    max-width: 500px;
}
.search-form label {
    flex: 1;
}
.search-form .search-field {
    width: 100%;
    padding: var(--space-sm) var(--space-md);
    border: 1px solid var(--color-neutral-300);
    border-radius: var(--radius);
    font-size: var(--text-base);
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.search-form .search-field:focus {
    outline: none;
    border-color: var(--color-brand);
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}
.search-form .search-submit {
    padding: var(--space-sm) var(--space-lg);
    background: var(--color-brand);
    color: #fff;
    border: none;
    border-radius: var(--radius);
    font-weight: 600;
    cursor: pointer;
    transition: background 0.2s ease;
}
.search-form .search-submit:hover {
    background: var(--color-brand-dark);
}


/* =================================================================
   404 PAGE
   ================================================================= */

.error-404 {
    padding: var(--space-3xl) 0;
    min-height: 60vh;
    display: flex;
    align-items: center;
    text-align: center;
    background: var(--color-bg-light); 
}
.error-404 .container { width: 100%; max-width: 600px; }
.error-404__code {
    line-height: 0;
    margin-bottom: var(--space-2xl);
}
.error-404__code img {
    display: block;
    width: 100%;
    max-width: 420px;
    height: auto;
    margin-inline: auto;
}
.error-404 h1 {
    font-size: var(--text-3xl);
    color: var(--color-neutral-800);
    margin-bottom: var(--space-md);
}
.error-404__content {
    color: var(--color-neutral-600);
    margin-bottom: var(--space-xl);
}
.error-404__content p { margin-bottom: var(--space-md); }
.error-404__content p:last-child { margin-bottom: 0; }
.error-404__actions {
    display: flex;
    gap: var(--space-md);
    justify-content: center;
    flex-wrap: wrap;
}

.page-content { padding: var(--space-3xl) 0; }
.page-content h1 { margin-bottom: var(--space-xl); }


/* =================================================================
   PRINT STYLES
   ================================================================= */

@media print {
    /* Page setup */
    @page {
        margin: 0.75in;
        size: letter;
    }

    /* Reset colors for print */
    * {
        background: transparent !important;
        color: #000 !important;
        box-shadow: none !important;
        text-shadow: none !important;
    }

    /* Typography adjustments */
    body {
        font-size: 12pt;
        line-height: 1.5;
    }

    h1 { font-size: 24pt; }
    h2 { font-size: 20pt; }
    h3 { font-size: 16pt; }
    h4, h5, h6 { font-size: 14pt; }

    /* Hide non-printable elements */
    .site-header,
    .site-footer,
    .site-nav,
    .mobile-nav-toggle,
    .skip-link,
    .c-sticky-cta,
    .btn,
    .btn--primary,
    .btn--secondary,
    .c-hero__buttons,
    .c-cta__buttons,
    .c-content-media__buttons,
    .c-cards .c-card__link,
    .search-form,
    .post-nav,
    .pagination,
    .gform_wrapper,
    .c-form-section,
    .global-cta,
    video,
    iframe,
    .c-gallery[data-layout="carousel"],
    .c-testimonials__nav,
    .c-testimonials__dots,
    noscript {
        display: none !important;
    }

    /* Show main content area */
    .site-main,
    main {
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    /* Container adjustments */
    .container {
        max-width: 100% !important;
        padding: 0 !important;
        margin: 0 !important;
    }

    /* Component spacing for print */
    .component {
        padding: 0.5in 0 !important;
        margin: 0 !important;
        page-break-inside: avoid;
    }

    /* Hero - simplified */
    .c-hero {
        min-height: auto !important;
        height: auto !important;
        padding: 0.25in 0 !important;
        background: none !important;
    }
    .c-hero::before { display: none !important; }
    .c-hero__content {
        position: static !important;
        transform: none !important;
    }
    .c-hero__eyebrow { color: #666 !important; }
    .c-hero__headline { font-size: 28pt !important; }

    /* Content + Media - stack vertically */
    .c-content-media__inner {
        display: block !important;
    }
    .c-content-media__media {
        max-width: 100% !important;
        margin-bottom: 0.25in !important;
    }
    .c-content-media__media img {
        max-width: 4in !important;
        height: auto !important;
    }

    /* Cards - grid for print */
    .c-cards__grid {
        display: grid !important;
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 0.25in !important;
    }
    .c-card {
        border: 1px solid #ccc !important;
        padding: 0.15in !important;
        page-break-inside: avoid;
    }
    .c-card__image {
        max-height: 1.5in !important;
        overflow: hidden;
    }

    /* Testimonials - show all */
    .c-testimonials__slider {
        display: block !important;
        overflow: visible !important;
    }
    .c-testimonials__slider .c-testimonial {
        display: block !important;
        width: 100% !important;
        margin-bottom: 0.25in !important;
        border: 1px solid #ccc !important;
        padding: 0.15in !important;
        page-break-inside: avoid;
    }
    .c-testimonials__slider .c-testimonial[hidden] {
        display: block !important;
    }

    /* Accordion - expand all for print */
    .c-accordion__content {
        display: block !important;
        max-height: none !important;
        overflow: visible !important;
        padding: 0.1in 0 !important;
    }
    .c-accordion__item {
        border: 1px solid #ccc !important;
        margin-bottom: 0.1in !important;
        padding: 0.1in !important;
        page-break-inside: avoid;
    }
    .c-accordion__icon { display: none !important; }

    /* Stats */
    .c-stats__grid {
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 0.25in !important;
    }
    .c-stat {
        flex: 1 1 30% !important;
        text-align: center;
    }

    /* Logo grid */
    .c-logos__grid {
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 0.15in !important;
    }
    .c-logos__item {
        width: 1in !important;
        filter: none !important;
    }
    .c-logos__item img {
        max-width: 100% !important;
        max-height: 0.75in !important;
    }

    /* Gallery - grid only */
    .c-gallery__grid {
        display: grid !important;
        grid-template-columns: repeat(3, 1fr) !important;
        gap: 0.1in !important;
    }
    .c-gallery__item img {
        max-height: 1.5in !important;
    }

    /* Icon cards */
    .c-icon-cards__grid {
        display: grid !important;
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 0.2in !important;
    }
    .c-icon-card {
        border: 1px solid #ccc !important;
        padding: 0.1in !important;
        page-break-inside: avoid;
    }

    /* Contact info */
    .c-contact-info__items {
        display: block !important;
    }
    .c-contact-info__item {
        margin-bottom: 0.1in !important;
    }

    /* Map - show placeholder text */
    .c-map__embed {
        border: 1px solid #ccc !important;
        padding: 0.25in !important;
        text-align: center;
    }
    .c-map__embed::after {
        content: "[Map - See website for interactive version]";
        display: block;
        font-style: italic;
        color: #666 !important;
    }

    /* Images */
    img {
        max-width: 100% !important;
        height: auto !important;
        page-break-inside: avoid;
    }

    /* Links - show URLs */
    a[href^="http"]:after,
    a[href^="https"]:after {
        content: " (" attr(href) ")";
        font-size: 10pt;
        color: #666 !important;
        word-break: break-all;
    }

    /* Don't show URL for buttons or images */
    a.btn:after,
    a.c-card:after,
    a > img:after,
    .c-logos__item a:after {
        content: none !important;
    }

    /* Page break hints */
    h1, h2, h3, h4, h5, h6 {
        page-break-after: avoid;
        page-break-inside: avoid;
    }

    p, blockquote, ul, ol, dl, table, figure {
        page-break-inside: avoid;
    }

    /* Orphan/widow control */
    p {
        orphans: 3;
        widows: 3;
    }

    /* Archive/blog posts */
    .archive-page__grid {
        display: block !important;
    }
    .archive-card {
        display: flex !important;
        gap: 0.2in !important;
        border-bottom: 1px solid #ccc !important;
        padding: 0.15in 0 !important;
        page-break-inside: avoid;
    }
    .archive-card__image {
        width: 1.5in !important;
        flex-shrink: 0;
    }

    /* Single post */
    .single-post__featured {
        max-height: 3in !important;
        overflow: hidden;
    }
    .author-box {
        border: 1px solid #ccc !important;
        padding: 0.15in !important;
        margin: 0.25in 0 !important;
    }

    /* Prose content */
    .prose {
        max-width: 100% !important;
    }
    .prose a:after {
        content: none !important; /* Too noisy in body text */
    }

    /* CTA section - text only */
    .c-cta {
        border: 2px solid #000 !important;
        padding: 0.25in !important;
        text-align: center;
    }

    /* Background sections - add border for visual separation */
    .bg--dark,
    .bg--brand,
    .bg--light {
        border: 1px solid #ccc !important;
        padding: 0.2in !important;
        margin: 0.1in 0 !important;
    }
}


/* =================================================================
   FLORA & FAUNA COMPONENTS
   ================================================================= */

/* ----------------------- BRAND HERO ----------------------- */

.c-brand-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: 180px 0 130px;
    background: var(--color-neutral-900);
    color: #fff;
}
.c-brand-hero__media {
    position: absolute;
    inset: 0;
    z-index: -2;
}
.c-brand-hero__media img,
.c-brand-hero__media video {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.c-brand-hero__overlay {
    position: absolute;
    inset: 0;
    z-index: -1;
    background: #000;
}
.c-brand-hero__inner { position: relative; }
.c-brand-hero__eyebrow {
    margin: 0;
    font-size: var(--text-eyebrow);
    font-weight: 500;
    line-height: normal;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--color-primary-200);
}
.c-brand-hero__wordmark {
    width: 737px;
    max-width: 100%;
    aspect-ratio: 737 / 71;
    margin-top: 24px;
    overflow: hidden;
    line-height: 0;
}
.c-brand-hero__wordmark img,
.c-brand-hero__wordmark svg { width: 100%; height: auto; display: block; }
.c-brand-hero__headline {
    margin: 10px 0 0;
    font-size: 36px;
    line-height: 1.5;
    letter-spacing: 0;
    color: var(--color-primary-100);
}
.c-brand-hero--no-wordmark .c-brand-hero__headline {
    margin-top: 24px;
    font-size: var(--text-5xl);
    line-height: 1;
}
.c-brand-hero__subhead {
    max-width: 800px;
    margin: 38px 0 0;
    font-size: 20px;
    line-height: 1.5;
    color: #fff;
}
.c-brand-hero__subhead p { margin: 0 0 1em; }
.c-brand-hero__subhead p:last-child { margin: 0; }
.c-brand-hero__buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    margin-top: 52px;
}
@media (max-width: 768px) {
    .c-brand-hero { padding: 240px 0 40px; }
    .c-brand-hero__eyebrow { font-size: 12px; letter-spacing: 1.2px; }
    .c-brand-hero__wordmark { width: 300px; margin-top: 20px; }
    .c-brand-hero__headline { margin-top: 20px; font-size: 26px; line-height: 1.2; }
    .c-brand-hero--no-wordmark .c-brand-hero__headline { font-size: 34px; line-height: 1.15; margin-top: 20px; }
    .c-brand-hero__subhead { margin-top: 20px; font-size: 15px; line-height: 24px; }
    .c-brand-hero__buttons { margin-top: 20px; }
}


/* ----------------------- SERVICE BAR ----------------------- */

.c-service-bar {
    padding: 54px 0;
    background: var(--color-neutral-900);
    border-top: 2px solid var(--color-primary-300);
    border-bottom: 2px solid var(--color-primary-300);
    color: #fff;
}
.c-service-bar__form {
    display: grid;
    grid-template-columns: 202.8px 207.25px 207.25px 207.25px 175.45px;
    justify-content: space-between;
    align-items: end;
    gap: 48px;
    margin: 0;
}
.c-service-bar__headline {
    align-self: center;
    margin: 0;
    font-size: 24px;
    line-height: 1.5;
    letter-spacing: 0;
    color: var(--color-primary-200);
}
.c-service-bar__field { display: flex; flex-direction: column; min-width: 0; }
.c-service-bar__label {
    padding-bottom: 10px;
    font-size: var(--text-label);
    font-weight: 500;
    line-height: var(--leading-label);
    letter-spacing: var(--tracking-label);
    text-transform: uppercase;
    color: #fff;
}
.c-service-bar__select-wrap {
    position: relative;
    height: 43px;
    border-bottom: 1px solid var(--color-primary-200);
}
.c-service-bar__select {
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0 28px 2px 2px;
    font-family: var(--font-sans);
    font-size: 14.5px;
    font-weight: 400;
    line-height: normal;
    color: var(--color-primary-200);
    background: transparent;
    border: 0;
    border-radius: 0;
    -webkit-appearance: none;
    appearance: none;
    cursor: pointer;
}
.c-service-bar__select:focus-visible { outline-offset: 4px; }
.c-service-bar__select option { color: var(--color-primary-900); background: var(--color-primary-50); }
.c-service-bar__chevron {
    position: absolute;
    right: 1px;
    top: 50%;
    width: 14px;
    height: 8px;
    margin-top: -4px;
    pointer-events: none;
}
.c-service-bar__chevron svg { width: 100%; height: 100%; display: block; }
.c-service-bar__submit {
    height: 53px;
    padding: 0 12px;
    width: 100%;
    white-space: nowrap;
}
@media (max-width: 1360px) {
    .c-service-bar__form { grid-template-columns: 1.1fr 1.15fr 1.15fr 1.15fr 1fr; gap: 32px; }
}
@media (max-width: 1024px) {
    .c-service-bar__form { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 32px; }
    .c-service-bar__headline { grid-column: 1 / -1; }
}
@media (max-width: 768px) {
    .c-service-bar {
        padding: 32px 0 36px;
        border-top-color: var(--color-primary-400);
        border-bottom-color: var(--color-primary-400);
    }
    .c-service-bar__form { display: flex; flex-direction: column; align-items: stretch; gap: 18px; }
    .c-service-bar__headline { align-self: flex-start; font-size: 22px; line-height: normal; }
    .c-service-bar__field { gap: 8px; }
    .c-service-bar__label { padding: 0; font-size: 11px; letter-spacing: 1.54px; line-height: normal; }
    .c-service-bar__select-wrap {
        height: auto;
        border: 1px solid var(--color-primary-400);
        border-radius: var(--radius-sm);
    }
    .c-service-bar__select { padding: 13px 40px 13px 14px; font-size: 14px; height: auto; }
    .c-service-bar__chevron { right: 14px; }
    .c-service-bar__submit { height: auto; padding: 16px; font-weight: 500; }
}


/* ----------------------- OCCASIONS CAROUSEL ----------------------- */

.c-occasions {
    position: relative;
    overflow: hidden;
    padding: 190px 0;
    background: #fff;
}
.c-occasions__deco {
    position: absolute;
    overflow: hidden;
    pointer-events: none;
    opacity: 0.1;
    z-index: 0;
}
.c-occasions__deco img { position: absolute; max-width: none; }
.c-occasions__deco--sprigs {
    top: 0;
    right: 0;
    width: 681px;
    height: 956px;
}
.c-occasions__deco--sprigs img {
    width: 168.87%;
    height: 127.16%;
    left: 0;
    top: -27.16%;
    object-fit: fill;
    transform: scaleX(-1);
}
.c-occasions__deco--hare {
    left: -20.44%;
    top: 36.9%;
    width: 32.43%;
    height: 68.01%;
}
.c-occasions__deco--hare img { inset: 0; width: 100%; height: 100%; object-fit: contain; }
.c-occasions__inner { position: relative; z-index: 1; }
.c-occasions__headline {
    max-width: 900px;
    margin: 0;
}
.c-occasions__carousel { margin-top: 88px; }
.c-occasions__viewport {
    height: 742px;
    overflow: hidden;
    margin: -4px -4px 0;
    padding: 4px 4px 0;
}
.c-occasions__track {
    display: flex;
    gap: 40px;
    align-items: flex-start;
    transition: transform 500ms cubic-bezier(0.22, 0.61, 0.36, 1);
    will-change: transform;
}
.c-occasion-card {
    flex: 0 0 380px;
    width: 380px;
    display: flex;
    flex-direction: column;
    text-decoration: none;
    color: inherit;
}
.c-occasion-card__image {
    position: relative;
    height: 475px;
    margin: 0;
    overflow: hidden;
    background: var(--color-primary-100);
}
.c-occasion-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 600ms ease;
}
.c-occasion-card--linked:hover .c-occasion-card__image img { transform: scale(1.03); }
.c-occasion-card:not(.c-occasion-card--linked) { cursor: default; }
.c-occasion-card__title {
    margin: 24px 0 0;
    font-size: 36px;
    line-height: 1.5;
    letter-spacing: 0;
    color: var(--color-primary-900);
}
.c-occasion-card__desc {
    max-width: 275px;
    margin: 10px 0 16px;
    font-size: 20px;
    line-height: 1.5;
    color: var(--color-primary-700);
}
.c-occasion-card__link { align-self: flex-start; margin-top: 9px; }
.c-occasions__controls {
    display: flex;
    gap: 14px;
    height: 60px;
    padding-top: 8px;
}
.c-slider-arrow {
    width: 52px;
    height: 52px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    background: transparent;
    border: 1px solid var(--color-primary-800);
    border-radius: 0;
    color: var(--color-primary-800);
    cursor: pointer;
    transition: opacity var(--transition), background-color var(--transition);
}
.c-slider-arrow svg { width: 18px; height: 12px; }
.c-slider-arrow:hover:not(:disabled) { background: var(--color-primary-100); }
.c-slider-arrow:disabled { opacity: 0.35; cursor: default; }
@media (max-width: 1024px) {
    .c-occasions { padding: 120px 0; }
    .c-occasions__deco--sprigs { width: 420px; height: 590px; }
}
@media (max-width: 768px) {
    /* The extra bottom padding only exists to make room for the hare watermark.
       Without a bottom deco image, bottom padding matches the top. */
    .c-occasions { padding: 72px 0; }
    .c-occasions--has-deco-bottom,
    .c-occasions:has(.c-occasions__deco--hare) { padding-bottom: 200px; }
    .c-occasions__headline { font-size: 34px; line-height: 1.15; }
    .c-occasions__carousel { margin-top: 40px; }
    .c-occasions__viewport { height: 501px; margin: 0; padding: 0; overflow: visible; }
    .c-occasions__track { gap: 16px; }
    .c-occasion-card { flex-basis: 300px; width: 300px; }
    .c-occasion-card__image { height: 360px; }
    .c-occasion-card__title { margin-top: 10px; font-size: 24px; line-height: normal; }
    .c-occasion-card__desc { max-width: none; margin: 10px 0; font-size: 14px; line-height: 22px; }
    .c-occasion-card__link { margin-top: 0; }
    .c-occasions__controls { justify-content: flex-end; height: auto; padding-top: 42px; }
    .c-occasions__deco--sprigs { top: 0; right: 0; width: 214px; height: 486px; }
    .c-occasions__deco--sprigs img { width: 248.6%; height: 115.67%; left: 0.23%; top: -26.97%; transform: none; }
    .c-occasions__deco--hare { left: -64px; top: 656px; width: 230px; height: 300px; }
}


/* ----------------------- SPLIT FADER (Chef-Curated) ----------------------- */

.c-split-fader {
    padding: 190px 0;
    background: var(--color-primary-50);
    border-top: 1px solid var(--color-secondary-100);
    border-bottom: 1px solid var(--color-secondary-100);
}
.c-split-fader__inner {
    display: grid;
    grid-template-columns: 482.39px 589.61px;
    justify-content: space-between;
    align-items: center;
    gap: 120px;
}
.c-split-fader--media-left .c-split-fader__inner { grid-template-columns: 589.61px 482.39px; }
.c-split-fader--media-left .c-split-fader__media { order: -1; }
.c-split-fader__headline { max-width: 518px; margin: 0; }
.c-split-fader__text { max-width: 392px; margin-top: 34px; }
.c-split-fader__text p {
    margin: 0 0 24px;
    font-size: 20px;
    line-height: 1.5;
    color: var(--color-primary-700);
}
.c-split-fader__text p:last-child { margin-bottom: 0; }
.c-split-fader__buttons { margin-top: 40px; display: flex; gap: 24px; flex-wrap: wrap; }
.c-split-fader__media {
    position: relative;
    width: 100%;
    height: 659px;
    overflow: hidden;
    /* background: var(--color-neutral-900); */
}
.c-split-fader__slide {
    position: absolute;
    inset: 0;
    opacity: 0;
    transition: opacity 1200ms ease;
}
.c-split-fader__slide.is-active { opacity: 1; }
.c-split-fader__slide img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 1360px) {
    .c-split-fader__inner { grid-template-columns: 1fr 1.2fr; gap: 64px; }
    .c-split-fader--media-left .c-split-fader__inner { grid-template-columns: 1.2fr 1fr; }
    .c-split-fader__media { height: auto; aspect-ratio: 590 / 659; }
}
@media (max-width: 1024px) { .c-split-fader { padding: 120px 0; } }
@media (max-width: 768px) {
    .c-split-fader:not(:last-of-type) { padding: 72px 0 0; }
    .c-split-fader:last-of-type{
    padding-bottom:72px;
    }
    .c-split-fader__inner,
    .c-split-fader--media-left .c-split-fader__inner { display: flex; flex-direction: column; gap: 22px; }
    .c-split-fader--media-left .c-split-fader__media { order: 0; }
    .c-split-fader__headline { max-width: none; }
    .c-split-fader__text { max-width: none; margin-top: 0; }
    .c-split-fader__text p { margin-bottom: 22px; font-size: 15px; line-height: 24px; }
    /* Space before the buttons lives on the buttons, not on the last paragraph, so it's the
       same whether the text ends in a <p> or a numbered <ol> */
    .c-split-fader__text > :last-child { margin-bottom: 0; }
    .c-split-fader__buttons { margin-top: 28px; }
    .c-split-fader__media {
        width: calc(100% + 48px);
        margin: 10px -24px 0;
        height: 289px;
        aspect-ratio: auto;
    }
    /* Directly before a gallery strip: media sits above the content instead of below it,
       so the section ends on text rather than stacking two full-bleed image blocks. */
    .c-split-fader--before-gallery,
    .c-split-fader:has(+ .c-gallery-strip) { padding: 0 0 72px; }
    .c-split-fader--before-gallery .c-split-fader__media,
    .c-split-fader:has(+ .c-gallery-strip) .c-split-fader__media {
        order: -1;
        margin: 0 -24px 10px;
    }
}


/* ----------------------- MENU LIST (Sample Menus) ----------------------- */

.c-menu-list {
    position: relative;
    isolation: isolate;
    padding: 190px 0;
    background: #fff;
}
.c-menu-list__texture {
    position: absolute;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    overflow: hidden;
}
.c-menu-list__texture img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0.35;
}
.c-menu-list__header { max-width: none; }
.c-menu-list__headline { max-width: 1100px; margin: 0; }
.c-menu-list__intro {
    max-width: 766px;
    margin: 26px 0 0;
    font-size: 20px;
    line-height: 1.5;
    color: var(--color-primary-700);
}
.c-menu-list__list {
    list-style: none;
    margin: 88px 0 0;
    padding: 1px 0 0;
    border-top: 1px solid var(--color-primary-800);
}
.c-menu-list__item {
    display: grid;
    grid-template-columns: 280px minmax(0, 420px) auto;
    justify-content: space-between;
    gap: 64px;
    align-items: center;
    padding: 50px 0;
    border-bottom: 1px solid var(--color-primary-800);
}
.c-menu-list__title {
    margin: 0;
    font-size: 36px;
    line-height: 1.5;
    letter-spacing: 0;
    color: var(--color-primary-900);
}
.c-menu-list__title a { color: inherit; text-decoration: none; }
.c-menu-list__title a:hover { color: var(--color-primary-500); }
.c-menu-list__desc {
    max-width: 420px;
    margin: 0;
    font-size: 20px;
    line-height: 1.5;
    color: var(--color-primary-700);
}
.c-menu-list__link { justify-self: end; white-space: nowrap; }
.c-menu-list__more { margin-top: 68px; }
@media (max-width: 1360px) {
    .c-menu-list__item { grid-template-columns: minmax(200px, 0.3fr) minmax(0, 1fr) auto; gap: 40px; }
}
@media (max-width: 1024px) { .c-menu-list { padding: 120px 0; } }
@media (max-width: 768px) {
    .c-menu-list { padding: 72px 0 64px; }
    .c-menu-list__intro { margin-top: 24px; font-size: 15px; line-height: 24px; }
    .c-menu-list__list { margin-top: 28px; padding-top: 0; border-top: 0; }
    .c-menu-list__item {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
        padding: 24px 0;
        border-top: 1px solid var(--color-primary-400);
        border-bottom: 0;
    }
    .c-menu-list__item:last-child { border-bottom: 1px solid var(--color-primary-400); }
    .c-menu-list__title { font-size: 24px; line-height: normal; }
    .c-menu-list__desc { max-width: none; font-size: 14px; line-height: 22px; }
    .c-menu-list__more { margin-top: 24px; }
    .c-menu-list__more .link-line { font-size: 12px; letter-spacing: 2.4px; }
}


/* ----------------------- GALLERY STRIP ----------------------- */

.c-gallery-strip {
    background: var(--color-primary-50);
    padding-bottom: 140px;
}
.c-gallery-strip__slides {
    position: relative;
    height: 760px;
    overflow: hidden;
    background: var(--color-neutral-900);
    touch-action: pan-y;   /* horizontal swipe changes slides; vertical stays page scroll */
    user-select: none;
    -webkit-user-select: none;
    cursor: grab;
}
.c-gallery-strip__slides:active { cursor: grabbing; }
.c-gallery-strip__slide {
    position: absolute;
    inset: 0;
    opacity: 0;
    transition: opacity 1000ms ease;
}
.c-gallery-strip__slide.is-active { opacity: 1; }
.c-gallery-strip__slide img { width: 100%; height: 100%; object-fit: cover; }
.c-gallery-strip__bar {
    position: relative;
    height: 47px;
    padding: 36px 84px 0;
}
.c-gallery-strip__caption {
    margin: 0;
    font-size: 16px;
    font-weight: 500;
    line-height: normal;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--color-primary-700);
}
.c-gallery-strip__caption span { display: none; }
.c-gallery-strip__caption span.is-active { display: block; }
.c-gallery-strip__dots {
    position: absolute;
    top: 46px;
    right: 80px;
    display: flex;
    align-items: center;
    gap: 4px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.c-gallery-strip__dot {
    display: block;
    width: 56.76px;
    height: 14px;
    min-height: 14px;
    margin: -6px 0;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
    position: relative;
    transition: width 400ms ease;
}
.c-gallery-strip__dot::before {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    top: 6px;
    height: 2px;
    border-radius: 2px;
    background: var(--color-secondary-100);
    transition: background-color 400ms ease;
}
.c-gallery-strip__dot.is-active { width: 113.23px; }
.c-gallery-strip__dot.is-active::before { background: var(--color-secondary-300); }
@media (max-width: 1360px) {
    .c-gallery-strip__bar { padding-left: var(--gutter); padding-right: var(--gutter); }
    .c-gallery-strip__slides { height: auto; aspect-ratio: 1920 / 760; }
}
@media (max-width: 768px) {
    .c-gallery-strip { padding-bottom: 69px; }
    .c-gallery-strip__slides { height: 300px; aspect-ratio: auto; }
    .c-gallery-strip__bar {
        height: auto;
        padding: 10px 24px 0;
        text-align: center;
    }
    .c-gallery-strip__caption { font-size: 11px; letter-spacing: 1.98px; text-align: center; }
    .c-gallery-strip__dots { position: static; justify-content: center; margin-top: 20px; }
}


/* ----------------------- NUMBERED STEPS (How It Works) ----------------------- */

.c-steps {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: 190px 0;
    background: var(--color-neutral-900);
    color: #fff;
}
.c-steps__art {
    position: absolute;
    right: 0;
    top: 33.74%;
    width: 31.9%;
    height: 57.14%;
    z-index: -1;
    opacity: 0.15;
    pointer-events: none;
}
.c-steps__art img { width: 100%; height: 100%; object-fit: contain; object-position: right top; }
.c-steps__headline { max-width: 900px; margin: 0; color: #fff; }
.c-steps__list {
    list-style: none;
    max-width: 760px;
    margin: 100px 0 0;
    padding: 0;
}
.c-steps__item {
    display: grid;
    grid-template-columns: 110px 1fr;
    gap: 52px;
    align-items: start;
    padding: 44px 0;
}
.c-steps__item + .c-steps__item {
    padding-top: 45px;
    border-top: 1px solid var(--color-primary-700);
}
.c-steps__num {
    margin: 0;
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 64px;
    line-height: 1.1;
    letter-spacing: -0.02em;
    color: var(--color-primary-200);
}
.c-steps__title {
    margin: 0;
    font-size: 24px;
    line-height: 1.5;
    letter-spacing: 0;
    color: var(--color-primary-200);
}
.c-steps__desc {
    max-width: 560px;
    margin: 10px 0 0;
    font-size: 20px;
    line-height: 1.5;
    color: #fff;
}
.c-steps__more { margin-top: 76px; }
.c-steps__more .link-line { padding-bottom: 7px; }
@media (max-width: 1024px) {
    .c-steps { padding: 120px 0; }
    .c-steps__list { margin-top: 64px; }
}
@media (max-width: 768px) {
    .c-steps {
        padding: 72px 0 260px;
        background: linear-gradient(155.57deg, var(--color-neutral-900) 0%, var(--color-neutral-800) 100%);
    }
    .c-steps__art { right: 0; top: 68.98%; width: 58.88%; height: 35.73%; }
    .c-steps__list { margin-top: 28px; }
    .c-steps__item { grid-template-columns: auto 1fr; gap: 18px; padding: 0 0 28px; }
    .c-steps__item + .c-steps__item { padding-top: 0; border-top: 0; }
    .c-steps__num { font-size: 36px; line-height: normal; letter-spacing: 0; }
    .c-steps__title { font-size: 20px; line-height: normal; }
    .c-steps__desc { max-width: none; margin-top: 6px; font-size: 14px; line-height: 22px; }
    .c-steps__more { margin-top: 0; }
    .c-steps__more .link-line { font-size: 11px; letter-spacing: 1.98px; }
}


/* ----------------------- CONSULTATION CTA ----------------------- */

.c-consult-cta {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: 190px 0;
    background: #fff;
}
/* Figma 2:381 â€” artwork mirrored, spanning 50%â†’140.41% of the width.
   Height follows the image's own aspect ratio (not the section height) so the art
   never stretches when the section is taller/shorter than the Figma frame. In Figma the
   art's centre sits ~12% of the width above the section's centre; margin-top reproduces that. */
.c-consult-cta__art {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 90.41%;
    height: auto;
    aspect-ratio: 2974 / 4096;
    margin-top: -12vw;
    transform: translateY(-50%);
    z-index: -1;
    pointer-events: none;
    mix-blend-mode: multiply;
}
.c-consult-cta__art img {
    width: 100%;
    height: 100%;
    object-fit: fill;
    transform: scaleX(-1);
}
/* Pre-composed phone artwork (Figma 150:78 export): hidden on desktop */
.c-consult-cta__art--mobile { display: none; }
.c-consult-cta__headline { max-width: 594px; margin: 0; }
.c-consult-cta__text {
    max-width: 406px;
    margin: 34px 0 0;
    font-size: 20px;
    line-height: 1.5;
    color: var(--color-primary-700);
}
.c-consult-cta__text p { margin: 0 0 1em; }
.c-consult-cta__text p:last-child { margin: 0; }
.c-consult-cta__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 44px;
    margin-top: 52px;
}
.c-consult-cta__actions .btn { font-weight: 500; }
.c-consult-cta__phone {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    font-size: var(--text-label);
    font-weight: 500;
    line-height: var(--leading-label);
    letter-spacing: var(--tracking-label);
    text-transform: uppercase;
    text-decoration: none;
    color: var(--color-primary-800);
}
.c-consult-cta__phone .ff-icon { width: 13px; height: 13px; }
.c-consult-cta__phone:hover { color: var(--color-primary-500); }
.c-consult-cta__form { margin-top: 44px; max-width: 594px; }
@media (max-width: 1024px) { .c-consult-cta { padding: 120px 0; } }
@media (max-width: 768px) {
    .c-consult-cta { padding: 72px 0 220px; }
    /* Figma 150:78 â€” artwork upright; placement solved against the frame render:
       image 721px wide at (201px, -162px) on the 402px frame, expressed relative to the section width */
    .c-consult-cta__art {
        top: -40.30vw;
        left: 50.00%;
        width: 179.35%;
        height: auto;
        aspect-ratio: 2974 / 4096;
        margin-top: 0;
        transform: none;
    }
    .c-consult-cta__art img { transform: none; object-fit: fill; }
    /* When a mobile composition is provided it replaces the desktop artwork exactly as in Figma */
    .c-consult-cta--has-mobile-art .c-consult-cta__art { display: none; }
    .c-consult-cta--has-mobile-art .c-consult-cta__art--mobile {
        display: block;
        top: 0;
        left: 0;
        width: 100%;
        height: auto;
        aspect-ratio: 402 / 605;
        mix-blend-mode: normal;
    }
    .c-consult-cta__text { max-width: none; margin-top: 22px; font-size: 18px; }
    .c-consult-cta__actions { flex-direction: column; align-items: flex-start; gap: 22px; margin-top: 22px; }
    .c-consult-cta__phone { font-size: 13px; letter-spacing: 1.3px; text-transform: none; }
    .c-consult-cta__phone .ff-icon { display: none; }
}


/* ----------------------- PAGE HEADER (interior placeholder) ----------------------- */

.c-page-header {
    padding: 120px 0 90px;
    background: var(--color-primary-50);
    border-bottom: 1px solid var(--color-secondary-100);
}
.c-page-header__eyebrow { margin-bottom: 18px; }
.c-page-header__title { max-width: 900px; margin: 0; font-size: var(--text-4xl); line-height: var(--leading-tight); letter-spacing: var(--tracking-h2); color: var(--color-primary-900); }
.c-page-header__intro { max-width: 640px; margin-top: 30px; font-size: 20px; line-height: 1.5; color: var(--color-primary-700); }
.c-under-construction { padding: 90px 0 190px; background: var(--color-primary-50); }
.c-under-construction h1 { display: none; }
.c-under-construction p { max-width: 640px; font-size: 20px; color: var(--color-primary-700); }
@media (max-width: 768px) {
    .c-page-header { padding: 72px 0 48px; }
    .c-page-header__intro { margin-top: 20px; font-size: 15px; line-height: 24px; }
    .c-under-construction { padding: 48px 0 120px; }
    .c-under-construction p { font-size: 15px; line-height: 24px; }
}


/* =================================================================
   FLORA & FAUNA INTERIOR PAGES (content integration, 2026-09-23)
   Extends the homepage components for the 40 interior pages and
   restyles the library components used there to the design brief:
   dark/light fields alternate, Playfair headings, Avenir body,
   no rounded corners, no drop shadows, hairline rules.
   ================================================================= */

/* ----------------------- BRAND HERO: heights ----------------------- */

.c-brand-hero--medium { padding: 150px 0 110px; }
.c-brand-hero--small { padding: 120px 0 90px; }
.c-brand-hero--compact { padding: 96px 0 72px; }
.c-brand-hero--no-media .c-brand-hero__overlay { display: none; }
.c-brand-hero--no-media { border-bottom: 1px solid var(--color-primary-700); }
.c-brand-hero--medium.c-brand-hero--no-wordmark .c-brand-hero__headline,
.c-brand-hero--small.c-brand-hero--no-wordmark .c-brand-hero__headline { max-width: 900px; font-size: var(--text-4xl); line-height: var(--leading-tight); letter-spacing: var(--tracking-h2); }
.c-brand-hero--compact.c-brand-hero--no-wordmark .c-brand-hero__headline { max-width: 900px; font-size: var(--text-3xl); line-height: var(--leading-tight); letter-spacing: 0; margin-top: 0; }
.c-brand-hero--large.c-brand-hero--no-wordmark .c-brand-hero__headline { max-width: 900px; }
.c-brand-hero--medium .c-brand-hero__subhead,
.c-brand-hero--small .c-brand-hero__subhead {margin-top: 28px;max-width: 720px;}
.c-brand-hero--medium .c-brand-hero__buttons,
.c-brand-hero--small .c-brand-hero__buttons { margin-top: 40px; }
.c-brand-hero__buttons .c-brand-hero__link { align-self: center; }
@media (max-width: 768px) {
    .c-brand-hero--medium { padding: 150px 0 40px; }
    .c-brand-hero--small { padding: 120px 0 40px; }
    .c-brand-hero--compact { padding: 48px 0 40px; }
    .c-brand-hero--medium.c-brand-hero--no-wordmark .c-brand-hero__headline,
    .c-brand-hero--small.c-brand-hero--no-wordmark .c-brand-hero__headline { font-size: 30px; }
    .c-brand-hero--compact.c-brand-hero--no-wordmark .c-brand-hero__headline { font-size: 26px; }
}

/* ----------------------- SPLIT FADER: fields, eyebrow, lists, video ----------------------- */

.c-split-fader--bg-white { background: #fff; }
.c-split-fader--bg-dark { background: var(--color-neutral-900); border-color: var(--color-primary-700); color: #fff; }
.c-split-fader--bg-dark .c-split-fader__headline { color: #fff; }
.c-split-fader--bg-dark .c-split-fader__text p,
.c-split-fader--bg-dark .c-split-fader__text li { color: var(--color-primary-100); }
.c-split-fader--bg-dark .eyebrow { color: var(--color-primary-400); }
.c-split-fader .eyebrow { margin: 0 0 18px; }
.c-split-fader + .c-split-fader { border-top: 0; }
.c-split-fader__text { max-width: 470px; }
.c-split-fader__text ol {
    list-style: none;
    counter-reset: sf-step;
    margin: 0;
    padding: 0;
}
.c-split-fader__text ol li {
    counter-increment: sf-step;
    position: relative;
    margin: 0 0 20px;
    padding-left: 52px;
    font-size: 20px;
    line-height: 1.5;
    color: var(--color-primary-700);
}
.c-split-fader__text ol li::before {
    content: counter(sf-step, decimal-leading-zero);
    position: absolute;
    left: 0;
    top: 0.05em;
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 24px;
    line-height: 1.2;
    letter-spacing: 0;
    color: var(--color-primary-500);
}
.c-split-fader__text ol li strong {
    display: block;
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 24px;
    line-height: 1.3;
    color: var(--color-primary-900);
}
.c-split-fader--bg-dark .c-split-fader__text ol li strong { color: var(--color-primary-200); }
.c-split-fader--bg-dark .c-split-fader__text ol li::before { color: var(--color-primary-400); }
.c-split-fader__text ol li:last-child { margin-bottom: 0; }
.c-split-fader__text ol + p { margin-top: 24px; }
.c-split-fader__text p strong { font-weight: 700; color: var(--color-primary-900); }
.c-split-fader--bg-dark .c-split-fader__text p strong { color: #fff; }
.c-split-fader__media--video video { width: 100%; height: 100%; object-fit: cover; display: block; }
@media (max-width: 768px) {
    .c-split-fader__text ol li { font-size: 15px; line-height: 24px; padding-left: 40px; margin-bottom: 16px; }
    .c-split-fader__text ol li::before { font-size: 18px; }
    .c-split-fader__text ol li strong { font-size: 18px; }
    .c-split-fader--bg-white:not(:last-of-type),
    .c-split-fader--bg-dark { padding-bottom: 0; }
}

/* ----------------------- MENU LIST: card grid (all menus) ----------------------- */

.c-menu-list--grid .c-menu-list__list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
    margin-top: 72px;
    border-top: 0;
    padding-top: 0;
}
.c-menu-list--grid .c-menu-list__header:empty { display: none; }
.c-menu-list--grid .c-menu-list__item {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
    padding: 44px 40px 44px 0;
    margin-right: 40px;
    border-top: 1px solid var(--color-primary-800);
    border-bottom: 0;
}
.c-menu-list--grid .c-menu-list__item:nth-child(-n+3) { border-top: 0; padding-top: 0; }
.c-menu-list--grid .c-menu-list__item:nth-child(3n) { margin-right: 0; padding-right: 0; }
.c-menu-list--grid .c-menu-list__title { font-size: 30px; line-height: 1.25; }
.c-menu-list--grid .c-menu-list__desc { max-width: none; font-size: 18px; }
.c-menu-list--grid .c-menu-list__link { justify-self: start; margin-top: auto; padding-top: 8px; }
.c-menu-list--grid .c-menu-list__list::after { content: none; }
@media (max-width: 1024px) {
    .c-menu-list--grid .c-menu-list__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .c-menu-list--grid .c-menu-list__item:nth-child(3n) { margin-right: 40px; padding-right: 40px; }
    .c-menu-list--grid .c-menu-list__item:nth-child(2n) { margin-right: 0; padding-right: 0; }
    .c-menu-list--grid .c-menu-list__item:nth-child(-n+3) { border-top: 1px solid var(--color-primary-800); padding-top: 44px; }
    .c-menu-list--grid .c-menu-list__item:nth-child(-n+2) { border-top: 0; padding-top: 0; }
}
@media (max-width: 768px) {
    .c-menu-list--grid .c-menu-list__list { grid-template-columns: 1fr; margin-top: 28px; }
    .c-menu-list--grid .c-menu-list__item,
    .c-menu-list--grid .c-menu-list__item:nth-child(3n),
    .c-menu-list--grid .c-menu-list__item:nth-child(-n+3) {margin-right: 0;/* padding: 24px 0; *//* border-top: 1px solid var(--color-primary-400); */}
    .c-menu-list--grid .c-menu-list__item:last-child {/* border-bottom: 1px solid var(--color-primary-400); */}
    .c-menu-list--grid .c-menu-list__title { font-size: 24px; }
    .c-menu-list--grid .c-menu-list__desc { font-size: 14px; line-height: 22px; }
}
/* Interior pages set the strip on the cream field so the white text+image sections read as separate bands */
.c-split-fader + .c-menu-list,
.c-form-section + .c-menu-list,
.c-gallery-strip + .c-menu-list,
.c-occasions + .c-menu-list { border-top: 1px solid var(--color-secondary-100); }

/* ----------------------- OCCASIONS: intro line ----------------------- */

.c-occasions__intro {
    max-width: 766px;
    margin: 26px 0 0;
    font-size: 20px;
    line-height: 1.5;
    color: var(--color-primary-700);
}
.c-occasions--global { background: var(--color-primary-50); }
@media (max-width: 768px) {
    .c-occasions__intro { margin-top: 20px; font-size: 15px; line-height: 24px; }
}

/* ----------------------- TEXT BLOCK: F&F ----------------------- */

.c-text-block { padding: 150px 0; }
.c-text-block--bg-light { background: var(--color-primary-50); }
.c-text-block--bg-dark { background: var(--color-neutral-900); color: #fff; }
.c-text-block--bg-dark .c-text-block__headline { color: #fff; }
.c-text-block--bg-dark .prose,
.c-text-block--bg-dark .prose p { color: var(--color-primary-100); }
.c-text-block--bg-dark .eyebrow { color: var(--color-primary-400); }
.c-text-block .container--narrow { max-width: 900px; }
.c-text-block__headline { max-width: 760px; margin: 0 0 30px; }
.c-text-block .prose { max-width: 640px; }
.c-text-block .prose p { font-size: 20px; line-height: 1.5; color: var(--color-primary-700); }
.c-text-block__buttons { display: flex; flex-wrap: wrap; gap: 24px; margin-top: 40px; }
/* Pull quote: one line set very large in Playfair, nothing else in view */
.c-text-block--quote { padding: 170px 0; text-align: center; }
.c-text-block--quote .container--narrow { max-width: 1100px; }
.c-text-block__quote {
    margin: 0 auto;
    padding: 0;
    border: 0;
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: clamp(2rem, 4.2vw, 3.75rem);
    line-height: 1.2;
    letter-spacing: var(--tracking-h2);
    color: var(--color-primary-100);
}
.c-text-block__quote p { margin: 0; }
.c-text-block--quote.c-text-block--bg-light .c-text-block__quote { color: var(--color-primary-800); }
@media (max-width: 1024px) { .c-text-block { padding: 110px 0; } .c-text-block--quote { padding: 120px 0; } }
@media (max-width: 768px) {
    .c-text-block { padding: 72px 0; }
    .c-text-block--quote { padding: 80px 0; }
    .c-text-block .prose p { font-size: 15px; line-height: 24px; }
    .c-text-block__headline { margin-bottom: 20px; }
    .c-text-block__buttons { margin-top: 24px; }
}

/* ----------------------- FORM SECTION: F&F ----------------------- */

.c-form-section { padding: 150px 0; }
.c-form-section--bg-light { background: var(--color-primary-50); }
.c-form-section--bg-white { background: #fff; }
.c-form-section--center .c-form-section__inner { max-width: 760px; }
.c-form-section--center .c-form-section__content { margin-bottom: 44px; }
.c-form-section__content h2 { margin: 0; }
.c-form-section__content .subhead {
    max-width: 560px;
    margin: 22px 0 0;
    font-size: 20px;
    line-height: 1.5;
    color: var(--color-primary-700);
}
.c-form-section--center .c-form-section__content .subhead { margin-left: auto; margin-right: auto; }
.c-form-section__content .prose { margin-top: 40px; }
.c-form-section__content .prose p { margin: 0 0 18px; font-size: 20px; line-height: 1.5; color: var(--color-primary-700); }
.c-form-section__content .prose p strong {
    display: block;
    margin-bottom: 4px;
    font-family: var(--font-sans);
    font-size: var(--text-label);
    font-weight: 500;
    letter-spacing: var(--tracking-label);
    text-transform: uppercase;
    color: var(--color-primary-800);
}
.c-form-section__content .prose a { color: var(--color-primary-900); text-decoration: none; border-bottom: 1px solid var(--color-primary-400); }
.c-form-section__content .prose a:hover { color: var(--color-primary-500); }
.c-form-section__form {
    padding: 48px;
    background: #fff;
    border: 1px solid var(--color-secondary-100);
    border-radius: 0;
    box-shadow: none;
}
.c-form-section--bg-white .c-form-section__form { background: var(--color-primary-50); }
@media (min-width: 768px) {
    .c-form-section--split .c-form-section__inner { grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: 96px; }
}
.c-form-section .gform_wrapper .gfield_label,
.c-consult-modal .gform_wrapper .gfield_label,
.c-brand-hero .gform_wrapper .gfield_label,
.c-form-section .gform_wrapper legend.gfield_label {
    font-family: var(--font-sans);
    font-size: var(--text-label);
    font-weight: 500;
    letter-spacing: var(--tracking-label);
    text-transform: uppercase;
    color: var(--color-primary-800);
}

.gform-datepicker-toggle{
display:none!important;    
}

.c-form-section .gform_wrapper .gform_button,
.c-form-section .gform_wrapper .gform-theme-button {
    font-family: var(--font-sans);
    font-size: var(--text-label);
    font-weight: 500;
    letter-spacing: var(--tracking-label);
    text-transform: uppercase;
    background: var(--color-primary-400);
    color: var(--color-primary-900);
    border: 1px solid var(--color-primary-400);
    border-radius: 0;
    padding: 18px 32px;
    cursor: pointer;
}
.c-form-section .gform_wrapper .gform_button:hover,
.c-form-section .gform_wrapper .gform-theme-button:hover { background: var(--color-primary-500); border-color: var(--color-primary-500); color: #fff; }
.c-form-section .gform_body input,
.c-consult-modal .gform_body input,
.c-brand-hero .gform_body input,
.c-form-section .gform_body select,
.c-form-section .gform_body textarea,
.c-consult-modal .gform_body textarea { font-family: var(--font-sans); font-size: 18px !important; background: #fff; border: 1px solid var(--color-secondary-100); }
.c-form-section .gform_body select { min-height: 50px; padding: 0.75rem 1rem; border-radius: 0; }
@media (max-width: 1024px) { .c-form-section { padding: 110px 0; } }
@media (max-width: 768px) {
    .c-form-section { padding: 72px 0; }
    .c-form-section__form { padding: 24px; }
    .c-form-section__content .subhead,
    .c-form-section__content .prose p { font-size: 15px; line-height: 24px; }
    .c-form-section--center .c-form-section__content { margin-bottom: 28px; }
}

/* ----------------------- ACCORDION: F&F (first answer open) ----------------------- */

.c-accordion { padding: 150px 0; }
.c-accordion--bg-light { background: var(--color-primary-50); }
.c-accordion__inner.container--narrow { max-width: 1000px; }
.c-accordion__header { text-align: left; margin-bottom: 56px; }
.c-accordion__header h2 { margin: 0; }
.c-accordion__items { border-top: 1px solid var(--color-primary-800); }
.c-accordion__item { border-bottom: 1px solid var(--color-primary-800); }
.c-accordion__item h3 { font-size: inherit; line-height: inherit; }
.c-accordion__trigger {
    padding: 30px 0;
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 24px;
    line-height: 1.4;
    color: var(--color-primary-900);
}
.c-accordion__trigger:hover { color: var(--color-primary-500); }
.c-accordion__icon { flex: 0 0 auto; width: 36px; height: 36px; stroke-width: 1; color: var(--color-primary-500); }
.c-accordion__content { max-width: 760px; padding-bottom: 34px; }
.c-accordion__content p { margin: 0 0 1em; font-size: 20px; line-height: 1.5; color: var(--color-primary-700); }
.c-accordion__content p:last-child { margin-bottom: 0; }
.c-accordion__content a { color: var(--color-primary-900); text-decoration: none; border-bottom: 1px solid var(--color-primary-400); }
.c-accordion__content a:hover { color: var(--color-primary-500); }
@media (max-width: 1024px) { .c-accordion { padding: 110px 0; } }
@media (max-width: 768px) {
    .c-accordion { padding: 72px 0; }
    .c-accordion__header { margin-bottom: 28px; }
    .c-accordion__trigger { padding: 20px 0; font-size: 18px; }
    .c-accordion__icon { width: 28px; height: 28px; }
    .c-accordion__content { padding-bottom: 22px; }
    .c-accordion__content p { font-size: 15px; line-height: 24px; }
}

/* ----------------------- ICON CARDS: F&F (type carries it, no stock icons) ----------------------- */

.c-icon-cards { padding: 150px 0; }
.c-icon-cards--bg-white { background: #fff; }
.c-icon-cards--bg-light { background: var(--color-primary-50); }
.c-icon-cards--bg-dark { background: var(--color-neutral-900); color: #fff; }
.c-icon-cards__header { text-align: left; max-width: none; margin: 0 0 64px; }
.c-icon-cards__header h2, .c-icon-cards__header h3, .c-icon-cards__header h4 { max-width: 900px; margin: 0; font-size: var(--text-4xl); line-height: var(--leading-tight); letter-spacing: var(--tracking-h2); }
.c-icon-cards--bg-dark .c-icon-cards__header h2 { color: #fff; }
.c-icon-cards__grid { gap: 40px; }
.c-icon-cards--none .c-icon-card { text-align: left; align-items: flex-start; gap: 12px; }
.c-icon-cards--boxed .c-icon-card {
    padding: 40px 32px 44px;
    background: #fff;
    border: 1px solid var(--color-secondary-100);
    border-top: 2px solid var(--color-primary-400);
    border-radius: 0;
    box-shadow: none;
}
.c-icon-cards--bg-light.c-icon-cards--boxed .c-icon-card { background: #fff; }
.c-icon-cards--bg-dark.c-icon-cards--boxed .c-icon-card { background: #ffffff0a; border-color: var(--color-primary-700); border-top-color: var(--color-primary-400); backdrop-filter: none; }
.c-icon-cards--minimal .c-icon-card { padding: 28px 0 0; border-top: 1px solid var(--color-primary-800); }
.c-icon-cards--bg-dark.c-icon-cards--minimal .c-icon-card { border-top-color: var(--color-primary-700); }
.c-icon-card__title { margin: 0; font-size: 24px; line-height: 1.4; color: var(--color-primary-900); }
.c-icon-cards--bg-dark .c-icon-card__title { color: var(--color-primary-200); }
.c-icon-card__desc, .c-icon-card__desc p { margin: 0; font-size: 18px; line-height: 1.5; color: var(--color-primary-700); }
.c-icon-cards--bg-dark .c-icon-card__desc, .c-icon-cards--bg-dark .c-icon-card__desc p { color: var(--color-primary-100); }
.c-icon-card__content { display: flex; flex-direction: column; gap: 10px; }
.c-icon-card__link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 6px;
    font-size: var(--text-label);
    font-weight: 500;
    letter-spacing: var(--tracking-label);
    text-transform: uppercase;
    text-decoration: none;
    color: var(--color-primary-800);
}
.c-icon-cards--bg-dark .c-icon-card__link { color: var(--color-primary-400); }
.c-icon-card__link:hover { color: var(--color-primary-500); }
.c-icon-card__link svg { width: 14px; height: 14px; }
.c-icon-card__icon { width: 40px; height: 40px; color: var(--color-primary-500); }
.c-icon-card__icon svg { width: 100%; height: 100%; }
/* F&F: bare line icons, no tile behind them (all backgrounds, site-wide) */
.c-icon-card__icon,
.c-icon-cards--bg-dark .c-icon-card__icon,
.c-icon-cards--bg-brand .c-icon-card__icon,
.c-icon-cards--bg-image .c-icon-card__icon { background: transparent; border-radius: 0; }
@media (max-width: 1024px) { .c-icon-cards { padding: 110px 0; } }
@media (max-width: 768px) {
    .c-icon-cards { padding: 72px 0; }
    .c-icon-cards__header { margin-bottom: 28px; }
    .c-icon-cards__grid { gap: 20px; }
    .c-icon-cards--boxed .c-icon-card { padding: 24px; }
    .c-icon-card__title { font-size: 20px; }
    .c-icon-card__desc, .c-icon-card__desc p { font-size: 15px; line-height: 24px; }
}

/* ----------------------- GALLERY: F&F (inset, dark field on menu pages) ----------------------- */

.c-gallery { padding: 150px 0; }
.c-gallery--bg-dark { background: var(--color-neutral-900); }
.c-gallery--bg-light { background: var(--color-primary-50); }
.c-gallery__header { text-align: left; max-width: none; margin: 0 0 56px; }
.c-gallery__grid { gap: 24px; }
.c-gallery__item { border-radius: 0; overflow: hidden; background: var(--color-neutral-800); }
.c-gallery__item img { display: block; width: 100%; }
@media (min-width: 769px) {
    .c-gallery--cols-3 .c-gallery__grid { grid-template-columns: repeat(3, 1fr); }
    .c-gallery--cols-4 .c-gallery__grid { grid-template-columns: repeat(4, 1fr); }
    .c-gallery--cols-5 .c-gallery__grid { grid-template-columns: repeat(5, 1fr); }
    /* Asymmetric editorial rhythm for the five-course galleries */
    .c-gallery--masonry.c-gallery--cols-3 .c-gallery__grid { display: grid; grid-template-columns: repeat(6, 1fr); column-count: auto; gap: 24px; }
    .c-gallery--masonry.c-gallery--cols-3 .c-gallery__item { grid-column: span 2; margin: 0; }
    .c-gallery--masonry.c-gallery--cols-3 .c-gallery__item:nth-child(5n+1),
    .c-gallery--masonry.c-gallery--cols-3 .c-gallery__item:nth-child(5n+2) { grid-column: span 3; }
    .c-gallery--masonry .c-gallery__item img { aspect-ratio: 4 / 3; height: 100%; object-fit: cover; }
}
.c-gallery--bg-dark .c-gallery__item { background: var(--color-neutral-800); }
@media (max-width: 1024px) { .c-gallery { padding: 110px 0; } }
@media (max-width: 768px) { .c-gallery { padding: 72px 0; } .c-gallery__grid { gap: 12px; } .c-gallery__header { margin-bottom: 28px; } }

/* ----------------------- MENU (courses): the printed card ----------------------- */

.c-menu {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: 150px 0;
    background: var(--color-neutral-900);
    color: #fff;
}
.c-menu--bg-light { background: var(--color-primary-50); color: var(--color-primary-900); }
.c-menu__art {
    position: absolute;
    right: -6%;
    top: 8%;
    width: 46%;
    max-width: 720px;
    z-index: -1;
    opacity: 0.12;
    pointer-events: none;
}
.c-menu__art img { width: 100%; height: auto; display: block; }
.c-menu .container--narrow { max-width: 1000px; }
.c-menu__header { margin-bottom: 56px; }
.c-menu__headline { margin: 0; color: #fff; }
.c-menu--bg-light .c-menu__headline { color: var(--color-primary-800); }
.c-menu__intro { max-width: 640px; margin: 22px 0 0; font-size: 20px; line-height: 1.5; color: var(--color-primary-100); }
.c-menu--bg-light .c-menu__intro { color: var(--color-primary-700); }
.c-menu__card {
    max-width: 820px;
    margin: 0 auto;
    padding: 72px 80px;
    border: 1px solid var(--color-primary-700);
    box-shadow: 12px 12px 0 var(--color-neutral-800);
    background: var(--color-neutral-900);
}
.c-menu--bg-light .c-menu__card { background: #fff; border-color: var(--color-primary-200); box-shadow: 12px 12px 0 var(--color-primary-100); }
.c-menu__courses { list-style: none; margin: 0; padding: 0; text-align: center; }
.c-menu__course { padding: 40px 0; }
.c-menu__course + .c-menu__course { border-top: 1px solid var(--color-primary-700); }
.c-menu--bg-light .c-menu__course + .c-menu__course { border-top-color: var(--color-primary-200); }
.c-menu__course:first-child { padding-top: 0; }
.c-menu__course:last-child { padding-bottom: 0; }
.c-menu__label {
    margin: 0 0 14px;
    font-size: var(--text-label);
    font-weight: 500;
    line-height: var(--leading-label);
    letter-spacing: var(--tracking-label);
    text-transform: uppercase;
    color: var(--color-primary-400);
}
.c-menu--bg-light .c-menu__label { color: var(--color-secondary-500); }
.c-menu__dish {
    margin: 0;
    font-size: 36px;
    line-height: 1.25;
    letter-spacing: 0;
    color: var(--color-primary-200);
}
.c-menu--bg-light .c-menu__dish { color: var(--color-primary-900); }
.c-menu__desc {
    max-width: 560px;
    margin: 14px auto 0;
    font-size: 20px;
    line-height: 1.5;
    color: #fff;
}
.c-menu--bg-light .c-menu__desc { color: var(--color-primary-700); }
@media (max-width: 1024px) { .c-menu { padding: 110px 0; } .c-menu__card { padding: 56px 40px; } }
@media (max-width: 768px) {
    .c-menu { padding: 72px 0; }
    .c-menu__header { margin-bottom: 28px; }
    .c-menu__card { padding: 32px 20px; box-shadow: 8px 8px 0 var(--color-neutral-800); }
    .c-menu__course { padding: 24px 0; }
    .c-menu__dish { font-size: 24px; }
    .c-menu__desc { margin-top: 10px; font-size: 15px; line-height: 24px; }
    .c-menu__art { display: none; }
}

/* ----------------------- LINK LIST: the index ----------------------- */

.c-link-list { padding: 150px 0; }
.c-link-list--bg-light { background: var(--color-primary-50); }
.c-link-list--bg-white { background: #fff; }
.c-link-list--bg-dark { background: var(--color-neutral-900); color: #fff; }
.c-link-list__header { margin-bottom: 56px; }
.c-link-list__headline { margin: 0; }
.c-link-list--bg-dark .c-link-list__headline { color: #fff; }
.c-link-list__intro { max-width: 640px; margin: 22px 0 0; font-size: 20px; line-height: 1.5; color: var(--color-primary-700); }
.c-link-list__group + .c-link-list__group { margin-top: 48px; }
.c-link-list__group-title {
    margin: 0 0 20px;
    font-family: var(--font-sans);
    font-size: var(--text-label);
    font-weight: 500;
    line-height: var(--leading-label);
    letter-spacing: var(--tracking-label);
    text-transform: uppercase;
    color: var(--color-secondary-500);
}
.c-link-list--bg-dark .c-link-list__group-title { color: var(--color-primary-400); }
.c-link-list__links {
    list-style: none;
    margin: 0;
    padding: 0;
    column-gap: 40px;
    border-top: 1px solid var(--color-primary-800);
}
.c-link-list--cols-2 .c-link-list__links { columns: 2; }
.c-link-list--cols-3 .c-link-list__links { columns: 3; }
.c-link-list--cols-4 .c-link-list__links { columns: 4; }
.c-link-list--bg-dark .c-link-list__links { border-top-color: var(--color-primary-700); }
.c-link-list__item { break-inside: avoid; border-bottom: 1px solid var(--color-primary-800); }
.c-link-list--bg-dark .c-link-list__item { border-bottom-color: var(--color-primary-700); }
.c-link-list__link {
    display: block;
    padding: 18px 0;
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 24px;
    line-height: 1.3;
    text-decoration: none;
    color: var(--color-primary-900);
}
.c-link-list--bg-dark .c-link-list__link { color: var(--color-primary-200); }
.c-link-list__link:hover { color: var(--color-primary-500); }
@media (max-width: 1024px) {
    .c-link-list { padding: 110px 0; }
    .c-link-list--cols-3 .c-link-list__links,
    .c-link-list--cols-4 .c-link-list__links { columns: 2; }
}
@media (max-width: 768px) {
    .c-link-list { padding: 72px 0; }
    .c-link-list__header { margin-bottom: 28px; }
    .c-link-list__links,
    .c-link-list--cols-2 .c-link-list__links { columns: 1; }
    .c-link-list__link { padding: 14px 0; font-size: 20px; }
}

/* ----------------------- METRO MAP ----------------------- */

.c-metro-map { padding: 110px 0 120px; background: var(--color-neutral-900); color: #fff; }
.c-metro-map--bg-light { background: var(--color-primary-50); color: var(--color-primary-900); }
.c-metro-map__header { margin-bottom: 48px; }
.c-metro-map__headline { margin: 0; color: #fff; }
.c-metro-map__intro { max-width: 640px; margin: 22px 0 0; font-size: 20px; line-height: 1.5; color: var(--color-primary-100); }
.c-metro-map__figure { max-width: 1100px; margin: 0 auto; }
.c-metro-map__svg { display: block; width: 100%; height: auto; overflow: visible; }
.c-metro-map__land { fill: var(--color-neutral-800); stroke: var(--color-primary-500); stroke-width: 1; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.c-metro-map--bg-light .c-metro-map__land { fill: #fff; stroke: var(--color-primary-300); }
.c-metro-map__pin { cursor: pointer; outline: none; }
.c-metro-map__halo { fill: var(--color-primary-400); opacity: 0; transition: opacity var(--transition); }
.c-metro-map__dot { fill: var(--color-primary-400); stroke: var(--color-neutral-900); stroke-width: 2; transition: r var(--transition); }
.c-metro-map--bg-light .c-metro-map__dot { stroke: #fff; }
.c-metro-map__label {
    font-family: var(--font-sans);
    font-size: 13px;
    font-weight: 500;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    fill: var(--color-primary-100);
    opacity: 0;
    transition: opacity var(--transition);
    pointer-events: none;
    paint-order: stroke;
    stroke: var(--color-neutral-900);
    stroke-width: 4px;
    stroke-linejoin: round;
}
.c-metro-map--bg-light .c-metro-map__label { fill: var(--color-primary-900); stroke: #fff; }
.c-metro-map__pin:hover .c-metro-map__halo,
.c-metro-map__pin:focus-visible .c-metro-map__halo { opacity: 0.25; }
.c-metro-map__pin:hover .c-metro-map__label,
.c-metro-map__pin:focus-visible .c-metro-map__label { opacity: 1; }
.c-metro-map__pin:focus-visible .c-metro-map__dot { stroke: var(--color-primary-100); }
.c-metro-map__list { display: none; }
@media (hover: none) {
    .c-metro-map__label { opacity: 1; font-size: 15px; }
}
@media (max-width: 768px) {
    .c-metro-map { padding: 64px 0 72px; }
    .c-metro-map__header { margin-bottom: 24px; }
    .c-metro-map__intro { font-size: 15px; line-height: 24px; }
    .c-metro-map__label { display: none; }
    .c-metro-map__dot { r: 7; }
}

/* ----------------------- FIELD RHYTHM ----------------------- */

/* Interior heroes flow straight into a cream or white band; keep hairlines between like fields */
.c-brand-hero + .c-form-section { border-bottom: 1px solid var(--color-secondary-100); }
.c-steps + .c-accordion,
.c-menu + .c-gallery { border-top: 0; }

/* Mega menu section label links to its hub page (Catering Services, Sample Menus) */
.c-mega-menu__label-link { color: inherit; text-decoration: none; transition: color var(--transition); }
.c-mega-menu__label-link:hover,
.c-mega-menu__label-link:focus-visible { color: var(--color-primary-500); }

/* Accordion: animated open/close (grid-rows transition; panels stay in the DOM, inert when closed) */
.c-accordion__panel {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 380ms cubic-bezier(0.22, 0.61, 0.36, 1);
}
.c-accordion__item.is-open > .c-accordion__panel { grid-template-rows: 1fr; }
.c-accordion__panel-inner { min-height: 0; overflow: hidden; }
.c-accordion__content { opacity: 0; transform: translateY(-6px); transition: opacity 260ms ease 60ms, transform 320ms ease 40ms; }
.c-accordion__item.is-open .c-accordion__content { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
    .c-accordion__panel, .c-accordion__content { transition: none; }
}
@media print {
    .c-accordion__panel { grid-template-rows: 1fr; }
    .c-accordion__content { opacity: 1; transform: none; }
}

/* Gallery embedded in an Icon Cards section (photographs below the cards, same field) */
.c-icon-cards .c-gallery--embedded { padding: 64px 0 0; background: transparent; }
@media (max-width: 768px) { .c-icon-cards .c-gallery--embedded { padding-top: 32px; } }

/* Text + Image Fader: show the whole image (frame takes the image's proportions, no crop) */
.c-split-fader--fit-natural .c-split-fader__media { height: auto; }
.c-split-fader--fit-natural .c-split-fader__slide img { object-fit: contain; }
@media (max-width: 768px) {
    .c-split-fader--fit-natural .c-split-fader__media { height: auto; aspect-ratio: auto; }
    .c-split-fader--fit-natural .c-split-fader__slide { position: relative; }
    .c-split-fader--fit-natural .c-split-fader__slide:not(.is-active) { position: absolute; }
    .c-split-fader--fit-natural .c-split-fader__slide img { height: auto; }
}

/* Icon Cards: optional background texture (35% over the field, as on the Sample Menu List) */
.c-icon-cards { isolation: isolate; }
.c-icon-cards__texture { position: absolute; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; }
.c-icon-cards__texture img { width: 100%; height: 100%; object-fit: cover; opacity: 0.35; }
.c-icon-cards__inner, .c-icon-cards .c-gallery--embedded { position: relative; z-index: 1; }

/* Background textures on mobile: a tall, narrow section would stretch/crop the single <img>
   past recognition, so tile the texture instead. The wrapper carries --texture-url (set inline
   by the component); the tile is viewport-wide and repeats vertically, so there is no vertical
   seam and the grain stays at a sensible scale. */
@media (max-width: 768px) {
    .c-menu-list__texture,
    .c-icon-cards__texture {
        background-image: var(--texture-url, none);
        background-repeat: repeat;
        background-size: 100% auto;
        background-position: top left;
        opacity: 0.5;
    }
    .c-menu-list__texture img,
    .c-icon-cards__texture img { display: none; }
}

/* Text Block: engraving watermark behind the copy */
.c-text-block { position: relative; isolation: isolate; overflow: hidden; }
.c-text-block__watermark { position: absolute; inset: 0; z-index: 0; padding: 4% 10%; pointer-events: none; }
.c-text-block__watermark img { display: block; width: 100%; height: 100%; object-fit: contain; }
.c-text-block__inner { position: relative; z-index: 1; }
@media (max-width: 768px) { .c-text-block__watermark { padding: 4% 0; } }

/* Icon Cards keep their full top padding even after a section on the same field
   (the library collapses same-background neighbours; these sections read as their own band) */
[class*="--bg-white"] + .c-icon-cards,
[class*="--bg-light"] + .c-icon-cards,
[class*="--bg-dark"] + .c-icon-cards { padding-top: 150px; }
@media (max-width: 1024px) { [class*="--bg-white"] + .c-icon-cards, [class*="--bg-light"] + .c-icon-cards, [class*="--bg-dark"] + .c-icon-cards { padding-top: 110px; } }
@media (max-width: 768px) { [class*="--bg-white"] + .c-icon-cards, [class*="--bg-light"] + .c-icon-cards, [class*="--bg-dark"] + .c-icon-cards { padding-top: 72px; } }

/* ------------------------------------------------------------------
   Gravity Forms submit buttons: match .btn--primary (gold)
   The Orbital theme styles buttons from its own custom properties and
   high-specificity selectors, so we retune the variables on the wrapper
   and pin the button itself.
------------------------------------------------------------------ */
.gform_wrapper.gform-theme,
.gform_wrapper.gform-theme--orbital {
    --gf-ctrl-btn-bg-color-primary: var(--color-primary-400);
    --gf-ctrl-btn-bg-color-hover-primary: var(--color-primary-300);
    --gf-ctrl-btn-bg-color-focus-primary: var(--color-primary-300);
    --gf-ctrl-btn-bg-color-active-primary: var(--color-primary-300);
    --gf-ctrl-btn-color-primary: var(--color-primary-800);
    --gf-ctrl-btn-color-hover-primary: var(--color-primary-900);
    --gf-ctrl-btn-color-focus-primary: var(--color-primary-900);
    --gf-ctrl-btn-color-active-primary: var(--color-primary-900);
    --gf-ctrl-btn-border-color-primary: var(--color-primary-400);
    --gf-ctrl-btn-border-color-hover-primary: var(--color-primary-300);
    --gf-ctrl-btn-border-color-focus-primary: var(--color-primary-300);
    --gf-ctrl-btn-border-color-active-primary: var(--color-primary-300);
    --gf-ctrl-btn-radius: var(--radius);
    --gf-ctrl-btn-font-family: var(--font-sans);
    --gf-ctrl-btn-font-size: var(--text-label);
    --gf-ctrl-btn-font-weight: 700;
    --gf-ctrl-btn-letter-spacing: var(--tracking-label);
    --gf-ctrl-btn-line-height: var(--leading-label);
    --gf-ctrl-btn-text-transform: uppercase;
    --gf-ctrl-btn-padding-x: 26px;
    --gf-ctrl-btn-padding-y: 15px;
    --gf-ctrl-btn-height: auto;
    --gf-ctrl-btn-box-shadow-focus-primary: none;
}
.gform_wrapper.gform-theme .gform_footer .gform_button,
.gform_wrapper.gform-theme .gform-theme-button--primary,
.gform_wrapper.gform-theme input[type="submit"],
.gform_wrapper.gform-theme button[type="submit"] {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    height: auto !important;
    min-height: 0 !important;
    padding: 15px 26px !important;
    font-family: var(--font-sans) !important;
    font-size: var(--text-label) !important;
    font-weight: 700 !important;
    line-height: var(--leading-label) !important;
    letter-spacing: var(--tracking-label) !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
    background: var(--color-primary-400) !important;
    color: var(--color-primary-800) !important;
    border: 1px solid var(--color-primary-400) !important;
    border-radius: var(--radius) !important;
    box-shadow: none !important;
    cursor: pointer;
    transition: background-color var(--transition), color var(--transition), border-color var(--transition);
    -webkit-appearance: none;
    appearance: none;
}
.gform_wrapper.gform-theme .gform_footer .gform_button:hover,
.gform_wrapper.gform-theme .gform_footer .gform_button:focus-visible,
.gform_wrapper.gform-theme .gform-theme-button--primary:hover,
.gform_wrapper.gform-theme .gform-theme-button--primary:focus-visible,
.gform_wrapper.gform-theme input[type="submit"]:hover,
.gform_wrapper.gform-theme input[type="submit"]:focus-visible,
.gform_wrapper.gform-theme button[type="submit"]:hover,
.gform_wrapper.gform-theme button[type="submit"]:focus-visible {
    background: var(--color-primary-300) !important;
    border-color: var(--color-primary-300) !important;
    color: var(--color-primary-900) !important;
    outline-offset: 2px;
}

/* Brand hero buttons: match .c-consult-cta__actions spacing; phone icon on tel: buttons */
.c-brand-hero__buttons { gap: 44px; align-items: center; }
@media (max-width: 768px) { .c-brand-hero__buttons { gap: 22px; } }
.c-brand-hero__btn--phone { display: inline-flex; align-items: center; gap: 9px; }
.c-brand-hero__btn-icon { display: inline-flex; color: var(--color-primary-200); }
.c-brand-hero__btn-icon svg { width: 13px; height: 13px; display: block; }
.c-brand-hero__btn-icon svg [fill]:not([fill="none"]) { fill: currentColor; }
.c-brand-hero__link.c-brand-hero__btn--phone { color: var(--color-primary-200); border-color: var(--color-primary-200); }
.c-brand-hero__link.c-brand-hero__btn--phone:hover,
.c-brand-hero__link.c-brand-hero__btn--phone:focus-visible { color: #fff; border-color: #fff; }
.c-brand-hero__link.c-brand-hero__btn--phone:hover .c-brand-hero__btn-icon,
.c-brand-hero__link.c-brand-hero__btn--phone:focus-visible .c-brand-hero__btn-icon { color: #fff; }

/* Gravity Forms controls: one border colour for inputs, selects and textareas */
.gform_wrapper.gform-theme {
    --gf-ctrl-border-color: var(--color-secondary-100);
    --gf-ctrl-border-color-hover: var(--color-secondary-100);
    --gf-ctrl-border-color-focus: var(--color-primary-400);
    --gf-ctrl-shadow-focus: none;
}
.gform_wrapper.gform-theme .gform_body input:not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]),
.gform_wrapper.gform-theme .gform_body select,
.gform_wrapper.gform-theme .gform_body textarea {
    border: 1px solid var(--color-secondary-100) !important;
    box-shadow: none !important;
}
.gform_wrapper.gform-theme .gform_body input:not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]):focus,
.gform_wrapper.gform-theme .gform_body select:focus,
.gform_wrapper.gform-theme .gform_body textarea:focus {
    border-color: var(--color-primary-400) !important;
    outline: none;
}

/* Form section: phone / email contact links with icons */
.c-form-section__content .prose a.c-form-section__contact-link { display: inline-flex; align-items: center; gap: 10px; }
.c-form-section__content .prose a.c-form-section__contact-link .ff-icon { display: inline-flex; color: var(--color-primary-400); }
.c-form-section__content .prose a.c-form-section__contact-link .ff-icon svg { width: 18px; height: 18px; display: block; }
.c-form-section__content .prose a.c-form-section__contact-link .ff-icon svg [fill]:not([fill="none"]) { fill: currentColor; }
.c-form-section__content .prose a.c-form-section__contact-link:hover .ff-icon { color: var(--color-primary-500); }

/* Locations hub: map sits flush under the hero; pins pulse at rest */
.c-brand-hero--no-media:has(+ .c-metro-map) { border-bottom: 0; }
.c-metro-map { padding-top: 0; }
.c-metro-map__halo { opacity: 0.25; transform-box: fill-box; transform-origin: center; animation: metro-pulse 2.6s ease-out infinite; }
.c-metro-map__pin:nth-child(3n) .c-metro-map__halo { animation-delay: -0.9s; }
.c-metro-map__pin:nth-child(3n+1) .c-metro-map__halo { animation-delay: -1.8s; }
.c-metro-map__pin:hover .c-metro-map__halo,
.c-metro-map__pin:focus-visible .c-metro-map__halo { animation: none; transform: scale(1); opacity: 0.25; }
@keyframes metro-pulse {
    0%   { transform: scale(0.35); opacity: 0.45; }
    70%  { transform: scale(1.15); opacity: 0; }
    100% { transform: scale(1.15); opacity: 0; }
}
@media (prefers-reduced-motion: reduce) { .c-metro-map__halo { animation: none; opacity: 0; } }

/* Text block: default / wide widths let the copy breathe (narrow keeps the 640px measure) */
.c-text-block__inner:not(.container--narrow) .c-text-block__headline { max-width: 900px; }
.c-text-block__inner:not(.container--narrow) .prose { max-width: 820px; }

/* Dark text block: body copy in white (wins over the generic .c-text-block .prose p colour) */
.c-text-block.c-text-block--bg-dark .prose,
.c-text-block.c-text-block--bg-dark .prose p,
.c-text-block.c-text-block--bg-dark .prose li { color: #fff; }
.c-metro-map { display: flow-root; }
.c-metro-map__header:not(:has(:not(.sr-only))) { margin-bottom: 0; }

/* ----------------------- MENU CARD v2 (Figma 12043-1295): white field, stacked cards ----------------------- */
.c-menu, .c-menu--bg-dark, .c-menu--bg-light { background: #fff; color: var(--color-primary-900); }
.c-menu__art { display: none; }
.c-menu__headline, .c-menu--bg-light .c-menu__headline { color: var(--color-primary-900); }
.c-menu__intro, .c-menu--bg-light .c-menu__intro { color: var(--color-primary-700); }
.c-menu .container--narrow { max-width: 1100px; }

.c-menu__stack {
    position: relative;
    padding: 0 0 56px 150px;
}

.c-menu__back {
    position: absolute;
    left: 0;
    top: 56px;
    width: calc(100% - 150px);
    height: calc(100% - 56px);
    border-radius: 40px;
    background: var(--color-neutral-900);
    overflow: hidden;
    z-index: 0;
}
.c-menu__back::before,
.c-menu__back::after {
    content: "";
    position: absolute;
    pointer-events: none;
    border-radius: 30px;
}
.c-menu__back::before { inset: 14px; border: 3px solid var(--color-primary-400); }
.c-menu__back::after  { inset: 26px; border: 1px solid var(--color-primary-400); border-radius: 22px; }
.c-menu__back-art {
    position: absolute;
    left: 44px;
    top: 44px;
    height: calc(100% - 88px);
    width: auto;
    max-width: none;
    object-fit: contain;
    object-position: left center;
    opacity: 0.95;
}
.c-menu__card,
.c-menu--bg-light .c-menu__card,
.c-menu--bg-dark .c-menu__card {
    position: relative;
    z-index: 1;
    max-width: none;
    margin: 0;
    padding: 80px 96px 88px;
    border: 0;
    border-radius: 40px;
    box-shadow: 0 30px 60px -30px rgba(22, 22, 22, 0.35);
    background: var(--color-primary-100) var(--menu-card-texture, none) center / cover;
    background-blend-mode: multiply;
}
.c-menu__card::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: var(--color-primary-100);
    opacity: 0.55;
    pointer-events: none;
}
.c-menu__courses { position: relative; text-align: left; }
.c-menu__course { padding: 26px 0; }
.c-menu__course + .c-menu__course,
.c-menu--bg-light .c-menu__course + .c-menu__course { border-top: 1px solid var(--color-primary-300); }
.c-menu__label, .c-menu--bg-light .c-menu__label { color: var(--color-primary-500); margin-bottom: 10px; }
.c-menu__dish, .c-menu--bg-light .c-menu__dish { font-size: 28px; line-height: 1.25; color: var(--color-primary-800); }
.c-menu__desc, .c-menu--bg-light .c-menu__desc { max-width: none; margin: 8px 0 0; font-size: 18px; color: var(--color-primary-700); }
@media (max-width: 1024px) {
    .c-menu__stack { padding: 0 0 40px 90px; }
    .c-menu__back { width: calc(100% - 90px); top: 40px; height: calc(100% - 40px); }
    .c-menu__card, .c-menu--bg-light .c-menu__card, .c-menu--bg-dark .c-menu__card { padding: 56px 48px 64px; }
}
@media (max-width: 768px) {
    .c-menu__stack { padding: 0; }
    .c-menu__back { display: none; }
    .c-menu__card, .c-menu--bg-light .c-menu__card, .c-menu--bg-dark .c-menu__card { padding: 36px 24px 40px; border-radius: 24px; box-shadow: none; }
    .c-menu__dish { font-size: 24px; }
    .c-menu__desc { font-size: 15px; line-height: 24px; }
}
.c-menu__header:not(:has(:not(.sr-only))) { margin-bottom: 0; }

.c-menu + .c-gallery { padding-top: 150px; }
@media (max-width: 1024px) { .c-menu + .c-gallery { padding-top: 110px; } }
@media (max-width: 768px) { .c-menu + .c-gallery { padding-top: 72px; } }

/* Icon-card links: hover moves the arrow, never the layout (no gap change, no re-wrap) */
.c-icon-card__link,
.c-icon-card__link:hover { gap: 8px; transition: color var(--transition); }
.c-icon-card__link svg { flex: 0 0 auto; transition: transform var(--transition); }
.c-icon-card__link:hover svg,
.c-icon-card__link:focus-visible svg { transform: translateX(4px); }

/* Imagify wraps the engraving in <picture>; let the img fill the positioned wrapper */
.c-menu__back picture.c-menu__back-art img { position: static; display: block; height: 100%; width: auto; max-width: none; }

/* ----------------------- CONSULTATION MODAL ----------------------- */
.c-consult-modal {
    width: min(720px, calc(100vw - 32px));
    max-height: calc(100vh - 32px);
    margin: auto;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--color-primary-900);
    overflow: visible;
}
.c-consult-modal::backdrop { background: rgba(22, 22, 22, 0.78); backdrop-filter: blur(2px); }
.c-consult-modal__panel {
    position: relative;
    max-height: calc(100vh - 32px);
    overflow: auto;
    padding: 56px 56px 48px;
    background: var(--color-primary-50);
    border-top: 3px solid var(--color-primary-400);
}
.c-consult-modal__close {
    position: absolute;
    top: 16px;
    right: 16px;
    width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--color-primary-800);
    cursor: pointer;
}
.c-consult-modal__close svg { width: 22px; height: 22px; }
.c-consult-modal__close:hover { color: var(--color-primary-500); }
.c-consult-modal__title { margin: 0 0 8px; font-size: 40px; line-height: 1.15; }
.c-consult-modal__intro { margin: 0 0 24px; font-size: 18px; line-height: 1.5; color: var(--color-primary-700); }
.c-consult-modal__form { margin-top: 24px; }
.c-consult-modal .gform_wrapper .gform_fields { gap: 20px !important; }

/* Modal form grid: prefill selects three-up on the first row, other fields two-up, textarea full */
.c-consult-modal .gform_wrapper .gform_fields {
    display: grid !important;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 24px 20px !important;
}
.c-consult-modal .gform_wrapper .gfield { min-width: 0; grid-column: span 12; }
.c-consult-modal .gform_wrapper .gfield.ff-span-6 { grid-column: span 6; }
.c-consult-modal .gform_wrapper .gfield.ff-span-4 { grid-column: span 4; }
.c-consult-modal .gform_wrapper .gfield.ff-span-12 { grid-column: span 12; }
.c-consult-modal .gform_wrapper .gfield.ff-prefill { margin-bottom: 8px; }
/* Date field: GF caps the datepicker input at a fixed width; stretch it like the other fields */
.c-consult-modal .gform_wrapper .gfield--type-date,
.c-consult-modal .gform_wrapper .gfield--input-type-date,
.c-consult-modal .gform_wrapper .gfield .ginput_container_date,
.c-consult-modal .gform_wrapper .gfield .ginput_container_date > *,
.c-consult-modal .gform_wrapper .gfield .ginput_container_date .gform-grid-row,
.c-consult-modal .gform_wrapper .gfield .ginput_container_date .gform-grid-col,
.c-consult-modal .gform_wrapper .gfield .ginput_container_date input,
.c-consult-modal .gform_wrapper .gfield input[type="date"] {
    display: block;
    box-sizing: border-box;
    width: 100% !important;
    max-width: none !important;
    inline-size: 100% !important;
    max-inline-size: none !important;
    flex: 1 1 100% !important;
    margin-right: 0 !important;
    padding-right: 0 !important;
    padding-inline-end: 0 !important;
}
.c-consult-modal .gform_wrapper .gfield input[type="date"] { padding: 0 1rem !important; }

/* Prefill selects: service-bar styling (underline + chevron) on the light panel */
.c-consult-modal .gfield.ff-prefill .ginput_container_select {
    position: relative;
    display: block;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 0;
    border-bottom: 1px solid var(--color-primary-800);
}
.c-consult-modal .gform_wrapper .gfield.ff-prefill .ginput_container_select::before,
.c-consult-modal .gform_wrapper .gfield.ff-prefill .ginput_container_select::after { display: none !important; content: none !important; }
.c-consult-modal .gform_wrapper .gfield.ff-prefill select {
    display: block;
    width: 100%;
    height: 43px !important;
    min-height: 0 !important;
    max-height: none !important;
    block-size: 43px !important;
    min-block-size: 0 !important;
    margin: 0 !important;
    padding: 0 28px 0 2px !important;
    padding-block: 0 !important;
    line-height: 43px !important;
    vertical-align: middle;
    font-family: var(--font-sans);
    font-size: 15px !important;
    font-weight: 400;
    color: var(--color-primary-900);
    background: transparent url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='8' viewBox='0 0 14 8'><path d='M1 1l6 6 6-6' fill='none' stroke='%233c2e10' stroke-width='1.5'/></svg>") no-repeat right 1px center !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    -webkit-appearance: none;
    appearance: none;
    cursor: pointer;
}
.c-consult-modal .gfield.ff-prefill select:focus-visible { outline-offset: 4px; }
.c-consult-modal .gfield.ff-prefill select option { color: var(--color-primary-900); background: #fff; }
body.consult-open { overflow: hidden; }
@media (max-width: 768px) {
    .c-consult-modal { width: calc(100vw - 16px); max-height: calc(100vh - 16px); }
    .c-consult-modal__panel { padding: 48px 20px 32px; max-height: calc(100vh - 16px); }
    .c-consult-modal__title { font-size: 28px; }
    .c-consult-modal .gform_wrapper .gform_fields { gap: 18px !important; }
    .c-consult-modal .gform_wrapper .gfield.ff-span-6,
    .c-consult-modal .gform_wrapper .gfield.ff-span-4 { grid-column: span 12; }
}

/* Hero eyebrow as breadcrumb trail */
.c-brand-hero__crumbs a { color: inherit; text-decoration: none; }
.c-brand-hero__crumbs a:hover { color: var(--color-primary-300); }
.c-brand-hero__crumbs .separator { margin: 0 6px; opacity: 0.7; }
.c-brand-hero__crumbs .last { color: inherit; }

/* ----------------------- SEP 28 REVIEW: global notes ----------------------- */
/* FAQ spans the same content container as other components */
.c-accordion__inner.container--narrow { max-width: var(--container-max); }

/* Split-fader numbered steps: a little more air under each title, gold rule between items */
.c-split-fader__text ol li strong { margin-bottom: 6px; }
.c-split-fader__text ol li + li { padding-top: 20px; border-top: 1px solid var(--color-primary-400); }
/* The step number is absolutely positioned from the li's top edge, so it has to drop by the same
   20px padding the rule above adds; match its line-height to the heading's so baselines line up. */
.c-split-fader__text ol li::before { line-height: 1.3; font-variant-numeric: lining-nums; }
.c-split-fader__text ol li + li::before { top: calc(20px + 0.05em); }
.c-split-fader--bg-dark .c-split-fader__text ol li + li { border-top-color: var(--color-primary-500); }

/* Consultation CTA: light rule on top; on phones the artwork flanks the text on both sides */
.c-consult-cta { border-top: 1px solid var(--color-secondary-100); }
.c-consult-cta__art--mirror { display: none; }
/* --art-size: artwork width relative to the section; --art-inset: how far from the
   outer edge the artwork's inner edge sits (the visible strip is 100% - inset).
   Bigger size = taller florals; bigger inset = less overlap with the copy. */
@media (max-width: 768px) {
    .c-consult-cta { --art-size: 125%; --art-inset: 74%; padding: 146px 0; }
    .c-consult-cta--has-mobile-art .c-consult-cta__art,
    .c-consult-cta__art {
        display: block;
        top: 50%;
        left: var(--art-inset);
        width: var(--art-size);
        height: auto;
        aspect-ratio: 2974 / 4096;
        margin-top: 0;
        transform: translateY(-50%);
        opacity: 0.85;
    }
    .c-consult-cta__art img { transform: none; object-fit: fill; }
    .c-consult-cta--has-mobile-art .c-consult-cta__art--mirror,
    .c-consult-cta__art--mirror {
        display: block;
        left: auto;
        right: var(--art-inset);
        transform: translateY(-50%) scale(-1, -1);
    }
    .c-consult-cta--has-mobile-art .c-consult-cta__art--mobile,
    .c-consult-cta__art--mobile { display: none; }
}
/* Narrower phones: the section grows taller as copy wraps, so scale the art up to keep
   the florals running the full height, and tuck them a touch further out of the text. */
@media (max-width: 600px) { .c-consult-cta { --art-size: 140%; --art-inset: 76%; } }
@media (max-width: 480px) { .c-consult-cta { --art-size: 160%; --art-inset: 78%; padding: 130px 0; } }
@media (max-width: 400px) { .c-consult-cta { --art-size: 175%; --art-inset: 80%; } }

/* Mobile drawer: sub items in neutral-900, no sideways scroll, a touch more rhythm */
@media (max-width: 1140px) {
    .site-nav { overflow-x: hidden; }
    .site-nav__menu > li { max-width: 100%; }
    .submenu-toggle { margin-right: 0; flex: 0 0 56px; }
    .site-nav__menu .sub-menu a { color: var(--color-neutral-900); padding: 12px 0; }
    .site-nav__menu .sub-menu li.current-menu-item > a,
    .site-nav__menu .sub-menu a:hover { color: var(--color-primary-500); }
    .site-nav__menu > .menu-item-has-children.is-open > .sub-menu { padding-bottom: 20px; }
    .site-nav__actions { padding-top: 32px; }
}

/* Steps on phones: wolf sits behind the text, bottom right, instead of reserving space below */
@media (max-width: 768px) {
    .c-steps { padding: 72px 0; }
    .c-steps__art { top: auto; bottom: 0; right: 0; width: 62%; height: 60%; }
    .c-steps__art img { object-position: right bottom; }
}

/* Lucide icons on icon cards: thin gold line icons */
.c-icon-card__icon .c-icon-card__lucide { width: 100%; height: 100%; stroke-width: 1.25; }
.c-icon-cards--bg-dark .c-icon-card__icon { color: var(--color-primary-400); }
/* Hero headline: a little wider so four-word titles don't orphan the last word */
.c-brand-hero--large.c-brand-hero--no-wordmark .c-brand-hero__headline,
.c-brand-hero--medium.c-brand-hero--no-wordmark .c-brand-hero__headline { max-width: 1060px; }

/* Split-fader "printed card" image: a menu card standing in a table stand, seen from a guest's seat
   (How It Works, Weddings, Social Events). About 25% smaller than the column, leans back from its
   base, turns three-quarters toward the copy; the stand carries the contact shadow and a soft cast
   shadow lies flat on the table behind it. Tune with the custom properties on the media. */
.c-split-fader--card .c-split-fader__media {
    width: 75%;
    justify-self: center;
    overflow: visible;
    padding: 24px;
    perspective: 1400px;
    perspective-origin: 50% 30%;
    --card-lean: 12deg;
    --card-turn: 22deg;
    --card-shadow-skew: 20deg;
    --card-stand-top: #5c5248;
    --card-stand-front: #0c0a08;
}
.c-split-fader--card.c-split-fader--media-right .c-split-fader__media {
    --card-turn: -22deg;
    --card-shadow-skew: -20deg;
}
.c-split-fader--card .c-split-fader__slide {
    z-index: 1;
    transform-origin: 50% 100%;
    transform: rotateY(var(--card-turn)) rotateX(var(--card-lean));
    box-shadow: 0 2px 0 0 #b3a68a, 0 18px 26px -18px rgba(20, 16, 8, 0.4);
    background-color: var(--color-primary-100); /* a blank card, not a ghost, while the image loads */
    overflow: hidden;
}
/* Light from above: the top catches a little more, the base a little less */
.c-split-fader--card .c-split-fader__slide::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(to bottom, rgba(255, 255, 255, 0.28), rgba(255, 255, 255, 0) 45%, rgba(40, 30, 10, 0.12));
    mix-blend-mode: soft-light;
    pointer-events: none;
}
.c-split-fader--card .c-split-fader__slide::after {
    content: "";
    position: absolute;
    inset: 0;
    background: var(--menu-card-texture, none) center / cover;
    mix-blend-mode: multiply;
    opacity: 0.35;
    pointer-events: none;
}
/* The stand: lit top face over a dark front face, in front of the card's base */
.c-split-fader--card .c-split-fader__media::before {
    content: "";
    position: absolute;
    left: -5%;
    right: -5%;
    bottom: -17px;
    height: 26px;
    z-index: 2;
    transform-origin: 50% 9px;
    transform: rotateY(var(--card-turn));
    border-radius: 2px;
    background: linear-gradient(to bottom, var(--card-stand-top) 0, #3a332b 8px, #17140f 9px, var(--card-stand-front) 100%);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.18), 0 6px 8px -2px rgba(20, 16, 8, 0.55), 0 18px 24px -6px rgba(20, 16, 8, 0.45), 0 30px 46px -12px rgba(20, 16, 8, 0.25);
    pointer-events: none;
}
/* Cast shadow lying flat on the table behind the card */
.c-split-fader--card .c-split-fader__media::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    transform-origin: 50% 100%;
    transform: rotateY(var(--card-turn)) rotateX(84deg) skewX(var(--card-shadow-skew));
    background: linear-gradient(to top, rgba(20, 16, 8, 0.5), rgba(20, 16, 8, 0.14) 35%, rgba(20, 16, 8, 0) 70%);
    filter: blur(9px);
    pointer-events: none;
}
/* Phones: gentler angle, slimmer stand, room under the card for the stand and its shadow
   (the section clips its overflow); with fit-natural the slide sits in flow inside the padding */
@media (max-width: 768px) {
    .c-split-fader--card .c-split-fader__media {
        width: 85%;
        padding: 12px 12px 44px;
        --card-lean: 8deg;
        --card-turn: 12deg;
        --card-shadow-skew: 8deg;
    }
    .c-split-fader--card.c-split-fader--media-right .c-split-fader__media {
        --card-turn: -12deg;
        --card-shadow-skew: -8deg;
    }
    .c-split-fader--card.c-split-fader--fit-natural .c-split-fader__media::before { bottom: 31px; height: 20px; transform-origin: 50% 7px; }
    .c-split-fader--card.c-split-fader--fit-natural .c-split-fader__media::after { inset: 12px 12px 44px; }
}
/* Phones: breathing room between the headline and the copy */
@media (max-width: 768px) {
    .c-split-fader__text { margin-top: 18px; }
}

/* Menus hub grid: image cards, no hairlines fighting the underlined link */
.c-menu-list--grid .c-menu-list__item--card,
.c-menu-list--grid .c-menu-list__item--card:nth-child(-n+3) { position: relative; padding: 0 0 8px; margin-right: 0; border-top: 0; gap: 12px; }
.c-menu-list--grid .c-menu-list__list:has(.c-menu-list__item--card) { gap: 56px 40px; }
.c-menu-list__figure { display: block; width: 100%; aspect-ratio: 4 / 3; overflow: hidden; background: var(--color-primary-100); margin-bottom: 8px; }
.c-menu-list__figure img { width: 100%; height: 100%; object-fit: cover; transition: transform 600ms ease; }
.c-menu-list__item--card:hover .c-menu-list__figure img { transform: scale(1.03); }
.c-menu-list__item--card .c-menu-list__title a::after { content: ""; position: absolute; inset: 0; }
.c-menu-list__item--card .c-menu-list__link { position: relative; z-index: 1; }
@media (max-width: 768px) {
    .c-menu-list--grid .c-menu-list__item--card,
    .c-menu-list--grid .c-menu-list__item--card:nth-child(-n+3) { padding: 0 0 8px; border-top: 0; }
}

/* ----------------------- CTA BAND ----------------------- */
.c-cta-band { padding: 56px 0; background: var(--color-neutral-900); color: #fff; }
.c-cta-band--bg-light { background: var(--color-primary-50); color: var(--color-primary-900); }
.c-cta-band--bg-white { background: #fff; color: var(--color-primary-900); }
.c-cta-band__inner { display: flex; align-items: center; justify-content: space-between; gap: 32px; flex-wrap: wrap; }
.c-cta-band__headline { margin: 0; font-size: var(--text-3xl); line-height: 1.2; letter-spacing: 0; color: inherit; }
@media (max-width: 768px) {
    .c-cta-band { padding: 40px 0; }
    .c-cta-band__inner { flex-direction: column; align-items: flex-start; gap: 20px; }
    .c-cta-band__headline { font-size: 26px; }
}

/* Icon cards: whole card clickable, description doubles as the link (More Sample Menus) */
.c-icon-card--whole { position: relative; }
.c-icon-card__desc-link { display: inline; text-decoration: none; color: inherit; font: inherit; transition: color var(--transition); }
.c-icon-card__desc-link svg { display: inline-block; width: 14px; height: 14px; margin-left: 6px; vertical-align: -1px; transition: transform var(--transition); }
.c-icon-card__desc-text { white-space: normal; }
.c-icon-card__desc-tail { white-space: nowrap; }
.c-icon-card__desc-link::after { content: ""; position: absolute; inset: 0; }
.c-icon-card--whole:hover .c-icon-card__desc-link { color: var(--color-primary-400); }
.c-icon-card--whole:hover .c-icon-card__desc-link svg { transform: translateX(4px); }
.c-icon-cards--bg-dark .c-icon-card--whole:hover .c-icon-card__title { color: var(--color-primary-200); }

/* Centered hero (Locations hub: text centred above the map) */
.c-brand-hero--center .c-brand-hero__inner { text-align: center; }
.c-brand-hero--center .c-brand-hero__headline,
.c-brand-hero--center .c-brand-hero__subhead,
.c-brand-hero--center .c-brand-hero__crumbs { margin-left: auto; margin-right: auto; }
.c-brand-hero--center .c-brand-hero__buttons { justify-content: center; }
.c-brand-hero--center .c-brand-hero__crumbs { display: flex; justify-content: center; }

/* ----------------------- HERO WITH INLINE FORM (metro pages) ----------------------- */
.c-brand-hero--has-form .c-brand-hero__inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 520px;
    gap: 64px;
    align-items: center;
}
.c-brand-hero--has-form .c-brand-hero__headline { max-width: none; }
.c-brand-hero__form {
    padding: 36px 36px 32px;
    background: var(--color-primary-50);
    color: var(--color-primary-900);
    border-top: 3px solid var(--color-primary-400);
}
.c-brand-hero__form-title { margin: 0 0 20px; font-family: var(--font-heading); font-size: 28px; line-height: 1.2; color: var(--color-primary-900); }
.c-brand-hero__form .gform_wrapper .gform_fields { gap: 16px 16px !important; }
.c-brand-hero__form .gform_wrapper .gfield--width-half { grid-column: span 6; }
.c-brand-hero__form .gform_wrapper .gform_footer { margin-top: 20px; padding: 0; }
.c-brand-hero__form .gform_wrapper .gform_button { width: 100%; }
.c-brand-hero__form .gform_body input:not([type="submit"]) { min-height: 48px !important; padding: 0.9rem 1rem !important; font-size: 16px !important; }
.c-brand-hero__form .gform_wrapper .gfield_label { font-size: 11px; }
@media (max-width: 1024px) {
    .c-brand-hero--has-form .c-brand-hero__inner { grid-template-columns: 1fr; gap: 40px; }
}
@media (max-width: 768px) {
    .c-brand-hero__form { padding: 24px 20px; }
    .c-brand-hero__form .gform_wrapper .gfield--width-half { grid-column: span 12; }
}

/* Split-fader watermark framing (engravings at 10%, as on the homepage occasions section) */
.c-split-fader { position: relative; isolation: isolate; overflow: hidden; }
.c-split-fader__inner { position: relative; z-index: 1; }
.c-split-fader__deco { position: absolute; overflow: hidden; pointer-events: none; opacity: 0.1; z-index: 0; }
.c-split-fader__deco img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; max-width: none; }
.c-split-fader__deco--top { top: -6%; right: -4%; width: 34%; height: 70%; }
.c-split-fader__deco--top img { object-position: right top; }
.c-split-fader__deco--bottom { left: -6%; bottom: -8%; width: 26%; height: 60%; }
.c-split-fader__deco--bottom img { object-position: left bottom; }
.c-split-fader--bg-dark .c-split-fader__deco { opacity: 0.12; }
@media (max-width: 768px) {
    .c-split-fader__deco--top { width: 55%; height: 40%; top: -4%; right: -10%; }
    .c-split-fader__deco--bottom { width: 45%; height: 30%; }
}

/* Compact hero (Contact): regular large headline size */
.c-brand-hero--compact.c-brand-hero--no-wordmark .c-brand-hero__headline { max-width: 1060px; font-size: var(--text-4xl); letter-spacing: var(--tracking-h2); }
@media (max-width: 768px) { .c-brand-hero--compact.c-brand-hero--no-wordmark .c-brand-hero__headline { font-size: 30px; } }

/* ----------------------- OCT 5 REVIEW: sticky planning card ----------------------- */
.c-plan-widget { position: fixed; right: 24px; bottom: 24px; z-index: 900; font-family: var(--font-sans); }
.c-plan-widget[hidden] { display: none; }
.c-plan-widget__card {
    position: relative;
    width: 340px;
    padding: 28px 28px 26px 28px;
    overflow: hidden;
    color: var(--color-primary-100);
    background: var(--color-neutral-900);
    border: 1px solid var(--color-primary-500);
    box-shadow: 0 18px 48px rgba(0, 0, 0, 0.35);
    transform-origin: bottom right;
    transition: opacity 0.3s ease, transform 0.3s ease;
}
.c-plan-widget__card::after { content: ""; position: absolute; inset: 6px; border: 1px solid rgba(198, 168, 106, 0.28); pointer-events: none; }
.c-plan-widget__art { position: absolute; right: -36px; bottom: -28px; width: 170px; height: auto; opacity: 0.32; pointer-events: none; }
.c-plan-widget__body { position: relative; z-index: 1; }
.c-plan-widget__title { margin: 0 32px 10px 0; font-family: var(--font-heading); font-size: 24px; font-weight: 700; line-height: 1.2; color: var(--color-primary-400); }
.c-plan-widget__text { margin: 0 0 20px; font-size: 16px; line-height: 1.5; color: var(--color-primary-100); max-width: 250px; }
.c-plan-widget__cta { padding: 14px 22px; }
.c-plan-widget__close {
    position: absolute; top: 12px; right: 12px; z-index: 2;
    display: grid; place-items: center; width: 32px; height: 32px; padding: 0;
    color: var(--color-primary-300); background: none; border: 0; cursor: pointer;
}
.c-plan-widget__close svg { width: 18px; height: 18px; }
.c-plan-widget__close:hover, .c-plan-widget__close:focus-visible { color: #fff; }
.c-plan-widget__pill {
    display: none; align-items: center; gap: 10px;
    min-height: 48px; padding: 8px 20px;
    font-family: var(--font-sans); font-size: var(--text-label); font-weight: 800; letter-spacing: 0.2em; text-transform: uppercase;
    color: var(--color-primary-400); background: var(--color-neutral-900);
    border: 1px solid var(--color-primary-500); border-radius: 999px; cursor: pointer;
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.3);
    transition: background 0.2s ease, color 0.2s ease;
}
.c-plan-widget__pill:hover, .c-plan-widget__pill:focus-visible { color: var(--color-neutral-900); background: var(--color-primary-400); }
.c-plan-widget__pill-art { width: 32px; height: 32px; object-fit: contain; border-radius: 50%; background: rgba(198, 168, 106, 0.12); display:none;}
.c-plan-widget.is-collapsed .c-plan-widget__card { display: none; }
.c-plan-widget.is-collapsed .c-plan-widget__pill { display: inline-flex; }
.c-plan-widget.is-entering .c-plan-widget__card { opacity: 0; transform: translateY(16px) scale(0.98); }
body.consult-open .c-plan-widget { display: none; }
@media (max-width: 768px) {
    .c-plan-widget { right: 12px; bottom: 12px; left: auto; }
    .c-plan-widget.is-collapsed {
        bottom:90px;
    }
    .c-plan-widget__card { width: calc(100vw - 24px); max-width: 360px; padding: 22px 22px 20px; }
    .c-plan-widget__title { font-size: 20px; }
    .c-plan-widget__text { font-size: 15px; }
    .c-plan-widget__art { width: 130px; }
}
@media (prefers-reduced-motion: reduce) { .c-plan-widget__card { transition: none; } }
@media print { .c-plan-widget { display: none !important; } }

/* ----------------------- OCT 5 REVIEW: consultation form layout everywhere ----------------------- */
/* Contact (and any .ff-consult-layout form): the modal's 12-column grid, prefill selects and widths */
.c-form-section form.ff-consult-layout .gform_fields {
    display: grid !important;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 24px 20px !important;
}
.c-form-section form.ff-consult-layout .gfield { min-width: 0; grid-column: span 12; }
.c-form-section form.ff-consult-layout .gfield.ff-span-6 { grid-column: span 6; }
.c-form-section form.ff-consult-layout .gfield.ff-span-4 { grid-column: span 4; }
.c-form-section form.ff-consult-layout .gfield.ff-span-12 { grid-column: span 12; }
.c-form-section form.ff-consult-layout .gfield.ff-prefill { margin-bottom: 8px; }
.c-form-section .gfield.ff-prefill .ginput_container_select {
    position: relative; display: block; margin: 0 !important; padding: 0 !important; line-height: 0;
    border-bottom: 1px solid var(--color-primary-800);
}
.c-form-section .gform_wrapper .gfield.ff-prefill .ginput_container_select::before,
.c-form-section .gform_wrapper .gfield.ff-prefill .ginput_container_select::after { display: none !important; content: none !important; }
.c-form-section .gform_wrapper .gfield.ff-prefill select {
    display: block; width: 100%;
    height: 43px !important; min-height: 0 !important; block-size: 43px !important; min-block-size: 0 !important;
    margin: 0 !important; padding: 0 28px 0 2px !important; line-height: 43px !important;
    font-family: var(--font-sans); font-size: 15px !important; font-weight: 400; color: var(--color-primary-900);
    background: transparent url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='8' viewBox='0 0 14 8'><path d='M1 1l6 6 6-6' fill='none' stroke='%233c2e10' stroke-width='1.5'/></svg>") no-repeat right 1px center !important;
    border: 0 !important; border-radius: 0 !important; box-shadow: none !important;
    -webkit-appearance: none; appearance: none; cursor: pointer;
}
/* Regular selects (State, chef category) match the text inputs */
.c-consult-modal .gform_wrapper .gfield:not(.ff-prefill) select,
.c-form-section .gform_wrapper .gfield:not(.ff-prefill) select {
    box-sizing: border-box; width: 100%; min-height: 0 !important; height: 50px !important; block-size: 50px !important;
    padding: 0 2.5rem 0 1rem !important; line-height: 48px !important;
    font-family: var(--font-sans); font-size: 18px !important; color: var(--color-primary-900);
    background: #fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='8' viewBox='0 0 14 8'><path d='M1 1l6 6 6-6' fill='none' stroke='%233c2e10' stroke-width='1.5'/></svg>") no-repeat right 16px center !important;
    border: 1px solid var(--color-secondary-100) !important; border-radius: 0 !important; box-shadow: none !important;
    -webkit-appearance: none; appearance: none;
}
/* Native date inputs: full width, same box as the other inputs */
.gform_wrapper .ginput_container_date input.ff-native-date {
    display: block; box-sizing: border-box; width: 100% !important; max-width: none !important;
    height: 50px; padding: 0 1rem !important; font-family: var(--font-sans); font-size: 18px !important;
    color: var(--color-primary-900); background: #fff; border: 1px solid var(--color-secondary-100); border-radius: 0;
}
.c-form-section .gform_wrapper .gfield--type-date .ginput_container_date,
.c-brand-hero .gform_wrapper .gfield--type-date .ginput_container_date { width: 100% !important; max-width: none !important; }
.gform_wrapper input.ff-native-date::-webkit-calendar-picker-indicator { opacity: 0.7; cursor: pointer; }

/* Contact / Join Us form box: the modal panel's colours (cream panel, champagne top rule) */
.c-form-section__form,
.c-form-section--bg-white .c-form-section__form {
    background: var(--color-primary-50);
    border: 0;
    border-top: 3px solid var(--color-primary-400);
}
.c-form-section--bg-light .c-form-section__form { background: #fff; }
@media (max-width: 768px) {
    .c-form-section form.ff-consult-layout .gfield.ff-span-6,
    .c-form-section form.ff-consult-layout .gfield.ff-span-4 { grid-column: span 12; }
}

/* Icon cards + embedded gallery: the gap above the gallery equals the gap between the cards (Oct 5 review) */
.c-icon-cards .c-gallery--embedded { padding-top: 40px; }
@media (max-width: 768px) { .c-icon-cards .c-gallery--embedded { padding-top: 20px; } }

/* Service bar with two selects (Location removed Oct 5): the selects share the freed width */
@media (min-width: 1025px) {
    .c-service-bar--fields-2 .c-service-bar__form { grid-template-columns: 202.8px minmax(0, 1fr) minmax(0, 1fr) 175.45px; }
}

/* Menu (courses): optional illustrations, as on the Occasions carousel (Oct 6) */
.c-menu__deco { position: absolute; z-index: 0; pointer-events: none; opacity: 0.1; }
.c-menu__deco img { display: block; width: 100%; height: 100%; object-fit: contain; }
.c-menu__deco--top { top: 40px; right: 0; width: 440px; height: 560px; }
.c-menu__deco--top img { object-position: right top; }
.c-menu__deco--bottom { bottom: 40px; left: 0; width: 360px; height: 480px; }
.c-menu__deco--bottom img { object-position: left bottom; }
.c-menu > .container { position: relative; z-index: 1; }
@media (max-width: 1024px) {
    .c-menu__deco--top { width: 300px; height: 380px; }
    .c-menu__deco--bottom { width: 240px; height: 320px; }
}
@media (max-width: 768px) {
    .c-menu__deco--top { top: 16px; width: 180px; height: 230px; }
    .c-menu__deco--bottom { bottom: 16px; width: 150px; height: 200px; }
}
/* Menu (courses): desktop top-right illustration at 800px tall, width follows the artwork (Oct 6) */
@media (min-width: 1025px) {
    .c-menu__deco--top { width: auto; height: 800px; }
    .c-menu__deco--top img { width: auto; height: 100%; max-width: none; }
}
