.footer_responsive_button {
    display: none;
}

.responsive_shown {
    display: block;
}

body {
    min-width: 0;
}

@media screen and (min-width : 1200px) {
    .spacer_lg {
        margin-top: 15px;
        margin-bottom: 15px;
    }

    .spacer_top_lg {
        margin-top: 15px;
    }

    .spacer_bottom_lg {
        margin-bottom: 15px;
    }

    .padder_lg {
        padding-left: 15px;
        padding-right: 15px;
    }

    .padder_right_lg {
        padding-right: 15px;
    }

    .padder_left_lg {
        padding-left: 15px;
    }

    .nopadding_lg {
        padding: 0 !important;
    }

    .nopadding_right_lg {
        padding-right: 0 !important;
    }

    .nopadding_left_lg {
        padding-left: 0 !important;
    }

    .push_right_lg {
        float: right;
    }

    .push_left_lg {
        float: left;
    }

    .btn_block_lg {
        display: block;
        float: none;
    }

    a.link_block_lg {
        display: block;
        padding: 8px 0;
        margin-top: 5px;
        border-top: 1px solid #d8d8d8;
        border-bottom: 1px solid #d8d8d8;
        text-decoration: none;
        padding-left: 15px;
        padding-right: 25px;
        position: relative;
    }

        a.link_block_lg:hover {
            background-color: rgba(0,0,0,0.1);
        }

    .grid_blocks > .col-lg-12 {
        float: none;
    }
}

@media screen and (min-width : 992px) {

    .nopadding_md {
        padding: 0 !important;
    }

    .nopadding_right_md {
        padding-right: 0 !important;
    }

    .nopadding_left_md {
        padding-left: 0 !important;
    }

    .push_right_md {
        float: right;
    }

    .push_left_md {
        float: left;
    }
}

@media screen and (min-width : 768px) {

    .nopadding_sm {
        padding: 0 !important;
    }

    .nopadding_right_sm {
        padding-right: 0 !important;
    }

    .nopadding_left_sm {
        padding-left: 0 !important;
    }

    .push_right_sm {
        float: right;
    }

    .push_left_sm {
        float: left;
    }
}

@media screen and (max-width : 0) {

    .nopadding_xs {
        padding: 0 !important;
    }

    .nopadding_right_xs {
        padding-right: 0 !important;
    }

    .nopadding_left_xs {
        padding-left: 0 !important;
    }

    .push_right_xs {
        float: right;
    }

    .push_left_xs {
        float: left;
    }
}

@media screen and (max-width : 1199px) {
    .navbar#navigation ul.dropdown-menu li.dropdown .sub-menu.hybrid_mega_dropdown {
        width: 400px;
    }

    .hybrid_mega_dropdown .hybrid_title {
        padding-right: 15px;
    }

    .hybrid_mega_dropdown .hybrid_links {
        padding-right: 0px;
    }

    .hybrid_mega_dropdown .hybrid_image,
    .hybrid_mega_dropdown .hybrid_youtube {
        display: none;
    }

    .spacer_md {
        margin-top: 15px;
        margin-bottom: 15px;
    }

    .spacer_top_md {
        margin-top: 15px;
    }

    .spacer_bottom_md {
        margin-bottom: 15px;
    }

    .padder_md {
        padding-left: 15px;
        padding-right: 15px;
    }

    .padder_right_md {
        padding-right: 15px;
    }

    .padder_left_md {
        padding-left: 15px;
    }

    .btn_block_md {
        display: block;
        float: none;
    }

    a.link_block_md {
        display: block;
        padding: 8px 0;
        margin-top: 5px;
        border-top: 1px solid #d8d8d8;
        border-bottom: 1px solid #d8d8d8;
        text-decoration: none;
        padding-left: 15px;
        padding-right: 25px;
        position: relative;
    }

        a.link_block_md:hover {
            background-color: rgba(0,0,0,0.1);
        }
}

@media screen and (max-width : 1199px) and (min-width : 992px) {
    .grid_blocks > .col-md-12 {
        float: none;
    }
}

@media screen and (max-width : 991px) {
    .navbar#navigation #navigation-content > ul {
        position: relative;
    }

    .navbar#navigation #navigation-content ul.dropdown-menu li.dropdown .sub-menu.hybrid_mega_dropdown {
        width: 100px !important;
        padding-top: 0;
        min-height: 0;
        height: auto;
    }

    .navbar#navigation #navigation-content > ul > li.has_megamenu {
        position: static;
    }

    .navbar#navigation #navigation-content ul.dropdown-menu li.dropdown {
        position: relative !important;
    }

    .navbar#navigation ul.dropdown-menu li.dropdown .sub-menu.hybrid_mega_dropdown {
        width: 523px;
    }

    .navbar#navigation #navigation-content ul.dropdown-menu li.dropdown .sub-menu.hybrid_mega_dropdown .hybrid_title,
    .navbar#navigation #navigation-content ul.dropdown-menu li.dropdown .sub-menu.hybrid_mega_dropdown .hybrid_image {
        display: none;
    }

    .navbar#navigation #navigation-content ul.dropdown-menu li.dropdown .sub-menu.hybrid_mega_dropdown .hybrid_links ul {
        width: 100%;
        margin: 0;
    }

        .navbar#navigation #navigation-content ul.dropdown-menu li.dropdown .sub-menu.hybrid_mega_dropdown .hybrid_links ul li {
            margin: 0;
        }

        .navbar#navigation #navigation-content ul.dropdown-menu li.dropdown .sub-menu.hybrid_mega_dropdown .hybrid_links ul a {
            display: block;
            margin: 0;
            padding: 8px 0;
        }

    .navbar#navigation #navigation-content > ul > li > a {
        font-size: 0.9em;
    }

    .lower_banner {
        height: 300px;
    }

    .lower_nav {
        margin-bottom: 0px;
    }

    .module_article_image.copy {
        display: block;
    }

    .module_article_image.sidebar {
        display: none;
    }

    .btn_block_sm {
        display: block;
        float: none;
    }

    a.link_block_sm {
        display: block;
        padding: 8px 0;
        margin-top: 5px;
        border-top: 1px solid #d8d8d8;
        border-bottom: 1px solid #d8d8d8;
        text-decoration: none;
        padding-left: 15px;
        padding-right: 25px;
        position: relative;
    }

        a.link_block_sm:hover {
            background-color: rgba(0,0,0,0.1);
        }

    .spacer_sm {
        margin-top: 15px;
        margin-bottom: 15px;
    }

    .spacer_top_sm {
        margin-top: 15px;
    }

    .spacer_bottom_sm {
        margin-bottom: 15px;
    }

    .padder_sm {
        padding-left: 15px;
        padding-right: 15px;
    }

    .padder_right_sm {
        padding-right: 15px;
    }

    .padder_left_sm {
        padding-left: 15px;
    }

    img.alignleft,
    img.alignright {
        display: block;
        float: none;
    }
}

