
@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Roboto+Condensed:wght@300;400;700&family=Roboto:wght@100;300;400;700&display=swap');

:root {
    --ipa-green: #017a3e;
    --ipa-purple: #673277;
    --ipa-dark_green: #00491e;
    --ipa-lime_green: #74aa50;
    --ipa-yellow: #FFB81C;
    --color-link: #0083db;
    --max-desktop-width: 1200px;
    --max-content-width: 750px;
}


/* CUSTOM COLOR CLASSES */
.ui_bg_green {
    background-color: var(--ipa-green);
    color: var(--color-white);
}
.ui_bg_purple {
    background-color: var(--ipa-purple);
    color: var(--color-white);
}
.ui_bg_green:hover, .ui_bg_purple:hover {
    background-color: var(--color-black);
}

.ui-state-active {
    background-color: var(--color-link);
}


/* MASTER FONT FAMILIES */
html, .button, input, textarea, button {
    font-family: 'Roboto', 'PT Sans', 'Avenir Next', Avenir, 'Open Sans', helvetica, sans-serif;
}

html {
    background-size: auto 16em;
    background-position: center top;
    background-repeat: repeat;
}

html, body { font-size: 16px; }

#page_wrapper { background-color: white; }

.small { font-size: 0.85em; }

a, .black_text_link:hover { color: var(--color-link); }
a:hover { text-decoration: none; }
.black_text_link { color: var(--color-black); }



h1 { font-size: 2.5em; line-height: 1.125; }
h2 { font-size: 2.125em; line-height: 1.25; }
h3 { font-size: 1.5em; line-height: 1.3; }
h4 { font-size: 1.4em; }
h5 { font-size: 1.25em; }
h6 { font-size: 1.00em; }

p { margin: 0 0 1em 0; }

.allcaps, .badge_wrapper {
    font-family: 'Roboto Condensed', 'Roboto', sans-serif;
    font-weight: bold;
    text-transform: uppercase;
    line-height: 1.125;
}

h1.page_block_title {
    font-family: 'Roboto Condensed', 'Roboto', sans-serif;
    text-transform: uppercase;
    line-height: 1; /* 1.125 */
}

h2.page_block_title {
    font-family: 'Roboto Condensed', 'Roboto', sans-serif;
    line-height: 1;
    font-size: 2em;
}

h3.page_block_title {
    font-family: 'Roboto Condensed', 'Roboto', sans-serif;
    line-height: 1;
    font-size: 1.7em;
}

.text_content h1 {
    font-family: 'Roboto Condensed', 'Roboto', sans-serif;
    text-transform: uppercase;
}

.text_content h4 {
    font-family: 'Roboto Condensed', 'Roboto', sans-serif;
    text-transform: uppercase;
    color: var(--ipa-green);
}

h5.allcaps {
    letter-spacing: 0.01em;
}


/* Generic Animation Classes */
.shadow_hover:hover {
    background: white;
}






footer {
    clear: both;
    box-sizing: border-box;
    overflow: auto;
    line-height: 1.5;
    text-align: left;
    padding: 2em 24px;
    width: 100%;
    margin: auto auto 0 auto;
    background-color: var(--ipa-green);
    background-image: url(/images/main/texture-green3.jpg);
    background-repeat: repeat;
    background-size: 16em;
    color: white;
}

footer a {
    color: white;
    margin: 0.25em 0;
}

.footer_links_col {
    overflow: auto;
}

.footer_links_col a {
    display: block;
    float: left;
    clear: left;
    line-height: 1.2;
}

footer a:hover {
    text-decoration: underline;
}

footer .flexbox_wrapper {
    font-size: 0.75em;
    gap: 2em;
}

footer .flexbox_wrapper .allcaps {
    font-size: 1.2em;
    display: block;
    margin-bottom: 0.2em;
}

#footer_copyright {
    font-size: 0.85em;
    letter-spacing: 0.01em;
    margin: 3em 0 0 0;
    color: white;
}

#footer_copyright a {
    color: white;
    font-weight: bold;
}

#footer_copyright a:hover {
    text-decoration: underline;
}

.notebox {
    margin-top: 1.5em;
    padding: 1em 2em;
    border-radius: 0.5em;
    font-size: 0.85em;
    color: gray;
    display: inline-block;
    background: var(--color-superlightgray);
    opacity: 0.75;
}



.presenter_single_wrapper {
    display: flex;
    margin-top: 1em;
    gap: 1.5em;
}

.presenter_single_left_col {
    flex: 0 0 12em;
}

.presenter_single_bio {
    border-left: 3px solid var(--ipa-green);
    padding-left: 1.5em;
    flex: 1;
}

.tiny_twitter {
    width: 1em;
    height: 1em;
    margin: 0em 0.05em -0.17em 0em;
}

.presenter_single_events_wrapper {
    margin-top: 1em;
    clear: both;
}



.academy_grid {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: space-between;
    row-gap: 2em;
    margin-top: 1em;
}

.academy_grid::after {
    content: "";
    width: 32.25%;
}

.academy_grid_item {
    background-color: var(--color-superlightgray);
    width: 31.4%; /* 31.9 */
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    color: #222;
    position: relative;
    border-radius: 0.5em;
    overflow: hidden;
    white-space: normal;
}


.academy_sidebox_item .academy_grid_item {
    width: 20em;
}

.odacademy_sidebox_item .academy_grid_item {
    width: 20em;
}


.academy_grid_item:hover > .academy_bottom_bar {
    background: white;
}

.microcredential_sidebox_item .sidebox_item {
    background: white;
    border-radius: 0.5em;
}

.elnwebinar_sidebox_item {
    display: block;
    border-radius: 0.5em;
    overflow: hidden;
    width: 15em;
    height: 10em;
}


.academy_thumb {
    display: block;
    width: 100%;
    height: auto;
    font-size: 1.1em;
}

.academy_thumb_noimg {
    background-image: url(/images/main/logo_white_t.png);
    background-repeat: no-repeat;
    background-position: center;
    background-size: 70%;
    background-color: #333;
    padding-bottom: 50%;
    width: 100%;
    position: relative;
    overflow: auto;
}

.academy_col_noimg {
    color: white;
    padding: 1.5em 1em;
    font-size: 1em;
    line-height: 1.15;
    font-weight: bold;
    background-image: url(/images/main/logo_white_t.png);
    background-repeat: no-repeat;
    background-position: center;
    background-size: 70%;
}

.academy_text_title {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 0.75em 1em 0.8em 1em;
    font-weight: bold;
    line-height: 1.15;
    color: #fff;
    font-size: 1.15em;
}

