/* =================================================================
   BREAKPOINTS REFERENCE
   =================================================================
   Mobile:   768px   (max-width: 768px for mobile, min-width: 769px for desktop)
   Tablet:   1024px  (for intermediate layouts where needed)
   Desktop:  1280px  (for wide/container layouts where needed)

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

/**
 * D20 Starter Theme
 *
* Fonts | Tokens | Base | Components
 */

/* =================================================================
   FONTS
   ================================================================= */

@font-face {
    font-family: 'Roboto';
    src: url('../fonts/roboto.woff2') format('woff2');
    font-weight: 400 700;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Montserrat';
    src: url('../fonts/montserrat-variable.woff2') format('woff2');
    font-weight: 100 900;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Shadows Into Light';
    src: url('../fonts/shadows-into-light.woff2') format('woff2');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

/*
 * 'coffee-service' (script headings) is an Adobe Font. Local dev renders it
 * from the installed Creative Cloud font; production needs an Adobe Fonts
 * web project embed (see inc/assets.php).
 */


/* =================================================================
   TOKENS
   ================================================================= */

:root {
    /* Primary color scale - deep taproom teal */
    --color-primary-50: #f2f8f7;
    --color-primary-100: #bbcfcc;
    --color-primary-200: #85a6a2;
    --color-primary-300: #507f7b;
    --color-primary-400: #145a55;
    --color-primary-500: #104c48;
    --color-primary-600: #0c3f3b;
    --color-primary-700: #09322f;
    --color-primary-800: #062624;
    --color-primary-900: #031a18;

    /* Secondary color scale - amber / gold */
    --color-secondary-50: #fcf6ee;
    --color-secondary-100: #efdbc0;
    --color-secondary-200: #e1c093;
    --color-secondary-300: #d3a564;
    --color-secondary-400: #c58a2b;
    --color-secondary-500: #a26f1a;
    --color-secondary-600: #805508;
    --color-secondary-700: #5f3d00;
    --color-secondary-800: #3f2700;
    --color-secondary-900: #211300;

    /* Accent color scale - wine */
    --color-accent-50: #fdf4f5;
    --color-accent-100: #dbc0c1;
    --color-accent-200: #b98e90;
    --color-accent-300: #965e62;
    --color-accent-400: #722f37;
    --color-accent-500: #62282f;
    --color-accent-600: #522126;
    --color-accent-700: #431a1f;
    --color-accent-800: #341317;
    --color-accent-900: #260d10;

    /* Neutral color scale */
    --color-neutral-50: #f5f7f7;
    --color-neutral-100: #d6dcdb;
    --color-neutral-200: #b8c0bf;
    --color-neutral-300: #9ba6a5;
    --color-neutral-400: #7f8c8b;
    --color-neutral-500: #647371;
    --color-neutral-600: #4a5b59;
    --color-neutral-700: #314442;
    --color-neutral-800: #1a2e2c;
    --color-neutral-900: #031a18;

    /* Error color 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 (identity - remapped per client) */
    --color-brand: var(--color-secondary-400);
    --color-brand-dark: var(--color-secondary-600);
    --color-brand-light: var(--color-secondary-100);
    --color-brand-rgb: 197, 138, 43;

    /* Layout aliases (structural) */
    --color-bg-light: var(--color-neutral-50);
    --color-bg-dark: var(--color-primary-900);
    --color-bg-footer: var(--color-primary-900);
    --color-text: var(--color-neutral-900);
    --color-text-muted: var(--color-neutral-600);
    --color-text-on-dark: #fff;

    /* Typography */
    --font-sans: 'Montserrat', 'montserrat', system-ui, -apple-system, sans-serif;
    --font-heading: 'Montserrat', 'montserrat', system-ui, -apple-system, sans-serif;
    --font-script: 'coffee-service', 'Coffee Service', 'Brush Script MT', cursive;
    --font-hand: 'shadows-into-light', 'Shadows Into Light', 'Comic Sans MS', cursive;

    /* Script heading sizes (Coffee Service) */
    --text-script-lg: clamp(2.5rem, 1.9rem + 2.4vw, 4rem);
    --text-script-xl: clamp(3rem, 2.25rem + 3vw, 5rem);

    --text-xs: 0.75rem;
    --text-sm: 0.875rem;
    --text-base: 1rem;
    --text-lg: 1.125rem;
    --text-xl: 1.25rem;
    --text-2xl: clamp(1.5rem, 1.25rem + 1vw, 1.875rem);
    --text-3xl: clamp(1.875rem, 1.5rem + 1.5vw, 2.5rem);
    --text-4xl: clamp(2.25rem, 1.75rem + 2vw, 3rem);
    --text-5xl: clamp(2.75rem, 2rem + 3vw, 4rem);

    --leading-tight: 1.2;
    --leading-normal: 1.5;
    --leading-relaxed: 1.625;

    /* 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;

    /* Layout */
    --container-max: 1200px;
    --gutter: clamp(1rem, 0.5rem + 2vw, 2rem);

    /* Misc */
    --radius: 0.5rem;
    --shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1);
    --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1);
    --transition: 200ms ease;
}



@media (max-width: 1024px) {
    :root {
        --text-2xl: 1.5rem;
        --text-3xl: 1.75rem;
        --text-4xl: 2.25rem;
        --text-5xl: 2.75rem;
    }
}

@media (max-width: 767px) {
    :root {
        --text-base: 1rem;
        --text-lg: 1.25rem;
        --text-2xl: 1.25rem;
        --text-3xl: 1.5rem;
        --text-4xl: 1.75rem;
        --text-5xl: 2rem;
    }
}


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

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

html { scroll-behavior: smooth; }

body {
    margin: 0;
    font-family: var(--font-sans);
    font-size: var(--text-base);
    line-height: var(--leading-normal);
    color: var(--color-neutral-900);
    background: var(--color-neutral-50);
    -webkit-font-smoothing: antialiased;
}

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

/* Scroll-fade animation removed — sections render immediately. */

/* 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-tight);
}

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

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


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

/* Skip link */
.skip-link {
    position: absolute;
    left: -9999px;
    top: var(--space-sm);
    background: var(--color-brand);
    color: #fff;
    padding: var(--space-sm) var(--space-md);
    border-radius: var(--radius);
    font-weight: 600;
    text-decoration: none;
    z-index: 9999;
}
.skip-link:focus {
    left: var(--space-sm);
    outline: 2px solid var(--color-brand-dark);
    outline-offset: 2px;
}

/* Screen reader only (visually hidden) */
.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 states */
:focus-visible {
    outline: 2px solid var(--color-brand);
    outline-offset: 2px;
}
:focus:not(:focus-visible) {
    outline: none;
}

/* Focus on dark backgrounds */
[class*="--bg-dark"] :focus-visible,
[class*="--bg-brand"] :focus-visible,
[class*="--bg-image"] :focus-visible,
.site-footer :focus-visible {
    outline-color: #fff;
}

/* Minimum tap target size */
button,
.btn,
input[type="submit"],
input[type="button"],
a.btn {
    min-height: 44px;
}

/* Text overflow handling */
h1, h2, h3, h4, h5, h6 {
    overflow-wrap: break-word;
}

h1{
    font-size:var(--text-5xl);
}

h2 {
    font-size:var(--text-4xl);
}

h3 {
    font-size:var(--text-3xl);
}

h4 {
    font-size:var(--text-3xl);
}

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

/* Prevent iOS text resize issues */
html {
    text-size-adjust: 100%;
    -webkit-text-size-adjust: 100%;
}

/* Reduced motion */
@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;
    }

}

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

/* Prose (WYSIWYG content) */
.prose h2 { font-size: var(--text-2xl); margin-top: var(--space-xl); }
.prose h3 { font-size: var(--text-xl); 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-brand); text-decoration: underline; }

/* Eyebrow / Subhead */
.eyebrow {
    margin-bottom: var(--space-sm);
    font-size: var(--text-sm);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-brand);
}
.subhead {
    font-size: var(--text-lg);
    color: var(--color-neutral-600);
}

/* Buttons */
.btn {
    display: inline-flex;
    align-items: center;
    gap: var(--space-xs);
    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);
}
.btn--primary {
    background: var(--color-brand);
    color: #fff;
    border-color: var(--color-brand);
}
.btn--primary:hover {
    background: var(--color-brand-dark);
    border-color: var(--color-brand-dark);
}
.btn--secondary {
    background: transparent;
    color: var(--color-brand);
    border-color: var(--color-brand);
}
.btn--secondary:hover {
    background: var(--color-brand);
    color: #fff;
}
.btn--white {
    background: #fff;
    color: var(--color-brand);
    border-color: #fff;
}
.btn--white:hover {
    background: var(--color-neutral-100);
}
.btn--outline-light {
    background: transparent;
    color: #fff;
    border-color: rgba(255,255,255,0.5);
}
.btn--outline-light:hover {
    background: rgba(255,255,255,0.1);
    border-color: #fff;
}

.link-arrow {
    display: inline-flex;
    align-items: center;
    gap: var(--space-xs);
    font-weight: 600;
    color: var(--color-brand);
    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; }


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

.site-header {
    position: sticky;
    top: 0;
    z-index: 100;
    background: #fff;
    border-bottom: 1px solid var(--color-neutral-200);
}
.site-header__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 72px;
}
.site-header__logo img { height: 40px; width: auto; }
/* Scrolled state */
body.scrolled .site-header {
    box-shadow: 0 2px 16px rgba(0, 0, 0, 0.08);
}
body.scrolled .site-header__inner {
    
}
body.scrolled .site-header__logo img {
    
}
.site-header__toggle {
    display: flex;
    flex-direction: column;
    gap: 5px;
    padding: var(--space-sm);
    background: none;
    border: none;
    cursor: pointer;
}
.site-header__toggle span,
.site-header__toggle::before,
.site-header__toggle::after {
    content: '';
    display: block;
    width: 24px;
    height: 2px;
    background: var(--color-neutral-900);
    transition: var(--transition);
}
/* Open state: the toggle is moved inside the drawer (see footer.php), sitting
   where the hamburger sits and scrolling away with the drawer content. */
.site-nav .site-header__toggle {
    position: absolute;
    top: 2.1rem;
    right: 5%;
    padding-right: 0;
    z-index: 5;
}
.site-header__toggle[aria-expanded="true"] span {
    opacity: 0;
    transform: scaleX(0);
}
.site-header__toggle[aria-expanded="true"]::before,
.site-header__toggle[aria-expanded="true"]::after{
    width:32px;
    /* background-color:var(--primary-500); */
}
.site-header__toggle[aria-expanded="true"]::before {
    transform: translateY(7px) rotate(45deg);
}
.site-header__toggle[aria-expanded="true"]::after {
    transform: translateY(-7px) rotate(-45deg);
    /* border: 1px solid red; */
    /* height: 200px!important; */
}
.site-nav__menu {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    gap: var(--space-lg);
}
.site-nav__menu a {
    font-weight: 500;
    text-decoration: none;
    color: var(--color-neutral-700);
}
.site-nav__menu a:hover { color: var(--color-brand); }

/* Parent menu items with children */
.site-nav__menu > .menu-item-has-children {
    position: relative;
}
.site-nav__menu > .menu-item-has-children > a {
    display: flex;
    align-items: center;
    gap: var(--space-xs);
}
.site-nav__menu > .menu-item-has-children > a::after {
    content: '';
    border: solid currentColor;
    border-width: 0 1.5px 1.5px 0;
    padding: 2.5px;
    transform: rotate(45deg);
    margin-top: -2px;
    transition: transform var(--transition);
}

/* Desktop dropdown */
@media (min-width: 769px) {
    .site-nav__menu .sub-menu {
        position: absolute;
        top: 100%;
        left: 0;
        min-width: 200px;
        list-style: none;
        margin: 0;
        padding: var(--space-sm) 0;
        background: #fff;
        border: 1px solid var(--color-neutral-200);
        border-radius: var(--radius);
        box-shadow: var(--shadow);
        opacity: 0;
        visibility: hidden;
        transform: translateY(8px);
        transition: opacity var(--transition), transform var(--transition), visibility var(--transition);
    }
    .site-nav__menu > .menu-item-has-children:hover > .sub-menu,
    .site-nav__menu > .menu-item-has-children:focus-within > .sub-menu {
        opacity: 1;
        visibility: visible;
        transform: translateY(0);
    }
    .site-nav__menu > .menu-item-has-children:hover > a::after {
        transform: rotate(-135deg);
        margin-top: 2px;
    }
    .site-nav__menu .sub-menu a {
        display: block;
        padding: var(--space-sm) var(--space-md);
        font-weight: 400;
    }
    .site-nav__menu .sub-menu a:hover {
        background: var(--color-neutral-50);
    }
}

