/*
Theme Name: Divi Child
Theme URI: http://www.elegantthemes.com/gallery/divi/
Template: Divi
Author: Elegant Themes
Author URI: http://www.elegantthemes.com
Description: Smart. Flexible. Beautiful. Divi is the most powerful theme in our collection.
Version: 4.18.0.1678305219
Updated: 2023-03-08 19:53:39

*/

/* Mobile hardening for legacy Divi and editor content. */
.et_pb_text_inner img,
.et_pb_post_content img,
.et_pb_text_inner iframe,
.et_pb_post_content iframe,
.et_pb_text_inner video,
.et_pb_post_content video,
.et_pb_text_inner embed,
.et_pb_post_content embed,
.et_pb_text_inner object,
.et_pb_post_content object {
    max-width: 100%;
}

/* Grand Media emits this unusable placeholder when an item has no map data/API key. */
img[src*="maps.googleapis.com/maps/api/staticmap?key=&"] {
    display: none !important;
}

.et_pb_text_inner img,
.et_pb_post_content img,
.et_pb_text_inner video,
.et_pb_post_content video {
    height: auto;
}

/* Long archival URLs appear at tablet and smaller laptop widths as well as
 * phones. Allow only those unbreakable strings to wrap at the available edge. */
.et_pb_text_inner,
.et_pb_post_content,
.entry-content {
    overflow-wrap: anywhere;
}

/* Meet WCAG AA contrast without changing the header's visual hierarchy. */
.et_pb_search_0_tb_header .et_pb_searchsubmit {
    color: #4a4a4a !important;
}

/* Keep Divi's small visual slider dots while giving each control a usable
 * 24px touch target. Arrow names are supplied by functions.php. */
.et_pb_slider .et-pb-controllers a {
    box-sizing: border-box;
    width: 24px !important;
    height: 24px !important;
    margin-right: 0 !important;
    padding: 8px !important;
    background-clip: content-box;
}

/* The saved footer template assigned the brand red to text over a nearly
 * black background. White retains the intended footer treatment and contrast. */
.et-l--footer .et_pb_text_13_tb_footer,
.et-l--footer .et_pb_text_13_tb_footer p,
.et-l--footer .et_pb_text_13_tb_footer a,
.et-l--footer .et_pb_text_14_tb_footer a {
    color: #ffffff !important;
}

@media (max-width: 767px) {
    .et_pb_text_inner,
    .et_pb_post_content {
        overflow-wrap: anywhere;
    }

    .et_pb_text_inner > table[width],
    .et_pb_post_content > table[width] {
        display: block;
        width: 100% !important;
        max-width: 100%;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .et_pb_text_inner input,
    .et_pb_text_inner select,
    .et_pb_text_inner textarea,
    .et_pb_post_content input,
    .et_pb_post_content select,
    .et_pb_post_content textarea {
        max-width: 100%;
        font-size: 16px;
    }

    /* Link Library's submission form gives its text fields a fixed 300px
     * width, which forces the Resources page beyond a 320px viewport. */
    body.page-id-34 #lladdlink table {
        width: 100% !important;
        max-width: 100%;
        table-layout: fixed;
    }

    body.page-id-34 #lladdlink tr,
    body.page-id-34 #lladdlink th,
    body.page-id-34 #lladdlink td {
        display: block;
        width: 100% !important;
        box-sizing: border-box;
    }

    body.page-id-34 #lladdlink tr {
        margin-bottom: 14px;
    }

    body.page-id-34 #lladdlink th {
        padding-bottom: 4px;
        text-align: left;
    }

    body.page-id-34 #lladdlink input[type="text"] {
        display: block;
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box;
    }

    button,
    input[type="button"],
    input[type="submit"],
    .et_pb_button {
        min-height: 44px;
    }

    /* Keep the legacy four-column membership table readable without page-level scrolling. */
    body.page-id-338 .et_pb_text_inner > table[width] {
        display: table;
        width: 100% !important;
        table-layout: fixed;
        overflow: visible;
    }

    body.page-id-338 .et_pb_text_inner > table[width] td {
        width: 25% !important;
        padding: 6px 3px;
        vertical-align: top;
        overflow-wrap: anywhere;
    }

    body.page-id-338 .et_pb_text_inner > table[width] h1 {
        margin: 0;
        padding: 0;
        font-size: 15px;
        line-height: 1.2;
    }

    body.page-id-338 .et_pb_text_inner > table[width] td strong {
        font-size: 13px;
        line-height: 1.35;
    }
}

