/* =================================================================
   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: 'Oswald';
    src: url('../fonts/oswald.woff2') format('woff2');
    font-weight: 200 700;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Public Sans';
    src: url('../fonts/public-sans.woff2') format('woff2');
    font-weight: 100 900;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Public Sans';
    src: url('../fonts/public-sans-italic.woff2') format('woff2');
    font-weight: 100 900;
    font-style: italic;
    font-display: swap;
}


/* =================================================================
   TOKENS - Fate Community Theatre
   =================================================================
   The site is a proscenium, not a brochure.
   Stage Ink is the house. Cream is the light. Curtain Red is the
   curtain, used at arrival and never as wallpaper. Gold does one
   job - money and membership - so when it appears it means something.

   Proportion target per screen: ~70% ink/paper, ~20% red, <10% gold.
   ================================================================= */

:root {
    /* ---- Brand palette (source: design brief 2026-08-31) ---- */
    --color-ink:          #14100E;  /* Stage Ink - warm near-black, primary ground */
    --color-ink-deep:     #0E0B0A;  /* Recessed wells, image mattes */
    --color-panel:        #1B1614;  /* Raised card surface on ink */
    --color-red:          #7E0409;  /* Curtain Red - cream on it 10.53:1 */
    --color-red-hover:    #9A0910;
    --color-gold:         #C38824;  /* Accent only - never body type on red or cream */
    --color-gold-lift:    #CE9A3C;  /* Gold type on ink - 7.49:1 */
    --color-cream:        #FFFCD1;  /* Display + UI text on dark - 18.10:1 on ink */
    --color-paper:        #F7F1E3;  /* Long-form reading surface */

    --color-cream-rgb:    255, 252, 209;
    --color-ink-rgb:      20, 16, 14;

    /* Hairlines - cream at low alpha reads warmer than grey */
    --color-line:         rgba(255, 252, 209, 0.14);
    --color-line-strong:  rgba(255, 252, 209, 0.30);
    --color-line-ink:     rgba(20, 16, 14, 0.18);

    /* Muted cream text steps */
    --color-cream-80:     rgba(255, 252, 209, 0.80);
    --color-cream-72:     rgba(255, 252, 209, 0.72);
    --color-cream-60:     rgba(255, 252, 209, 0.60);
    --color-cream-45:     rgba(255, 252, 209, 0.55);  /* 0.45 measured 4.38:1 on ink */

    /* ---- Production accents (sampled from the Lady Windermere poster) ----
       Per-production theming and program categories. Not brand colors. */
    --color-prod-blue:    #8EB8DA;
    --color-prod-sage:    #B7D2B9;
    --color-prod-teal:    #77B9BA;
    --color-prod-pink:    #DDA7CA;
    --color-prod-deep:    #46606A;
    --color-prod-lime:    #E3FFC0;

    /* ---- Legacy scales, remapped ----
       Neutral ramp is INVERTED for a dark ground: 50 = darkest, 900 = lightest.
       Existing component CSS reads these names, so remapping cascades. */
    --color-neutral-50:  #14100E;
    --color-neutral-100: #1B1614;
    --color-neutral-200: #241D19;
    --color-neutral-300: #3A2F28;
    --color-neutral-400: #9A8F7C;
    --color-neutral-500: #B0A692;
    --color-neutral-600: #C6BDA8;
    --color-neutral-700: #D6CFB5;
    --color-neutral-800: #EFE9C6;
    --color-neutral-900: #FFFCD1;

    --color-primary-50:  #2A0507;
    --color-primary-100: #3E0508;
    --color-primary-200: #520408;
    --color-primary-300: #660408;
    --color-primary-400: #7E0409;
    --color-primary-500: #7E0409;
    --color-primary-600: #9A0910;
    --color-primary-700: #B31018;
    --color-primary-800: #C9202A;
    --color-primary-900: #E04A52;

    --color-secondary-50:  #1A1509;
    --color-secondary-100: #2E2411;
    --color-secondary-200: #46360F;
    --color-secondary-300: #6B520F;
    --color-secondary-400: #9A6C1A;
    --color-secondary-500: #C38824;
    --color-secondary-600: #CE9A3C;
    --color-secondary-700: #DBB068;
    --color-secondary-800: #E8C994;
    --color-secondary-900: #F4E3C4;

    --color-error-50:  #2A0507;
    --color-error-100: #3E0508;
    --color-error-200: #520408;
    --color-error-300: #7E0409;
    --color-error-400: #9A0910;
    --color-error-500: #C9202A;
    --color-error-600: #E04A52;
    --color-error-700: #EC7A80;
    --color-error-800: #F5A9AD;
    --color-error-900: #FBD5D7;

    /* ---- Brand aliases ---- */
    --color-brand:       var(--color-red);
    --color-brand-dark:  var(--color-red-hover);   /* hover lifts on a dark ground */
    --color-brand-light: var(--color-gold-lift);   /* eyebrows over imagery */
    --color-brand-rgb:   126, 4, 9;

    /* ---- Layout aliases ----
       "White" is the ink ground here: the default section surface is dark.
       "Light" is Paper, the long-form reading surface. */
    --color-bg-white:    var(--color-ink);
    --color-bg-light:    var(--color-paper);
    --color-bg-dark:     var(--color-ink-deep);
    --color-bg-footer:   var(--color-ink);
    --color-text:        var(--color-cream);
    --color-text-muted:  var(--color-cream-72);
    --color-text-on-dark: var(--color-cream);
    --color-text-on-paper: var(--color-ink);

    /* ---- Typography ----
       Show titles are always the display face.
       Dates, times and prices are always the text face. No third typeface. */
    --font-sans:    'Public Sans', system-ui, -apple-system, sans-serif;
    --font-heading: 'Oswald', 'Public Sans', system-ui, sans-serif;
    --font-display: 'Oswald', 'Public Sans', system-ui, sans-serif;
    --font-mono:    ui-monospace, Menlo, Monaco, 'Cascadia Mono', monospace;

    --text-xs: 0.75rem;
    --text-sm: 0.875rem;
    --text-base: 1.0625rem;
    --text-lg: 1.125rem;
    --text-xl: 1.25rem;
    --text-2xl: clamp(1.375rem, 1.2rem + 0.8vw, 1.75rem);
    --text-3xl: clamp(1.75rem, 1.4rem + 1.5vw, 2.375rem);
    --text-4xl: clamp(2.125rem, 1.6rem + 2.2vw, 3.25rem);
    --text-5xl: clamp(2.5rem, 1.75rem + 3.4vw, 4.375rem);

    --leading-tight: 1.02;
    --leading-snug: 1.16;
    --leading-normal: 1.55;
    --leading-relaxed: 1.65;

    /* Letterspacing - Oswald is set uppercase and tracked out for marquee feel */
    --tracking-nav:   0.11em;
    --tracking-label: 0.18em;
    --tracking-btn:   0.12em;
    --tracking-tight: -0.005em;

    /* Spacing */
    --space-xs: 0.5rem;
    --space-sm: 0.75rem;
    --space-md: 1rem;
    --space-lg: 1.5rem;
    --space-xl: 2rem;
    --space-2xl: 3rem;
    --space-3xl: 4.5rem;
    --section-y: clamp(3.5rem, 2rem + 6vw, 5.5rem);

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

    /* Misc - square edges throughout. No pill shapes, no gradients. */
    --radius: 0;
    --radius-sm: 0;
    --shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
    --shadow-lg: 0 18px 48px rgba(0, 0, 0, 0.45);
    --transition: 180ms ease;
}

@media (max-width: 1024px) {
    :root {
        --text-2xl: 1.375rem;
        --text-3xl: 1.625rem;
        --text-4xl: 2.125rem;
        --text-5xl: 2.75rem;
    }
}

@media (max-width: 767px) {
    :root {
        --text-base: 1rem;
        --text-lg: 1.0625rem;
        --text-2xl: 1.25rem;
        --text-3xl: 1.4375rem;
        --text-4xl: 1.75rem;
        --text-5xl: 2.125rem;
        --leading-tight: 1.06;
    }
}


/* =================================================================
   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-cream);
    background: var(--color-ink);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

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

/* Animate on scroll - transform only.
   Content is never hidden behind opacity, so a stalled observer can't
   leave a section invisible. Restrained motion per the design brief. */
