/* Chapter Map Module Styles */
/* Responsive map container */
#csuMap {
    width: 100vw;
    max-width: 100vw;
    aspect-ratio: 1 / 1;
    margin: 0 auto;
    overflow: hidden;
    position: relative;
}

@media (max-width: 600px) {
    #csuMap {
        aspect-ratio: 3 / 4;
    }
}

/* GRID LAYOUT — 3 COLUMNS */
.csu-campus-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    padding: 20px 0;
}

@media (max-width: 900px) {
    .csu-campus-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 600px) {
    .csu-campus-grid {
        grid-template-columns: repeat(1, minmax(0, 1fr));
    }
}

/* BUTTON BASE */
.csu-campus-btn {
    text-decoration: none;
    display: block;
}

    .csu-campus-btn svg {
        width: 100%;
        height: auto;
        display: block;
        transition: opacity 0.15s ease;
    }

    .csu-campus-btn:hover svg {
        opacity: 0.9;
    }

    /* FLAT STYLE */
    .csu-campus-btn .bg {
        fill: var(--csu-btn-bg, #296282);
    }

    .csu-campus-btn .icon-circle {
        fill: var(--csu-icon-bg, #ffffff20);
    }

    .csu-campus-btn .label-text {
        fill: #fff;
        font-family: 'Archivo', system-ui, sans-serif;
        font-size: 16px;
        font-weight: 700;
    }

    .csu-campus-btn .icon-shape {
        fill: none;
        stroke: #fff;
        stroke-width: 2;
        stroke-linecap: round;
        stroke-linejoin: round;
    }

/* CAMPUS COLORS */
.csu-bakersfield {
    --csu-btn-bg: #1f6cab;
}

.csu-channelislands {
    --csu-btn-bg: #007a5e;
}

.csu-chico {
    --csu-btn-bg: #b32025;
}

.csu-dominguezhills {
    --csu-btn-bg: #5a2d82;
}

.csu-eastbay {
    --csu-btn-bg: #cf4520;
}

.csu-fresno {
    --csu-btn-bg: #c8102e;
}

.csu-fullerton {
    --csu-btn-bg: #003865;
}

.csu-humboldt {
    --csu-btn-bg: #006747;
}

.csu-longbeach {
    --csu-btn-bg: #ffc72c;
    --csu-icon-bg: #0003;
}

.csu-losangeles {
    --csu-btn-bg: #ffc72c;
    --csu-icon-bg: #0003;
}

.csu-maritime {
    --csu-btn-bg: #003865;
}

.csu-montereybay {
    --csu-btn-bg: #003b5c;
}

.csu-northridge {
    --csu-btn-bg: #e31c3d;
}

.csu-pomona {
    --csu-btn-bg: #006341;
}

.csu-sacramento {
    --csu-btn-bg: #006341;
}

.csu-sanbernardino {
    --csu-btn-bg: #0057b8;
}

.csu-sandiego {
    --csu-btn-bg: #ba0c2f;
}

.csu-sanfrancisco {
    --csu-btn-bg: #3d3935;
}

.csu-sanjose {
    --csu-btn-bg: #0055a2;
}

.csu-sanluisobispo {
    --csu-btn-bg: #004b2b;
}

.csu-sanmarcos {
    --csu-btn-bg: #003da5;
}

.csu-sonoma {
    --csu-btn-bg: #003b5c;
}

.csu-stanislaus {
    --csu-btn-bg: #a6192e;
}

/* post-32.css */
.elementor-32 .elementor-element.elementor-element-7b0a8a4 {
    --display: flex;
    --flex-direction: row;
    --container-widget-width: initial;
    --container-widget-height: 100%;
    --container-widget-flex-grow: 1;
    --container-widget-align-self: stretch;
    --flex-wrap-mobile: wrap;
}

    .elementor-32 .elementor-element.elementor-element-7b0a8a4:not(.elementor-motion-effects-element-type-background), .elementor-32 .elementor-element.elementor-element-7b0a8a4 > .elementor-motion-effects-container > .elementor-motion-effects-layer {
        background-image: url("../img/chapters-bg-scaled.jpg");
        background-position: center center;
        background-repeat: no-repeat;
        background-size: cover;
    }

.elementor-widget-heading .elementor-heading-title {
    font-family: var( --e-global-typography-primary-font-family ), Sans-serif;
    font-weight: var( --e-global-typography-primary-font-weight );
    color: var( --e-global-color-primary );
}

.elementor-32 .elementor-element.elementor-element-377acd6.elementor-element {
    --align-self: center;
}

.elementor-32 .elementor-element.elementor-element-377acd6 {
    text-align: center;
}

    .elementor-32 .elementor-element.elementor-element-377acd6 .elementor-heading-title {
        font-family: "Archivo Black", Sans-serif;
        font-size: 4.8em;
        font-weight: 900;
        color: var( --e-global-color-text );
    }

.elementor-32 .elementor-element.elementor-element-d941378 {
    --display: flex;
    --flex-direction: column;
    --container-widget-width: calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );
    --container-widget-height: initial;
    --container-widget-flex-grow: 0;
    --container-widget-align-self: initial;
    --flex-wrap-mobile: wrap;
    --justify-content: center;
    --align-items: center;
}

    .elementor-32 .elementor-element.elementor-element-d941378:not(.elementor-motion-effects-element-type-background), .elementor-32 .elementor-element.elementor-element-d941378 > .elementor-motion-effects-container > .elementor-motion-effects-layer {
        background-color: var( --e-global-color-primary );
    }

.elementor-32 .elementor-element.elementor-element-35fe165 {
    --display: flex;
    --min-height: 20vh;
    --justify-content: center;
    --align-items: center;
    --container-widget-width: calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );
    --margin-top: -50px;
    --margin-bottom: 0px;
    --margin-left: 0px;
    --margin-right: 0px;
}

    .elementor-32 .elementor-element.elementor-element-35fe165:not(.elementor-motion-effects-element-type-background), .elementor-32 .elementor-element.elementor-element-35fe165 > .elementor-motion-effects-container > .elementor-motion-effects-layer {
        background-color: var( --e-global-color-text );
    }