/* Cohesive visual system for legacy templates and the global Divi header. */
:root {
    --omfrc-red: #870014;
    --omfrc-red-bright: #b0182b;
    --omfrc-ink: #272727;
    --omfrc-paper: #f7f4ef;
}

/* Classic attachment and Grand Media templates inherited an unreadable
 * charcoal-on-maroon combination. Give their content a neutral reading
 * surface while preserving the OMFRC brand in headings and links. */
body.attachment #main-content,
body.single-gmedia #main-content {
    background: var(--omfrc-paper) !important;
    color: var(--omfrc-ink);
}

body.attachment #left-area article,
body.single-gmedia #left-area article,
body.attachment #sidebar,
body.single-gmedia #sidebar {
    box-sizing: border-box;
    background: #fff;
    border-radius: 4px;
    box-shadow: 0 12px 32px rgba(41, 24, 18, 0.08);
}

body.attachment #left-area article,
body.single-gmedia #left-area article {
    padding: clamp(22px, 3vw, 42px);
}

body.attachment #sidebar,
body.single-gmedia #sidebar {
    border-left: 0;
    padding: 28px;
}

body.attachment #main-content h1.entry-title,
body.single-gmedia #main-content h1.entry-title {
    color: var(--omfrc-red) !important;
    font-size: clamp(30px, 3.4vw, 46px);
    line-height: 1.12;
    overflow-wrap: anywhere;
}

body.attachment #sidebar h4,
body.single-gmedia #sidebar h4,
body.attachment #sidebar .widgettitle,
body.single-gmedia #sidebar .widgettitle {
    color: var(--omfrc-red) !important;
}

body.attachment #sidebar a,
body.single-gmedia #sidebar a {
    color: #5f0b18;
}

body.attachment #left-area img,
body.single-gmedia #left-area img {
    display: block;
    max-width: 100%;
    height: auto;
    margin-right: auto;
    margin-left: auto;
}

@media (min-width: 981px) {
    /* Keep contact details on one line at normal laptop/desktop widths. */
    .et_pb_section_0_tb_header {
        padding-right: 0 !important;
    }

    .et_pb_row_0_tb_header {
        width: 100% !important;
        max-width: 1600px !important;
        padding-right: 24px !important;
        padding-left: 24px !important;
    }

    .et_pb_blurb_0_tb_header,
    .et_pb_blurb_1_tb_header {
        width: max-content !important;
        max-width: none !important;
        margin-right: auto !important;
        margin-left: auto !important;
    }

    .et_pb_blurb_0_tb_header .et_pb_blurb_content,
    .et_pb_blurb_1_tb_header .et_pb_blurb_content,
    .et_pb_blurb_0_tb_header .et_pb_blurb_description,
    .et_pb_blurb_1_tb_header .et_pb_blurb_description {
        width: max-content !important;
        max-width: none !important;
        white-space: nowrap;
    }

    .et_pb_blurb_0_tb_header .et_pb_blurb_description,
    .et_pb_blurb_1_tb_header .et_pb_blurb_description {
        font-size: 15px;
    }

    .et_pb_search_0_tb_header {
        width: calc(100% - 12px) !important;
        margin-right: 0 !important;
        margin-left: 12px !important;
    }
}

