:root {
	--body-width: 120rem;
	--container-width: 80rem;
	--h0: 6.75rem;
	--h1: 4.5rem;
	--h2: 3.5rem;
}

body {max-width: var(--body-width)}
body.menu_open {overflow: auto}
h1 {font-size: var(--h1); line-height: 0.85}
h2 {font-size: var(--h2)}
p {font-size: var(--h6)}
.container {margin: 0 auto; max-width: var(--container-width)}
.d-tbl {border-collapse: collapse; border-style: hidden; display: table; table-layout: fixed; width: 100%}
.d-tbl.rev {direction: rtl}
.d-tbl_row {display: table-row}
.d-tbl_cell {border: 2rem solid transparent; direction: ltr; display: table-cell; vertical-align: top}
.d-tbl_row .d-tbl_cell {border-top: none; border-bottom: none}
.button {font-size: var(--h6)}
.copy > :first-child {margin-top: 0 !important}
.copy > :last-child {margin-bottom: 0 !important}

/* form */
.theme-form .fieldset {border-collapse: collapse; border-style: hidden; display: table; margin: 1rem 0; table-layout: fixed; width: 100%}
.theme-form .fieldset.auto {margin: 1rem auto; width: auto}
.theme-form .fieldset > .field {border: 1rem solid transparent; display: table-cell; vertical-align:top}
.theme-form .fieldset.middle > .field {vertical-align: middle}
.theme-form .fieldset .cf-turnstile {margin: 0}
.theme-form .fieldset.dynamic {align-items: start; display: flex; flex-wrap: wrap; gap: 1rem}
.theme-form .fieldset.dynamic > .field {border: none; display: block; margin: 0; width: calc(50% - 1rem)}
.theme-form .formBG_wrap_inputs {padding: 1rem 0 2rem calc((100% - var(--container-width)) / 2 - 1rem); width: calc(100% / 3 * 2)}
.theme-form .formBG_wrap_inputs_wrap {margin: 0 1rem; max-width: calc(var(--container-width) / 3 * 2 - 0.5rem)}
.theme-form.grad-form .imgholder .img {margin-top: -8rem}
.theme-form.grad-form .formBG_wrap_inputs {padding: 1rem calc((100% - var(--container-width)) / 2  - 1rem) 2rem 0}
.theme-form.grad-form .formBG_wrap_inputs_wrap {margin-left: auto}

/* header */
#header {color: var(--brand); padding: 1rem 0}
#header .container {align-items: center; display: flex; flex-wrap: wrap; padding: 0 1rem}
#button_bar {display: block; margin: 0 0 0 auto; order: 2; padding: 0; width: auto}
#top_phone {background-color: transparent; color: inherit; display: inline-block; font-size: var(--h6); padding: 0; text-align: left}
#top_searchform {display: inline-block; margin: 0 0 0 2rem}
#top_reqinfo {border: 2px solid var(--brand); border-radius: 10rem; display: inline-block; height: 1rem; margin-left: 2rem; padding: 0.6667rem 1.5rem}
#logomenu_bar {flex-basis: 260px; margin: 0; order: 1; padding: 0}
.header_logo {max-height: none}
#top_menu_open {display: none}
#top_menu_wrap {flex-basis: 100%; order: 3; padding: 1rem 0 0 0}

/* menu */
#top_menu_overlay, body.js #top_menu_overlay {display: block}
body.menu_open #top_menu_overlay {background-color: transparent; overflow: auto; position: static}
body.menu_open #top_menu_inner {max-width: none}
#top_menu_close {display: none}
#top_menu .menu {background-color: inherit; color: inherit; display: flex; gap: 1rem; justify-content: flex-end; padding: 0; position: relative}
#top_menu .menu-item-has-children {padding: 0 1.25rem 0 0}
#top_menu .menu-item-has-children a {margin: 0}
#top_menu .sub-menu {padding: 1px 0 1px 1rem}
#top_menu a {font-size: 1rem}
#top_menu .menu > li > .sub-menu {background-color: var(--brand); color: var(--light); left: 50%; min-width: 250px; padding: 0.5rem 1rem; position: absolute; top: 100%; transform: translateX(-50%)}
#top_menu .menu > li > a {display: inline-block; font-weight: bold; padding: 0}
#top_menu .menu > li > .sub-menu a {display: block; margin: 0.5rem 0; padding: 0}
#top_menu li.mobile_only {display: none}
#top_menu .menu .submenu_toggle {color: inherit; margin: 0 0 0 0.25rem; padding: 0; width: 1rem}
#top_menu .menu .submenu_toggle span {transform-origin: left}
#top_menu .sub-menu {display: none}
body.nojs #top_menu .menu > li:focus-within > .sub-menu, body.nojs #top_menu .menu > li:hover > .sub-menu {display: block}

/* hero */
#hero, #hero.top {padding: 0}
#hero::before, #hero.top::before {background: linear-gradient(90deg, var(--gradient))}
#hero .container {display: flex; flex-direction: column; height: 600px; justify-content: end}
#hero_copy{padding: 1rem 30rem 2rem 0}
#hero .pagehead {font-size: var(--h1)}
body.home #hero .pagehead {font-size: var(--h0)}
.pagehead_copy {font-size: var(--h4); width: 55%}