.academy_bottom_bar {
    padding: 0.4em 0.5em 0.4em 0.9em;
    display: flex;
    align-items: center;
    gap: 0.4em;
    height: 3.75em;
    background-image: linear-gradient(180deg, #f3f3f3, #e9e9e9);
}

.academy_bottom_bar_presenters {
    display: flex;
    gap: 0.25em;
    height: 2.25em;
}

.academy_bottom_bar_presenters .person_photo {
    width: 2.2em;
    padding-bottom: 2.2em;
    margin-bottom: 0;
}

.academy_flag {
    background: var(--ipa-green);
    width: 3.2em;
    height: 3.2em;
    border-radius: 1.6em;
    color: white;
    line-height: 3.4em;
    text-align: center;
    font-weight: bold;
    font-size: 0.6em;
    margin-left: -0.5em;
}

.academy_date_location_wrapper {
    flex: 1;
}

.academy_date, .academy_location {
    color: black;
    margin: 0.2rem auto;
    line-height: 1.15;
}

.academy_date { font-size: 0.8rem; }
.academy_location { font-size: 0.75rem; opacity: 0.5; }

.academy_search_keyword {
    float: left;
    font-size: 1.2em;
    margin-top: 1em;
}

.academy_list {
    margin-top: 1em;
}

.academy_list_item {
    display: block;
    overflow: auto;
    color: black;
    padding: 0.75em 0;
    margin: 0 1em;
    border-radius: 0;
    display: flex;
    align-items: center;
    border-bottom: 0.1em solid #eee;
}
.academy_list_item:first-child {
    border-top: 0.1em solid #eee;
}
.academy_list_item:hover {
    padding: 1em 1em;
    margin: -0.25em 0;
    background: #eee;
    box-shadow: 0 0.2em 1em rgba(0, 0, 0, 0.3);
    border-radius: 0.5em;
    border-bottom: 0.1em solid #eee;
}

.academy_list_date {
    text-align: center;
    flex: 0 0 4.6em;
}

.academy_list_date h4 {
    font-weight: normal;
    margin-top: 0;
    font-size: 1.05em;
}

.academy_list_aa {
    font-size: 0.9em;
    font-weight: 400;
    margin-top: 0.25em;
    color: #aaa;
}

.academy_flag_list {
    float: right;
    background: var(--ipa-green);
    color: white;
    font-weight: bold;
    letter-spacing: 0.025em;
    font-size: 0.625em;
    line-height: 3.5em;
    text-align: center;
    width: 3.4em;
    height: 3.4em;
    border-radius: 1.7em;
    margin-top: 0.05em;
    margin-right: 0.75em;
}

.academy_list_item_inner {
    margin-left: 0.5em;
    margin-right: 1em;
    flex-grow: 1;
}

.academy_list_item_inner h4 {
    margin-top: 0;
    font-size: 1.05em;
}

.academy_list_item_details {
    margin-top: 0.25em;
    font-size: 0.9em;
}

.academy_list_item_presenters {
    flex-shrink: 0;
}

.aa_list_buttons {
    display: flex;
    justify-content: flex-end;
}


.waitlist_form {
    /*width: 28em;
    text-align: left; */
    margin: 0 auto -1em auto;
    width: 24em;
}

.waitlist_form .label {
    clear: both;
    margin-top: 1.2em;
    float: left;
    width: 7em;
    text-align: right;
    margin-right: 0.75em;
}

.waitlist_form .input_width_normal {
    margin-top: 0.8em;
    float: left;
    width: 16em;
}

.waitlist_form .field_spacer {
    clear: both;
    height: 2em;
}



/* Remove the box shadow on the circle buttons for their non-hover state */
.academy_single .circle_button_left:not(:hover), .academy_single .circle_button_right:not(:hover) {
    box-shadow: none;
}

.academy_cover {
    width: 100%;
    height: auto;
}

.academy_cover img {
    width: 100%;
    display: block;
}

.academy_past_note, .academy_pd_note {
    margin: -0.65em 0.75em 0.25em 0;
    padding: 0.78em 1em;
    display: inline-block;
    border-radius: 0.25em;
    font-size: 0.9em;
    font-weight: bold;
    float: left;
}

.academy_past_note { background: var(--ipa-yellow); }
.academy_pd_note   { color: white; background: var(--ipa-lime_green); }

.academy_single h1 {
    margin-top: 0.25em;
    margin-bottom: 0.75em;
    line-height: 1.2;
}

.academy_single h3 {
    margin-top: 0.6em;
    margin-bottom: -0.125em;
    line-height: 1.2;
}

.academy_single h4 {
    color: #222;
    margin: 0 1em 1.5em 0;
    font-weight: normal;
    font-size: 1.1em;
    display: inline-block;
}

.academy_single_topnote {
    font-size: 1.3em;
    color: white;
    margin-top: -0.5em;
    line-height: 1.7;
    width: fit-content;
    margin-bottom: 1.5em;
    padding: 0.5em 1.25em 0.6em 2.9em;
    border-radius: 0.5em;
    background-image: url(/images/main/icon_caution.png);
    background-repeat: no-repeat;
    background-size: 1.4em 1.4em;
    background-position: 0.8em center;
}

.academy_flag_single {
    color: white;
    font-weight: bold;
    letter-spacing: 0.025em;
    font-size: 0.75em;
    line-height: 3.34em;
    text-align: center;
    float: left;
    width: 3.3em;
    height: 3.3em;
    border-radius: 1.65em;
    margin-top: -0.65em;
    margin-right: 0.75em;
}

.academy_single_details {
    float: right;
    margin: 0 0 1.5em 2em;
    width: 20em;
    overflow: auto;
    background: #eee;
    border-radius: 0.4em;
    box-sizing: border-box;
}

.academy_single_details_inner {
    padding: 0.75em 1em;
}


.academy_presenter_sidebar {
    display: flex;
    padding: 0.25em;
    flex-direction: row;
    justify-content: space-between;
    column-gap: 0.5em;
    align-items: center;
    margin-top: 0.4em;
    margin-bottom: 0.25em;
    border-radius: 12em;
    transition: transform .1s;
}

.academy_presenter_sidebar:hover {
    background: #fff;
    transform: scale(1.04);
    box-shadow: 0 0.2em 0.75em rgba(0, 0, 0, 0.2);
}

.academy_presenter_sidebar .person_photo {
    width: 3em;
    min-width: 3em;
    display: block;
    padding-bottom: 3em;
    margin-bottom: 0;
}

.academy_presenter_sidebar_name {
    flex-grow: 1;
    color: #222;
    line-height: 1.1;
    margin-right: 0.65em;
}

.academy_presenter_sidebar_name b {
    padding-top: 0.4em;
    display: inline-block;
    font-size: 0.9em;
}

.academy_presenter_sidebar_title {
    font-size: 0.75em;
    line-height: 1.1;
    margin-top: 0.2em;
    padding-bottom: 0.4em;
}

.academy_single_details p {
    margin: 0.5em 0 0.75em 0;
    font-size: 0.9em;
}

.academy_description {
    max-width: var(--max-content-width);
    font-size: 1em;
    line-height: 1.6;
    margin-top: 0.75em;
}

.academy_description p {
    margin: 0 0 1em 0;
}

.academy_image_thumb_admin {
    min-width: 8em;
    min-height: 4em;
}

.academy_nav_date {
    margin-top: 1.25em;
}



.flagpicker_wrapper {
    overflow: auto;
    padding: 0.5em 0;
}

.flagpicker_wrapper label {
    float: left;
    min-width: 2.75em;
    padding-top: 1em;
}

.flagpicker {
    width: 4.4em;
    height: 4.4em;
    border-radius: 2.2em;
    float: left;
    margin-right: 0.5em;
    box-sizing: border-box;
    cursor: pointer;
    background: var(--ipa-green);
    font-size: 0.65em;
    border: 4px solid #fff;
    color: white;
    line-height: 3.9em;
    text-align: center;
    font-weight: bold;
    letter-spacing: 0.025em;
    transition: transform .1s;
}

.flagpicker:hover {
    border: 4px solid #eee;
    transform: scale(1.1);
}

.flagpicker_selected {
    border: 4px solid #333;
}

.flagpicker_selected:hover {
    border: 4px solid #000;
}

.flagpicker_up, .flagpicker_down {
    background-repeat: no-repeat;
    background-position: center center;
    background-size: 20px 20px;
}

.flagpicker_up {
    background-image: url(/images/main/flag_up_black.png);
}

.flagpicker_down {
    background-image: url(/images/main/flag_down_black.png);
}



.eln_course_sidebox .thumbnail, .eln_courses_grid_wrapper .thumbnail {
    width: 100%;
    padding-bottom: 50%;
    display: block;
    margin-bottom: 0.5em;
    background-size: cover;
    background-position: center 33%;
}


.eln_course_sidebox .sidebox_item {
    border-radius: 0.5em;
    overflow: hidden;
}



.eln_coursebox {
    color: black;
}

.sidebox_item .eln_coursebox {
    width: 16em;
}



.eln_coursebox_cover {
    width: 100%;
    height: auto;
    display: block;
}

.eln_coursebox_details {
    padding: 0.8em 1em 1.1em 1em;
}

.eln_coursebox_title {
    font-weight: bold;
    margin-bottom: 0.6em;
    line-height: 1.3;
}



.eln_courses_grid_wrapper {
    margin: 1.2em 0 1em 0;
    display: grid;
    gap: 1.75em;
    grid-template-columns: repeat(auto-fill,minmax(20%, 1fr));
}

.eln_courses_grid_wrapper .grid_item {
    display: block;
    border-radius: 0.5em;
    background: white;
    overflow: hidden;
}


.eln_3col {
    margin-top: 1em;
    border: 4px solid green;
}

.eln_3col a {
    display: inline-block;
    border: 1px solid black;
    margin-bottom: 0.75em;
}


.microcredentialbox {
    color: black;
}

.microcredentialbox_details {
    text-align: center;
    padding: 0.25em 1em 0.5em 1em;
}

.microcredentialbox_badge {
    display: block;
    margin: 0 auto;
    max-width: 12em;
}


.person_item .person_name a {
    color: var(--ipa-green);
}

.candidate_name {
    font-size: 1.1em;
    font-weight: bold;
    margin: 0.2em 0 0.3em 0;
}

.candidate_name a { color: black; }


.video_player_wrapper {
    position: relative;
    width: 100%;
    height: 0;
    padding-bottom: 56.25%;
    margin-bottom: 1.5em;
    background: #000;
}

.video_player_wrapper iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #000;
}