.animate-on-scroll {
    opacity: 1;
    transform: translateY(14px);
    transition: transform 0.5s ease-out;
}
.animate-on-scroll.is-visible {
    transform: translateY(0);
}
@media (prefers-reduced-motion: reduce) {
    .animate-on-scroll {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

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

h1, h2, h3, h4, h5, h6 {
    margin: 0 0 var(--space-md);
    font-family: var(--font-heading);
    font-weight: 500;
    line-height: var(--leading-snug);
    letter-spacing: var(--tracking-tight);
    text-wrap: balance;
}

h1 { line-height: var(--leading-tight); font-weight: 600; }

/* Emphasis inside a headline is weight, not slant - show titles stay upright.
   In running prose em stays italic, which is where play titles belong. */
h1 em, h2 em, h3 em, h4 em {
    font-style: normal;
    font-weight: 600;
}

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

/* Red on ink measures ~2:1, so links carry cream and lift to gold. */
a { color: var(--color-cream); text-decoration: none; }
a:hover { color: var(--color-gold-lift); }


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

    /* Keep elements visible without animation */
    .animate-on-scroll {
        opacity: 1 !important;
        transform: none !important;
    }
}

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

/* 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-md);
    font-family: var(--font-display);
    font-size: 0.78rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: var(--tracking-label);
    color: var(--color-gold-lift);
}
/* Gold square marker - the cut-paper kit, smallest piece */
.eyebrow::before {
    content: "";
    display: inline-block;
    width: 0.5em;
    height: 0.5em;
    margin-right: 0.7em;
    background: var(--color-gold);
    vertical-align: 0.08em;
}
.subhead {
    font-size: var(--text-lg);
    line-height: var(--leading-normal);
    color: var(--color-cream-72);
}

/* Buttons */
/* Buttons - square, tracked, marquee-flavoured. No gradients, no pills. */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.6em;
    padding: 0.95em 1.75em;
    font-family: var(--font-display);
    font-size: 0.875rem;
    font-weight: 500;
    line-height: 1;
    text-transform: uppercase;
    letter-spacing: var(--tracking-btn);
    text-decoration: none;
    border-radius: 0;
    border: 1px solid transparent;
    cursor: pointer;
    transition: background var(--transition), color var(--transition), border-color var(--transition);
}
.btn--primary {
    background: var(--color-red);
    color: var(--color-cream);
    border-color: var(--color-red);
}
.btn--primary:hover {
    background: var(--color-red-hover);
    border-color: var(--color-red-hover);
    color: var(--color-cream);
}
.btn--secondary {
    background: transparent;
    color: var(--color-cream);
    border-color: var(--color-line-strong);
}
.btn--secondary:hover {
    background: rgba(var(--color-cream-rgb), 0.07);
    border-color: var(--color-cream);
    color: var(--color-cream);
}
.btn--white {
    background: var(--color-cream);
    color: var(--color-ink);
    border-color: var(--color-cream);
}
.btn--white:hover {
    background: #fff;
    border-color: #fff;
    color: var(--color-ink);
}
/* Gold fill carries ink type - the only pairing that passes AA */
.btn--gold {
    background: var(--color-gold);
    color: var(--color-ink);
    border-color: var(--color-gold);
}
.btn--gold:hover {
    background: var(--color-gold-lift);
    border-color: var(--color-gold-lift);
    color: var(--color-ink);
}
.btn--outline-gold {
    background: transparent;
    color: var(--color-gold-lift);
    border-color: rgba(195, 136, 36, 0.75);
}
.btn--outline-gold:hover {
    background: rgba(195, 136, 36, 0.12);
    border-color: var(--color-gold-lift);
    color: var(--color-gold-lift);
}
.btn--outline-light {
    background: transparent;
    color: var(--color-cream);
    border-color: var(--color-line-strong);
}
.btn--outline-light:hover {
    background: rgba(var(--color-cream-rgb), 0.1);
    border-color: var(--color-cream);
    color: var(--color-cream);
}
.btn--block { display: flex; width: 100%; }

.link-arrow {
    display: inline-flex;
    align-items: center;
    gap: var(--space-xs);
    font-family: var(--font-display);
    font-size: 0.8125rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.13em;
    color: var(--color-gold-lift);
    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);
}
.site-header__toggle[aria-expanded="true"] {
    top: 2rem;
    right: 1rem;
    padding-right:0;
    z-index: 9999;
    position:fixed;
}
.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: var(--color-bg-white); }
.c-content-media--bg-light { background: var(--color-bg-light); }
.c-content-media--bg-dark { background: var(--color-bg-dark); color: #fff; }
.c-content-media--bg-dark .eyebrow { color: var(--color-brand-light); }


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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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


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

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

.c-accordion--bg-white { background: var(--color-bg-white); }
.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: var(--color-bg-white); }
.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: var(--color-bg-white); }
.c-logos--bg-light { background: var(--color-bg-light); }


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

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

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

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

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

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

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

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

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

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

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

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

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

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

.gform_validation_errors ol{
	padding:0!important;
}

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

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

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

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

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

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

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

.c-text-block--bg-white { background: var(--color-bg-white); }
.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: var(--color-bg-white); }
.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;
    }
}

/* =================================================================
   FATE COMMUNITY THEATRE
   =================================================================
   Everything below is the theatre layer: surface corrections for a
   dark-ground site, the cut-paper graphic kit, chrome, and the
   components authored for this build.
   ================================================================= */

/* -----------------------------------------------------------------
   SURFACES
   Paper is the long-form reading surface and needs ink type. The
   attribute selectors come after every component block, so they win
   ties without needing !important.
   ----------------------------------------------------------------- */

[class*="--bg-light"] {
    background: var(--color-paper);
    color: var(--color-text-on-paper);
}
[class*="--bg-light"] h1,
[class*="--bg-light"] h2,
[class*="--bg-light"] h3,
[class*="--bg-light"] h4 { color: var(--color-ink); }
[class*="--bg-light"] .eyebrow { color: var(--color-red); }
[class*="--bg-light"] .eyebrow::before { background: var(--color-red); }
[class*="--bg-light"] .subhead,
[class*="--bg-light"] .prose { color: rgba(var(--color-ink-rgb), 0.78); }
[class*="--bg-light"] a:not(.btn) { color: var(--color-red); }
[class*="--bg-light"] a:not(.btn):hover { color: var(--color-red-hover); }
[class*="--bg-light"] .btn--secondary {
    color: var(--color-red);
    border-color: rgba(var(--color-brand-rgb), 0.45);
}
[class*="--bg-light"] .btn--secondary:hover {
    background: var(--color-red);
    border-color: var(--color-red);
    color: var(--color-cream);
}
[class*="--bg-light"] .link-arrow { color: var(--color-red); }

/* Dark-variant sections: the legacy neutral steps point the wrong way
   on an inverted ramp, so pin the few that are used as surfaces. */
[class*="--bg-dark"] { color: var(--color-cream); }
[class*="--bg-dark"] .c-card { background: var(--color-panel); }
[class*="--bg-dark"] .c-card__desc { color: var(--color-cream-72); }
[class*="--bg-dark"] .c-stat__label,
[class*="--bg-dark"] .c-testimonial__author span { color: var(--color-cream-60); }

/* Focus is never the browser default on a dark ground */
:focus-visible {
    outline: 2px solid var(--color-gold-lift);
    outline-offset: 3px;
}

::selection { background: var(--color-red); color: var(--color-cream); }


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

.mono {
    font-family: var(--font-mono);
    font-size: 0.66rem;
    letter-spacing: 0.06em;
    line-height: 1.5;
    text-transform: uppercase;
    color: var(--color-cream-45);
}

.label {
    font-family: var(--font-display);
    font-size: 0.72rem;
    font-weight: 500;
    letter-spacing: var(--tracking-label);
    text-transform: uppercase;
}

.pill {
    display: inline-block;
    padding: 0.25em 0.65em;
    font-family: var(--font-display);
    font-size: 0.6875rem;
    font-weight: 500;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    white-space: nowrap;
    color: var(--color-cream-60);
    border: 1px solid rgba(var(--color-cream-rgb), 0.28);
}
.pill--gold {
    color: var(--color-gold-lift);
    border-color: rgba(195, 136, 36, 0.5);
}

/* Section head: small tracked label left, link or note right */
.section-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--space-lg);
    margin-bottom: var(--space-2xl);
}
.section-head__label {
    margin: 0;
    font-family: var(--font-display);
    font-size: 0.9rem;
    font-weight: 500;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--color-cream-60);
}
.section-head__link {
    flex: none;
    font-family: var(--font-display);
    font-size: 0.8125rem;
    font-weight: 500;
    letter-spacing: 0.13em;
    text-transform: uppercase;
    color: var(--color-gold-lift);
    border-bottom: 1px solid rgba(195, 136, 36, 0.4);
    padding-bottom: 2px;
}
.section-head__link:hover { color: var(--color-gold-lift); border-bottom-color: var(--color-gold-lift); }
.section-head__note {
    flex: none;
    margin: 0;
    font-size: var(--text-sm);
    color: var(--color-cream-45);
}
[class*="--bg-light"] .section-head__label { color: rgba(var(--color-ink-rgb), 0.6); }


/* -----------------------------------------------------------------
   STAGE KIT
   Cut-paper shapes from the logo, flat/moulding structure from the
   poster. Stands in wherever a photograph does not exist yet.
   ----------------------------------------------------------------- */

.stage-kit {
    position: relative;
    display: grid;
    grid-template-columns: 1fr 1.35fr 1fr;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    background: var(--color-ink-deep);
    border: 1px solid var(--color-line);
}
.stage-kit--portrait { aspect-ratio: 4 / 5; grid-template-columns: 1fr 1.5fr 1fr; }

