/* Colorado College 2025 - Global, Navigation, and Footer Styles */

/* ================================
   DESIGN TOKENS (CSS CUSTOM PROPERTIES)
   ================================ */
:root {
    /* COLORS - Brand */
    --cc-color-gold: #EAB337;
    --cc-color-gold-hover: #d4a02f;
    --cc-color-orange: #e04f39;

    /* COLORS - Base */
    --cc-color-black: #000000;
    --cc-color-white: #ffffff;
    --cc-color-black-soft: #060606;
    --cc-color-gray-dark: #333333;
    --cc-color-gray-medium: #7B7B7B;
    --cc-color-gray-light: #ADADAD;
    --cc-color-gray-lightest: #EDEDED;

    /* COLORS - Backgrounds */
    --cc-color-bg-beige: #F8F5F0;
    --cc-color-bg-beige-light: #F5F5F5;
    --cc-color-bg-blue: #B9D9EB;
    --cc-color-bg-overlay-red: #B85C38;
    --cc-color-bg-mobile-menu: #f8f5f1;
    --cc-color-bg-mobile-expanded: #F2ECE2;

    /* COLORS - Borders */
    --cc-color-border-gray: #ADADAD;
    --cc-color-border-light: #E5E5E5;
    --cc-color-border-lightest: #F5F5F5;
    --cc-color-border-mobile: #E3D7C5;
    --cc-color-border-green: #BAD739;

    /* COLORS - Text */
    --cc-color-text-brown: #885E46;
    --cc-color-text-blue: #20445A;
    --cc-color-text-placeholder: #7B7B7B;

    /* TYPOGRAPHY - Font Families */
    --cc-font-primary: "proxima-nova", sans-serif;
    --cc-font-serif: "archer-pro", serif;
    --cc-font-serif-thin: "archer-thin-pro", serif;
    --cc-font-serif-hairline: "archer-hairline-pro", serif;

    /* TYPOGRAPHY - Font Weights */
    --cc-font-weight-light: 300;
    --cc-font-weight-normal: 400;
    --cc-font-weight-semibold: 600;
    --cc-font-weight-bold: 700;
    --cc-font-weight-extrabold: 800;

    /* TYPOGRAPHY - Font Sizes */
    --cc-font-size-xs: 11px;
    --cc-font-size-sm: 12px;
    --cc-font-size-base: 14px;
    --cc-font-size-md: 16px;
    --cc-font-size-lg: 18px;
    --cc-font-size-xl: 20px;
    --cc-font-size-2xl: 22px;
    --cc-font-size-3xl: 24px;
    --cc-font-size-4xl: 36px;
    --cc-font-size-5xl: 48px;
    --cc-font-size-6xl: 60px;
    --cc-font-size-7xl: 72px;
    --cc-font-size-8xl: 80px;

    /* SPACING */
    --cc-spacing-xs: 8px;
    --cc-spacing-sm: 12px;
    --cc-spacing-md: 16px;
    --cc-spacing-lg: 20px;
    --cc-spacing-xl: 24px;
    --cc-spacing-2xl: 32px;
    --cc-spacing-3xl: 40px;
    --cc-spacing-4xl: 60px;
    --cc-spacing-5xl: 80px;
    --cc-spacing-6xl: 120px;

    /* TRANSITIONS */
    --cc-transition-base: all 0.3s ease;
    --cc-transition-transform: transform 0.3s ease;
    --cc-transition-color: color 0.3s ease;
    --cc-transition-background: background-color 0.3s ease;
    --cc-transition-border: border-color 0.3s ease;
    --cc-transition-opacity: opacity 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    --cc-transition-fade: opacity 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    --cc-transition-scale: transform 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);

    /* BREAKPOINTS (for use in JavaScript if needed) */
    --cc-breakpoint-sm: 576px;
    --cc-breakpoint-md: 768px;
    --cc-breakpoint-lg: 992px;
    --cc-breakpoint-xl: 1200px;

    /* SHADOWS */
    --cc-shadow-light: 0 4px 6px rgba(0, 0, 0, 0.1);
    --cc-shadow-medium: 0 8px 24px rgba(0, 0, 0, 0.12);
    --cc-shadow-mobile: 0px 4px 30px rgba(0, 0, 0, 0.15);

    /* Z-INDEX SCALE */
    --cc-z-base: 0;
    --cc-z-overlay: 1;
    --cc-z-modal: 2;
    --cc-z-dropdown: 3;
}

/* ================================
   GLOBAL BASE & ELEMENT STYLES
   ================================ */

/* Global overflow prevention for mobile horizontal scroll */
#content {
    overflow-x: hidden;
}

body {
    font-family: var(--cc-font-primary);
    font-weight: var(--cc-font-weight-normal);
    font-style: normal;
}

p {
    text-wrap-style: pretty;
}

a {
     color: inherit;
     text-decoration-color: var(--cc-color-gold);
     text-decoration-thickness: 2px;
     transition: text-decoration-color;
     text-decoration-skip-ink: none;
}

a:hover,
a:active {
     text-decoration-color: var(--cc-color-gray-dar);
}

.btn {
    border-radius: 0;
    padding: 0.125rem 0.75rem;
    transition: var(--cc-transition-base);
}

.btn:hover {
    transform: translateY(-2px);
}

.form-control,
.input-group-text {
    border-radius: 0;
    border-color: var(--cc-color-border-gray);
    padding: 0.125rem 0.375rem;
}

.nav-link {
    color: var(--cc-color-black);
}

/* hide empty elements */ 
.cc-is-empty {
    display: none !important;
}

/* Mobile responsive fixes */
@media (max-width: 767.98px) {

    /* Prevent horizontal overflow on mobile */
    .container-fluid {
        overflow-x: hidden;
    }

    /* Ensure rows don't extend beyond viewport */
    .row {
        margin-left: 0;
        margin-right: 0;
        max-width: 100%;
    }

    /* Fix any Bootstrap negative margins causing overflow */
    .container-fluid>.row {
        margin-left: 0;
        margin-right: 0;
    }
}

/* ================================
   GLOBAL COMPONENT STYLES
   ================================ */

/* Utility color class */
.sandstone-orange {
    color: var(--cc-color-orange) !important;
}

/* Consolidated base styles for section labels and icons */
.section-label {
    display: flex;
    align-items: center;
    gap: var(--cc-spacing-sm);
    margin-bottom: 0;
    font-family: var(--cc-font-primary);
    font-weight: var(--cc-font-weight-bold);
    font-size: var(--cc-font-size-base);
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--cc-color-black);
}