.video_series_cover_info {
    padding: 1em 1em 3em 4em;
    max-width: 50%;
    position: absolute;
    bottom: 0;
    min-width: 400px;
}

.video_series_cover_info .button {
    margin-top: 1em;
}

.video_box {
    min-width: 14em;
    width: 22.5%;
    font-size: 0.9em;
    border-radius: 0.75em;
    overflow: hidden;
    color: black;
    display: block;
    background: white;
}

.sidebox .video_box {
    width: 18em;
}

.video_box_details {
    padding: 0.5em 1em 0.9em 1em;
    line-height: 1.2;
    white-space: normal;
}

.video_box_details .video_title {
    margin-bottom: 0.5em;
    display: block;
}


.staff_bubble {
    width: 16em;
    text-align: center;
    line-height: 1.3;
    display: block;
    margin-bottom: 2em;
}

.staff_bubble img, .staff_bubble_wide img {
    width: 75%;
    height: auto;
    border-radius: 50%;
    box-shadow: rgba(0, 0, 0, 0.25) 0 0.2em 1em;
}

.staff_bubble_inner {
    background: var(--color-superlightgray);
    padding: 7.35em 0.5em 0.75em 0.5em;
    margin-top: -7em;
    border-bottom: 4px solid var(--ipa-green);
    color: black;
}

.staff_bubble h4, .staff_bubble_wide h4 {
    font-family: 'Roboto Condensed', 'Roboto', sans-serif;
    font-size: 0.85em;
    letter-spacing: 0.025em;
    color: var(--ipa-green);
}

.staff_bubble h3, .staff_bubble_wide h3 {
    font-family: 'Roboto Condensed', 'Roboto', sans-serif;
    font-size: 1.5em;
    font-weight: bold;
    color: var(--ipa-green);
}

.staff_bubble_details {
    font-size: 1em;
}

.staff_bubble_wide {
    font-size: 0.85em;
    line-height: 1.3;
    color: black;
    text-align: left;
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    margin-right: 1em;
    margin-bottom: 0em;
}

.staff_bubble_wide img {
    width: 11em;
    height: 11em;
    z-index: 100;
}

.staff_bubble_wide_inner {
    color: black;
    height: 10em;
    margin-top: 0;
    padding: 0.5em 1em 0.5em 6.75em;
    margin-left: -6em;
    z-index: 90;
    display: flex;
    flex-direction: column;
    justify-content: center;
    background: var(--color-superlightgray);
    border-bottom: 4px solid var(--ipa-green);
}


.staff_item {
    overflow: auto;
    padding: 1.5em 0 1em 0;
    border-bottom: 2px solid var(--color-lightgray);
    clear: both;
}

.staff_item:first-of-type {
    border-top: 2px solid var(--color-lightgray);
}

.staff_photo {
    width: 10em;
    height: 10em;
    border-radius: 5em;
    float: left;
}

.staff_url {
    float: left;
    clear: left;
    width: 7em;
    text-align: center;
    padding: 0.15em 0 0.25em 0;
    margin-top: 0.5em;
    margin-left: 1.5em;
    color: var(--ipa-green);
}

.staff_url:hover {
    color: white;
    background: var(--ipa-green);
    border-radius: 0.25em;
}

.staff_url span {
    font-size: 0.75em;
}

.staff_info {
    margin-left: 11.5em;
    padding-top: 0.25em;
}

.staff_item h4 {
    font-size: 0.9em;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--ipa-green);
    margin-bottom: 0.25em;
}

.staff_item h5 {
    margin: 0.2em 0;
    font-family: 'Roboto Condensed', 'Roboto', sans-serif;
    font-size: 1.75em;
    font-weight: bold;
}

.staff_contactinfo {
    padding: 0 0 0 0;
}

.staff_desc {
    font-size: 0.9em;
}

.attachment_file:hover, .pageblock_file:hover {
    background: white;
    box-shadow: 0 0.1em 0.6em rgba(0, 0, 0, 0.35);
    color: black !important;
}



.button_explore {
    font-size: 0.8em;
    padding: 0.6em 1.1em 0.52em 1.1em;
    margin-top: -0.125em;
}

.button_explore .icon { margin-right: 0.25em; }

#explore_intervals {
    font-size: 0.85em;
}

#explore_intervals a {
    display: inline-block;
    cursor: pointer;
    padding: 0.3em 0.75em;
    border-radius: 0.5em;
    margin: 0 0.25em;
}

.explore_selected {
    color: black;
    font-weight: bold;
}



#explore_nav {
    width: 100%;
    position: relative;
    margin-top: 1em;
    height: 3em;
    padding: 0 1em 0 1em;
}

#explore_interval_prev {
    background-image: url(/framework/images/arrow_left.png);
    background-repeat: no-repeat;
    background-color: var(--color-superlightgray);
    border-radius: 1.5em;
    width: 3em;
    height: 3em;
    display: block;
    position: absolute;
    left: 0;
    background-size: 3em 3em;
    cursor: pointer;
}

#explore_interval_next {
    background-image: url(/framework/images/arrow_right.png);
    background-repeat: no-repeat;
    background-color: var(--color-superlightgray);
    border-radius: 1.5em;
    width: 3em;
    height: 3em;
    display: block;
    position: absolute;
    right: 0;
    background-size: 3em 3em;
    cursor: pointer;
}

#explore_interval_title {
    margin-left: 4.5em;
    margin-right: 4.5em;
    text-align: center;
    position: absolute;
    inset: 0;
    display: flex;
    font-size: 1.125em;
    justify-content: center;
    align-items: center;
}