@media screen and (max-width : 991px) and (min-width : 768px) {
    .grid_blocks > .col-sm-12 {
        float: none;
    }
}

@media screen and (max-width : 767px) {
    body {
        -webkit-text-size-adjust: 100%;
    }

    .btn_block_xs {
        display: block;
        float: none;
    }

    .spacer_xs {
        margin-top: 15px;
        margin-bottom: 15px;
    }

    .spacer_top_xs {
        margin-top: 15px;
    }

    .spacer_bottom_xs {
        margin-bottom: 15px;
    }

    .padder_xs {
        padding-left: 15px;
        padding-right: 15px;
    }

    .padder_right_xs {
        padding-right: 15px;
    }

    .padder_left_xs {
        padding-left: 15px;
    }

    a.link_block_xs {
        display: block;
        padding: 8px 0;
        margin-top: 5px;
        border-top: 1px solid #d8d8d8;
        border-bottom: 1px solid #d8d8d8;
        text-decoration: none;
        padding-left: 15px;
        padding-right: 25px;
        position: relative;
    }

        a.link_block_xs:hover {
            background-color: rgba(0,0,0,0.1);
        }

    img {
        max-width: 100%;
        height: auto !important;
    }

    iframe {
        max-width: 100%;
    }

    table {
        max-width: 100%;
    }

    img.alignright {
        max-width: 45%;
        height: auto !important;
    }

    img.alignleft {
        max-width: 45%;
        height: auto !important;
    }

    img.alignright {
        max-width: 100%;
        float: none;
        margin: 4px auto;
    }

    img.alignleft {
        max-width: 100%;
        float: none;
        margin: 4px auto;
    }

    img.fullwidth {
        max-width: 100%;
        margin: 5px 0;
        height: auto !important;
    }

    img.aligncenter {
        max-width: 100%;
        margin: 5px auto;
        height: auto !important;
    }

    .responsive_hidden {
        display: none;
    }

    .responsive_shown {
        display: block;
    }

    /*-----------------------------------------------------------------------------------------------*/
    /* HEADER */

    #header img {
        max-width: 100%;
    }

    /*-----------------------------------------------------------------------------------------------*/
    /* PRIMARY NAVIGATION */

    .navbar#navigation {
        background: none;
        margin-bottom: 15px;
    }

        .navbar#navigation .navbar-header {
            margin-top: 10px;
            margin-left: 0px;
            margin-right: 0px;
            background: #aaa;
        }

        .navbar#navigation .navbar-toggle {
            margin-left: 5px;
        }

        .navbar#navigation .navbar-collapse#navigation-content {
            padding-left: 15px;
            padding-right: 15px;
        }

        .navbar#navigation #navigation-content > ul > li > a {
            text-align: left;
        }

        .navbar#navigation #navigation-content > ul > li .glyphicon {
            position: absolute;
            right: 10px;
            top: 50%;
            margin-top: -0.5em;
        }

        .navbar#navigation #navigation-content > ul > li:hover > a {
            background-color: rgba(0, 0, 0, 0.2);
        }

        .navbar#navigation #navigation-content > ul {
            margin: 0;
            background: #646464;
        }

        .navbar#navigation #navigation-content li.dropdown ul.dropdown-menu,
        .navbar#navigation #navigation-content ul.dropdown-menu li.dropdown .sub-menu.hybrid_mega_dropdown {
            position: static !important;
            float: none;
            min-width: 0px;
            width: 100%;
            height: auto;
            border: none;
            -moz-border-radius: 0px;
            -webkit-border-radius: 0px;
            border-radius: 0px;
        }

        .navbar#navigation #navigation-content li.dropdown > a {
            position: relative;
            padding-left: 20px;
            padding-right: 20px;
        }

        .navbar#navigation #navigation-content ul.nav > li.dropdown > a {
            padding-left: 15px;
            padding-right: 15px;
        }

        .navbar#navigation #navigation-content li.dropdown > a .glyphicon-triangle-bottom,
        .navbar#navigation #navigation-content li.dropdown > a .glyphicon-menu-down {
            position: absolute;
            display: inline-block;
            top: 50%;
            right: 20px;
            margin: -6px 0px 0px 0px;
        }

        .navbar#navigation #navigation-content li.dropdown > a {
            font-weight: bold;
        }

            .navbar#navigation #navigation-content li.dropdown > a .glyphicon-triangle-right,
            .navbar#navigation #navigation-content li.dropdown > a .glyphicon-chevron-right {
                position: static !important;
            }

                .navbar#navigation #navigation-content li.dropdown > a .glyphicon-chevron-right:before {
                    content: "\e258";
                }

        .navbar#navigation #navigation-content ul.dropdown-menu {
            min-height: 0px;
            padding-left: 15px;
            padding-right: 15px;
            background: #fff !important;
        }

        .navbar#navigation #navigation-content > ul > li ul.dropdown-menu > li > a {
            color: #444 !important;
            background: #fff !important;
            border-bottom: 1px solid #ccc;
            padding-left: 0;
        }

        .navbar#navigation #navigation-content > ul > li ul.dropdown-menu > li {
            border-top: 0 !important;
            padding-top: 5px;
        }

        .navbar#navigation #navigation-content ul.dropdown-menu > li.dropdown.mega_dropdown:hover > a,
        .navbar#navigation #navigation-content ul.dropdown-menu > li.dropdown.mega_dropdown.maintain_hover > a {
            background-color: #c8c8c8;
            background-image: linear-gradient(to bottom,#d5d5d5 0,#c8c8c8 100%);
        }

        .navbar#navigation #navigation-content ul.dropdown-menu li.dropdown .sub-menu.hybrid_mega_dropdown .hybrid_links ul a {
            position: relative;
            color: #666 !important;
            padding: 12px 0;
            padding-right: 20px;
            border-top: 1px solid #eee;
        }

        .navbar#navigation #navigation-content ul.dropdown-menu li.dropdown .sub-menu.hybrid_mega_dropdown .hybrid_links ul:first-child li:first-child a {
            border-top: 0;
        }

        .navbar#navigation #navigation-content .sub-menu.hybrid_mega_dropdown {
            position: static;
            visibility: visible !important;
            background: none !important;
            float: none;
            padding-left: 0px;
            min-width: 0px;
            width: auto !important;
            min-height: 0px;
            height: auto;
            border-right: none;
            -moz-border-radius: 0px;
            -webkit-border-radius: 0px;
            border-radius: 0px;
        }

    .navbar a .glyphicon-triangle-right,
    .navbar a .glyphicon-chevron-right {
        position: static;
    }

    .navbar#navigation #navigation-content li.dropdown .mega_dropdown > a .glyphicon-triangle-bottom,
    .navbar#navigation #navigation-content li.dropdown .mega_dropdown > a .glyphicon-menu-down {
        display: none;
    }

    .navbar#navigation #navigation-content ul.dropdown-menu li.dropdown .sub-menu.hybrid_mega_dropdown {
        width: 100% !important;
    }

    .navbar#navigation #navigation-content ul.dropdown-menu li.dropdown .sub-menu {
        visibility: visible;
    }

    .navbar#navigation #navigation-content ul.dropdown-menu li.dropdown:hover .sub-menu,
    .navbar#navigation #navigation-content ul.dropdown-menu li.dropdown.maintain_hover .sub-menu {
        display: block;
    }

    .navbar#navigation #navigation-content ul.dropdown-menu li.dropdown.block_hover .sub-menu {
        display: none;
    }

    .grid_blocks > .col-xs-12 {
        float: none;
    }

    .lower_banner .container h1,
    .lower_banner .container p {
        font-size: 2em;
    }

    .module_listing_image {
        text-align: left;
    }

    .calendar_week_labels {
        display: none;
    }

    .calendar_day {
        width: auto;
        float: none;
    }

    .calendar_day_inner {
        height: auto !important;
        min-height: 40px;
    }

    .other_month {
        display: none;
    }

    .calendar_day_number {
        right: auto;
        left: 10px;
    }

    a.calendar_event {
        margin-right: 0;
        margin-left: 27px;
    }

    table.responsive,
    table.responsive thead,
    table.responsive tfoot,
    table.responsive tbody,
    table.responsive th,
    table.responsive td,
    table.responsive tr {
        display: block;
        width: auto !important;
    }

    table.responsive_transpose,
    table.responsive_transpose thead,
    table.responsive_transpose tfoot,
    table.responsive_transpose tbody,
    table.responsive_transpose th,
    table.responsive_transpose td,
    table.responsive_transpose tr {
        display: block;
        width: auto !important;
    }

        table.responsive_transpose thead tr {
            position: absolute;
            top: -9999px;
            left: -9999px;
        }

        table.responsive_transpose tbody td {
            position: relative;
            white-space: normal;
            text-align: left;
            padding-left: 145px !important;
        }

        table.responsive_transpose tfoot td {
            text-align: left;
        }

        table.responsive_transpose td.row_header {
            padding-left: 5px;
            background: #777;
            color: #fff;
        }

            table.responsive_transpose td.row_header:before {
                display: none;
            }

        table.responsive_transpose tbody td:before {
            position: absolute;
            top: 0px;
            left: 0px;
            padding-top: 8px;
            padding-left: 5px;
            width: 140px;
            height: 100%;
            padding-right: 10px;
            white-space: nowrap;
            text-align: left;
            font-weight: bold;
            -moz-box-sizing: border-box;
            -webkit-box-sizing: border-box;
            box-sizing: border-box;
            content: attr(data-title);
        }

    /*-----------------------------------------------------------------------------------------------*/
    /* FOOTER */

    #footer {
        padding: 0px;
    }

        #footer .footer_item {
            display: block;
            padding: 7px 0px;
            text-align: center;
            clear: both;
        }

        #footer .footer_separator {
            display: none;
        }

    .footer_responsive_button {
        display: inline;
    }
}