.section-label .icon,
.section-label .icon-tc {
    font-size: 1.5rem;
    color: var(--cc-color-gold);
}

/* Mobile responsive for section labels */
@media (max-width: 767.98px) {
    .section-label {
        font-size: var(--cc-font-size-sm);
        margin-bottom: 0;
    }
}

/* ================================
   UNIFIED CTA BUTTON SYSTEM
   ================================ */

/* --- Base CTA Button Class --- */
.cta-btn {
    display: inline-flex;
    align-items: center;
    gap: var(--cc-spacing-sm);
    padding: var(--cc-spacing-sm) var(--cc-spacing-xl);
    text-decoration: none;
    font-family: var(--cc-font-primary);
    font-weight: var(--cc-font-weight-bold);
    font-size: var(--cc-font-size-md);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border-radius: 0;
    border: 2px solid transparent;
    align-self: flex-start;
    cursor: pointer;
    
    /* Unified transition for all properties */
    transition: transform 0.3s ease, 
                background-color 0.3s ease, 
                color 0.3s ease,
                border-color 0.3s ease,
                box-shadow 0.3s ease;
    
    /* Prevent text selection on buttons */
    user-select: none;
    -webkit-user-select: none;
}
.cc-buttons-section .cta-btn {
    font-size: var(--cc-font-size-lg);
}

/* --- Base Hover State --- */
.cta-btn:hover {
    text-decoration: none;
    transform: translate(-5px, -5px);
}

/* --- Color Variants --- */

/* Gold Button */
.cta-btn-gold {
    background-color: var(--cc-color-gold);
    color: var(--cc-color-black);
}

.cta-btn-gold:hover {
    background-color: var(--cc-color-black);
    color: var(--cc-color-white);
    border-color: var(--cc-color-gold);
    box-shadow: 5px 5px 0 var(--cc-color-gold);
}

/* Black Button */
.cta-btn-black {
    background-color: var(--cc-color-black);
    color: var(--cc-color-white);
}

.cta-btn-black:hover {
    background-color: var(--cc-color-gold);
    color: var(--cc-color-black);
    border-color: var(--cc-color-black);
    box-shadow: 5px 5px 0 var(--cc-color-black);
}

/* White Button */
.cta-btn-white {
    background-color: var(--cc-color-white);
    color: var(--cc-color-black);
}

.cta-btn-white:hover {
    background-color: var(--cc-color-black);
    color: var(--cc-color-white);
    border-color: var(--cc-color-white);
    box-shadow: 5px 5px 0 var(--cc-color-white);
}

/* --- Size Variants --- */

/* Small Button Modifier */
.cta-btn-small {
    font-size: var(--cc-font-size-sm);
    padding: 8px var(--cc-spacing-md);
    gap: 8px;
    letter-spacing: 0.025em;
    text-transform: none; /* No uppercase for card context */
}

.cta-btn-small:hover {
    transform: translate(-3px, -3px);
}

.cta-btn-small.cta-btn-gold:hover {
    box-shadow: 3px 3px 0 var(--cc-color-gold);
}

.cta-btn-small.cta-btn-black:hover {
    box-shadow: 3px 3px 0 var(--cc-color-black);
}

.cta-btn-small.cta-btn-white:hover {
    box-shadow: 3px 3px 0 var(--cc-color-white);
}

/* --- Context Modifiers --- */

/* Header Context - Smaller, more subtle */
.cta-btn-header {
    height: 28px;
    padding: 3.5px var(--cc-spacing-md);
    font-size: var(--cc-font-size-base);
    line-height: 1.5;
    text-transform: none;
    letter-spacing: 0;
}

/* Hero Context - Special fade-in animation support */
.cta-btn-hero {
    transition: all 0.3s ease,
                opacity 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94) 0.4s,
                transform 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94) 0.4s;
}

/* --- Icon Sizing --- */
.cta-btn i,
.cta-btn .icon {
    font-size: 2rem;
    line-height: 1;
}

.cta-btn-small i,
.cta-btn-small .icon {
    font-size: 1.3rem;
}

.cta-btn-header i,
.cta-btn-header .icon {
    font-size: 1.2rem;
}

/* --- Mobile Responsive --- */
@media (max-width: 767.98px) {
    .cta-btn {
        font-size: var(--cc-font-size-base);
        padding: 10px var(--cc-spacing-lg);
    }
    
    .cta-btn-header {
        padding: 6px var(--cc-spacing-sm);
        font-size: 13px;
    }
}

/* ================================
   UTILITY CLASSES
   ================================ */

/* Animated Underline Utility */
/*.cc-text-underline-animated {*/
/*    position: relative;*/
/*}*/

/*.cc-text-underline-animated::after {*/
/*    content: '';*/
/*    position: absolute;*/
/*    bottom: -3px;*/
/*    left: 0;*/
/*    width: 100%;*/
/*    height: 9px;*/
/*    background-color: var(--cc-color-orange);*/
/*    transform: scaleX(0);*/
/*    transform-origin: left center;*/
/*    transition: transform 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);*/
/*    will-change: transform;*/
/*}*/

/*.cc-text-underline-animated.underline-visible::after {*/
/*    transform: scaleX(1);*/
/*}*/

/* Respect user's reduced motion preference */
/*@media (prefers-reduced-motion: reduce) {*/
/*    .cc-text-underline-animated::after {*/
/*        animation: none !important;*/
/*        transition: none !important;*/
/*        transform: scaleX(1) !important;*/
/*    }*/
/*}*/

/* Responsive underline thickness */
/*@media (max-width: 767.98px) {*/
/*    .cc-text-underline-animated::after {*/
/*        height: 10px;*/
/*        bottom: -1px;*/
/*    }*/
/*}*/

/*@media (min-width: 768px) and (max-width: 991.98px) {*/
/*    .cc-text-underline-animated::after {*/
/*        height: 10px;*/
/*        bottom: -1.5px;*/
/*    }*/
/*}*/