@media (min-width: 981px) and (max-width: 1180px) {
    body.et-db #page-container .et-l--header .et_pb_blurb_0_tb_header,
    body.et-db #page-container .et-l--header .et_pb_blurb_1_tb_header {
        margin-right: 0 !important;
        margin-left: 0 !important;
    }

    body.et-db #page-container .et-l--header .et_pb_blurb_0_tb_header .et_pb_blurb_container,
    body.et-db #page-container .et-l--header .et_pb_blurb_1_tb_header .et_pb_blurb_container {
        padding-left: 8px !important;
    }

    body.et-db #page-container .et-l--header .et_pb_blurb_0_tb_header .et_pb_blurb_description,
    body.et-db #page-container .et-l--header .et_pb_blurb_1_tb_header .et_pb_blurb_description {
        font-size: 14px !important;
    }

    body.et-db #page-container .et-l--header .et_pb_menu_0_tb_header .et-menu > li {
        padding-right: 6px !important;
        padding-left: 6px !important;
    }

    body.et-db #page-container .et-l--header .et_pb_menu_0_tb_header .et-menu > li > a {
        font-size: 13px !important;
    }
}

@media (max-width: 980px) {
    /* Compact, predictable mobile header: contact details, search, then a
     * single white navigation row with the mark and menu trigger. */
    .et_pb_section_0_tb_header {
        height: auto !important;
        padding: 0 !important;
    }

    .et_pb_row_0_tb_header {
        display: grid !important;
        width: 100% !important;
        max-width: none !important;
        height: auto !important;
        padding: 12px 20px !important;
        grid-template-columns: minmax(0, 1fr);
        gap: 8px;
    }

    .et_pb_column_0_tb_header,
    .et_pb_column_1_tb_header {
        display: none !important;
    }

    .et_pb_column_2_tb_header,
    .et_pb_column_3_tb_header,
    .et_pb_column_4_tb_header {
        width: 100% !important;
        height: auto !important;
        margin: 0 !important;
    }

    .et_pb_blurb_0_tb_header,
    .et_pb_blurb_1_tb_header {
        height: auto !important;
        margin: 0 !important;
    }

    .et_pb_blurb_0_tb_header .et_pb_blurb_content,
    .et_pb_blurb_1_tb_header .et_pb_blurb_content {
        justify-content: center !important;
    }

    .et_pb_blurb_0_tb_header .et_pb_blurb_description,
    .et_pb_blurb_1_tb_header .et_pb_blurb_description {
        font-size: 15px;
        line-height: 1.4;
        white-space: nowrap;
    }

    .et_pb_search_0_tb_header {
        width: min(100%, 430px) !important;
        height: 42px !important;
        margin: 0 auto !important;
        border: 0 !important;
        border-radius: 3px;
    }

    .et_pb_search_0_tb_header .et_pb_searchform,
    .et_pb_search_0_tb_header .et_pb_s,
    .et_pb_search_0_tb_header .et_pb_searchsubmit {
        height: 42px !important;
    }

    .et_pb_section_1_tb_header {
        height: auto !important;
        padding: 0 !important;
        background: #fff !important;
        box-shadow: 0 8px 18px rgba(0, 0, 0, 0.12);
    }

    .et_pb_row_1_tb_header {
        display: grid !important;
        width: 100% !important;
        max-width: none !important;
        min-height: 86px;
        height: auto !important;
        margin: 0 !important;
        padding: 8px 18px !important;
        grid-template-columns: 90px minmax(0, 1fr);
        align-items: center;
        gap: 12px;
    }

    .et_pb_column_5_tb_header,
    .et_pb_column_6_tb_header {
        width: 100% !important;
        height: auto !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    .et_pb_image_0_tb_header {
        width: 78px !important;
        height: auto !important;
        margin: 0 !important;
        padding: 0 !important;
        text-align: left !important;
    }

    .et_pb_image_0_tb_header .et_pb_image_wrap,
    .et_pb_image_0_tb_header img {
        width: auto !important;
        max-width: 78px !important;
        height: auto !important;
        max-height: 72px !important;
    }

    .et_pb_menu_0_tb_header {
        min-height: 48px;
        height: auto !important;
        margin: 0 !important;
        padding: 0 !important;
        background: transparent !important;
    }

    .et_pb_menu_0_tb_header .et_pb_menu__wrap {
        justify-content: flex-end !important;
    }

    .et_pb_menu_0_tb_header .mobile_menu_bar::before {
        color: var(--omfrc-red) !important;
        font-size: 34px;
    }

    .et_pb_menu_0_tb_header .et_mobile_menu {
        max-height: calc(100vh - 190px);
        overflow-y: auto;
        border-top: 3px solid var(--omfrc-red);
        background: #fff !important;
        box-shadow: 0 16px 32px rgba(0, 0, 0, 0.2);
        text-align: left;
    }

    /* Improve classic-template layout on tablets and phones. */
    body.attachment #main-content .container::before,
    body.single-gmedia #main-content .container::before {
        display: none;
    }

    body.attachment #left-area,
    body.single-gmedia #left-area {
        width: 100% !important;
        padding-right: 0 !important;
    }

    body.attachment #sidebar,
    body.single-gmedia #sidebar {
        display: none !important;
    }
}