@media (max-width: 768px) {
    .site-nav {
        position: fixed;
        top: 72px;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        background: #fff;
        padding: var(--space-lg) 5%;
        padding-top: 5rem;
        transform: translateX(100%);
        transition: transform var(--transition);
        overflow-y: auto;
    }
    .site-nav.is-open { transform: translateX(0); }
    body.nav-open { overflow: hidden; }
    .site-nav__menu { flex-direction: column; gap: 0; }
    .site-nav__menu > li {
        display:flex;
        border-bottom: 1px solid var(--color-neutral-200);
        /* flex-direction:column; */
        /* align-items:flex-start!important; */
    }
    .site-nav__menu > .menu-item-has-children > a,
    .site-nav__menu > li > a { 
        display: block; 
        padding: 1.5rem 0 1rem 0; 
		font-size:1.25rem;
    }
    /* Row layout so the toggle button sits beside the link */
    .site-nav__menu > .menu-item-has-children {
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
        justify-content:flex-start;
    }
    .site-nav__menu > .menu-item-has-children > a {
        flex: 1;
        flex-basis: auto;
        min-width: 0;
        /* display: block; */
    }
    /* Sub-menu spans full width on its own row */
    .site-nav__menu > .menu-item-has-children > .sub-menu {
        flex-basis: 100%;
    }
    /* Hide the pseudo-element arrow ÃƒÆ’Ã†â€™Ãƒâ€ Ã¢â‚¬â„¢ÃƒÆ’Ã¢â‚¬Â ÃƒÂ¢Ã¢â€šÂ¬Ã¢â€žÂ¢ÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬ÃƒÂ¢Ã¢â‚¬Å¾Ã‚Â¢ÃƒÆ’Ã†â€™Ãƒâ€ Ã¢â‚¬â„¢ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬Ãƒâ€šÃ‚Â ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â¢ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â€šÂ¬Ã…Â¡Ãƒâ€šÃ‚Â¬ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â€šÂ¬Ã…Â¾Ãƒâ€šÃ‚Â¢ÃƒÆ’Ã†â€™Ãƒâ€ Ã¢â‚¬â„¢ÃƒÆ’Ã¢â‚¬Â ÃƒÂ¢Ã¢â€šÂ¬Ã¢â€žÂ¢ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â¢ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â€šÂ¬Ã…Â¡Ãƒâ€šÃ‚Â¬ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â ÃƒÆ’Ã†â€™Ãƒâ€ Ã¢â‚¬â„¢ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â¢ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â¢ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬Ãƒâ€¦Ã‚Â¡ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â¬ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â¢ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬Ãƒâ€¦Ã‚Â¾ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â¢ÃƒÆ’Ã†â€™Ãƒâ€ Ã¢â‚¬â„¢ÃƒÆ’Ã¢â‚¬Â ÃƒÂ¢Ã¢â€šÂ¬Ã¢â€žÂ¢ÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬ÃƒÂ¢Ã¢â‚¬Å¾Ã‚Â¢ÃƒÆ’Ã†â€™Ãƒâ€ Ã¢â‚¬â„¢ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â¢ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â¢ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬Ãƒâ€¦Ã‚Â¡ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â¬ÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â¦ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â¡ÃƒÆ’Ã†â€™Ãƒâ€ Ã¢â‚¬â„¢ÃƒÆ’Ã¢â‚¬Â ÃƒÂ¢Ã¢â€šÂ¬Ã¢â€žÂ¢ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â¢ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â€šÂ¬Ã…Â¡Ãƒâ€šÃ‚Â¬ÃƒÆ’Ã¢â‚¬Â¦Ãƒâ€šÃ‚Â¡ÃƒÆ’Ã†â€™Ãƒâ€ Ã¢â‚¬â„¢ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬Ãƒâ€¦Ã‚Â¡ÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã…Â¡ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â¢ÃƒÆ’Ã†â€™Ãƒâ€ Ã¢â‚¬â„¢ÃƒÆ’Ã¢â‚¬Â ÃƒÂ¢Ã¢â€šÂ¬Ã¢â€žÂ¢ÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬ÃƒÂ¢Ã¢â‚¬Å¾Ã‚Â¢ÃƒÆ’Ã†â€™Ãƒâ€ Ã¢â‚¬â„¢ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬Ãƒâ€šÃ‚Â ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â¢ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â€šÂ¬Ã…Â¡Ãƒâ€šÃ‚Â¬ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â€šÂ¬Ã…Â¾Ãƒâ€šÃ‚Â¢ÃƒÆ’Ã†â€™Ãƒâ€ Ã¢â‚¬â„¢ÃƒÆ’Ã¢â‚¬Â ÃƒÂ¢Ã¢â€šÂ¬Ã¢â€žÂ¢ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â¢ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â€šÂ¬Ã…Â¡Ãƒâ€šÃ‚Â¬ÃƒÆ’Ã¢â‚¬Â¦Ãƒâ€šÃ‚Â¡ÃƒÆ’Ã†â€™Ãƒâ€ Ã¢â‚¬â„¢ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬Ãƒâ€¦Ã‚Â¡ÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã…Â¡ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â¢ÃƒÆ’Ã†â€™Ãƒâ€ Ã¢â‚¬â„¢ÃƒÆ’Ã¢â‚¬Â ÃƒÂ¢Ã¢â€šÂ¬Ã¢â€žÂ¢ÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬ÃƒÂ¢Ã¢â‚¬Å¾Ã‚Â¢ÃƒÆ’Ã†â€™Ãƒâ€ Ã¢â‚¬â„¢ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬Ãƒâ€¦Ã‚Â¡ÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã…Â¡ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â¢ÃƒÆ’Ã†â€™Ãƒâ€ Ã¢â‚¬â„¢ÃƒÆ’Ã¢â‚¬Â ÃƒÂ¢Ã¢â€šÂ¬Ã¢â€žÂ¢ÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã…Â¡ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â¢ÃƒÆ’Ã†â€™Ãƒâ€ Ã¢â‚¬â„¢ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â¢ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â¢ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬Ãƒâ€¦Ã‚Â¡ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â¬ÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â¦ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â¡ÃƒÆ’Ã†â€™Ãƒâ€ Ã¢â‚¬â„¢ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬Ãƒâ€¦Ã‚Â¡ÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã…Â¡ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â¬ÃƒÆ’Ã†â€™Ãƒâ€ Ã¢â‚¬â„¢ÃƒÆ’Ã¢â‚¬Â ÃƒÂ¢Ã¢â€šÂ¬Ã¢â€žÂ¢ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â¢ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â€šÂ¬Ã…Â¡Ãƒâ€šÃ‚Â¬ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â¦ÃƒÆ’Ã†â€™Ãƒâ€ Ã¢â‚¬â„¢ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬Ãƒâ€¦Ã‚Â¡ÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã…Â¡ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â¡ÃƒÆ’Ã†â€™Ãƒâ€ Ã¢â‚¬â„¢ÃƒÆ’Ã¢â‚¬Â ÃƒÂ¢Ã¢â€šÂ¬Ã¢â€žÂ¢ÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬ÃƒÂ¢Ã¢â‚¬Å¾Ã‚Â¢ÃƒÆ’Ã†â€™Ãƒâ€ Ã¢â‚¬â„¢ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â¢ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â¢ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬Ãƒâ€¦Ã‚Â¡ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â¬ÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â¦ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â¡ÃƒÆ’Ã†â€™Ãƒâ€ Ã¢â‚¬â„¢ÃƒÆ’Ã¢â‚¬Â ÃƒÂ¢Ã¢â€šÂ¬Ã¢â€žÂ¢ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â¢ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â€šÂ¬Ã…Â¡Ãƒâ€šÃ‚Â¬ÃƒÆ’Ã¢â‚¬Â¦Ãƒâ€šÃ‚Â¡ÃƒÆ’Ã†â€™Ãƒâ€ Ã¢â‚¬â„¢ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬Ãƒâ€¦Ã‚Â¡ÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã…Â¡ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â¬ÃƒÆ’Ã†â€™Ãƒâ€ Ã¢â‚¬â„¢ÃƒÆ’Ã¢â‚¬Â ÃƒÂ¢Ã¢â€šÂ¬Ã¢â€žÂ¢ÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬ÃƒÂ¢Ã¢â‚¬Å¾Ã‚Â¢ÃƒÆ’Ã†â€™Ãƒâ€ Ã¢â‚¬â„¢ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬Ãƒâ€šÃ‚Â ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â¢ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â€šÂ¬Ã…Â¡Ãƒâ€šÃ‚Â¬ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â€šÂ¬Ã…Â¾Ãƒâ€šÃ‚Â¢ÃƒÆ’Ã†â€™Ãƒâ€ Ã¢â‚¬â„¢ÃƒÆ’Ã¢â‚¬Â ÃƒÂ¢Ã¢â€šÂ¬Ã¢â€žÂ¢ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â¢ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â€šÂ¬Ã…Â¡Ãƒâ€šÃ‚Â¬ÃƒÆ’Ã¢â‚¬Â¦Ãƒâ€šÃ‚Â¡ÃƒÆ’Ã†â€™Ãƒâ€ Ã¢â‚¬â„¢ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬Ãƒâ€¦Ã‚Â¡ÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã…Â¡ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â¢ÃƒÆ’Ã†â€™Ãƒâ€ Ã¢â‚¬â„¢ÃƒÆ’Ã¢â‚¬Â ÃƒÂ¢Ã¢â€šÂ¬Ã¢â€žÂ¢ÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬ÃƒÂ¢Ã¢â‚¬Å¾Ã‚Â¢ÃƒÆ’Ã†â€™Ãƒâ€ Ã¢â‚¬â„¢ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬Ãƒâ€¦Ã‚Â¡ÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã…Â¡ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â¢ÃƒÆ’Ã†â€™Ãƒâ€ Ã¢â‚¬â„¢ÃƒÆ’Ã¢â‚¬Â ÃƒÂ¢Ã¢â€šÂ¬Ã¢â€žÂ¢ÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã…Â¡ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â¢ÃƒÆ’Ã†â€™Ãƒâ€ Ã¢â‚¬â„¢ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â¢ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â¢ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â€šÂ¬Ã…Â¡Ãƒâ€šÃ‚Â¬ÃƒÆ’Ã¢â‚¬Â¦Ãƒâ€šÃ‚Â¡ÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã…Â¡ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â¬ÃƒÆ’Ã†â€™Ãƒâ€ Ã¢â‚¬â„¢ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬Ãƒâ€šÃ‚Â¦ÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã…Â¡ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â¡ÃƒÆ’Ã†â€™Ãƒâ€ Ã¢â‚¬â„¢ÃƒÆ’Ã¢â‚¬Â ÃƒÂ¢Ã¢â€šÂ¬Ã¢â€žÂ¢ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â¢ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â€šÂ¬Ã…Â¡Ãƒâ€šÃ‚Â¬ÃƒÆ’Ã¢â‚¬Â¦Ãƒâ€šÃ‚Â¡ÃƒÆ’Ã†â€™Ãƒâ€ Ã¢â‚¬â„¢ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬Ãƒâ€¦Ã‚Â¡ÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã…Â¡ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â¬ÃƒÆ’Ã†â€™Ãƒâ€ Ã¢â‚¬â„¢ÃƒÆ’Ã¢â‚¬Â ÃƒÂ¢Ã¢â€šÂ¬Ã¢â€žÂ¢ÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬ÃƒÂ¢Ã¢â‚¬Å¾Ã‚Â¢ÃƒÆ’Ã†â€™Ãƒâ€ Ã¢â‚¬â„¢ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â¢ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â¢ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬Ãƒâ€¦Ã‚Â¡ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â¬ÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â¦ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â¡ÃƒÆ’Ã†â€™Ãƒâ€ Ã¢â‚¬â„¢ÃƒÆ’Ã¢â‚¬Â ÃƒÂ¢Ã¢â€šÂ¬Ã¢â€žÂ¢ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â¢ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â€šÂ¬Ã…Â¡Ãƒâ€šÃ‚Â¬ÃƒÆ’Ã¢â‚¬Â¦Ãƒâ€šÃ‚Â¡ÃƒÆ’Ã†â€™Ãƒâ€ Ã¢â‚¬â„¢ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬Ãƒâ€¦Ã‚Â¡ÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã…Â¡ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â the button replaces it */
    .site-nav__menu > .menu-item-has-children > a::after {
        display: none;
    }
    /* Toggle button arrow */
    .submenu-toggle {
        background: none;
        border: none;
        padding: 1rem;
        cursor: pointer;
        color: inherit;
        flex-shrink: 0;
        display: flex;
        align-items: center;
        justify-content: center;
    }
    .submenu-toggle::before {
        content: '';
        border: solid var(--color-neutral-500);
        border-width: 0 2px 2px 0;
        padding: 8px;
        transform: rotate(45deg);
        margin-top: -6px;
        transition: all var(--transition);
        display: block;
    }
    .site-nav__menu > .menu-item-has-children.is-open > .submenu-toggle::before {
        transform: rotate(-135deg);
        margin-top: 2px;
    }
    .site-nav__menu .sub-menu {
        list-style: none;
        margin: 0;
        padding: 0 0 var(--space-sm) var(--space-md);
        padding: 0;
        max-height: 0;
        overflow: hidden;
        transition: all var(--transition);
        width:100%; 
    }
    .site-nav__menu > .menu-item-has-children.is-open > .sub-menu {
        max-height: 500px;
        overflow-y: scroll;
        padding-bottom:var(--space-sm);
    }
    .site-nav__menu .sub-menu li {

    }
    .site-nav__menu .sub-menu a {
        display: block;
        padding: .875rem 0;
        font-weight: 600;
        /* color: #fff; */
        font-size:1rem;
    }
    .site-nav__menu .sub-menu li.current-menu-item > a,
    .site-nav__menu .sub-menu a:focus, 
    .site-nav__menu .sub-menu a:hover {
        color: var(--color-neutral-900)!important;
        opacity:0.65;
    }
    .site-nav__menu > li.current-menu-item > a,
    .site-nav__menu > li > a:hover,
    .site-nav__menu > li > a:focus{
        color: var(--color-neutral-900)!important;
        opacity:0.9;
    }
	
	.site-nav__menu .sub-menu li.current-menu-item a, 
	.site-nav__menu .sub-menu a:focus, 
	.site-nav__menu .sub-menu a:hover {
		color: var(--color-secondary-800);
		background: var(--color-neutral-50);
		padding-left:.325rem;
	}
}

@media (min-width: 769px) {
    .site-nav {
        display: flex;
        align-items: center;
    }
	.site-header__toggle,
    .site-nav__menu > li.mobile-show,
    button.submenu-toggle{
        display:none!important;
    }
}

body.nav-open {
    overflow: hidden;
}

/* Header actions (phone + CTA) */
.site-nav__actions {
    display: flex;
    align-items: center;
    gap: var(--space-md);
    margin-top: var(--space-lg);
    /* padding-top: var(--space-md); */
    /* border-top: 1px solid var(--color-neutral-100); */
}
.site-nav__phone {
    display: flex;
    align-items: center;
    gap: var(--space-xs);
    font-weight: 500;
    color: var(--color-neutral-700);
    text-decoration: none;
}
.site-nav__phone svg { width: 18px; height: 18px; position: relative; top: 2px;}
.site-nav__phone:hover { color: var(--color-brand); }