/* Base: hidden underline */
.cc-text-underline-animated {
    position: relative;
    text-decoration: none;

    /* configurable underline thickness */
    --cc-underline-thickness: 9px;

    background-image: linear-gradient(var(--cc-color-orange), var(--cc-color-orange));
    background-position: 0 92%; /* bottom of text */
    background-repeat: no-repeat;
    background-size: 0% var(--cc-underline-thickness); /* width 0% = hidden */
    transition: background-size 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

/* When JS adds this class, the underline “wipes” in */
.cc-text-underline-animated.underline-visible {
    background-size: 100% var(--cc-underline-thickness);
}

/* Respect user's reduced motion preference */
@media (prefers-reduced-motion: reduce) {
    .cc-text-underline-animated {
        transition: none !important;
    }

    .cc-text-underline-animated.underline-visible {
        background-size: 100% var(--cc-underline-thickness) !important;
    }
}

/* Responsive underline thickness (px-based) */
@media (max-width: 767.98px) {
    .cc-text-underline-animated {
        --cc-underline-thickness: 7px;
    }
}

@media (min-width: 768px) and (max-width: 991.98px) {
    .cc-text-underline-animated {
        --cc-underline-thickness: 8px;
    }
}

/* optional: large screens */
@media (min-width: 992px) {
    .cc-text-underline-animated {
        --cc-underline-thickness: 9px;
    }
}



/* Layout Utilities - removed unused flex-direction classes (Bootstrap order classes handle column ordering) */

/* Content Width Utilities */
.cc-content-wide {
    max-width: 1200px;
    margin: 0 auto;
}

.cc-content-narrow {
    max-width: 800px;
    margin: 0 auto;
}

/* Spacing Utilities */
.cc-spacing-sm {
    /*padding: var(--cc-spacing-3xl) 0;*/
    padding: var(--cc-spacing-sm) 0;
}

.cc-spacing-md {
    /*padding: var(--cc-spacing-5xl) 0;*/
    padding: var(--cc-spacing-md) 0;
}

.cc-spacing-lg {
    /*padding: var(--cc-spacing-6xl) 0;*/
    padding: var(--cc-spacing-lg) 0;
}
.cc-spacing-xl {
    padding: var(--cc-spacing-xl) 0;
}
.cc-spacing-2xl {
    padding: var(--cc-spacing-2xl) 0;
}


/* Content Section Base Class */
.cc-content-section {
    width: 100%;
    position: relative;
}

/* Responsive Spacing */
@media (max-width: 767.98px) {
    .cc-spacing-sm {
        padding: var(--cc-spacing-xl) 0;
    }

    .cc-spacing-md {
        padding: var(--cc-spacing-3xl) 0;
    }

    .cc-spacing-lg {
        padding: var(--cc-spacing-4xl) 0;
    }
}

/* ================================
   CONSOLIDATED TYPOGRAPHY STYLES  
   ================================ */

/* Base Section Headline */
.cc-section-headline,
.cc-section-heading {
    font-family: var(--cc-font-primary), "Helvetica Neue", sans-serif;
    font-weight: var(--cc-font-weight-extrabold);
    font-size: var(--cc-font-size-6xl);
    line-height: 1.1;
    margin: 0;
    text-transform: uppercase;
    letter-spacing: -0.02em;
}
.cc-section-heading{
    margin-bottom: var(--cc-spacing-lg);
    font-size: var(--cc-font-size-4xl);
}

/* Base Section Description */
.cc-section-description {
    font-family: var(--cc-font-primary), "Helvetica Neue", sans-serif;
    font-weight: var(--cc-font-weight-normal);
    font-size: var(--cc-font-size-lg);
    line-height: 1.6;
    margin: 0;
}

/* CTA Headline (larger, centered) */
.cc-cta-headline {
    font-family: var(--cc-font-primary), "Helvetica Neue", sans-serif;
    font-weight: var(--cc-font-weight-bold);
    font-size: var(--cc-font-size-7xl);
    line-height: 1.1;
    margin: 0 0 var(--cc-spacing-2xl) 0;
    text-transform: uppercase;
    letter-spacing: -0.02em;
}

/* Mobile responsive typography */
@media (max-width: 767.98px) {
    .cc-section-headline {
        font-size: var(--cc-font-size-4xl);
    }

    .cc-section-description {
        font-size: var(--cc-font-size-md);
        line-height: 1.5;
    }

    .cc-cta-headline {
        font-size: var(--cc-font-size-5xl);
        margin-bottom: var(--cc-spacing-xl);
        line-height: 1.2;
    }
}

/* Tablet responsive typography */
@media (min-width: 768px) and (max-width: 991.98px) {
    .cc-section-headline {
        font-size: var(--cc-font-size-5xl);
    }

    .cc-section-description {
        font-size: 17px;
    }

    .cc-cta-headline {
        font-size: var(--cc-font-size-6xl);
    }
}

/* ================================
   COMPREHENSIVE THEMING SYSTEM
   ================================ */

/* Light Theme (Default) */
.cc-theme-light {
    background-color: var(--cc-color-white);
    color: var(--cc-color-black);
}

.cc-theme-light .cc-section-headline,
.cc-theme-light .cc-section-description,
.cc-theme-light .section-label {
    color: var(--cc-color-black);
}

.cc-theme-light .section-label .icon,
.cc-theme-light .section-label .icon-tc {
    color: var(--cc-color-orange);
}

/* Dark Theme */
.cc-theme-dark {
    background-color: var(--cc-color-black);
    color: var(--cc-color-white);
}

.cc-theme-dark .cc-section-headline,
.cc-theme-dark .cc-section-description,
.cc-theme-dark .section-label,
.cc-theme-dark a {
    color: var(--cc-color-white);
}

.cc-theme-dark a.cta-btn-gold {
    color: var(--cc-color-black);
}
.cc-theme-dark a.cta-btn-gold:hover {
    color: var(--cc-color-white);
    /* transform is already handled by base hover state */
}

.cc-theme-dark .section-label .icon,
.cc-theme-dark .section-label .icon-tc {
    color: var(--cc-color-gold);
}

/* Blue Theme */
.cc-theme-blue {
    background-color: var(--cc-color-bg-blue);
    color: var(--cc-color-text-blue);
}

.cc-theme-blue .cc-section-headline,
.cc-theme-blue .cc-section-description,
.cc-theme-blue .section-label {
    color: var(--cc-color-text-blue);
}

.cc-theme-blue .section-label .icon,
.cc-theme-blue .section-label .icon-tc {
    color: var(--cc-color-orange);
}

/* Beige Theme */
.cc-theme-beige {
    background-color: var(--cc-color-bg-beige);
    color: var(--cc-color-black-soft);
}

.cc-theme-beige .cc-section-headline,
.cc-theme-beige .cc-section-description,
.cc-theme-beige .section-label {
    color: var(--cc-color-black-soft);
}

.cc-theme-beige .section-label .icon,
.cc-theme-beige .section-label .icon-tc {
    color: var(--cc-color-orange);
}

/* ================================
   FADE-IN ANIMATION STYLES
   ================================ */

/* Respect user's reduced motion preference */
@media (prefers-reduced-motion: reduce) {

    .fade-in-animate,
    .fade-in-visible {
        animation: none !important;
        transition: none !important;
        opacity: 1 !important;
        transform: none !important;
    }
}

.fade-in-animate {
    opacity: 0;
    transform: scale(0.95);
    transition: opacity 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94),
        transform 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    will-change: opacity, transform;
}

