/*
Custom CSS for website theme
Version: 1.0
Description: Used to establish the look and feel for the custom website
Author: Full Spectrum Marketing
Author URL: http://www.fsm.agency

DEVELOPER NOTES:
- #page-container selector is intentionally used throughout for scoping to override
  Divi and WordPress core styles. This ensures proper specificity and prevents
  style conflicts with parent theme and plugin styles.
- Empty button style declarations (fsm-btn-*) are framework placeholders for
  custom website implementations. Fill these in per project requirements.
- Transition syntax: Property-specific transitions (e.g., "border-color 0.2s ease")
  are preferred for performance and clarity, but "ease all" is acceptable for
  simple cases where multiple properties need the same transition.
- Copy variables from theme.css to variables.css when ready to organize per project.
- Use only semantic variables in CSS (e.g. --text-link, --background-tertiary). Do not use
  primitive tokens (e.g. --blue-500, --gray-200) outside of :root. Primitives are only used
  to define semantic variables inside :root.
- If a semantic is missing (e.g. --text-link-hover, --btn-primary-bg-lighter,
  --background-brand-subtle), add it to :root and use it here. Heading fluid sizes use
  --font-size-h1 through --font-size-h6 (and --font-size-h1-display with .fsm-h1-display).
  UI scale still uses --font-size-* primitives (e.g. --form-label-font-size).
*/
:root {
    /* Adobe Fonts kit (zgz8sxx) registers kebab-case family names — use those first. */
    --font-family-serif-display: "adobe-garamond-pro", "Adobe Garamond Pro", Garamond, "Times New Roman", serif;
    --font-family-sans-heading: "proxima-nova", "Proxima Nova", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    /* --font-family-sans: "poppins", "Poppins", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; */
    --font-family-sans: "proxima-nova", "Proxima Nova", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --font-family-serif: var(--font-family-serif-display);

    --font-weight-extra-light: 100;
    --font-weight-light: 300;
    --font-weight-regular: 400;
    --font-weight-medium: 500;
    --font-weight-semibold: 600;
    --font-weight-bold: 700;

    /* UI scale (components); body copy uses --font-size-body */
    --font-size-50: 12px;
    --font-size-100: 14px;
    --font-size-200: 16px;
    --font-size-300: 20px;
    --font-size-400: 24px;
    --font-size-500: 32px;
    --font-size-600: 40px;
    --font-size-700: 48px;
    --font-size-800: 64px;
    --font-size-900: 72px;

    --font-size-body: 18px;

    /*
     * Fluid type: min at 600px viewport and below, max from 1200px up.
     * Formula: clamp(min, calc(min + (max - min) * (100vw - 600px) / 600px), max)
     */
    --font-size-h1-display: clamp(40px, calc(40px + (72px - 40px) * ((100vw - 600px) / 600px)), 72px);
    --font-size-h1: clamp(42px, calc(42px + (72px - 42px) * ((100vw - 600px) / 600px)), 72px);
    --font-size-h2: clamp(36px, calc(36px + (42px - 36px) * ((100vw - 600px) / 600px)), 42px);
    --font-size-h3: clamp(20px, calc(20px + (26px - 20px) * ((100vw - 600px) / 600px)), 26px);
    --font-size-button-text: clamp(16px, calc(16px + (20px - 16px) * ((100vw - 600px) / 600px)), 20px);
    --font-size-h35: clamp(18px, calc(18px + (24px - 18px) * ((100vw - 600px) / 600px)), 24px);
    --font-size-h4: clamp(16px, calc(16px + (20px - 16px) * ((100vw - 600px) / 600px)), 20px);
    --font-size-h5: clamp(12px, calc(12px + (16px - 12px) * ((100vw - 600px) / 600px)), 16px);
    --font-size-h6: clamp(18px, calc(18px + (22px - 18px) * ((100vw - 600px) / 600px)), 22px);

    --line-height-h1-display: 1.05;
    --line-height-h1: 1.05;
    --line-height-h2: 1.1;
    --line-height-h3: 1.2;
    --line-height-h4: 1.25;
    --line-height-h5: 1.3;
    --line-height-h6: 1.3;

    --line-height-xs: 1.25;
    --line-height-sm: 1.6;

    --size-0: 0px;
    --size-1: 1px;
    --size-2: 2px;
    --size-4: 4px;
    --size-6: 6px;
    --size-8: 8px;
    --size-10: 10px;
    --size-12: 12px;
    --size-16: 16px;
    --size-20: 20px;
    --size-24: 24px;
    --size-28: 28px;
    --size-32: 32px;
    --size-40: 40px;
    --size-48: 48px;
    --size-56: 56px;
    --size-64: 64px;
    --size-80: 80px;
    --size-96: 96px;
    --size-100: 100px;
    --size-120: 120px;
    --size-160: 160px;
    --size-999: 999px;
    --size-negative-4: -4px;
    --size-negative-8: -8px;
    --size-negative-12: -12px;
    --size-negative-16: -16px;
    --size-negative-24: -24px;

    /* Brand primitives (CVCA Royals palette) */
    --white: #ffffff;
    --black: #1A1A1B;
    /* Cool Gray 11C — default body / supporting UI (grey-600) */
    --gray-600: #565759;
    /* Cool Gray 3C — default borders / strokes (grey-200) */
    --gray-200: #d1d3d4;
    /* Supporting neutrals — interpolated between 200 and 600 for scale continuity */
    --gray-50: #fafbfb;
    --gray-100: #f4f5f5;
    --gray-300: #b5b6b8;
    --gray-400: #848688;
    --gray-500: #6d6e70;
    --gray-700: #454647;
    --gray-800: #353637;
    --gray-900: #1f1f20;

    /* Royal Blue (blue-600) — signature; Dark Blue (blue-700) — hover / deep surfaces; Light Blue (blue-200) — accents on dark */
    --blue-50: #e9f4fc;
    --blue-100: #d3e8f7;
    --blue-200: #a7cfee;
    --blue-300: #76b0d9;
    --blue-400: #3d82b6;
    --blue-500: #0054A6;
    --blue-600: #0054A6;
    --blue-700: #003273;
    --blue-800: #002050;
    --blue-900: #001428;

    /* Yellow (yellow-300) — accent CTAs / badges; text on yellow uses yellow-600 (Figma accent/highlight-text) */
    --yellow-100: #F6D63C;
    --yellow-300: #f8e06d;
    --yellow-600: #8a6e0a;

    --teal-50: #F0FDFAFF;
    --teal-100: #CCFBF1FF;
    --teal-200: #99F6E4FF;
    --teal-300: #5EEAD4FF;
    --teal-400: #2DD4BFFF;
    --teal-500: #14B8A6FF;
    --teal-600: #0D9488FF;
    --teal-700: #0F766EFF;
    --teal-800: #115E59FF;
    --teal-900: #134E4AFF;

    --orange-50: #FFF7ED;
    --orange-100: #FFEDD5;
    --orange-400: #FB923C;
    --orange-500: #F97316;
    --orange-600: #EA580C;
    --orange-700: #C2410C;

    --purple-50: #EEF2FF;
    --purple-100: #E0E7FF;
    --purple-400: #818CF8;
    --purple-500: #6366F1;
    --purple-600: #4F46E5;
    --purple-700: #4338CA;

    --feedback-green-50: #F0FDF4;
    --feedback-green-100: #DCFCE7;
    --feedback-green-500: #22C55E;
    --feedback-green-700: #15803D;

    --feedback-red-50: #FEF2F2;
    --feedback-red-100: #FEE2E2;
    --feedback-red-500: #EF4444;
    --feedback-red-700: #B91C1C;

    --radius-none: var(--size-0);
    --radius-sm: var(--size-4);
    --radius-md: var(--size-8);
    --radius-lg: var(--size-16);
    --radius-xl: var(--size-24);
    --radius-full: var(--size-999);

    --border-width-none: var(--size-0);
    --border-width-default: var(--size-1);
    --border-width-strong: var(--size-2);
    --border-width-heavy: var(--size-4);

    --space-none: var(--size-0);
    --space-xs: var(--size-4);
    --space-sm: var(--size-8);
    --space-md: var(--size-12);
    --space-lg: var(--size-16);

    --space-card-sm: var(--size-20);
    --space-card-md: var(--size-24);
    --space-card-lg: var(--size-32);
    --space-card-xl: var(--size-40);

    --space-section-sm: var(--size-48);
    --space-section-md: var(--size-64);
    --space-section-lg: var(--size-80);
    --space-section-hero: var(--size-96);

    /* White — primary page canvas; light neutrals for layered surfaces */
    --background-primary: var(--white);
    --background-secondary: var(--gray-50);
    --background-tertiary: var(--gray-100);
    /* Dark Blue — deep brand / inverse surfaces */
    --background-inverse: var(--blue-700);
    /* Header scrim over heroes (design: transparent primary nav) */
    --bg-overlay: rgba(26, 26, 27, 0.40);

    /* Figma text/body */
    --text-default: #3f4042;
    /* Figma text/heading — Royal Blue */
    --text-heading: var(--blue-600);
    --text-muted: var(--gray-500);
    /* Figma text/link */
    --text-link: #1a6bbf;
    --text-link-hover: var(--blue-700);
    --text-on-action: var(--white);
    --text-inverse: var(--white);

    --icon-default: var(--gray-600);
    --icon-muted: var(--gray-300);
    --icon-brand: var(--blue-600);
    --icon-on-brand: var(--white);
    --icon-on-brand-secondary: var(--blue-200);

    /* Cool Gray 3C — default borders */
    --border-default: var(--gray-200);
    --border-interactive: var(--blue-600);
    /* Royal Blue — focus matches primary interactive */
    --border-focus: var(--blue-600);

    --feedback-success-bg: var(--feedback-green-50);
    --feedback-success-text: var(--feedback-green-700);
    --feedback-destructive-bg: var(--feedback-red-50);
    --feedback-destructive-text: var(--feedback-red-700);

    --form-field-label: var(--text-default);
    --form-field-border: var(--border-default);
    --form-field-background: var(--background-primary);
    --form-field-focus: var(--border-focus);
    --form-field-text: var(--text-default);
    --form-icon: var(--icon-default);
    --form-placeholder-text: var(--text-muted);
    --form-required-error: var(--feedback-destructive-text);
    --form-success: var(--feedback-success-text);

    --btn-radius: var(--radius-md);
    --btn-padding-x: var(--space-lg);
    --btn-padding-y: var(--space-md);
    --btn-gap: var(--size-8);
    --btn-font-size: 16px;
    --btn-font-weight: 700;
    --btn-border-width: var(--size-2);
    --btn-focus-ring-width: var(--size-2);
    --btn-focus-ring-offset: 0px;
    --btn-focus-ring-radius: 0px;
    /* Royal Blue default, Dark Blue hover */
    --btn-primary-bg: var(--color-yellow);
    --btn-primary-bg-hover: var(--yellow-100);
    --btn-primary-text: var(--color-black);
    --btn-outlined-border: var(--blue-600);
    --btn-outlined-border-hover: var(--blue-700);
    --btn-outlined-text: var(--blue-600);
    --btn-outlined-text-hover: var(--blue-700);
    --btn-ghost-text: var(--blue-600);
    --btn-ghost-text-hover: var(--blue-700);
    --btn-ghost-bg-hover: var(--blue-100);
    --var---color-action-secondary-default-: var(--blue-700);
    --var---color-action-secondary-hover-: var(--blue-800);
    --var---color-action-secondary-text-: var(--white);
    --var---color-action-accent-default-: var(--yellow-300);
    --var---color-action-accent-hover-: #e6cf45;
    --var---color-action-accent-text-: var(--yellow-600);

    /* Focus ring & skip-link (used by core.css) */
    --focus-ring-outer: var(--blue-600);
    --focus-ring-inner: var(--white);

    /* Video control theming (used by core.css) */
    --video-control-bg: rgba(0, 0, 0, 0.6);
    --video-control-bg-hover: rgba(0, 0, 0, 0.8);
    --video-control-shadow: rgba(0, 0, 0, 0.4);
    --video-control-shadow-hover: rgba(0, 0, 0, 0.6);
    --video-control-focus: var(--blue-600);
    --video-control-icon: var(--white);

    --color-royal-blue: var(--blue-500);
    --color-dark-blue: var(--blue-700);
    --color-light-blue: var(--blue-200);
    --color-yellow: var(--yellow-300);
    --color-black: var(--black);
    --color-light-gray: var(--gray-200);
    --color-dark-gray: var(--gray-600);
    --color-white: var(--white);
    --color-off-white: #F8F8F8;
}



/* Skip link sits on --yellow-300, so it must use the dark button text token, not --text-inverse. */
.skip-link {
    background: var(--btn-primary-bg);
    color: var(--btn-primary-text);
    text-decoration: underline;
}

/* Dual-tone ring: the link overlaps the dark header, where a single blue outline drops below 3:1. */
.skip-link:focus,
.skip-link:focus-visible {
    outline: 3px solid var(--blue-700);
    outline-offset: 0;
    box-shadow: 0 0 0 6px var(--white);
}

/* BUTTON TEXT IS DARK - PRIMARY */
#page-container .et_pb_button.fsm-btn-primary,
#page-container .et_pb_button.et_pb_button_one {}

#page-container .et_pb_button.fsm-btn-primary:hover,
#page-container .et_pb_button.et_pb_button_one:hover {}

#page-container .et_pb_button.fsm-btn-primary:focus,
#page-container .et_pb_button.et_pb_button_one:focus {}

/* BUTTON TEXT IS DARK - SECONDARY */
#page-container .et_pb_button.fsm-btn-secondary,
#page-container .et_pb_button.et_pb_button_two {}

#page-container .et_pb_button.fsm-btn-secondary:hover,
#page-container .et_pb_button.et_pb_button_two:hover {}

#page-container .et_pb_button.fsm-btn-secondary:focus,
#page-container .et_pb_button.et_pb_button_two:focus {}

/* BUTTON TEXT IS LIGHT - PRIMARY */
#page-container .et_pb_button.et_pb_bg_layout_dark.fsm-btn-primary,
#page-container .et_pb_button.et_pb_bg_layout_dark.et_pb_button_one {}

#page-container .et_pb_button.et_pb_bg_layout_dark.fsm-btn-primary:hover,
#page-container .et_pb_button.et_pb_bg_layout_dark.et_pb_button_one:hover {}

#page-container .et_pb_button.et_pb_bg_layout_dark.fsm-btn-primary:focus,
#page-container .et_pb_button.et_pb_bg_layout_dark.et_pb_button_one:focus {}

/* BUTTON TEXT IS LIGHT - SECONDARY*/
#page-container .et_pb_button.et_pb_bg_layout_dark.fsm-btn-secondary,
#page-container .et_pb_button.et_pb_bg_layout_dark.et_pb_button_two {}

#page-container .et_pb_button.et_pb_bg_layout_dark.fsm-btn-secondary:hover,
#page-container .et_pb_button.et_pb_bg_layout_dark.et_pb_button_two:hover {}

#page-container .et_pb_button.et_pb_bg_layout_dark.fsm-btn-secondary:focus,
#page-container .et_pb_button.et_pb_bg_layout_dark.et_pb_button_two:focus {}

/* WHITE BUTTON*/
#page-container .et_pb_button.fsm-btn-white {}

#page-container .et_pb_button.fsm-btn-white:hover {}

#page-container .et_pb_button.fsm-btn-white:focus {}

/* LARGE BUTTON SIZING */
#page-container .et_pb_button.large {
    padding: 1em 2em;
    font-size: var(--font-size-200);
}

/* SMALL BUTTON SIZING */
#page-container .et_pb_button.small {
    padding: .7em 1.3em;
    font-size: 14px;
}

/* ACCESSIBILITY UNIVERSAL TEXT LINKS */
#main-content a:not(.et_pb_button, .icon, img, .fsm-post-list a, .card, .exclude-style, .et_pb_video_play, .tribe-events-calendar-month__day-date-link) {
    border-radius: 8px;
    padding: 2px;
    transition: ease all .2s;
    display: inline;
    overflow: hidden;
    text-decoration: underline;
}

#main-content a:not(.et_pb_button, .icon, img, .fsm-post-list a, .card, .et_pb_video_play, .tribe-events-calendar-month__day-date-link):hover {
    border-radius: 8px;
    background-color: rgba(0, 71, 147, 0.15);
    transition: ease all .2s;
}

/*
 * Typography (CVCA): Adobe Garamond (H1 / display), Proxima Nova (H2–H6), Poppins (body).
 * Add H1 display size in Divi with class `fsm-h1-display` on the heading or module.
 */

body:not(.et-vb-root-ancestor) {
    font-family: var(--font-family-sans);
}

body:not(.et-vb-root-ancestor) #page-container {
    h1 {
        font-family: var(--font-family-serif-display);
        font-weight: var(--font-weight-semibold);
        font-size: var(--font-size-h1);
        line-height: var(--line-height-h1);
        color: var(--text-heading);
        letter-spacing: -1%;
    }

    h1.fsm-h1-display {
        font-size: var(--font-size-h1-display);
        line-height: var(--line-height-h1-display);
    }

    h2 {
        font-family: var(--font-family-sans-heading);
        font-weight: var(--font-weight-bold);
        font-size: var(--font-size-h2);
        line-height: var(--line-height-h2);
        color: var(--text-heading);
        margin-bottom: 1rem;
    }

    h3 {
        font-family: var(--font-family-sans-heading);
        font-weight: var(--font-weight-semibold);
        font-size: var(--font-size-h3);
        line-height: var(--line-height-h3);
        color: var(--text-heading);
    }

    h4 {
        font-family: var(--font-family-sans-heading);
        font-weight: var(--font-weight-semibold);
        font-size: var(--font-size-h4);
        line-height: var(--line-height-h4);
        color: var(--text-heading);
    }

    h5 {
        font-family: var(--font-family-sans-heading);
        font-weight: var(--font-weight-bold);
        font-size: var(--font-size-h5);
        line-height: var(--line-height-h5);
        color: var(--text-heading);
        text-transform: uppercase;
    }

    h6 {
        font-family: var(--font-family-sans-heading);
        font-weight: var(--font-weight-bold);
        font-size: var(--font-size-h6);
        line-height: var(--line-height-h6);
        color: var(--text-heading);
        text-transform: uppercase;
    }
}

#page-container #et-boc .h2-size {
    font-size: var(--font-size-h2);
}

#page-container #et-boc .h3-size {
    font-size: var(--font-size-h3);
}

#page-container #et-boc .button-text-size {
    font-size: var(--font-size-button-text);
}

#page-container #et-boc .h35-size {
    font-size: var(--font-size-h35);
}

#page-container #et-boc .h4-size {
    font-size: var(--font-size-h4);
}

#page-container #et-boc .h5-size {
    font-size: var(--font-size-h5);
}

#page-container #et-boc .h6-size {
    font-size: var(--font-size-h6);
}

body:not(.et-vb-root-ancestor) {

    p,
    li {
        font-family: var(--font-family-sans);
        font-size: var(--font-size-body);
        line-height: var(--line-height-sm);
    }
}

body .small {
    font-size: .75rem;
}

/* Blog / single post: match global heading + body tokens */
body:not(.et-vb-root-ancestor).post-template-default {
    h1.entry-title {
        font-family: var(--font-family-serif-display) !important;
        font-weight: var(--font-weight-medium) !important;
        font-size: var(--font-size-h1) !important;
        line-height: var(--line-height-h1) !important;
        color: var(--text-heading) !important;
    }

    h1.entry-title.fsm-h1-display {
        font-size: var(--font-size-h1-display) !important;
        line-height: var(--line-height-h1-display) !important;
    }

    h2 {
        font-family: var(--font-family-sans-heading) !important;
        font-weight: var(--font-weight-bold) !important;
        font-size: var(--font-size-h2) !important;
        line-height: var(--line-height-h2) !important;
        color: var(--text-heading) !important;
    }

    h3 {
        font-family: var(--font-family-sans-heading) !important;
        font-weight: var(--font-weight-semibold) !important;
        font-size: var(--font-size-h3) !important;
        line-height: var(--line-height-h3) !important;
        color: var(--text-heading) !important;
    }

    h4 {
        font-family: var(--font-family-sans-heading) !important;
        font-weight: var(--font-weight-semibold) !important;
        font-size: var(--font-size-h4) !important;
        line-height: var(--line-height-h4) !important;
        color: var(--text-heading) !important;
    }

    h5 {
        font-family: var(--font-family-sans-heading) !important;
        font-weight: var(--font-weight-bold) !important;
        font-size: var(--font-size-h5) !important;
        line-height: var(--line-height-h5) !important;
        text-transform: uppercase !important;
        color: var(--text-heading) !important;
    }

    h6 {
        font-family: var(--font-family-sans-heading) !important;
        font-weight: var(--font-weight-bold) !important;
        font-size: var(--font-size-h6) !important;
        line-height: var(--line-height-h6) !important;
        text-transform: uppercase !important;
        color: var(--text-heading) !important;
    }
}

.archive #page-container #et-boc h1 {
    font-family: var(--font-family-serif-display);
    font-weight: var(--font-weight-semibold);
    font-size: var(--font-size-h1);
    line-height: var(--line-height-h1);
    color: var(--text-heading);
    letter-spacing: -1%;
}

/* END FONT STYLE */


/* START HEADER STYLES */
#main-header {
    margin-top: 20px;
}

/* .mega-menu li a {
    color: var(--text-heading) !important;
    transition: ease all 0.3s !important;
} */

.mega-menu li a:hover {
    opacity: .8 !important;
}

/* ACTIVE LINK STYLES */

.mega-current-menu-item a.mega-menu-link {
    text-decoration: underline 2px inherit !important;
    text-underline-offset: 8px !important;
}


/*mobile menu*/
#page-container #et-boc #mega-menu-wrap-primary-menu li#mobile-menu-item {
    text-align: left !important;

}

#page-container #et-boc #mega-menu-wrap-primary-menu li#mobile-menu-item a {
    color: #FFFFFF !important;
    text-decoration-color: #FFFFFF !important;
    padding: 0 10px;
}

/* Merged mobile items share the same top-level hover as primary
   (#mega-menu-primary-menu > li.mega-menu-item > a:hover). Do not add a
   separate underline-only hover here — it made secondary clones diverge. */

