:root {
	--body-width: 120rem;
	--container-width: 80rem;
}

body {max-width: var(--body-width)}
body.menu_open {overflow: auto}
.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: 1.125rem; padding: 0.75rem 2rem}

/* form */
.theme-form .fieldset {border-collapse: collapse; border-style: hidden; display: table; margin: 1rem 0; table-layout: fixed; width: 100%}
.theme-form .fieldset .field {border: 1rem solid transparent; display: table-cell}

/* 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: 1.125rem; padding: 0; text-align: left}
#top_searchform {display: inline-block; margin: 0 0 0 2rem}
#top_searchform .fieldset {position: relative}
#top_searchfield {background-color: var(--field); border: 2px solid var(--brand); border-radius: 10rem; box-sizing: content-box; font-size: 1rem; height: 1rem; padding: 0.67rem 3rem 0.67rem 1rem; width: 10rem}
#top_searchform .field.submit {height: 100%; position: absolute; right: 0; top: 0}
#top_searchform .field.submit input {background-color: transparent; border: none; cursor: pointer; font-size: 2rem; height: 100%; width: 3rem}
#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 .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 .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}
.pagehead {font-size: 3.5rem; line-height: 0.85}
#hero .pagehead {font-size: 6.875rem}
.pagehead_copy {font-size: 1.5rem; width: 55%}

/* sections */
.section_heading {font-size: 3.5rem}
.section_heading.big {font-size: 4.6875rem}
.section_subheading {font-size: 2.125rem}
.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 .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}
.imgholder.composted, .imgholder.img, .imgholder .img {padding-bottom: 0}
.imgholder.composted .img_fg {top: 2rem}
.imgholder.composted .img_bg {bottom: 4rem; left: 6rem}
.rev .imgholder.composted .img_bg {right: 6rem}
/*
.d-tbl.popout {height: 1rem}
.d-tbl.popout .imgholder {height: 100%}
.d-tbl.popout .imgholder .img {background-size: contain; height: calc(100% + 3rem); margin-top: -3rem}
*/

/*boxes*/
/*
.boxes {
  display: flex;
  align-items: first baseline;
  justify-content: space-between;
  gap: 2rem;
  flex-wrap: wrap;
}
*/
.boxes {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	grid-template-rows: auto;
	gap: 2rem;
}
.box {
	display: grid;
  margin: 0;
  grid-template-columns: subgrid;
}
.boximg {
  max-width: 100%;
}

/*form*/
.formBG_wrap_bg {vertical-align: bottom}

/*main content*/
#main_content {padding: 4rem 0}
#main_content.enhanced .container {padding: 0 1rem}
#main_content_form {width: 460px}
#topform {box-shadow: 0.25rem 0.25rem 0.25rem #00000040; margin-top: -16rem; padding: 1rem 3rem}
#topform .form_heading {font-size: 2.375rem}
#main_content_content {padding: 0 0 1rem 0}
.home_promo_copy {font-size: 1.25rem}

/*program info*/

.program_info_copy:has(.imgholder) {
  height: 1rem;
}
.program_info_copy .imgholder {
  height: 100%;
}
.program_info_copy .imgholder .img {
  height: calc(100% + 8rem);
  margin-top: -8rem;
  border-radius: 1rem;
  background-size: cover;
}
.program_info_copy:has(.imgholder) .copyholder {
  padding-bottom: 4rem;
}
.program_info_copy:has(.imgholder) + .program_info_data {
  display: table;
  table-layout: fixed;
  width: 100%;
  border-style: hidden;
  border-collapse: collapse;
  margin-top: -4rem;
}
.program_info_copy:has(.imgholder) + .program_info_data .program_info_data_stats, .program_info_copy:has(.imgholder) + .program_info_data .program_info_data_buttons {
  display: table-cell;
  border: 4rem solid transparent;
  vertical-align: top;
}
.program_info_copy:has(.imgholder) + .program_info_data .program_info_data_stats:not([aria-hidden]) {
  padding-top: 5rem;
}

/*row*/
.sub_section_row .section_subheading {margin: 2rem 0 1.5rem}
.sub_section_row .buttonholder {margin-top: 2rem}
.row .d-tbl_cell {border-width: 4rem}

/*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}

/*testimonial*/
.testimonial.d-tbl {height: 1rem}
.testimonial.d-tbl .imgholder, .testimonial.d-tbl .imgholder .img {height: 100%}
.testimonial.d-tbl .imgholder {padding-top: 2rem}
.testimonial.d-tbl.popout .imgholder {padding-top: 0}
.testimonial.d-tbl.popout .imgholder .img {height: calc(100% + 3rem); margin-top: -3rem}
.testimonial_content {font-size: 2rem}

/* 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}