.fade-in-visible {
    opacity: 1;
    transform: scale(1);
}

.fade-in-animate:not(.fade-in-visible) {
    opacity: 0;
    transform: scale(0.95);
}

/* Staggered animation delays */
.fade-in-animate.delay-1 {
    transition-delay: 0.1s;
}

.fade-in-animate.delay-2 {
    transition-delay: 0.2s;
}

.fade-in-animate.delay-3 {
    transition-delay: 0.3s;
}

.fade-in-animate.delay-4 {
    transition-delay: 0.4s;
}

.fade-in-animate.delay-5 {
    transition-delay: 0.5s;
}

/* Specific animation adjustments for different element types */
.cc-homepage-hero-headline.fade-in-animate,
.section-headline.fade-in-animate,
.callout-headline.fade-in-animate,
.cta-headline.fade-in-animate {
    transition-duration: 1s;
}

.cta-btn-gold.fade-in-animate,
.cta-btn-black.fade-in-animate {
    transition: opacity 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94),
                transform 0.3s ease;
    will-change: opacity, transform;
}

.cta-btn-gold.fade-in-visible:not(:hover),
.cta-btn-black.fade-in-visible:not(:hover) {
    transform: scale(1);
}

.cc-news-title.fade-in-animate,
.cc-events-title.fade-in-animate {
    transform: scale(0.95);
    transition-duration: 0.7s;
}

/* Mobile adjustments for smoother performance */
@media (max-width: 767.98px) {
    .fade-in-animate {
        transform: scale(0.97);
        transition-duration: 0.6s;
    }

    .fade-in-animate:not(.fade-in-visible) {
        transform: scale(0.97);
    }

    .cc-homepage-hero-headline.fade-in-animate,
    .section-headline.fade-in-animate,
    .callout-headline.fade-in-animate,
    .cta-headline.fade-in-animate {
        transition-duration: 0.7s;
    }

    .cta-btn-gold.fade-in-animate,
    .cta-btn-black.fade-in-animate {
        transition-duration: 0.5s;
    }
}

/* ================================
   HEADER & NAVIGATION
   ================================ */

/* Header CTA buttons now use unified system with .cta-btn .cta-btn-black .cta-btn-header classes */



/* Navigation layout - Left and Right Groups */
.cc-nav-dropdowns {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.cc-nav-standalone {
    display: flex;
    align-items: center;
    padding: 0.65rem 0;
    gap: 0.75rem;
}

.cc-nav-standalone .nav-item {
    background-color: #F8F5F0;
    /* border: 1px solid var(--cc-color-border-mobile); */
    padding: 0;
}
.cc-nav-standalone .nav-item .icon {
    font-size: 0.75rem;
}
/* Main navigation specific styling */
#CCmainNavbar .nav-link {
    color: var(--cc-color-black);
}

#CCmainNavbar .nav-link:hover,
#CCmainNavbar .nav-link:focus {
    color: var(--cc-color-black-soft);
}

/* Active navigation item */
#CCmainNavbar .nav-item.active {
    background-color: var(--cc-color-bg-beige);
}

#CCmainNavbar .nav-item.active .nav-link {
    color: var(--cc-color-black-soft);
}

#CCmainNavbar .nav-item.active::after {
    width: 100%;
    height: 4px;
    background-color: var(--cc-color-gold);
}

/* Transparent border placeholder to prevent layout shift */
#CCmainNavbar .dropdown .dropdown-toggle {
    border-bottom: 4px solid transparent !important;
}

/* Active dropdown state styling */
#CCmainNavbar .dropdown:hover .dropdown-toggle,
#CCmainNavbar .dropdown.show .dropdown-toggle {
    background-color: #F8F5F0;
    border-bottom: 4px solid #EAB337 !important;
    border-radius: 0;
    color: #060606;
}

/* Navigation underline hover effect */
#CCmainNavbar .nav-item {
    position: relative;
}

#CCmainNavbar .nav-item::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 0;
    height: 3px;
    background-color: #EAB337;
    transition: width 0.3s ease;
}

#CCmainNavbar .nav-item:hover::after {
    width: 100%;
}

#CCmainNavbar .nav-item.show::after {
    width: 100%;
}

/* Dropdown menu base styling */
#CCmainNavbar .dropdown-menu {
    border-radius: 0;
    border-top: none;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    margin-top: -1px;
}

/* 2-column layout setup */
#CCmainNavbar .dropdown-menu.two-columns {
    padding: 1rem;
    grid-template-columns: 1fr 1fr;
    gap: 0;
    display: none !important;
    /* Ensure hidden by default */
}

#CCmainNavbar .dropdown:hover .dropdown-menu.two-columns,
#CCmainNavbar .dropdown.show .dropdown-menu.two-columns {
    display: grid !important;
}

#CCmainNavbar .dropdown-menu.two-columns .dropdown-item {
    padding: 0.5rem 1rem;
    margin: 0;
    border: none;
}

/* Pure CSS hover for standard dropdowns */
#CCmainNavbar .dropdown:hover .dropdown-menu:not(.two-columns) {
    display: block;
}

/* ================================
   UTILITY MENU DROPDOWN STYLING
   ================================ */

/* Apply consistent dropdown styling to utility menus (Site Tools, Audience) */
.cc-header-nav .navbar-nav .dropdown-menu {
    border-radius: 0;
    border-top: none;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    margin-top: -1px;
}

/* Utility dropdown toggle - positioning and transparent border for spacing */
.cc-header-nav .navbar-nav .dropdown-toggle {
    position: relative;
    border-bottom: 4px solid transparent !important;
    transition: all 0.3s ease;
    padding-left: 0.5rem;  /* Same as Bootstrap's navbar link padding */
    padding-right: 0.5rem; /* Same as Bootstrap's navbar link padding */
}

/* Utility dropdown nav-item positioning for pseudo-element */
.cc-header-nav .navbar-nav .nav-item {
    position: relative;
}

/* Animated underline using ::after pseudo-element (matches main nav) */
.cc-header-nav .navbar-nav .nav-item::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 0;
    height: 4px;
    background-color: #EAB337;
    transition: width 0.3s ease;
}