@media (max-width: 767px) {
    /* Give page content a little more useful width and a steadier rhythm. */
    #main-content .et_pb_section:not(.et_pb_fullwidth_section) > .et_pb_row {
        width: calc(100% - 32px) !important;
        max-width: calc(100% - 32px) !important;
    }

    #main-content .et_pb_section:not(.et_pb_fullwidth_section) {
        padding-top: 32px;
        padding-bottom: 32px;
    }

    #main-content p,
    #main-content li {
        line-height: 1.65;
    }

    .et_pb_posts .entry-title a,
    .et_pb_blog_grid .entry-title a {
        display: inline-block;
        min-height: 24px;
        line-height: 24px;
    }

    body.single-post h1.entry-title {
        font-size: clamp(30px, 9vw, 36px) !important;
        line-height: 1.12 !important;
        text-align: center;
        overflow-wrap: anywhere;
    }

    .et_pb_text_inner img,
    .et_pb_post_content img,
    .entry-content img {
        display: block;
        margin-right: auto;
        margin-left: auto;
    }

    /* The homepage inherited desktop slider dimensions (86px title,
     * 46px body and a 965px panel) on phones. Recompose it as a concise
     * mobile hero with all of the message visible above the fold. */
    body.home .et_pb_fullwidth_slider_1,
    body.home .et_pb_fullwidth_slider_1 .et_pb_slides,
    body.home .et_pb_fullwidth_slider_1 .et_pb_slide,
    body.home .et_pb_fullwidth_slider_1 .et_pb_container {
        height: 520px !important;
        min-height: 520px !important;
    }

    body.home .et_pb_fullwidth_slider_1 .et_pb_slide {
        padding: 0 !important;
        box-shadow: inset 0 0 0 1000px rgba(0, 0, 0, 0.28);
        background-position: center !important;
    }

    body.home .et_pb_fullwidth_slider_1 .et_pb_container {
        width: 100% !important;
        max-width: none !important;
    }

    body.home .et_pb_fullwidth_slider_1 .et_pb_slide_description {
        float: none !important;
        width: 100% !important;
        height: auto !important;
        margin: 0 !important;
        padding: 105px 28px 84px !important;
        text-align: center !important;
    }

    body.home .et_pb_fullwidth_slider_1 .et_pb_slide_title {
        margin: 0 0 14px !important;
        padding: 0 !important;
        font-size: 42px !important;
        line-height: 1.05 !important;
    }

    body.home .et_pb_fullwidth_slider_1 .et_pb_slide_content {
        font-size: 23px !important;
        line-height: 1.28 !important;
    }

    body.home .et_pb_fullwidth_slider_1 .et_pb_more_button {
        margin-top: 22px !important;
    }

    body.attachment #main-content .container,
    body.single-gmedia #main-content .container {
        width: calc(100% - 32px) !important;
        padding-top: 32px !important;
    }

    body.attachment #left-area article,
    body.single-gmedia #left-area article {
        padding: 22px;
    }

    body.attachment #main-content h1.entry-title,
    body.single-gmedia #main-content h1.entry-title {
        margin-bottom: 22px;
        font-size: 30px !important;
        line-height: 1.15;
        text-align: center;
    }

    /* A focused footer is more useful on a phone than four long desktop
     * columns plus a duplicate legal/navigation list. */
    .et_pb_section_1_tb_footer {
        height: auto !important;
        padding: 28px 0 20px !important;
    }

    .et_pb_row_2_tb_footer {
        display: block !important;
        width: calc(100% - 40px) !important;
        max-width: calc(100% - 40px) !important;
        height: auto !important;
        margin: 0 auto !important;
        padding: 0 !important;
    }

    .et_pb_column_5_tb_footer,
    .et_pb_column_7_tb_footer,
    .et_pb_column_8_tb_footer {
        width: 100% !important;
        height: auto !important;
        margin: 0 0 30px !important;
    }

    .et_pb_column_6_tb_footer {
        display: none !important;
    }

    .et_pb_text_8_tb_footer {
        margin-bottom: 18px !important;
        padding-left: 0 !important;
    }

    .et_pb_text_10_tb_footer,
    .et_pb_text_11_tb_footer {
        height: auto !important;
        margin: 0 0 12px !important;
    }

    .et_pb_menu_1_tb_footer {
        height: auto !important;
        text-align: left !important;
    }

    .et_pb_menu_1_tb_footer .et_pb_menu__menu {
        display: block !important;
    }

    .et_pb_menu_1_tb_footer .et_mobile_nav_menu {
        display: none !important;
    }

    .et_pb_menu_1_tb_footer nav,
    .et_pb_menu_1_tb_footer nav > ul,
    .et_pb_menu_1_tb_footer nav > ul > li {
        display: block !important;
        width: 100%;
        margin: 0 !important;
        padding: 0 !important;
    }

    .et_pb_menu_1_tb_footer nav > ul > li > a {
        display: block;
        padding: 6px 0 !important;
        border-left: 0 !important;
    }

    .et_pb_row_3_tb_footer {
        width: calc(100% - 40px) !important;
        max-width: calc(100% - 40px) !important;
        height: auto !important;
        margin: 0 auto !important;
        padding: 18px 0 0 !important;
    }

    .et_pb_column_9_tb_footer {
        height: auto !important;
    }

    .et_pb_text_13_tb_footer {
        display: none !important;
    }

    .et_pb_text_14_tb_footer,
    .et_pb_text_15_tb_footer {
        height: auto !important;
        margin: 0 0 8px !important;
        padding: 0 !important;
        font-size: 14px !important;
        line-height: 1.5 !important;
        text-align: center !important;
    }

    .et_pb_text_14_tb_footer a,
    .et_pb_text_15_tb_footer a {
        color: #fff !important;
        text-decoration: underline;
        text-underline-offset: 3px;
    }
}

