/* =================================================================
   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;
    --color-burgundy:     #3D0A0F;  /* Better Not Pout ground, near oxblood - cream on it 16.1:1 */

    /* ---- 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; }
/* Anchored sections land below the sticky header. */
main [id] { scroll-margin-top: 96px; }

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); }
/* Compact listing (custom class c-show-dates--compact): dates only, for a page
   that already shows the show's artwork elsewhere. */
.c-show-dates--compact .c-show-dates__art { display: none; }
.c-show-dates--compact .c-show-dates__body { grid-template-columns: minmax(0, 1fr); }
.c-show-dates__empty { color: var(--color-cream-60); }


/* -----------------------------------------------------------------
   EMBED
   Givebutter ticket checkouts and goal bars. Two embeds sit side by side
   on wide screens and stack below 900px.
   ----------------------------------------------------------------- */

.c-embed {
    padding: var(--section-y) 0;
    border-bottom: 1px solid var(--color-line);
}
.c-embed__head { max-width: 60ch; margin-bottom: var(--space-xl); }
.c-embed__headline { margin: 0 0 var(--space-sm); }
.c-embed__intro { color: var(--color-cream-72); }
.c-embed__intro p:last-child { margin-bottom: 0; }
.c-embed__items { display: grid; gap: var(--space-xl); }
.c-embed--multi .c-embed__items { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.c-embed__item { min-width: 0; }
.c-embed__title { margin: 0 0 var(--space-md); font-size: var(--text-xl); color: var(--color-cream); }
.c-embed__note { margin: var(--space-lg) 0 0; font-size: 0.84375rem; color: var(--color-cream-60); }
@media (max-width: 899px) {
    .c-embed--multi .c-embed__items { grid-template-columns: minmax(0, 1fr); }
}


/* -----------------------------------------------------------------
   PRODUCTION CALLOUT
   A show pointed to from another page. The art hangs on the section's
   wall with the kit's hard offset shadow, and the text stays quiet so
   the show's texture carries the look. Art sits first when stacked.
   ----------------------------------------------------------------- */

.c-prod-callout {
    padding: var(--section-y) 0;
    background-color: var(--color-panel);
    color: var(--color-cream);
    border-bottom: 1px solid var(--color-line);
}
.c-prod-callout__inner {
    display: grid;
    grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
    gap: clamp(2rem, 1rem + 4vw, 4.5rem);
    align-items: center;
}
.c-prod-callout--no-art .c-prod-callout__inner { grid-template-columns: minmax(0, 1fr); }
.c-prod-callout__image,
.c-prod-callout__image img { display: block; width: 100%; height: auto; }
.c-prod-callout__image img,
img.c-prod-callout__image { box-shadow: 14px 14px 0 var(--color-ink-deep); }
.c-prod-callout .eyebrow { margin-bottom: var(--space-sm); }
.c-prod-callout__title { margin: 0; color: var(--color-cream); }
.c-prod-callout__credit { margin: var(--space-xs) 0 0; font-size: var(--text-lg); color: var(--color-cream-80); }
.c-prod-callout__details { max-width: 44ch; margin-top: var(--space-lg); color: var(--color-cream-72); }
.c-prod-callout__details p:last-child { margin-bottom: 0; }
.c-prod-callout__buttons { display: flex; flex-wrap: wrap; gap: var(--space-sm); margin-top: var(--space-xl); }
@media (max-width: 899px) {
    .c-prod-callout__inner { grid-template-columns: minmax(0, 1fr); }
    .c-prod-callout__image img,
    img.c-prod-callout__image { box-shadow: 8px 8px 0 var(--color-ink-deep); }
}


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

/* Better Not Pout: the poster's holiday tartan, laid at 30% over a ground
   near oxblood. Green bands with a dark centre line cross near the start of
   each sett and a cream pinstripe runs through the red. The edges fall away
   like a lit stage, under the tartan so they keep their full depth. Unlike
   the masks above it brings its own ground, so it is for dark sections only. */
.has-texture.tx-plaid {
    --tx-opacity: 0.3;
    --plaid-sett: 84px;
    --plaid-band: rgba(24, 84, 50, 0.46);
    --plaid-line: rgba(8, 5, 4, 0.45);
    --plaid-pin:  rgba(255, 252, 209, 0.16);
    background-color: var(--color-burgundy);
    background-image: radial-gradient(ellipse 90% 120% at 30% 50%, transparent 40%, rgba(12, 3, 4, 0.45));
    color: var(--color-cream);
}
.has-texture.tx-plaid::before {
    background-color: transparent;
    -webkit-mask-image: none;
            mask-image: none;
    background-image:
        linear-gradient(90deg, transparent 71.4%, var(--plaid-pin) 71.4% 73.2%, transparent 73.2%),
        linear-gradient(0deg, transparent 71.4%, var(--plaid-pin) 71.4% 73.2%, transparent 73.2%),
        linear-gradient(90deg, transparent 11.9%, var(--plaid-band) 11.9% 27.4%, var(--plaid-line) 27.4% 29.8%, var(--plaid-band) 29.8% 45.2%, transparent 45.2%),
        linear-gradient(0deg, transparent 11.9%, var(--plaid-band) 11.9% 27.4%, var(--plaid-line) 27.4% 29.8%, var(--plaid-band) 29.8% 45.2%, transparent 45.2%);
    background-size: var(--plaid-sett) var(--plaid-sett), var(--plaid-sett) var(--plaid-sett), var(--plaid-sett) var(--plaid-sett), var(--plaid-sett) var(--plaid-sett);
}
/* Gold lift keeps small gold type above 6.6:1 on the oxblood */
.tx-plaid .eyebrow,
.tx-plaid .c-hero__eyebrow { color: var(--color-gold-lift); }
/* Curtain Red sinks into the oxblood, so primary buttons turn cream here */
.tx-plaid .btn--primary {
    background: var(--color-cream);
    color: var(--color-ink);
    border-color: var(--color-cream);
}
.tx-plaid .btn--primary:hover {
    background: #fff;
    border-color: #fff;
    color: var(--color-ink);
}
@media (max-width: 767px) {
    .has-texture.tx-plaid { --plaid-sett: 64px; }
}


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