/*-----------------------------------------------------------------------------------------------*/
/* Overlay menu responsive behaviour migrated from BABICM */
@media screen and (max-width: 767px) {
    .nav_overlay {
        width: calc(100% + 30px);
        height: 100%;
        margin-right: -15px;
        margin-left: -15px;
    }

        .nav_overlay #navigation {
            --top: 155px;
            right: 0;
            /*height: calc(100% + var(--top));*/
            height: calc(100% + var(--top));
            /*max-height: 605px;*/
            /*padding-top: calc(var(--top) + 60px);*/
            padding-top: 0;
            background: #fff;
            margin-left: 0;
            width: 100%;
        }

        .nav_overlay #navigation-content {
            background: #fff;
            flex-flow: column;
            gap: 0;
            padding: 0 20px;
            height: var(--menu-height);
            /*overflow: scroll;*/
        }

            .nav_overlay #navigation-content::after {
                content: "";
                display: none;
                position: absolute;
                left: 0;
                right: 0;
                bottom: 0;
                height: 150px;
                background: linear-gradient(0deg, rgba(62, 20, 82, 1) 0%, rgba(62, 20, 82, 1) 80%, rgba(255, 255, 255, 0) 100%);
                width: 100%;
                z-index: 1000;
            }


        .nav_overlay #navigation #navigation-content .overlay_menu {
            /*display: block;*/
            background: #fff;
            margin: 0px;
            overflow: visible;
        }

        .nav_overlay .navbar#navigation #navigation-content ul.nav.overlay_menu > li.dropdown > a.dropdown-toggle {
            padding-left: 0;
            padding-right: 0;
        }


        .nav_overlay #navigation #navigation-content .overlay_menu > li {
            display: flex;
            gap: 15px;
            align-items: center;
            flex-wrap: wrap;
            width: 100%;
        }


            .nav_overlay #navigation #navigation-content .overlay_menu > li > a {
                font-size: 1.2em;
                color: var(--text-bluegrey);
                padding: 5px 0;
                font-weight: 500;
            }

        .nav_overlay #navigation #navigation-content .overlay_menu .glyphicon,
        .nav_overlay #navigation #navigation-content .overlay_menu .bi {
            display: none !important;
        }

        .nav_overlay #navigation #navigation-content .overlay_menu > li > a:hover,
        .nav_overlay #navigation #navigation-content .overlay_menu > li > a:focus,
        .nav_overlay #navigation #navigation-content .overlay_menu > li.active > a,
        .nav_overlay #navigation #navigation-content .overlay_menu > li.maintain_hover > a {
            background: none;
            color: var(--pri);
        }

        .nav_overlay #navigation #navigation-content .overlay_menu:not(.secondary-open) > li {
            margin-bottom: 10px;
        }

        .nav_overlay #navigation #navigation-content .overlay_menu > li {
            --item-height: 30px;
            max-height: var(--item-height);
            height: 100%;
            transition: all .3s ease;
        }

        .nav_overlay #navigation #navigation-content .overlay_menu.secondary-open > li:not(.menu-open) {
            max-height: 0;
            opacity: 0;
            overflow: hidden;
        }



        .nav_overlay #navigation #navigation-content .overlay_menu .overlay_dropdown {
            min-width: 0;
            margin-left: 0;
            max-height: 0;
            padding-left: 0;
            /*height: auto!important;
                max-height: initial !important;*/
        }

        .nav_overlay #navigation #navigation-content .overlay_menu.secondary-open > li.menu-open {
            gap: 0;
        }

            .nav_overlay #navigation #navigation-content .overlay_menu.secondary-open > li.menu-open > .bi {
                margin-left: auto;
            }

                .nav_overlay #navigation #navigation-content .overlay_menu.secondary-open > li.menu-open > .bi::before {
                    content: "\f12f";
                }

        .nav_overlay #navigation #navigation-content .overlay_menu.secondary-open > li:not(.menu-open) {
            /*max-width: 0;
                max-height: 0;
                overflow: hidden;*/
        }

        .nav_overlay #navigation #navigation-content .overlay_menu.secondary-open > li.menu-open + .overlay_dropdown {
            padding-bottom: 60px;
        }

        .nav_overlay #navigation #navigation-content .overlay_menu .overlay_dropdown > li.menu-open > ul {
            padding-left: 15px;
            border-left: 1px solid var(--pri);
        }

        .nav_overlay #navigation #navigation-content .overlay_menu .overlay_dropdown > ul > li {
            padding: 7px 0;
            font-size: .9em;
        }

            .nav_overlay #navigation #navigation-content .overlay_menu .overlay_dropdown > ul > li > a,
            .nav_overlay #navigation #navigation-content .overlay_menu .overlay_dropdown > ul > li > span {
                font-size: 1.2em;
                font-weight: 400;
                color: var(--text-bluegrey);
            }

                .nav_overlay #navigation #navigation-content .overlay_menu .overlay_dropdown > ul > li > a:hover,
                .nav_overlay #navigation #navigation-content .overlay_menu .overlay_dropdown > ul > li > a:focus {
                    color: var(--pri);
                }

                .nav_overlay #navigation #navigation-content .overlay_menu .overlay_dropdown > ul > li > a + .bi,
                .nav_overlay #navigation #navigation-content .overlay_menu .overlay_dropdown > ul > li > span + .bi {
                    font-size: 1.3em;
                    margin-left: 10px;
                    color: var(--pri) !important;
                }

            .nav_overlay #navigation #navigation-content .overlay_menu .overlay_dropdown > ul > li.menu-open + .sub_menu {
                max-width: none;
                margin-bottom: 10px;
            }

            .nav_overlay #navigation #navigation-content .overlay_menu .overlay_dropdown > ul > li.menu-open + .sub_menu,
            .nav_overlay #navigation #navigation-content .overlay_menu .overlay_dropdown > ul > li.maintain_hover + .sub_menu {
                height: 100% !important;
                max-height: initial !important;
            }


    .overlay_dropdown.image.placeholder {
        display: none;
    }

    .nav_overlay #navigation {
        max-height: unset;
    }

        .nav_overlay #navigation #navigation-content .overlay_menu {
            padding: 0 10px;
        }

            .nav_overlay #navigation #navigation-content .overlay_menu > .overlay_dropdown {
                order: unset;
            }

        .nav_overlay #navigation #navigation-content > .overlay_menu > li:hover + .overlay_dropdown,
        .nav_overlay #navigation #navigation-content > .overlay_menu > .overlay_dropdown:hover {
            overflow-y: visible;
        }

        .nav_overlay #navigation #navigation-content > .overlay_menu > li.maintain_hover + .overlay_dropdown.dropdown-menu,
        .nav_overlay #navigation #navigation-content > .overlay_menu > li.menu-open + .overlay_dropdown.dropdown-menu {
            height: auto;
            max-height: none;
            overflow: visible;
        }

        .nav_overlay #navigation #navigation-content .overlay_menu > .overlay_dropdown .nav_image {
            display: none;
        }
    /*#endregion*/
}