/* Divi's generated template CSS is loaded after the child stylesheet and
 * uses high-specificity, important declarations for a few header modules.
 * These scoped overrides keep the reviewed responsive composition intact. */
@media (max-width: 980px) {
    body.et-db #page-container .et-l--header .et_pb_row_0_tb_header {
        padding: 8px 20px !important;
        gap: 6px !important;
    }

    body.et-db #page-container .et-l--header .et_pb_column_2_tb_header,
    body.et-db #page-container .et-l--header .et_pb_column_3_tb_header,
    body.et-db #page-container .et-l--header .et_pb_blurb_0_tb_header,
    body.et-db #page-container .et-l--header .et_pb_blurb_1_tb_header,
    body.et-db #page-container .et-l--header .et_pb_blurb_0_tb_header .et_pb_blurb_content,
    body.et-db #page-container .et-l--header .et_pb_blurb_1_tb_header .et_pb_blurb_content {
        min-height: 0 !important;
        height: 22px !important;
    }

    body.et-db #page-container .et-l--header .et_pb_blurb_0_tb_header .et_pb_blurb_description,
    body.et-db #page-container .et-l--header .et_pb_blurb_1_tb_header .et_pb_blurb_description {
        line-height: 20px !important;
    }

    body.et-db #page-container .et-l--header .et_pb_column_4_tb_header {
        height: 40px !important;
    }

    body.et-db #page-container .et-l--header .et_pb_search_0_tb_header {
        width: 100% !important;
        max-width: 430px !important;
        height: 40px !important;
        margin: 0 auto !important;
    }

    body.et-db #page-container .et-l--header .et_pb_search_0_tb_header .et_pb_searchform,
    body.et-db #page-container .et-l--header .et_pb_search_0_tb_header .et_pb_s,
    body.et-db #page-container .et-l--header .et_pb_search_0_tb_header .et_pb_searchsubmit {
        height: 40px !important;
    }

    body.et-db #page-container .et-l--header .et_pb_row_1_tb_header {
        box-sizing: border-box;
        min-height: 78px !important;
        height: 78px !important;
        padding: 8px 18px !important;
        grid-template-columns: 76px minmax(0, 1fr) !important;
    }

    body.et-db #page-container .et-l--header .et_pb_image_0_tb_header {
        width: 62px !important;
        max-width: 62px !important;
        height: auto !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    body.et-db #page-container .et-l--header .et_pb_image_0_tb_header .et_pb_image_wrap,
    body.et-db #page-container .et-l--header .et_pb_image_0_tb_header img {
        max-width: 62px !important;
        max-height: 62px !important;
    }

    body.et-db #page-container .et-l--header .et_pb_menu_0_tb_header {
        margin: 0 !important;
        padding: 0 !important;
    }

    /* Divi's generated text-alignment rule centers the mobile menu trigger.
     * Keep the closed hamburger anchored to the navigation column's right edge
     * so it reads as a header control and aligns with the open menu panel. */
    body.et-db #page-container .et-l--header .et_pb_menu_0_tb_header .et_pb_menu__wrap {
        justify-content: flex-end !important;
    }
}