@media (min-width: 769px) {
    .site-nav__actions {
        margin-top: 0;
        margin-left: var(--space-lg);
        padding-top: 0;
        padding-left: var(--space-lg);
        border-top: none;
        border-left: 1px solid var(--color-neutral-200);
    }
}
@media (max-width: 768px) {
    .site-nav__phone span { display: none; }
    .site-nav__phone svg { width: 24px; height: 24px; }
    .site-nav__actions{
        flex-wrap:wrap;
    }

    .site-nav__actions > a{
        flex-basis:100%;
        justify-content:center;
    }
}

/* Small button variant */
.btn--sm {
    padding: var(--space-xs) var(--space-md);
    font-size: var(--text-sm);
}


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

.c-mega-menu {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 100;
    background: #fff;
    border-top: 1px solid var(--color-neutral-200);
    box-shadow: var(--shadow-lg);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-4px);
    transition: opacity var(--transition), transform var(--transition), visibility var(--transition);
    pointer-events: none;
}

.c-mega-menu.is-active {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    pointer-events: auto;
}

.c-mega-menu__inner {
    padding: var(--space-xl) var(--gutter);
}

.c-mega-menu__columns {
    display: flex;
    gap: var(--space-lg);
}

.c-mega-menu__col {
    min-width: 0;
}

.c-mega-menu__col-title {
    font-family: var(--font-heading);
    font-size: var(--text-lg);
    font-weight: 700;
    margin-bottom: var(--space-sm);
    color: var(--color-text);
}

.c-mega-menu__menu {
    list-style: none;
    padding: 0;
    margin: 0;
}

.c-mega-menu__menu li {
    margin-bottom: var(--space-xs);
}

.c-mega-menu__menu a {
    color: var(--color-text-muted);
    text-decoration: none;
    transition: color var(--transition);
}

.c-mega-menu__menu a:hover {
    color: var(--color-brand);
}

.c-mega-menu__menu .sub-menu {
    list-style: none;
    padding: 0;
    margin: var(--space-sm) 0 var(--space-sm) var(--space-sm);
}

.c-mega-menu__menu .sub-menu a {
    font-size: var(--text-sm);
}

.c-mega-menu__text {
    color: var(--color-text);
}

.c-mega-menu__image {
    max-width: 100%;
    height: auto;
    border-radius: var(--radius);
}

.c-mega-menu__contact-info p {
    display: flex;
    align-items: flex-start;
    gap: var(--space-xs);
    margin-bottom: var(--space-xs);
}

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

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

.site-footer {
    background: var(--color-bg-footer);
    color: #fff;
    padding: var(--space-3xl) 0 var(--space-lg);
}
.site-footer__inner {
    display: grid;
    gap: var(--space-xl);
}
.site-footer__logo img { height: 32px; width: auto; margin-bottom: var(--space-md); }
.site-footer__social {
    display: flex;
    gap: var(--space-sm);
}
.site-footer__social a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--color-neutral-800);
    color: var(--color-neutral-400);
    transition: background var(--transition), color var(--transition);
}
.site-footer__social a span {
    display: flex;
    align-items: center;
    justify-content: center;
}
.site-footer__social a:hover {
    background: var(--color-brand);
    color: #fff;
}
.site-footer__social svg { width: 20px; height: 20px; }
.site-footer__social-icon { width: 20px; height: 20px; object-fit: contain; }

.site-footer__columns {
    display: flex;
    flex-wrap: nowrap;
    gap: var(--space-lg);
    padding: var(--space-xl) 0;
}

.site-footer__col {
    min-width: 0;
}

.site-footer__col-title {
    font-family: var(--font-heading);
    font-size: var(--text-lg);
    font-weight: 700;
    margin-bottom: var(--space-sm);
    color: var(--color-text-on-dark);
}

.site-footer__menu {
    list-style: none;
    padding: 0;
    margin: 0;
}

.site-footer__menu li {
    margin-bottom: var(--space-xs);
}

.site-footer__menu a {
    color: var(--color-neutral-400);
    text-decoration: none;
    transition: color var(--transition);
}

.site-footer__menu a:hover {
    color: var(--color-text-on-dark);
}

.site-footer__menu .sub-menu {
    list-style: none;
    padding: 0;
    margin: 0 0 0 var(--space-sm);
}

.site-footer__menu .sub-menu a {
    font-size: var(--text-sm);
}

.site-footer__contact-info p {
    display: flex;
    align-items: flex-start;
    gap: var(--space-xs);
    margin-bottom: var(--space-xs);
    color: var(--color-neutral-400);
}

.site-footer__contact-info a {
    color: var(--color-neutral-400);
    text-decoration: none;
}

.site-footer__contact-info a:hover {
    color: var(--color-text-on-dark);
}

.site-footer__icon {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
    margin-top: 2px;
}

.site-footer__text {
    color: var(--color-neutral-400);
}

.site-footer__image {
    max-width: 100%;
    height: auto;
}

@media (max-width: 768px) {
    .site-footer__columns {
        flex-direction: column;
    }

    .site-footer__col {
        flex-basis: 100% !important;
        max-width: 100% !important;
    }
}

.site-footer__bottom {
    margin-top: var(--space-2xl);
    padding-top: var(--space-lg);
    border-top: 1px solid var(--color-neutral-800);
    color: var(--color-neutral-500);
    font-size: var(--text-sm);
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: var(--space-sm) var(--space-lg);
}

.site-footer__bottom-left {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-xs) var(--space-lg);
}

.site-footer__copyright { margin: 0; }

.site-footer__bottom-nav { display: flex; align-items: center; }

.site-footer__bottom-menu {
    display: flex;
    gap: var(--space-lg);
    list-style: none;
    margin: 0;
    padding: 0;
}

.site-footer__bottom-menu a {
    color: var(--color-neutral-500);
    text-decoration: none;
    transition: color var(--transition);
}

.site-footer__bottom-menu a:hover,
.site-footer__bottom-menu a:focus { color: var(--color-neutral-100); }

.site-footer__credits { margin: 0; }

.site-footer__credits a {
    color: var(--color-neutral-400);
    text-decoration: none;
    transition: color var(--transition);
}

.site-footer__credits a:hover,
.site-footer__credits a:focus { color: var(--color-brand-light); }


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

/* Adjacent same-background components: collapse top padding */
[class*="--bg-white"] + [class*="--bg-white"],
[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 */
.c-hero--minimal {
    background: #fff;
    color: var(--color-neutral-900);
    min-height: auto;
    padding: var(--space-xl) 0;
    border-bottom: 1px solid var(--color-neutral-200);
}
.c-hero--minimal .c-hero__headline {
    font-size: var(--text-3xl);
    margin-bottom: 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 .c-hero__headline { font-size: var(--text-2xl); }
}

.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: clamp(4rem, 8vw, 7.5rem) 0; } /* section rhythm, matches feature-media etc. */
.c-cards__header { text-align: center; max-width: none; margin: 0 auto var(--space-2xl); }
.c-cards__grid { display: grid; gap: var(--space-lg); }

/* Doubled tracks (2 per visual column) let an incomplete last row center itself */
@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(4, 1fr); }
    .c-cards--cols-2 .c-cards__grid > *,
    .c-cards--cols-3 .c-cards__grid > *,
    .c-cards--cols-4 .c-cards__grid > * { grid-column: span 2; }
    /* lone card on the last 2-up row */
    .c-cards--cols-2 .c-cards__grid > *:nth-last-child(1):nth-child(2n+1),
    .c-cards--cols-3 .c-cards__grid > *:nth-last-child(1):nth-child(2n+1),
    .c-cards--cols-4 .c-cards__grid > *:nth-last-child(1):nth-child(2n+1) { grid-column: 2 / span 2; }
}
@media (min-width: 1024px) {
    .c-cards--cols-3 .c-cards__grid { grid-template-columns: repeat(6, 1fr); }
    .c-cards--cols-3 .c-cards__grid > *,
    .c-cards--cols-3 .c-cards__grid > *:nth-last-child(1):nth-child(2n+1) { grid-column: span 2; }
    /* two cards left on the last 3-up row */
    .c-cards--cols-3 .c-cards__grid > *:nth-last-child(2):nth-child(3n+1) { grid-column: 2 / span 2; }
    .c-cards--cols-3 .c-cards__grid > *:nth-last-child(1):nth-child(3n+2) { grid-column: 4 / span 2; }
    /* one card left on the last 3-up row */
    .c-cards--cols-3 .c-cards__grid > *:nth-last-child(1):nth-child(3n+1) { grid-column: 3 / span 2; }
    .c-cards--cols-4 .c-cards__grid { grid-template-columns: repeat(8, 1fr); }
    .c-cards--cols-4 .c-cards__grid > *,
    .c-cards--cols-4 .c-cards__grid > *:nth-last-child(1):nth-child(2n+1) { grid-column: span 2; }
    /* leftover cards on the last 4-up row */
    .c-cards--cols-4 .c-cards__grid > *:nth-last-child(3):nth-child(4n+1) { grid-column: 2 / span 2; }
    .c-cards--cols-4 .c-cards__grid > *:nth-last-child(2):nth-child(4n+2) { grid-column: 4 / span 2; }
    .c-cards--cols-4 .c-cards__grid > *:nth-last-child(1):nth-child(4n+3) { grid-column: 6 / span 2; }
    .c-cards--cols-4 .c-cards__grid > *:nth-last-child(2):nth-child(4n+1) { grid-column: 3 / span 2; }
    .c-cards--cols-4 .c-cards__grid > *:nth-last-child(1):nth-child(4n+2) { grid-column: 5 / span 2; }
    .c-cards--cols-4 .c-cards__grid > *:nth-last-child(1):nth-child(4n+1) { grid-column: 4 / span 2; }
}

.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: column;
    box-shadow: none;
    border: 1px solid var(--color-neutral-200);
    border-left: 4px solid var(--color-primary-400);
}
/* Minimal-card image slot renders as a plain icon above the content */
.c-cards--style-minimal .c-card__image {
    flex: 0 0 auto;
    width: 48px;
    height: 48px;
    margin: var(--space-xl) var(--space-xl) 0;
}
.c-cards--style-minimal .c-card__image img {
    aspect-ratio: auto;
    height: 100%;
    width: 100%;
    object-fit: contain;
    object-position: left center;
}
.c-cards--style-minimal .c-card__image + .c-card__content { padding-top: var(--space-md); }
.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: clamp(4rem, 8vw, 7.5rem) 0; } /* section rhythm, matches feature-media etc. */
.c-cta__inner { display: flex; flex-direction: column; gap: var(--space-lg); }
.c-cta__inner p { font-weight: 700; }
.c-cta--center { text-align: center; }
.c-cta--center .c-cta__inner { align-items: center; max-width: 1000px; 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);
}

.grecaptcha-badge {
    position: relative !important;
    bottom: auto !important;
    right: auto !important;
	margin-bottom: var(--space-lg) !important;
}

.gform_wrapper .gfield.gfield--type-captcha.gfield--captcha-invisible {
    position: relative;
    display: block;
    block-size: auto;
    inline-size: auto;
    min-block-size: auto;
	min-height: 60px;
}

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-brand h2,
.c-cta--bg-dark h2,
.c-cta--bg-image h2 { color: #fff; }
.c-cta--bg-image { overflow: hidden; }
.c-cta--parallax { background: transparent; }
.c-cta__parallax {
    position: absolute;
    inset: -20%;
    background: center/cover no-repeat;
    will-change: transform;
}
.c-cta--bg-dark { background: var(--color-primary-700); 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: clamp(4rem, 8vw, 7.5rem) 0; } /* section rhythm, matches feature-media etc. */
.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: clamp(4rem, 8vw, 7.5rem) 0; } /* section rhythm, matches feature-media etc. */
.c-form-section--center .c-form-section__inner { max-width: 860px; 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: clamp(4rem, 8vw, 7.5rem) 0; } /* section rhythm, matches feature-media etc. */
.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-brand);
    border-radius: 28px;
    color: #fff;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    overflow: hidden;
    transition: background var(--transition);
}

@media (max-width: 900px) {
    .c-sticky-cta {
        display: flex;
    }
}

.c-sticky-cta__toggle {
    display: flex;
    align-items: center;
    height: 56px;
    padding: 0;
    background: transparent;
    border: none;
    color: #fff;
    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: 600;
    font-size: var(--text-base);
    color: #fff;
    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: #fff;
    cursor: pointer;
}

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

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

.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 {
    font-family: var(--font-heading);
    font-size: clamp(6rem, 20vw, 12rem);
    font-weight: 700;
    line-height: 1;
    color: var(--color-neutral-200);
    margin-bottom: var(--space-md);
}
.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;
    }
}

/* =================================================================
   BEER ME! BRAND LAYER
   Homepage components + header/footer/button restyle to match the
   Figma homepage design. Appended last so it wins the cascade.
   ================================================================= */

:root {
    --container-max: 1536px;
}

/* ----------------------- TYPE UTILITIES ----------------------- */

/* Long-form prose (e.g. legal pages): tighter heading rhythm than marketing sections */
.prose h2 {
    margin: 2rem 0 0.75rem;
    font-size: var(--text-2xl);
}
.prose h3 { margin: 1.5rem 0 0.5rem; }
.prose h4 { margin: 1.25rem 0 0.5rem; }

/* In-content text links: teal on hover/active */
a:not([class]),
.prose a {
    transition: color var(--transition);
}
a:not([class]):hover,
a:not([class]):active,
.prose a:hover,
.prose a:active {
    color: var(--color-primary-400);
}
/* Heroes (photo or solid dark) are always dark: script headline reads white */
.c-hero:not(.c-hero--minimal) h1,
.c-hero:not(.c-hero--minimal) h2,
.c-hero:not(.c-hero--minimal) .script-heading {
    color: #fff;
}
.c-hero:not(.c-hero--minimal) .eyebrow { color: var(--color-secondary-300); }