/* Guardrail: hide placeholder menu items that render as empty "#" links. */
#page-container #et-boc #mega-menu-wrap-primary-menu li.mega-menu-item:has(> a.mega-menu-link[href="#"]:empty),
#page-container #et-boc #mega-menu-wrap-secondary-menu li.mega-menu-item:has(> a.mega-menu-link[href="#"]:empty) {
    display: none !important;
}

#page-container #et-boc li.mobile-menu-item {
    padding-top: 0;
    padding-bottom: 0;
}


/* #mega-menu-wrap-primary-menu #mega-menu-primary-menu>li.mega-menu-flyout ul.mega-sub-menu li.mega-menu-item a.mega-menu-link,
li.mobile-menu-item {
    color: var(--text-heading) !important;
} */

/* Match Max Mega Menu desktop breakpoint (min-width: 982px). */
@media screen and (min-width: 982px) {

    #page-container #et-boc #mega-menu-wrap-primary-menu li.mobile-menu-item,
    #page-container #et-boc #mega-menu-wrap-primary-menu li.mobile-menu-search {
        display: none !important;
    }
}

/*END HEADER*/

/* START FOOTER STYLES */
/*END FOOTER*/

/* START PAGE ORGANIZATION */

/*
HOMEPAGE
*/
/*END*/

/*
BLOG
*/
/*END*/

/*
BLOG LIST
*/
/*END*/

/* ============================================
   GRAVITY FORMS ORBITAL THEME STYLES
   ============================================ */

/* Global Orbital Theme Variables - Maps theme variables to Gravity Forms CSS API */
.gform-theme--orbital {
    /* Primary Colors */
    --gf-color-primary: var(--blue-600);
    --gf-color-primary-contrast: var(--text-on-action);
    --gf-color-primary-darker: var(--btn-primary-bg-hover);
    --gf-color-primary-lighter: var(--btn-primary-bg);

    /* Secondary Colors */
    --gf-color-secondary: var(--icon-default);
    --gf-color-secondary-contrast: var(--text-on-action);
    --gf-color-secondary-darker: var(--var---color-action-secondary-hover-);
    --gf-color-secondary-lighter: var(--icon-default);

    /* Control Colors */
    --gf-control-bg-color: var(--background-primary);
    --gf-control-bg-color-focus: var(--background-primary);
    --gf-control-border-color: var(--border-default);
    --gf-control-border-color-focus: var(--gf-color-primary);
    --gf-control-color: var(--text-default);
    --gf-control-color-focus: var(--text-default);
    --gf-control-color-placeholder: var(--text-muted);

    /* Framework Control Variables (gf-ctrl-* shorthand) */
    --gf-ctrl-bg-color: var(--gf-control-bg-color);
    --gf-ctrl-bg-color-focus: var(--gf-control-bg-color-focus);
    --gf-ctrl-border-color: var(--gf-control-border-color);
    --gf-ctrl-border-color-focus: var(--gf-color-primary);
    --gf-ctrl-color: var(--gf-control-color);
    --gf-ctrl-color-focus: var(--gf-control-color-focus);

    /* Focus Outline Variables - Subtle shadow for depth, border provides main feedback */
    --gf-ctrl-outline-color-focus: var(--blue-600);
    --gf-ctrl-outline-width-focus: 2px;

    /* Label Colors */
    --gf-label-color: var(--text-heading);
    --gf-label-font-size: var(--font-size-200);
    --gf-label-font-weight: var(--font-weight-medium);
    --gf-label-line-height: var(--line-height-sm);

    /* Description Colors */
    --gf-description-color: var(--text-muted);
    --gf-description-font-size: var(--font-size-100);
    --gf-description-line-height: var(--line-height-sm);

    /* Button Colors */
    --gf-button-primary-bg-color: var(--btn-primary-bg);
    --gf-button-primary-bg-color-hover: var(--btn-primary-bg-hover);
    --gf-button-primary-color: var(--btn-primary-text);
    --gf-button-primary-color-hover: var(--btn-primary-text);

    /* Border & Radius */
    --gf-control-border-radius: 4px;
    --gf-control-border-width: 1px;
    --gf-control-padding-x: 16px;
    --gf-control-padding-y: 12px;

    /* Spacing */
    --gf-field-margin-bottom: 24px;
    --gf-label-margin-bottom: 8px;
    --gf-description-margin-top: 4px;

    /* Typography */
    --gf-control-font-size: var(--font-size-200);
    --gf-control-line-height: var(--line-height-sm);
    --gf-control-font-family: var(--font-family-sans);

    /* Error States */
    --gf-error-color: var(--feedback-destructive-text);
    --gf-error-bg-color: var(--feedback-destructive-bg);
    --gf-error-border-color: var(--feedback-destructive-text);

    /* Success States */
    --gf-success-color: var(--form-success);
    --gf-success-bg-color: var(--feedback-success-bg);
}

/* Foundation Layer Variable Overrides - Override Foundation defaults */
#page-container .gform-theme--foundation,
#page-container .gform-theme--api {
    --gf-form-gap-x: 16px;
    --gf-form-gap-y: 20px;
    --gf-form-footer-margin-y-start: 24px;
    --gf-form-footer-gap: 8px;
    --gf-field-gap-x: 12px;
    --gf-field-gap-y: 12px;
    --gf-field-date-width: 168px;
    --gf-field-time-width: 110px;
    --gf-field-list-btns-gap: 8px;
    --gf-field-list-btns-width: calc(32px + var(--gf-field-list-btns-gap) + var(--gf-field-gap-x));
    --gf-field-pg-steps-gap-y: 8px;
    --gf-field-pg-steps-gap-x: 24px;
    --gf-label-width: 30%;
    --gf-label-req-gap: 6px;
}

/* Form Wrapper Base Styles */
#page-container .gform-theme--orbital {
    font-family: var(--font-family-sans);
    color: var(--text-default);
}

/* Form Field Container */
#page-container .gform-theme--orbital .gfield {
    margin-bottom: var(--gf-field-margin-bottom);
}

/* Labels */
#page-container .gform-theme--orbital .gfield_label,
#page-container .gform-theme--orbital label.gfield_label {
    color: var(--gf-label-color);
    font-size: var(--gf-label-font-size);
    font-weight: var(--gf-label-font-weight);
    line-height: var(--gf-label-line-height);
    margin-bottom: var(--gf-label-margin-bottom);
    font-family: var(--font-family-sans);
}

/* Required Label Indicator */
#page-container .gform-theme--orbital .gfield_required {
    color: var(--gf-error-color);
    margin-left: 4px;
}

#page-container #et-boc .et_pb_blurb_content {
    max-width: unset;
}

/* Field Descriptions */
#page-container .gform-theme--orbital .gfield_description,
#page-container .gform-theme--orbital .gfield_description.validation_message {
    color: var(--gf-description-color);
    font-size: var(--gf-description-font-size);
    line-height: var(--gf-description-line-height);
    margin-top: var(--gf-description-margin-top);
}

/* Text Inputs, Textareas, Selects */
#page-container .gform-theme--orbital input[type="text"],
#page-container .gform-theme--orbital input[type="email"],
#page-container .gform-theme--orbital input[type="tel"],
#page-container .gform-theme--orbital input[type="url"],
#page-container .gform-theme--orbital input[type="number"],
#page-container .gform-theme--orbital input[type="password"],
#page-container .gform-theme--orbital input[type="date"],
#page-container .gform-theme--orbital input[type="time"],
#page-container .gform-theme--orbital textarea,
#page-container .gform-theme--orbital select {
    background-color: var(--gf-control-bg-color);
    border: var(--gf-control-border-width) solid var(--gf-control-border-color);
    border-radius: var(--gf-control-border-radius);
    color: var(--gf-control-color);
    font-size: var(--gf-control-font-size);
    line-height: var(--gf-control-line-height);
    font-family: var(--gf-control-font-family);
    padding: var(--gf-control-padding-y) var(--gf-control-padding-x);
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
    width: 100%;
}

/* Input Focus States - Framework handles focus states via CSS variables */
/* Removed manual focus styles to allow framework variables to work properly */

/* Placeholder Text */
#page-container .gform-theme--orbital input::placeholder,
#page-container .gform-theme--orbital textarea::placeholder {
    color: var(--gf-control-color-placeholder);
    opacity: 1;
}

/* Submit Button */
#page-container .gform-theme--orbital .gform_button,
#page-container .gform-theme--orbital input[type="submit"],
#page-container .gform-theme--orbital button[type="submit"] {
    background-color: var(--gf-button-primary-bg-color);
    color: var(--gf-button-primary-color);
    border: none;
    border-radius: var(--gf-control-border-radius);
    padding: var(--gf-control-padding-y) var(--gf-control-padding-x);
    font-size: var(--gf-control-font-size);
    font-weight: var(--font-weight-medium);
    font-family: var(--font-family-sans);
    cursor: pointer;
    transition: background-color 0.2s ease, transform 0.1s ease;
    text-transform: uppercase;
    letter-spacing: 0.32px;
}

#page-container .gform-theme--orbital .gform_button:hover,
#page-container .gform-theme--orbital input[type="submit"]:hover,
#page-container .gform-theme--orbital button[type="submit"]:hover {
    background-color: var(--gf-button-primary-bg-color-hover);
}

#page-container .gform-theme--orbital .gform_button:active,
#page-container .gform-theme--orbital input[type="submit"]:active,
#page-container .gform-theme--orbital button[type="submit"]:active {
    transform: translateY(1px);
}

/* Error States */
#page-container .gform-theme--orbital .gfield_error input,
#page-container .gform-theme--orbital .gfield_error textarea,
#page-container .gform-theme--orbital .gfield_error select {
    border-color: var(--gf-error-border-color);
    background-color: var(--gf-error-bg-color);
}

#page-container .gform-theme--orbital .gfield_error .validation_message {
    color: var(--gf-error-color);
    font-size: var(--gf-description-font-size);
    margin-top: var(--gf-description-margin-top);
}

/* Success Message */
#page-container .gform-theme--orbital .gform_confirmation_message {
    background-color: var(--gf-success-bg-color);
    color: var(--gf-success-color);
    padding: 16px;
    border-radius: var(--gf-control-border-radius);
    border-left: 4px solid var(--gf-success-color);
    margin-bottom: var(--gf-field-margin-bottom);
}

/* Checkbox and Radio Styles */
#page-container .gform-theme--orbital .gchoice label {
    font-weight: var(--font-weight-regular);
    color: var(--text-default);
    cursor: pointer;
}

#page-container .gform-theme--orbital input[type="checkbox"],
#page-container .gform-theme--orbital input[type="radio"] {
    width: auto;
    margin-right: 8px;
    cursor: pointer;
}

/* File Upload Field */
#page-container .gform-theme--orbital .ginput_container_fileupload input[type="file"] {
    padding: var(--gf-control-padding-y);
}

/* Hidden Fields */
#page-container .gform-theme--orbital .gform_hidden {
    display: none;
}

/* Page Break Navigation */
#page-container .gform-theme--orbital .gform_page_footer {
    margin-top: 32px;
}

#page-container .gform-theme--orbital .gform_page_footer .gform_previous_button {
    background-color: var(--background-tertiary);
    color: var(--text-default);
}

#page-container .gform-theme--orbital .gform_page_footer .gform_previous_button:hover {
    background-color: var(--background-secondary);
}

/* Progress Bar (if using progress indicators) */
#page-container .gform-theme--orbital .gf_progressbar {
    background-color: var(--background-tertiary);
    border-radius: var(--gf-control-border-radius);
    height: 8px;
    margin-bottom: var(--gf-field-margin-bottom);
}

#page-container .gform-theme--orbital .gf_progressbar_percentage {
    background-color: var(--gf-color-primary);
    border-radius: var(--gf-control-border-radius);
    height: 100%;
    transition: width 0.3s ease;
}

/* Responsive Adjustments */
@media (max-width: 768px) {
    #page-container .gform-theme--orbital {
        --gf-control-padding-x: 14px;
        --gf-control-padding-y: 10px;
        --gf-field-margin-bottom: 20px;
    }
}

/* END GRAVITY FORMS ORBITAL THEME STYLES */

/* ============================================
   FAQ SECTION STYLES
   ============================================ */

/* FAQ Section Container */
#page-container .faq-section {
    padding: var(--space-section-md) 0;
}

/* Section intro */
#page-container .faq-section .faq-row .et_pb_text_inner h2 {
    margin: 0 0 var(--space-md);
    color: var(--text-heading);
    font-family: var(--font-family-sans-heading);
    font-size: var(--font-size-h2);
    font-weight: var(--font-weight-bold);
    line-height: var(--line-height-h2);
}

#page-container .faq-section .faq-row .et_pb_text_inner p {
    margin: 0 0 var(--space-section-sm);
    max-width: 720px;
    color: var(--text-default);
    font-family: var(--font-family-sans);
    font-size: var(--font-size-body);
    line-height: var(--line-height-sm);
}

/* FAQ Accordion Container */
#page-container .faq-section .et_pb_accordion {
    display: flex;
    flex-direction: column;
    gap: var(--space-md);
}

/* Individual FAQ Toggle Item */
#page-container .faq-section .et_pb_toggle {
    background-color: var(--background-primary);
    border: var(--border-width-default) solid var(--border-default);
    border-radius: var(--radius-md);
    overflow: hidden;
    transition: border-color 0.2s ease;
}

#page-container .faq-section .et_pb_toggle_close,
#page-container .faq-section .et_pb_toggle_open {
    padding: 0;
    background-color: var(--background-primary);
}

/* Toggle Title (Question) */
#page-container .faq-section .et_pb_toggle_title {
    position: relative;
    padding: var(--space-card-sm) 56px var(--space-card-sm) var(--space-card-md);
    margin: 0;
    font-size: var(--font-size-300);
    font-weight: var(--font-weight-bold);
    line-height: var(--line-height-sm);
    color: var(--text-link);
    cursor: pointer;
    transition: color 0.2s ease;
    font-family: var(--font-family-sans);
}

/* Toggle Title Hover State */
#page-container .faq-section .et_pb_toggle_title:hover {
    color: var(--text-link-hover);
}

/* Toggle Title Focus State (Accessibility) */
#page-container .faq-section .et_pb_toggle_title:focus-visible {
    outline: 2px solid var(--blue-600);
    outline-offset: -2px;
    border-radius: var(--radius-md);
}

/* Chevron icon - closed (down) */
#page-container .faq-section .et_pb_toggle .et_pb_toggle_title::before,
#page-container .faq-section .et_pb_toggle .et_pb_toggle_title:before {
    content: '\f078';
    font-family: "Font Awesome 7 Sharp", "Font Awesome 7 Pro" !important;
    font-weight: 900;
    font-style: normal;
    font-variant: normal;
    text-transform: none;
    display: block;
    text-rendering: auto;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    position: absolute;
    right: var(--space-card-md);
    left: auto;
    top: 50%;
    margin-top: 0;
    transform: translateY(-50%);
    width: auto;
    height: auto;
    font-size: var(--font-size-300);
    color: var(--text-link);
    background: none;
    border-radius: 0;
    transition: color 0.2s ease, transform 0.2s ease;
    line-height: 1;
    padding: 0;
}

#page-container .faq-section .et_pb_toggle_close {
    background-color: var(--color-off-white);
}

#page-container #et-boc .faq-section .et_pb_code,
#page-container #et-boc .faq-section p,
#page-container #et-boc .faq-section h2 {
    max-width: 620px;
    margin: 0 auto 0.5rem;
    width: 100%;
}

/* Chevron icon - open (up) */
#page-container .faq-section .et_pb_toggle_open .et_pb_toggle_title::before,
#page-container .faq-section .et_pb_toggle_open .et_pb_toggle_title:before,
#page-container .faq-section .et_pb_toggle.et_pb_toggle_open .et_pb_toggle_title::before,
#page-container .faq-section .et_pb_toggle.et_pb_toggle_open .et_pb_toggle_title:before {
    content: '\f077';
    color: var(--text-link);
    background: none;
}

/* Toggle Content (Answer) */
#page-container .faq-section .et_pb_toggle_content {
    padding: 0 var(--space-card-md) var(--space-card-sm);
    color: var(--text-default);
    font-size: var(--font-size-body);
    line-height: var(--line-height-sm);
    font-family: var(--font-family-sans);
    font-weight: var(--font-weight-regular);
}

/* Toggle Content Paragraphs */
#page-container .faq-section .et_pb_toggle_content p {
    margin-bottom: var(--space-md);
    color: var(--text-default);
}

#page-container .faq-section .et_pb_toggle_content p:last-child {
    margin-bottom: 0;
}

/* Open toggle - tighter title spacing above answer */
#page-container .faq-section .et_pb_toggle_open .et_pb_toggle_title {
    padding-bottom: var(--space-md);
}

/* Open Toggle State */
#page-container .faq-section .et_pb_toggle_open {
    border-color: var(--border-default);
    background-color: var(--background-primary);
    box-shadow: none;
}

/* Closed Toggle Hover State */
#page-container .faq-section .et_pb_toggle_close:hover {
    border-color: var(--border-default);
    background-color: var(--background-primary);
}

#page-container .faq-section .et_pb_toggle_close:hover .et_pb_toggle_title::before,
#page-container .faq-section .et_pb_toggle_close:hover .et_pb_toggle_title:before {
    color: var(--text-link-hover);
}

/* Responsive Adjustments */
@media (max-width: 768px) {
    #page-container .faq-section {
        padding: var(--space-section-sm) 0;
    }

    #page-container .faq-section .et_pb_accordion {
        gap: var(--space-sm);
    }

    #page-container .faq-section .et_pb_toggle_title {
        padding: var(--space-lg) 48px var(--space-lg) var(--space-card-sm);
        font-size: var(--font-size-200);
    }

    #page-container .faq-section .et_pb_toggle .et_pb_toggle_title::before,
    #page-container .faq-section .et_pb_toggle .et_pb_toggle_title:before {
        right: var(--space-card-sm);
        font-size: var(--font-size-200);
    }

    #page-container .faq-section .et_pb_toggle_content {
        padding: 0 var(--space-card-sm) var(--space-lg);
        font-size: var(--font-size-200);
    }
}

/* END FAQ SECTION STYLES */

/*Foundation site styles */

#page-container #top-header>.et_pb_row {
    width: 90%;
    gap: 0;
}

#page-container {
    overflow: hidden;
    /* Containing block for absolute .et-l--header so overflow:hidden
       clips the secondary-nav bleed (::before) and it cannot expand scrollWidth.
       WP admin-bar already offsets html via margin-top, so header top:0 stays correct. */
    position: relative;
}

/* Specific Header Styles
 *
 * Theme Builder sets #top-header / #main-header to absolute, which collapses
 * .et-l--header to height 0. Promote the wrapper to the absolute shell so both
 * rows can flow and share the design gradient scrim.
 */
#page-container .et-l--header {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 99999;
    background: linear-gradient(180deg,
            var(--bg-overlay, rgba(26, 26, 27, 0.40)) 0%,
            rgba(26, 26, 27, 0.00) 100%);
}

/* Dark text + blue logo sit on light pages — no dark scrim. */
body.cvca-alternate-header #page-container .et-l--header {
    background: none;
}

/* Override TB absolute offsets so rows contribute height to the wrapper. */
#page-container .et-l--header #top-header,
#page-container .et-l--header #main-header {
    position: relative !important;
    top: auto !important;
    inset: auto !important;
}

#page-container #main-header {
    background-color: transparent;
    /* Gap between secondary blue bar and primary nav items */
    margin-top: 1rem;
    padding-top: 0;
    padding-bottom: 0;
}

#page-container #mega-menu-wrap-primary-menu #mega-menu-primary-menu>li.mega-menu-item>a {
    color: #FFFFFF !important;
    font-family: var(--font-family-sans-heading);
    font-weight: 700;
    /* background-color: rgba(0, 50, 115, 0.92) !important; */
    border-radius: 4px;
    padding-left: 12px !important;
    padding-right: 12px !important;
}

/* Accessibility: force high-contrast focus states for all Mega Menu controls. */
#page-container #et-boc #mega-menu-wrap-primary-menu a.mega-menu-link:focus-visible,
#page-container #et-boc #mega-menu-wrap-primary-menu button:focus-visible,
#page-container #et-boc #mega-menu-wrap-primary-menu [aria-controls]:focus-visible,
#page-container #et-boc #mega-menu-wrap-secondary-menu a.mega-menu-link:focus-visible,
#page-container #et-boc #mega-menu-wrap-secondary-menu button:focus-visible,
#page-container #et-boc #mega-menu-wrap-secondary-menu [aria-controls]:focus-visible {
    color: var(--white) !important;
    background-color: var(--blue-700) !important;
    outline: 2px solid var(--yellow-300) !important;
    outline-offset: 2px !important;
    text-decoration: none !important;
}

/* Maintain contrast in default and hover states for top-level desktop links.
   Scoped to desktop so mobile accordion links (primary + merged) share the
   same hover treatment from Max Mega Menu / .mega-menu li a:hover. */
@media screen and (min-width: 982px) {

    #page-container #et-boc #mega-menu-wrap-primary-menu #mega-menu-primary-menu>li.mega-menu-item>a.mega-menu-link:hover,
    #page-container #et-boc #mega-menu-wrap-primary-menu #mega-menu-primary-menu>li.mega-menu-item>a.mega-menu-link:active {
        color: var(--white) !important;
        background-color: var(--blue-700) !important;
    }
}

/* Alternate header: dark nav + blue logo on light hero pages (ACF: apply_alternate_header). */
@media screen and (min-width: 982px) {
    body.cvca-alternate-header #page-container #et-boc #mega-menu-wrap-primary-menu #mega-menu-primary-menu>li.mega-menu-item>a.mega-menu-link {
        color: #212121 !important;
        transition: 0.3s ease all;
    }

    body.cvca-alternate-header #page-container #et-boc #mega-menu-wrap-primary-menu #mega-menu-primary-menu>li.mega-menu-item>a.mega-menu-link:hover {
        color: #FFFFFF !important;
    }
}

body.cvca-alternate-header #page-container #main-header #logo img {
    content: url('/wp-content/uploads/cvca-text-logo-blue.png');
}

#mega-menu-wrap-secondary-menu {
    display: flex;
    justify-content: flex-end;
}

/* The blue lives on the list itself, not only on :before, so contrast checkers can
   resolve a real background behind the white links. */