#explore_chart {
    margin-top: 1.5em;
    min-height: 26em;
    min-width: 24em;
    position: relative;
    overflow: hidden;
    margin-bottom: -1.75em;
}

/*
@keyframes xc_item_moveup_frames {
    0% {
        transform: scale(1.0) translate(-50%, 0);
    }
    50% {
        transform: scale(1.35) translate(-40%, 0);
    }
    100% {
        transform: scale(1.0) translate(-50%, 0);
    }
}

.xc_item_moveup {
    animation-name: xc_item_moveup_frames;
    animation-duration: 0.5s;
    animation-iteration-count: infinite;
}
*/

.xc_item {
    position: absolute;
    height: 2.5em;
    left: 50%;
    white-space: nowrap;
    transform: translate(-50%, 0);
    /*transition: all .5s;*/
    /*transition: all .33s;*/
    transform-origin: center;
    z-index: 1200;
}

.xc_item > div {
    background: var(--color-superlightgray);
    border-radius: 0.6em;
    padding: 0.3em 0.5em 0.3em 0.85em;
}

.xc_num {
    display: inline-block;
    color: #aaa;
    font-size: 0.7em;
    vertical-align: middle;
    /*font-weight: bold;*/
    margin-left: 0.25em;
    letter-spacing: -0.05em;
}



.members_only_block {
    background: var(--color-superlightgray);
    padding: 2em 4em 1.5em 4em;
    border-radius: 0.5em;
    text-align: center;
    line-height: 1.6;
    border-bottom: 2px solid #ccc;
    display: inline-block;
}

.members_only_block h4 {
    font-size: 1.5em;
}

.members_only_block h4 img {
    width: 0.75em;
    height: 0.75em;
    margin-right: 0.25em;
}


@keyframes backgroundColorPalette {
  0% {   background: var(--ipa-dark_green); }
  10% {  background: var(--ipa-dark_green); }
  50% {  background: var(--ipa-green);      }
  90% {  background: var(--ipa-dark_green); }
  100% { background: var(--ipa-dark_green); }
}