/* sections */
.sub_section.extend .container {max-width: none; padding: 0}
.sub_section.extend .copyholder {padding: 0 0 0 calc((100% - var(--container-width)) / 2 - 1rem)}
.sub_section.extend .copyholder .copywrap {margin: 0 0 0 1rem}
.no_bottom_pad .d-tbl .copywrap {padding-bottom: 4rem}
.no_top_pad .sub_section:first-child .d-tbl .copywrap {padding-top: 4rem}
.sub_section.extend .rev .copyholder {padding: 0 calc((100% - var(--container-width)) / 2 - 1rem) 0 0}
.sub_section.extend .rev .copyholder .copywrap {margin: 0 1rem 0 0}
.imgholder {background-clip: padding-box}
section.sub_borders .sub_section::after {max-width: calc(var(--container-width) - 2rem)}

/*composted bg*/
.imgholder.composted, .imgholder.img, .imgholder .img {padding-bottom: 0}
.imgholder.composted .img_fg {top: 2rem}
.imgholder.composted .img_bg {bottom: 4rem}
.imgholder.composted.fg_pos_auto .img_bg {left: 6rem}
.rev .imgholder.composted.fg_pos_auto .img_bg {right: 6rem}

/*section: boxes*/
.boxes {display: grid; gap: 0 2rem; grid-template-columns: repeat(auto-fit, calc(25% - 1.5rem)); grid-template-rows: auto auto auto auto; justify-content: space-evenly; margin: 2rem}
.sub_section_boxes:not(:first-child) .boxes:not(.copy + .boxes) {margin-top: 4rem}
.boxes.box3 {grid-template-columns: repeat(3, calc(25% - 1.5rem))}
.boxes:has(.box:nth-child(3)) {justify-content: space-between}
.box {display: grid; grid-template-rows: subgrid; grid-row: span 6; margin: 1rem 0}
.boximg, .boxheading, .boxsubheading, .boxcontent, .boxlinks {margin: 0; padding:0.5rem 0; width: 100%}
.box div[aria-hidden] {padding: 0}
.boximg {align-self: end; width: auto}
.boximg + .boxheading {padding-top: 1rem}
h2.boxheading {align-self: center}
.boxlinks {align-self: end}
.boxcontent > :first-child, .boxlinks .linkholder > :first-child {margin-top: 0}
.boxcontent > :last-child, .boxlinks .linkholder > :last-child {margin-bottom: 0}
.boxes.has_lines .box {position: relative}
.boxes.has_lines .box::after {background-color: var(--brand); content: ''; display: block; height: 100%; right: calc(-50% + 1rem); position: absolute; width: 1px}
.boxes.has_lines:has(.box:nth-child(3)) .box::after {right: calc(-100% / 3)}
.boxes.has_lines:not(.box3):has(.box:nth-child(4)) .box::after {right: -1rem}
.boxes.has_lines .box:last-child::after{display: none}

/*section: carousel-info*/
.sub_section_carousel_info .container {padding: 0 2.5rem}
.info-carousel_slide .imgholder, .info-carousel_slide .copyholder {border-width: 4rem; vertical-align: middle}
.info-carousel_slide .imgholder {max-width: none; width: 30%}
.sub_section_carousel_info .swiper-button-next, .sub_section_carousel_info .swiper-button-prev {display: block; margin: 0; position: absolute}
.sub_section_carousel_info .swiper-button-next {right: 0}
.sub_section_carousel_info .swiper-button-prev {left: 0}

/*section: form*/
.formBG_wrap_bg {vertical-align: bottom}

/*section: link table*/
.link_table {align-items: start; display: grid; gap: 1rem 2rem; grid-template-columns: auto auto}
.link_table dt, .link_table dd {margin: 0}

/*section: main content*/
#main_content {padding: 4rem 0}
#main_content.enhanced .container {padding: 0 1rem}
#main_content_form {padding-bottom: 4rem; width: 460px}
#topform {box-shadow: 0.25rem 0.25rem 0.25rem #00000040; padding: 1rem 3rem}
#hero + #main_content #topform {margin-top: -12rem}
#topform .form_heading {font-size: var(--h3)}
#main_content.hasBG #main_content_content, #main_content.hasForm #main_content_content, #main_content_content {padding-left: 0}
.home_promo_copy {font-size: var(--h5)}

/*section: program info columns*/
.program_cols {display: grid; gap: 0 8rem; grid-template-columns: repeat(auto-fit, calc(50% - 4rem)); grid-template-rows: auto auto; justify-content: space-evenly; margin: 2rem 0}
.program_cols:has(.box:nth-child(2)) {justify-content: space-between}
.program_col {display: grid; grid-template-rows: subgrid; grid-row: span 5; margin: 0; position: relative}
.program_col:nth-child(2n)::before {background-color: var(--border); content: ''; height: 100%; left: calc(-4rem + 0.5px); position: absolute; width: 1px}
.program_col_img, .program_col_heading {align-self: end}