.elementor-widget-text-editor {
    font-family: var( --e-global-typography-text-font-family ), Sans-serif;
    font-weight: var( --e-global-typography-text-font-weight );
    color: var( --e-global-color-text );
}

    .elementor-widget-text-editor.elementor-drop-cap-view-stacked .elementor-drop-cap {
        background-color: var( --e-global-color-primary );
    }

    .elementor-widget-text-editor.elementor-drop-cap-view-framed .elementor-drop-cap, .elementor-widget-text-editor.elementor-drop-cap-view-default .elementor-drop-cap {
        color: var( --e-global-color-primary );
        border-color: var( --e-global-color-primary );
    }

.elementor-32 .elementor-element.elementor-element-7d13f78 {
    margin: 20px 20px calc(var(--kit-widget-spacing, 0px) + 20px) 20px;
    font-family: "Roboto", Sans-serif;
    font-size: 1.2em;
    font-weight: 700;
    color: #000000;
}

.elementor-widget-gallery .elementor-gallery-item__title {
    font-family: var( --e-global-typography-primary-font-family ), Sans-serif;
    font-weight: var( --e-global-typography-primary-font-weight );
}

.elementor-widget-gallery .elementor-gallery-item__description {
    font-family: var( --e-global-typography-text-font-family ), Sans-serif;
    font-weight: var( --e-global-typography-text-font-weight );
}

.elementor-widget-gallery {
    --galleries-title-color-normal: var( --e-global-color-primary );
    --galleries-title-color-hover: var( --e-global-color-secondary );
    --galleries-pointer-bg-color-hover: var( --e-global-color-accent );
    --gallery-title-color-active: var( --e-global-color-secondary );
    --galleries-pointer-bg-color-active: var( --e-global-color-accent );
}

    .elementor-widget-gallery .elementor-gallery-title {
        font-family: var( --e-global-typography-primary-font-family ), Sans-serif;
        font-weight: var( --e-global-typography-primary-font-weight );
    }

.elementor-32 .elementor-element.elementor-element-b597661 .e-gallery-item:hover .elementor-gallery-item__overlay, .elementor-32 .elementor-element.elementor-element-b597661 .e-gallery-item:focus .elementor-gallery-item__overlay {
    background-color: rgba(0,0,0,0.5);
}

.elementor-32 .elementor-element.elementor-element-b597661 {
    padding: 30px 30px 30px 30px;
    --image-transition-duration: 200ms;
    --overlay-transition-duration: 800ms;
    --content-text-align: center;
    --content-padding: 20px;
    --content-transition-duration: 800ms;
    --content-transition-delay: 800ms;
}

@media(max-width: 767px) {
    .elementor-32 .elementor-element.elementor-element-7b0a8a4 {
        --flex-direction: row-reverse;
        --container-widget-width: initial;
        --container-widget-height: 100%;
        --container-widget-flex-grow: 1;
        --container-widget-align-self: stretch;
        --flex-wrap-mobile: wrap-reverse;
    }
}