@keyframes backgroundColorPaletteMSH {
  0% {   background: var(--ipa-purple); }
  20% {  background: var(--ipa-purple); }
  50% {  background: #913daa;      } /* 673277 */
  80% {  background: var(--ipa-purple); }
  100% { background: var(--ipa-purple); }
}

.members_only_badge_wrapper {
    padding: 1.5em 0 0em 0;
    text-align: center;
}

.members_only_badge_wrapper div {
    background-color: var(--ipa-dark_green);
    animation-name: backgroundColorPalette;
    animation-duration: 2.5s;
    animation-iteration-count: infinite;
    margin: 0 auto 1em auto;
    padding: 1em 2.5em 0.9em 2em;
    font-weight: bold;
    color: white;
    display: inline-block;
    border-radius: 0.35em;
}

.msh_members_only_badge_wrapper div {
    background-color: var(--ipa-purple) !important;
    animation-name: backgroundColorPaletteMSH !important;
}

.members_only_badge_wrapper img {
    width: 1em;
    height: 1em;
    margin-right: 0.5em;
    margin-bottom: -0.125em;
}


.odacademy {
    background: white;
    overflow: auto;
    border-radius: 0.5em;
    padding: 2em 2.5em;
    margin: 0 0 1.5em 0;
    width: normal;
    color: black;
}

.odacademy_trailer {
    float: right;
    margin: -0.5em 0 0.5em 1em;
    width: 40%;
}

.odacademy:last-child {
    margin-bottom: 0;
}





.stats_table {
    flex: 1;
    width: 100%;
}

.stats_header {
    color: rgba(120,120,120,0.6);
}

.stats_row {
    display: flex;
    align-items: center;
    gap: 1.25em;
    line-height: 1.2;
    min-height: 1.9rem;
    padding: 0.3em 0;
    border-bottom: 1px solid rgba(120,120,120,0.35);
}

.stats_row .pageblock_file {
    padding: 0.4em 0.6em 0.4em 0.5em;
}




.summit_header_logo img {
    display: block;
    width: 100%;
    height: auto;
    margin: 0 auto;
    max-width: 75%;
}

.summit_header_center {
    padding-top: 2em;
    display: flex;
    gap: 3em;
}

.summit_header_center > div {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 0.25em;
}


.summit_header_reg_buttons {
    margin: 0 0 0 auto;
}

.summit_reg_button, .summit_agenda_button {
    display: block;
    font-family: 'Roboto Condensed', 'Roboto', sans-serif;
    font-weight: bold;
    box-shadow: 0.1em 0.125em 0.5em rgba(0, 0, 0, 0.25);
    background: var(--color-link);
    padding: 1em 2em;
    line-height: 1.15;
    font-size: 1.1em;
    height: 3.1em;
    border-radius: 1.55em;
    margin: 0 auto;
    text-align: center;
    transition: transform 0.15s ease-in-out;
}

.summit_reg_button {
    text-transform: uppercase;
    width: 12em;
    cursor: pointer;
}

.summit_reg_button:hover, .summit_agenda_button:hover {
    transform: scale(1.1);
    box-shadow: 0.35em 0.35em 0.5em rgba(0, 0, 0, 0.15);
    filter: brightness(1.05);
}



.summit_agenda_button {
    width: 16em;
}

.summit_agenda_button img {
    width: 2em;
    height: 2em;
    display: block;
    float: left;
    margin-top: -0.6em;
    margin-right: 0.25em;
}



.summit_header_center_details {
    text-align: left;
}

.summit_header_date {
    font-size: 2em;
    font-weight: bold;
    flex: 0 0 auto;
    line-height: 1.1;
}

.summit_header_location {
    font-weight: 300;
    flex: 0 0 auto;
}

.summit_header_description {
    text-align: center;
    font-weight: 300;
    font-size: 1.5em;
    line-height: 1.5;
    padding: 0.75em 1.25em 0 0;
    max-width: 30em;
    margin: 0 auto;
}




.summit_pricing_outer {
    background: white;
    padding: 2em;
    color: black;
    text-align: center;
    display: none;
}

.summit_pricing_outer_alwayson {
    padding: 1em 2em;
    color: black;
    text-align: center;
}

.summit_pricing_wrapper {
    gap: 1em;
    margin: 0 auto;
    display: flex;
    justify-content: center !important;
}

.summit_price {
    max-width: 24em;
    flex: 1;
    padding: 1.25em 1.25em 1.75em 1.25em;
    background: var(--color-superlightgray);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.summit_price_upper {
    padding-bottom: 0.5em;
}

.summit_price_middle {
    display: flex;
    flex-grow: 1;
    flex-direction: column;
    gap: 0.125em;
    align-items: center;
    justify-content: center;
}

.summit_price_lower {
    padding-top: 1.25em;
}

.summit_price h4, .summit_price p {
    margin: 0;
}

.summit_price_amount {
    margin-top: -0.125em;
    font-size: 1.85em;
    font-weight: 300;
}

.summit_price .summit_reg_button {
    font-size: 0.9em;
    height: auto;
    border-radius: 20em;
    padding: 0.8em 2em;
    min-width: 12em;
    width: min-content;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.summit_price .note {
    padding: 0.5em 1em 0em 1em;
    font-size: 0.75em;
    max-width: 82%;
}

.summit_price .note a {
    color: var(--color-link) !important;
}



.summit_regblock {
    display: flex;
    gap: 5em;
}

.summit_regblock_logo {
    flex: 1.25;
}

.summit_regblock_logo img {
    display: block;
    width: 100%;
    max-width: 30em;
    height: auto;
    margin: 0 0 0 auto;
}

.summit_regblock_links {
    flex: 1;
    text-align: center;
    display: flex;
    align-items: flex-start;
    flex-direction: column;
    justify-content: center;
    gap: 0em;
}





.sessions_wrapper {
    margin-top: 2em;
    margin-bottom: 2em;
    display: flex;
    flex-wrap: wrap;
    gap: 1.5em;
}

.sessions_wrapper .session {
    flex: 0 0 calc(25% - 1.65em);
    background: white !important;
    color: black !important;
    border-radius: 1em;
    overflow: hidden;
    min-height: 7em;
}

.sessions_wrapper .session_flag {
    background-color: #eaeaea;
    padding: 0.65rem 1em 0.5rem 1em;
    margin-bottom: -0.5rem;
    font-size: 0.65em;
    font-weight: normal;
    letter-spacing: 0.01em;
}

.session_flag_dot {
    float: left;
    margin-right: 0.22em;
    margin-top: -0.125em;
    border-radius: 50%;
    height: 1.5em;
    width: 1.5em; 
}

.session_flag_dot:last-child {
    margin-right: 0.4em;
}

.session_flag_modal {
    background-color: #eaeaea;
    max-width: 24em;
    margin: 0 auto 1em auto;
    border-radius: 0.5em;
    text-align: left;
    padding: 1em 1em 0.9em 1em;
}

.sessions_wrapper .session_inner {
    padding: 1.2em 1em 1em 1.25em;
}

.location_string, .speakers_string {
    font-size: 0.75em;
    margin: 0.25em 0;
    color: #999;
}

.session_title {
    font-family: 'Roboto Condensed', 'Roboto', sans-serif;
    letter-spacing: -0.01em;
    line-height: 1.12;
    font-size: 1.35em;
    margin-bottom: 0.2em;
}

.session_time {
    font-family: 'Roboto Condensed', 'Roboto', sans-serif;
    font-weight: bold;
    letter-spacing: 0.01em;
    margin: 0.2em 0;
}

.session_speakers {
    margin-bottom: 1em;
}






.summit_sessions_wrapper {
    margin-top: 1.5em;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1em;
}

.summit_session {
    background: white;
    color: black;
    padding: 0.9em;
    min-height: 6em;
    line-height: 1.2;
    position: relative;
    cursor: pointer;
    border-radius: 0.75em;
}

a .summit_session h5, a .summit_session div {
    color: black;
}

.summit_session h5 {
    font-family: 'Roboto Condensed', 'Roboto', sans-serif;
    line-height: 1.1;
    margin-bottom: 0.35em;
}

.summit_session div {
    line-height: 1.3;
}

.summit_speakers {
    font-size: 0.75em;
    margin: 0.65em 0;
}

.summit_session_time {
    margin-top: 0.35em;
    font-family: 'Roboto Condensed', 'Roboto', sans-serif;
    font-weight: bold;
}

.summit_description_inner {
    margin: auto;
    min-width: 25em;
    max-width: 40em;
    border-radius: 1.125em;
    transition: transform .5s;
    transform: translate(0, 0);
    min-height: 12em;
    background: white;
    padding: 2em 2.25em 2.5em 2.25em;
    box-shadow: 0 0.25em 2.5em rgba(0, 0, 0, 0.33);
}

.summit_description_inner h3 {
    font-family: 'Roboto Condensed', 'Roboto', sans-serif;
    line-height: 1.1;
    margin-bottom: 0.45em;
}

.summit_description_inner .text_content {
    margin-top: 1.25em;
    margin-bottom: 1.25em;
    line-height: 1.5em;
}

.summit_description_inner .speakers {
    margin: 0em 0 0.75em 0;
    font-size: 0.85em;
}



.pb_alt_itemboxes_wrapper {
    display: flex;
    flex-direction: column;
    gap: 0.65em;
    max-width: 25em;
    margin: 1em auto 0 auto;
}

.pb_alt_itembox {
    background: white;
    padding: 0.75em 1em 0.75em 1em;
    border-radius: 0.75em;
    color: black;
    display: flex;
    gap: 0.5em;
    align-items: center;
    font-size: 0.85em;
    text-align: left;
    line-height: 1.3;
    min-height: 4.5em;
}

.pb_alt_itembox_columns {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.35em;
}

.pb_alt_itembox_icon {
    width: 2.125em;
    height: 2.125em;
}

.pb_alt_itembox_icon img {
    width: 2.125em;
    height: 2.125em;
    display: block;
}

.pb_alt_itembox p {
    margin: 0em 0 0.5em 0;
}

.summit_hotel_title {
    font-weight: bold;
    font-size: 1.1em;
    display: block;
    margin: 0;
}



.podcast_wrapper {
    border-radius: 1em;
    background: white;
    box-shadow: 0 0.2em 1.5em rgba(0, 0, 0, 0.3);
    color: black;
}

.podcast_top {
    padding: 1.25em;
}

.podcast_image_wrapper {
    float: left;
    width: 14em;
    height: 14em;
    margin-right: 1.25em;
    margin-bottom: 1.25em;
}

.podcast_image_wrapper img { display: block; width: 100%; height: 100%; }

.podcast_title {
    font-family: 'Roboto Condensed', 'Roboto', sans-serif;
    font-size: 1.75em;
    line-height: 1.15;
    font-weight: bold;
    margin-bottom: 0.25em;
}

.podcast_title a, .podcast_desc a { color: black !important; }

.podcast_byline {
    margin-bottom: 0.75em;
    color: #999999;
}

.podcast_desc_trigger {
    display: block;
    cursor: pointer;
    color: black;
}

.podcast_episodes_wrapper {
    border-bottom: 1px solid #dddddd;
    clear: both;
}

.podcast_episode {
    padding: 0.25em 1em 0.25em 1em;
    border-top: 1px solid #dddddd;
    display: grid;
    min-height: 3.25em;
    grid-template-columns: 2.25em 3em minmax(4em, auto) 2.25em;
}

.podcast_episode_playbtn {
    display: flex;
    align-items: center;
    justify-content: center;
}

.podcast_episode_playbtn .playbtn {
    width: 2em;
    height: 2em;
    margin: 0 auto;
    background-color: var(--color-link);
    background-image: url(/images/main/play_btn.png);
    background-size: 90%;
    background-position: center;
    background-repeat: no-repeat;
    border-radius: 1em;
    cursor: pointer;
    transition: transform .1s;
}

.playbtn:hover {
    transform: scale(1.1);
}

.podcast_episode_duration, .podcast_episode_info {
    display: flex;
    align-items: center;
    justify-content: center;
}

.podcast_episode_title {
    text-align: left;
}

.podcast_episode_title_title {
    font-family: 'Roboto Condensed', 'Roboto', sans-serif;
    line-height: 1.15;
    font-weight: bold;
    margin-bottom: 0.2em;
}

.podcast_episode_info {
    opacity: 0.25;
    cursor: pointer;
    transform: scale(0.9);
    transition: transform .1s;
}

.podcast_episode_info:hover { opacity: 1.0; transform: scale(1.0); }

.podcast_episode_info_trigger {
    background-image: url(/images/main/icon_infopopup.png);
    background-size: 100%;
    background-repeat: no-repeat;
    width: 1.5em;
    height: 1.5em;
}

.podcast_modal_episode_desc {
    padding-left: 3em;
    padding-right: 3em;
}

.podcast_modal_episode_desc a { color: var(--color-link) !important; }

.podcast_player_wrapper {
    background: #e2e2e2;
    padding: 1em;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.podcast_player {
    width: 90%;
}

.podcast_episode_close {
    margin-top: 1em;
    color: var(--color-link) !important;
    cursor: pointer;
}

.podcast_footer {
    padding: 1em 1em 1.1em 1em;
    text-align: center;
    width: 100%;
}



.preview_pb {
    gap: 2em;
}

.preview_image_wrapper {
    max-width: 8em;
}

.preview_image_wrapper img { display: block; max-width: 100%; }



.resource_wrapper {
    display: flex;
    gap: 2em;
}

.resource_preview {
    max-width: 18em;
    flex: 1;
    flex-direction: column;
}

.resource_preview img {
    width: 100%;
    height: auto;
    display: block;
}

.resource_download_wrapper {
    margin: 2em 0 2.5em 0;
}


.resource_sidebox {
    gap: 2em;
}

.resource_sidebox_item {
    width: 14em;
}

.resource_cover {
    width: 100%;
    display: block;
    height: auto;
}

.resource_sidebox_item_title {
    padding: 0.75em 1em 0.85em 1em;
    font-size: 0.85rem;
    line-height: 1.25;
}


.countdown {
    padding-bottom: 1em;
    height: 5em;
    padding-left: 1.5em;
    padding-right: 1.5em;
}

.countdown_visibility_wrapper {
    display: flex;
}

.countdown_box {
    flex: 1;
    max-width: 8em;
    font-size: 1em;
}

.countdown_value {
    font-family: 'Roboto Condensed', 'Roboto', sans-serif;
    font-weight: bold;
    font-size: 3.75em;
    letter-spacing: -0.03em;
    line-height: 1;
}

.countdown_label {
    font-size: 0.78em;
    text-transform: uppercase;
    letter-spacing: 0.1em;
}



.skinny_title {
    font-size: 2.5em;
    font-weight: normal;
    margin: 0.5em 0;
    font-family: 'Roboto Condensed', 'Roboto', sans-serif;
    font-weight: normal;
}



.home_ipaconnect {
    padding: 3em 0;
    margin-top: 0.5em;
    background-image: url(/images/main/ipaconnect_background2.jpg);
    background-size: cover;
    background-position: center;
}


.home_academies_outer {
    position: relative;
}

.home_academies {
    overflow-x: scroll;
    overflow-y: hidden;
    white-space: nowrap;
    width: 100%;
    position: relative;
    -ms-overflow-style: none;
}

.home_academies::-webkit-scrollbar {
    display: none;
}


.home_academies_outer .circle_button_left, .home_academies_outer .circle_button_right {
    opacity: 0;
    display: block;
    transition: all 0.125s ease-out;
    position: absolute;
    z-index: 550;
    background-color: white;
    border-radius: 100%;
    cursor: pointer;
    top: 50%;
    margin: -1.25em 0 0 0;
}

.home_academies_outer:hover > .circle_button_left, .home_academies_outer:hover > .circle_button_right {
    opacity: 0.5;
}


.home_academies_outer .circle_button_left {
    display: none;
    left: 1em;
}

.home_academies_outer .circle_button_right {
    right: 1em;
}


.home_academies_outer .circle_button_left:hover, .home_academies_outer .circle_button_right:hover {
    opacity: 1.0;
    transform: scale(1.125);
}

.home_academies_inner {
    padding: 2.5em 0 2.5em 4em;
    display: flex;
    align-items: center;
}

.home_academies_head {
    flex: 0 0 22em;
    padding: 0 1em 0 0;
    white-space: normal;
    text-align: right;
}

.home_academies_head h2 {
    color: var(--ipa-lime_green);
}

.home_academies_head p {
    line-height: 1.5;
    font-size: 0.95em;
    color: black;
}

.home_academy {
    margin: 0 1em;
    vertical-align: top;
    flex: 0 0 24em;
    font-size: 0.85em;
    white-space: normal;
}

.home_academy .academy_grid_item {
    width: 100%;
}


.home_academy .academy_date {
    font-size: 1em;
}

.home_academies_foot {
    padding: 0 2em;
    flex: 0 0 20em;
    white-space: normal;
}





.ipaessential_box {
    min-width: 16em;
    width: 22.5%;
    font-size: 1em;
    border-radius: 0.75em;
    overflow: hidden;
    color: black;
    display: block;
    background: white;
}

.sidebox .ipaessential_box {
    width: 18em;
}

.ipaessential_box_graphic {
    display: flex;
    align-items: center;
    height: 10em;
    padding: 15%;
    background-size: cover;
    background-position: center;
}

.ipaessential_box_foreground {
    padding: 15%;
    height: 8em;
    width: 100%;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    position: relative;
    transition: all .08s ease-in-out;
}


.ipaessential_box_graphic:hover > .ipaessential_box_foreground {
    transform: scale(1.1);
}



.ipaessential_box_details {
    padding: 0.85em 1em 1.25em 1em;
    white-space: normal;
}

.ipaessential_box_title {
    margin-bottom: 0.5em;
    display: block;
}



.paradigm_tags_flexbox {
    gap: 4em;
    margin-top: 1.5em;
}

.paradigm_tags_flexbox p {
    margin: 0.5em 0 1.5em 0;
}



.search_header {
    position: relative;
    padding: 3.5em 2.5em 3em 4em;
}

.search_header_flexleft {
    flex: 0 0 fit-content;
    max-width: 80%;
}

.search_header_flexright {
    padding-top: 0.4em;
    padding-left: 1em;
}

.search_header_smalltitle {
    font-size: 0.85rem;
    margin-bottom: 0.5em;
    margin-left: 0.2em;
}

.search_header_keyword, .search_header_keyword_smaller {
    font-size: 3.5em;
    font-weight: 300;
    letter-spacing: -0.01em;
    margin-bottom: 0.125em;
}

.search_header_keyword_smaller {
    font-size: 3em;
}

.search_header_image {
    float: right;
    margin: 1em 0 1em 2em;
    max-width: 20em;
}

.search_header_image img {
    display: block;
    width: 100%;
    height: auto;
}

#search_top_icon {
    display: inline-block;
    height: 1.1em;
    margin-right: 0.3em;
    margin-bottom: -0.16em;
    transform: scale(0.88);
    transition: all .1s ease-in-out;
}

#search_top_icon:hover {
    transform: scale(1);
}

.search_results_outer {
    padding: 3em 4em;
    margin-left: auto;
    margin-right: auto;
    width: 100%;
}

.search_results_sidebox {
    padding-left: 0em;
}

.search_results_sidebox .sidebox_inner {
    padding-left: 4em;
}

.search_results_sidebox .sidebox_left {
    flex: 0 0 17em;
    padding-right: 1em;
}

.search_results_sidebox .sidebox_left h2 {
    line-height: 1.0;
    margin-bottom: 0.35em;
}

.search_results_region {
    max-width: 18%;
    padding: 0.75em;
    border-radius: 0.5em;
    display: block;
    position: relative;
}

#search_options main {
    padding-left: 4em;
    padding-right: 4em;
}

#search_options_button .icon {
    margin-top: 0.2em;
    width: 0.85em;
    height: 0.85em;
}