/* Homepage header and hero: mobile */
@media screen and (max-width: 767px) {
    .lower_banner {
        background-image: none !important;
    }

        .lower_banner img {
            display: none;
        }

        .lower_banner::before {
            background: var(--banner-overlay);
            left: 0;
            right: 0;
            width: 100%;
        }

    #header .container.large-container {
        padding: 0 18px;
    }

    #header .header-inner {
        justify-content: center;
        min-height: 170px;
        position: relative;
    }

    #header .logo-wrapper {
        margin-top: 100px;
    }

    #header .logo img {
        max-height: 82px;
    }

    #header .header-right-wrapper {
        display: grid;
        gap: 7px 18px;
        grid-template-columns: repeat(2, 32px);
        justify-content: center;
        left: 0;
        margin-top: 0;
        position: absolute;
        right: auto;
        top: 17px;
        transform: none;
        width: 100%;
    }

        #header .header-right-wrapper > a:not(.open-search) {
            font-size: 20px;
            grid-column: 1 / 3;
            grid-row: 2;
            line-height: 1.05;
            justify-self: center;
            text-align: center;
            white-space: nowrap;
        }

        #header .header-right-wrapper .open-search {
            font-size: 21px;
            grid-column: 1;
            grid-row: 1;
        }

        #header .header-right-wrapper .navbar-header {
            grid-column: 2;
            grid-row: 1;
        }

        #header .header-right-wrapper .navbar-toggle {
            padding: 2px;
        }

            #header .header-right-wrapper .navbar-toggle .icon-bar {
                height: 2px;
                width: 25px;
            }

    .cycle_banner_container {
        height: auto !important;
        overflow: visible;
    }

        .cycle_banner_container .banner_content {
            height: 100svh;
            min-height: 620px;
            overflow: hidden;
            position: relative;
        }

        .cycle_banner_container .banner_item {
            background-position: 58% top !important;
        }

    .banner_item_description_column {
        bottom: 28px;
        left: 15px;
        min-width: 0;
        padding: 0;
        width: calc(100% - 30px);
    }

    .cycle_banner_container .banner_item_description_container {
        margin-bottom: 12px;
    }

        .cycle_banner_container .banner_item_description_container h2 {
            align-items: flex-start;
            display: flex;
            flex-direction: column;
            font-size: clamp(1.55em, 7.5vw, 2.15em);
            gap: 0;
        }

            .cycle_banner_container .banner_item_description_container h2 span {
                box-sizing: border-box;
                display: block;
                max-width: 100%;
                white-space: nowrap;
            }

    .cycle_banner_container .banner_item_description {
        font-size: 1em;
        padding: 3px 8px;
    }

        .cycle_banner_container .banner_item_description p {
            font-size: 15px;
        }

    .banner_item_description_column .btn-pri {
        font-size: 13px;
        padding: 6px 10px;
    }

    .banner-links {
        padding: 18px 0;
        position: relative;
    }

        .banner-links h4 {
            font-size: 20px !important;
            margin-bottom: 14px;
        }

    .hearing-solutions {
        gap: 12px;
        grid-template-columns: repeat(2, 1fr);
        margin-top: 0;
    }

        .hearing-solutions li {
            font-size: 14px;
        }

    .banner-ribbon {
        --ribbon-size: clamp(180px, 46vw, 210px);
        height: var(--ribbon-size);
        top: calc(-1 * var(--ribbon-size));
        width: var(--ribbon-size);
    }

    .banner-ribbon-text {
        left: 65%;
        top: 65%;
        width: 78%;
        padding: 0;
        transform: translate(-50%, -50%) rotate(-45deg);
    }

        .banner-ribbon-text h4 {
            font-size: 18px !important;
            line-height: 1.15;
            margin-bottom: 4px;
        }

        .banner-ribbon-text p {
            font-size: 14px;
            line-height: 1.2;
        }

    /* Keep the hero copy and CTA above the corner ribbon. */
    .banner_item_description_column {
        bottom: calc(clamp(180px, 46vw, 210px) + 16px);
    }

    @media (max-width: 767px) {

        .footer-primary-row {
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 20px;
            text-align: center;
        }

            /* Main Hearing Practice logo first */
            .footer-primary-row .footer-main-logo {
                order: 1;
                width: 100%;
                display: flex;
                justify-content: center;
            }

            /* Call us/text underneath */
            .footer-primary-row .footer-contact {
                order: 2;
                width: 100%;
                display: block;
                text-align: center;
            }

            /* App logo + email/contact underneath */
            .footer-primary-row .footer-partner-logo {
                order: 3;
                width: 100%;
                display: flex;
                flex-direction: column;
                align-items: center;
                justify-content: center;
                gap: 12px;
                text-align: center;
            }

            .footer-primary-row .footer-main-logo .footer-logo {
                width: 180px;
                max-width: 100%;
                height: auto;
                margin: 0 auto;
            }

            .footer-primary-row .footer-partner-logo .footer-logo-right {
                width: 100px !important;
                max-width: 100px !important;
                height: auto;
                margin: 0 auto !important;
                /* Cancel desktop positioning */
                position: static;
                top: auto;
            }

            .footer-primary-row p {
                margin: 0;
            }
    }
}