#mega-menu-wrap-secondary-menu>#mega-menu-secondary-menu {
    width: fit-content;
    padding-left: 1rem;
    position: relative;
    background-color: var(--blue-500);
    border-radius: 0 0 0 var(--radius-md, 8px);
}

/* Bleeds the bar from the list's right edge to the viewport edge, past the 90% row. */
#mega-menu-wrap-secondary-menu>#mega-menu-secondary-menu:before {
    content: '';
    position: absolute;
    width: 600%;
    height: 100%;
    left: 100%;
    top: 0;
    background-color: var(--blue-500);
    display: block;
    z-index: -1;
}

#page-container #top-header {
    z-index: 9999999;
    background-color: transparent;
}

#page-container #main-header #logo {
    transform: translateY(-25%);
    max-width: none;
    width: auto;
}

#page-container #main-header #logo .et_pb_image_wrap,
#page-container #main-header #logo img {
    height: 60px;
    width: auto;
    max-width: none;
}

/*
 * Divi renders the image module's link as display:inline, so the focus ring is
 * sized by the font strut instead of the logo image. A block box makes the ring
 * match the artwork.
 */
#page-container #et-boc #main-header #logo>a {
    display: block;
    line-height: 0;
}

/* Offset the ring and expose the white halo; the outer blue alone drops below 3:1 on the dark header. */
#page-container #et-boc #main-header #logo>a:focus-visible {
    outline-offset: 3px;
    box-shadow: 0 0 0 3px var(--focus-ring-inner, #FFFFFF);
}

@media only screen and (max-width: 981px) {
    #page-container #main-header #logo {
        transform: none;
    }

    #page-container #mega-menu-wrap-primary-menu .mega-menu-toggle+#mega-menu-primary-menu {
        background-color: var(--blue-700);
    }
}

#menu-footer-menu {
    display: flex;
    flex-direction: row;
    gap: 1.5rem;
    padding: 0 0 0 2rem;
    flex-wrap: wrap;
    justify-content: flex-end;
    list-style-type: none;
}

#menu-footer-menu li a {
    color: #FFFFFF !important;
    font-weight: 700;
}

#page-container footer h2.h5-size {
    font-size: var(--font-size-h6);
}

#page-container footer .et_pb_group .et_pb_blurb .et_pb_main_blurb_image {
    display: none;
}

#page-container footer .et_pb_group .et_pb_blurb .et_pb_blurb_container {
    padding-left: 0;
}

#page-container footer .et_pb_group .et_pb_blurb .et_pb_blurb_container a {
    color: #FFFFFF !important;
}

/* #page-container footer .et_pb_section:first-child .et_pb_row:first-child .et_pb_column:first-child {
    flex-direction: column;
} */

#page-container footer .et_pb_section:first-child .et_pb_row:first-child .et_pb_column:first-child a {
    white-space: nowrap;
}

/* #page-container footer .et_pb_section:first-child .et_pb_row:first-child .et_pb_column:first-child h2 {
    text-align: center;
} */

#page-container .footer-contact-section .et_pb_column:first-child {
    gap: 1rem;
}

/*
 * Keep the footer logo at its natural width; let sibling flex items shrink.
 * Default flex min-width:auto prevents other columns from condensing, which is
 * why a logo min-width alone overflows the row.
 */
#page-container .footer-contact-section>.et_pb_column {
    min-width: 0;
}

#page-container .footer-contact-section .et_pb_image {
    flex: 0 0 auto;
    width: 200px;
    max-width: 200px;
}

#page-container .footer-contact-section .et_pb_image .et_pb_image_wrap,
#page-container .footer-contact-section .et_pb_image img {
    width: 100%;
    height: auto;
}

#page-container .footer-contact-section .contact-links,
#page-container .footer-contact-section .footer-nav-menu,
#page-container .footer-contact-section>.et_pb_column:last-child {
    flex: 1 1 0;
    min-width: 0;
}

#page-container .fine-print p {
    font-size: 90%;
}

#page-container .fine-print p a {
    color: #FFFFFF !important;
    text-decoration: underline;
}

#page-container .tall-hero,
#page-container .blog-post-hero {
    min-height: 700px;
    display: flex;
}

#page-container .tall-hero .et_pb_row,
#page-container .blog-post-hero .et_pb_row {
    margin-bottom: 0;
}

#page-container .tall-hero h1,
#page-container .med-hero h1,
#page-container .blog-post-hero h1,
#page-container .tall-hero p,
#page-container .med-hero p,
#page-container .blog-post-hero p {
    max-width: 800px;
}

#page-container .tall-hero:before {
    content: '';
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    background-image: linear-gradient(180deg, rgba(26, 26, 27, 0.4) 0%, rgba(26, 26, 27, 0.4) 100%) !important;
    z-index: 1;
}

#page-container .et_pb_video_play {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    aspect-ratio: 1 / 1;
    margin: 0;
    transform: translate(-50%, -50%);
}

#page-container .et_pb_video_play::before {
    content: '\f144';
    font-family: "Font Awesome 7 Sharp", "Font Awesome 7 Pro";
    font-weight: 900;
    font-size: 36px;
    color: var(--color-white);
}

/**
 * Default Divi video embeds: landscape 16 / 9.
 * Divi 5 flex columns stretch modules vertically, which makes iframes
 * render tall/skinny unless aspect-ratio is locked. Portrait is opt-in
 * via .offset-videos / .offset-videos-left only.
 */
#page-container .et_pb_video {
    aspect-ratio: 16 / 9;
    width: 100%;
    height: auto;
    align-self: flex-start;
}

#page-container .et_pb_video .et_pb_video_box {
    position: relative;
    width: 100%;
    height: 100%;
}

#page-container .et_pb_video .et_pb_video_box iframe,
#page-container .et_pb_video .et_pb_video_box video {
    display: block;
    width: 100%;
    height: 100%;
}

#page-container .offset-videos .et_pb_video iframe,
#page-container .offset-videos .et_pb_video_overlay,
#page-container .offset-videos-left .et_pb_video iframe,
#page-container .offset-videos-left .et_pb_video_overlay,
#page-container .video-with-caption .et_pb_video_overlay,
#page-container .video-with-caption .et_pb_video_overlay iframe {
    border-radius: 4px 4px 0 0;
}

.offset-videos .et_pb_video.video-lightbox {
    border-radius: 4px 4px 0 0;
    overflow: hidden;
}

#page-container .max-width-text p {
    max-width: 600px;
}

/* Homepage Development */

/* #page-container .cvca-difference .et_pb_video {
    aspect-ratio: 2 / 3;
} */

/* Portrait video lightboxes in CVCA Difference section */
/* #page-container .video-lightbox {
    aspect-ratio: 2 / 3;
}  */

#page-container .offset-videos .et_pb_row .et_pb_column .et_pb_group,
#page-container .offset-videos-left .et_pb_row .et_pb_column .et_pb_group {
    flex: 1;
}

#page-container .offset-videos .et_pb_row .et_pb_column .et_pb_group .et_pb_text,
#page-container .offset-videos-left .et_pb_row .et_pb_column .et_pb_group .et_pb_text,
#page-container .video-with-caption .et_pb_row .et_pb_column .et_pb_group .et_pb_text {
    border-radius: 0 0 4px 4px;
}

#page-container .offset-videos .et_pb_row .et_pb_column .et_pb_group .et_pb_text_inner>*,
#page-container .offset-videos-left .et_pb_row .et_pb_column .et_pb_group .et_pb_text_inner>*,
#page-container .video-with-caption .et_pb_row .et_pb_column .et_pb_group .et_pb_text_inner>* {
    font-size: 12px;
    text-align: center;
}

#page-container .historic-opportunity .et_pb_row .et_pb_column:first-child>div {
    flex: 1;
}

#page-container .offset-videos .et_pb_video,
#page-container .offset-videos-left .et_pb_video,
#page-container .offset-videos .et_pb_row .et_pb_group .et_pb_video,
#page-container .offset-videos-left .et_pb_row .et_pb_group .et_pb_video {
    aspect-ratio: 2 / 3;
}

/**
 * Hover cards — reusable section class `.hover-cards`
 * Applies card lift + blue-ghost button underline hover to clickable
 * Text and Blurb modules. Also aliased on `.middle-vs-high` and
 * `.highschool-subpages` for existing placements.
 */
#page-container .hover-cards .et_pb_blurb .et_pb_blurb_container,
#page-container .middle-vs-high .et_pb_blurb .et_pb_blurb_container,
#page-container .highschool-subpages .et_pb_blurb .et_pb_blurb_container {
    padding: 1.5rem;
}

#page-container .hover-cards .et_pb_blurb,
#page-container .hover-cards .et_pb_blurb_content,
#page-container .hover-cards .et_pb_blurb_container,
#page-container .middle-vs-high .et_pb_blurb,
#page-container .middle-vs-high .et_pb_blurb_content,
#page-container .middle-vs-high .et_pb_blurb_container,
#page-container .highschool-subpages .et_pb_blurb,
#page-container .highschool-subpages .et_pb_blurb_content,
#page-container .highschool-subpages .et_pb_blurb_container {
    height: 100%;
}

#page-container .hover-cards .et_pb_text.et_clickable,
#page-container .hover-cards .et_pb_text.et_clickable .et_pb_text_inner {
    height: 100%;
}

#page-container .hover-cards .et_pb_text.et_clickable .et_pb_text_inner,
#page-container .hover-cards .et_pb_blurb_description,
#page-container .middle-vs-high .et_pb_blurb_description,
#page-container .highschool-subpages .et_pb_blurb_description {
    display: flex;
    flex-direction: column;
    height: 100%;
}

#page-container .hover-cards .button-container,
#page-container .middle-vs-high .button-container,
#page-container .highschool-subpages .button-container {
    flex-grow: 1;
    display: flex;
    align-items: flex-end;
}

#page-container .hover-cards .et_pb_blurb.et_clickable,
#page-container .hover-cards .et_pb_text.et_clickable,
#page-container .middle-vs-high .et_pb_blurb.et_clickable,
#page-container .highschool-subpages .et_pb_blurb.et_clickable {
    cursor: pointer;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}

#page-container .hover-cards .et_pb_blurb.et_clickable:hover,
#page-container .hover-cards .et_pb_blurb.et_clickable:focus-within,
#page-container .hover-cards .et_pb_text.et_clickable:hover,
#page-container .hover-cards .et_pb_text.et_clickable:focus-within,
#page-container .middle-vs-high .et_pb_blurb.et_clickable:hover,
#page-container .middle-vs-high .et_pb_blurb.et_clickable:focus-within,
#page-container .highschool-subpages .et_pb_blurb.et_clickable:hover,
#page-container .highschool-subpages .et_pb_blurb.et_clickable:focus-within {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(26, 26, 27, 0.1);
}

/* Mirror blue-ghost button hover when the whole card is hovered */
#page-container #et-boc #main-content .hover-cards .et_pb_blurb.et_clickable:hover .et_pb_button_blue_ghost,
#page-container #et-boc #main-content .hover-cards .et_pb_blurb.et_clickable:focus-within .et_pb_button_blue_ghost,
#page-container #et-boc #main-content .hover-cards .et_pb_text.et_clickable:hover .et_pb_button_blue_ghost,
#page-container #et-boc #main-content .hover-cards .et_pb_text.et_clickable:focus-within .et_pb_button_blue_ghost,
#page-container #et-boc #main-content .middle-vs-high .et_pb_blurb.et_clickable:hover .et_pb_button_blue_ghost,
#page-container #et-boc #main-content .middle-vs-high .et_pb_blurb.et_clickable:focus-within .et_pb_button_blue_ghost,
#page-container #et-boc #main-content .highschool-subpages .et_pb_blurb.et_clickable:hover .et_pb_button_blue_ghost,
#page-container #et-boc #main-content .highschool-subpages .et_pb_blurb.et_clickable:focus-within .et_pb_button_blue_ghost {
    text-decoration-color: var(--color-royal-blue);
}

@media (prefers-reduced-motion: reduce) {

    #page-container .hover-cards .et_pb_blurb.et_clickable,
    #page-container .hover-cards .et_pb_text.et_clickable,
    #page-container .middle-vs-high .et_pb_blurb.et_clickable,
    #page-container .highschool-subpages .et_pb_blurb.et_clickable {
        transition: none;
    }

    #page-container .hover-cards .et_pb_blurb.et_clickable:hover,
    #page-container .hover-cards .et_pb_blurb.et_clickable:focus-within,
    #page-container .hover-cards .et_pb_text.et_clickable:hover,
    #page-container .hover-cards .et_pb_text.et_clickable:focus-within,
    #page-container .middle-vs-high .et_pb_blurb.et_clickable:hover,
    #page-container .middle-vs-high .et_pb_blurb.et_clickable:focus-within,
    #page-container .highschool-subpages .et_pb_blurb.et_clickable:hover,
    #page-container .highschool-subpages .et_pb_blurb.et_clickable:focus-within {
        transform: none;
    }
}

/* University logo marquee (Swiper) */
#page-container .university-slider>.et_pb_row:nth-child(2) {
    padding-left: 0;
    padding-right: 0;
    max-width: 100%;
    width: 100%;
}

#page-container .university-slider>.et_pb_row:nth-child(2)>.et_pb_column {
    padding-left: 0;
    padding-right: 0;
    min-height: var(--university-logo-height, 72px);
}

#page-container .university-slider>.et_pb_row:nth-child(2)>.et_pb_column:not([data-university-marquee-init="true"]) {
    opacity: 0;
}

#page-container .university-slider>.et_pb_row:nth-child(2)>.et_pb_column[data-university-marquee-init="true"] {
    opacity: 1;
    transition: opacity 0.2s ease;
}

#page-container .university-slider .university-logo-marquee {
    width: 100%;
    overflow: hidden;
}

#page-container .university-slider .university-logo-marquee .swiper-wrapper {
    transition-timing-function: linear !important;
    align-items: center;
}

#page-container .university-slider .university-logo-marquee .swiper-slide {
    display: flex;
    align-items: center;
    justify-content: center;
    height: auto;
}

#page-container .university-slider .university-logo-marquee .et_pb_image {
    margin: 0;
    width: 100%;
}

#page-container .university-slider .university-logo-marquee .et_pb_image_wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: var(--university-logo-height, 72px);
}

#page-container .university-slider .university-logo-marquee .et_pb_image_wrap img {
    display: block;
    width: auto;
    max-width: 100%;
    height: var(--university-logo-height, 72px);
    object-fit: contain;
}

#page-container #et-boc .historic-opportunity.offset-videos>.et_pb_row {
    padding-bottom: 2rem !important;
}

@media (max-width: 980px) {

    #page-container .university-slider .university-logo-marquee .et_pb_image_wrap,
    #page-container .university-slider .university-logo-marquee .et_pb_image_wrap img {
        height: var(--university-logo-height-tablet, 56px);
    }

    #page-container .offset-videos-left>.et_pb_row:last-child {
        flex-direction: column-reverse;
    }

    #page-container .offset-videos-left>.et_pb_row:last-child>.et_pb_column {
        width: 100%;
    }
}

@media (max-width: 980px) {

    #page-container .university-slider .university-logo-marquee .et_pb_image_wrap,
    #page-container .university-slider .university-logo-marquee .et_pb_image_wrap img {
        height: var(--university-logo-height-mobile, 48px);
    }

    #page-container footer .et_pb_section:first-child .et_pb_row:first-child .et_pb_column:first-child .et_pb_image,
    #page-container footer .et_pb_section:first-child .et_pb_row:first-child .et_pb_column:first-child h2,
    #page-container footer .et_pb_section:first-child .et_pb_row:first-child .et_pb_column:first-child p,
    #page-container footer .et_pb_section:first-child .et_pb_row:first-child .et_pb_column:first-child a {
        text-align: center;
    }

    #page-container footer .et_pb_social_media_follow {
        justify-content: center !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    #page-container .university-slider .university-logo-marquee .swiper-wrapper {
        transition-duration: 0ms !important;
    }
}

#page-container footer .et_pb_section:first-child .et_pb_row:first-child .et_pb_column:first-child .et_pb_group {
    padding-top: 1rem;
}

#page-container .at-a-glance .et_pb_text_inner strong {
    font-size: var(--font-size-h2);
    font-weight: 900;
}

#page-container .at-a-glance:not(.by-the-numbers-slider) .et_pb_text_inner strong span {
    color: var(--color-light-blue);
}

#page-container .at-a-glance .et_pb_text_inner p:first-child {
    padding-bottom: 0;
}

#page-container .at-a-glance .et_pb_text_inner p:last-child {
    font-weight: 400;
    opacity: 80%;
}

/* FacetWP blog post cards */
#page-container .facetwp-template .blog-post-cards {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-card-lg);
    width: 100%;
}

#page-container .facetwp-template .blog-post-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: var(--space-card-md);
    background: var(--color-off-white);
    border: var(--border-width-default) solid var(--border-default);
    border-radius: var(--radius-md);
    box-shadow: 0 2px 8px rgba(26, 26, 27, 0.06);
}

#page-container .facetwp-template .blog-post-card__media {
    display: block;
    margin-bottom: var(--space-card-sm);
    border-radius: var(--radius-sm);
    overflow: hidden;
    line-height: 0;
}

#page-container .facetwp-template .blog-post-card__image {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
    object-fit: cover;
}

#page-container .facetwp-template .blog-post-card__body {
    display: flex;
    flex-direction: column;
    flex: 1;
}

#page-container .facetwp-template .blog-post-card__title {
    margin: 0 0 var(--space-md);
    font-family: var(--font-family-sans-heading);
    font-weight: 600;
    line-height: var(--line-height-h4);
}

#page-container .facetwp-template .blog-post-card__title a {
    color: var(--text-link);
    text-decoration: none;
}

#page-container .facetwp-template .blog-post-card__title a:hover,
#page-container .facetwp-template .blog-post-card__title a:focus-visible {
    color: var(--text-link-hover);
    text-decoration: underline;
    text-decoration-color: currentColor;
}

#page-container .facetwp-template .blog-post-card__excerpt {
    margin: 0 0 var(--space-card-sm);
    color: var(--text-default);
    font-family: var(--font-family-sans);
    font-size: var(--font-size-body);
    line-height: var(--line-height-sm);
}

#page-container .facetwp-template .blog-post-cards__empty {
    margin: 0;
    color: var(--text-muted);
    font-size: var(--font-size-body);
}

#page-container #et-boc #main-content .facetwp-template .et_pb_button_blue_ghost {
    width: fit-content;
    font-size: 16px;
}

/* FacetWP resource cards */
#page-container .facetwp-template .resource-cards {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--size-24);
    width: 100%;
}

#page-container .facetwp-template .resource-card {
    display: flex;
    min-height: 100%;
}

#page-container .facetwp-template .resource-card__link,
#page-container .facetwp-template .resource-card__inner {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--size-8);
    width: 100%;
    height: 100%;
    padding: var(--size-20);
    background: var(--color-white);
    border-radius: 6px;
    text-decoration: none;
    color: inherit;
    transition: 0.3s ease all;
}

#page-container .facetwp-template .resource-card__link {
    padding: 0;
    border-radius: 8px;
    background-color: var(--color-off-white) !important;
    gap: 0;
}

#page-container .facetwp-template .resource-card__link:hover,
#page-container .facetwp-template .resource-card__link:focus-visible {
    transform: translateY(-4px);
    color: inherit;
    text-decoration: none;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.15);
}

#page-container .facetwp-template .resource-card__type {
    padding: 1rem 1.5rem;
    width: 100%;
    background-color: var(--color-royal-blue);
    color: #FFFFFF;
    border-radius: 8px 8px 0 0;
    font-size: 20px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    font-family: var(--font-family-sans-heading);
}

#page-container .facetwp-template .resource-card__title {
    padding: 1.25rem 1.5rem 1.5rem;
    font-size: var(--font-size-h3);
    color: var(--color-royal-blue);
    font-weight: 600;
    line-height: var(--line-height-sm);
    font-family: var(--font-family-sans-heading);
    margin: 0;
    width: 100%;
    text-decoration: underline transparent;
    transition: 0.3s ease all;
    line-height: 1.2;
}

#page-container .facetwp-template .resource-card__link:hover .resource-card__title,
#page-container .facetwp-template .resource-card__link:focus-visible .resource-card__title {
    color: var(--color-dark-blue);
    text-decoration: underline var(--color-dark-blue);
}

#page-container .facetwp-template .resource-cards__empty {
    margin: 0;
    color: var(--text-muted);
    font-size: var(--font-size-body);
}

@media (max-width: 980px) {
    #page-container .facetwp-template .resource-cards {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767px) {
    #page-container .facetwp-template .resource-cards:not(.mobile-slider__swiper) {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (prefers-reduced-motion: reduce) {
    #page-container .facetwp-template .resource-card__link {
        transition: none;
    }

    #page-container .facetwp-template .resource-card__link:hover,
    #page-container .facetwp-template .resource-card__link:focus-visible {
        transform: none;
    }
}

/* FacetWP Royal Weekly cards (resource-card visual language) */
#page-container .facetwp-template .royal-weekly-cards {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--size-24);
    width: 100%;
}

#page-container .facetwp-template .royal-weekly-card {
    display: flex;
    min-height: 100%;
}

#page-container .facetwp-template .royal-weekly-card__link,
#page-container .facetwp-template .royal-weekly-card__inner {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    width: 100%;
    height: 100%;
    padding: 0;
    gap: 0;
    background: var(--color-off-white);
    border-radius: 8px;
    overflow: hidden;
    border: 1px solid #D1D3D4;
    text-decoration: none;
    color: inherit;
    transition: box-shadow 0.3s ease, transform 0.3s ease, border-color 0.3s ease;
}

#page-container .facetwp-template .royal-weekly-card__link:hover,
#page-container .facetwp-template .royal-weekly-card__link:focus-visible {
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
    transform: translateY(-4px);
    color: inherit;
    text-decoration: none;
}

#page-container .facetwp-template .royal-weekly-card__title-bar {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 0.35rem;
    padding: 1rem;
    width: 100%;
    background-color: var(--color-royal-blue);
    color: #ffffff;
    border-radius: 8px 8px 0 0;
}

#page-container .facetwp-template .royal-weekly-card__label {
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0.05em;
    text-transform: Capitalize;
    font-family: var(--font-family-sans-heading);
    font-size: var(--font-size-h5);
}