/* Wider hero content so the H1 wraps to two lines at most */
.c-hero .c-hero__content { max-width: 1100px; }
.c-hero__subhead { max-width: 44rem; }
.c-hero--center .c-hero__subhead { margin-left: auto; margin-right: auto; }

/* Hero vertical padding matches the section rhythm (120px at desktop) */
.c-hero {
    padding-top: clamp(4rem, 8vw, 7.5rem);
    padding-bottom: clamp(4rem, 8vw, 7.5rem);
}

/* Hero H1 matches the homepage headline size */
.c-hero__headline:not(.c-hero--minimal .c-hero__headline) {
    font-size: var(--text-script-xl);
    line-height: 1;
}

/* All hero eyebrows match the homepage hero eyebrow */
.c-hero__eyebrow {
    opacity: 1;
    color: var(--color-secondary-300);
    font-size: var(--text-sm);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    margin-bottom: var(--space-sm);
}

/* Hero detail/subhead text matches the homepage feature list weight */
.c-hero__subhead {
    opacity: 1;
    font-weight: 600;
    font-size: clamp(1rem, 0.9rem + 0.4vw, 1.25rem);
}


/* Design Kit type hierarchy (Beer Me Design Kit > Font Styles) */
h1 {
    font-family: var(--font-script);
    font-weight: 400;
    font-size: var(--text-script-xl);
    line-height: 1;
    letter-spacing: 0;
    color: var(--color-primary-500);
}
h2 {
    font-family: var(--font-script);
    font-weight: 400;
    font-size: var(--text-script-lg);
    line-height: 1.1;
    letter-spacing: -0.02em;
    color: var(--color-primary-700);
    margin-bottom: 2.5rem;
}
h3 {
    font-weight: 800;
    font-size: clamp(1.5rem, 1.3rem + 0.9vw, 2.25rem);
    line-height: 1.5;
    color: var(--color-secondary-900);
}
h4 {
    font-weight: 800;
    font-size: clamp(1.25rem, 1.15rem + 0.45vw, 1.5rem);
    line-height: 1.5;
    color: var(--color-neutral-700);
}

.script-heading {
    font-family: var(--font-script);
    font-weight: 400;
    font-size: var(--text-script-lg);
    line-height: 1.1;
    letter-spacing: -0.02em;
    margin: 0 0 2.5rem;
}

.eyebrow--gold { color: var(--color-secondary-300); }

.lead-bold {
    font-weight: 800;
    font-size: clamp(1.125rem, 1rem + 0.5vw, 1.375rem);
    line-height: 1.5;
}

.body-lg {
    font-size: clamp(1.0625rem, 1rem + 0.35vw, 1.375rem);
    line-height: 1.5;
}
p.body-lg,
.body-lg p,
.lead-bold {
    margin-bottom: 1.75rem;
}
p.body-lg:last-child,
.body-lg p:last-child,
.lead-bold:last-child,
div.body-lg:last-child { margin-bottom: 0; }

/* ----------------------- BUTTONS ----------------------- */

.btn {
    border-radius: 0;
    border: none;
    font-family: var(--font-sans);
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    font-size: clamp(0.9375rem, 0.85rem + 0.4vw, 1.25rem);
    padding: 1.3em 2.6em;
    gap: 1.2em;
    line-height: 1.2;
}
.btn--primary,
.btn--primary:hover {
    color: #fff;
}
.btn--primary { background: var(--color-secondary-400); }
.btn--primary:hover { background: var(--color-secondary-500); }
.btn--secondary {
    background: var(--color-primary-400);
    color: #fff;
    border: none;
}
.btn--secondary:hover {
    background: var(--color-primary-600);
    color: #fff;
}
.btn--sm { padding: 0.9em 1.6em; font-size: 0.875rem; }

/* Hand-drawn arrow, recolorable via currentColor */
.btn--arrow::after,
.link-script::after {
    content: '';
    display: inline-block;
    width: 2.1em;
    height: 0.7em;
    background: currentColor;
    -webkit-mask: url('../images/home/arrow.svg') no-repeat center / contain;
    mask: url('../images/home/arrow.svg') no-repeat center / contain;
    transition: transform var(--transition);
    flex-shrink: 0;
}
.btn--arrow:hover::after,
.link-script:hover::after { transform: translateX(6px); }
.btn--primary.btn--arrow::after { background: var(--color-secondary-600); }
.btn--secondary.btn--arrow::after { background: var(--color-primary-200); }

.link-script {
    display: inline-flex;
    align-items: center;
    gap: 0.6em;
    font-family: var(--font-script);
    font-size: clamp(1.375rem, 1.2rem + 0.6vw, 1.75rem);
    line-height: 1.3;
    text-decoration: none;
    color: inherit;
}
.link-script::after { width: 1.55em; height: 0.55em; }

/* ----------------------- TOP BAR ----------------------- */

.topbar {
    background: var(--color-primary-900);
    color: #fff;
    position: relative;
    z-index: 101;
}
.topbar__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-lg);
    min-height: 50px;
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
}
.topbar__group {
    display: flex;
    align-items: center;
    gap: clamp(1rem, 3vw, 3rem);
}
.topbar__item {
    display: inline-flex;
    align-items: center;
    gap: 0.65rem;
    color: #fff;
    text-decoration: none;
    font-size: 0.8125rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    white-space: nowrap;
    transition: color var(--transition);
}
.topbar__item img,
.topbar__item svg { width: 20px; height: 20px; }
a.topbar__item:hover { color: var(--color-secondary-300); }
.topbar__group--right { justify-content: flex-end; }
/* Hide the utility nav wrapper when its menu has no items */
.topbar__group--right nav:has(.topbar__menu:empty) { display: none; }

/* Menu items flagged mobile-only appear in the drawer, not the desktop nav */
@media (min-width: 769px) {
    .site-nav__menu > .menu-item--mobile-only { display: none; }
}
.topbar__menu {
    list-style: none;
    display: flex;
    margin: 0;
    padding: 0;
    gap: clamp(1rem, 3vw, 3rem);
}
.topbar__menu a {
    color: #fff;
    text-decoration: none;
    font-size: 0.8125rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    white-space: nowrap;
    transition: color var(--transition);
}
.topbar__menu a:hover { color: var(--color-secondary-300); }

@media (max-width: 640px) {
    .topbar__item--location { display: none; }
    .topbar__inner { flex-wrap: wrap; justify-content: center; gap: 0.35rem 1.25rem; min-height: 0; }
    .topbar__group,
    .topbar__menu { gap: 1.25rem; }
    .topbar__item,
    .topbar__menu a { font-size: 0.6875rem; letter-spacing: 0.08em; }
    .topbar__item img { width: 16px; height: 16px; }
}

/* ----------------------- HEADER ----------------------- */

.site-header {
    background: var(--color-primary-700);
    border-bottom: none;
}
.site-header__inner { height: 88px; }
.site-header__logo { display: inline-flex; }
.site-header__logo img { height: 52px; width: auto; }
.site-nav__menu { gap: clamp(1.25rem, 2.5vw, 3rem); }
.site-nav__menu a {
    color: #fff;
    font-weight: 800;
    font-size: 0.9375rem;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    transition: color var(--transition);
}
.site-nav__menu a:hover { color: var(--color-secondary-300); }
.site-header__toggle span,
.site-header__toggle::before,
.site-header__toggle::after { background: #fff; }
body.scrolled .site-header { box-shadow: 0 2px 16px rgba(0, 0, 0, 0.25); }

/* Homepage: transparent overlay header, centered nav, no logo */
.site-header--overlay {
    position: absolute;
    top: auto;
    left: 0;
    right: 0;
    background: transparent;
    border-bottom: none;
    box-shadow: none !important;
}
.site-header--overlay .site-header__inner {
    justify-content: center;
    height: auto;
    padding-top: clamp(3.75rem, 4.5vw, 4.75rem);
    padding-bottom: 1rem;
}
.site-header--overlay .site-header__logo { display: none; }

@media (max-width:1081px) and (min-width:768px) {
	.site-nav__menu a{
		text-transform:none!important;
		letter-spacing:0;
	}
}

@media (max-width:885px) and (min-width:768px) {
	.site-nav__menu a{
		font-size:.75rem;
	}
}


@media (max-width: 768px) {
    /* Gift Cards / Loyalty Program live in the drawer at these widths */
    .topbar__group--right { display: none; }

    .site-header--overlay .site-header__inner {
        justify-content: flex-end;
        padding-top: 2.5rem;
        padding-bottom: 0.5rem;
    }

    /* Mobile drawer is white: dark links and a dark close icon */
    .site-nav .site-nav__menu a {
        color: var(--color-primary-900);
    }
    .site-nav .site-nav__menu a:hover,
    .site-nav .site-nav__menu a:focus {
        color: var(--color-secondary-500);
    }
    /* Open state: place the X below the top bar (and admin bar) so it stays visible */
    .site-header__toggle[aria-expanded="true"] {
        top: calc(var(--wp-admin--admin-bar--height, 0px) + 4rem);
        right: 1.25rem;
    }
    .site-header__toggle[aria-expanded="true"] span,
    .site-header__toggle[aria-expanded="true"]::before,
    .site-header__toggle[aria-expanded="true"]::after {
        background: var(--color-primary-900);
		z-index: 1;
    }
    /* Drawer: links clear the close icon; tighter vertical rhythm */
    .site-nav { padding-top: calc(var(--wp-admin--admin-bar--height, 0px) + 8rem); }
    .site-nav .site-nav__menu > li > a,
    .site-nav .site-nav__menu > .menu-item-has-children > a {
        padding: 0.875rem 0;
        font-size: 1.125rem;
    }

    /* Tighter stacks on mobile: less air between headings, paragraphs, buttons */
    h2,
    .script-heading { margin-bottom: 1.5rem; }
    p.body-lg,
    .body-lg p,
    .lead-bold { margin-bottom: 1.25rem; }
    .c-tap-showcase__inner { gap: 1.5rem; }
    .c-location-map__panel { gap: 1.25rem; }
    .c-loyalty-banner__content { gap: 1.25rem; }
    .c-feature-media__content .btn { margin-top: 0.75rem; }
    .c-events-feed__footer,
    .c-napkin-reviews__footer { margin-top: 2rem; }
}

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

.c-home-hero {
    position: relative;
    height: 100vh;   /* fallback */
    height: 100svh;  /* never taller than the small viewport */
    min-height: 680px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    color: #fff;
    background: var(--color-primary-900) center / cover no-repeat;
    /* topbar + overlaid header clear the top; flex centers the content in the
       remaining space, so keep the two insets close for true vertical centering */
    padding: 8.5rem 0 3rem;
}
/* While the topbar is visible (>900px) it sits above the hero, so trim its
   50px (.topbar__inner min-height) off the hero: topbar + hero = one viewport */
@media (min-width: 901px) {
    .c-home-hero {
        height: calc(100vh - 50px);   /* fallback */
        height: calc(100svh - 50px);
    }
}
.c-home-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        linear-gradient(180deg, rgba(0, 0, 0, 0.75) 0%, rgba(0, 0, 0, 0) 31%),
        rgba(0, 0, 0, 0.5);
}
.c-home-hero__inner {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.25rem;
}
.c-home-hero .eyebrow {
    color: var(--color-secondary-300);
    font-weight: 700;
    letter-spacing: 0.15em;
    margin-bottom: 0.5rem;
}
.c-home-hero__logo {
    width: min(500px, 78vw);
    height: auto;
    margin-bottom: 0.75rem;
}
.c-home-hero__headline {
    font-family: var(--font-script);
    font-weight: 400;
    font-size: var(--text-script-xl);
    line-height: 1;
    margin: 0;
    color: #fff;
}
.c-home-hero__features {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    margin: 0.5rem 0 1rem;
    padding: 0;
    list-style: none;
}
.c-home-hero__features li {
    padding: 0 1rem;
    font-weight: 600;
    font-size: clamp(1rem, 0.9rem + 0.4vw, 1.25rem);
    border-right: 1px solid rgba(255, 255, 255, 0.3);
}
.c-home-hero__features li:last-child { border-right: none; }

/* ----------------------- EVENTS FEED ----------------------- */

.c-events-feed { padding: clamp(4rem, 8vw, 7.5rem) 0; background: #fff; } /* section rhythm */
.c-events-feed__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-lg);
    flex-wrap: wrap;
}
.c-events-feed .script-heading { color: var(--color-primary-700); margin: 0; }
.c-events-feed__intro { margin: 1.75rem 0 0; max-width: 62rem; }
.c-events-feed__fallback {
    margin: 1.75rem 0 0;
    padding: var(--space-md) var(--space-lg);
    display: inline-block;
    color: var(--color-error-700);
    background: var(--color-error-100);
    border: 1px solid var(--color-error-300);
    border-radius: var(--radius);
}
.c-events-feed__pills {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    list-style: none;
    margin: 0;
    padding: 0;
}
.pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 32px;
    padding: 0 1.6em;
    line-height: 1;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 800;
    white-space: nowrap;
    text-decoration: none;
    transition: filter var(--transition);
}
a.pill:hover { filter: brightness(0.94); }
.is-cream   { --tint: var(--color-secondary-100); --tint-hover: var(--color-secondary-200); --tint-ink: var(--color-secondary-900); --tint-mid: var(--color-secondary-600); }
.is-teal    { --tint: var(--color-primary-100);   --tint-hover: var(--color-primary-200);   --tint-ink: var(--color-primary-900);   --tint-mid: var(--color-primary-600); }
.is-blush   { --tint: var(--color-accent-100);    --tint-hover: var(--color-accent-200);    --tint-ink: var(--color-accent-900);    --tint-mid: var(--color-accent-600); }
.is-rose    { --tint: var(--color-error-200);     --tint-hover: var(--color-error-300);     --tint-ink: var(--color-error-900);     --tint-mid: var(--color-error-700); }
.is-neutral { --tint: var(--color-neutral-200);   --tint-hover: var(--color-neutral-300);   --tint-ink: var(--color-primary-900);   --tint-mid: var(--color-neutral-700); }
.pill { background: var(--tint, var(--color-neutral-200)); color: var(--tint-ink, var(--color-neutral-900)); }