/* Animate underline on hover and when dropdown is shown */
.cc-header-nav .navbar-nav .nav-item:hover::after,
.cc-header-nav .navbar-nav .nav-item.show::after {
    width: 100%;
}

/* Background color change on hover/show (no border since ::after handles underline) */
.cc-header-nav .navbar-nav .dropdown:hover .dropdown-toggle,
.cc-header-nav .navbar-nav .dropdown.show .dropdown-toggle {
    background-color: #F8F5F0;
    border-radius: 0;
    color: #060606;
}

/* Consistent dropdown item styling for utility menus */
.cc-header-nav .navbar-nav .dropdown-menu .dropdown-item {
    padding: 0.5rem 1rem;
    margin: 0;
    border: none;
}

/* Header responsive fixes */
@media (min-width: 992px) and (max-width: 1199px) {
    .cc-header-nav-top form[role="search"] {
        margin-left: 2rem !important;
        margin-right: 0.5rem !important;
    }

    .navbar-nav .nav-link,
    #CCmainNavbar .nav-link {
        font-size: 0.9rem;
        padding-left: 0.25rem;
        padding-right: 0.25rem;
    }
}

@media (min-width: 992px) and (max-width: 1399px) {
    .cc-nav-dropdowns {
        gap: 1rem 0;
    }
} 

@media (min-width: 1200px) {
    .cc-header-nav-top form[role="search"] {
        margin-left: 8rem !important;
        margin-right: 2rem !important;
    }
}

/* ================================
   SUBPAGE SUBNAV STYLES
   ================================ */

.cc-subpage-subnav {
    background-color: var(--cc-color-white);
    border-bottom: 1px solid var(--cc-color-border-light);
    position: relative;
}

/* Desktop Subnav */
.cc-subnav-desktop .cc-subnav-label {
    font-family: var(--cc-font-primary);
    font-weight: var(--cc-font-weight-bold);
    font-size: var(--cc-font-size-base);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: #D83A22;
    text-align: center;
    margin-bottom: var(--cc-spacing-sm);
    display: block;
    width: 100%;
}

.cc-subnav-desktop .cc-subnav-links {
    flex-wrap: wrap;
    justify-content: center;
}

.cc-subnav-desktop .cc-subnav-link {
    font-family: var(--cc-font-primary);
    font-weight: var(--cc-font-weight-bold);
    font-size: var(--cc-font-size-lg);
    color: var(--cc-color-black);
    text-decoration: none;
    padding: var(--cc-spacing-xs) 0;
    border-bottom: 2px solid transparent;
    transition: var(--cc-transition-base);
    white-space: nowrap;
}

.cc-subnav-desktop .cc-subnav-link:hover,
.cc-subnav-desktop .cc-subnav-link.cc-active {
    color: var(--cc-color-black);
    border-bottom-color: var(--cc-color-gold);
    text-decoration: none;
}
.cc-subnav-desktop .dropdown-item.cc-active {
    text-decoration: underline;
    text-decoration-color: var(--cc-color-gold);
    text-decoration-thickness: 2px;
    transition: text-decoration-color;
    text-decoration-skip-ink: none;
}

/* Mobile Subnav */
.cc-subnav-mobile-toggle-container {
    width: 100vw;
    margin-left: calc(-50vw + 50%);
    transition: var(--cc-transition-background);
}

.cc-subnav-mobile-toggle {
    background-color: transparent;
    border: none;
    border-radius: 0;
    font-family: var(--cc-font-primary);
    font-weight: var(--cc-font-weight-bold);
    font-size: var(--cc-font-size-md);
    color: var(--cc-color-black);
    text-align: center;
    transition: var(--cc-transition-base);
}

.cc-subnav-mobile-toggle:hover,
.cc-subnav-mobile-toggle:focus {
    background-color: transparent;
    color: var(--cc-color-black);
    box-shadow: none;
}

.cc-subnav-mobile-toggle[aria-expanded="true"] {
    background-color: transparent;
}

.cc-subnav-mobile-toggle-container:has(.cc-subnav-mobile-toggle[aria-expanded="true"]),
.cc-subnav-mobile-toggle-container.expanded {
    background-color: var(--cc-color-gold);
}

.cc-subnav-mobile-label {
    font-weight: var(--cc-font-weight-bold);
}

.cc-subnav-arrow {
    font-size: var(--cc-font-size-base);
    transition: var(--cc-transition-transform);
}

.cc-subnav-mobile-toggle[aria-expanded="true"] .cc-subnav-arrow {
    transform: rotate(180deg);
}

.cc-subnav-mobile-content {
    background-color: var(--cc-color-white);
    border-left: 1px solid var(--cc-color-border-light);
    border-right: 1px solid var(--cc-color-border-light);
    border-bottom: 1px solid var(--cc-color-border-light);
    margin-top: -1px;
}

.cc-subnav-mobile-link {
    font-family: var(--cc-font-primary);
    font-weight: var(--cc-font-weight-normal);
    font-size: var(--cc-font-size-md);
    color: var(--cc-color-black);
    text-decoration: none;
    padding: var(--cc-spacing-sm) var(--cc-spacing-md);
    border-bottom: 1px solid var(--cc-color-border-lightest);
    transition: var(--cc-transition-base);
    /*display: block;*/
}

.cc-subnav-mobile-link:last-child {
    border-bottom: none;
}

.cc-subnav-mobile-link:hover {
    background-color: var(--cc-color-bg-beige);
    color: var(--cc-color-black);
    text-decoration: none;
}

/* Subnav Responsive adjustments */
@media (min-width: 992px) and (max-width: 1199px) {
    .cc-subnav-desktop .cc-subnav-label {
        font-size: 11px;
    }

    .cc-subnav-desktop .cc-subnav-link {
        font-size: 13px;
    }

    .cc-subnav-desktop .d-flex,
    .cc-subnav-desktop .cc-subnav-links {
        gap: 1rem !important;
    }
}

@media (min-width: 768px) and (max-width: 991.98px) {
    .cc-subnav-mobile-toggle {
        font-size: 15px;
        padding: 16px;
    }

    .cc-subnav-mobile-link {
        font-size: 15px;
        padding: 14px 16px;
    }
}

@media (max-width: 767.98px) {
    .cc-subnav-mobile-toggle {
        font-size: 14px;
        padding: 14px 16px;
    }

    .cc-subnav-mobile-link {
        font-size: 14px;
        padding: 12px 16px;
    }
}