.stage-kit__flat { display: block; }
.stage-kit__flat--side {
    background-color: var(--color-prod-deep);
    background-image: repeating-linear-gradient(90deg, rgba(255,255,255,0.09) 0 2px, transparent 2px 13px);
}
.stage-kit__flat--center {
    background-color: var(--color-prod-sage);
    background-image: repeating-linear-gradient(90deg, rgba(var(--color-ink-rgb), 0.07) 0 1px, transparent 1px 9px);
}
.stage-kit__floor {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 20%;
    background: var(--color-prod-blue);
    border-top: 6px solid var(--color-prod-pink);
    box-shadow: inset 0 7px 0 rgba(var(--color-ink-rgb), 0.14);
}
.stage-kit__masks {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    filter: drop-shadow(0 8px 18px rgba(var(--color-ink-rgb), 0.4));
}
.stage-kit__mask {
    display: block;
    width: 3.25rem;
    height: 5.5rem;
    border-radius: 28px 28px 8px 8px;
    background: var(--color-cream);
}
.stage-kit__mask--gold { background: var(--color-gold); }
.stage-kit__wash {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(var(--color-ink-rgb), 0.55) 0%, rgba(var(--color-ink-rgb), 0.05) 42%, rgba(var(--color-ink-rgb), 0.7) 100%);
}
.stage-kit__caption {
    margin: var(--space-sm) 0 0;
    font-family: var(--font-mono);
    font-size: 0.66rem;
    line-height: 1.5;
    color: var(--color-cream-45);
}

/* Card-header variants: fixed band, no aspect ratio */
.stage-kit--masks,
.stage-kit--flats,
.stage-kit--blocks {
    display: flex;
    aspect-ratio: auto;
    height: 6rem;
    align-items: flex-end;
    justify-content: center;
    gap: 4px;
    border: 0;
}
.stage-kit--masks { background: var(--color-red); }
.stage-kit--masks .stage-kit__mask {
    width: 2.375rem;
    height: 3.5rem;
    border-radius: 20px 20px 4px 4px;
}
.stage-kit--flats {
    background-color: var(--color-prod-deep);
    background-image: repeating-linear-gradient(90deg, rgba(255,255,255,0.1) 0 2px, transparent 2px 12px);
}
.stage-kit--flats .stage-kit__floor {
    position: static;
    width: 100%;
    height: 1.375rem;
    border-top: 5px solid var(--color-prod-sage);
    box-shadow: none;
}
.stage-kit--blocks {
    align-items: center;
    gap: 7px;
    background: var(--color-ink);
    border-bottom: 1px solid var(--color-line);
}
.stage-kit__block {
    display: block;
    width: 0.875rem;
    height: 0.875rem;
    background: var(--color-gold);
}
.stage-kit__block:nth-child(2) { opacity: 0.6; }
.stage-kit__block:nth-child(3) { opacity: 0.3; }


/* -----------------------------------------------------------------
   ANNOUNCEMENT BAR
   ----------------------------------------------------------------- */

.c-announce {
    background: var(--color-red);
    color: var(--color-cream);
    font-size: var(--text-sm);
}
.c-announce__inner {
    display: flex;
    align-items: center;
    gap: var(--space-lg);
    padding-top: 0.7rem;
    padding-bottom: 0.7rem;
}
.c-announce__label {
    flex: none;
    padding: 3px 8px;
    font-family: var(--font-display);
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    border: 1px solid rgba(var(--color-cream-rgb), 0.45);
}
.c-announce__text { flex: 1; margin: 0; }
.c-announce__link {
    flex: none;
    font-weight: 600;
    border-bottom: 1px solid rgba(var(--color-cream-rgb), 0.5);
    padding-bottom: 1px;
}
.c-announce__link:hover { color: var(--color-cream); border-bottom-color: var(--color-cream); }
.c-announce__close {
    flex: none;
    min-height: 0;
    padding: 0 0 0 var(--space-xs);
    background: none;
    border: 0;
    color: rgba(var(--color-cream-rgb), 0.7);
    font-size: 1.25rem;
    line-height: 1;
    cursor: pointer;
}
.c-announce__close:hover { color: var(--color-cream); }


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

.site-header {
    background: rgba(20, 16, 14, 0.94);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border-bottom: 1px solid var(--color-line);
}
.site-header__inner { height: 76px; gap: var(--space-2xl); }
.site-header__logo img { height: 42px; }
body.scrolled .site-header { box-shadow: 0 2px 24px rgba(0, 0, 0, 0.5); }
.site-header__toggle span,
.site-header__toggle::before,
.site-header__toggle::after { background: var(--color-cream); }

.site-nav { margin-left: auto; }
.site-nav__menu { gap: 1.625rem; align-items: center; }
.site-nav__menu a {
    display: inline-block;
    padding: 6px 0;
    font-family: var(--font-display);
    font-size: 0.84375rem;
    font-weight: 400;
    letter-spacing: var(--tracking-nav);
    text-transform: uppercase;
    color: var(--color-cream);
    border-bottom: 2px solid transparent;
}
.site-nav__menu a:hover,
.site-nav__menu .current-menu-item > a,
.site-nav__menu .current_page_item > a {
    color: var(--color-cream);
    border-bottom-color: var(--color-gold);
}
.site-nav__actions { display: flex; align-items: center; gap: var(--space-md); }
.site-nav__phone { font-family: var(--font-display); letter-spacing: 0.06em; }

/* Mobile menu panel. A backdrop-filter on the header makes the header the
   containing block for the fixed panel, which then collapses to the header's
   height, so below the breakpoint the header drops the blur for a solid
   ground. The base theme's panel is also hard-coded white. */
@media (max-width: 768px) {
    .site-header {
        background: var(--color-ink);
        -webkit-backdrop-filter: none;
        backdrop-filter: none;
    }
    .site-nav {
        background: var(--color-ink);
        padding: 5.5rem var(--gutter) var(--space-2xl);
        transition: transform var(--transition), visibility 0s linear 180ms;
    }
    .site-nav.is-open { transition: transform var(--transition); }
    .site-nav__menu { gap: 0; align-items: stretch; border-top: 1px solid var(--color-line); }
    .site-nav__menu > li { border-bottom-color: var(--color-line); }
    .site-nav__menu > li > a,
    .site-nav__menu > .menu-item-has-children > a {
        padding: 1.125rem 0;
        font-size: 1.375rem;
        border-bottom: 0;
    }
    .site-nav__menu > li.current-menu-item > a,
    .site-nav__menu > li.current-menu-ancestor > a {
        text-decoration-line: underline;
        text-decoration-color: var(--color-gold);
        text-decoration-thickness: 2px;
        text-underline-offset: 0.45em;
    }
    .site-nav__menu .sub-menu a {
        padding: 0.75rem 0 0.75rem var(--space-md);
        font-size: 1rem;
        font-weight: 400;
        color: var(--color-cream-72);
        border-bottom: 0;
    }
    .site-nav__menu .sub-menu li.current-menu-item > a,
    .site-nav__menu .sub-menu a:hover,
    .site-nav__menu .sub-menu a:focus {
        color: var(--color-gold-lift) !important;
        opacity: 1;
        background: none;
        padding-left: var(--space-md);
    }
    .site-nav__actions { margin-top: var(--space-xl); }
    .site-nav__actions .btn { min-height: 48px; }
}


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

.site-footer {
    background: var(--color-ink);
    color: var(--color-cream);
    border-top: 1px solid var(--color-line);
}
.site-footer a { color: var(--color-cream-72); }
.site-footer a:hover { color: var(--color-gold-lift); }
.site-footer__col-title {
    font-family: var(--font-display);
    font-size: 0.72rem;
    font-weight: 500;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--color-cream-60);
    margin-bottom: var(--space-md);
}
.site-footer__social a {
    border-radius: 0;
    background: transparent;
    border: 1px solid var(--color-line);
    color: var(--color-cream-72);
}
.site-footer__social a:hover {
    background: var(--color-red);
    border-color: var(--color-red);
    color: var(--color-cream);
}
.site-footer__bottom {
    border-top: 1px solid var(--color-line);
    padding-top: var(--space-lg);
    color: var(--color-cream-45);
    font-size: var(--text-sm);
}
.site-footer__copyright { color: var(--color-cream-45); }
.site-footer__status { color: var(--color-cream-45); }
.site-footer__credits { color: var(--color-cream-45); }
/* The logo and social links open column 1, level with the menu columns. */
.site-footer__columns { padding-top: 0; }
.site-footer__col .site-footer__brand { margin-bottom: var(--space-xl); }


/* -----------------------------------------------------------------
   STICKY ACTION BAR
   ----------------------------------------------------------------- */

.c-actionbar { display: none; }
@media (max-width: 1023px) {
    .c-actionbar {
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 90;
        display: grid;
        grid-auto-flow: column;
        grid-auto-columns: 1fr;
        background: var(--color-ink);
        border-top: 1px solid var(--color-line-strong);
    }
    .c-actionbar__item {
        display: flex;
        align-items: center;
        justify-content: center;
        min-height: 52px;
        padding: 0 var(--space-xs);
        font-family: var(--font-display);
        font-size: 0.75rem;
        font-weight: 500;
        letter-spacing: 0.12em;
        text-transform: uppercase;
        text-align: center;
        color: var(--color-cream);
        border-left: 1px solid var(--color-line);
    }
    .c-actionbar__item:first-child { border-left: 0; }
    .c-actionbar__item--primary { background: var(--color-red); color: var(--color-cream); }
    .c-actionbar__item--gold { background: var(--color-gold); color: var(--color-ink); }
    body { padding-bottom: 52px; }
}


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