#page-container .facetwp-template .royal-weekly-card__title {
    margin: 0;
    font-size: 20px;
    font-weight: 700;
    line-height: 1.2;
    font-family: var(--font-family-sans-heading);
    color: #ffffff;
}

#page-container .facetwp-template .royal-weekly-card__body {
    display: flex;
    flex-direction: column;
    gap: var(--size-16, 1rem);
    flex: 1;
    padding: 1.25rem 1.5rem 1.5rem;
}

#page-container .facetwp-template .royal-weekly-card__description {
    margin: 0;
    color: var(--text-heading, #212121);
    font-family: var(--font-family-sans);
    font-size: var(--font-size-body, 1rem);
    line-height: 1.5;
}

#page-container .facetwp-template .royal-weekly-card__more {
    margin-top: auto;
    width: fit-content;
    color: var(--color-royal-blue, #0054a6);
    font-family: var(--font-family-sans-heading);
    font-weight: 700;
    font-size: var(--font-size-button-text);
    line-height: 1.2;
    text-decoration: underline transparent;
    transition: 0.3s ease all;
    text-transform: uppercase;
    position: relative;
}

#page-container .royal-weekly-card--featured .royal-weekly-card__more {
    margin-top: 0;
    width: fit-content;
    color: #FFFFFF;
    font-family: var(--font-family-sans-heading);
    font-weight: 700;
    font-size: var(--font-size-button-text);
    line-height: 1.2;
    text-decoration: underline transparent;
    transition: 0.3s ease all;
    text-transform: uppercase;
    position: relative;
}

#page-container .facetwp-template .royal-weekly-card__more i,
#page-container .royal-weekly-card--featured .royal-weekly-card__more i {
    font-size: var(--font-size-h5);
}

#page-container .facetwp-template .royal-weekly-card__more:hover,
#page-container .facetwp-template .royal-weekly-card__more:focus-visible,
#page-container .facetwp-template .royal-weekly-card__link:hover .royal-weekly-card__more,
#page-container .facetwp-template .royal-weekly-card__link:focus-visible .royal-weekly-card__more {
    color: var(--color-dark-blue, #003273);
    text-decoration: underline;
}

#page-container .royal-weekly-card--featured .royal-weekly-card__more:hover,
#page-container .royal-weekly-card--featured .royal-weekly-card__more:focus-visible,
#page-container .royal-weekly-card--featured .royal-weekly-card__link:hover .royal-weekly-card__more,
#page-container .royal-weekly-card--featured .royal-weekly-card__link:focus-visible .royal-weekly-card__more {
    color: var(--color-light-blue);
    text-decoration: underline;
}

@media (prefers-reduced-motion: reduce) {
    #page-container .facetwp-template .royal-weekly-card__link {
        transition: none;
    }

    #page-container .facetwp-template .royal-weekly-card__link:hover,
    #page-container .facetwp-template .royal-weekly-card__link:focus-visible {
        transform: none;
    }
}

#page-container .facetwp-template .royal-weekly-cards__empty {
    margin: 0;
    color: var(--text-muted);
    font-size: var(--font-size-body);
}

/* Featured (most recent) Royal Weekly — title / description / Read More only */
#page-container .facetwp-template .royal-weekly-featured,
#page-container .royal-weekly-featured {
    width: 100%;
}

#page-container .facetwp-template .royal-weekly-card--featured,
#page-container .royal-weekly-card--featured {
    display: block;
    width: 100%;
}

#page-container .facetwp-template .royal-weekly-card__link--featured,
#page-container .royal-weekly-card__link--featured,
#page-container .facetwp-template .royal-weekly-card__featured-inner,
#page-container .royal-weekly-card__featured-inner {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--size-16, 1rem);
    width: 100%;
    height: auto;
    padding: 0;
    background: transparent;
    border: 0;
    border-radius: 0;
    overflow: visible;
    text-decoration: none;
    color: inherit;
    cursor: pointer;
    box-shadow: none;
    transform: none;
    transition: none;
}

#page-container .facetwp-template .royal-weekly-card__link--featured:hover,
#page-container .facetwp-template .royal-weekly-card__link--featured:focus-visible,
#page-container .royal-weekly-card__link--featured:hover,
#page-container .royal-weekly-card__link--featured:focus-visible {
    box-shadow: none;
    transform: none;
    color: inherit;
    text-decoration: none;
}

#page-container .facetwp-template .royal-weekly-card__featured-title,
#page-container .royal-weekly-card__featured-title {
    margin: 0 !important;
    color: #FFFFFF !important;
    font-family: var(--font-family-sans-heading) !important;
    font-size: var(--font-size-h2) !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
}

#page-container .facetwp-template .royal-weekly-card--featured .royal-weekly-card__description,
#page-container .royal-weekly-card--featured .royal-weekly-card__description {
    margin: 0;
    color: #FFFFFF;
    font-family: var(--font-family-sans);
    font-size: var(--font-size-body, 1rem);
    line-height: 1.5;
}

#page-container .facetwp-template .royal-weekly-card--featured .royal-weekly-card__more,
#page-container .royal-weekly-card--featured .royal-weekly-card__more {
    margin-top: 0;
}

@media (max-width: 980px) {
    #page-container .facetwp-template .royal-weekly-cards {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767px) {
    #page-container .facetwp-template .royal-weekly-cards:not(.mobile-slider__swiper) {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 980px) {
    #page-container .facetwp-template .blog-post-cards {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767px) {
    #page-container .facetwp-template .blog-post-cards:not(.mobile-slider__swiper) {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* Mobile slider (add class `mobile-slider` to section, row, or column) */
@media (max-width: 767px) {

    #page-container .mobile-slider .blog-post-cards.mobile-slider__swiper,
    #page-container .mobile-slider .mobile-slider__track.mobile-slider__swiper {
        display: block;
        overflow: hidden;
        width: 100%;
    }

    #page-container .mobile-slider .mobile-slider__swiper .swiper-slide {
        height: auto;
    }

    #page-container .mobile-slider .mobile-slider__swiper .blog-post-card {
        height: 100%;
    }

    #page-container .mobile-slider .mobile-slider__nav {
        display: flex;
        align-items: center;
        justify-content: flex-end;
        gap: var(--space-md);
        margin-top: var(--space-card-md);
    }

    #page-container .mobile-slider .mobile-slider__arrow {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 48px;
        height: 48px;
        padding: 0;
        border: 0;
        border-radius: var(--radius-full);
        background: transparent;
        color: var(--text-link);
        cursor: pointer;
        transition: color 0.2s ease, opacity 0.2s ease;
    }

    #page-container .mobile-slider .mobile-slider__arrow::before {
        font-family: "Font Awesome 7 Sharp", "Font Awesome 7 Pro";
        font-weight: 900;
        font-size: var(--font-size-400);
        line-height: 1;
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
    }

    #page-container .mobile-slider .mobile-slider__arrow--prev::before {
        content: '\f060';
    }

    #page-container .mobile-slider .mobile-slider__arrow--next::before {
        content: '\f061';
    }

    #page-container .mobile-slider .mobile-slider__arrow:hover,
    #page-container .mobile-slider .mobile-slider__arrow:focus-visible {
        color: var(--text-link-hover);
    }

    #page-container .mobile-slider .mobile-slider__arrow:focus-visible {
        outline: 2px solid var(--text-link);
        outline-offset: 2px;
    }

    #page-container .mobile-slider .mobile-slider__arrow.swiper-button-disabled {
        opacity: 0.35;
        cursor: not-allowed;
    }
}

#page-container .global-cta {
    min-height: 500px;
    display: flex;
    justify-content: center;
}

#page-container .global-cta:before {
    content: '';
    width: 37%;
    height: 65%;
    position: absolute;
    bottom: 0;
    left: 55%;
    background-image: url(/wp-content/uploads/cropped-group-walking.png);
    z-index: 1;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: bottom;
}

#page-container #et-boc .global-cta.no-image:before {
    content: unset;
    display: none;
    background-image: unset;
}

#page-container .testimonial-card {
    display: flex;
    gap: 2rem;
}

#page-container .testimonial-card__content {
    flex: 2;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
}

#page-container .testimonial-card__media {
    flex: 1;
    display: flex;
    margin-bottom: 2rem;
}

#page-container .testimonial-card__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 16px;
}

#page-container .testimonial-card blockquote {
    border: none;
    margin: 0;
    padding-bottom: 1rem;
    padding-left: 0;
}

#page-container .testimonial-card__body {
    position: relative;
    padding: 1.5rem;
}

#page-container .testimonial-card__body:before {
    border-radius: 8px;
    background-color: #FFFFFF;
    content: '';
    display: block;
    width: 120%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
}

#page-container .voices-from-community .et_pb_row:first-child {
    z-index: 99;
}

/* Testimonial + staff slider controls (FA arrows + dots) */
#page-container .cvca-testimonials .testimonial-slider,
#page-container .cvca-staff .staff-slider,
#page-container .cvca-student-stories .student-stories-slider,
#page-container .cvca-trumpeter .trumpeter-slider {
    position: relative;
}

#page-container .cvca-staff .staff-slider .swiper-slide,
#page-container .cvca-student-stories .student-stories-slider .swiper-slide,
#page-container .cvca-trumpeter .trumpeter-slider .swiper-slide {
    height: auto;
}

#page-container .cvca-testimonials .testimonial-slider .swiper-slide {
    height: auto;
}

#page-container .cvca-testimonials .testimonial-slider__nav,
#page-container .cvca-staff .staff-slider__nav,
#page-container .cvca-student-stories .student-stories-slider__nav,
#page-container .cvca-trumpeter .trumpeter-slider__nav,
#page-container .two-thirds-slider .two-thirds-slider__nav,
#page-container .three-image-slider .three-image-slider__nav {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: var(--space-md);
    /* margin-top: var(--space-card-md); */
}

/* Allow [hidden] to win over display:flex above */
#page-container .cvca-staff .staff-slider__nav[hidden] {
    display: none;
}

#page-container .cvca-testimonials .testimonial-slider__arrow,
#page-container .cvca-staff .staff-slider__arrow,
#page-container .cvca-student-stories .student-stories-slider__arrow,
#page-container .cvca-trumpeter .trumpeter-slider__arrow,
#page-container .two-thirds-slider .two-thirds-slider__arrow,
#page-container .three-image-slider .three-image-slider__arrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    padding: 0;
    border: 0;
    border-radius: var(--radius-full);
    background: transparent;
    color: var(--text-link);
    cursor: pointer;
    transition: color 0.2s ease, opacity 0.2s ease;
}

#page-container .cvca-testimonials .testimonial-slider__arrow::before,
#page-container .cvca-staff .staff-slider__arrow::before,
#page-container .cvca-student-stories .student-stories-slider__arrow::before,
#page-container .cvca-trumpeter .trumpeter-slider__arrow::before,
#page-container .two-thirds-slider .two-thirds-slider__arrow::before,
#page-container .three-image-slider .three-image-slider__arrow::before {
    font-family: "Font Awesome 7 Sharp", "Font Awesome 7 Pro";
    font-weight: 900;
    font-size: var(--font-size-300);
    line-height: 1;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

#page-container .cvca-testimonials .testimonial-slider__arrow--prev::before,
#page-container .cvca-staff .staff-slider__arrow--prev::before,
#page-container .cvca-student-stories .student-stories-slider__arrow--prev::before,
#page-container .cvca-trumpeter .trumpeter-slider__arrow--prev::before,
#page-container .two-thirds-slider .two-thirds-slider__arrow--prev::before,
#page-container .three-image-slider .three-image-slider__arrow--prev::before {
    content: '\f060';
}

#page-container .cvca-testimonials .testimonial-slider__arrow--next::before,
#page-container .cvca-staff .staff-slider__arrow--next::before,
#page-container .cvca-student-stories .student-stories-slider__arrow--next::before,
#page-container .cvca-trumpeter .trumpeter-slider__arrow--next::before,
#page-container .two-thirds-slider .two-thirds-slider__arrow--next::before,
#page-container .three-image-slider .three-image-slider__arrow--next::before {
    content: '\f061';
}

#page-container .cvca-testimonials .testimonial-slider__arrow:hover,
#page-container .cvca-testimonials .testimonial-slider__arrow:focus-visible,
#page-container .cvca-staff .staff-slider__arrow:hover,
#page-container .cvca-staff .staff-slider__arrow:focus-visible,
#page-container .cvca-student-stories .student-stories-slider__arrow:hover,
#page-container .cvca-student-stories .student-stories-slider__arrow:focus-visible,
#page-container .cvca-trumpeter .trumpeter-slider__arrow:hover,
#page-container .cvca-trumpeter .trumpeter-slider__arrow:focus-visible,
#page-container .two-thirds-slider .two-thirds-slider__arrow:hover,
#page-container .two-thirds-slider .two-thirds-slider__arrow:focus-visible,
#page-container .three-image-slider .three-image-slider__arrow:hover,
#page-container .three-image-slider .three-image-slider__arrow:focus-visible {
    color: var(--text-link-hover);
}

#page-container .cvca-testimonials .testimonial-slider__arrow:focus-visible,
#page-container .cvca-staff .staff-slider__arrow:focus-visible,
#page-container .cvca-student-stories .student-stories-slider__arrow:focus-visible,
#page-container .cvca-trumpeter .trumpeter-slider__arrow:focus-visible,
#page-container .two-thirds-slider .two-thirds-slider__arrow:focus-visible,
#page-container .three-image-slider .three-image-slider__arrow:focus-visible {
    outline: 2px solid var(--text-link);
    outline-offset: 2px;
}

#page-container .cvca-testimonials .testimonial-slider__arrow.swiper-button-disabled,
#page-container .cvca-staff .staff-slider__arrow.swiper-button-disabled,
#page-container .cvca-student-stories .student-stories-slider__arrow.swiper-button-disabled,
#page-container .cvca-trumpeter .trumpeter-slider__arrow.swiper-button-disabled,
#page-container .two-thirds-slider .two-thirds-slider__arrow.swiper-button-disabled,
#page-container .three-image-slider .three-image-slider__arrow.swiper-button-disabled {
    opacity: 0.35;
    cursor: not-allowed;
}

#page-container .cvca-testimonials .testimonial-slider__pagination {
    position: static;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-sm);
    width: auto;
}

#page-container .cvca-testimonials .testimonial-slider__pagination .swiper-pagination-bullet {
    width: 12px;
    height: 12px;
    margin: 0 !important;
    border: 2px solid var(--text-link);
    border-radius: var(--radius-full);
    background: transparent;
    opacity: 1;
    transition: width 0.2s ease, background-color 0.2s ease, border-color 0.2s ease;
}

#page-container .cvca-testimonials .testimonial-slider__pagination .swiper-pagination-bullet-active {
    width: 36px;
    border-color: var(--text-link);
    background: var(--text-link);
}

#page-container .cvca-testimonials .testimonial-slider__pagination .swiper-pagination-bullet:hover {
    border-color: var(--text-link-hover);
}

/* Staff cards + grid */
#page-container .cvca-staff .staff-card {
    height: 100%;
}

#page-container .cvca-staff .staff-card__link {
    display: flex;
    flex-direction: column;
    height: 100%;
    color: inherit;
    text-decoration: none;
    position: relative;
    border-radius: 8px;
}

#page-container .cvca-staff .staff-card__media {
    display: block;
    overflow: hidden;
    border-radius: 8px;
    position: relative;
}

#page-container .cvca-staff .staff-card__media::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    border-radius: inherit;
    background-image: linear-gradient(180deg,
            transparent 60%,
            rgba(0, 0, 0, 0.75) 100%);
}

#page-container .cvca-staff .staff-card__image {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 3 / 4;
    object-fit: cover;
    transition: transform 0.45s ease;
}

#page-container .cvca-staff .staff-card__body {
    display: flex;
    flex-direction: column;
    gap: 0;
    padding-top: var(--space-card-sm);
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 1rem;
    z-index: 2;
}

#page-container .cvca-staff .staff-card__name {
    margin: 0;
    font-family: var(--font-family-sans-heading);
    font-weight: 600;
    color: var(--color-white);
    font-size: var(--font-size-h4);
}

#page-container .cvca-staff .staff-card__title {
    margin: 0;
    color: var(--color-white);
    font-size: var(--font-size-body);
    font-weight: 300;
    font-family: var(--font-family-sans-heading);
    font-size: var(--font-size-h5);
}

#page-container #et-boc .cvca-staff .staff-card__link:hover .staff-card__image,
#page-container #et-boc .cvca-staff .staff-card__link:focus-visible .staff-card__image {
    transform: scale(1.06);
}

#page-container #et-boc .cvca-staff .staff-card__link:focus-visible {
    outline: 2px solid var(--text-link);
    outline-offset: 4px;
}

#page-container .cvca-staff .staff-grid {
    display: grid;
    gap: var(--space-card-lg);
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

#page-container .cvca-staff .staff-grid--count-1 {
    grid-template-columns: minmax(0, 1fr);
    max-width: 420px;
}

/* FacetWP staff directory: static grid, no slider */
#page-container .facetwp-template .cvca-staff .staff-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

#page-container .facetwp-template .cvca-staff .staff-grid__empty {
    margin: 0;
    color: var(--text-muted);
    font-size: var(--font-size-body);
}

@media (max-width: 980px) {
    #page-container .facetwp-template .cvca-staff .staff-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 767px) {
    #page-container .facetwp-template .cvca-staff .staff-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

#page-container .voices-from-community .et_pb_row:last-child {
    margin-top: -10rem;
}

#page-container .testimonial-card__name {
    font-weight: 700;
}

#page-container .testimonial-card__role {
    font-weight: 300;
    font-style: italic;
    font-family: var(--font-family-sans-heading);
}

@media screen and (max-width: 1350px) {
    #page-container #et-boc .voices-from-community .et_pb_row:last-child {
        margin-top: -5rem;
    }
}

@media screen and (max-width: 1280px) {
    #page-container #et-boc .voices-from-community .et_pb_row:last-child {
        margin-top: -3rem;
    }
}

@media screen and (max-width: 1200px) {
    #page-container .global-cta:before {
        left: 60%;
    }
}

@media screen and (max-width: 1150px) {
    #page-container #et-boc #main-content .voices-from-community .et_pb_row:last-child {
        margin-top: 0;
    }
}

@media screen and (max-width: 767px) {
    #page-container .historic-opportunity>.et_pb_row:first-child {
        flex-direction: column-reverse;
    }

    #page-container .testimonial-card {
        flex-direction: column-reverse;
        padding-top: 2rem;
        gap: 0;
    }

    #page-container .testimonial-card__media {
        width: 90%;
        margin: 0 auto -3.5rem;
    }

    #page-container .testimonial-card__body {
        padding-top: 5rem;
    }

    #page-container .cvca-testimonials .testimonial-slider__nav,
    #page-container .cvca-staff .staff-slider__nav,
    #page-container .two-thirds-slider .two-thirds-slider__nav,
    #page-container .three-image-slider .three-image-slider__nav {
        justify-content: center;
    }

    #page-container .cvca-staff .staff-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    #page-container .home-related-blogs .et_pb_row:first-child .et_pb_column {
        flex-direction: column;
        gap: 0.5rem;
    }

    #page-container .global-cta:before {
        position: relative;
        height: 300px;
        width: 100%;
        left: 0;
    }

    #page-container .global-cta {
        flex-direction: column-reverse;
        gap: 2rem;
        padding-bottom: 0;
    }

    #page-container .faq-section .et_pb_toggle {
        margin-bottom: 1rem;
    }

    #page-container .at-a-glance .et_pb_row:last-child .et_pb_text_inner {
        text-align: center;
    }
}

@media screen and (max-width: 500px) {
    #page-container .global-cta:before {
        height: 200px;
    }

    #page-container .global-cta {
        gap: 1rem;
    }
}

@media screen and (min-width:768px) and (max-width: 980px) {
    #page-container .facetwp-template .blog-post-cards article.blog-post-card:first-child {
        flex-direction: row;
        grid-column: span 2;
        gap: 1.5rem;
    }

    #page-container .facetwp-template .blog-post-cards article.blog-post-card:first-child .blog-post-card__media {
        flex: 1;
        margin-bottom: 0;
    }

    #page-container .facetwp-template .blog-post-cards article.blog-post-card:first-child .blog-post-card__media img {
        height: 100%;
    }

    #page-container .facetwp-template .blog-post-cards article.blog-post-card:first-child .blog-post-card__body {
        flex: 2;
    }
}

/* Homepage announcement banner ([cvca_homepage_banner]) */
body:not(.has-homepage-announcement) .homepage-announcement {
    display: none !important;
}

#page-container .cvca-homepage-banner {
    background-color: transparent;
    color: var(--yellow-600);
}

#page-container .cvca-homepage-banner__inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: var(--space-md);
    max-width: 1200px;
    margin: 0 auto;
    padding: 0;
    text-align: center;
}

#page-container .cvca-homepage-banner__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    color: var(--yellow-100);
    line-height: 1;
}

#page-container .cvca-homepage-banner__icon-fa {
    font-family: "Font Awesome 7 Sharp", "Font Awesome 7 Pro";
    font-weight: 900;
    font-size: var(--font-size-300);
    font-style: normal;
    color: var(--yellow-100);
}

#page-container .cvca-homepage-banner__icon-dashicon {
    width: var(--font-size-300);
    height: var(--font-size-300);
    font-size: 24px;
    color: var(--yellow-100);
    font-weight: 700;
}

#page-container .cvca-homepage-banner__icon-image {
    display: block;
    width: 20px;
    height: 20px;
    object-fit: contain;
}

#page-container .cvca-homepage-banner__text {
    margin: 0;
    font-family: var(--font-family-sans);
    font-size: var(--font-size-body);
    font-weight: 500;
    line-height: var(--line-height-sm);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--yellow-600);
    letter-spacing: 1.44px;
}

#page-container .cvca-homepage-banner__link {
    display: inline-flex;
    align-items: center;
    flex-shrink: 0;
    font-family: var(--font-family-sans);
    font-size: var(--font-size-body);
    line-height: 1;
    letter-spacing: 0.04em;
    text-decoration: none;
    text-transform: uppercase;
    color: var(--yellow-600);
    white-space: nowrap;
    padding-bottom: 5px !important;
    font-weight: 700;
    letter-spacing: 1.44px;
}

#page-container .cvca-homepage-banner__link::after {
    content: "5";
    font-family: ETmodules !important;
    font-size: var(--font-size-body);
}