/* Ensure the dynamically created no-orphan wrapper behaves correctly */
.cc-subnav-links > div.d-flex {
    flex-shrink: 0; /* Prevents the pair from squishing if space is tight */
    max-width: 100%; /* Prevents overflow on very small mobile screens */
}

/* ================================
   MOBILE HEADER & MENU
   ================================ */

/* Mobile header styling */
@media (max-width: 767.98px) {
    .cc-header-nav-top {
        min-height: 80px;
        padding: 1.5rem;
    }

    .cc-mobile-logo {
        height: 2rem;
        width: auto;
        max-width: 40vw;
    }

    .cc-mobile-text {
        font-size: 1rem;
        color: var(--cc-color-black-soft);
        line-height: 1.5;
    }

    .cc-mobile-icon {
        font-size: 1.5rem;
        color: var(--cc-color-black-soft);
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .cc-mobile-btn {
        height: auto;
        min-height: 1.75rem;
        display: flex;
        align-items: center;
        gap: 0.5rem;
    }
}

@media (max-width: 479.98px) {
    .cc-header-nav-top {
        padding: 1rem;
    }

    .cc-mobile-logo {
        height: 1.75rem;
        max-width: 45vw;
    }

    .cc-mobile-text {
        font-size: 0.9rem;
    }

    .cc-mobile-icon {
        font-size: 1.25rem;
    }
}

/* Mobile search */
#mobileSearch {
    background: var(--cc-color-black-soft);
    box-shadow: var(--cc-shadow-mobile);
}

#mobileSearch .container-fluid {
    background: var(--cc-color-black-soft);
    padding: 10px var(--cc-spacing-xl);
    overflow: visible;
}

#mobileSearch .container {
    padding: 0;
    max-width: 432px;
}

#mobileSearch .input-group {
    height: 44px;
    background: var(--cc-color-white);
    border: 1px solid var(--cc-color-border-gray);
    border-radius: 0;
}

#mobileSearch .input-group-text {
    background: var(--cc-color-white);
    border: none;
    padding: 0 var(--cc-spacing-sm);
}

#mobileSearch .input-group-text .icon {
    color: var(--cc-color-text-placeholder);
}

#mobileSearch .form-control {
    background: var(--cc-color-white);
    border: none;
    font-size: var(--cc-font-size-md);
    color: var(--cc-color-black);
    padding: 10px 0;
}

#mobileSearch .form-control::placeholder {
    color: var(--cc-color-text-placeholder);
    font-family: var(--cc-font-primary);
    font-weight: var(--cc-font-weight-normal);
    font-size: var(--cc-font-size-md);
}

/* Mobile menu */
#mobileMenu {
    background: var(--cc-color-bg-mobile-menu);
}

#mobileMenu .container-fluid {
    background: var(--cc-color-bg-mobile-menu);
}

#mobileMenu .collapse.show {
    background: var(--cc-color-bg-mobile-expanded);
    padding: var(--cc-spacing-md) 0;
    margin: 0 -24px;
    padding-left: var(--cc-spacing-xl);
    padding-right: var(--cc-spacing-xl);
}

#mobileMenu .border-bottom {
    border-color: var(--cc-color-border-mobile) !important;
    transition: var(--cc-transition-border);
}

/* Add !important to override Bootstrap */
#mobileMenu .accordion-expanded {
    background: var(--cc-color-bg-mobile-expanded);
    margin: 0 -24px;
    padding: var(--cc-spacing-lg) var(--cc-spacing-xl);
}

#mobileMenu .collapse {
    transition: var(--cc-transition-background);
}


/* ================================
   FOOTER
   ================================ */

.cc-bg-black {
    background-color: var(--cc-color-black);
}

.cc-footer {
    background-color: var(--cc-color-black);
    color: var(--cc-color-white);
}

.cc-footer *,
.cc-footer a {
    color: var(--cc-color-white);
    text-decoration: none;
}

.cc-footer a:hover {
    color: var(--cc-color-gold);
}

/* Legacy support for Bootstrap .btn.btn-warning class in footer */
.cc-footer .btn.btn-warning {
    /* Apply unified button styles to legacy Bootstrap button */
    display: inline-flex;
    align-items: center;
    gap: var(--cc-spacing-sm);
    text-decoration: none;
    font-family: var(--cc-font-primary);
    font-weight: var(--cc-font-weight-bold);
    font-size: var(--cc-font-size-md);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border-radius: 0;
    border: 2px solid transparent;
    cursor: pointer;
    user-select: none;
    -webkit-user-select: none;
    
    /* Footer-specific styling - gold button behavior */
    background-color: var(--cc-color-gold);
    color: var(--cc-color-black);
    
    /* Unified transitions */
    transition: transform 0.3s ease, 
                background-color 0.3s ease, 
                color 0.3s ease,
                border-color 0.3s ease,
                box-shadow 0.3s ease;
}

.cc-footer .btn.btn-warning:hover {
    text-decoration: none;
    /* Footer uses subtle hover - no box shadow */
    transform: translateY(-2px);
    background-color: var(--cc-color-black);
    color: var(--cc-color-white);
    border-color: var(--cc-color-gold);
}

/* Footer icons */
.cc-footer .icon-facebook,
.cc-footer .icon-instagram,
.cc-footer .icon-x-twitter,
.cc-footer .icon-linkedin,
.cc-footer .icon-youtube,
.cc-footer .icon-rss,
.cc-footer .icon-s-add-3-2 {
    font-size: 1.5rem;
}

.cc-footer .cc-contact-icon {
    color: var(--cc-color-gold);
    font-size: 1.1rem;
}

/* Footer CTA button text color overrides */
.cc-footer .cta-btn-gold {
    color: var(--cc-color-black) !important;
}
.cc-footer .cta-btn-gold:hover {
    color: var(--cc-color-white) !important;
}
.cc-footer .cta-btn-black {
    color: var(--cc-color-white) !important;
}
.cc-footer .cta-btn-black:hover {
    color: var(--cc-color-black) !important;
}
.cc-footer .cta-btn-white {
    color: var(--cc-color-black) !important;
}
.cc-footer .cta-btn-white:hover {
    color: var(--cc-color-white) !important;
}