.search_options_wrapper {
    gap: 2em;
}

.search_options_wrapper > * {
    width: 100%;
}

.search_options_spacer {
    width: 1.5px !important;
    flex: 0 0 1.5px !important;
    background: #ccc;
}

.search_options_wrapper h4 {
    font-size: 1.1em;
    margin-bottom: 0.5em;
}

.search_options_examples {
    color: #888;
    margin-top: 1.25em;
    line-height: 1.5;
    font-size: 0.85rem;
}

.search_options_examples a { color: #888; }
.search_options_examples a:hover { color: var(--color-link); }

.search_options_tag .tag_bay .tag {
    background: #bbb;
    font-size: 1.1em;
    border-radius: 3em;
    padding: 0.6em 1.1em;
}

#search_options_tag_examples .tag_bar {
    margin-top: 0.5em;
}

#search_options_tag_examples .tag_bar a {
    background-color: #c2c2c2;
    color: black;
}

#search_options_tag_examples .tag_bar a:hover {
    background-color: white;
}

.search_options_buttons {
    margin-top: 1em;
    text-align: center;
    padding-left: 0.25em;
}

.search_options_buttons .button_basic_2023:not(:hover) {
    background-color: white;
}

.see_all_tags_button {
    cursor: pointer;
    background: var(--color-link) !important;
    color: white !important;
    /*border: 2px solid black;*/
}