/* Touch browsers otherwise use the first tap to activate the hover-open rule. */
@media screen and (max-width: 767px) and (hover: none) {
    .nav_overlay #navigation #navigation-content > .overlay_menu > li:hover:not(.maintain_hover) + .overlay_dropdown {
        display: none;
        height: 0;
        max-height: 0;
        opacity: 0;
        overflow: hidden;
    }
}

/* Homepage header and hero: tablet */
@media screen and (min-width: 768px) and (max-width: 1199px) {
    .reviews img {
        width: 30%;
    }

    #header .container.large-container {
        padding: 0 24px;
    }

    #header .logo img {
        max-height: 110px;
    }

    #header .header-right-wrapper {
        gap: 14px;
        margin-top: 20px;
    }

        #header .header-right-wrapper > a:not(.open-search) {
            font-size: 19px;
        }

        #header .header-right-wrapper .open-search {
            font-size: 18px;
        }

    .cycle_banner_container {
        height: auto !important;
        overflow: visible;
    }

        .cycle_banner_container .banner_content {
            height: 430px;
            overflow: hidden;
            position: relative;
        }

        .cycle_banner_container .banner_item {
            background-position: center top !important;
        }

    .banner_item_description_column {
        bottom: 50px;
        left: 24px;
        min-width: 0;
        padding: 0;
        width: 340px;
    }

    .cycle_banner_container .banner_item_description_container {
        margin-bottom: 14px;
    }

        .cycle_banner_container .banner_item_description_container h2 {
            display: flex;
            flex-wrap: wrap;
            font-size: 2.7em;
            gap: 0;
        }

            .cycle_banner_container .banner_item_description_container h2 span {
                display: block;
            }

    .cycle_banner_container .banner_item_description p {
        font-size: 16px;
    }

    .banner-links {
        padding: 18px 0;
        position: relative;
    }

        .banner-links h4 {
            font-size: 21px !important;
            margin-bottom: 14px;
        }

    .hearing-solutions {
        column-gap: 12px;
        margin-top: 0;
    }

        .hearing-solutions li {
            font-size: 14px;
            padding-left: 13px;
        }

            .hearing-solutions li::before {
                height: 6px;
                width: 6px;
            }

    .banner-ribbon {
        height: 200px;
        top: -200px;
        width: 200px;
    }

    .banner-ribbon-text {
        left: 65%;
        top: 65%;
        width: 78%;
        padding: 0;
        transform: translate(-50%, -50%) rotate(-45deg);
    }

        .banner-ribbon-text h4 {
            font-size: 20px !important;
            line-height: 1.15;
            margin-bottom: 4px;
        }

        .banner-ribbon-text p {
            font-size: 14px;
            line-height: 1.2;
        }
}