.c-events-feed__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.875rem;
    margin-top: 2.5rem;
    align-items: start;
}
.event-card {
    position: relative;
    display: flex;
    flex-direction: column;
    background: var(--tint, var(--color-secondary-100));
    border: 10px solid var(--tint, var(--color-secondary-100));
    border-radius: 8px;
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.15);
    color: var(--tint-ink, var(--color-secondary-900));
    text-decoration: none;
    min-height: 100%;
    transition: background-color var(--transition), border-color var(--transition);
}
a.event-card:hover {
    background: var(--tint-hover, var(--color-secondary-200));
    border-color: var(--tint-hover, var(--color-secondary-200));
}
.event-card::before {
    content: '';
    position: absolute;
    inset: -10px;
    border-radius: 8px;
    /* Figma stretches the paper texture to ~228% of the card width */
    background: url('/wp-content/uploads/paper-texture.jpg.webp') left center / 230% auto;
    mix-blend-mode: multiply;
    pointer-events: none;
}
.event-card::after {
    content: '';
    position: absolute;
    inset: -10px;
    border: 10px solid var(--tint, var(--color-secondary-100));
    border-radius: 8px;
    z-index: 2;
    pointer-events: none;
    transition: border-color var(--transition);
}
a.event-card:hover::after { border-color: var(--tint-hover, var(--color-secondary-200)); }
.c-events-feed__grid .event-card:nth-child(4n+1) { transform: rotate(-1.2deg); }
.c-events-feed__grid .event-card:nth-child(4n+2) { transform: rotate(1.05deg); }
.c-events-feed__grid .event-card:nth-child(4n+3) { transform: rotate(-0.8deg); }
.c-events-feed__grid .event-card:nth-child(4n+4) { transform: rotate(1.15deg); }
.event-card__image {
    position: relative;
    z-index: 1;
    aspect-ratio: 3 / 2.05;
    overflow: hidden;
    /* Inner-border effect: poster sits inset in the 10px tint frame */
    border-radius: 8px 8px 0 0;
    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.06);
}
.event-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.event-card__body {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding: 1.5rem 1.5rem 1.25rem;
    flex: 1;
}
.event-card__title {
    font-size: clamp(1.25rem, 1.1rem + 0.5vw, 1.625rem);
    font-weight: 800;
    line-height: 1.3;
    margin: 0;
    font-family: var(--font-sans);
    color: inherit;
}
.event-card__subtitle {
    font-size: 0.8125rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    margin: 0;
}
.event-card__date {
    font-size: clamp(1.0625rem, 1rem + 0.3vw, 1.25rem);
    font-weight: 800;
    color: var(--tint-mid, var(--color-secondary-600));
    margin: 0;
}
.event-card .link-script {
    margin-top: auto;
    padding-top: 1.5rem;
    justify-content: space-between;
    width: 100%;
    white-space: nowrap;
    font-size: clamp(1.25rem, 1rem + 0.55vw, 1.75rem);
}
a.event-card:hover .link-script::after { transform: translateX(6px); }
.c-events-feed__footer { margin-top: 3rem; }

@media (max-width: 1024px) {
    .c-events-feed__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
    .c-events-feed__grid { grid-template-columns: 1fr; }
    .c-events-feed__pills { display: none; }
}

/* ----------------------- TAP SHOWCASE ----------------------- */

.c-tap-showcase {
    position: relative;
    color: #fff;
    background: var(--color-primary-900) center / cover no-repeat;
    padding: clamp(4rem, 8vw, 7.5rem) 0 0;
    overflow: hidden;
}
.c-tap-showcase::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        linear-gradient(108deg, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, 0) 61%),
        rgba(0, 0, 0, 0.5);
}
.c-tap-showcase__inner {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 2.5rem;
}
.c-tap-showcase .script-heading { color: #fff; margin: 0; }
.c-tap-showcase__lead { margin: 0; max-width: 44ch; }
.c-tap-showcase__text { margin: 0; max-width: 62ch; }
.c-tap-showcase__flight {
    width: min(1150px, 94%);
    height: auto;
    margin-top: 2rem;
}
.c-tap-showcase__second {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.5rem;
    padding-bottom: clamp(4rem, 7vw, 6rem);
}

/* ----------------------- FEATURE MEDIA (wine / about) ----------------------- */

.c-feature-media {
    position: relative;
    padding: clamp(4rem, 8vw, 7.5rem) 0;
    background: #fff;
}
.c-feature-media--dots::before {
    content: '';
    position: absolute;
    inset: 0;
    background: url('../images/home/red-dots-pattern.svg') center / cover no-repeat;
    pointer-events: none;
}
.c-feature-media__inner {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
    gap: clamp(2.5rem, 6vw, 6rem);
    align-items: center;
}
.c-feature-media--image-left .c-feature-media__inner {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
}
.c-feature-media--image-left .c-feature-media__media { order: -1; }
.c-feature-media .script-heading { color: var(--color-primary-900); }
.c-feature-media--wine .script-heading { color: var(--color-accent-400); }
.c-feature-media__content > p { max-width: 62ch; }
.c-feature-media__content .btn { margin-top: 1.5rem; }
.c-feature-media__media img {
    width: 100%;
    height: auto;
}

@media (max-width: 900px) {
    .c-feature-media__inner,
    .c-feature-media--image-left .c-feature-media__inner { grid-template-columns: 1fr; }
    .c-feature-media__media { order: -1; }
}

/* ----------------------- DRINK OPTIONS ----------------------- */

.c-drink-options {
    background: var(--color-neutral-50);
    padding: clamp(4rem, 8vw, 7.5rem) 0;
    overflow: hidden;
}
.c-drink-options__inner {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
    gap: clamp(2.5rem, 5vw, 5rem);
    align-items: center;
}
.c-drink-options .script-heading { color: var(--color-primary-900); }
.c-drink-options__list {
    list-style: none;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
    margin: 2rem 0 0;
    padding: 0;
}
@media (max-width: 480px) {
    .c-drink-options__list { grid-template-columns: 1fr; }
}
.c-drink-options__list li {
    display: flex;
    align-items: center;
    gap: 1rem;
    background: #fff;
    border-radius: 6px;
    padding: 1.4rem 1.5rem;
    font-weight: 600;
    font-size: clamp(1rem, 0.95rem + 0.25vw, 1.25rem);
}
.c-drink-options__list img {
    width: 34px;
    height: 34px;
    object-fit: contain;
    flex-shrink: 0;
}
.c-drink-options__content .btn { margin-top: 2rem; }
.c-drink-options__media img { width: 100%; height: auto; }

@media (max-width: 900px) {
    .c-drink-options__inner { grid-template-columns: 1fr; }
    .c-drink-options__media { order: -1; max-width: 420px; margin: 0 auto; }
}

/* ----------------------- LOYALTY BANNER ----------------------- */

.c-loyalty-banner {
    padding: 0;
    position: relative;
    z-index: 2; /* ticket overlaps the sections above and below */
}
.c-loyalty-banner__band {
    background: linear-gradient(270deg, var(--color-primary-50) 0%, var(--color-primary-100) 100%);
}
.c-loyalty-banner__inner {
    display: flex;
    align-items: center;
    gap: clamp(2.5rem, 8vw, 9rem);
    flex-wrap: wrap;
    padding-top: 0;
    padding-bottom: 0;
}
.c-loyalty-banner__ticket {
    position: relative;
    width: clamp(260px, 24vw, 355px);
    margin: -1.75rem 0;
    flex-shrink: 0;
}
.c-loyalty-banner__ticket > img { width: 100%; height: auto; display: block; }
.c-loyalty-banner__ticket-label {
    position: absolute;
    inset: 22% 8% auto;
    text-align: center;
    color: #fff;
}
.c-loyalty-banner__ticket-label .script-heading {
    color: #fff;
    font-size: clamp(2.75rem, 2.2rem + 2vw, 4.5rem);
    line-height: 0.95;
    margin: 0 0 0.75rem;
}
.c-loyalty-banner__ticket-label .eyebrow {
    color: var(--color-secondary-300);
    margin: 0;
}
.c-loyalty-banner__content {
    flex: 1;
    min-width: min(100%, 420px);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2rem;
    padding: 3rem 0;
}
.c-loyalty-banner__content p { margin: 0; max-width: 48ch; }

@media (max-width: 700px) {
    .c-loyalty-banner__ticket { margin: -1.75rem auto 0; }
    .c-loyalty-banner__content { padding-top: 1rem; }
}
/* WP Rocket's lazy rendering sets content-visibility:auto on below-fold
   sections; its paint containment clips the ticket's negative-margin
   overhang (overflow:visible can't override containment). Opt out here. */
.c-loyalty-banner[data-wpr-lazyrender] { content-visibility: visible !important; }

/* ----------------------- NAPKIN REVIEWS ----------------------- */

.c-napkin-reviews {
    position: relative;
    color: #fff;
    background: var(--color-primary-900) center / cover no-repeat;
    padding: clamp(4rem, 8vw, 7.5rem) 0;
    overflow: hidden;
}
.c-napkin-reviews::before {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.56);
}
.c-napkin-reviews::after {
    content: '';
    position: absolute;
    top: -2%;
    right: 3%;
    width: min(780px, 47vw);
    aspect-ratio: 886 / 592;
    background: url('/wp-content/uploads/beer-stain.png.webp') center / contain no-repeat;
    mix-blend-mode: color-burn;
    transform: rotate(140.77deg);
    pointer-events: none;
}
.c-napkin-reviews__inner { position: relative; z-index: 1; }
.c-napkin-reviews .script-heading { color: #fff; margin-bottom: 1.5rem; }
.c-napkin-reviews__lead { margin: 0 0 3rem; }
.c-napkin-reviews__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
    align-items: stretch;
}
.napkin {
    position: relative;
    margin: 0;
    background: url('/wp-content/uploads/bar-napkin-isolated.png.webp') center / 100% 100% no-repeat;
    color: var(--color-neutral-900);
    display: flex;
    flex-direction: column;
    aspect-ratio: 491 / 458;
    min-height: 100%;
    padding: 3.25rem 3rem 1.75rem;
    filter: drop-shadow(0 10px 18px rgba(0, 0, 0, 0.35));
}
.c-napkin-reviews__grid .napkin:nth-child(3n+1) { transform: rotate(-1.95deg); }
.c-napkin-reviews__grid .napkin:nth-child(3n+2) { transform: rotate(1.96deg); }
.c-napkin-reviews__grid .napkin:nth-child(3n+3) { transform: rotate(-1.6deg); }
.napkin__stars {
    width: clamp(120px, 41%, 190px);
    height: auto;
    mix-blend-mode: multiply;
    margin-bottom: 1rem;
}
.napkin__quote {
    font-family: var(--font-hand);
    font-size: clamp(1.3rem, 0.75rem + 0.95vw, 1.7rem);
    line-height: 1.3;
    margin: 0;
    /* Emulates the 1px center stroke on the quote text in Figma */
    -webkit-text-stroke: 1px currentColor;
    paint-order: stroke fill;
}
.napkin__meta { margin-top: auto; padding-top: 1.25rem; }
.napkin__name {
    font-family: var(--font-hand);
    font-size: clamp(1.125rem, 1rem + 0.3vw, 1.25rem);
    color: var(--color-primary-400);
    margin: 0;
    text-transform: capitalize;
    -webkit-text-stroke: 1px currentColor;
    paint-order: stroke fill;
}
.napkin__date {
    font-size: 0.8125rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    color: var(--color-secondary-600);
    margin: 0.15rem 0 0;
}
.c-napkin-reviews__footer { margin-top: 3rem; }

@media (max-width: 1200px) {
    .c-napkin-reviews__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 900px) {
    .c-napkin-reviews__grid { grid-template-columns: 1fr; max-width: 480px; margin: 0 auto; }
}
@media (max-width: 420px) {
    /* Scale the handwriting with the napkin on small phones */
    .napkin { padding: 2.5rem 2.25rem 1.5rem; }
    .napkin__quote { font-size: clamp(0.85rem, 5vw, 1.25rem); }
    .napkin__name { font-size: clamp(0.85rem, 4.2vw, 1.125rem); }
}

/* ----------------------- SOCIAL FEED ----------------------- */