@media (max-width: 767px) {
    body.et-db.home #page-container #et-main-area .et_pb_fullwidth_slider_1 .et_pb_container {
        z-index: 2;
        display: flex !important;
        height: 520px !important;
        min-height: 520px !important;
        align-items: center;
        justify-content: center;
    }

    body.et-db.home #page-container #et-main-area .et_pb_fullwidth_slider_1 .et_pb_slide_description {
        position: relative !important;
        z-index: 2;
        display: block !important;
        width: 100% !important;
        height: auto !important;
        padding: 44px 28px 74px !important;
    }

    body.et-db.home #page-container #et-main-area .et_pb_fullwidth_slider_1 .et_pb_slide_title {
        margin: 0 0 14px !important;
        font-size: 42px !important;
        line-height: 1.05 !important;
        text-shadow: 0 2px 12px rgba(0, 0, 0, 0.8);
    }

    body.et-db.home #page-container #et-main-area .et_pb_fullwidth_slider_1 .et_pb_slide_content {
        font-size: 22px !important;
        line-height: 1.28 !important;
        text-shadow: 0 2px 10px rgba(0, 0, 0, 0.85);
    }

    /* The third homepage slide contains a full paragraph rather than the
     * short strapline used by the other two slides. Give only that slide a
     * compact, readable phone composition so its button and controller dots
     * remain inside the fixed mobile hero instead of spilling into the next
     * section. */
    body.et-db.home #page-container #et-main-area .et_pb_fullwidth_slider_1 .et_pb_slide_5 .et_pb_slide_description {
        box-sizing: border-box;
        padding: 8px 24px 46px !important;
    }

    body.et-db.home #page-container #et-main-area .et_pb_fullwidth_slider_1 .et_pb_slide_5 .et_pb_slide_title {
        margin-bottom: 10px !important;
        font-size: 30px !important;
        line-height: 1.08 !important;
    }

    body.et-db.home #page-container #et-main-area .et_pb_fullwidth_slider_1 .et_pb_slide_5 .et_pb_slide_content,
    body.et-db.home #page-container #et-main-area .et_pb_fullwidth_slider_1 .et_pb_slide_5 .et_pb_slide_content p,
    body.et-db.home #page-container #et-main-area .et_pb_fullwidth_slider_1 .et_pb_slide_5 .et_pb_slide_content strong {
        margin: 0 !important;
        font-size: clamp(15px, 4.2vw, 17px) !important;
        line-height: 1.42 !important;
    }

    body.et-db.home #page-container #et-main-area .et_pb_fullwidth_slider_1 .et_pb_slide_5 .et_pb_more_button {
        margin-top: 14px !important;
        font-size: 18px !important;
        line-height: 1.7em !important;
    }
}