/*section: row*/
.sub_section_row .subheading {margin: 2rem 0 1.5rem}
.row .d-tbl_cell {border-width: 4rem}
.row .copyholder {vertical-align: middle}
.row .imgholder {vertical-align: top}
.imgholder .img.aspect {margin: 0; max-height: none}

/*section: schedule visit*/
.sub_section_visit .d-tbl_cell {border: none}
.sub_section_visit .copy {padding: 4rem 0 4rem 4rem}
.sub_section_visit .imgholder {padding: 0}

/*section: tabs*/
.tabwrap .d-tbl_cell {border-width: 4rem; vertical-align: middle}
.tab .imgholder .img {padding-bottom: 56.25%}
.tab_heading {font-size: var(--h3); font-weight: normal}

/*section: testimonial*/
.testimonial .copyholder .copy {padding: 4rem 0}
.testimonial.d-tbl.popout .imgholder {padding-top: 0; vertical-align: bottom}
.testimonial .imgholder .img {margin: 0; max-height: 24rem; max-width: 100%; padding: 0}
.testimonial .imgholder .img[data-mimetype="image/jpeg"] {border-radius: 2rem}
.testimonial.d-tbl.popout .imgholder .img {margin: -3rem auto 0}
.testimonial.d-tbl.popout .imgholder .img[data-mimetype="image/jpeg"] {border-radius: 5rem 5rem 0 0}
.testimonial_content {font-size: var(--h2)}

/*section: video*/
.videos {align-items: flex-end; display: flex; flex-wrap: wrap; gap: 2rem; justify-content: center; margin: 1rem 0}
.videos .videofigure, .videos .videowrapper {margin: 0; width: calc(50% - 1rem)}
.videos .videofigure .videowrapper {width: 100%}

/* program info */
.program_info_copy:has(.imgholder) {height: 1rem}
.program_info_copy .imgholder {height: 100%; width: 40%}
.program_info_copy .imgholder .img {height: calc(100% + 4rem); margin-top: -4rem; padding: 0}
.program_info_copy:has(.imgholder) .copyholder {padding-bottom: 4rem}
.program_info_data {border-collapse: collapse; border-style: hidden; display: table; table-layout: fixed; width: 100%}
.program_info_copy:has(.imgholder) + .program_info_data {margin-top: -4rem}
.program_info_data_stats, .program_info_data_buttons {border: 4rem solid transparent; display: table-cell; vertical-align: middle}
.program_info_copy:has(.imgholder) + .program_info_data .program_info_data_stats, .program_info_copy:has(.imgholder) + .program_info_data .program_info_data_buttons {vertical-align: top}
.program_info_copy:has(.imgholder) + .program_info_data .program_info_data_stats {width: 40%}
.program_info_copy:has(.imgholder) + .program_info_data .program_info_data_stats:not([aria-hidden]) {padding-top: 5rem}
.program_info_data .links {justify-content: start}
.program_info_data_statswrap {display: flex; gap: 1rem; justify-content: space-around}
.program_info_data_stats .program_stat {margin: 0}
.program_info_data_stats .stat_heading {margin: 0 auto; width: min-content}
.program_info_data_stats .stat_source {margin: 1rem}

/* news/events */
.subsection_home_events .home_event .imgholder {width: 25%}
.subsection_home_events .home_event .img {aspect-ratio: 1.3333}
.subsection_home_events .home_event .copyholder {vertical-align: middle}
.featured_post .img {padding-bottom: 24rem}
.subsection_home_posts .home_posts {display: grid; gap: 2rem; grid-template-columns: repeat(auto-fit, calc(100% / 3 - 2rem)); grid-template-rows: auto; margin: 2rem 0}
.subsection_home_posts .home_post {display: grid; gap: 1rem; grid-template-rows: subgrid; grid-row: span 5; margin: 1rem 0}
.subsection_home_posts .postimg, .subsection_home_posts .post_date, .subsection_home_posts .post_title, .subsection_home_posts .post_excerpt, .subsection_home_posts .post_link {margin: 0}
.subsection_home_posts .postimg .img { aspect-ratio: 1.3333; padding: 0}
.subsection_home_posts .post_title {align-self: center}
.subsection_home_posts .post_link {align-self: end}
.home_searchbar {align-items: center; display: flex; gap: 1rem; justify-content: space-between}
.home_search_form .field input[type="search"] {width: 8rem}

/* post-single */
#post_cats {justify-content: start}
#post .asideholder, #post .copyholder {border-width: 4rem}
#post .asideholder {width: 30%}
#post .asideholder .asidecopy {border-bottom: none; border-left: 2px solid var(--border); overflow-y: hidden; padding: 0rem 0 0rem 1rem}
#post .asideholder .asidecopy p {font-size: var(--h4)}

/* event-single */
#event_content {height: 1rem}
#event_content .imgholder {height: 100%; width: 40%}
#event_img {border-radius: 1rem; height: 100%; min-height: 32rem}

/* footer */
#footer_logo, #footer_contact {width: 25%}
#footer_cols {margin: 2rem 0}
.footer_col > :first-child, #footer_nav .menu li:first-child, #footer_logos_above img:first-child {margin-top: 0}