.c-hero { border-bottom: 1px solid var(--color-line); }
.c-hero__eyebrow {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    margin-bottom: 1.375rem;
    font-family: var(--font-display);
    font-size: 0.78rem;
    font-weight: 500;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--color-gold);
}
.c-hero__eyebrow::before {
    content: "";
    display: block;
    width: 9px;
    height: 9px;
    flex: none;
    background: var(--color-gold);
}
.c-hero__headline { letter-spacing: var(--tracking-tight); }
.c-hero__subhead { max-width: 46ch; color: var(--color-cream-72); font-size: var(--text-lg); }
.c-hero__caption {
    margin: var(--space-sm) 0 0;
    font-family: var(--font-mono);
    font-size: 0.66rem;
    line-height: 1.5;
    color: var(--color-cream-45);
}


/* -----------------------------------------------------------------
   SHOW DATES
   ----------------------------------------------------------------- */

.c-show-dates {
    padding: var(--section-y) 0;
    border-bottom: 1px solid var(--color-line);
}
.c-show-dates__feature { max-width: 66ch; margin-bottom: var(--space-3xl); }
.c-show-dates__tag {
    margin-bottom: var(--space-sm);
    font-family: var(--font-display);
    font-size: 0.75rem;
    font-weight: 500;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--color-gold);
}
.c-show-dates__title {
    margin-bottom: var(--space-sm);
    font-size: var(--text-4xl);
    line-height: 1.02;
}
.c-show-dates__intro { color: var(--color-cream-72); font-size: var(--text-lg); }
.c-show-dates__links {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-lg);
    margin-top: var(--space-lg);
}
.c-show-dates__link {
    font-family: var(--font-display);
    font-size: 0.8125rem;
    font-weight: 500;
    letter-spacing: 0.13em;
    text-transform: uppercase;
    color: var(--color-cream-60);
    border-bottom: 1px solid transparent;
    padding-bottom: 2px;
}
.c-show-dates__link.is-primary {
    color: var(--color-cream);
    border-bottom-color: rgba(var(--color-cream-rgb), 0.35);
}
.c-show-dates__link:hover { color: var(--color-gold-lift); border-bottom-color: var(--color-gold-lift); }

.c-show-dates__body {
    display: grid;
    grid-template-columns: 300px 1fr;
    gap: var(--space-3xl);
    align-items: start;
}
.c-show-dates--no-art .c-show-dates__art { align-self: start; }
.c-show-dates__poster img { width: 100%; }

/* Performance rows */
.c-perf__head,
.c-perf__row {
    display: grid;
    grid-template-columns: 140px 92px 1fr 200px;
    gap: var(--space-lg);
}
.c-perf__head {
    align-items: baseline;
    padding: 0 4px var(--space-sm);
    font-family: var(--font-display);
    font-size: 0.72rem;
    font-weight: 500;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--color-cream-45);
}
.c-perf__col-action { text-align: right; }
.c-perf__row {
    align-items: center;
    padding: 1.1875rem 4px;
    border-top: 1px solid rgba(var(--color-cream-rgb), 0.18);
    transition: background var(--transition);
}
.c-perf__row:last-child { border-bottom: 1px solid rgba(var(--color-cream-rgb), 0.18); }
.c-perf__row:hover { background: rgba(var(--color-cream-rgb), 0.035); }
.c-perf__date {
    font-family: var(--font-display);
    font-size: 1.1875rem;
    font-weight: 500;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}
.c-perf__time { color: var(--color-cream-80); }
.c-perf__venue { color: var(--color-cream-60); }
.c-perf__action {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.875rem;
}
.c-perf__link {
    font-family: var(--font-display);
    font-size: 0.8125rem;
    font-weight: 500;
    letter-spacing: 0.13em;
    text-transform: uppercase;
    border-bottom: 1px solid rgba(var(--color-cream-rgb), 0.35);
    padding-bottom: 2px;
    white-space: nowrap;
}
.c-perf__link:hover { color: var(--color-gold-lift); border-bottom-color: var(--color-gold-lift); }
.c-perf__status { font-size: var(--text-sm); color: var(--color-cream-45); }

.c-show-dates__footnote {
    padding-top: var(--space-lg);
    color: var(--color-cream-60);
}
.c-show-dates__footnote p:last-child { margin-bottom: 0; }
.c-show-dates__footnote a { color: var(--color-gold-lift); border-bottom: 1px solid rgba(195, 136, 36, 0.4); }
.c-show-dates__empty { color: var(--color-cream-60); }


/* -----------------------------------------------------------------
   CAST LIST
   A playbill page: role, dotted leader, name.
   ----------------------------------------------------------------- */

.c-cast {
    padding: var(--section-y) 0;
    border-bottom: 1px solid var(--color-line);
}
.c-cast__intro { max-width: 60ch; margin-bottom: var(--space-xl); color: var(--color-cream-72); }
.c-cast__list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: var(--space-3xl);
    margin: 0;
}
.c-cast__row {
    display: flex;
    align-items: baseline;
    gap: var(--space-sm);
    padding: 0.875rem 0;
    border-bottom: 1px solid var(--color-line);
}
.c-cast__row::after {
    content: "";
    order: 1;
    flex: 1;
    min-width: var(--space-lg);
    border-bottom: 1px dotted var(--color-line-strong);
}
.c-cast__role {
    font-family: var(--font-display);
    font-size: 0.84375rem;
    letter-spacing: var(--tracking-nav);
    text-transform: uppercase;
    color: var(--color-cream-60);
}
.c-cast__name {
    order: 2;
    margin: 0;
    font-family: var(--font-display);
    font-size: var(--text-lg);
    text-align: right;
    color: var(--color-cream);
}
.c-cast__bios {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-xl) var(--space-3xl);
}
.c-cast__bio {
    display: grid;
    gap: var(--space-lg);
    align-items: start;
    padding-top: var(--space-lg);
    border-top: 1px solid var(--color-line);
}
.c-cast__bio.has-photo { grid-template-columns: 112px minmax(0, 1fr); }
.c-cast__photo picture { display: block; }
.c-cast__photo img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; }
.c-cast__bio-name { margin: 0; font-size: var(--text-xl); color: var(--color-cream); }
.c-cast__bio-role {
    margin: 0.125rem 0 var(--space-sm);
    font-family: var(--font-display);
    font-size: 0.84375rem;
    letter-spacing: var(--tracking-nav);
    text-transform: uppercase;
    color: var(--color-gold-lift);
}
.c-cast__bio-text { font-size: 0.96875rem; color: var(--color-cream-72); }
.c-cast__bio-text p { margin: 0 0 var(--space-sm); }
.c-cast__actions { margin-top: var(--space-xl); }
@media (max-width: 767px) {
    .c-cast__list,
    .c-cast__bios { grid-template-columns: 1fr; }
    .c-cast__bio.has-photo { grid-template-columns: 88px minmax(0, 1fr); gap: var(--space-md); }
}


/* -----------------------------------------------------------------
   GET INVOLVED CARDS
   ----------------------------------------------------------------- */

.c-involve {
    padding: var(--section-y) 0;
    border-bottom: 1px solid var(--color-line);
}
.c-involve__header { max-width: 60ch; margin-bottom: var(--space-2xl); }
.c-involve__label {
    margin: 0 0 var(--space-lg);
    font-family: var(--font-display);
    font-size: 0.9rem;
    font-weight: 500;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--color-cream-60);
}
.c-involve__statement {
    margin: 0;
    font-family: var(--font-display);
    font-weight: 400;
    font-size: var(--text-3xl);
    line-height: 1.16;
    color: var(--color-cream);
    text-wrap: balance;
}
.c-involve__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-lg);
}
.c-involve--cols-2 .c-involve__grid { grid-template-columns: repeat(2, 1fr); }
.c-involve__card {
    display: block;
    background: var(--color-panel);
    border: 1px solid var(--color-line);
    overflow: hidden;
    color: var(--color-cream);
    transition: border-color var(--transition);
}
a.c-involve__card:hover { border-color: var(--color-line-strong); color: var(--color-cream); }
.c-involve__art { line-height: 0; }
.c-involve__image { width: 100%; height: 6rem; object-fit: cover; }
.c-involve__content { padding: 1.625rem 1.625rem 1.875rem; }
.c-involve__title {
    margin: 0 0 0.625rem;
    font-size: var(--text-2xl);
    font-weight: 500;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}
.c-involve__desc { color: var(--color-cream-72); font-size: 0.96875rem; }
.c-involve__cta {
    display: inline-block;
    margin-top: 1.125rem;
    font-family: var(--font-display);
    font-size: 0.8125rem;
    font-weight: 500;
    letter-spacing: 0.13em;
    text-transform: uppercase;
    color: var(--color-gold-lift);
}


/* -----------------------------------------------------------------
   AUDITION CALLOUT
   ----------------------------------------------------------------- */