/* Mobile footer full-width layouts */
@media (max-width: 767.98px) {
    /* Full-width CTA buttons on mobile */
    .cc-footer-cta-container {
        display: grid !important;
        grid-template-columns: 1fr 1fr 1fr;
        margin-bottom: 1.5rem !important;
    }
    
    .cc-footer-cta-container .cta-btn-gold {
        margin: 0 !important;
        border-radius: 0 !important;
        text-align: center;
        justify-content: center;
    }
    
    /* Mobile footer second row reordering */
    .cc-footer .row:nth-child(2) {
        display: flex !important;
        flex-direction: column !important;
    }
    
    /* Contact info appears first */
    .cc-footer .col-xl-9 {
        order: 1;
        margin-bottom: 2rem !important;
    }
    
    /* Social icons appear second (below contact info) */
    .cc-footer .col-xl-3 {
        order: 2;
    }
    
    /* Full-width social media icons on mobile */
    .cc-footer-social-container {
        display: grid !important;
        grid-template-columns: repeat(7, 1fr);
        gap: 0 !important;
        align-items: center !important;
        justify-content: stretch !important;
    }
    
    .cc-footer-social-container a {
        margin: 0 !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        padding: 8px 0 !important;
    }
    
    /* Mobile social icon size override */
    .cc-footer .icon-facebook,
    .cc-footer .icon-instagram,
    .cc-footer .icon-x-twitter,
    .cc-footer .icon-linkedin,
    .cc-footer .icon-youtube,
    .cc-footer .icon-rss,
    .cc-footer .icon-s-add-3-2 {
        font-size: 2.25rem;
    }
    
    /* Mobile contact icon size override */
    .cc-footer .cc-contact-icon {
        font-size: 1.35rem;
    }
}

/* ================================
   NESTED DROPDOWN FUNCTIONALITY
   ================================ */

/* Dropdown submenu positioning and styling */
.dropdown-submenu {
    position: relative;
}

.dropdown-submenu .dropdown-menu {
    position: absolute;
    /* Force top alignment to the parent item */
    top: 0 !important; 
    /* Force left alignment to the side of the parent */
    left: 100% !important; 
    /* Slight adjustment to align borders perfectly */
    margin-top: -1px !important; 
    margin-left: 0;
    border-radius: 0;
    display: none;
    min-width: 250px;
    
    /* CRITICAL FIX: This stops Bootstrap/Popper.js from 
       adding inline styles that push the menu down */
    transform: none !important; 
}

/* Show nested dropdown ONLY when the 'show' class is present (added via JS click) */
 .dropdown-submenu.show > .dropdown-menu {
     display: block !important;
}

/* Styling for dropdown items that have submenus */
.dropdown-submenu > .dropdown-item {
    position: relative;
    padding-right: 2rem; /* Add space for arrow */
}

/* Add arrow indicator for items with submenus */
.dropdown-submenu > .dropdown-item::after {
  display: inline-block;
  margin-left: 0.255em;
  vertical-align: 0.255em;
  content: "";
  border-top: 0.3em solid;
  border-right: 0.3em solid transparent;
  border-bottom: 0;
  border-left: 0.3em solid transparent;
}
.dropdown-submenu > .dropdown-item:empty::after {
  margin-left: 0;
}

/* Hover states for nested dropdowns */
.dropdown-submenu > .dropdown-item:hover,
.dropdown-submenu.show > .dropdown-item {
    background-color: var(--cc-color-bg-beige);
    color: var(--cc-color-black);
}

.dropdown-submenu > .dropdown-item:hover:after,
.dropdown-submenu.show > .dropdown-item:after {
    color: var(--cc-color-black);
}

/* Nested dropdown menu styling */
.dropdown-submenu .dropdown-menu .dropdown-item {
    padding: 0.5rem 1rem;
    font-size: var(--cc-font-size-base);
    color: var(--cc-color-black);
    background-color: var(--cc-color-white);
    border: none;
    transition: var(--cc-transition-base);
}

.dropdown-submenu .dropdown-menu .dropdown-item:hover {
    background-color: var(--cc-color-bg-beige);
    color: var(--cc-color-black);
}

/* Prevent nested dropdowns from extending off screen */
.dropdown-submenu.dropstart .dropdown-menu {
    left: auto;
    right: 100%;
    margin-left: 0;
    margin-right: -1px;
}

/* Add depth to open dropdowns */
.dropdown-menu.show {
    /* Horizontal-offset Vertical-offset Blur Spread Color */
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
    /* Optional: A faint border helps define the edge if the shadow is too subtle */
    border: 1px solid rgba(0, 0, 0, 0.05);
}

/* Make the nested submenu shadow slightly stronger 
   to show it is 'higher' than the parent menu */
.dropdown-submenu .dropdown-menu.show {
    box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.2);
}

/* Mobile responsive - nested dropdowns stack vertically on small screens */
@media (max-width: 991.98px) {
    .dropdown-submenu .dropdown-menu {
        position: static;
        left: auto;
        margin-left: 1rem;
        margin-top: 0.25rem;
        box-shadow: none;
        border-left: 2px solid var(--cc-color-gold);
        background-color: var(--cc-color-bg-beige-light);
    }
    
    .dropdown-submenu > .dropdown-item:after {
        content: "▼";
    }
    
    .dropdown-submenu:hover .dropdown-menu,
    .dropdown-submenu.show .dropdown-menu {
        display: block !important;
    }
}

/* Desktop Only: Flip submenu to the left if it overflows the screen */
@media (min-width: 992px) {
    .dropdown-submenu.submenu-flip > .dropdown-menu {
        left: auto !important;    /* Reset the left positioning */
        right: 100% !important;   /* Anchor to the right side (pushes menu left) */
        margin-left: 0 !important;
        margin-right: -1px !important; /* Slight overlap for visual continuity */
    }
}

.cc-last-updated-text {
    display: block;
    text-align: right;
    color: #444;
    margin: 15px 5px;
    font-size: 0.9rem;
    font-style: italic;
}

.cc-last-updated-text a {
    color:#333;
}


/* ================================
   LEGACY STYLES FOR BACKWARD COMPATIBILITY
   ================================ */
/* Legacy styles for backward compatibility with 2018 design */
.cc-bg-gold {
    background-color: var(--cc-color-gold);
    color: var(--cc-color-black);
}
figure.image.align-left,
.inline-left{margin:0 2rem 1rem 0;position:relative;float:left;}
figure.image.align-right,
.inline-right{margin:0 0 1rem 2rem;position:relative;float:right;}
@media screen and (max-width:767px){
    figure.image.align-left,
    .inline-left{margin:10px 0;float:none;display:block;}
    figure.image.align-right,
    .inline-right{margin:10px 0;float:none;display:block;}
}
.cc-content-main .cc-content-container {
    clear: both;
}
.cc-content-container {
    margin: var(--cc-spacing-4xl) 0;
}
.cc-lp25-content-container > .cc-content-container {
    margin: 0;
}
.cc-content-container hr {
    clear: both;
}