.see_all_tags_button:hover {
    background-color: var(--color-black) !important;
}

#all_tags {
    padding-top: 1em;
    display: none;
}

.all_tags_tagwrapper {
    line-height: 1.2;
    margin-top: 0.65em;
    margin-bottom: 1.5em;
}

.all_tags_tagwrapper a {
    display: block;
    width: fit-content;
    padding: 0.55em 0.75em;
    border-radius: 1.5em;
    background-color: var(--color-superlightgray);
    color: black;
    margin-bottom: 0.6em;
}

.all_tags_tagwrapper a:hover {
    background: white !important;
}

#search_options .all_tags_tagwrapper a {
    background-color: #c2c2c2;
}



/* MSH */
.msh_wrapper {
    display: flex;
    align-items:flex-start;
}
.msh_nav {
    padding-bottom: 2em;
    flex: 0 0 auto;
    width: 20em;
    font-size: 0.9em;
    box-shadow: 0.125em 0.125em 0.75em 0.25em rgba(0,0,0,0.2);
    background: var(--color-superlightgray);
}
.msh_hamburger {
    display: none;
    padding: 1em 1em 0.75em 1em;
    text-align: center;
    z-index: 100;
    position: relative;
}
.msh_hamburger a {
    display: inline-block;
    color: white;
    font-size: 1.125em;
    letter-spacing: 0.03em;
}
.msh_hamburger a img {
    width: 1.5em;
    height: 1.5em;
    display: block;
    float: left;
    margin: -0.25em 0.65em 0 0;
}
.msh_main {
    flex: 1;
    padding: 3em 4em 2em 4em;
}

.msh_index_wrapper .chapter {
    display: block;
    padding: 0.55em 1em 0.65em 1.25em;
    color: black;
    border-bottom: 1px solid #ccc;
}
.msh_index_wrapper b {
    color: var(--ipa-green);
}

.msh_index_wrapper .chapter:hover {
    background: white;
    box-shadow: 0 0.125em 0.5em rgba(0, 0, 0, 0.15);
}

.msh_index_wrapper .subchapter {
    display: block;
    padding: 0.45em 0.9em 0.45em 3em;
    color: black;
    text-indent: -2em;
    border-bottom: 1px solid #ddd;
}

.msh_index_wrapper .subchapter:hover, .msh_index_wrapper .msh_index_opened:hover {
    background: var(--color-superlightgray);
    box-shadow: 0 0.125em 0.5em rgba(0, 0, 0, 0.25);
    border-bottom: 1px solid var(--color-superlightgray);
}

.msh_index_selected b {
    color: white;
}
.msh_index_wrapper .msh_index_selected, .msh_index_wrapper .msh_index_selected:hover {
    background: var(--ipa-green);
    color: white;
    box-shadow: none;
    margin-top: -1px;
    border-top: 1px solid var(--ipa-green);
    border-bottom: 1px solid var(--ipa-green);
}
.msh_index_opened {
    background: white;
}
.msh_index_wrapper .msh_index_opened:hover {
    box-shadow: 0 0.125em 0.5em rgba(0, 0, 0, 0.25);
}

.msh_main h1 {
    margin-bottom: 0.25em;
    line-height: 1.2;
    text-transform: none;
}

.msh_main table {
    margin-top: 2em;
    font-size: 0.85em;
    border: none;
}

.msh_main_chapter {
    color: var(--ipa-green);
    margin-bottom: 0.25em;
}

.msh_main th {
    background: var(--ipa-green);
    color: white;
    border: 1px solid var(--ipa-green);
    padding: 0.4em 0.6em;
    min-width: 12em;
    line-height: 1.1;
}

.msh_main td {
    vertical-align: top;
    padding: 0.4em 0.6em;
}

.msh_chapter_home_index {
    margin-top: 2em;
}

.msh_chapter_home_index a {
    display: inline-flex;
    color: black;
    line-height: 1.3;
    padding: 0.35em 0.65em 0.3em 0.35em;
}

.msh_chapter_home_index a b {
    text-align: right;
    width: 4em;
    padding-right: 0.5em;
}

.msh_chapter_home_index .allcaps {
    color: var(--ipa-green);

}

.msh_chapter_home_index a:hover {
    background: var(--color-superlightgray);
    box-shadow: 0 0.075em 0.5em rgba(0, 0, 0, 0.35);
}

.msh_sidebox .sidebox_item {
    padding: 1.25em 1em 0.25em 1em;
    min-width: 13em;
    min-height: 16em;
    display: flex;
    flex-direction: column;
}

.msh_box_chapter {
    font-size: 0.85em;
    margin-bottom: 0.5em;
    color: black;
}

.msh_box_title {
    line-height: 1.2;
    font-size: 1.1rem;
    font-weight: bold;
}

.msh_box_kernedlines {
    flex: 1;
    opacity: 0.5;
    min-height: 1.5em;
    margin-top: 1.25em;
    background-image: url(/images/main/kernedlines.png);
    background-size: 100% 0.8em;
    background-repeat: repeat;
    background-position: top center;
    display: flex;
    flex-direction: column;
}

.msh_box_kernedlines .white_fade_bottom {
    height: 2em;
    width: 100%;
    margin-top: auto;
    background-image: url(/images/main/white_fade_bottom.png);
    background-size: 100% 100%;
    background-repeat: no-repeat;
    background-position: bottom center;
}



.back_to_top {
    float: right;
}

.back_to_top:focus {
    outline: none;
}



/* Responsive */

@media screen and (min-width: 1400px) {

    /* wide desktop */
    
    h1 { font-size: 3em; }
    h2 { font-size: 2.5em; }
    h3 { font-size: 2em; }
    h4 { font-size: 1.75em; }
    h5 { font-size: 1.5em; }
    
    .academy_single_details_inner {
        padding-left: 1.5em;
        padding-right: 1.5em;
    }
    
    .preview_pb {
        gap: 2.5em;
    }
    
    .resource_preview {
        max-width: 22em;
    }
    
    .resource_wrapper {
        gap: 3em;
    }
    
    .search_header {
        padding: 4em 4em 3em 4em;
    }
    
    .search_header_image {
        max-width: 24em;
        max-height: 16em;
    }
    
    #search_options main {
        padding-left: 6em;
        padding-right: 6em;
    }
    
    .search_results_sidebox .sidebox_left {
        flex: 0 0 19em;
    }
    
    .sidebox .ipaessential_box {
        width: 20em;
    }
    
    .summit_sessions_wrapper {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
    
}

@media screen and (min-width: 1100px) and (max-width: 1400px) {
    
}