.c-audition {
    background: var(--color-red);
    color: var(--color-cream);
    border-bottom: 1px solid var(--color-line);
}
.c-audition__inner {
    display: grid;
    grid-template-columns: 1.15fr 1fr;
    gap: var(--space-3xl);
    align-items: center;
    padding-top: var(--section-y);
    padding-bottom: var(--section-y);
}
.c-audition__eyebrow {
    margin-bottom: var(--space-md);
    font-family: var(--font-display);
    font-size: 0.78rem;
    font-weight: 500;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--color-cream-80);
}
.c-audition__headline {
    margin-bottom: var(--space-sm);
    font-size: var(--text-4xl);
    line-height: 1.06;
    color: var(--color-cream);
}
.c-audition__intro {
    max-width: 46ch;
    font-size: var(--text-lg);
    color: rgba(var(--color-cream-rgb), 0.85);
}
.c-audition__panel {
    background: rgba(var(--color-ink-rgb), 0.4);
    border: 1px solid var(--color-line-strong);
    padding: 1.75rem;
}
.c-audition__details {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.6875rem var(--space-lg);
    margin: 0 0 var(--space-lg);
}
.c-audition__details dt {
    font-family: var(--font-display);
    font-size: 0.72rem;
    font-weight: 500;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: rgba(var(--color-cream-rgb), 0.65);
    padding-top: 2px;
}
.c-audition__details dd { margin: 0; color: var(--color-cream); }
.c-audition__footnote {
    margin: var(--space-sm) 0 0;
    font-family: var(--font-mono);
    font-size: 0.66rem;
    line-height: 1.5;
    color: rgba(var(--color-cream-rgb), 0.75);
}


/* -----------------------------------------------------------------
   COMMUNITY EVENTS
   ----------------------------------------------------------------- */

.c-events {
    padding: var(--section-y) 0;
    border-bottom: 1px solid var(--color-line);
}
.c-events .section-head { margin-bottom: var(--space-xl); }
.c-events__list { list-style: none; margin: 0; padding: 0; }
.c-events__row {
    display: grid;
    grid-template-columns: 150px 1fr 240px;
    gap: var(--space-xl);
    align-items: baseline;
    padding: var(--space-lg) 4px;
    border-top: 1px solid var(--color-line);
}
.c-events__row:last-child { border-bottom: 1px solid var(--color-line); }
.c-events__date {
    font-family: var(--font-display);
    font-size: 0.9375rem;
    font-weight: 500;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}
.c-events__title { color: var(--color-cream); }
a.c-events__title { border-bottom: 1px solid rgba(195, 136, 36, 0.5); }
a.c-events__title:hover { color: var(--color-gold-lift); border-bottom-color: var(--color-gold-lift); }
.c-events__desc { color: var(--color-cream-60); }
.c-events__meta { font-size: var(--text-sm); color: var(--color-cream-45); }
.c-events__empty {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-lg);
    padding: var(--space-xl) 0;
    border-top: 1px solid var(--color-line);
    border-bottom: 1px solid var(--color-line);
    color: var(--color-cream-60);
}
.c-events__empty p { margin: 0; }


/* -----------------------------------------------------------------
   WAYS TO GIVE
   The only place gold appears at any scale.
   ----------------------------------------------------------------- */

.c-give {
    padding: var(--section-y) 0;
    border-bottom: 1px solid var(--color-line);
}
.c-give .section-head__label { color: var(--color-gold); }
.c-give__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-lg);
    align-items: stretch;
}
.c-give--cols-1 .c-give__grid { grid-template-columns: 1fr; max-width: 34rem; }
.c-give--cols-3 .c-give__grid { grid-template-columns: repeat(3, 1fr); }
.c-give__card {
    display: flex;
    flex-direction: column;
    padding: 1.875rem 1.75rem 2rem;
    border: 1px solid rgba(195, 136, 36, 0.45);
}
.c-give__card.is-filled { background: rgba(195, 136, 36, 0.06); }
.c-give__title {
    margin: 0 0 var(--space-sm);
    font-size: var(--text-2xl);
    font-weight: 500;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: var(--color-gold);
}
.c-give__amount {
    margin: calc(-1 * var(--space-xs)) 0 var(--space-md);
    font-family: var(--font-display);
    font-size: var(--text-lg);
    letter-spacing: 0.04em;
    color: var(--color-cream);
}
.c-give__desc {
    flex: 1;
    margin-bottom: var(--space-lg);
    font-size: 0.96875rem;
    color: var(--color-cream-72);
}
.c-give__status {
    margin: var(--space-lg) 0 0;
    max-width: 80ch;
    font-size: 0.84375rem;
    line-height: 1.55;
    color: var(--color-cream-45);
}


/* -----------------------------------------------------------------
   EMAIL CAPTURE
   ----------------------------------------------------------------- */

.c-email { border-bottom: 1px solid var(--color-line); }
.c-email--paper { background: var(--color-paper); color: var(--color-ink); }
.c-email--red { background: var(--color-red); }
.c-email__inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-3xl);
    align-items: center;
    padding-top: var(--section-y);
    padding-bottom: var(--section-y);
}
.c-email__headline { margin-bottom: var(--space-xs); font-size: var(--text-3xl); }
.c-email__desc { max-width: 48ch; color: var(--color-cream-72); }
.c-email--paper .c-email__desc { color: rgba(var(--color-ink-rgb), 0.72); }
.c-email__missing {
    font-family: var(--font-mono);
    font-size: 0.66rem;
    text-transform: uppercase;
    color: var(--color-cream-45);
}


/* -----------------------------------------------------------------
   SPONSOR WALL
   Reads as intentional at three logos.
   ----------------------------------------------------------------- */

.c-sponsors {
    --sponsor-gap: 28px;
    padding: var(--space-2xl) 0;
}
.c-sponsors--paper { background: var(--color-paper); color: var(--color-ink); }
.c-sponsors--ink { background: var(--color-ink); border-bottom: 1px solid var(--color-line); }
.c-sponsors__inner {
    display: flex;
    align-items: center;
    gap: var(--space-3xl);
}
.c-sponsors__intro { flex: none; width: 230px; }
.c-sponsors__label {
    margin: 0 0 var(--space-xs);
    font-family: var(--font-display);
    font-size: 0.84375rem;
    font-weight: 500;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    line-height: 1.4;
    color: rgba(var(--color-ink-rgb), 0.62);
}
.c-sponsors--ink .c-sponsors__label { color: var(--color-cream-60); }
.c-sponsors__link {
    font-family: var(--font-display);
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.13em;
    text-transform: uppercase;
    color: var(--color-red);
    border-bottom: 1px solid rgba(var(--color-brand-rgb), 0.35);
    padding-bottom: 2px;
}
.c-sponsors--ink .c-sponsors__link { color: var(--color-gold-lift); border-bottom-color: rgba(195,136,36,0.4); }

.c-sponsors__viewport {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 5%, #000 95%, transparent 100%);
    mask-image: linear-gradient(90deg, transparent 0, #000 5%, #000 95%, transparent 100%);
}
.c-sponsors__track {
    display: flex;
    gap: var(--sponsor-gap);
    width: max-content;
}
/* The duplicate track dissolves into the flex row so gaps stay even */
.c-sponsors__dupe { display: contents; }
.c-sponsors--marquee .c-sponsors__track {
    animation: fct-marquee var(--marquee-duration, 36s) linear infinite;
}
.c-sponsors--marquee:hover .c-sponsors__track { animation-play-state: paused; }
@keyframes fct-marquee {
    from { transform: translateX(0); }
    to   { transform: translateX(calc(-50% - (var(--sponsor-gap) / 2))); }
}
.c-sponsors--static .c-sponsors__track { flex-wrap: wrap; width: auto; }
/* Every tile is the same box. A logo sits on white inside it and scales to
   fit without cropping, whatever shape or size the sponsor sends. Imagify
   wraps logos in <picture>, so both elements are sized. */
.c-sponsors__tile {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: none;
    width: 180px;
    height: 84px;
    padding: 12px 18px;
    background: #fff;
    border: 1px solid rgba(var(--color-ink-rgb), 0.12);
}
.c-sponsors--ink .c-sponsors__tile { border-color: transparent; }
.c-sponsors__tile picture { display: block; width: 100%; height: 100%; }
.c-sponsors__tile img { display: block; width: 100%; height: 100%; object-fit: contain; }
.c-sponsors__tile--empty {
    background: transparent;
    border: 1px dashed rgba(var(--color-ink-rgb), 0.28);
}
.c-sponsors--ink .c-sponsors__tile--empty { border-color: var(--color-line-strong); }
.c-sponsors__tile--empty span,
.c-sponsors__tile--cta span {
    font-family: var(--font-mono);
    font-size: 0.6rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    text-align: center;
    line-height: 1.5;
    color: rgba(var(--color-ink-rgb), 0.4);
}
.c-sponsors--ink .c-sponsors__tile--empty span { color: var(--color-cream-45); }
.c-sponsors__tile--cta {
    background: transparent;
    border-style: dashed;
    border-color: rgba(var(--color-brand-rgb), 0.4);
}
.c-sponsors__tile--cta span {
    font-family: var(--font-display);
    font-size: 0.71875rem;
    font-weight: 500;
    letter-spacing: 0.13em;
    line-height: 1.4;
    color: var(--color-red);
}
.c-sponsors--ink .c-sponsors__tile--cta { border-color: rgba(195,136,36,0.4); }
.c-sponsors--ink .c-sponsors__tile--cta span { color: var(--color-gold-lift); }

@media (prefers-reduced-motion: reduce) {
    .c-sponsors--marquee .c-sponsors__track { animation: none; }
    .c-sponsors__viewport { overflow-x: auto; }
}


/* -----------------------------------------------------------------
   TEXT BLOCK - side label
   ----------------------------------------------------------------- */

.c-text-block--side-label .c-text-block__inner {
    display: grid;
    grid-template-columns: 200px 1fr;
    gap: var(--space-3xl);
}
.c-text-block__side-label {
    margin: 0;
    padding-top: 0.5rem;
    font-family: var(--font-display);
    font-size: 0.9rem;
    font-weight: 500;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--color-cream-60);
}
[class*="--bg-light"] .c-text-block__side-label { color: rgba(var(--color-ink-rgb), 0.55); }
.c-text-block--side-label .c-text-block__body { max-width: 66ch; }
.c-text-block__lede {
    font-family: var(--font-display);
    font-weight: 400;
    font-size: var(--text-3xl);
    line-height: 1.3;
    margin-bottom: var(--space-lg);
    text-wrap: pretty;
}
.c-text-block__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-lg);
    margin-top: var(--space-xl);
}
.c-text-block__note {
    margin: 0;
    font-family: var(--font-mono);
    font-size: 0.66rem;
    line-height: 1.5;
    color: var(--color-cream-45);
}
[class*="--bg-light"] .c-text-block__note { color: rgba(var(--color-ink-rgb), 0.42); }