@media screen and (min-width: 1024px) {
    .search-for-bar.section .input-wrapper input {
        min-width: 440px;
    }
}

@media screen and (min-width: 768px) {
    .logged_in #header {
        margin-top: 50px;
    }

    body.master_lower #header .logo img,
    #header.scrolled .logo img {
        max-height: 72px;
    }

    .homepage-latest-news .header-wrapper {
        flex-direction: row;
        justify-content: flex-start;
        align-items: flex-start;
    }

        .homepage-latest-news .header-wrapper .btn-pri {
            position: absolute;
        }

    .reviews {
        padding-left: 0;
        padding-right: 0;
        flex-direction: row;
        gap: 0;
    }

    .footer-primary-row {
        display: block;
    }

        .footer-primary-row .footer-contact {
            display: block;
            margin-top: 100px;
        }

        .footer-primary-row .footer-main-logo {
            display: block;
        }

        .footer-primary-row .footer-partner-logo {
            display: block;
            margin-top: 50px;
        }

            .footer-primary-row .footer-partner-logo.footer-right {
                margin-top: 100px;
            }

    .search-for-bar.section .row {
        flex-direction: row;
    }

        .search-for-bar.section .row > section:first-child {
            width: 41.66666667%;
        }

        .search-for-bar.section .row > section:last-child {
            width: 58.33333333%;
        }

    .testimonial_section {
        margin: 130px 0 50px;
    }

    .testimonial_section_inner {
        min-height: 300px;
        padding-bottom: 28px;
        padding-top: 28px;
    }

    .testimonial_section h2 {
        font-size: 36px;
        margin-bottom: 24px;
        margin-left: 48%;
        width: 52%;
    }

    .testimonial_slider {
        min-height: 220px;
        width: 100%;
    }

        .testimonial_slider .testimonial_text p {
            font-size: 28px;
        }

    .testimonial_slide {
        align-items: stretch;
        flex-direction: row;
    }

    .testimonial_content {
        flex: 0 0 52%;
        margin-left: 48%;
        padding: 5px 70px 60px;
    }

    .testimonial_quote {
        margin: 0 auto;
        max-width: 430px;
    }

    .testimonial_image {
        aspect-ratio: 1 / 1;
        bottom: auto;
        left: 0;
        margin: 0;
        overflow: hidden;
        position: absolute;
        right: auto;
        /*top: 50%;*/
        top: 35%;
        transform: translateY(-50%);
        width: 46%;
    }

        .testimonial_image img {
            height: 100%;
            object-fit: cover;
            object-position: center;
        }

    .testimonial_all_link {
        bottom: 24px;
        left: calc(48% + 70px);
        margin: 0;
        position: absolute;
        z-index: 4;
    }

    .testimonial_arrow {
        top: 55px;
    }

    .testimonial_prev {
        left: calc(48% + 15px);
    }

    .testimonial_next {
        left: auto;
        right: 15px;
    }

    .nav_overlay #navigation #navigation-content .overlay_menu {
        display: grid;
        grid-template-columns: 150px auto;
        grid-template-rows: repeat(20, auto);
        min-height: 440px;
        padding: 0;
        width: 100%;
    }

    .nav_overlay #navigation #navigation-content > .overlay_menu > li {
        --width: 150px;
        margin-right: 0;
        width: var(--width);
    }

        .nav_overlay #navigation #navigation-content > .overlay_menu > li > a .glyphicon,
        .nav_overlay #navigation #navigation-content > .overlay_menu > li > a .bi {
            display: none;
        }

        .nav_overlay #navigation #navigation-content > .overlay_menu > li > a,
        .nav_overlay #navigation #navigation-content .overlay_menu > .overlay_dropdown > ul > li > a {
            font-family: var(--font-1);
            font-size: 1.3rem;
        }

    .nav_overlay #navigation #navigation-content .overlay_menu > .overlay_dropdown > ul:has(> li) {
        border-left: 2px solid #d7d7d7;
        min-height: 315px;
    }

    .nav_overlay #navigation #navigation-content .overlay_menu > .overlay_dropdown:not(.image) {
        max-width: 330px;
        padding-left: 0;
        transition: opacity .15s ease;
    }

    .nav_overlay #navigation #navigation-content .overlay_menu > .overlay_dropdown.image {
        overflow: visible !important;
    }

    .nav_overlay #navigation #navigation-content .overlay_menu > .overlay_dropdown > ul > li {
        padding: 10px 0;
    }

        .nav_overlay #navigation #navigation-content .overlay_menu > .overlay_dropdown > ul > li > a {
            color: var(--text-bluegrey);
            font-weight: 400;
        }

            .nav_overlay #navigation #navigation-content .overlay_menu > .overlay_dropdown > ul > li > a:active,
            .nav_overlay #navigation #navigation-content .overlay_menu > .overlay_dropdown > ul > li > a:focus,
            .nav_overlay #navigation #navigation-content .overlay_menu > .overlay_dropdown > ul > li > a:hover {
                color: var(--pri);
            }

    .nav_overlay #navigation #navigation-content .overlay_menu > .overlay_dropdown .nav_image {
        display: block;
        bottom: auto;
        height: 520px;
        max-height: 520px;
        object-fit: cover;
        object-position: center;
        position: fixed;
        right: 0;
        top: 96px;
        transform: none;
        max-width: none;
        width: auto;
    }

    .logged_in .nav_overlay #navigation #navigation-content .overlay_menu > .overlay_dropdown .nav_image {
        top: 146px;
    }
}