#page-container .cvca-homepage-banner__link:hover,
#page-container .cvca-homepage-banner__link:focus-visible {
    color: var(--black);
    text-decoration: underline;
    text-decoration-color: currentColor;
}

#page-container .cvca-homepage-banner__link:focus-visible {
    outline: 2px solid var(--yellow-600);
    outline-offset: 2px;
}

@media (max-width: 767px) {
    #page-container .cvca-homepage-banner__inner {
        flex-direction: column;
        gap: var(--space-sm);
        padding: var(--space-md) var(--space-lg);
    }
}

/* Admissions Page */

#page-container .med-hero {
    min-height: 600px;
    display: flex;
}

#page-container .med-hero .et_pb_row {
    margin-bottom: 0;
}

#page-container .et_pb_tab_nav_item {
    display: flex;
    padding: 12px;
    justify-content: center;
    align-items: center;
    border-radius: 8px 8px 0 0;
    background-color: var(--color-royal-blue);
    /* max-width: calc(25% - 4px); */
    text-align: center;
    line-height: 1.2;
}

#page-container #et-boc .et_pb_tab_nav_item a {
    color: #FFF;
    text-decoration: none !important;
    font-size: clamp(0.65rem, -1.125rem + 3vw, 1.125rem) !important;
    padding: 0 !important;
    line-height: 1.2;
    text-transform: uppercase;
}

#page-container #et-boc .et_pb_tab_active {
    display: flex;
    padding: 8px 12px;
    justify-content: center;
    align-items: center;
    border-radius: 8px 8px 0 0;
    background-color: var(--color-off-white) !important;
    text-align: center;
    line-height: 1.2;
}

#page-container #et-boc .et_pb_tab_active a {
    color: var(--color-royal-blue);
    text-decoration: none !important;
}

#page-container #et-boc .et_pb_tab_active a:hover {
    background-color: transparent !important;
}

#page-container .et_pb_all_tabs>div {
    background-color: var(--color-off-white);
}

#page-container ul.et_pb_tabs_controls {
    background-color: transparent;
    display: flex;
    gap: 4px;
}

#page-container ul.et_pb_tabs_controls>* {
    flex: 1;
}

#page-container .et_pb_tabs.et_pb_module {
    border: none;
}

#page-container .et_pb_tabs.et_pb_module h3 {
    color: var(--color-royal-blue);
    padding-bottom: 5px;
    border-bottom: 1px solid #9B9EA0;
}

#page-container .et_pb_tabs.et_pb_module a.et_pb_button_blue_ghost {
    font-size: 16px !important;
    font-weight: 700 !important;
}

@media screen and (max-width: 980px) {
    #page-container .tab-table .et_pb_row {
        flex-direction: column;
    }

    #page-container .tab-table .et_pb_row>.et_pb_column {
        width: 100%;
    }

}

#page-container .quicklink-simple-buttons .et_pb_row:last-child>.et_pb_column {
    justify-content: center;
    gap: 1.5rem;
}

#page-container .image-cover-column .et_pb_row>.et_pb_column .et_pb_image,
#page-container .image-cover-column .et_pb_row>.et_pb_column .et_pb_image_wrap {
    height: 100%;
}

#page-container .image-cover-column .et_pb_row>.et_pb_column .et_pb_image_wrap img {
    object-fit: cover;
    border-radius: 4px;
}

#page-container .equal-text-box-heights .et_pb_text {
    height: 100%;
}

#page-container h2 span {
    display: block;
    color: #7D8082;
    font-family: var(--font-family-sans-heading);
    letter-spacing: 2px;
    text-transform: uppercase;
    font-size: clamp(16px, calc(36px + (20px - 16px) * ((100vw - 600px) / 600px)), 20px) !important;
    line-height: 1.4;
}

#page-container .global-cta strong {
    color: var(--color-royal-blue);
}

#page-container #et-boc .global-cta h2 {
    color: var(--color-royal-blue);
    padding-bottom: 1rem;
    margin-bottom: 0.75rem;
    position: relative;
}

#page-container .alt-cta h2 {
    position: relative;
    padding-bottom: 1rem;
    margin-bottom: 0.75rem;
}

#page-container .global-cta h2:before,
#page-container .alt-cta h2:before {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100px;
    height: 4px;
    background-color: var(--color-royal-blue);
}

#page-container #et-boc .alt-cta h2:before {
    background-color: var(--color-yellow);
}


/* Houses table (Divi text/code module) */
#page-container .cvca-houses-table-wrap {
    width: 100%;
    overflow-x: auto;
}

#page-container .cvca-houses-table {
    width: 100%;
    border-collapse: collapse;
    border-spacing: 0;
    table-layout: fixed;
    border: none;
    max-width: 800px;
}

#page-container .cvca-houses-table thead th {
    padding: 0 0 var(--space-md);
    border: 0;
    font-family: var(--font-family-sans-heading);
    font-size: clamp(14px, 1.5vw, 18px);
    font-weight: 700;
    letter-spacing: 1.44px;
    line-height: 1.2;
    text-transform: uppercase;
    color: var(--color-white);
}

#page-container .cvca-houses-table thead th:first-child {
    text-align: left;
}

#page-container .cvca-houses-table thead th:nth-child(2) {
    text-align: center;
}

#page-container .cvca-houses-table thead th:last-child {
    text-align: right;
    display: flex;
    justify-content: flex-end;
}

#page-container .cvca-houses-table thead th span {
    display: block;
    padding: 0.85rem 1.25rem;
    background-color: var(--color-royal-blue);
    border-radius: 50px;
    width: fit-content;
}

#page-container .cvca-houses-table tbody tr {
    border-top: 1px solid var(--color-dark-gray);
}

#page-container #et-boc .cvca-houses-table tbody tr:first-child td {
    border-top: none !important;
}

#page-container #et-boc .cvca-houses-table tbody tr:first-child {
    border-top: none !important;
}

#page-container .cvca-houses-table tbody tr:last-child {
    border-bottom: 0;
}

#page-container .cvca-houses-table tbody td {
    padding: 1.35rem 0.5rem;
    vertical-align: middle;
    font-family: var(--font-family-sans);
    font-size: var(--font-size-body);
    line-height: 1.5;
    color: var(--text-default);
}

#page-container .cvca-houses-table tbody td:first-child {
    font-family: var(--font-family-sans-heading);
    font-size: clamp(18px, 2vw, 22px);
    font-weight: 700;
    color: var(--color-royal-blue);
    text-align: left;
}

#page-container .cvca-houses-table tbody td:nth-child(2) {
    text-align: left;
}

#page-container .cvca-houses-table tbody td:last-child {
    text-align: right;
}

@media screen and (max-width: 599px) {
    #page-container .cvca-houses-table thead {
        display: none;
    }

    #page-container .cvca-houses-table,
    #page-container .cvca-houses-table tbody,
    #page-container .cvca-houses-table tr,
    #page-container .cvca-houses-table td {
        display: block;
        width: 100%;
    }

    #page-container .cvca-houses-table tbody tr {
        padding: var(--space-md) 0;
        border-bottom: 1px solid var(--color-light-gray);
    }

    #page-container .cvca-houses-table tbody tr:last-child {
        border-bottom: 0;
    }

    #page-container .cvca-houses-table tbody td {
        padding: 0;
        text-align: left !important;
    }

    #page-container .cvca-houses-table tbody td:first-child {
        margin-bottom: var(--space-sm);
        font-size: var(--font-size-h4);
    }

    #page-container .cvca-houses-table tbody td[data-label] {
        margin-bottom: var(--space-sm);
        padding-left: 0;
    }

    #page-container .cvca-houses-table tbody td[data-label]::before {
        content: attr(data-label);
        display: block;
        margin-bottom: 0.15rem;
        font-family: var(--font-family-sans-heading);
        font-size: 11px;
        font-weight: 700;
        letter-spacing: 1.2px;
        text-transform: uppercase;
        color: var(--color-dark-gray);
    }

    #page-container .cvca-houses-table tbody td[data-label]:last-child {
        margin-bottom: 0;
    }
}

#page-container .three-equal-blurbs .et_pb_blurb {
    height: 100%;
}

#page-container .three-equal-blurbs .et_pb_blurb img {
    aspect-ratio: 3 / 2;
    object-fit: cover;
    border-radius: 8px;
    width: 100%;
}

/* Schools of Distinction slider (Swiper nav only) */
#page-container .schools-of-distinction-slider {
    overflow: visible;
}

#page-container .schools-of-distinction-slider__controls-row {
    position: relative;
    overflow: visible;
}

#page-container .schools-of-distinction-slider__frame {
    position: relative;
    width: 100%;
}

#page-container .schools-of-distinction-slider__track {
    width: 100%;
    overflow: hidden;
}

#page-container .schools-of-distinction-slider__track .swiper-slide {
    height: auto;
}

#page-container .schools-of-distinction-slider__arrow {
    position: absolute;
    top: 50%;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--text-link);
    cursor: pointer;
    transform: translateY(-50%);
    transition: color 0.2s ease, opacity 0.2s ease;
}

#page-container .schools-of-distinction-slider__arrow::before {
    font-family: "Font Awesome 7 Sharp", "Font Awesome 7 Pro";
    font-weight: 900;
    font-size: 2rem;
    line-height: 1;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

#page-container .schools-of-distinction-slider__arrow--prev {
    left: -4rem;
}

#page-container .schools-of-distinction-slider__arrow--prev::before {
    content: '\f137';
}

#page-container .schools-of-distinction-slider__arrow--next {
    right: -4rem;
}

#page-container .schools-of-distinction-slider__arrow--next::before {
    content: '\f138';
}

#page-container .schools-of-distinction-slider__arrow:hover,
#page-container .schools-of-distinction-slider__arrow:focus-visible {
    color: var(--text-link-hover);
}

#page-container .schools-of-distinction-slider__arrow:focus-visible {
    outline: 2px solid var(--text-link);
    outline-offset: 2px;
}

#page-container .schools-of-distinction-slider__arrow.swiper-button-disabled {
    opacity: 0.35;
    cursor: not-allowed;
}

@media screen and (max-width: 767px) {
    #page-container .schools-of-distinction-slider__arrow::before {
        font-size: 1.75rem;
    }

    #page-container .schools-of-distinction-slider__arrow--prev {
        left: -2rem;
    }

    #page-container .schools-of-distinction-slider__arrow--next {
        right: -2rem;
    }
}

#page-container .three-equal-blurbs .et_pb_blurb_content,
#page-container .schools-of-distinction-slider .et_pb_blurb_content {
    gap: 1rem;
}

#page-container .schools-of-distinction-slider .et_pb_blurb {
    height: 100%;
}

#page-container .schools-of-distinction-slider .et_pb_blurb img {
    border-radius: 8px;
    aspect-ratio: 3 / 2;
    object-fit: cover;
    width: 100%;
}

#page-container .rotating-fade-slider .et_pb_image_wrap {
    width: 100%;
}

#page-container .rotating-fade-slider .et_pb_image_wrap img {
    width: 100%;
    object-fit: cover;
    aspect-ratio: 3 / 2;
    border-radius: 8px;
}

/* Rotating fade slider (Swiper nav only) */
#page-container .rotating-fade-slider__frame {
    position: relative;
    width: 100%;
}

#page-container .rotating-fade-slider__track {
    position: relative;
    width: 100%;
    overflow: hidden;
}

#page-container .rotating-fade-slider__track .swiper-slide {
    height: auto;
}

#page-container .rotating-fade-slider__pagination {
    position: absolute;
    bottom: var(--space-md);
    left: var(--space-md);
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: var(--space-sm);
    width: auto;
    pointer-events: none;
}

#page-container .rotating-fade-slider__pagination .swiper-pagination-bullet {
    pointer-events: auto;
    width: 12px;
    height: 12px;
    margin: 0 !important;
    border: 2px solid var(--color-white);
    border-radius: var(--radius-full);
    background: transparent;
    opacity: 1;
    transition: width 0.2s ease, background-color 0.2s ease, border-color 0.2s ease;
}

#page-container .rotating-fade-slider__pagination .swiper-pagination-bullet-active {
    width: 36px;
    border-color: var(--color-white);
    background: var(--color-white);
}

#page-container .rotating-fade-slider__pagination .swiper-pagination-bullet:hover {
    border-color: rgba(255, 255, 255, 0.85);
    background: rgba(255, 255, 255, 0.25);
}

#page-container .rotating-fade-slider__pagination .swiper-pagination-bullet-active:hover {
    background: var(--color-white);
    border-color: var(--color-white);
}

#page-container .house-table .et_pb_row:last-child>.et_pb_column {
    max-width: 800px;
}

#page-container .house-table .et_pb_row:last-child>.et_pb_column .et_pb_heading {
    width: fit-content;
}

#page-container .house-table .et_pb_row:last-child>.et_pb_column .et_pb_module_header {
    white-space: nowrap;
}

@media screen and (max-width: 980px) {
    #page-container .tablet-column-reverse .et_pb_row:last-child {
        flex-direction: column-reverse;
    }

    #page-container .rotating-fade-slider .et_pb_row:last-child>.et_pb_column {
        width: 100%;
    }
}

@media screen and (max-width: 767px) {
    #page-container .mobile-column-reverse .et_pb_row:last-child {
        flex-direction: column-reverse;
    }

    #page-container .mobile-flex-reverse {
        flex-direction: column-reverse;
    }
}

#page-container .house-table {
    position: relative;
}

#page-container .house-table:before {
    content: '';
    position: absolute;
    width: 40%;
    height: 85%;
    top: 50%;
    right: 2%;
    background-image: url('https://cvcaroyalsdev.kinsta.cloud/wp-content/uploads/House-Crest.svg');
    display: flex;
    background-position: center;
    background-size: cover;
    transform: translateY(-50%);
    background-repeat: no-repeat;
    opacity: 5%;
}

@media screen and (max-width: 980px) {
    #page-container .house-table:before {
        width: 100%;
        opacity: 3%;
        right: 0;
    }
}

#page-container .subheading-grid .et_pb_row>.et_pb_column:last-child {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
}

#page-container .subheading-grid .et_pb_row>.et_pb_column:last-child .et_pb_text:first-child {
    grid-column: span 2;
}

#page-container .subheading-grid .et_pb_row>.et_pb_column:first-child .et_pb_image,
#page-container .subheading-grid .et_pb_row>.et_pb_column:first-child .et_pb_image_wrap,
#page-container .subheading-grid .et_pb_row>.et_pb_column:first-child .et_pb_image_wrap img {
    object-fit: cover;
    height: 100%;
}

#page-container .subheading-grid-left .et_pb_row>.et_pb_column:first-child {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
}

#page-container .subheading-grid-left .et_pb_row>.et_pb_column:first-child .et_pb_text:first-child {
    grid-column: span 2;
}

#page-container .subheading-grid-left .et_pb_row>.et_pb_column:last-child .et_pb_image,
#page-container .subheading-grid-left .et_pb_row>.et_pb_column:last-child .et_pb_image_wrap,
#page-container .subheading-grid-left .et_pb_row>.et_pb_column:last-child .et_pb_image_wrap img {
    object-fit: cover;
    height: 100%;
}

#page-container .tab-table .et_pb_tab_content {
    display: flex;
    flex-direction: row;
}

#page-container .tab-table .et_pb_tab_content>div {
    flex: 1;
}

#page-container .rotating-fade-slider .et_pb_row:last-child>.et_pb_column {
    display: flex;
    justify-content: center;
}

#page-container .quicklinks-static .et_pb_blurb_content,
#page-container .quicklinks-static .et_pb_main_blurb_image,
#page-container .quicklinks-static .et_pb_image_wrap {
    display: flex;
}

#page-container .quicklinks-static .et_pb_blurb img {
    object-fit: contain;
    width: 20px;
}

#page-container .quicklinks-static .et_pb_blurb_container {
    padding-left: 2px;
    display: flex;
    justify-content: center;
}

#page-container .quicklinks-static .et_pb_blurb.et_clickable {
    cursor: pointer;
    transition: transform 0.25s ease;
}

#page-container .quicklinks-static .et_pb_blurb.et_clickable:hover,
#page-container .quicklinks-static .et_pb_blurb.et_clickable:focus-within {
    transform: translateY(-4px);
}

#page-container .quicklinks-static .et_pb_blurb_description p {
    margin: 0;
}

#page-container .quicklinks-static .et_pb_blurb.et_clickable .et_pb_blurb_description p {
    text-decoration: underline;
    text-decoration-color: transparent;
    text-underline-offset: 3px;
    text-decoration-thickness: 1px;
    transition: text-decoration-color 0.25s ease;
    line-height: 1.1;
}

#page-container .quicklinks-static .et_pb_blurb.et_clickable:hover .et_pb_blurb_description p,
#page-container .quicklinks-static .et_pb_blurb.et_clickable:focus-within .et_pb_blurb_description p {
    text-decoration-color: currentColor;
}

#page-container .quicklinks-static .et_pb_blurb a {
    background-color: transparent !important;
    padding: 0;
    text-decoration: none;
}

@media (prefers-reduced-motion: reduce) {

    #page-container .quicklinks-static .et_pb_blurb.et_clickable,
    #page-container .quicklinks-static .et_pb_blurb.et_clickable .et_pb_blurb_description p {
        transition: none;
    }

    #page-container .quicklinks-static .et_pb_blurb.et_clickable:hover,
    #page-container .quicklinks-static .et_pb_blurb.et_clickable:focus-within {
        transform: none;
    }

    #page-container .quicklinks-static .et_pb_blurb.et_clickable:hover .et_pb_blurb_description p,
    #page-container .quicklinks-static .et_pb_blurb.et_clickable:focus-within .et_pb_blurb_description p {
        text-decoration-color: currentColor;
    }
}

#page-container .hero-pseudo-image:before {
    content: '';
    position: absolute;
    width: 55%;
    height: calc(100% - 130px);
    background-image: url('/wp-content/uploads/student-group-halls.jpg');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    right: 0;
    bottom: 0;
    border-radius: 8px 0 0 8px;
}

#page-container #et-boc .hero-pseudo-image.support-cvca-hero:before {
    background-image: url('/wp-content/uploads/support-cvca-grid.jpg');
}

#page-container #et-boc .hero-pseudo-image.international-hero:before {
    background-image: url('/wp-content/uploads/Intl-Hero-copy.jpg');
}

#page-container #et-boc .hero-pseudo-image.tuition-hero:before {
    background-image: url('/wp-content/uploads/Tuition-1024x617-1.jpg');
}

#page-container .facetwp-pager {
    display: flex;
    justify-content: center;
    gap: 0.5rem;
}

#page-container .facetwp-pager a {
    text-decoration: none !important;
    color: #212121;
    margin: 0;
    padding: 0.25rem 0.75rem !important;
    border-radius: 4px !important;
    transition: .3s ease all !important;
}

#page-container .facetwp-pager a.active {
    background-color: var(--color-royal-blue);
    color: #FFFFFF;
}

#page-container .facetwp-pager a:hover {
    background-color: var(--color-light-blue);
}

/* FacetWP flyout must sit above Theme Builder header / logo stacking. */
.facetwp-flyout {
    z-index: 10000001;
}

.facetwp-flyout-fog {
    z-index: 10000000;
}

#page-container .resource-archive-grid .et_pb_row:first-child .et_pb_column {
    display: flex;
    flex-direction: row;
}

#page-container .resource-archive-grid .facetwp-facet {
    margin-bottom: 0;
}

#page-container .resource-archive-grid .et_pb_row:first-child .et_pb_column .et_pb_code:last-child .facetwp-facet {
    display: none;
}

#page-container #et-boc #main-content .resource-archive-grid .et_pb_button_blue_ghost {
    padding: 8px 28px 8px 12px;
    border: 2px solid var(--color-royal-blue);
    font-size: 18px;
}

#page-container #et-boc #main-content .resource-archive-grid .et_pb_button_blue_ghost:after {
    right: 5px;
    font-size: 24px;
}

#page-container .resource-archive-grid .et_pb_row:first-child .et_pb_column .et_pb_code:first-child {
    flex-grow: 1;
}

#page-container .resource-archive-grid .et_pb_row:first-child .et_pb_column .et_pb_code:first-child .facetwp-input-wrap,
#page-container .resource-archive-grid .et_pb_row:first-child .et_pb_column .et_pb_code:first-child .facetwp-input-wrap input {
    width: 100%;
}

#page-container .resource-archive-grid .et_pb_row:first-child .et_pb_column .et_pb_code:first-child .facetwp-input-wrap input {
    background-color: #F0F0F0;
    border-radius: 8px;
    padding: 0.5rem;
    padding-left: 35px;
}

#page-container .resource-archive-grid .et_pb_row:first-child .et_pb_column .et_pb_code:last-child .et_pb_code_inner {
    display: flex;
}

#page-container .resource-archive-grid .et_pb_row:first-child .et_pb_column .et_pb_code:first-child .et_pb_code_inner,
#page-container .resource-archive-grid .et_pb_row:first-child .et_pb_column .et_pb_code:first-child .facetwp-input-wrap,
#page-container .resource-archive-grid .et_pb_row:first-child .et_pb_column .et_pb_code:first-child input,
#page-container .resource-archive-grid .et_pb_row:first-child .et_pb_column .et_pb_code:first-child .facetwp-facet {
    height: 100%;
}

#page-container .resource-archive-grid .et_pb_row:first-child .et_pb_column .et_pb_code:first-child .facetwp-icon {
    right: unset;
    left: 0;
}

.flyout-item .facetwp-dropdown {
    width: 100%;
    border-radius: 8px;
    padding: 0.5rem;
    margin-top: 0.5rem;
}

.facetwp-flyout-content {
    padding: 1.5rem !important;
}

#page-container .tab-table.vertical-tab-content .et_pb_tab_content {
    flex-direction: column;
}

#page-container .rotating-fade-slider.squarish-image .et_pb_image_wrap img {
    aspect-ratio: 6 / 5;
}

#page-container .two-thirds-slider .two-thirds-slider__track {
    width: 100%;
    overflow: hidden;
}

#page-container .two-thirds-slider .two-thirds-slider__track .swiper-slide {
    height: auto;
}

#page-container .two-thirds-slider .two-thirds-slider__track .et_pb_blurb {
    width: 100%;
    margin-bottom: 0;
    height: 100%;
}

#page-container .two-thirds-slider .et_pb_column:first-child .et_pb_group {
    gap: 0.5rem;
}