/* -----------------------------------------------------------------
   RESPONSIVE
   Every component states a behaviour at the smallest breakpoint, and
   nothing is hard-capped: the reviewed local sites all clip below
   their fixed widths, which is the failure this avoids.
   ----------------------------------------------------------------- */

/* Small laptops and landscape tablets: the full poster column left the
   venue about 90px wide, wrapping a venue name onto four lines. */
@media (max-width: 1279px) {
    .c-show-dates__body { grid-template-columns: 240px 1fr; gap: var(--space-2xl); }
    .c-perf__head,
    .c-perf__row { grid-template-columns: 116px 80px 1fr 160px; gap: var(--space-md); }
}

@media (max-width: 1023px) {
    .c-show-dates__body { grid-template-columns: 200px 1fr; gap: var(--space-xl); }
    .c-perf__head,
    .c-perf__row { grid-template-columns: 108px 72px 1fr 150px; gap: var(--space-md); }
    .c-audition__inner,
    .c-email__inner { grid-template-columns: 1fr; gap: var(--space-xl); }
    .c-involve__grid { grid-template-columns: repeat(2, 1fr); }
    .c-sponsors__inner { flex-direction: column; align-items: flex-start; gap: var(--space-lg); }
    .c-sponsors__intro { width: auto; }
    .c-sponsors__viewport { width: 100%; }
    .c-text-block--side-label .c-text-block__inner { grid-template-columns: 160px 1fr; gap: var(--space-xl); }
}

@media (max-width: 767px) {
    .c-announce__inner { flex-wrap: wrap; gap: var(--space-sm); }
    .c-announce__text { flex: 1 1 100%; order: 3; }
    .c-announce__link { order: 4; }

    .c-show-dates__body { grid-template-columns: 1fr; }
    .c-show-dates__art { max-width: 260px; }

    /* Performance rows become stacked records - the header row is
       meaningless at this width, so it is hidden and each cell is
       labelled instead. */
    .c-perf__head { display: none; }
    .c-perf__row {
        grid-template-columns: 1fr;
        gap: 0.35rem;
        padding: var(--space-lg) 0;
    }
    .c-perf__time::before { content: "Curtain "; color: var(--color-cream-45); }
    .c-perf__action { justify-content: flex-start; margin-top: var(--space-xs); }

    .c-involve__grid { grid-template-columns: 1fr; }
    .c-give__grid,
    .c-give--cols-3 .c-give__grid { grid-template-columns: 1fr; }

    .c-events__row { grid-template-columns: 1fr; gap: 0.35rem; }

    .section-head { flex-wrap: wrap; gap: var(--space-sm); margin-bottom: var(--space-xl); }

    .c-text-block--side-label .c-text-block__inner { grid-template-columns: 1fr; gap: var(--space-md); }

    .c-sponsors__tile { width: 150px; height: 70px; padding: 10px 14px; }
}


/* -----------------------------------------------------------------
   WORDMARK
   Stand-in lockup until a vector logo exists.
   ----------------------------------------------------------------- */

.wordmark {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
}
.wordmark__mark {
    display: flex;
    flex: none;
    align-items: flex-end;
    justify-content: center;
    gap: 2px;
    width: 34px;
    height: 34px;
    padding: 5px 4px 0;
    background: var(--color-red);
}
.wordmark__mask {
    display: block;
    width: 12px;
    height: 20px;
    border-radius: 7px 7px 3px 3px;
    background: var(--color-cream);
}
.wordmark__mask--gold { background: var(--color-gold); }
.wordmark__text {
    font-family: var(--font-display);
    font-weight: 500;
    font-size: 0.9375rem;
    line-height: 1.12;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    color: var(--color-cream);
}
.wordmark--lg .wordmark__mark { width: 38px; height: 38px; padding: 6px 5px 0; }
.wordmark--lg .wordmark__mask { width: 13px; height: 23px; border-radius: 8px 8px 3px 3px; }
.site-header__logo,
.site-footer__logo { display: inline-flex; }

/* Hero shares the body ground unless it carries its own image */
.c-hero { color: var(--color-cream); }
.c-hero:not(.c-hero--has-bg) { background-color: var(--color-ink); }

/* Hero: the theme centres split heroes and floats the media above the copy on
   mobile. The design reads left, and the headline should land before the
   graphic - especially while that graphic is a placeholder. */
.c-hero__eyebrow { opacity: 1; }
.c-hero__subhead { opacity: 1; }
.c-hero--split { background: var(--color-ink); }

@media (max-width: 768px) {
    .c-hero--split .c-hero__inner { text-align: left; }
    .c-hero--split .c-hero__media { order: 1; }
    .c-hero--split .c-hero__buttons { justify-content: flex-start; }
}

/* Minimal hero would drop a white band into a dark site */
.c-hero--minimal {
    background: var(--color-ink);
    color: var(--color-cream);
    border-bottom-color: var(--color-line);
}

/* -----------------------------------------------------------------
   HORIZONTAL OVERFLOW
   The off-canvas nav parks at translateX(100%), which extends the
   document a full viewport to the right and lets the whole page
   scroll sideways on a phone. `clip` contains it without creating a
   scroll container, so the sticky header keeps working.
   ----------------------------------------------------------------- */

/* The nav is position:fixed, so clipping on body does not reach it - the
   clip has to happen at the viewport. `clip` rather than `hidden` because
   `hidden` would turn html into a scroll container and break the sticky
   header. */
html {
    overflow-x: hidden;   /* fallback for older engines */
    overflow-x: clip;
}
body {
    overflow-x: hidden;
    overflow-x: clip;
}

@media (max-width: 768px) {
    /* Closed menu should not be reachable by keyboard either */
    .site-nav { visibility: hidden; }
    .site-nav.is-open { visibility: visible; }
}


/* -----------------------------------------------------------------
   BRAND-RED TEXT ON DARK GROUNDS
   The theme uses --color-brand as a text colour in a dozen places,
   which was fine on white. Curtain Red on Stage Ink measures ~2:1.
   On ink these become cream or gold; on Paper they stay red, which
   the --bg-light block above already handles.
   ----------------------------------------------------------------- */

.c-card__link,
.c-icon-card__link,
.c-accordion__trigger:hover,
.breadcrumbs__link:hover,
.site-nav__phone:hover,
.c-mega-menu__menu a:hover,
.prose a {
    color: var(--color-gold-lift);
}

.c-stat__number,
.c-testimonial__icon { color: var(--color-gold); }

/* Gold fill carries Stage Ink type - the only pairing that passes AA */
.c-icon-card__icon {
    background: var(--color-gold);
    color: var(--color-ink);
    border-radius: 0;
}
.c-icon-card__desc { color: var(--color-cream-72); }

.c-contact-info__link { color: var(--color-cream); }
.c-contact-info__link:hover { color: var(--color-gold-lift); }
.c-contact-info__icon { color: var(--color-gold); }

/* Paper keeps the red */
[class*="--bg-light"] .c-card__link,
[class*="--bg-light"] .c-icon-card__link,
[class*="--bg-light"] .c-contact-info__link,
[class*="--bg-light"] .prose a { color: var(--color-red); }
[class*="--bg-light"] .c-icon-card__desc { color: rgba(var(--color-ink-rgb), 0.72); }
[class*="--bg-light"] .c-contact-info__icon { color: var(--color-red); }

/* Gravity Forms and footer contact text on the ink ground */
.gfield_required,
.gfield_required_text { color: var(--color-gold-lift); }
.site-footer__contact-info,
.site-footer__contact-info p,
.site-footer__contact-info a { color: var(--color-cream-72); }
.site-footer__contact-info a:hover { color: var(--color-gold-lift); }
.site-footer__contact-info svg { color: var(--color-gold); }

