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

.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);
}

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

/* Standardized CTA Button Styles */
.cta-btn-gold,
.cta-btn-black {
    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);
    border-radius: 0;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    transition: var(--cc-transition-base);
    border: none;
    align-self: flex-start;
}

.cta-btn-gold:hover,
.cta-btn-black:hover {
    text-decoration: none;
    transform: translateY(-2px);
}

.cta-btn-gold {
    background-color: var(--cc-color-gold);
    color: var(--cc-color-black);
}

.cta-btn-gold:hover {
    background-color: var(--cc-color-gold-hover);
    color: var(--cc-color-black);
}

.cta-btn-black {
    background-color: var(--cc-color-black);
    color: var(--cc-color-white);
}

.cta-btn-black:hover {
    background-color: var(--cc-color-gray-dark);
    color: var(--cc-color-white);
}

/* Mobile responsive for CTA buttons */
@media (max-width: 767.98px) {

    .cta-btn-gold,
    .cta-btn-black {
        font-size: var(--cc-font-size-base);
        padding: 10px var(--cc-spacing-lg);
    }
}

/* ================================
   UTILITY CLASSES
   ================================ */

/* Layout Utilities */
.cc-layout-text-left {
    flex-direction: row;
}

.cc-layout-text-right {
    flex-direction: row-reverse;
}

.cc-layout-photo-left {
    flex-direction: row;
}

.cc-layout-photo-right {
    flex-direction: row-reverse;
}

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

.cc-spacing-md {
    padding: var(--cc-spacing-5xl) 0;
}

.cc-spacing-lg {
    padding: var(--cc-spacing-6xl) 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 {
    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;
}

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

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

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

/* ================================
   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);
    will-change: opacity;
}

.cta-btn-gold.fade-in-visible,
.cta-btn-black.fade-in-visible {
    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 */
.cc-header-nav .btn {
    height: 28px;
    padding: 3.5px var(--cc-spacing-md);
    font-size: var(--cc-font-size-base);
    font-weight: var(--cc-font-weight-bold);
    line-height: 1.5;
    transition: var(--cc-transition-base);
}

.cc-header-nav .btn:hover {
    transform: translateY(-2px);
}

/* Utility navigation divider */
.cc-header-nav .navbar-nav .nav-item+.nav-item::before {
    content: '';
    position: absolute;
    left: -8px;
    top: 50%;
    transform: translateY(-50%);
    width: 1px;
    height: 28px;
    background-color: var(--cc-color-gray-lightest);
}

/* Utility nav CTA buttons divider */
.cc-header-nav .d-none.d-lg-flex::before {
    content: '';
    width: 1px;
    height: 28px;
    background-color: var(--cc-color-gray-lightest);
    margin-right: var(--cc-spacing-xs);
}

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

/* Show brown color when any dropdown is open */
#CCmainNavbar.nav-dropdown-open .dropdown:not(.show) .nav-link,
#CCmainNavbar.nav-dropdown-open .nav-item:not(.dropdown) .nav-link {
    /* color: var(--cc-color-text-brown); */
}

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

/* 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 {
        font-size: 0.9rem;
        padding-left: 0.5rem;
        padding-right: 0.5rem;
    }
}

@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: var(--cc-color-orange);
    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 {
    color: var(--cc-color-black);
    border-bottom-color: var(--cc-color-gold);
    text-decoration: 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;
    }
}


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

#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);
}

/* Footer CTA buttons */
.cc-footer .btn.btn-warning {
    background-color: var(--cc-color-gold);
    border-color: var(--cc-color-gold);
    color: var(--cc-color-black);
    transition: var(--cc-transition-base);
}

.cc-footer .btn.btn-warning:hover {
    background-color: var(--cc-color-gold-hover);
    border-color: var(--cc-color-gold-hover);
    color: var(--cc-color-black);
    transform: translateY(-2px);
}

/* 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 override */
.cc-footer .cta-btn-gold,
.cc-footer .cta-btn-gold:hover {
    color: var(--cc-color-black) !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;
    }
}