@media screen and (min-width: 1300px) {
    #page-container .two-thirds-slider .et_pb_column:first-child .et_pb_group {
        flex-direction: row;
        gap: 1.5rem;
    }
}

@media screen and (max-width: 767px) {
    #page-container .two-thirds-slider .et_pb_column:first-child .et_pb_group {
        flex-direction: row;
        gap: 1.5rem;
    }
}

#page-container .two-thirds-slider .et_pb_column:last-child {
    gap: 1rem;
}

#page-container .three-image-slider .three-image-slider__track {
    width: 100%;
    overflow: hidden;
}

#page-container .three-image-slider .three-image-slider__track .swiper-slide {
    height: auto;
}

#page-container .three-image-slider .three-image-slider__track .et_pb_image {
    width: 100%;
    margin-bottom: 0;
}

#page-container .three-image-slider .three-image-slider__track .et_pb_image_wrap,
#page-container .three-image-slider .three-image-slider__track .et_pb_image_wrap img {
    width: 100%;
    display: block;
}

#page-container .by-the-numbers-slider {
    overflow: visible;
}

#page-container .by-the-numbers-slider .by-the-numbers-slider__frame {
    position: relative;
    width: 100%;
    overflow: visible;
}

#page-container .by-the-numbers-slider .by-the-numbers-slider__track {
    width: 100%;
    overflow: hidden;
}

#page-container .by-the-numbers-slider .by-the-numbers-slider__track .swiper-slide {
    height: auto;
}

#page-container .by-the-numbers-slider .by-the-numbers-slider__track .et_pb_text {
    width: 100%;
    margin-bottom: 0;
}

#page-container .by-the-numbers-slider .by-the-numbers-slider__arrow {
    position: absolute;
    top: 50%;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    padding: 0;
    border: 0;
    background: transparent;
    color: #fff;
    cursor: pointer;
    transform: translateY(-50%);
    transition: opacity 0.2s ease;
}

#page-container .by-the-numbers-slider .by-the-numbers-slider__arrow[hidden] {
    display: none;
}

#page-container .by-the-numbers-slider .by-the-numbers-slider__arrow::before {
    font-family: "Font Awesome 7 Sharp", "Font Awesome 7 Pro";
    font-weight: 900;
    font-size: 2rem;
    line-height: 1;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

#page-container .by-the-numbers-slider .by-the-numbers-slider__arrow--prev {
    left: -2rem;
    top: 35%;
    opacity: 80%;
}

#page-container .by-the-numbers-slider .by-the-numbers-slider__arrow--prev::before {
    content: '\f137';
}

#page-container .by-the-numbers-slider .by-the-numbers-slider__arrow--next {
    right: -2rem;
    top: 35%;
    opacity: 80%;
}

#page-container .by-the-numbers-slider .by-the-numbers-slider__arrow--next::before {
    content: '\f138';
}

#page-container .by-the-numbers-slider .by-the-numbers-slider__arrow:hover,
#page-container .by-the-numbers-slider .by-the-numbers-slider__arrow:focus-visible {
    opacity: 0.5;
}

#page-container .by-the-numbers-slider .by-the-numbers-slider__arrow:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 2px;
}

#page-container .by-the-numbers-slider .by-the-numbers-slider__arrow.swiper-button-disabled {
    opacity: 0.35;
    cursor: not-allowed;
}

@media screen and (max-width: 767px) {
    #page-container .by-the-numbers-slider .by-the-numbers-slider__arrow::before {
        font-size: 1.75rem;
    }

    #page-container .by-the-numbers-slider .by-the-numbers-slider__arrow--prev {
        left: -2rem;
    }

    #page-container .by-the-numbers-slider .by-the-numbers-slider__arrow--next {
        right: -2rem;
    }
}

/* #page-container .three-image-slider .three-image-slider__nav {
    margin-top: var(--space-card-md, 1rem);
} */

#page-container .et_pb_tabs {
    height: 100%;
    display: flex;
    flex-direction: column;
}

#page-container .et_pb_tabs .et_pb_all_tabs {
    flex-grow: 1;
}

#page-container .et_pb_tabs .et_pb_all_tabs>div {
    height: 100%;
    border-radius: 0 0 8px 8px;
}

#page-container .static-events .et_pb_blurb_content {
    gap: 0;
    height: 100%;
}

#page-container .static-events .et_pb_blurb_container {
    padding: 1.5rem;
    flex-grow: 1;
    display: flex;
}

#page-container .static-events .et_pb_blurb {
    height: 100%;
}

#page-container .static-events .et_pb_blurb_description {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
}

#page-container .static-events .et_pb_blurb_description>p:first-child {
    flex-grow: 1;
}

#page-container .rotating-fade-slider__frame,
#page-container .rotating-fade-slider__track,
#page-container .rotating-fade-slider .swiper-wrapper,
#page-container .rotating-fade-slider__track .swiper-slide,
#page-container .rotating-fade-slider__track .swiper-slide .et_pb_image,
#page-container .rotating-fade-slider .et_pb_image_wrap,
#page-container .rotating-fade-slider .et_pb_image_wrap img {
    height: 100% !important;
}

#page-container .static-events h3 {
    font-weight: 700;
}

#page-container .hero-pseudo-image.half-image-hero:before {
    content: '';
    position: absolute;
    width: 41%;
    height: calc(100% - 130px);
    background-image: url('/wp-content/uploads/royal-evening-hero-flipped.jpg');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    right: 0;
    bottom: 0;
    border-radius: 8px 0 0 8px;
}

#page-container #et-boc .hero-pseudo-image.october-giving-hero:before {
    background-image: url('/wp-content/uploads/HSstudent-3-1024x683-1.jpg');
    width: 41%;
}

#page-container #et-boc .hero-pseudo-image.edchoice-hero:before {
    background-image: url('/wp-content/uploads/Applying-for-admission-1-scaled-1.webp');
    width: 50%;
}

#page-container #et-boc .hero-pseudo-image.volunteer-hero:before {
    background-image: url('/wp-content/uploads/Volunteers-26.jpg');
    width: 41%;
}

@media screen and (max-width: 980px) {
    #page-container .static-events .et_pb_row:last-child {
        flex-direction: column;
    }

    #page-container .static-events .et_pb_row:last-child>*,
    #page-container .static-events .et_pb_row:last-child .et_pb_blurb img {
        width: 100%;
    }

    #page-container .et_pb_column .et_pb_tab {
        margin-bottom: 0;
    }
}

@media screen and (max-width: 767px) {

    #page-container .hero-pseudo-image {
        justify-content: flex-end;
        flex-direction: column-reverse;
        gap: 2rem;
    }

    #page-container .hero-pseudo-image:before {
        width: 80%;
        height: auto;
        position: relative;
        aspect-ratio: 16 / 9;
        top: 0;
        border-radius: 8px;
    }

    #page-container .hero-pseudo-image.half-image-hero:before {
        width: 80% !important;
        height: auto;
        position: relative;
        aspect-ratio: 3 / 2;
        top: 0;
        border-radius: 8px;
    }

    #page-container .hero-pseudo-image .et_pb_text {
        padding-top: 1.5rem;
    }

    #menu-footer-menu {
        padding-left: 0;
    }
}

#page-container .flex-row-tabs .et_pb_tab_content {
    display: flex;
    flex-direction: row;
}

#page-container .flex-row-tabs .et_pb_tab_content>div {
    flex: 1;
}

#page-container .sponsor-logo-row .et_pb_column>* {
    width: auto;
    height: 80px;
    flex: 1;
    display: flex;
    justify-content: center;
    align-items: center;
    min-width: 100px;
}

#page-container .sponsor-logo-row .et_pb_column {
    flex-wrap: wrap;
}

#page-container .sponsor-logo-row .et_pb_column .et_pb_image_wrap {
    height: 100%;
}

#page-container .sponsor-logo-row .et_pb_column .et_pb_image_wrap img {
    object-fit: contain;
    height: 100%;
    width: 100%;
}

#page-container .sponsor-text-grid .et_pb_column {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
}

#page-container .sponsor-text-grid .et_pb_column .et_pb_blurb {
    justify-content: center;
}

#page-container .sponsor-text-grid .et_pb_column .et_pb_blurb h3 {
    font-size: var(--font-size-h4);
    font-weight: 700;
}

#page-container .three-image-slider img {
    border-radius: 4px;
}

#page-container .subheading-grid-left h3 {
    font-weight: 700;
}

@media screen and (max-width: 767px) {
    #page-container .flex-row-tabs .et_pb_tab_content {
        flex-direction: column;
    }
}

@media screen and (max-width: 600px) {
    #page-container .sponsor-text-grid .et_pb_column {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
    }
}

/* Single staff details shortcode: [cvca_staff_details] */
#page-container .cvca-staff-details {
    display: flex;
    flex-direction: column;
    gap: var(--size-16, 1rem);
}

#page-container .cvca-staff-details__title {
    margin: 0;
    color: var(--color-black, #1a1a1b);
    font-family: var(--font-family-sans-heading);
    font-size: var(--font-size-button-text);
    font-weight: 700;
    letter-spacing: 0.04em;
    line-height: 1.3;
    text-transform: uppercase;
}

#page-container .cvca-staff-details__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: var(--size-24, 1.5rem) var(--size-40, 2.5rem);
    margin-bottom: 1rem !important;
}

#page-container .cvca-staff-details__email {
    color: var(--gray-600, #565759);
    font-family: var(--font-family-sans);
    font-weight: 400;
    line-height: 1.4;
    text-decoration: underline;
    text-underline-offset: 3px;
    font-size: var(--font-size-body);
}

#page-container .cvca-staff-details__email:hover,
#page-container .cvca-staff-details__email:focus-visible {
    color: var(--color-royal-blue, #0054a6);
}

#page-container .cvca-staff-details__tenure {
    margin: 0;
    color: var(--gray-600, #565759);
    font-family: var(--font-family-sans);
    font-weight: 400;
    line-height: 1.4;
}

#page-container .cvca-staff-details__degrees {
    display: flex;
    flex-wrap: wrap;
    gap: var(--size-8, 0.5rem) var(--size-24, 1.5rem);
}

#page-container .cvca-staff-details__degree {
    color: var(--color-royal-blue, #0054a6);
    font-family: var(--font-family-sans-heading);
    font-weight: 700;
    line-height: 1.4;
    font-size: var(--font-size-200, 16px);
}

@media screen and (max-width: 767px) {
    #page-container .cvca-staff-details__meta {
        flex-direction: column;
        gap: var(--size-8, 0.5rem);
    }
}

/* Job details shortcode: [cvca_job_details] */
#page-container .cvca-job-details {
    display: flex;
    gap: var(--size-16, 1rem);
    flex-direction: row;
    column-gap: 4rem;
    padding: 1rem 0 2rem;
}

#page-container .cvca-job-details__row {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: var(--size-8, 0.5rem) var(--size-16, 1rem);
    flex-direction: column;
}

#page-container .cvca-job-details__label {
    margin: 0;
    color: var(--color-black, #1a1a1b);
    font-family: var(--font-family-sans-heading);
    font-size: var(--font-size-button-text, 0.875rem);
    font-weight: 700;
    letter-spacing: 0.04em;
    line-height: 1.3;
    text-transform: uppercase;
}

#page-container .cvca-job-details__label::after {
    content: ':';
}

#page-container .cvca-job-details__value {
    margin: 0;
    color: var(--gray-600, #565759);
    font-family: var(--font-family-sans);
    font-size: var(--font-size-body);
    font-weight: 400;
    line-height: 1.4;
}

/* Hide Divi modules with .hide-when-empty when job form_link is blank */
body.single-job:not(.has-job-form-link) .hide-when-empty {
    display: none !important;
}

/* Job cards shortcodes: [cvca_job_cards], [cvca_athletics_job_cards] */
#page-container .cvca-job-cards {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--size-24);
    width: 100%;
}

#page-container .cvca-job-cards .job-card {
    display: flex;
    min-height: 100%;
}

#page-container .cvca-job-cards .job-card__link {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    width: 100%;
    height: 100%;
    padding: 0;
    gap: 0;
    background: var(--color-off-white);
    border-radius: 8px;
    overflow: hidden;
    border: 1px solid #D1D3D4;
    text-decoration: none;
    color: inherit;
    cursor: pointer;
    transition: box-shadow 0.3s ease, transform 0.3s ease, border-color 0.3s ease;
}

#page-container .cvca-job-cards .job-card__link:hover,
#page-container .cvca-job-cards .job-card__link:focus-visible {
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
    transform: translateY(-4px);
    color: inherit;
    text-decoration: none;
}

#page-container .cvca-job-cards .job-card__title-bar {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 0.35rem;
    padding: 1rem;
    width: 100%;
    background-color: var(--color-royal-blue);
    color: #ffffff;
    border-radius: 8px 8px 0 0;
}

#page-container .cvca-job-cards .job-card__title {
    margin: 0;
    font-size: 20px;
    font-weight: 700;
    line-height: 1.2;
    font-family: var(--font-family-sans-heading);
    color: #ffffff;
}

#page-container .cvca-job-cards .job-card__body {
    display: flex;
    flex-direction: column;
    gap: var(--size-16, 1rem);
    flex: 1;
    padding: 1.25rem 1.5rem 1.5rem;
}

#page-container #et-boc #main-content .cvca-job-cards .job-card__more {
    margin-top: auto;
    width: fit-content;
    pointer-events: none;
}

#page-container #et-boc #main-content .cvca-job-cards .job-card__link:hover .job-card__more,
#page-container #et-boc #main-content .cvca-job-cards .job-card__link:focus-visible .job-card__more {
    text-decoration-color: var(--color-royal-blue);
    padding: 14px 20px 12px 0px;
}

#page-container .cvca-job-cards__empty {
    margin: 0;
    color: var(--gray-600, #565759);
    font-family: var(--font-family-sans);
    font-size: var(--font-size-body);
}

@media screen and (max-width: 980px) {
    #page-container .cvca-job-cards {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media screen and (max-width: 767px) {
    #page-container .cvca-job-cards {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (prefers-reduced-motion: reduce) {
    #page-container .cvca-job-cards .job-card__link {
        transition: none;
    }

    #page-container .cvca-job-cards .job-card__link:hover,
    #page-container .cvca-job-cards .job-card__link:focus-visible {
        transform: none;
    }
}

#page-container .staff-single-section {
    padding-top: 180px;
    padding-bottom: 5rem;
    gap: 2.5rem;
    min-height: 600px;
    display: flex;
}

/**
 * The Events Calendar inside Divi Theme Builder.
 * Divi applies `.et-l--body ul { list-style-type: disc }` which paints
 * bullets on TEC view-selector / top-bar nav lists.
 */
#page-container .tribe-events ul,
#page-container .tribe-common ul,
#et-boc .et-l--body .tribe-events ul,
#et-boc .et-l--body .tribe-common ul {
    list-style: none;
    list-style-type: none;
    padding-left: 0;
    margin-left: 0;
}

#page-container .tribe-events li,
#page-container .tribe-common li,
#et-boc .et-l--body .tribe-events li,
#et-boc .et-l--body .tribe-common li {
    list-style: none;
    list-style-type: none;
    display: flex;
}

#page-container .tribe-events-c-top-bar__nav-list,
#page-container .tribe-events-c-view-selector__list {
    padding-bottom: 0;
}

#page-container #et-boc .tribe-events-c-view-selector__list-item-link,
#page-container #et-boc .tribe-events-c-nav__prev,
#page-container #et-boc .tribe-events-c-nav__next {
    display: flex;
}

#page-container #et-boc .tribe-events-c-view-selector__list-item-link:hover {
    background-color: transparent;
}

#page-container #et-boc .tribe-events-c-top-bar__today-button {
    padding: 0.5rem;
    color: #212121;
}

#page-container #et-boc .datepicker .table-condensed {
    width: 100%;
}

#page-container #et-boc .tribe-events-calendar-month__day-date-link {
    color: var(--color-royal-blue);
}

/**
 * Single event meta (Theme Builder shortcodes).
 */
#page-container .cvca-event-details {
    display: flex;
    flex-direction: column;
    gap: var(--size-16, 1rem);
}

#page-container .cvca-event-details__item {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

#page-container .cvca-event-details__label {
    font-family: var(--font-family-sans-heading, var(--font-family-sans));
    font-weight: 700;
    font-size: var(--font-size-100, 14px);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--gray-600, #565759);
}

#page-container .cvca-event-details__value,
#page-container .cvca-event-date,
#page-container .cvca-event-time,
#page-container .cvca-event-venue {
    font-family: var(--font-family-sans);
    font-size: var(--font-size-body, 1rem);
    color: var(--text-heading, #212121);
    line-height: 1.4;
}

#page-container .cvca-event-venue__address {
    display: block;
    margin-top: 0.25rem;
    color: var(--gray-600, #565759);
}

#page-container .cvca-event-schedule>div {
    font-weight: 700;
    font-size: var(--font-size-body);
    color: var(--color-royal-blue);
    padding: 0.5rem 1rem;
    border: 1px solid var(--color-royal-blue);
    border-radius: 50px;
    text-transform: uppercase;
    justify-content: center;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.lion-watermark .et_pb_row:before {
    content: '';
    position: absolute;
    height: 200%;
    width: 700px;
    top: -30%;
    right: 0%;
    background-image: url('/wp-content/uploads/source_Lion-WEB-White.png');
    background-position: center;
    background-size: cover;
    opacity: .2;
}

@media screen and (max-width: 1200px) {
    .lion-watermark .et_pb_row:before {
        opacity: .08;
    }
}

#page-container #et-boc .royal-weekly-card__link.royal-weekly-card__link--featured {
    text-decoration: none;
    display: flex;
    padding: 1rem;
}

#page-container #et-boc .royal-weekly-card__link.royal-weekly-card__link--featured:hover {
    background-color: rgba(0, 71, 147, 0.7);
}

#page-container #et-boc .whitespace-hero .et_pb_row .et_pb_column:first-child {
    display: flex;
    align-items: center;
}

#page-container #et-boc .whitespace-hero .et_pb_row .et_pb_column:last-child {
    margin: auto;
}

#page-container #et-boc .whitespace-hero .et_pb_row {
    margin-bottom: auto;
}

#page-container #et-boc .whitespace-hero {
    align-items: center;
    padding-top: 120px;
}

#page-container #et-boc .royal-weekly-single-hero .entry-title {
    font-family: var(--font-family-sans-heading);
    font-weight: var(--font-weight-bold);
    font-size: var(--font-size-button-text);
    line-height: var(--line-height-h2);
    margin-bottom: 0;
}

#page-container #et-boc .royal-weekly-single-hero .et_pb_module_header {
    font-family: var(--font-family-serif-display);
    font-weight: var(--font-weight-semibold);
    font-size: var(--font-size-h1);
    line-height: var(--line-height-h1);
    letter-spacing: -1%;
}

#page-container #et-boc .royal-weekly-announcements__heading {
    color: var(--color-royal-blue);
    font-family: var(--font-family-sans-heading);
    font-weight: var(--font-weight-bold);
    font-size: var(--font-size-h2);
    line-height: var(--line-height-h2);
    margin-bottom: 3rem;
}

#page-container .royal-weekly-announcements__item {
    margin-bottom: 3rem;
}

#page-container #et-boc .royal-weekly-announcements__headline {
    font-family: var(--font-family-sans-heading);
    font-weight: var(--font-weight-semibold);
    font-size: var(--font-size-h35);
    line-height: var(--line-height-h3);
    color: var(--color-royal-blue);
}

#page-container #et-boc .royal-weekly-single-hero {
    position: relative;
    overflow: visible;
}

#page-container .royal-weekly-single-hero:before {
    content: '';
    position: absolute;
    width: 600px;
    height: 120%;
    top: 200px;
    right: 5%;
    background-position: center;
    background-size: cover;
    background-image: url(/wp-content/uploads/Lion-WEB-Blue-1.png);
}

#page-container .lion-watermark h2.button-text-size {
    margin-bottom: 0;
}

@media screen and (max-width: 767px) {
    #page-container .royal-weekly-single-hero:before {
        top: 120px;
        right: 50%;
        transform: translateX(50%);
        -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 0%, transparent 90%);
        mask-image: linear-gradient(to bottom, #000 0%, #000 0%, transparent 80%);
    }

    #page-container .cvca-job-details {
        flex-direction: column;
    }
}

/* Student Stories shortcode cards + slider */
#page-container .cvca-student-stories {
    width: 100%;
}

#page-container .cvca-student-stories .student-stories-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--size-24, 1.5rem);
    width: 100%;
}

#page-container .cvca-student-stories .student-stories-slider__nav {
    margin-top: 1.5rem;
}

#page-container .cvca-student-stories .student-story-card {
    height: 100%;
}

#page-container .cvca-student-stories .student-story-card__link {
    display: flex;
    flex-direction: column;
    height: 100%;
    border-radius: 8px;
    border: 1px solid #D1D3D4;
    background: var(--color-off-white, #F8F8F8);
    padding: 1.5rem;
    box-sizing: border-box;
    text-decoration: none;
    color: inherit;
    cursor: pointer;
    transition: box-shadow 0.3s ease;
}

#page-container .cvca-student-stories .student-story-card__link:hover,
#page-container .cvca-student-stories .student-story-card__link:focus-visible {
    color: inherit;
    text-decoration: none;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
}

#page-container .cvca-student-stories .student-story-card__media {
    display: block;
    margin-bottom: 1rem;
    border-radius: 8px;
    overflow: hidden;
    line-height: 0;
}

#page-container .cvca-student-stories .student-story-card__image {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    border-radius: 8px;
}

#page-container .cvca-student-stories .student-story-card__body {
    display: flex;
    flex-direction: column;
    flex: 1;
    gap: 0.75rem;
}

#page-container #et-boc .cvca-student-stories .student-story-card__title {
    margin: 0;
    color: var(--color-royal-blue);
    font-family: var(--font-family-sans-heading);
    font-weight: var(--font-weight-semibold, 600);
}

#page-container .cvca-student-stories .student-story-card__excerpt {
    margin: 0;
    color: var(--text-default, #1A1A1B);
    font-family: var(--font-family-sans);
    font-size: var(--font-size-body, 1rem);
    line-height: 1.5;
}

#page-container #et-boc #main-content .cvca-student-stories .student-story-card__more {
    margin-top: auto;
    width: fit-content;
    pointer-events: none;
}