/* Gravity Forms styling lives in assets/css/gravity-forms.css, which is
   enqueued after Gravity Forms' own stylesheets. See inc/assets.php. */


/* =================================================================
   FEEDBACK ROUND 1
   ================================================================= */

/* -----------------------------------------------------------------
   1. Boxed icon cards
   The boxed variant hardcodes a white card, so cream/gold type landed
   on white. Cards become a raised panel on ink, and stay white on Paper.
   ----------------------------------------------------------------- */

.c-icon-cards--boxed .c-icon-card {
    background: var(--color-panel);
    border: 1px solid var(--color-line);
    box-shadow: none;
}
[class*="--bg-light"].c-icon-cards--boxed .c-icon-card {
    background: #fff;
    border-color: rgba(var(--color-ink-rgb), 0.12);
}
[class*="--bg-light"] .c-icon-card__title { color: var(--color-ink); }


/* -----------------------------------------------------------------
   2. Desktop dropdown menu
   Was a white panel inheriting cream links.
   ----------------------------------------------------------------- */

@media (min-width: 769px) {
    .site-nav__menu .sub-menu {
        padding: var(--space-xs) 0;
        background: var(--color-panel);
        border: 1px solid var(--color-line-strong);
        border-radius: 0;
        box-shadow: 0 18px 48px rgba(0, 0, 0, 0.55);
    }
    .site-nav__menu .sub-menu a {
        color: var(--color-cream);
        border-bottom: 0;
        letter-spacing: var(--tracking-nav);
    }
    .site-nav__menu .sub-menu a:hover {
        background: rgba(var(--color-cream-rgb), 0.07);
        color: var(--color-gold-lift);
    }
    .site-nav__menu .sub-menu .current-menu-item > a { color: var(--color-gold-lift); }
}


/* -----------------------------------------------------------------
   5. Full-bleed media below the mobile breakpoint
   ----------------------------------------------------------------- */

@media (max-width: 767px) {
    .c-show-dates__art,
    .c-hero__media {
        max-width: none;
        margin-left: calc(var(--gutter) * -1);
        margin-right: calc(var(--gutter) * -1);
    }
    .c-show-dates__art .stage-kit,
    .c-hero__media .stage-kit { border-left: 0; border-right: 0; }
    .c-show-dates__poster img,
    .c-hero__media .c-hero__image { width: 100%; }
    /* Captions stay inside the gutter */
    .stage-kit__caption,
    .c-hero__caption {
        padding-left: var(--gutter);
        padding-right: var(--gutter);
    }
    /* Portrait poster is too tall full-bleed - let it breathe wider instead */
    .c-show-dates__art .stage-kit--portrait { aspect-ratio: 4 / 3; }
}


/* -----------------------------------------------------------------
   6. Accordion trigger
   <button> keeps the UA's black `buttontext` because the theme sets
   `font: inherit` but never `color: inherit`.
   ----------------------------------------------------------------- */

.c-accordion__trigger { color: inherit; }
.c-accordion__items,
.c-accordion__item { border-color: var(--color-line); }
.c-accordion__content { color: var(--color-cream-72); }
[class*="--bg-light"] .c-accordion__content { color: rgba(var(--color-ink-rgb), 0.78); }
[class*="--bg-light"] .c-accordion__items,
[class*="--bg-light"] .c-accordion__item { border-color: var(--color-line-ink); }


/* =================================================================
   ROUND 3 - curtain, textures, logo, forms, layout
   ================================================================= */

/* -----------------------------------------------------------------
   ALIGNMENT
   The theme lets the split hero's inner run full-bleed, so its copy
   sat against the window edge while every other section keeps to
   the 1200px container. One left/right line for the whole page.
   ----------------------------------------------------------------- */

.c-hero--split .c-hero__inner { max-width: var(--container-max); }

/* A section that opens a page without a hero needs less air above it */
main > section:first-child:not(.c-hero) { padding-top: clamp(2.5rem, 1.5rem + 3vw, 3.75rem); }


/* -----------------------------------------------------------------
   LOGO
   Header: the mark cut from the logo file beside the name as live
   text. Footer: the full logo, large enough for its lettering to read.
   ----------------------------------------------------------------- */

.wordmark--image { gap: 0.85rem; }
.wordmark__logo { display: block; flex: none; line-height: 0; }
.site-header__logo .wordmark__logo img { height: 46px; width: auto; }
.site-footer__logo .site-footer__logo-img {
    width: clamp(136px, 12vw, 168px);
    height: auto;
    margin-bottom: var(--space-lg);
}
.site-footer__address { color: inherit; }

/* The footer draws its own top border, so the last section on a page drops
   its bottom one rather than stacking a second line on top of it. */
main > section:last-of-type { border-bottom: 0; }


/* -----------------------------------------------------------------
   CURTAIN
   Valance and side drapes frame the homepage hero like a proscenium.
   The traveller curtain covers the stage on arrival and draws back
   behind the drapes. Stacking, front to back: valance, drapes,
   traveller, stage. Default state is OPEN - the closed state only
   exists when the inline script adds it, so no-JS, reduced motion
   and repeat visits all get an open stage.
   ----------------------------------------------------------------- */

.c-hero--curtain {
    --valance-h: clamp(54px, 8.5vw, 128px);
    /* Drapes sit in the page margin, never over the copy */
    --leg-w: clamp(14px, calc((100vw - var(--container-max)) / 2 + var(--gutter) - 16px), 150px);
    padding-top: calc(var(--valance-h) + clamp(24px, 3.5vw, 48px));
    padding-bottom: clamp(48px, 6vw, 80px);
    isolation: isolate;
}

.c-curtain {
    position: absolute;
    inset: 0;
    z-index: 3;
    pointer-events: none;
}
.c-curtain > span { position: absolute; display: block; }

.c-curtain__valance {
    top: 0;
    left: 0;
    right: 0;
    height: var(--valance-h);
    z-index: 3;
    background: url(../images/fct/curtain-valance.webp) center top / auto 100% repeat-x;
    filter: drop-shadow(0 10px 14px rgba(0, 0, 0, 0.55));
}

.c-curtain__leg {
    top: calc(var(--valance-h) * 0.4);
    bottom: 0;
    width: var(--leg-w);
    z-index: 2;
    background-repeat: no-repeat;
    background-size: 100% 100%;
    filter: drop-shadow(0 0 14px rgba(0, 0, 0, 0.6));
}
.c-curtain__leg--left { left: 0; background-image: url(../images/fct/curtain-leg-left.webp); }
.c-curtain__leg--right { right: 0; background-image: url(../images/fct/curtain-leg-right.webp); }

.c-curtain__panel {
    top: 0;
    bottom: 0;
    width: 50.5%;
    z-index: 1;
    visibility: hidden;
    transform: translateX(var(--panel-out));
}
.c-curtain__panel--left { left: 0; --panel-out: -101%; }
.c-curtain__panel--right { right: 0; --panel-out: 101%; }
.c-curtain__panel::before {
    content: "";
    position: absolute;
    inset: 0;
    background: #3e0508 url(../images/fct/curtain-panel.webp) right bottom / cover no-repeat;
}
.c-curtain__panel--right::before { transform: scaleX(-1); }   /* one image, mirrored */
/* Shadow where the two halves meet */
.c-curtain__panel::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    width: 30px;
}
.c-curtain__panel--left::after  { right: 0; background: linear-gradient(90deg, transparent, rgba(0, 0, 0, 0.5)); }
.c-curtain__panel--right::after { left: 0;  background: linear-gradient(270deg, transparent, rgba(0, 0, 0, 0.5)); }

.is-curtain-closed .c-curtain__panel {
    visibility: visible;
    transform: none;
    transition: none;
}
.is-curtain-opening .c-curtain__panel {
    visibility: visible;
    transition: transform 1.75s cubic-bezier(0.62, 0.02, 0.28, 1), visibility 0s linear 1.75s;
}

/* The stage lights come up as the curtain draws */
.c-hero--curtain::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background: radial-gradient(ellipse 58% 75% at 50% 0%, rgba(var(--color-cream-rgb), 0.075), transparent 72%);
}
.is-curtain-closed::after { opacity: 0; }
.is-curtain-opening::after { transition: opacity 1.4s ease 0.6s; }

@media (prefers-reduced-motion: reduce) {
    .c-curtain__panel { display: none; }
}
@media print {
    .c-curtain { display: none !important; }
}


/* -----------------------------------------------------------------
   TEXTURES
   Patterns cut from the licensed Shutterstock sets, each a single
   alpha mask tinted in CSS. One tile serves every surface:
     arrows  - calls to action on Curtain Red
     octagon - giving; gold means money and membership
     floral  - the Lady Windermere production world
   ----------------------------------------------------------------- */