/* Text block desktop enhancement (mobile-first base is in master/style.css) */
@media screen and (min-width : 768px) {

    .widget_text_block .text_block_text p br {
        display: none;
    }

    .widget_text_block.text_block[data-style="one"] > .flex {
        flex-direction: row;
    }

    .widget_text_block.text_block[data-style="two"] > .flex {
        flex-direction: row-reverse;
    }

    .widget_text_block.text_block > .flex > .flex-item {
        flex: 0 0 calc(50% + 10px);
        width: auto;
    }

    .widget_text_block.text_block > .flex > .image {
        align-self: stretch;
        overflow: hidden;
        position: relative;
    }

        .widget_text_block.text_block > .flex > .image .text_block_image,
        .widget_text_block.text_block > .flex > .image .text_block_image p,
        .widget_text_block.text_block > .flex > .image .text_block_image img {
            height: 100%;
        }

        .widget_text_block.text_block > .flex > .image .text_block_image {
            inset: 0;
            position: absolute;
        }

    .widget_text_block.text_block[data-style="one"] > .flex > .text {
        margin: 20px 0 0 -20px;
    }

    .widget_text_block.text_block[data-style="one"] > .flex > .image {
        margin-bottom: 20px;
    }

    .widget_text_block.text_block[data-style="two"] > .flex > .image {
        margin: 20px 0 0 -20px;
    }

    .widget_text_block.text_block[data-style="two"] > .flex > .text {
        margin-bottom: 20px;
    }
}

@media screen and (min-width: 1200px) {
    .testimonial-list__text,
    .testimonial-list__text p {
        font-size: 28px;
    }

    .widget_text_block.text_block[data-style="two"] > .flex > .text > .manual_container_left {
        padding: 40px 60px 40px 100px;
    }

    .widget_text_block.text_block[data-style="one"] > .flex > .text > .manual_container_left {
        padding: 40px 160px 40px 60px;
    }
}

/* Homepage hero on smaller desktop screens; retain the full desktop layout at 1440px. */
@media screen and (min-width: 1200px) and (max-width: 1439.98px) {
    .page_home.logged_in .cycle_banner_container {
        max-height: 620px;
    }

    .page_home .banner_item_description_column {
        bottom: 180px;
    }

    .page_home .cycle_banner_container .banner_item_description_container {
        margin-bottom: 16px;
    }

        .page_home .cycle_banner_container .banner_item_description_container h2 {
            display: flex;
            flex-direction: column;
            align-items: flex-start;
            font-size: clamp(46px, 4vw, 57px);
            line-height: 1.1;
        }

    .page_home .cycle_banner_container .banner_item_description p {
        font-size: clamp(18px, 1.5vw, 21px);
        line-height: 1.2;
    }

    .page_home .banner-ribbon {
        width: 210px;
        height: 210px;
        top: -210px;
    }

    .page_home .banner-ribbon-text {
        left: 65%;
        top: 65%;
        width: 78%;
        padding: 0;
        transform: translate(-50%, -50%) rotate(-45deg);
    }

        .page_home .banner-ribbon-text h4 {
            font-size: clamp(20px, 1.7vw, 24px);
            line-height: 1.15;
        }

        .page_home .banner-ribbon-text p {
            font-size: 14px;
            line-height: 1.2;
        }
}
/* Custom desktop breakpoints: banner height and typography. */
@media screen and (min-width: 1600px) {
    .page_home .cycle_banner_container {
        height: 870px !important;
    }

        .page_home .cycle_banner_container .banner_item_description_container h2 {
            font-size: 3.725vw;
        }

        .page_home .cycle_banner_container .banner_item_description p {
            font-size: 1.3020833333vw;
        }
}

/* Restore the original desktop banner height and typography from 1920px upward. */
@media screen and (min-width: 1920px) {
    .page_home .cycle_banner_container {
        height: 950px !important;
    }

        .page_home .cycle_banner_container .banner_item_description_container h2 {
            font-size: 4.47em;
        }

        .page_home .cycle_banner_container .banner_item_description p {
            font-size: 25px;
        }
}

#cookieStrip .btn-pri {
    border: none;
}

#cookieStrip .cookie-strip-button {
    padding: 4px 12px;
    font-size: 14px;
    line-height: 1.2;
}

#cookieStrip ~ #header {
    top: 36px;
}

#cookieStrip ~ #page {
    margin-top: 36px;
}

@media (min-width: 992px) and (max-width: 1500px) {
    .menu-inner {
        padding-left: 40px;
        padding-right: 40px;
    }
}

@media screen and (min-width: 1200px) {
    #header .container.large-container {
        padding-left: 30px;
    }
}