#page-container #et-boc #main-content .cvca-student-stories .student-story-card__link:hover .student-story-card__more,
#page-container #et-boc #main-content .cvca-student-stories .student-story-card__link:focus-visible .student-story-card__more {
    text-decoration-color: var(--color-royal-blue);
    padding: 14px 20px 12px 0px;
}

/* Featured (latest) student story — landscape card */
#page-container .cvca-student-stories--featured .student-story-card__link {
    flex-direction: row;
    align-items: stretch;
    gap: 1.5rem;
}

#page-container .cvca-student-stories--featured .student-story-card__media {
    flex: 0 0 48%;
    max-width: 48%;
    margin-bottom: 0;
}

#page-container .cvca-student-stories--featured .student-story-card__body {
    flex: 1 1 auto;
    justify-content: center;
    min-width: 0;
}

#page-container .cvca-student-stories--featured .student-story-card__eyebrow {
    margin: 0;
    color: var(--color-royal-blue, #0054a6);
    font-family: var(--font-family-sans-heading);
    font-size: var(--font-size-h35);
    font-weight: var(--font-weight-semibold, 600);
    line-height: 1.2;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    font-weight: 700;
}

@media screen and (max-width: 980px) {
    #page-container .cvca-student-stories .student-stories-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media screen and (max-width: 767px) {
    #page-container .cvca-student-stories .student-stories-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    #page-container .cvca-student-stories--featured .student-story-card__link {
        flex-direction: column;
    }

    #page-container .cvca-student-stories--featured .student-story-card__media {
        flex: none;
        max-width: none;
        width: 100%;
        margin-bottom: 0;
    }
}

/* Video Library: 3×2 paginated grid of Divi Video modules */
#page-container #video-library .video-library-pages.video-library-pages--ready {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--size-24, 1.5rem);
    align-items: start;
    width: 100%;
}

#page-container #video-library .video-library-pages .et_pb_video {
    width: 100%;
    margin: 0;
}

#page-container #video-library .video-library-pages .et_pb_video.video-library-pages__item--hidden,
#page-container #video-library .video-library-pages .et_pb_video[hidden] {
    display: none !important;
}

#page-container #video-library .video-library-pages__pagination {
    grid-column: 1 / -1;
    display: flex;
    justify-content: center;
    margin-top: var(--size-16, 1rem);
}

#page-container #video-library .video-library-pages__pagination-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 0.5rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

#page-container #video-library .video-library-pages__pagination-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.25rem;
    margin: 0;
    padding: 0.25rem 0.75rem;
    border: 0;
    border-radius: 4px;
    background: transparent;
    color: #212121;
    font-family: var(--font-family-sans);
    font-size: var(--font-size-body, 1rem);
    line-height: 1.4;
    cursor: pointer;
    transition: 0.3s ease all;
}

#page-container #video-library .video-library-pages__pagination-button:hover,
#page-container #video-library .video-library-pages__pagination-button:focus-visible {
    background-color: var(--color-light-blue);
    color: #212121;
}

#page-container #video-library .video-library-pages__pagination-button:focus-visible {
    outline: 2px solid var(--color-royal-blue);
    outline-offset: 2px;
}

#page-container #video-library .video-library-pages__pagination-button.is-active {
    background-color: var(--color-royal-blue);
    color: #FFFFFF;
}

@media screen and (max-width: 980px) {
    #page-container #video-library .video-library-pages.video-library-pages--ready {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media screen and (max-width: 767px) {
    #page-container #video-library .video-library-pages.video-library-pages--ready {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* The Trumpeter issue slider */
#page-container .cvca-trumpeter {
    width: 100%;
}

#page-container .cvca-trumpeter .trumpeter-slider__nav {
    margin-top: 1.5rem;
}

#page-container .cvca-trumpeter .trumpeter-card {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 1rem;
    height: 100%;
}

#page-container #et-boc .cvca-trumpeter .trumpeter-card__title {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: fit-content;
    max-width: 100%;
    margin: 0;
    padding: 0.5rem 1.25rem;
    border: 1px solid var(--color-royal-blue, #0054A6);
    border-radius: 999px;
    background: #FFFFFF;
    color: var(--color-royal-blue, #0054A6);
    font-family: var(--font-family-sans-heading);
    font-weight: var(--font-weight-bold, 700);
    line-height: 1.2;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

#page-container .cvca-trumpeter .trumpeter-card__media {
    display: block;
    width: 100%;
    border-radius: 8px;
    overflow: hidden;
    line-height: 0;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    transition: box-shadow 0.3s ease, transform 0.3s ease;
}

#page-container .cvca-trumpeter .trumpeter-card__image {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 8px;
    transition: transform 0.3s ease;
}

#page-container .cvca-trumpeter .trumpeter-card__media:hover,
#page-container .cvca-trumpeter .trumpeter-card__media:focus-visible {
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
    transform: translateY(-4px);
}

#page-container .cvca-trumpeter .trumpeter-card__media:hover .trumpeter-card__image,
#page-container .cvca-trumpeter .trumpeter-card__media:focus-visible .trumpeter-card__image {
    transform: scale(1.03);
}

#page-container .cvca-trumpeter .trumpeter-card__media:focus-visible {
    outline: 2px solid var(--color-royal-blue, #0054A6);
    outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {

    #page-container .cvca-trumpeter .trumpeter-card__media,
    #page-container .cvca-trumpeter .trumpeter-card__image {
        transition: none;
    }

    #page-container .cvca-trumpeter .trumpeter-card__media:hover,
    #page-container .cvca-trumpeter .trumpeter-card__media:focus-visible {
        transform: none;
    }

    #page-container .cvca-trumpeter .trumpeter-card__media:hover .trumpeter-card__image,
    #page-container .cvca-trumpeter .trumpeter-card__media:focus-visible .trumpeter-card__image {
        transform: none;
    }
}

.blog-post-hero {
    position: relative;
    overflow: hidden;
    background-color: #0054a6;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.blog-post-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background:
        linear-gradient(68deg,
            rgba(0, 0, 0, 0.4) 0%,
            rgba(0, 0, 0, 0) 56.85%),
        linear-gradient(180deg,
            rgba(0, 0, 0, 0.3) 0%,
            rgba(0, 0, 0, 0) 73.49%);
}

/* Keep the Divi content above the gradient overlay */
.blog-post-hero>.et_pb_row,
.blog-post-hero>.et_pb_module_inner {
    position: relative;
    z-index: 2;
}

#page-container #et-boc footer .footer-contact-section .h4-size {
    font-size: var(--font-size-h4) !important;
    color: #FFF !important;
    margin-bottom: 0 !important;
    white-space: nowrap !important;
}

#page-container .blog-post-hero {
    justify-content: flex-end !important;
    padding-top: 120px;
}

/* Previous / Next post navigation */
#page-container .cvca-post-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    width: 100%;
    margin: 2rem 0 0;
}

#page-container .cvca-post-nav__placeholder {
    flex: 0 0 auto;
    min-width: 1px;
}

#page-container #main-content .cvca-post-nav__link,
#page-container #et-boc #main-content .cvca-post-nav__link {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0;
    padding: 0;
    border-radius: 0;
    background: transparent;
    color: #666666;
    font-family: var(--font-family-sans);
    font-size: var(--font-size-body, 1rem);
    font-weight: 400;
    line-height: 1.4;
    text-decoration: none;
    transition: color 0.2s ease;
}

#page-container #main-content .cvca-post-nav__link:hover,
#page-container #main-content .cvca-post-nav__link:focus-visible,
#page-container #et-boc #main-content .cvca-post-nav__link:hover,
#page-container #et-boc #main-content .cvca-post-nav__link:focus-visible {
    background: transparent;
    color: var(--color-royal-blue, #0054A6);
    text-decoration: none;
}

#page-container #main-content .cvca-post-nav__link:focus-visible,
#page-container #et-boc #main-content .cvca-post-nav__link:focus-visible {
    outline: 2px solid var(--color-royal-blue, #0054A6);
    outline-offset: 3px;
}

#page-container .cvca-post-nav__icon::before {
    font-family: "Font Awesome 7 Sharp", "Font Awesome 7 Pro";
    font-weight: 400;
    font-size: 0.9em;
    line-height: 1;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

#page-container .cvca-post-nav__link--prev .cvca-post-nav__icon::before {
    content: '\f060';
}

#page-container .cvca-post-nav__link--next .cvca-post-nav__icon::before {
    content: '\f061';
}

#page-container .cvca-post-nav__link--next {
    margin-left: auto;
}

#page-container .name-label {
    font-size: var(--font-size-button-text);
    text-transform: uppercase;
    padding: 0.3rem 0.75rem;
    font-weight: 700;
    border-radius: 50px;
    border: 1px solid #FFF;
    width: fit-content;
    color: #FFF
}

.single-post #page-container #et-boc #main-content h1 {
    font-size: clamp(38px, calc(38px + (60px - 38px) * ((100vw - 600px) / 600px)), 60px) !important;
    line-height: 110%;
    font-weight: 400;
}

.single-post #page-container #et-boc #main-content h2 {
    font-size: clamp(30px, calc(30px + (36px - 30px) * ((100vw - 600px) / 600px)), 36px) !important;
    color: var(--color-royal-blue) !important;
    margin-bottom: 1.5rem !important;
}

.single-post #page-container #et-boc #main-content h3 {
    font-size: var(--font-size-h35) !important;
    color: var(--color-royal-blue) !important;
}

.single-post #page-container .early-breakpoint .et_pb_row>.et_pb_column {
    height: 100%;
}

@media screen and (max-width: 980px) {
    .single-post #page-container .early-breakpoint .et_pb_row {
        flex-direction: column !important;
    }

    .single-post #page-container .early-breakpoint .et_pb_row>.et_pb_column {
        width: 100%;
    }

    #page-container .footer-contact-section .et_pb_column:first-child {
        flex-direction: column !important;
        align-items: center !important;
    }

    #page-container .footer-contact-section .et_pb_text:last-child p {
        justify-content: center !important;
    }
}

@media screen and (max-width: 767px) {
    #menu-footer-menu {
        justify-content: center !important;
    }

    #page-container #et-boc .footer-contact-section .et_pb_text:last-child p {
        text-align: center !important;
    }
}

/* Quick Links collapsible panel — anchored to first page section */
.cvca-quick-links-anchor {
    position: relative;
}

/*
 * Footer-injected markup sits outside #page-container until JS moves it into
 * the first content section. Left corners are rounded (docked to the right edge).
 */
.cvca-quick-links {
    position: absolute;
    right: 0;
    bottom: 0;
    z-index: 30;
    display: flex;
    flex-direction: row-reverse;
    align-items: stretch;
    max-width: min(100%, 360px);
    border-radius: 8px 0 0 8px;
    overflow: hidden;
}

/* Pre-move fallback only (footer) — JS removes this once anchored */
.cvca-quick-links.cvca-quick-links--fixed {
    position: fixed;
    bottom: 12%;
    z-index: 100000;
}

.cvca-quick-links__tab {
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 0.65rem;
    margin: 0;
    padding: 1.25rem 0.7rem;
    border: 0;
    border-radius: 0;
    background-color: var(--color-royal-blue, #0054A6);
    color: #FFFFFF;
    cursor: pointer;
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    font-family: var(--font-family-sans-heading);
    font-size: var(--font-size-button-text, 0.875rem);
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    line-height: 1.2;
    transition: background-color 0.2s ease;
}

.cvca-quick-links__tab:hover,
.cvca-quick-links__tab:focus-visible {
    background-color: var(--color-dark-blue, #003273);
}

.cvca-quick-links__tab:focus-visible {
    outline: 2px solid #FFFFFF;
    outline-offset: -4px;
}

.cvca-quick-links__tab-chevron::before {
    content: '\f054';
    font-family: "Font Awesome 7 Sharp", "Font Awesome 7 Pro";
    font-weight: 900;
    font-size: 0.75rem;
    line-height: 1;
    display: inline-block;
    transition: transform 0.25s ease;
}

.cvca-quick-links.is-open .cvca-quick-links__tab-chevron::before {
    transform: rotate(180deg);
}

.cvca-quick-links__panel {
    background-color: var(--color-royal-blue, #0054A6);
    color: #FFFFFF;
    border-radius: 0;
    box-shadow: -4px 4px 24px rgba(0, 0, 0, 0.2);
    overflow: hidden;
    min-width: 220px;
}

.cvca-quick-links__panel[hidden] {
    display: none !important;
}

ul.cvca-quick-links__list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.cvca-quick-links__item {
    margin: 0;
    list-style-type: none;
}

.cvca-quick-links__link,
#page-container #main-content .cvca-quick-links__link,
#page-container #et-boc #main-content .cvca-quick-links__link {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.75rem 1.25rem;
    color: #FFFFFF !important;
    text-decoration: none !important;
    background: transparent;
    border-radius: 0;
    font-family: var(--font-family-sans);
    font-size: var(--font-size-body, 1rem);
    font-weight: 500;
    line-height: 1.3;
    transition: background-color 0.2s ease;
}

.cvca-quick-links__link:hover,
.cvca-quick-links__link:focus-visible,
#page-container #main-content .cvca-quick-links__link:hover,
#page-container #main-content .cvca-quick-links__link:focus-visible,
#page-container #et-boc #main-content .cvca-quick-links__link:hover,
#page-container #et-boc #main-content .cvca-quick-links__link:focus-visible {
    background-color: rgba(255, 255, 255, 0.12);
    color: #FFFFFF !important;
    text-decoration: none !important;
}

.cvca-quick-links__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 1.5rem;
    width: 1.5rem;
    height: 1.5rem;
    line-height: 0;
}

.cvca-quick-links__icon-image {
    display: block;
    width: 1.5rem;
    height: 1.5rem;
    object-fit: contain;
}

.cvca-quick-links__icon-fa,
.cvca-quick-links__icon-dashicon {
    font-size: 1.15rem;
    color: var(--icon-on-brand-secondary);
}

.cvca-quick-links__text {
    flex: 1 1 auto;
}

@media screen and (max-width: 767px) {
    .cvca-quick-links.cvca-quick-links--fixed {
        bottom: 1rem;
    }

    .cvca-quick-links {
        max-width: min(100%, 300px);
    }

    .cvca-quick-links__panel {
        min-width: 200px;
    }

    #page-container #et-boc .tall-hero,
    #page-container #et-boc .blog-post-hero,
    #page-container #et-boc .med-hero,
    #page-container #et-boc .simple-hero {
        min-height: unset;
    }
}

#page-container .all-over-print .et_pb_blurb {
    height: 100%;
}

#page-container .all-over-print .et_pb_blurb .et_pb_image_wrap {
    width: 40px;
}

#page-container .all-over-print.font-awesome-icon .et_pb_blurb .et_pb_image_wrap {
    width: 45px;
}

#page-container .all-over-print .et_pb_blurb .et_pb_image_wrap img {
    width: 100%;
}

#page-container .three-image-slider.student-service .three-image-slider__track .et_pb_image_wrap {
    aspect-ratio: 4 / 3;
}

#page-container .three-image-slider.student-service .three-image-slider__track .et_pb_image_wrap img {
    height: 100%;
    object-fit: cover;
}

#page-container .location-bulleted-grid ul {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    column-gap: 1rem;
    row-gap: 0.5rem;
}

#page-container .blurb-card-grid .et_pb_row:last-child .et_pb_column {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.5rem;
}

@media screen and (max-width: 980px) {
    #page-container .location-bulleted-grid ul {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        column-gap: 1.5rem;
        row-gap: 0.5rem;
    }

    #page-container .blurb-card-grid .et_pb_row:last-child .et_pb_column {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 1.5rem;
    }
}

@media screen and (max-width: 600px) {
    #page-container .location-bulleted-grid ul {
        display: grid;
        grid-template-columns: repeat(1, 1fr);
        row-gap: 0.5rem;
    }

    #page-container .blurb-card-grid .et_pb_row:last-child .et_pb_column {
        display: grid;
        grid-template-columns: repeat(1, 1fr);
        gap: 1.5rem;
    }
}

#page-container .anchor-to-bottom .et_pb_blurb_content,
#page-container .anchor-to-bottom .et_pb_blurb_container {
    height: 100%;
}

#page-container .anchor-to-bottom .et_pb_blurb_description {
    display: flex;
    flex-direction: column;
    height: 100%;
}

#page-container .anchor-to-bottom .button-container {
    flex-grow: 1;
    display: flex;
    align-items: flex-end;
    margin-top: 1rem;
}

#page-container #tuition-table th center strong {
    display: block;
    padding: 0.25rem 1.25rem;
    background-color: var(--color-royal-blue);
    border-radius: 50px;
    width: fit-content;
    color: #FFFFFF;
}

#page-container #tuition-table td.column-1 center,
#page-container #tuition-table td.column-4 center {
    color: var(--color-royal-blue);
    font-weight: 700;
}

/* Tuition table — stacked mobile layout (mirrors cvca-houses-table) */
@media screen and (max-width: 767px) {
    #page-container #tuition-table thead {
        display: none;
    }

    #page-container #tuition-table,
    #page-container #tuition-table tbody,
    #page-container #tuition-table tr,
    #page-container #tuition-table td,
    #page-container #tuition-table th {
        display: block;
        width: 100%;
    }

    #page-container #tuition-table td.column-3 {
        display: none;
    }

    #page-container #tuition-table tbody tr {
        padding: var(--space-md, 1rem) 0;
        border-bottom: 1px solid var(--color-light-gray, #D1D3D4);
    }

    #page-container #tuition-table tbody tr:last-child {
        border-bottom: 0;
    }

    /* Hide empty cells so blank MS/HS slots don't leave gaps */
    #page-container #tuition-table tbody td:empty {
        display: none;
    }

    #page-container #tuition-table tbody td {
        padding: 0.5rem;
        text-align: left !important;
        margin-bottom: var(--space-sm, 0.75rem);
    }

    #page-container #tuition-table tbody td.column-1,
    #page-container #tuition-table tbody td.column-4 {
        background-color: #EEF4FB;
    }

    #page-container #tuition-table tbody td.column-1 center,
    #page-container #tuition-table tbody td.column-4 center {
        color: #212121;
    }

    #page-container #tuition-table tbody td:last-child,
    #page-container #tuition-table tbody td.column-5 {
        margin-bottom: 0;
    }

    #page-container #tuition-table tbody td center {
        display: block;
        text-align: left;
    }

    /* Section labels (same idea as houses-table data-label) */
    #page-container #tuition-table tbody td.column-1:not(:empty)::before {
        content: 'Middle School';
        display: block;
        margin-bottom: 0.15rem;
        font-family: var(--font-family-sans-heading);
        font-size: 11px;
        font-weight: 700;
        letter-spacing: 1.2px;
        text-transform: uppercase;
        color: var(--color-dark-gray, #666);
    }

    #page-container #tuition-table tbody td.column-2:not(:empty)::before {
        content: 'Tuition';
        display: block;
        margin-bottom: 0.15rem;
        font-family: var(--font-family-sans-heading);
        font-size: 11px;
        font-weight: 700;
        letter-spacing: 1.2px;
        text-transform: uppercase;
        color: var(--color-dark-gray, #666);
    }

    #page-container #tuition-table tbody td.column-4:not(:empty)::before {
        content: 'High School';
        display: block;
        margin-bottom: 0.15rem;
        font-family: var(--font-family-sans-heading);
        font-size: 11px;
        font-weight: 700;
        letter-spacing: 1.2px;
        text-transform: uppercase;
        color: var(--color-dark-gray, #666);
    }

    #page-container #tuition-table tbody td.column-5:not(:empty)::before {
        content: 'Tuition';
        display: block;
        margin-bottom: 0.15rem;
        font-family: var(--font-family-sans-heading);
        font-size: 11px;
        font-weight: 700;
        letter-spacing: 1.2px;
        text-transform: uppercase;
        color: var(--color-dark-gray, #666);
    }

    /* Registration fee row — full-width note, no fake section label */
    #page-container #tuition-table tbody tr.row-6 td.column-1::before {
        content: none;
    }

    #page-container #tuition-table tbody tr.row-6 td.column-1 {
        margin-bottom: 0;
        font-family: var(--font-family-sans);
        font-size: var(--font-size-body, 1rem);
        font-weight: 400;
        color: var(--text-default, #1A1A1B);
        line-height: 1.5;
    }

    #page-container .global-cta .et_pb_group {
        flex-direction: column;
    }
}

#gform-conversational button.gform-conversational__nav-button.gform-button.active {
    background-color: #0054a6 !important;
}

#page-container .logo-row .et_pb_image_wrap {
    height: 80px;
    display: flex;
    align-items: center;
    justify-content: center;
}

#page-container .logo-row .et_pb_image_wrap img {
    height: 75%;
    object-fit: contain;
    width: auto;
}

#page-container #et-boc .logo-row .et_pb_image:last-child {
    justify-content: flex-start;
}

#page-container .logo-row .et_pb_column>.et_pb_image {
    flex: 1;
    display: flex;
    justify-content: center;
    align-items: center;
}

@media screen and (max-width: 600px) {
    #page-container #et-boc .et_pb_tab_nav_item {
        display: flex;
        padding: 4px;
    }
}

#page-container .global-cta .et_pb_group {
    gap: 1rem;
}

#page-container #et-boc #main-content .career-hero h1 {
    font-size: var(--font-size-h1);
    font-weight: 500;
    font-family: var(--font-family-serif-display);
    max-width: 800px;
}

.single-job #page-container #et-boc ul {
    padding-bottom: 0 !important;
    margin-left: 1rem;
}

.single-job #page-container #et-boc .cvca-job-details__label {
    color: var(--color-royal-blue);
}

.single-job #page-container #et-boc .et_builder_inner_content .et_pb_section:not(:last-child) h2,
.single-job #page-container #et-boc .et_builder_inner_content .et_pb_section:not(:last-child) h3,
.single-job #page-container #et-boc .et_builder_inner_content .et_pb_section:not(:last-child) h4 {
    margin: 1em 0 0.5em;
    font-family: var(--font-family-sans-heading);
    font-weight: var(--font-weight-bold);
    color: var(--color-royal-blue);
}

.single-job #page-container .royal-weekly-single-hero.career-hero:before {
    opacity: 70%;
}

/* #page-container .testimonial-card__body p {
    font-size: clamp(0.925rem, 0.761rem + 0.818vw, 1.375rem);
} */