/* Stack the Painted Feather symbol above its opening paragraph on phones. */
@media (max-width: 767px) {
    body.page-id-30 #et-main-area img.wp-image-10.alignleft {
        float: none !important;
        clear: both;
        display: block;
        width: auto;
        max-width: 100%;
        height: auto;
        margin: 0 auto 24px !important;
    }
}

/* Newsletter-year pages have a white title section but inherit Divi's white
 * "dark background" title treatment. Restore readable contrast at all sizes. */
body.parent-pageid-170 #et-main-area .et_pb_fullwidth_post_title_0_tb_body h1.entry-title {
    color: #800015 !important;
    text-shadow: none !important;
}

/* Grand Media's bare post-type archive indexes do not receive a Divi content
 * background, leaving dark archive text on the site's burgundy body colour.
 * Give those two generated index pages a readable mobile content surface. */
@media (max-width: 980px) {
    body.post-type-archive-gmedia #main-content,
    body.post-type-archive-gmedia_album #main-content {
        background: #ffffff !important;
    }

    /* Production can omit Divi's generated archive-specific menu breakpoint
     * CSS after cache regeneration. Make the intended mobile menu state
     * explicit for these two generated archive indexes. */
    body.post-type-archive-gmedia .et_pb_menu_0_tb_header .et_pb_menu__menu,
    body.post-type-archive-gmedia_album .et_pb_menu_0_tb_header .et_pb_menu__menu {
        display: none !important;
    }

    body.post-type-archive-gmedia .et_pb_menu_0_tb_header .et_mobile_nav_menu,
    body.post-type-archive-gmedia_album .et_pb_menu_0_tb_header .et_mobile_nav_menu {
        display: flex !important;
        width: 100%;
        align-items: center;
        justify-content: flex-end;
    }

    body.post-type-archive-gmedia .et_pb_menu_0_tb_header .et_pb_menu__wrap,
    body.post-type-archive-gmedia_album .et_pb_menu_0_tb_header .et_pb_menu__wrap {
        display: flex !important;
    }

    body.post-type-archive-gmedia .et_pb_menu_0_tb_header .mobile_menu_bar,
    body.post-type-archive-gmedia_album .et_pb_menu_0_tb_header .mobile_menu_bar {
        display: block !important;
        width: 40px;
        height: 40px;
    }

    body.post-type-archive-gmedia .et_pb_menu_0_tb_header .mobile_menu_bar::before,
    body.post-type-archive-gmedia_album .et_pb_menu_0_tb_header .mobile_menu_bar::before {
        content: "☰" !important;
        font-family: Arial, sans-serif !important;
        font-size: 32px;
        line-height: 40px;
    }

    body.post-type-archive-gmedia .et_pb_menu_0_tb_header .omfrc-archive-mobile-menu,
    body.post-type-archive-gmedia_album .et_pb_menu_0_tb_header .omfrc-archive-mobile-menu {
        position: absolute;
        top: 48px;
        right: 0;
        left: auto;
        width: min(88vw, 404px);
        margin: 0 !important;
        padding: 0 !important;
        list-style: none !important;
    }

    body.post-type-archive-gmedia .omfrc-archive-mobile-menu li,
    body.post-type-archive-gmedia_album .omfrc-archive-mobile-menu li {
        margin: 0 !important;
        padding: 0 !important;
        list-style: none !important;
    }

    body.post-type-archive-gmedia .omfrc-archive-mobile-menu > li > a,
    body.post-type-archive-gmedia_album .omfrc-archive-mobile-menu > li > a {
        display: block;
        padding: 10px 52px 10px 18px !important;
        line-height: 1.35;
    }

    body.post-type-archive-gmedia .omfrc-archive-mobile-menu .sub-menu,
    body.post-type-archive-gmedia_album .omfrc-archive-mobile-menu .sub-menu {
        margin: 0 !important;
        padding: 0 0 6px 14px !important;
        list-style: none !important;
    }

    body.post-type-archive-gmedia .et_pb_menu_0_tb_header .omfrc-archive-mobile-menu.omfrc-is-open,
    body.post-type-archive-gmedia_album .et_pb_menu_0_tb_header .omfrc-archive-mobile-menu.omfrc-is-open {
        display: block !important;
    }

    body.post-type-archive-gmedia .et_pb_menu_0_tb_header.omfrc-menu-open .omfrc-archive-mobile-menu,
    body.post-type-archive-gmedia_album .et_pb_menu_0_tb_header.omfrc-menu-open .omfrc-archive-mobile-menu {
        display: block !important;
    }

    body.post-type-archive-gmedia .omfrc-archive-mobile-menu .menu-item-has-children,
    body.post-type-archive-gmedia_album .omfrc-archive-mobile-menu .menu-item-has-children {
        position: relative;
    }

    body.post-type-archive-gmedia .omfrc-archive-mobile-menu .omfrc-submenu-toggle,
    body.post-type-archive-gmedia_album .omfrc-archive-mobile-menu .omfrc-submenu-toggle {
        position: absolute;
        top: 5px;
        right: 8px;
        width: 36px;
        min-width: 36px;
        height: 36px;
        padding: 0;
        border: 0;
        border-radius: 18px;
        background: #f1f1f1;
        color: #222222;
        font-size: 22px;
        line-height: 36px;
    }

    body.post-type-archive-gmedia .omfrc-archive-mobile-menu .omfrc-submenu-toggle[aria-expanded="true"] + .sub-menu,
    body.post-type-archive-gmedia_album .omfrc-archive-mobile-menu .omfrc-submenu-toggle[aria-expanded="true"] + .sub-menu {
        display: block !important;
        position: static !important;
        width: auto !important;
        visibility: visible !important;
        opacity: 1 !important;
    }

    body.post-type-archive-gmedia #main-content .et_pb_post,
    body.post-type-archive-gmedia_album #main-content .et_pb_post {
        margin-bottom: 28px !important;
        padding-bottom: 20px;
        border-bottom: 1px solid #e7e7e7;
    }

    body.post-type-archive-gmedia #main-content .entry-title a,
    body.post-type-archive-gmedia_album #main-content .entry-title a {
        color: #800015 !important;
    }

    body.post-type-archive-gmedia #main-content .post-meta,
    body.post-type-archive-gmedia #main-content .post-meta a,
    body.post-type-archive-gmedia_album #main-content .post-meta,
    body.post-type-archive-gmedia_album #main-content .post-meta a {
        color: #555555 !important;
    }
}

/* Grand Media loads the PhotoBox shell globally even when its module stylesheet
 * is absent. Keep the inactive shell out of normal flow so it cannot push the
 * header down and expose the site's red body background. */
body > #pbOverlay {
    position: fixed;
    z-index: 100000;
    inset: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    opacity: 0;
    pointer-events: none;
}