/* -------------------------------------------------
   HOMEPAGE HERO - DESKTOP RESPONSIVE TEST
   ------------------------------------------------- */

@media screen and (min-width: 1200px) {

    /* Smoothly scale the hero instead of jumping between fixed heights */
    .page_home .cycle_banner_container {
        height: clamp(700px, 46vw, 870px) !important;
    }

        .page_home .cycle_banner_container .banner_content {
            height: 100%;
        }

        /* Keep both title lines consistently stacked */
        .page_home .cycle_banner_container .banner_item_description_container h2 {
            display: flex;
            flex-direction: column;
            align-items: flex-start;
            font-size: clamp(46px, 3.4vw, 64px);
            line-height: 1.08;
        }

        /* Scale supporting text with the screen */
        .page_home .cycle_banner_container .banner_item_description p {
            font-size: clamp(18px, 1.25vw, 23px);
            line-height: 1.2;
        }

    /* Keep copy near the bottom without it dropping too far */
    .page_home .banner_item_description_column {
        bottom: clamp(165px, 11vw, 195px);
    }

    /* Slightly larger homepage logo, but don't let it become huge */
    .page_home #header .logo img {
        max-height: clamp(190px, 12vw, 225px);
    }

    /* Scale the corner ribbon rather than jumping from 210px to 250px */
    .page_home .banner-ribbon {
        --desktop-ribbon-size: clamp(210px, 14vw, 250px);
        width: var(--desktop-ribbon-size);
        height: var(--desktop-ribbon-size);
        top: calc(-1 * var(--desktop-ribbon-size));
    }

    .page_home .banner-ribbon-text h4 {
        font-size: clamp(22px, 1.5vw, 28px);
    }
}

/* Keep homepage hero elements scaling together on smaller desktops */
@media screen and (min-width: 1200px) and (max-width: 1599px) {

    .page_home #header .logo img {
        max-height: clamp(160px, 11vw, 190px);
    }

    .page_home .cycle_banner_container .banner_item_description_container h2 {
        font-size: clamp(44px, 3.6vw, 58px);
    }

    .page_home .cycle_banner_container .banner_item_description p {
        font-size: clamp(18px, 1.4vw, 22px);
    }

    .page_home .banner_item_description_column {
        min-width: 0;
        width: auto;
        max-width: 520px;
    }
}

/* Large desktop: keep next section below the initial viewport */
@media screen and (min-width: 1200px) {
    .page_home .cycle_banner_container {
        min-height: 100vh;
    }
}

/* Final homepage banner copy styling */
@media screen and (min-width: 1200px) {

    /* Overall area stays wide enough for both buttons */
    .page_home .banner_item_description_column {
        width: 620px !important;
        max-width: 620px !important;
        min-width: 0 !important;
    }

    /* Purple copy itself stays narrow like the design */
    .page_home .cycle_banner_container .banner_item_description_container {
        display: block;
        width: 430px !important;
        max-width: 430px !important;
        margin-bottom: 15px;
        text-align: left;
    }

        /* Constrain heading so long titles naturally wrap */
        .page_home .cycle_banner_container .banner_item_description_container h2 {
            display: block !important;
            width: 430px !important;
            max-width: 430px !important;
            margin: 0 !important;
            padding: 0 !important;
            line-height: 1.08 !important;
            background: none !important;
        }

            /*
       Keep the title inline so its purple background
       follows each wrapped line instead of creating a rectangle.
    */
            .page_home .cycle_banner_container .banner_item_description_container h2 span {
                display: inline !important;
                width: auto !important;
                max-width: none !important;
                white-space: normal !important;
                background: none;
                padding: 2px 10px;
                line-height: 1.08;
                -webkit-box-decoration-break: clone;
                box-decoration-break: clone;
            }



    /* Description directly underneath */
    .page_home .cycle_banner_container .banner_item_description {
        display: block;
        width: 430px !important;
        min-width: 0 !important;
        max-width: 430px !important;
        margin: 0 !important;
        padding: 4px 10px !important;
        box-sizing: border-box;
        background: none;
    }

        .page_home .cycle_banner_container .banner_item_description p {
            margin: 0 !important;
            padding: 0 !important;
            line-height: 1.15;
        }

    /* Buttons use the wider outer area */
    .page_home .banner-buttons {
        display: flex;
        flex-wrap: nowrap;
        align-items: center;
        gap: 10px;
        width: auto;
    }

        .page_home .banner-buttons .btn-pri {
            margin: 0;
            white-space: nowrap;
        }
}

/* -------------------------------------------------
   HOMEPAGE HERO - LAPTOP POSITION + CTA RESPONSIVE FIX
   ------------------------------------------------- */

/* Laptop / smaller desktop hero */
@media screen and (min-width: 1200px) and (max-width: 1599px) {

    /* Keep clear of the logo */
    .page_home .banner_item_description_column {
        bottom: 195px !important;
        width: 720px !important;
        max-width: 720px !important;
    }

    /* Keep purple copy narrow like the design */
    .page_home .cycle_banner_container .banner_item_description_container {
        width: 430px !important;
        max-width: 430px !important;
    }

        .page_home .cycle_banner_container .banner_item_description_container h2,
        .page_home .cycle_banner_container .banner_item_description {
            max-width: 430px !important;
        }

    /* Keep both CTAs side by side */
    .page_home .banner-buttons {
        display: flex;
        flex-direction: row;
        flex-wrap: nowrap;
        align-items: center;
        gap: 10px;
        width: 720px;
    }

        .page_home .banner-buttons .btn-pri {
            width: auto;
            white-space: nowrap;
            margin: 0;
        }
}


/* Tablet / narrowed browser: stack buttons instead of squashing them */
@media screen and (min-width: 768px) and (max-width: 1199px) {

    .page_home .banner-buttons {
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
        width: auto;
    }

        .page_home .banner-buttons .btn-pri {
            width: auto;
            white-space: nowrap;
            margin: 0;
        }
}