.facetwp-flyout-wrap h3 {
    font-size: var(--font-size-h3);
    font-weight: 600;
    font-family: var(--font-family-sans-heading);
    color: var(--color-royal-blue);
    margin-bottom: 1rem;
}

#page-container #mega-menu-wrap-primary-menu #mega-menu-primary-menu>li.mega-menu-item {
    margin: 0 0.5em 0 0;
}

@media screen and (max-width: 1220px) {

    #page-container #et-boc #mega-menu-wrap-primary-menu #mega-menu-primary-menu a.mega-menu-link,
    #page-container #et-boc #mega-menu-wrap-secondary-menu #mega-menu-secondary-menu a.mega-menu-link {
        font-size: 16px;
        padding-left: 6px !important;
        padding-right: 6px !important;
    }
}

@media screen and (max-width: 1000px) {

    #page-container #et-boc #mega-menu-wrap-primary-menu #mega-menu-primary-menu a.mega-menu-link,
    #page-container #et-boc #mega-menu-wrap-secondary-menu #mega-menu-secondary-menu a.mega-menu-link {
        font-size: 15px;
        padding-left: 5px !important;
        padding-right: 5px !important;
    }
}

@media screen and (min-width: 981px) {

    #mega-menu-wrap-secondary-menu #mega-menu-secondary-menu>li.mega-menu-item:last-child,
    #page-container #mega-menu-wrap-primary-menu #mega-menu-primary-menu #mega-menu-item-222 {
        margin-right: 0 !important;
    }
}

/**
 * Max Mega Menu: flip flyouts that would overflow the viewport.
 * Class is toggled by assets/js/mega-menu-flyout-edge.js
 */
@media only screen and (min-width: 982px) {

    #page-container #mega-menu-wrap-primary-menu #mega-menu-primary-menu>li.mega-menu-flyout.cvca-flyout-align-end>ul.mega-sub-menu,
    #page-container #mega-menu-wrap-secondary-menu #mega-menu-secondary-menu>li.mega-menu-flyout.cvca-flyout-align-end>ul.mega-sub-menu {
        left: auto;
        right: 0;
    }

    #page-container #mega-menu-wrap-primary-menu #mega-menu-primary-menu>li.mega-menu-flyout ul.mega-sub-menu li.mega-menu-item.cvca-flyout-align-end>ul.mega-sub-menu,
    #page-container #mega-menu-wrap-secondary-menu #mega-menu-secondary-menu>li.mega-menu-flyout ul.mega-sub-menu li.mega-menu-item.cvca-flyout-align-end>ul.mega-sub-menu {
        left: auto;
        right: 100%;
    }

    /**
     * Desktop flyout panels: content-width (200–260px), radius, shadow,
     * and item dividers. Round first/last child links instead of
     * overflow:hidden so nested flyouts at left/right: 100% are not clipped.
     */
    #page-container #mega-menu-wrap-primary-menu #mega-menu-primary-menu li.mega-menu-flyout > ul.mega-sub-menu,
    #page-container #mega-menu-wrap-secondary-menu #mega-menu-secondary-menu li.mega-menu-flyout > ul.mega-sub-menu,
    #page-container #mega-menu-wrap-primary-menu #mega-menu-primary-menu li.mega-menu-flyout ul.mega-sub-menu li.mega-menu-item > ul.mega-sub-menu,
    #page-container #mega-menu-wrap-secondary-menu #mega-menu-secondary-menu li.mega-menu-flyout ul.mega-sub-menu li.mega-menu-item > ul.mega-sub-menu {
        width: max-content;
        min-width: 200px;
        max-width: 260px;
        border-radius: var(--radius-md);
        box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
    }

    #page-container #mega-menu-wrap-primary-menu #mega-menu-primary-menu li.mega-menu-flyout ul.mega-sub-menu > li.mega-menu-item:first-child > a.mega-menu-link,
    #page-container #mega-menu-wrap-secondary-menu #mega-menu-secondary-menu li.mega-menu-flyout ul.mega-sub-menu > li.mega-menu-item:first-child > a.mega-menu-link {
        border-top-left-radius: var(--radius-md);
        border-top-right-radius: var(--radius-md);
    }

    #page-container #mega-menu-wrap-primary-menu #mega-menu-primary-menu li.mega-menu-flyout ul.mega-sub-menu > li.mega-menu-item:last-child > a.mega-menu-link,
    #page-container #mega-menu-wrap-secondary-menu #mega-menu-secondary-menu li.mega-menu-flyout ul.mega-sub-menu > li.mega-menu-item:last-child > a.mega-menu-link {
        border-bottom-left-radius: var(--radius-md);
        border-bottom-right-radius: var(--radius-md);
    }

    #page-container #mega-menu-wrap-primary-menu #mega-menu-primary-menu li.mega-menu-flyout ul.mega-sub-menu > li.mega-menu-item + li.mega-menu-item > a.mega-menu-link,
    #page-container #mega-menu-wrap-secondary-menu #mega-menu-secondary-menu li.mega-menu-flyout ul.mega-sub-menu > li.mega-menu-item + li.mega-menu-item > a.mega-menu-link {
        border-top: 1px solid var(--border-default);
    }
}

/* Mobile-drawer search: match desktop SearchWP layout (input + button row).
   Submit uses gray fill + divider so it reads against the white field. */
#page-container #et-boc #mega-menu-wrap-primary-menu li.mobile-menu-item.mobile-menu-search {
    line-height: normal;
    padding: 12px 10px 16px;
    list-style: none;
}

#page-container #et-boc #mega-menu-wrap-primary-menu li.mobile-menu-item.mobile-menu-search form.searchwp-form {
    max-width: 100%;
    width: 100%;
    display: block;
}

#page-container #et-boc #mega-menu-wrap-primary-menu li.mobile-menu-item.mobile-menu-search .swp-flex--row {
    width: 100%;
    flex-wrap: nowrap;
    align-items: stretch;
    gap: 0;
    background: var(--white);
    border: 1px solid var(--border-default);
    border-radius: var(--radius-md);
    overflow: hidden;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
}

#page-container #et-boc #mega-menu-wrap-primary-menu li.mobile-menu-item.mobile-menu-search .searchwp-form-input-container {
    flex: 1 1 auto;
    min-width: 0;
    background: var(--white);
}

#page-container #et-boc #mega-menu-wrap-primary-menu li.mobile-menu-item.mobile-menu-search form.searchwp-form input.search-submit.swp-button,
#page-container #et-boc #mega-menu-wrap-primary-menu li.mobile-menu-item.mobile-menu-search form.searchwp-form input[type="submit"].swp-button {
    flex: 0 0 auto;
    width: auto;
    background-color: var(--gray-200) !important;
    color: var(--blue-700) !important;
    border: 0 !important;
    border-left: 1px solid var(--border-default) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

#page-container #et-boc #mega-menu-wrap-primary-menu li.mobile-menu-item.mobile-menu-search form.searchwp-form input.search-submit.swp-button:hover,
#page-container #et-boc #mega-menu-wrap-primary-menu li.mobile-menu-item.mobile-menu-search form.searchwp-form input[type="submit"].swp-button:hover {
    background-color: var(--gray-300) !important;
    color: var(--blue-800) !important;
}

#page-container #et-boc #mega-menu-wrap-primary-menu li.mobile-menu-item>a.mega-menu-link {
    font-size: 15px;
    padding-left: 5px !important;
    padding-right: 5px !important;
    color: #FFF !important;
    font-family: var(--font-family-sans);
    font-weight: 700;
}

/**
 * Mobile drawer: blue panel sub-menus, hierarchy indent (no dividers),
 * larger type, WCAG-sized chevron tap targets. No box-shadow on mobile.
 */
@media only screen and (max-width: 981px) {

    #page-container #et-boc #mega-menu-wrap-primary-menu ul.mega-sub-menu,
    #page-container #et-boc #mega-menu-wrap-secondary-menu ul.mega-sub-menu {
        background: transparent !important;
        box-shadow: none !important;
    }

    /* Top-level drawer items: readable phone type. */
    #page-container #et-boc #mega-menu-wrap-primary-menu #mega-menu-primary-menu > li.mega-menu-item > a.mega-menu-link,
    #page-container #et-boc #mega-menu-wrap-secondary-menu #mega-menu-secondary-menu > li.mega-menu-item > a.mega-menu-link,
    #page-container #et-boc #mega-menu-wrap-primary-menu li.mobile-menu-item > a,
    #page-container #et-boc #mega-menu-wrap-primary-menu li.mobile-menu-item > a.mega-menu-link {
        font-size: 20px !important;
        font-weight: 700 !important;
    }

    #page-container #et-boc #mega-menu-wrap-primary-menu ul.mega-sub-menu a.mega-menu-link,
    #page-container #et-boc #mega-menu-wrap-secondary-menu ul.mega-sub-menu a.mega-menu-link,
    #page-container #et-boc #mega-menu-wrap-primary-menu li.mobile-menu-item > ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link {
        background: transparent !important;
        color: var(--white) !important;
        font-weight: 400 !important;
        font-family: inherit;
        font-size: 17px !important;
        border-top: none !important;
    }

    /* Depth 1: indent under top-level parents. */
    #page-container #et-boc #mega-menu-wrap-primary-menu #mega-menu-primary-menu > li.mega-menu-item > ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link,
    #page-container #et-boc #mega-menu-wrap-secondary-menu #mega-menu-secondary-menu > li.mega-menu-item > ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link {
        padding-left: 1rem !important;
    }

    /* Depth 2+: step further (overrides plugin 20px/30px for consistency). */
    #page-container #et-boc #mega-menu-wrap-primary-menu #mega-menu-primary-menu > li.mega-menu-item > ul.mega-sub-menu ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link,
    #page-container #et-boc #mega-menu-wrap-secondary-menu #mega-menu-secondary-menu > li.mega-menu-item > ul.mega-sub-menu ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link {
        padding-left: 2rem !important;
    }

    #page-container #et-boc #mega-menu-wrap-primary-menu #mega-menu-primary-menu > li.mega-menu-item > ul.mega-sub-menu ul.mega-sub-menu ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link,
    #page-container #et-boc #mega-menu-wrap-secondary-menu #mega-menu-secondary-menu > li.mega-menu-item > ul.mega-sub-menu ul.mega-sub-menu ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link {
        padding-left: 3rem !important;
    }

    #page-container #et-boc #mega-menu-wrap-primary-menu ul.mega-sub-menu a.mega-menu-link:hover,
    #page-container #et-boc #mega-menu-wrap-primary-menu ul.mega-sub-menu a.mega-menu-link:active,
    #page-container #et-boc #mega-menu-wrap-secondary-menu ul.mega-sub-menu a.mega-menu-link:hover,
    #page-container #et-boc #mega-menu-wrap-secondary-menu ul.mega-sub-menu a.mega-menu-link:active,
    #page-container #et-boc #mega-menu-wrap-primary-menu li.mobile-menu-item > ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link:hover,
    #page-container #et-boc #mega-menu-wrap-primary-menu li.mobile-menu-item > ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link:active {
        background: var(--blue-800) !important;
        color: var(--white) !important;
        text-decoration: none !important;
    }

    #page-container #et-boc #mega-menu-wrap-primary-menu li.mega-menu-item-has-children > a.mega-menu-link,
    #page-container #et-boc #mega-menu-wrap-secondary-menu li.mega-menu-item-has-children > a.mega-menu-link {
        position: relative;
        padding-right: 56px !important;
    }

    #page-container #et-boc #mega-menu-wrap-primary-menu a.mega-menu-link .mega-indicator,
    #page-container #et-boc #mega-menu-wrap-secondary-menu a.mega-menu-link .mega-indicator {
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        width: 48px;
        display: flex;
        align-items: center;
        justify-content: center;
        margin: 0;
        padding: 0;
    }
}

#page-container #mega-menu-wrap-primary-menu #mega-menu-primary-menu {
    text-align: left;
}

.single-resource #page-container #et-boc #main-content h1 {
    font-size: var(--font-size-h3);
    font-family: var(--font-family-sans);
    font-weight: 700;
    margin-bottom: 0;
}

.single-resource #page-container #et-boc .royal-weekly-single-hero:before {
    content: '';
    position: absolute;
    width: 600px;
    height: 185%;
    top: 80px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 1;
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    background-image: url('/wp-content/uploads/Lion-WEB-Blue-1.png');
}

#page-container .search-hero {
    min-height: 320px;
}

#page-container .search-hero h1 {
    color: var(--text-heading) !important;
}

#page-container .search-body article,
#page-container .search-body .post-meta {
    margin-bottom: 0;
}

#page-container .search-body article h2 {
    margin-bottom: 0;
    font-size: var(--font-size-h3);
    font-weight: 600 !important;
    height: 100%;
}

#page-container .search-body article a {
    text-decoration: none;
    padding: 1.5rem;
    display: block;
    width: 100%;
    height: 100%;
}

#page-container .search-body .et_pb_blog_posts {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
}

#page-container .search-body .et_pb_blog {
    padding: 0;
}

/* SearchWP form (search results hero / embedded form) */
#page-container form.searchwp-form {
    width: 100%;
    max-width: 36rem;
    margin: 0;
}

#page-container form.searchwp-form .swp-flex--row {
    align-items: stretch;
    gap: 0;
    background: var(--background-primary, #fff);
    border: 1px solid var(--border-default, var(--gray-200));
    border-radius: var(--radius-md);
    overflow: hidden;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
}

#page-container form.searchwp-form .searchwp-form-input-container {
    flex: 1 1 auto;
    min-width: 0;
}

#page-container form.searchwp-form input.swp-input--search,
#page-container form.searchwp-form input.swp-input {
    width: 100%;
    height: 100%;
    min-height: 3rem;
    margin: 0;
    padding: 0.75rem 1rem;
    border: 0 !important;
    border-radius: 0 !important;
    background-color: transparent;
    background-image: none !important;
    /* drop default SearchWP magnifier */
    box-shadow: none !important;
    font-family: var(--font-family-sans);
    font-size: var(--font-size-body, 1rem);
    font-weight: 400;
    color: var(--form-field-text, var(--text-default));
    line-height: 1.4;
}

#page-container form.searchwp-form input.swp-input--search::placeholder,
#page-container form.searchwp-form input.swp-input::placeholder {
    color: var(--form-placeholder-text, var(--text-muted));
    opacity: 1;
}

#page-container form.searchwp-form input.swp-input--search:focus,
#page-container form.searchwp-form input.swp-input:focus {
    outline: none;
    box-shadow: none !important;
}

#page-container form.searchwp-form .swp-flex--row:focus-within {
    border-color: var(--border-focus, var(--color-royal-blue));
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--color-royal-blue) 25%, transparent);
}

#page-container form.searchwp-form input.search-submit.swp-button,
#page-container form.searchwp-form input[type="submit"].swp-button {
    flex: 0 0 auto;
    align-self: stretch;
    margin: 0;
    padding: 0.75rem 1.5rem;
    border: 0 !important;
    border-radius: 0 !important;
    background-color: var(--btn-primary-bg, var(--color-yellow));
    color: var(--btn-primary-text, var(--color-black));
    font-family: var(--font-family-sans);
    font-size: var(--btn-font-size, 16px);
    font-weight: var(--btn-font-weight, 700);
    letter-spacing: 0.02em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background-color 0.2s ease;
    white-space: nowrap;
}

#page-container form.searchwp-form input.search-submit.swp-button:hover,
#page-container form.searchwp-form input[type="submit"].swp-button:hover {
    background-color: var(--btn-primary-bg-hover, var(--yellow-100));
}

#page-container form.searchwp-form input.search-submit.swp-button:focus-visible,
#page-container form.searchwp-form input[type="submit"].swp-button:focus-visible {
    outline: 2px solid var(--focus-ring-outer, var(--color-royal-blue));
    outline-offset: -2px;
}

@media (max-width: 767px) {
    #page-container form.searchwp-form {
        max-width: 100%;
    }

    #page-container form.searchwp-form .swp-flex--row {
        flex-wrap: wrap;
    }

    #page-container form.searchwp-form .searchwp-form-input-container {
        flex: 1 1 100%;
    }

    #page-container form.searchwp-form input.search-submit.swp-button,
    #page-container form.searchwp-form input[type="submit"].swp-button {
        flex: 1 1 100%;
        padding: 0.875rem 1.25rem;
    }
}

#page-container .visit-forms.anchor-to-bottom .et_pb_text_inner {
    display: flex;
    flex-direction: column;
    height: 100%;
}

#page-container .highschool-subpages .et_pb_blurb h2 {
    font-size: var(--font-size-h3);
}

#page-container .highschool-subpages .et_pb_blurb_container {
    padding: 1.5rem;
}

#page-container .highschool-subpages .et_pb_blurb_content img {
    width: 100%;
}

/**
 * High School subpage cards grid.
 *
 * Do NOT put height:100% on .et_pb_blurb_container when it sits beside
 * the image inside Divi's flex blurb content — that creates a circular
 * percentage height (container = 100% of image+container) and balloons
 * cards to thousands of px on mobile. Grow the text block with flex
 * instead so buttons still pin to the bottom on equal-height desktop rows.
 */
#page-container .highschool-subpages .et_pb_column {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 2rem;
}

#page-container .highschool-subpages .et_pb_blurb .et_pb_blurb_content {
    display: flex;
    flex-direction: column;
    height: 100%;
}

#page-container .highschool-subpages .et_pb_blurb .et_pb_blurb_container,
#page-container .highschool-subpages .et_pb_blurb_description {
    height: auto;
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
}

#page-container .highschool-subpages .button-container {
    flex-grow: 0;
    margin-top: auto;
}

#page-container .highschool-subpages .et_pb_blurb .et_pb_image_wrap {
    aspect-ratio: 16 / 9;
    width: 100%;
    display: block;
    overflow: hidden;
}

#page-container .highschool-subpages .et_pb_blurb img {
    object-fit: cover;
    height: 100%;
    width: 100%;
}

@media screen and (min-width: 769px) {
    #page-container .highschool-subpages .et_pb_blurb:last-child {
        grid-column: span 2;
        width: 50%;
        margin: auto;
    }
}

@media screen and (max-width: 768px) {
    #page-container .search-body .et_pb_blog_posts {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 2rem;
    }

    #page-container #et-boc #main-header {
        margin-top: 1.5rem;
    }

    #page-container .highschool-subpages .et_pb_column {
        grid-template-columns: 1fr;
    }

    /* Equal-height card stretch is irrelevant in a single column */
    #page-container .highschool-subpages .et_pb_blurb,
    #page-container .highschool-subpages .et_pb_blurb_content {
        height: auto;
    }
}

@media screen and (max-width: 600px) {
    #page-container .search-body .et_pb_blog_posts {
        display: grid;
        grid-template-columns: repeat(1, 1fr);
        gap: 2rem;
    }
    
}

#page-container .equal-text-box-heights.anchor-to-bottom .et_pb_text_inner {
    display: flex;
    flex-direction: column;
    height: 100%;
}

#page-container .hero-pseudo-image.half-image-hero.beyond-hero:before {
    width: 49%;
    background-image: url('/wp-content/uploads/Brazil-1.webp');
}

#page-container .offset-videos-left .et_pb_image_wrap,
#page-container .offset-videos-right .et_pb_image_wrap {
    aspect-ratio: 2 / 3;
}

#page-container .offset-videos-left .et_pb_image_wrap img,
#page-container .offset-videos-right .et_pb_image_wrap img {
    object-fit: cover;
}

#page-container {
    overflow: hidden;
}

#page-container #main-header {
    margin-top: 0;
}

@media screen and (max-width: 1060px) {
    #page-container #main-header .et_menu_container {
        gap: 1rem;
}
}

@media screen and (max-width: 1023px) {
    #page-container #main-header #mega-menu-wrap-primary-menu #mega-menu-primary-menu>li.mega-menu-item {
        margin: 0 0.25em 0 0;
    }
}

/**
 * Mega Menu desktop search icon — Font Awesome (replaces Dashicons).
 * Layout/colors stay in generated maxmegamenu/style.css; only glyph sizing here.
 */
#mega-menu-wrap-secondary-menu #mega-menu-secondary-menu li#mega-menu-item-88428 .mega-search .search-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    line-height: 1;
}

#mega-menu-wrap-secondary-menu #mega-menu-secondary-menu li#mega-menu-item-88428 .mega-search .search-icon:before {
    font-family: "Font Awesome 7 Sharp", "Font Awesome 7 Pro", var(--fa-style-family-classic, "Font Awesome 6 Free");
    font-weight: 900;
}

/**
 * Scroll motion (JS-marks-first).
 * Elements are only hidden after cvca-scroll-motion.js sets data-cvca-motion,
 * so unscanned / no-JS content stays visible.
 * --cvca-motion-base-delay is set by JS for above-fold page-load reveals only.
 */
#page-container [data-cvca-motion]:not(.is-inview) {
    opacity: 0;
    transition:
        opacity 1.2s cubic-bezier(0.22, 1, 0.36, 1),
        transform 1.2s cubic-bezier(0.22, 1, 0.36, 1);
    transition-delay: calc(var(--cvca-motion-base-delay, 0ms) + var(--cvca-motion-i, 0) * 140ms);
    will-change: opacity, transform;
}

#page-container [data-cvca-motion="fade-up"]:not(.is-inview) {
    transform: translate3d(0, 28px, 0);
}

#page-container [data-cvca-motion="fade-left"]:not(.is-inview) {
    transform: translate3d(-28px, 0, 0);
}

#page-container [data-cvca-motion="fade-right"]:not(.is-inview) {
    transform: translate3d(28px, 0, 0);
}

#page-container [data-cvca-motion="fade-scale"]:not(.is-inview) {
    transform: translate3d(0, 20px, 0) scale(0.98);
}

#page-container [data-cvca-motion].is-inview {
    opacity: 1;
    transform: none;
    transition:
        opacity 1.2s cubic-bezier(0.22, 1, 0.36, 1),
        transform 1.2s cubic-bezier(0.22, 1, 0.36, 1);
    transition-delay: calc(var(--cvca-motion-base-delay, 0ms) + var(--cvca-motion-i, 0) * 140ms);
}

@media (prefers-reduced-motion: reduce) {
    #page-container [data-cvca-motion],
    #page-container [data-cvca-motion]:not(.is-inview),
    #page-container [data-cvca-motion].is-inview {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
        will-change: auto;
    }
}