.has-texture {
    position: relative;
    isolation: isolate;
    --tx-color: var(--color-gold);
    --tx-opacity: 0.07;
}
.has-texture::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    background-color: var(--tx-color);
    opacity: var(--tx-opacity);
    -webkit-mask-repeat: repeat;
            mask-repeat: repeat;
    -webkit-mask-position: center top;
            mask-position: center top;
}
.tx-arrows::before  { -webkit-mask-image: url(../images/fct/tx-arrows.png);  mask-image: url(../images/fct/tx-arrows.png);  -webkit-mask-size: 112px 97px;  mask-size: 112px 97px; }
.tx-octagon::before { -webkit-mask-image: url(../images/fct/tx-octagon.png); mask-image: url(../images/fct/tx-octagon.png); -webkit-mask-size: 92px 92px;   mask-size: 92px 92px; }
.tx-facets::before  { -webkit-mask-image: url(../images/fct/tx-facets.png);  mask-image: url(../images/fct/tx-facets.png);  -webkit-mask-size: 60px 155px;  mask-size: 60px 155px; }
.tx-floral::before  { -webkit-mask-image: url(../images/fct/tx-floral.webp); mask-image: url(../images/fct/tx-floral.webp); -webkit-mask-size: 640px 640px; mask-size: 640px 640px; }

/* Strength by surface */
.c-audition--red.has-texture,
.c-cta--bg-brand.has-texture,
.c-email--red.has-texture { --tx-color: var(--color-gold); --tx-opacity: 0.16; }

[class*="--bg-light"].has-texture,
.c-audition--paper.has-texture,
.c-sponsors--paper.has-texture,
.c-email--paper.has-texture { --tx-color: var(--color-ink); --tx-opacity: 0.06; }

/* The floral keeps the poster's cool blues rather than brand gold */
.has-texture.tx-floral { --tx-color: var(--color-prod-blue); --tx-opacity: 0.075; }
[class*="--bg-light"].tx-floral,
.c-audition--paper.tx-floral,
.c-sponsors--paper.tx-floral,
.c-email--paper.tx-floral { --tx-color: var(--color-prod-deep); --tx-opacity: 0.13; }


/* -----------------------------------------------------------------
   FORM SECTION
   The form always sits on a light card with ink labels, whatever the
   section surface. Field styling for that card is in gravity-forms.css.
   ----------------------------------------------------------------- */

.c-form-section__form {
    background: var(--color-paper);
    color: var(--color-ink);
    padding: clamp(1.5rem, 1rem + 2vw, 2.5rem);
    border-radius: 0;
    border-top: 4px solid var(--color-red);
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.45);
}
[class*="--bg-light"] .c-form-section__form {
    background: #fff;
    box-shadow: 0 14px 36px rgba(20, 16, 14, 0.12);
}
h1.c-form-section__headline { font-size: var(--text-4xl); }

.c-form-section__contact {
    list-style: none;
    margin: var(--space-xl) 0 0;
    padding: 0;
    display: grid;
    gap: var(--space-lg);
}
.c-form-section__contact li {
    display: grid;
    grid-template-columns: 22px 1fr;
    column-gap: var(--space-sm);
    row-gap: 0.15rem;
    align-items: start;
}
.c-form-section__contact-icon { grid-row: span 2; color: var(--color-gold); padding-top: 1px; }
.c-form-section__contact-icon svg { width: 20px; height: 20px; }
.c-form-section__contact-label {
    font-family: var(--font-display);
    font-size: 0.72rem;
    font-weight: 500;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--color-cream-60);
}
.c-form-section__contact a { font-size: var(--text-lg); color: var(--color-cream); }
.c-form-section__contact a:hover { color: var(--color-gold-lift); }


/* -----------------------------------------------------------------
   AUDITION CALLOUT - paper surface
   ----------------------------------------------------------------- */

.c-audition--paper {
    background: var(--color-paper);
    color: var(--color-ink);
    border-bottom-color: var(--color-line-ink);
}
.c-audition--paper .c-audition__eyebrow { color: var(--color-red); }
.c-audition--paper .c-audition__headline { color: var(--color-ink); }
.c-audition--paper .c-audition__intro { color: rgba(var(--color-ink-rgb), 0.8); }
.c-audition--paper .c-audition__panel {
    background: #fff;
    border-color: var(--color-line-ink);
    box-shadow: 0 18px 40px rgba(20, 16, 14, 0.1);
}
.c-audition--paper .c-audition__details dt { color: rgba(var(--color-ink-rgb), 0.62); }
.c-audition--paper .c-audition__details dd { color: var(--color-ink); }
.c-audition--paper .c-audition__footnote { color: rgba(var(--color-ink-rgb), 0.62); }


/* -----------------------------------------------------------------
   SPONSOR WALL - before the first sponsor
   ----------------------------------------------------------------- */

.c-sponsors--empty .c-sponsors__inner {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: clamp(1rem, 3vw, 3rem);
}
.c-sponsors--empty .c-sponsors__label { margin: 0; }
.c-sponsors__pitch {
    margin: 0;
    max-width: 46ch;
    font-family: var(--font-display);
    font-size: var(--text-xl);
    line-height: 1.3;
    color: var(--color-ink);
}
.c-sponsors--ink .c-sponsors__pitch { color: var(--color-cream); }
@media (max-width: 900px) {
    .c-sponsors--empty .c-sponsors__inner { grid-template-columns: 1fr; justify-items: start; }
}


/* -----------------------------------------------------------------
   INVOLVE CARDS - photographs
   A 16:9 frame with a colour strip that carries each card's accent.
   ----------------------------------------------------------------- */

.c-involve__art { position: relative; }
.c-involve__card.has-image .c-involve__art { overflow: hidden; }
/* Ratio on the image itself: on the wrapper, the image's intrinsic height
   would stretch it back to the file's own proportions. */
.c-involve__card.has-image .c-involve__image {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    transition: transform 0.6s ease;
}
a.c-involve__card:hover .c-involve__image { transform: scale(1.035); }
.c-involve__card.has-image .c-involve__art::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 5px;
    background: var(--card-accent, var(--color-red));
}
.c-involve__card--masks  { --card-accent: var(--color-red); }
.c-involve__card--flats  { --card-accent: var(--color-prod-deep); }
.c-involve__card--blocks { --card-accent: var(--color-gold); }


/* -----------------------------------------------------------------
   PHOTOGRAPHS - a cut-paper offset block behind content images,
   borrowed from the logo's layered shapes
   ----------------------------------------------------------------- */

.c-content-media__media { position: relative; }
.c-content-media__image {
    position: relative;
    z-index: 1;
    width: 100%;
    box-shadow: 14px 14px 0 var(--color-red);
}
.c-content-media--left .c-content-media__image { box-shadow: -14px 14px 0 var(--color-red); }
[class*="--bg-light"] .c-content-media__image { box-shadow: 14px 14px 0 var(--color-gold); }
@media (max-width: 767px) {
    .c-content-media__image,
    .c-content-media--left .c-content-media__image { box-shadow: 8px 8px 0 var(--color-red); }
}

/* Failsafe: if the opener script never runs its course, the traveller
   gives up the stage after six visible seconds on its own. */
.is-curtain-closed .c-curtain__panel { animation: fct-curtain-failsafe 0s linear 6s forwards; }
@keyframes fct-curtain-failsafe { to { visibility: hidden; } }


/* -----------------------------------------------------------------
   IMAGIFY <picture> WRAPPING
   Imagify serves WebP by rewriting <img class="x"> into
   <picture class="x"><source><img></picture> and MOVES the class onto
   the <picture>. A rule written for img.x then styles an inline
   <picture> and the image beneath ignores it. Every image class this
   theme styles is therefore written for both shapes: the class
   (either element) gets the box, and its <img> gets the pixels.
   ----------------------------------------------------------------- */

picture.site-footer__logo-img,
picture.c-content-media__image,
picture.c-involve__image,
picture.c-hero__image { display: block; }

.site-footer__logo .site-footer__logo-img { width: clamp(136px, 12vw, 168px); height: auto; }
.site-footer__logo .site-footer__logo-img img { width: 100%; height: auto; }

.c-content-media__image img { width: 100%; height: auto; display: block; }
picture.c-content-media__image { box-shadow: none; }
.c-content-media__image img,
img.c-content-media__image { box-shadow: 14px 14px 0 var(--color-red); }
.c-content-media--left .c-content-media__image img,
.c-content-media--left img.c-content-media__image { box-shadow: -14px 14px 0 var(--color-red); }
[class*="--bg-light"] .c-content-media__image img,
[class*="--bg-light"] img.c-content-media__image { box-shadow: 14px 14px 0 var(--color-gold); }
@media (max-width: 767px) {
    .c-content-media__image img,
    img.c-content-media__image,
    .c-content-media--left .c-content-media__image img,
    .c-content-media--left img.c-content-media__image { box-shadow: 8px 8px 0 var(--color-red); }
}

/* The card rule above boxes the <picture> at 16:9; its image fills it.
   The hover zoom stays on the wrapper so it does not compound. */
.c-involve__card.has-image .c-involve__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.c-hero--split .c-hero__image img { width: 100%; height: auto; }

/* <figure> carries the browser's default 40px side margins */
.c-show-dates__poster { margin: 0; }
.c-show-dates__poster img { width: 100%; height: auto; display: block; }
.c-show-dates__poster picture { display: block; }
.c-give__status p { margin: 0; color: inherit; }