h2.cc-stripe-heading {
    margin-top: 30px;
}
.post-it, .post-it-cream {
    border: 0;
    margin: 10px 0;
    padding: 14px 18px;
    background-color: #efefef;
    font-size: 1.1rem;
    width: 100%;
}
.post-it-cream{
    background-color:#EFE0D2;    
}

/* 
*******************************
BLOCKQUOTE STYLES
*******************************
*/
.cc-blockquote p, blockquote p {
  font-size: 1.35rem;
  border-left: 5px solid var(--cc-color-gold);
  padding-left: 15px;
}
.cc-blockquote cite, blockquote cite {
  display: block;
  text-align: right;
  font-size: 20px;
}

/***************** TEMP cc-btn button shim ***********************/
 .cc-btn {
     margin-bottom: 1.5rem;
     text-align: left;
     white-space: normal;
     line-height: 1;
     min-height:4rem;
     max-width: 360px;
     color:#fff;
     background-color: rgb(208, 155, 44);
     text-shadow: rgba(0,0,0,.5) 0 0 3px;
     cursor: pointer;
     display: block;
}
 .cc-btn:hover {
     color:#fff !important;
     background-color: rgb(208, 155, 44) !important;
}
 .cc-btn span:nth-of-type(2) {
     font-weight: 400;
     font-family: Montserrat, sans-serif;
     vertical-align: middle;
     display: inline-block;
     padding-bottom: .3rem;
     max-width: 70%;
}
 @media screen and (min-width:767px){
     .cc-btn span:nth-of-type(2) {
         max-width: 75%;
    }
}
 .cc-btn i {
     display: inline-block;
     vertical-align: middle;
     font-size: 1.9em;
     padding: .2em .1em .2em 0;
}
 .cc-btn i + span {
     width: 77%;
}
 .cc-btn.centered {
     margin-left: auto;
     margin-right: auto;
     display: block;
}


/** TABLE STYLES **/

.table-container {
    overflow-x: auto; 
    width: 100%;      
    cursor: grab;
}

.table-container.active {
    cursor: grabbing;
    user-select: none;     
}

table {
    border-collapse: collapse;
    width: 100%;
    border: 1px solid var(--cc-color-border-gray);
    border-spacing: 0;
    margin: 1.5rem 0;
}

table th {
    padding: 16px 24px;
    border-bottom: 2px solid var(--cc-color-border-gray);
    border-right: 1px solid var(--cc-color-border-gray);
}

table thead th {
    background-color: var(--cc-color-black);
    color: var(--cc-color-white);
    font-weight: bold;
    text-align: left;
}

table tbody td {
    padding: 16px 24px;
    color: var(--cc-color-black);
    border-bottom: 2px solid var(--cc-color-border-gray);
    border-right: 1px solid var(--cc-color-border-gray);
}

table tbody tr:nth-child(odd) {
    background-color: var(--cc-color-white);
    transition: background-color 0.2s ease-in-out;
}

table tbody tr:nth-child(even) {
    background-color: var(--cc-color-gray-lightest);
    transition: background-color 0.2s ease-in-out;
}

table tbody tr:last-child th,
table tbody tr:last-child td {
    border-bottom: none;
}

table tbody th:last-child,
table tbody td:last-child {
    border-right: none;
}

table tbody tr:hover {
    background-color: var(--cc-color-gold);
    color: var(--cc-color-black);
    cursor: pointer;
}

table tbody tr:hover td {
    border-right: 1px solid var(--cc-color-gold-hover);
}

/* Make tables stack on mobile by adding .table-stack-mobile to the body classes */
@media (max-width: 767.98px) {
  body.table-stack-mobile .table-container {
    overflow-x: visible; /* disable swipe-scroll behavior on this page */
  }

  body.table-stack-mobile .table-container table,
  body.table-stack-mobile .table-container thead,
  body.table-stack-mobile .table-container tbody,
  body.table-stack-mobile .table-container tfoot,
  body.table-stack-mobile .table-container tr,
  body.table-stack-mobile .table-container th,
  body.table-stack-mobile .table-container td {
    display: block;
    width: 100% !important;
  }

  /* Optional: make rows feel separated */
  body.table-stack-mobile .table-container tr + tr {
    margin-top: 1rem;
  }

  /* Optional: a little breathing room inside cells */
  body.table-stack-mobile .table-container th,
  body.table-stack-mobile .table-container td {
    padding: 1.5rem;
  }
}

/* Global responsive video iframes (YouTube + Vimeo) */
:where(
  iframe[src*="youtube.com"]:not(.embed-opt-out),
  iframe[src*="youtube-nocookie.com"]:not(.embed-opt-out),
  iframe[src*="youtu.be"]:not(.embed-opt-out),
  iframe[src*="vimeo.com"]:not(.embed-opt-out)
) {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;          /* height derives from aspect-ratio */
  aspect-ratio: 16 / 9;  /* sensible default for most web video */
  border: 0;
}

:where(iframe)[data-ar="4:3"] { aspect-ratio: 4 / 3; }
:where(iframe)[data-ar="1:1"] { aspect-ratio: 1 / 1; }
:where(iframe)[data-ar="9:16"] { aspect-ratio: 9 / 16; }
:where(iframe[src*="youtube"]) { referrerpolicy: strict-origin-when-cross-origin; }

/** Quicksearch styles **/
.cc-header-srch .input-group-text {
    width: 10% !important;
}
.cc-header-srch .typeahead-standalone,
.cc-header-srch .typeahead-standalone .tt-list
{
    width: 90% !important;
}

.cc-header-srch .input-group .typeahead-standalone {
    flex: 1 1 auto;      /* Grow to fill available space */
    width: 1%;           /* Bootstrap hack to ensure proper width in flex groups */
    position: relative;  /* Anchor the results list to this wrapper */
}


@media (max-width: 768px) {
    .cc-header-srch .tt-list {
        top: 100% !important; /* Start at the bottom edge of the input */
        margin-top: 2px;      /* Small gap between input and results */
        left: 0;
        right: 0;
        z-index: 1050;        /* Ensure it floats above other mobile elements */
    }
    .cc-header-srch .tt-list {
        box-shadow: 0 10px 20px rgba(0,0,0,0.19), 0 6px 6px rgba(0,0,0,0.23);
        max-height: 60vh; /* Prevent list from being taller than the screen */
        overflow-y: auto; /* Enable scrolling if list is long */
    }
}