@media screen and (min-width: 800px) and (max-width: 1100px) {
    
    /* skinny desktop */
    
    .summit_sessions_wrapper {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    
    .academy_single_details {
        width: 16em;
    }
    
    .academy_text_title {
        font-size: 0.9em;
    }
    
    .eln_courses_grid_wrapper {
        gap: 1.5em;
        grid-template-columns: repeat(auto-fill,minmax(30%, 1fr));
    }
    
    #search_options main {
        padding-left: 2em;
        padding-right: 2em;
    }
    
    .search_results_outer {
        padding: 2.5em 2em;
    }
    
    .search_results_sidebox .sidebox_inner {
        padding-left: 2em;
    }
    
    .search_header {
        padding: 2em 1.5em 2em 2em;
    }
    
    .sessions_wrapper {
        gap: 1em;
    }
    
    .sessions_wrapper .session {
        flex: 0 0 calc(33% - 1em);
    }

}

@media screen and (max-width: 800px) {

    /* mobile */
    
    .home_academies_inner {
        padding: 1em 0 1em 5em;
    }
    
    .home_academies_head {
        flex: 0 0 14em;
        margin-left: 0;
    }
    
    .home_academy {
        font-size: 0.65em;
    }
    
    footer .flexbox_wrapper {
        flex-direction: column;
        padding-top: 1em;
        gap: 1.5em;
    }
    
    .footer_links_col a {
        margin: 0.25em 0;
        display: inline-block;
        float: left;
        clear: left;
    }
    
    .list {
        min-width: 100%;
    }
    
    .academy_grid {
        row-gap: 1.5em;
    }
    
    .academy_grid_item {
        width: 48%;
    }
    
    .academy_text_title {
        font-size: 2.5vw;
    }
    
    .academy_nav_date {
        margin-top: 1.75em;
    }
    
    .academy_single_details {
        float: none;
        width: 100%;
        margin: 1em 0 2em 0;
    }
    
    .eln_courses_grid_wrapper {
        gap: 1.25em;
        grid-template-columns: repeat(auto-fill,minmax(40%, 1fr));
    }
    
    .side_scroll_edge_left, .side_scroll_edge_right {
        width: 5em;
    }
    
    .odacademy {
        padding: 1em 1em 1.5em 1em;
    }
    
    .odacademy_trailer {
        float: none;
        margin: 0em 0 1em 0;
        width: auto;
    }
    
    .resource_preview {
        max-width: 100%;
    }
    
    .resource_preview img {
        max-width: 16em;
    }
    
    .resource_sidebox_item {
        width: 11em;
    }
    
    .resource_sidebox_item_title {
        padding: 0.6em 0.75em 0.7em 0.75em;
        font-size: 0.75rem;
        line-height: 1.25;
    }

    .staff_photo {
        width: 28vmin;
        height: 28vmin;
        border-radius: 14vmin;
    }
    
    .staff_url {
        margin-left: 0;
    }
    
    .staff_info {
        margin-left: 32vmin;
    }
    
    .staff_info ul {
        padding-left: 0em;
    }
        
    .presenter_single_wrapper {
        gap: 1em;
    }
    
    .presenter_single_left_col {
        flex: 0 0 10em;
    }
    
    .presenter_single_bio {
        padding-left: 1em;
    }
    
    .search_header {
        padding: 2em 1.5em 2em 2em;
    }
    
    .search_header_flexleft {
        flex: 1;
        max-width: 100%;
    }
    
    .search_header_flexright {
        padding: 0;
        margin-top: -0.5em;
    }
    
    .search_header_keyword {
        font-size: 2.5em;
    }
    
    .search_header_keyword_smaller {
        font-size: 2.25em;
    }
    
    .search_header_image {
        float: none;
        max-width: min(20em, 100%); 
        margin: 1em 0 0.5em 0;
    }
    
    .search_results_region {
        max-width: 25%;
    }
    
    .msh_wrapper {
        flex-direction: column;
    }
    
    .msh_nav {
        width: 100%;
        padding-bottom: 0;
    }
    
    .msh_hamburger {
        display: block;
    }
    
    .msh_index_wrapper {
        display: none;
    }
    
    .msh_main {
        padding: 1.5em;
    }
    
    .msh_main_chapter {
        padding: 0.75em 0 1.125em 0;
    }
    
    .msh_box_chapter {
        margin-bottom: 0;
    }
    
    .msh_box_chapter .msh_main_chapter {
        padding-bottom: 0;
    }
    
    .msh_main .text_content h1 {
        font-size: 2.25em;
    }
    
    .msh_sidebox .msh_main_chapter {
        padding-top: 0;
    }
    
    .members_only_block {
        padding: 2em 2em 1.5em 2em;
    }
    
    .members_only_badge_wrapper {
        padding-top: 1.25em;
    }
    
    .paradigm_tags_flexbox {
        gap: 1.5em;
    }
    
    .preview_pb {
        gap: 1.5em;
    }
    
    #search_options main {
        padding-left: 1.5em;
        padding-right: 1.5em;
    }
    
    .search_options_spacer {
        width: 100% !important;
        flex: 0 0 1 !important;
    }
    
    .search_results_outer {
        padding: 2em 1.5em;
    }
    
    .search_results_sidebox .sidebox_inner {
        padding-left: 2em;
    }
    
    .sessions_wrapper {
        gap: 1em;
    }
    
    .sessions_wrapper .session {
        flex: 0 0 calc(50% - 1em);
    }
    
    .session_title {
        font-size: 1.25em;
    }
    
    .sidebox .ipaessential_box {
        width: 16em;
    }
    
    .summit_header_center {
        flex-direction: column-reverse;
        gap: 1.5em;
    }
    
    .summit_header_logo img {
        max-width: 85%;
    }
    
    .summit_header_reg_buttons {
        margin: 0 auto;
    }
    
    .summit_reg_button {
        /*margin: 0 auto 0 auto;*/
        line-height: 1.15;
        font-size: 1.25em;
    }
    
    .summit_header_center .summit_reg_button {
         margin: 0 auto;
    }
    
    .summit_header_center_details {
        text-align: center;
        font-size: 1.1em;
    }
    
    .summit_header_description {
        padding: 1em 0.75em;
        line-height: 1.4;
    }
    
    .summit_price {
        max-width: none;
        width: 100%;
    }
    
    .summit_regblock {
        gap: 2em;
    }
    
    .summit_regblock_logo img {
        margin: 0 auto;
        max-width: 75%;
    }
    
    .summit_regblock_links {
        align-items: center;
    }
    
    .summit_sessions_wrapper {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    
    .podcast_image_wrapper {
        width: 100%;
        height: auto;
        margin-bottom: 0.85em;
    }
    
    .podcast_image_wrapper img { height: auto; }
    
    .podcast_episode {
        padding: 0.35em 0.5em 0.35em 0.65em;
        grid-template-columns: 2.5em 2.75em minmax(4em, auto) 2.2em;
    }
    
    .podcast_episode_duration {
        font-size: 0.75em;
    }
    
    .podcast_episode_title_title {
        font-size: 0.9em;
    }
    
    .waitlist_form {
        margin: 0 auto -1em auto;
        width: auto;
    }

    .waitlist_form .label {
        clear: both;
        margin-top: 0;
        float: none;
        width: auto;
        text-align: left;
        margin-right: 0;
    }
    
    .waitlist_form .field {
        margin-bottom: 0.75em;
    }

    .waitlist_form .input_width_normal {
        margin-top: 0;
        float: none;
        width: 90%;
    }

    .waitlist_form .field_spacer {
        clear: both;
    }


}