.c-social-feed {
    position: relative;
    padding: clamp(4rem, 8vw, 7.5rem) 0;
}
.c-social-feed--bg-white { background: #fff; }
.c-social-feed--bg-light { background: var(--color-bg-light); }
.c-social-feed--bg-brand { background: var(--color-brand); color: #fff; }
.c-social-feed--bg-dark { background: var(--color-bg-dark); color: #fff; }
.c-social-feed--bg-brand .script-heading,
.c-social-feed--bg-dark .script-heading,
.c-social-feed--bg-image .script-heading { color: #fff; }
.c-social-feed--bg-brand .c-social-feed__note,
.c-social-feed--bg-dark .c-social-feed__note,
.c-social-feed--bg-image .c-social-feed__note { color: rgba(255, 255, 255, 0.75); }
.c-social-feed--bg-brand .c-social-feed__placeholder,
.c-social-feed--bg-dark .c-social-feed__placeholder,
.c-social-feed--bg-image .c-social-feed__placeholder {
    border-color: rgba(255, 255, 255, 0.35);
    color: rgba(255, 255, 255, 0.8);
}
.c-social-feed--bg-brand .c-social-feed__placeholder code,
.c-social-feed--bg-dark .c-social-feed__placeholder code,
.c-social-feed--bg-image .c-social-feed__placeholder code {
    background: rgba(255, 255, 255, 0.12);
    color: #fff;
}
.c-social-feed .script-heading { color: var(--color-primary-900); margin-bottom: 2.5rem; }
.c-social-feed__placeholder {
    border: 2px dashed var(--color-neutral-200);
    border-radius: 8px;
    padding: 3rem 2rem;
    text-align: center;
    color: var(--color-neutral-500);
}
.c-social-feed__placeholder code {
    display: inline-block;
    font-size: 1rem;
    background: var(--color-neutral-50);
    padding: 0.35rem 0.85rem;
    border-radius: 4px;
    margin-bottom: 0.75rem;
}
.c-social-feed__placeholder p { margin: 0; font-size: 0.9375rem; }
.c-social-feed__intro { margin: -1.25rem 0 2rem; }
.c-social-feed__note {
    margin: 1rem 0 0;
    font-size: 0.8125rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--color-neutral-500);
}

/* ----------------------- LOCATION MAP ----------------------- */

.c-location-map {
    position: relative;
    background: var(--color-primary-700) center / cover no-repeat;
    color: #fff;
    padding: clamp(4rem, 7vw, 6.5rem) 0;
    overflow: hidden;
}
/* Combined map+pin artwork is a 1660x750 export of this section */
.c-location-map { background-size: cover; }
.c-location-map__panel {
    position: relative;
    background: rgba(3, 26, 24, 0.8);
    -webkit-backdrop-filter: blur(5px);
    backdrop-filter: blur(5px);
    --map-bleed: calc((100vw - min(100vw, var(--container-max))) / 2 + var(--gutter));
    margin-left: calc(-1 * var(--map-bleed));
    max-width: calc(866px + var(--map-bleed));
    padding: clamp(2rem, 5vw, 4.5rem) clamp(1.5rem, 4vw, 3.5rem);
    padding-left: calc(var(--map-bleed) + clamp(1.5rem, 2vw, 2rem));
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2rem;
}
.c-location-map .script-heading { color: #fff; margin: 0; }
.c-location-map__panel > p { margin: 0; max-width: 50rem; }
.c-location-map__hours {
    display: flex;
    flex-wrap: wrap;
    gap: 1.5rem 2.5rem;
    margin: 0.5rem 0 1rem;
    padding: 0;
    list-style: none;
}
.c-location-map__hours .day {
    display: block;
    font-size: 0.8125rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    color: var(--color-secondary-300);
}
.c-location-map__hours .time {
    display: block;
    font-size: 0.8125rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    color: #fff;
}
.c-location-map__phone {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    text-decoration: none;
    color: #fff;
    transition: color var(--transition);
}
.c-location-map__phone:hover { color: var(--color-secondary-300); }
.c-location-map__phone-label {
    font-size: 0.8125rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    color: var(--color-secondary-300);
}
.c-location-map__phone-number {
    font-weight: 800;
    font-size: clamp(1.125rem, 1rem + 0.4vw, 1.375rem);
}
.c-location-map__social {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    color: var(--color-primary-100);
}
.c-location-map__social a {
    color: inherit;
    display: inline-flex;
    align-items: center;
    transition: color var(--transition);
}
.c-location-map__social a:hover { color: var(--color-secondary-300); }
.c-location-map__social svg { width: 36px; height: 36px; }
.c-location-map__social img,
.c-location-map__social picture { width: auto; height: 36px; max-width: none; display: block; }
.c-location-map__social-link--untappd img { height: 48px; }

.c-location-map__pin {
    position: absolute;
    right: clamp(6rem, 21vw, 25rem);
    top: 42%;
    width: clamp(90px, 10vw, 150px);
    height: clamp(108px, 12vw, 180px);
    background: url('../images/home/map-pin.svg') top center / 100% auto no-repeat;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding-top: clamp(24px, 2.7vw, 42px);
}
.c-location-map__pin img { width: 62%; height: auto; }

@media (max-width: 900px) {
    .c-location-map__pin { display: none; }
}

/* ----------------------- FOOTER ----------------------- */

.site-footer {
    background: var(--color-bg-footer);
    color: #fff;
}
.site-footer a { color: #fff; text-decoration: none; transition: color var(--transition); }
.site-footer a:hover { color: var(--color-secondary-300); }
.site-footer__inner {
    display: flex;
    flex-wrap: wrap;
    gap: clamp(2rem, 5vw, 5rem);
    padding-top: clamp(3rem, 6vw, 4.5rem);
    padding-bottom: clamp(2.5rem, 5vw, 4rem);
}
.site-footer__brand {
    flex: 0 1 340px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 1.5rem;
}
.site-footer__logo img { width: min(280px, 70vw); height: auto; }
.site-footer__contact {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    margin: 0;
}
.site-footer__contact .site-footer__contact-item { margin: 0; }
.site-footer__contact-item {
    display: flex;
    align-items: flex-start;
    gap: 1.25rem;
    font-weight: 800;
    font-size: clamp(1rem, 0.95rem + 0.25vw, 1.25rem);
    line-height: 1.5;
    color: #fff;
}
.site-footer__contact-item svg,
.site-footer__contact-icon {
    width: 25px;
    height: auto;
    color: var(--color-secondary-300);
    margin-top: 0.2em;
    flex-shrink: 0;
}
.site-footer__social {
    display: flex;
    align-items: center;
    gap: 1.75rem;
    margin-top: 0.5rem;
    color: var(--color-primary-100);
}
.site-footer__social a {
    color: inherit;
    display: inline-flex;
    align-items: center;
    width: auto;
    height: auto;
    background: transparent;
    border-radius: 0;
}
.site-footer__social a:hover {
    color: var(--color-secondary-300);
    background: transparent;
}
.site-footer__social svg { width: 42px; height: 42px; transition: color var(--transition); }
/* Imagify wraps custom icons in <picture class="site-footer__social-icon">;
   neutralize the theme's legacy 20px sizing on that class */
.site-footer__social .site-footer__social-icon {
    width: auto;
    height: auto;
    display: block;
}
.site-footer__social a img {
    width: auto;
    height: 42px;
    max-width: none;
    border-radius: 0;
    transition: opacity var(--transition);
}
.site-footer__social a.site-footer__social-link--untappd img { width: 4.79413rem; height: 3.6755rem; }
.site-footer__social a:hover img { opacity: 0.7; }
.site-footer__columns {
    display: flex;
    flex: 1 1 520px;
    gap: clamp(2rem, 5vw, 5rem);
}
.site-footer__col-title {
    font-family: var(--font-script);
    font-weight: 400;
    font-size: 2rem;
    margin: 0 0 1.25rem;
    color: #fff;
}
.site-footer__menu {
    list-style: none;
    margin: 0;
    padding: 0;
    columns: 2;
    column-gap: clamp(2.5rem, 4.5vw, 4.5rem);
}
.site-footer__menu li {
    margin-bottom: 1.25rem;
    break-inside: avoid;
    white-space: nowrap;
    font-size: clamp(1rem, 0.95rem + 0.2vw, 1.25rem);
}
/* Narrower desktops: single column per menu so nowrap links never collide */
@media (max-width: 1280px) {
    .site-footer__menu { columns: 1; }
}
.site-footer__bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-lg);
    flex-wrap: wrap;
    border-top: none;
    padding-top: 1.25rem;
    padding-bottom: 1.5rem;
    color: #fff;
    font-size: 0.75rem;
    line-height: 2;
}
.site-footer__bottom a,
.site-footer__bottom-menu a,
.site-footer__credits a { color: #fff; }
.site-footer__bottom a:hover,
.site-footer__bottom-menu a:hover,
.site-footer__credits a:hover { color: var(--color-secondary-300); }
.site-footer__bottom-left {
    display: flex;
    align-items: center;
    gap: 2.75rem;
    flex-wrap: wrap;
}
.site-footer__copyright { margin: 0; }
.site-footer__bottom-menu {
    list-style: none;
    display: flex;
    gap: 2.75rem;
    margin: 0;
    padding: 0;
}
.site-footer__credits { margin: 0; }
.site-footer__credits a { text-decoration: underline; }

@media (max-width: 768px) {
    .site-footer__columns { flex-direction: column; gap: 2rem; }
    .site-footer__menu { columns: 1; }
    .site-footer__menu li { margin-bottom: 0.875rem; }
    .site-footer__col-title { margin-bottom: 1rem; }
    .site-footer__inner {
        padding-top: 2.5rem;
        padding-bottom: 1rem;
        gap: 2rem;
    }
    .site-footer__bottom {
        margin-top: 0.5rem;
        padding-top: 0.75rem;
        padding-bottom: 1.25rem;
        gap: 0.5rem 1.5rem;
    }
    .site-footer__bottom-left { gap: 0.5rem 1.5rem; }
}

/* ----------------------- GRAVITY FORMS (brand) ----------------------- */

.gform_wrapper.gravity-theme .gfield_label,
.gform_wrapper label.gfield_label,
.gform_wrapper .gform-field-label {
    font-weight: 700;
    color: var(--color-neutral-900);
}
.gform_wrapper .gfield_required,
.gform_wrapper .gfield_required_text {
    color: var(--color-accent-400) !important;
}
.gform_wrapper input[type="text"],
.gform_wrapper input[type="email"],
.gform_wrapper input[type="tel"],
.gform_wrapper textarea,
.gform_wrapper select {
    border: 1px solid var(--color-neutral-200) !important;
    border-radius: 4px !important;
    background: #fff !important;
    transition: border-color var(--transition), box-shadow var(--transition);
}
.gform_wrapper input:focus,
.gform_wrapper textarea:focus,
.gform_wrapper select:focus {
    border-color: var(--color-primary-400) !important;
    box-shadow: 0 0 0 2px rgba(20, 90, 85, 0.18) !important;
    outline: none;
}
.gform_wrapper input[type="submit"],
.gform_wrapper button[type="submit"],
.gform_wrapper .gform_button {
    background: var(--color-secondary-400) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 0 !important;
    font-family: var(--font-sans) !important;
    font-weight: 800 !important;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    font-size: 1rem !important;
    padding: 1.1em 2.6em !important;
    cursor: pointer;
    transition: background-color var(--transition) !important;
}
.gform_wrapper input[type="submit"]:hover,
.gform_wrapper button[type="submit"]:hover,
.gform_wrapper .gform_button:hover {
    background: var(--color-secondary-500) !important;
}

/* ----------------------- AGE GATE ----------------------- */

html.age-gate-open { overflow: hidden; }
.age-gate {
    position: fixed;
    inset: 0;
    z-index: 10000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.5rem;
    background: rgba(3, 26, 24, 0.88);
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
}
.age-gate__panel {
    background: #fff;
    max-width: 34rem;
    width: 100%;
    padding: clamp(2rem, 5vw, 3.5rem) clamp(1.5rem, 4vw, 3rem);
    border-radius: 8px;
    text-align: center;
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.45);
}
.age-gate__title {
    color: var(--color-primary-700);
    font-size: clamp(2rem, 1.6rem + 1.6vw, 3rem);
    margin-bottom: 1.25rem;
}
.age-gate__text {
    font-size: 1rem;
    color: var(--color-neutral-900);
    margin-bottom: 1.75rem;
}
.age-gate__form {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.75rem;
}
.age-gate__form select {
    font-family: var(--font-sans);
    font-size: 1rem;
    font-weight: 600;
    color: var(--color-neutral-900);
    padding: 0.7rem 2.2rem 0.7rem 1rem;
    border: 1px solid var(--color-neutral-200);
    border-radius: 4px;
    background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%2309322f' stroke-width='2'/%3E%3C/svg%3E") no-repeat right 0.9rem center;
    appearance: none;
    -webkit-appearance: none;
    cursor: pointer;
    transition: border-color var(--transition);
}
.age-gate__form select:focus {
    outline: none;
    border-color: var(--color-primary-400);
    box-shadow: 0 0 0 2px rgba(20, 90, 85, 0.18);
}
.age-gate__form .btn {
    flex-basis: 100%;
    justify-content: center;
    margin-top: 1rem;
}
.age-gate__error {
    flex-basis: 100%;
    margin: 0.5rem 0 0;
    font-weight: 700;
    color: var(--color-accent-400);
}

/* ----------------------- UNTAPPD EMBED (brand) ----------------------- */
/* The embed injects inline colors from the Untappd dashboard; scoped
   !important overrides re-skin the tabs and menu header to brand. */

.c-social-feed__embed .menu-nav {
    background: var(--color-primary-700) !important; /* matches the site header green */
    border-color: rgba(255, 255, 255, 0.3) !important;
}
.c-social-feed__embed .menu-nav .menu-list-item + .menu-list-item {
    border-left: 1px solid rgba(255, 255, 255, 0.3);
}
.c-social-feed__embed .tab-anchor {
    color: #fff !important;
    opacity: 0.8;
    font-family: var(--font-sans) !important;
    font-weight: 700;
    border-bottom-color: transparent !important;
    transition: opacity var(--transition);
}
.c-social-feed__embed .tab-anchor:hover { opacity: 1; }
.c-social-feed__embed .tab-anchor.active {
    opacity: 1;
    position: relative;
    border-bottom-color: #fff !important;
}
/* Decorative pointer under the active tab, joined to its white underline */
.c-social-feed__embed .tab-anchor.active::after {
    content: '';
    position: absolute;
    left: 50%;
    bottom: -9px;
    transform: translateX(-50%);
    border-left: 8px solid transparent;
    border-right: 8px solid transparent;
    border-top: 9px solid #fff;
    z-index: 2;
    pointer-events: none;
}
.c-social-feed__embed .menu-info {
    background: var(--color-secondary-500) !important;
    border-color: rgba(255, 255, 255, 0.3) !important;
}
.c-social-feed__embed .menu-info .menu-title {
    color: #fff !important;
    font-family: var(--font-sans) !important;
    font-weight: 800 !important;
    font-style: normal !important;
    text-transform: capitalize !important;
    letter-spacing: 0 !important;
}
.c-social-feed__embed .menu-info .date-time {
    color: rgba(255, 255, 255, 0.85) !important;
}

/* CTA: let a two-button row escape the narrow copy column (stays centered, still wraps on small screens) */
.c-cta--center { overflow-x: clip; } /* the full-width button row must not add horizontal scroll */
.c-cta--center .c-cta__buttons {
    /* span the full viewport, centered on the (already centered) copy column */
    width: 100vw;
    margin-inline: calc(50% - 50vw); /* symmetric: parent is a centered flex column */
    padding-inline: var(--space-md);
    justify-content: center;
}
@media (max-width: 768px) {
    .c-cta--center .c-cta__buttons {
        width: auto;
        margin-inline: 0;
        padding-inline: 0;
    }
}

/* Utility: light neutral section background (use via Custom Class) */
.bg-light { background-color: var(--color-neutral-50); }
.bg-primary-800 { background-color: var(--color-primary-800); }
.bg-primary-900 { background-color: var(--color-primary-900); }

/* "Small" hero = shortest: no viewport min-height, just the shared section rhythm padding */
.c-hero--h-small { min-height: 0; }

/* FAQ questions match the H3 treatment (Montserrat 800, gold-brown) at a row-friendly size */
.c-accordion__trigger {
    font-family: var(--font-sans);
    font-weight: 800;
    font-size: clamp(1.25rem, 1.15rem + 0.45vw, 1.5rem);
    line-height: 1.4;
    color: var(--color-secondary-900);
    text-align: left;
}


/* Accordion: animated open/close (grid-rows keeps it height-agnostic) */
.c-accordion__panel {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 350ms cubic-bezier(0.4, 0, 0.2, 1);
}
.c-accordion__panel > .c-accordion__content {
    overflow: hidden;
    min-height: 0;
    opacity: 0;
    transition: opacity 250ms ease 50ms;
}
.c-accordion__item.is-open .c-accordion__panel { grid-template-rows: 1fr; }
.c-accordion__item.is-open .c-accordion__panel > .c-accordion__content { opacity: 1; }
@media (prefers-reduced-motion: reduce) {
    .c-accordion__panel,
    .c-accordion__panel > .c-accordion__content { transition: none; }
}

.c-accordion__panel[hidden] { display: none; } /* the display:grid rule must not defeat the hidden attribute */

/* Tinted cards: same color coding as .pill / .event-card (is-cream, is-teal, ...) */
.c-card[class*="is-"] {
    background: var(--tint);
    border: 1px solid var(--tint-hover); /* one shade darker than the tint background */
    box-shadow: none;
    color: var(--tint-ink);
    transition: transform var(--transition), background-color var(--transition), border-color var(--transition), box-shadow var(--transition);
}
.c-card[class*="is-"] .c-card__title { color: var(--tint-ink); }
.c-card[class*="is-"] .c-card__desc { color: var(--tint-ink); opacity: 0.75; }
.c-card[class*="is-"] .c-card__link { color: var(--tint-ink); }
a.c-card[class*="is-"]:hover { background: var(--tint-hover); border-color: var(--tint-mid); box-shadow: var(--shadow); }
/* Tighter title-to-link spacing on tinted cards (no description between them) */
.c-card[class*="is-"] .c-card__title { margin-bottom: 0; }
.c-card[class*="is-"] .c-card__link { margin-top: var(--space-sm); }

/* Card links carry the shared hand-drawn arrow (same SVG as buttons / event cards) */
.c-card__link::after {
    content: '';
    display: inline-block;
    width: 2.1em;
    height: 0.7em;
    background: currentColor;
    -webkit-mask: url('../images/home/arrow.svg') no-repeat center / contain;
    mask: url('../images/home/arrow.svg') no-repeat center / contain;
    transition: transform var(--transition);
    flex-shrink: 0;
}
a.c-card:hover .c-card__link::after { transform: translateX(6px); }

/* ----------------------- EVENTS CALENDAR + SINGLE EVENT ----------------------- */

.c-events-calendar__empty { color: var(--color-neutral-600); }

/* Tabbed month calendar */
.bm-cal__tabs {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.75rem;
    margin-bottom: var(--space-xl);
}
.bm-cal__tab {
    padding: 0.85em 1.8em;
    border: none;
    border-radius: 999px;
    background: var(--color-neutral-200);
    color: var(--color-primary-900);
    font-family: var(--font-sans);
    font-size: 0.8125rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background-color var(--transition), color var(--transition);
}
.bm-cal__tab:hover { background: var(--color-neutral-300, #a3aead); }
.bm-cal__tab.is-active { background: var(--color-primary-700); color: #fff; }

.bm-cal__month { display: none; }
.bm-cal__month.is-active { display: block; }

.bm-cal__head,
.bm-cal__body { display: grid; grid-template-columns: repeat(7, 1fr); }
.bm-cal__head {
    border: 1px solid var(--color-neutral-100);
    border-bottom: none;
    background: var(--color-neutral-50);
}
.bm-cal__head-cell {
    padding: 0.9em 0.5em;
    text-align: center;
    font-size: 0.75rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--color-primary-900);
}
.bm-cal__body {
    gap: 1px;
    background: var(--color-neutral-100);
    border: 1px solid var(--color-neutral-100);
}
.bm-cal__day {
    min-height: 8.25rem;
    padding: 0.6rem;
    background: #fff;
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}
.bm-cal__day--empty,
.bm-cal__day--past { background: var(--color-neutral-50); }
.bm-cal__day--past .bm-cal__num { color: var(--color-neutral-400, #8a9492); }
.bm-cal__day--today { box-shadow: inset 0 0 0 2px var(--color-secondary-500); }
.bm-cal__num {
    font-size: 0.8125rem;
    font-weight: 800;
    color: var(--color-primary-900);
}
.bm-cal__day-label { display: none; }

.bm-cal__event {
    display: block;
    padding: 0.5rem 0.6rem;
    border-radius: 6px;
    border: 1px solid var(--tint-hover); /* one shade darker than the tint, like the type cards */
    background: var(--tint);
    color: var(--tint-ink);
    text-decoration: none;
    transition: filter var(--transition), transform var(--transition);
}
.bm-cal__event:hover { filter: brightness(0.96); transform: translateY(-1px); }
.bm-cal__event-title {
    display: block;
    font-size: 0.8125rem;
    font-weight: 700;
    line-height: 1.35;
}
.bm-cal__event-time {
    display: block;
    margin-top: 0.15rem;
    font-size: 0.75rem;
    font-weight: 700;
    opacity: 0.75;
}

/* Mobile: collapse to a list of event days */
@media (max-width: 900px) {
    .bm-cal__head { display: none; }
    .bm-cal__body { display: block; border: none; background: none; }
    .bm-cal__day { display: none; }
    .bm-cal__day--has-events {
        display: flex;
        min-height: 0;
        padding: 0;
        margin-bottom: var(--space-lg);
        background: none;
    }
    .bm-cal__day--has-events .bm-cal__num { display: none; }
    .bm-cal__day-label {
        display: block;
        font-weight: 800;
        color: var(--color-primary-900);
    }
    .bm-cal__day--today { box-shadow: none; }
    .bm-cal__event { padding: 0.85rem 1rem; }
    .bm-cal__event-title { font-size: 0.9375rem; }
}

.c-event-single { padding: clamp(4rem, 8vw, 7.5rem) 0; background: #fff; }
.c-event-single__layout {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
    gap: clamp(2rem, 5vw, 5rem);
    align-items: start;
}
.c-event-single__cover { margin: 0; }
.c-event-single__cover img {
    width: 100%;
    height: auto;
    border-radius: var(--radius);
    box-shadow: var(--shadow);
}
.c-event-single__details {
    background: var(--color-neutral-50);
    border: 1px solid var(--color-neutral-100);
    border-radius: var(--radius);
    padding: clamp(1.75rem, 3vw, 2.75rem);
}
.c-event-single__details-title { margin-bottom: var(--space-lg); }
.c-event-single__meta { margin: 0 0 var(--space-xl); }
.c-event-single__meta > div {
    display: grid;
    grid-template-columns: 7rem 1fr;
    gap: var(--space-md);
    padding: var(--space-md) 0;
    border-bottom: 1px solid var(--color-neutral-100);
}
.c-event-single__meta > div:first-child { padding-top: 0; }
.c-event-single__meta dt {
    font-weight: 800;
    color: var(--color-secondary-900);
    text-transform: uppercase;
    font-size: 0.8125rem;
    letter-spacing: 0.06em;
    padding-top: 0.2em;
}
.c-event-single__meta dd { margin: 0; color: var(--color-neutral-700); }
.c-event-single__actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-md); }
.c-event-single__actions .text-link {
    font-weight: 700;
    color: var(--color-primary-700);
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: color var(--transition);
}
.c-event-single__actions .text-link:hover { color: var(--color-primary-400); }
.c-event-single__content { max-width: 46rem; margin-top: clamp(2.5rem, 5vw, 4rem); }
@media (max-width: 900px) {
    .c-event-single__layout { grid-template-columns: 1fr; }
}

/* Single event: breadcrumb eyebrow, paragraph-size details, stacked actions */
.c-event-single__crumbs .rank-math-breadcrumb p { margin: 0; }
.c-event-single__crumbs a {
    color: inherit;
    text-decoration: none;
    transition: color var(--transition);
}
.c-event-single__crumbs a:hover { color: #fff; }
.c-event-single__crumbs .separator { margin: 0 0.5em; opacity: 0.6; }
.c-event-single__meta dd {
    font-size: clamp(1.0625rem, 1rem + 0.35vw, 1.375rem); /* matches .body-lg */
    line-height: 1.5;
}
.c-event-single__meta dt { padding-top: 0.35em; }
.c-event-single__actions { flex-direction: row; align-items: flex-start; gap: var(--space-lg); }
.c-event-single__buttons { display: flex; flex-wrap: wrap; gap: var(--space-md); flex-basis:100%; }

/* Narrow text-blocks (event-subpage intros): standard section alignment, content capped
   at 1000px and flush left (no auto centering) */
.c-text-block .container--narrow { max-width: var(--container-max); }
.c-text-block .container--narrow > * { max-width: 1000px; }
.c-text-block .container--narrow .prose {
    font-size: clamp(1.0625rem, 1rem + 0.35vw, 1.375rem); /* matches .body-lg */
    line-height: 1.5;
}

/* Two white sections back-to-back: the second drops its top padding */
.c-text-block--bg-white + .c-events-feed:not(.bg-light) { padding-top: 0; }

/* Poster-style descriptor cards (Custom Class: cards-poster) — the event-card
   treatment without image/link: tint frame, paper texture, slight tilt */
.c-cards.cards-poster .c-card {
    position: relative;
    background: var(--tint, var(--color-secondary-100));
    border: 10px solid var(--tint, var(--color-secondary-100));
    border-radius: 8px;
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.15);
    color: var(--tint-ink, var(--color-secondary-900));
}
.c-cards.cards-poster .c-card::before {
    content: '';
    position: absolute;
    inset: -10px;
    border-radius: 8px;
    background: url('/wp-content/uploads/paper-texture.jpg.webp') left center / 230% auto;
    mix-blend-mode: multiply;
    pointer-events: none;
}
.c-cards.cards-poster .c-card__title { color: var(--tint-ink); }
.c-cards.cards-poster .c-card__desc { color: var(--tint-ink); opacity: 0.8; font-weight: 700; }
.c-cards.cards-poster .c-cards__grid > *:nth-child(4n+1) { transform: rotate(-1.2deg); }
.c-cards.cards-poster .c-cards__grid > *:nth-child(4n+2) { transform: rotate(1.05deg); }
.c-cards.cards-poster .c-cards__grid > *:nth-child(4n+3) { transform: rotate(-0.8deg); }
.c-cards.cards-poster .c-cards__grid > *:nth-child(4n+4) { transform: rotate(1.15deg); }

/* About page: long story sections read top-aligned, image pinned to the top of the copy */
.page-id-25 .c-feature-media__inner { align-items: start; }

/* Untappd embed: inactive tabs stay clickable but their label text is hidden
   (classes applied by the [untappd_embed] tab script) */
.c-social-feed__embed .tab-anchor.ut-tab-quiet { color: transparent !important; }
/* Hide the embed's tab nav everywhere except the Wine page, where the two
   wine tabs remain as visible navigation */
body:not(.page-id-142) .ut-menu .menu-nav { display: none !important; }

/* Beer-pour CTA (Custom Class: cta-beer): the row's own background image is a
   beer pour anchored top at full-bleed width (100vw), overlay at 0. Its foam
   line sits 26.2vw from the top, so padding-top clears the foam plus the
   normal section rhythm at every viewport width. Below the image (67.7vw
   tall), ::before fades into the image's own bottom amber. */
.c-cta.cta-beer {
    background-color: #ca7a1b;
    background-size: 100% auto !important;
    background-position: top center !important;
    background-repeat: no-repeat !important;
    padding-top: calc(17vw + clamp(4rem, 8vw, 7.5rem)); /* main foam band ends ~17vw down */
}
.c-cta.cta-beer::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, rgba(202, 122, 27, 0) 57vw, #ca7a1b 67.6vw); /* completes at the rendered image's bottom edge (1300/1920 = 67.7vw) */
    pointer-events: none;
}
.c-cta.cta-beer .c-cta__inner { position: relative; z-index: 1; }

/* Content + Media paragraphs at the shared component paragraph size */
.c-content-media p {
    font-size: clamp(1.0625rem, 1rem + 0.35vw, 1.375rem); /* matches .body-lg */
    line-height: 1.5;
}

/* ----------------------- HOME HERO CROSSFADE + ZOOM PULSE ----------------------- */

.c-home-hero { overflow: hidden; }
.c-home-hero::before { z-index: 1; }
.c-home-hero__inner { z-index: 2; }
.c-home-hero__slides {
    position: absolute;
    inset: 0;
    z-index: 0;
    /* zoom pulse lives on the container: one composited layer instead of one
       per slide, and the 6s slide-class toggle never touches the animating
       element (matches the lynxguide breathe effect) */
    animation: bmBreatheZoom 12s cubic-bezier(0.445, 0.05, 0.55, 0.95) infinite;
    will-change: transform;
}
.c-home-hero__slide {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover; /* when the slide is a bare <img> */
    opacity: 0;
    transition: opacity 1.5s ease-in-out;
}
/* Imagify wraps the slide <img> in a <picture> carrying the class */
.c-home-hero__slide img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.c-home-hero__slide.is-active { opacity: 1; }
@keyframes bmBreatheZoom {
    0% { transform: scale(1); }
    50% { transform: scale(1.04); }
    100% { transform: scale(1); }
}
@media (prefers-reduced-motion: reduce) {
    .c-home-hero__slides { animation: none; }
    .c-home-hero__slide { transition: none; }
}

/* ----------------------- RESPONSIVE PASS ----------------------- */

/* 1. Topbar yields once the sticky call CTA is on screen (both hit <=900px) */
@media (max-width: 900px) {
    .topbar { display: none; }
}

/* 3. Nav dropdowns are a mobile-drawer feature only */
@media (min-width: 769px) {
    .site-nav__menu .sub-menu { display: none !important; }
    .site-nav__menu .submenu-toggle { display: none !important; }
    .site-nav__menu > .menu-item-has-children > a::after { display: none; }
}
/* De-emphasized utility links (Gift Cards / Loyalty) at the end of the drawer */
@media (max-width: 768px) {
    .site-nav__menu > li:not(.menu-item--mobile-only) + .menu-item--mobile-only { margin-top: 1.75rem; }
    .site-nav__menu > .menu-item--mobile-only { border-bottom: none; }
    .site-nav__menu > .menu-item--mobile-only > a {
        font-size: 1rem;
        font-weight: 600;
        color: var(--color-neutral-600);
        padding: 0.1rem 0 !important;
        line-height: 1.4;
        text-transform: capitalize;
        letter-spacing: 0.02em;
    }
}

/* 4. Drink options on mobile: six icons 3x2, NA bench full width */
@media (max-width: 768px) {
    .c-drink-options__list { grid-template-columns: repeat(2, 1fr); gap: 0.75rem; } /* 2x3 + full-width NA bench */
    .c-drink-options__list li {
        flex-direction: column;
        justify-content: center;
        text-align: center;
        gap: 0.5rem;
        padding: 1rem 0.5rem;
    }
    .c-drink-options__list li:nth-child(7) {
        grid-column: 1 / -1;
        flex-direction: row;
        gap: 1rem;
        padding: 1.2rem 1rem;
    }
}

/* 5. Event card strips become a swipe carousel with dot nav on mobile */
.c-events-feed__dots { display: none; }
@media (max-width: 600px) {
    .c-events-feed__grid {
        display: flex;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        gap: 1.25rem;
        margin-inline: calc(-1 * var(--gutter));
        padding: 12px var(--gutter);
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
    }
    .c-events-feed__grid::-webkit-scrollbar { display: none; }
    .c-events-feed__grid > * { flex: 0 0 82%; scroll-snap-align: center; }
    .c-events-feed__dots {
        display: flex;
        justify-content: center;
        gap: 0.25rem; /* dot padding supplies most of the spacing + tap area */
        margin-top: 0; /* the grid's bottom padding + dot tap-padding already separate them */
    }
}
/* Dot buttons: fixed 10px circles — the global 44px tap-target min-height must
   not stretch them (the comfortable hit area comes from the padding box) */
.c-events-feed__dots button {
    box-sizing: content-box;
    width: 10px;
    height: 10px;
    min-width: 0;
    min-height: 0;
    padding: 11px;
    border: none;
    border-radius: 50%;
    background: var(--color-neutral-200);
    background-clip: content-box;
    cursor: pointer;
    -webkit-appearance: none;
    appearance: none;
    transition: background-color var(--transition), transform var(--transition);
}
.c-events-feed__dots button.is-active {
    background: var(--color-primary-700);
    background-clip: content-box;
    transform: scale(1.2);
}

/* ----------------------- EVENT CARD FAN-OUT (fan-cards) ----------------------- */
/* Desktop entrance: the four cards wait stacked in the middle of the row
   (first card on top), then fan out to their grid slots on scroll-into-view. */

/* transition exists only for the fan-out itself, so the initial stacking is an
   instant snap (no visible "fan in" when the page loads mid-viewport) */
.c-events-feed.fan-cards.fan-ready.is-fanned .event-card {
    transition: transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
}
.c-events-feed.fan-cards.fan-ready.is-fanned .event-card:nth-child(2) { transition-delay: 0.07s; }
.c-events-feed.fan-cards.fan-ready.is-fanned .event-card:nth-child(3) { transition-delay: 0.14s; }
.c-events-feed.fan-cards.fan-ready.is-fanned .event-card:nth-child(4) { transition-delay: 0.21s; }
.c-events-feed.fan-cards.fan-ready .event-card:nth-child(1) { z-index: 4; }
.c-events-feed.fan-cards.fan-ready .event-card:nth-child(2) { z-index: 3; }
.c-events-feed.fan-cards.fan-ready .event-card:nth-child(3) { z-index: 2; }
.c-events-feed.fan-cards.fan-ready .event-card:nth-child(4) { z-index: 1; }

/* Stacked (pre-fan) positions: translate each card to the row's center.
   Offsets are in card-widths plus the grid gap (1.875rem). */
/* Stack sits on the FIRST card's slot; the others fan out to the right */
@media (min-width: 1025px) {
    .fan-cards.fan-ready:not(.is-fanned) .c-events-feed__grid .event-card:nth-child(2) { transform: translateX(calc((100% + 1.875rem) * -1)) rotate(1.05deg); }
    .fan-cards.fan-ready:not(.is-fanned) .c-events-feed__grid .event-card:nth-child(3) { transform: translateX(calc((100% + 1.875rem) * -2)) rotate(-0.8deg); }
    .fan-cards.fan-ready:not(.is-fanned) .c-events-feed__grid .event-card:nth-child(4) { transform: translateX(calc((100% + 1.875rem) * -3)) rotate(1.15deg); }
}
/* Tablet 2x2 grid: everything stacks on the first slot (top-left) */
@media (min-width: 601px) and (max-width: 1024px) {
    .fan-cards.fan-ready:not(.is-fanned) .c-events-feed__grid .event-card:nth-child(2) { transform: translateX(calc((100% + 1.875rem) * -1)) rotate(1.05deg); }
    .fan-cards.fan-ready:not(.is-fanned) .c-events-feed__grid .event-card:nth-child(3) { transform: translateY(calc((100% + 1.875rem) * -1)) rotate(-0.8deg); }
    .fan-cards.fan-ready:not(.is-fanned) .c-events-feed__grid .event-card:nth-child(4) { transform: translate(calc((100% + 1.875rem) * -1), calc((100% + 1.875rem) * -1)) rotate(1.15deg); }
}

/* Homepage hero on mobile: equal vertical padding = truly centered content */
@media (max-width: 768px) {
    .c-home-hero { padding: 7rem 0; }
}

/* Napkins settle into their tilt on scroll: staged flat, then rotate in
   sequence to the resting angles (transition exists only for the settle,
   so the staged flat state snaps with no reverse animation on load) */
.c-napkin-reviews.tilt-ready:not(.is-tilted) .c-napkin-reviews__grid .napkin { transform: rotate(0deg); }
.c-napkin-reviews.tilt-ready.is-tilted .napkin {
    transition: transform 0.7s cubic-bezier(0.34, 1.56, 0.64, 1) 0.25s; /* slight overshoot, beat before the first tilt */
}
.c-napkin-reviews.tilt-ready.is-tilted .napkin:nth-child(2) { transition-delay: 0.43s; }
.c-napkin-reviews.tilt-ready.is-tilted .napkin:nth-child(3) { transition-delay: 0.61s; }
@media (prefers-reduced-motion: reduce) {
    .c-napkin-reviews .napkin { transition: none; }
}

/* ----------------------- FACEBOOK FEED CARDS ----------------------- */

.fb-feed__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 1.5rem;
    align-items: start;
}
.fb-feed__item {
    /* relative so absolutely-positioned .sr-only spans anchor inside the
       card; unanchored they escape the mobile carousel's scroll container
       at their static positions and widen the whole page (homepage
       horizontal-scroll bug) */
    position: relative;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 2px 8px rgba(0, 0, 0, 0.06);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}
.fb-feed__head {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.9rem 1rem 0.5rem;
}
.fb-feed__avatar {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
}
.fb-feed__meta { display: flex; flex-direction: column; min-width: 0; }
.fb-feed__page {
    font-size: 0.9375rem;
    font-weight: 700;
    color: var(--color-neutral-900);
    line-height: 1.3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.fb-feed__date { font-size: 0.8125rem; color: #65676b; line-height: 1.4; }
.fb-feed__badge {
    margin-left: auto;
    color: #1877f2;
    flex-shrink: 0;
}
.fb-feed__badge svg { width: 22px; height: 22px; display: block; }
.fb-feed__text {
    padding: 0.25rem 1rem 0.9rem;
    font-size: 0.9375rem;
    line-height: 1.5;
    color: var(--color-neutral-900);
}
.fb-feed__text p { margin: 0 0 0.6em; }
.fb-feed__text p:last-child { margin-bottom: 0; }
.fb-feed__media { display: block; }
.fb-feed__image {
    width: 100%;
    height: auto;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    display: block;
}
.fb-feed__foot {
    margin-top: auto;
    padding: 0.65rem 1rem;
    border-top: 1px solid #e4e6eb;
}
.fb-feed__link {
    font-size: 0.9375rem;
    font-weight: 700;
    color: #1877f2;
    text-decoration: none;
    transition: color var(--transition);
}
.fb-feed__link:hover { color: #0f5ec7; text-decoration: underline; }

/* Mobile: swipe carousel with Facebook-blue dot nav */
.fb-feed__dots { display: none; }
@media (max-width: 600px) {
    .fb-feed__list {
        display: flex;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        gap: 1rem;
        margin-inline: calc(-1 * var(--gutter));
        padding: 4px var(--gutter) 12px;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
    }
    .fb-feed__list::-webkit-scrollbar { display: none; }
    .fb-feed__list > * { flex: 0 0 85%; scroll-snap-align: center; }
    .fb-feed__dots {
        display: flex;
        justify-content: center;
        gap: 0.25rem;
        margin-top: 0;
    }
}
.fb-feed__dots button {
    box-sizing: content-box;
    width: 10px;
    height: 10px;
    min-width: 0;
    min-height: 0;
    padding: 11px;
    border: none;
    border-radius: 50%;
    background: var(--color-neutral-200);
    background-clip: content-box;
    cursor: pointer;
    -webkit-appearance: none;
    appearance: none;
    transition: background-color var(--transition), transform var(--transition);
}
.fb-feed__dots button.is-active {
    background: #1877f2; /* Facebook blue */
    background-clip: content-box;
    transform: scale(1.2);
}

/* Feature + Media picture frames: the media box takes the frame art's
   875x615 aspect (its opening is 768x511) and the frame PNG overlays it.
   The photo box is inset so its edges tuck under the frame border on all
   three frames. Crossfade slides stack inside the photo box — 3s per
   image, 500ms crossfade (script in the component). Imagify may wrap the
   imgs in <picture>, relocating classes onto the wrapper. */
.c-feature-media__media--framed {
	position: relative;
    aspect-ratio: 875 / 615;
    transform: rotate(3deg);
    box-shadow: 15px 12px 18px 17px rgba(0, 0, 0, 0.3);
}
.c-feature-media__media--framed::after {
    content: '';
    position: absolute;
    inset: -32px;
    background: center / 100% 100% no-repeat;
    pointer-events: none;
}
.c-feature-media__media--framed.is-frame-oak::after { background-image: url('/wp-content/uploads/frame-oak.png.webp'); }
.c-feature-media__media--framed.is-frame-rustic::after { background-image: url('/wp-content/uploads/frame-rustic.png.webp'); }
.c-feature-media__media--framed.is-frame-whitewash::after { background-image: url('/wp-content/uploads/frame-whitewash.png.webp'); }
.c-feature-media__photo {
    position: absolute;
    inset: 0;
    overflow: hidden;
}
.c-feature-media--image-left .c-feature-media__media--framed {
    transform: rotate(-1deg);
    box-shadow: -20px 17px 15px 20px rgba(0, 0, 0, 0.3);
}
.c-feature-media__photo img,
.c-feature-media__photo picture {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.c-feature-media__photo picture img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.c-feature-media__photo .fm-slide {
    opacity: 0;
    transition: opacity 0.5s ease-in-out;
}
.c-feature-media__photo .fm-slide.is-active { opacity: 1; }
@media only screen and (max-width:767px) {
	.c-feature-media__media--framed {
		margin: 0 24px 20px;
	}
	.c-feature-media__media--framed::after {
    	inset: -24px;
	}
	.c-feature-media__media--framed {
		box-shadow: 3px 6px 9px 20px rgba(0, 0, 0, 0.3);
	}
	.c-feature-media--image-left .c-feature-media__media--framed {
		box-shadow: -13px 11px 10px 5px rgba(0, 0, 0, 0.3);
	}
}
@media (prefers-reduced-motion: reduce) {
    .c-feature-media__photo .fm-slide { transition: none; }
}

/* Mobile: buttons that stretch full width keep their label left-aligned
   (shrink-wrapped buttons are unaffected — content already sits left). */
@media (max-width: 768px) {
    .btn,
    a.btn,
    .site-nav__actions > a.btn,
    .gform_wrapper input[type="submit"],
    .gform_wrapper button[type="submit"],
    .gform_wrapper .gform_button {
        justify-content: flex-start;
        text-align: left;
    }
}
