/* vars */
:root {
	--container-width: 1280px;
	--hero-form-width: 400px;
	--section-width: 1980px;
}

body.menu_open{overflow: auto}
h1 {font-size: var(--h1)}
h2 {font-size: var(--h2)}
h3 {font-size: var(--h3)}
h4 {font-size: var(--h4)}
h5 {font-size: var(--h5)}
h6 {font-size: var(--h6)}
img.alignleft {float: left; margin: 0 1rem 1rem 0}
img.alignright {float: right; margin: 0 0 1rem 1rem}
.d-sr-only{border:0; clip:rect(0, 0, 0, 0); height:1px; overflow:hidden; padding:0; position:absolute; white-space:nowrap; width:1px}
.m-sr-only{clip:auto; height:auto; overflow:visible; position:static; white-space:normal; width: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: 4rem solid transparent; direction: ltr; display: table-cell; vertical-align: top}
.cols, .cols3, .cols4 {column-gap: 2rem}
.cols {column-count: 2}
.cols3 {column-count: 3}
.cols4 {column-count: 4}


/* Form */
.theme-form .field {margin: 0 0 1rem 0}
.theme-form .fieldset {border-collapse: collapse; border-style: hidden; display: table; margin: 0 0 1rem 0; table-layout: fixed; width: 100%}
.theme-form .fieldset .field {border: 1rem solid transparent; display: table-cell; vertical-align: top}

/* Header */
#header_logo_menu_bar {align-items: start; margin-bottom: -2rem}
#header_links_menu {align-items: center; display: flex; gap: 1rem; list-style: none; margin: 0;}
#header_links_menu li {margin: 0}
#header_links_menu .phone {font-weight: bold; font-size: 1.125rem}
#header_links_search a, #header_links_chat a, #header_links_contact a {color: var(--txt2); display: block; height: 2rem; line-height: 2rem}
#header_links_search a:hover, #header_links_contact a:hover {text-decoration: none}
#header_links_search a {background-color: var(--bg2); font-size: 1.5rem; padding: 0 0.25rem; text-align: center; width: 1.75rem}
#header_links_chat a {background-color: var(--bg2); padding: 0 1rem}
#header_links_contact a {background-color: var(--bg4); padding: 0 1rem}

/*menu*/
#main_menu_wrap {padding-left: 200px; position: relative}
#main_menu_overlay, body.menu_open #main_menu_overlay {background-color: transparent; position: static}
#main_menu_inner, body.js #main_menu_inner, body.menu_open #main_menu_inner {background-color: transparent; clip:auto; height:auto; max-width: none; overflow:visible; position:static; white-space:normal; width:auto}
#main_menu_close, body.js #main_menu_close {display: none}
#main_menu .menu {display: flex; justify-content: flex-end}
#main_menu .menu > .menu-item > a {font-size: var(--h7); position: relative}
#main_menu .menu > .menu-item:last-child > a {padding-right: 0}
#main_menu .menu > .menu-item.menu-item-has-children > a:hover {background-color: var(--bg4); color: var(--txt2)}
#main_menu > ul > li.menu-item-has-children > .sub-menu {border:0; clip:rect(0, 0, 0, 0); height:1px; overflow:hidden; padding:0; position:absolute; white-space:nowrap; width:1px}
#main_menu > ul > li.menu-item-has-children:hover > .sub-menu, #main_menu > ul > li.menu-item-has-children.open > .sub-menu {background-color: var(--menu); box-shadow: 0 0.25rem 0.25rem var(--bg5); clip:auto; height:auto; left: 0; overflow:visible; padding: 2rem 1rem; position: absolute; right: 0; top: 100%; white-space:normal; width: auto}
#main_menu > ul > li.menu-item-has-children:hover > a, #main_menu > ul > li.menu-item-has-children > a {position: relative}
#main_menu > ul > li.menu-item-has-children:hover > a::before {bottom: 0; content: ''; left: -1rem; position: absolute; right: -1rem; top: 0}
#main_menu > ul > li > .sub-menu > li {display: flex; width: 100%}
#main_menu > ul > li > .sub-menu > li > a {flex-shrink: 0}
#main_menu > ul > li > .sub-menu > li > .sub-menu {display: flex; flex-grow: 1; flex-wrap: wrap; justify-content: space-evenly; margin: 0 auto}
#main_menu > ul > li > .sub-menu > li > .sub-menu:has(> li:nth-child(7)) {justify-content: flex-start}
#main_menu > ul > li > .sub-menu > li > .sub-menu:has(> li:nth-child(7)) > li {flex-basis: 25%}
#main_menu .sub-menu .menu-item a:hover {background-color: var(--bg2); color: var(--txt2)}

/* Hero */
#hero_copy, #hero_form {border: none}
#hero_copy .copy {margin: 0 auto; max-width: var(--container-width); padding: 5rem 1rem}
#hero_form {box-sizing: border-box; padding: 1rem 2rem; width: var(--hero-form-width); vertical-align:middle}
#hero_wrap:has(#hero_form) #hero_copy {padding: 0 2rem 2rem calc(50% - var(--container-width) / 2 - 1rem); vertical-align:bottom}
#hero_wrap:has(#hero_form) #hero_copy .copy {padding: 0 0 0 1rem}
#home_hero {background: linear-gradient(to right, var(--bg2) 0%, var(--bg2) 50%, transparent 50%, transparent 100%); margin: 0 0 4rem 0; max-width: none}
#home_hero .outer-container {background-size: cover; margin: 0 auto; max-width: var(--section-width); position: relative}
#home_hero .outer-container::before {background-size: cover;bottom: 0; content: ''; left: calc(50% - var(--section-width) / 2 + 24rem); position: absolute; right: 0; top: 0; z-index: 0}
#home_hero .container {padding: 0 1rem}
#home_hero_wrap {position: relative}
#home_hero_copy, #home_hero_form {border: none}
#home_hero_copy {background-color: transparent; padding: 2rem 2rem 2rem 4rem; position: relative; vertical-align:bottom}
#home_hero_copy:before {background-color: var(--bg2); content: ''; height: 100%; left: -1rem; position: absolute; top: 0; width: 2rem}
#home_hero_form {box-sizing: border-box; color: var(--txt2); padding: 1rem 2rem; transform: translateY(4rem); vertical-align:middle; width: var(--hero-form-width)}

/* Sections */
section {margin: 0 auto; max-width: var(--section-width)}
.dt_align_center {text-align: center}
/*common-elements*/
.ux_nav_holder {width: 280px}
/*cta*/
.section.hasBG .sub_section:first-child .cta:not(:has(imgholder)) {margin: 16rem 0 0 auto; width: 50%}
.cta .copyholder, .cta .imgholder {border: none}
.cta .copyholder {padding: 0 4rem 0 0; vertical-align:bottom}
.cta.rev .copyholder {padding: 0 0 0 4rem}
.cta:not(:has(.imgholder)) .copyholder {padding: 0}
.sub_section_cta:not(.sub_type_map) .cta:has(.imgholder) .copyholder {padding-top: 8rem}
.cta .buttonholder {margin-bottom: -1rem}
.cta .imgholder {padding: 0; width: 40%}
body.home .cta .imgholder {width: var(--hero-form-width)}
/*double cta*/
.sub_section_cta_double .ctas {height: 1px}
.sub_section_cta_double .cta {height: 100%}
.sub_section_cta_double .cta_wrap {display: flex; flex-direction: column; height: 100%}
.sub_section_cta_double .cta_wrap .copy {flex-grow: 1}
/*form*/
.sub_section.sub_section_form:not(:has(.copyholder)) .container {max-width: calc(var(--container-width) / 3 * 2)}
.sub_section_form .copyholder {width: calc(100% / 3)}
/*gallery*/
.img_gallery {display: flex; flex-wrap: wrap; gap: 1rem; justify-content: space-evenly}
.img_gallery img {display: block; margin: 0; object-fit: contain; width: calc(25% - 3rem / 4)}
/*gallery - video */
.vid_gallery {display: flex; flex-wrap: wrap; gap: 2rem; justify-content: center}
.vid_gallery .videoholder {margin: 0; width: calc(50% - 1rem)}
/*image blocks cta*/
.imgblocks_heading {margin: 1rem auto; width: max-content}
.imgblocks {display: flex; flex-wrap: wrap; gap: 2rem}
.imgblock {box-sizing: border-box; padding: 2rem; width: calc(100% / 3 - 4rem / 3)}
.imgblock .heading {max-width: calc(100% - 4rem)}
.sub_section_imageblock_cta .container:not(:has(.imgblocks .imgblock:nth-child(3))) {display: flex}
.sub_section_imageblock_cta .container:not(:has(.imgblocks .imgblock:nth-child(3))) .imgblocks {flex-basis: calc(100% / 3 * 2); flex-shrink: 0; margin-right: 4rem; order: 1}
.sub_section_imageblock_cta .container:not(:has(.imgblocks .imgblock:nth-child(3))) .imgblocks_heading {flex-shrink: 1; order: 2}
.sub_section_imageblock_cta .container:not(:has(.imgblocks .imgblock:nth-child(3))) .imgblock {width: calc(50% - 1rem)}
/*image info block*/
.image_info_blocks {display: flex; flex-wrap: wrap}
.image_info_block_copy {box-sizing: border-box; flex-basis: 40%; flex-grow: 1; margin: 0; padding: 0 2rem 0 0}
.image_info_block_copy > :first-child {margin-top:0}
.image_info_block_copy > :first-child {margin-top: 0}
.image_info_block_text, .image_info_block_image {flex-basis: 20%}
.image_info_block_text {aspect-ratio: auto}
.image_info_block_image {aspect-ratio: auto; min-height: calc(var(--container-width) / 5)}
.image_info_block_image:last-child {aspect-ratio: auto; flex-basis: 60%; flex-grow: 1}
.image_info_block:nth-child(1) {order: 1}
.image_info_block:nth-child(2) {order: 2}
.image_info_block:nth-child(3) {order: 3}
.image_info_block:nth-child(4) {order: 6}
.image_info_block:nth-child(5) {order: 7}
.image_info_block:nth-child(6) {order: 4}
.image_info_block:nth-child(7) {order: 5}
/*image/video info*/
.sub_section_img_vid_info .imgholder:not(:has(.videowrapper)) {background-clip: padding-box; padding-bottom: 20rem}
.sub_section_img_vid_info:has(.imgholder) .copyholder {width: 37.5%}
/*multi-cta*/
.sub_section_multicta .heading {max-width: calc(var(--container-width) * 0.6667)}
.multicta {height: 1px}
.multicta .imgholder:not(:has(.videowrapper)) {background-clip: padding-box; height: auto; padding: 0 0 24rem 0}
.multicta:not(:has(.copyholder)) .imgholder:not(:has(.videowrapper)) {padding: 0 0 32rem 0}
.multicta .copyholder {height: 100%; width: 30%}
.multicta .copy {display: flex; flex-direction: column; height: 100%; justify-content: space-between}
.multicta_cta:last-child > :last-child {margin-bottom: 0}
.multicta:not(:has(.imgholder)) .copy {flex-direction: row; gap: 2rem; justify-content: center; height: auto}
.multicta:not(:has(.imgholder)) .multicta_cta {flex-grow: 1; max-width: 25%}
/*row*/
.row:has(.copyholder) .imgholder {width: 40%}
.row .img {aspect-ratio: auto; background-clip: padding-box; padding-bottom: 24rem}
/*tabs*/
.tab_nav_top .tab_nav_links {border: none; display: table; width: 100%}
.tab_nav_top .tab_nav_links li {border-bottom: 2px solid; border-left: none; border-right: none; border-top: none; display: table-cell; vertical-align: bottom}
.tab_nav_top .tab_nav_links a {text-align: center}
/*testimonial carousel*/
.testimonial_head_nav {padding-bottom: 4rem; position: relative; width: 25%}
.sub_section_testimonials .heading {margin: 0}
.testimonial_head_nav .swiper-nav {bottom: 0; margin: 0; position: absolute; right: 0}
.sub_section_testimonials .swiper-nav .swiper-nav-button {font-size: 1.5rem; height: 1rem; line-height: 0.55; padding: 0.5rem; width: 1rem}
.testimonial-carousel_slide_wrap .imgholder {background-clip: padding-box; padding-bottom: 32rem; width: 40%}
.testimonial_name {margin: 0}
.sub_section_testimonials .buttonholder .button {max-width: 50%}
/*two-column*/
.cols .heading_col {border: 6rem solid transparent; width: 20%}

/* Page Templates */
/*all-programs*/
.programs_program:first-child {margin-top: 0}
.programs_program:last-child {margin-bottom: 0}
.program_program_img.imgblock, .programs_program .copyholder {border: none}
.program_program_img.imgblock {box-sizing: content-box; display: table-cell; height: 300px; vertical-align: bottom; width: 300px}
.programs_program .copyholder {padding: 1rem 2rem; vertical-align: middle}
.programs_program .heading {font-size: var(--h5)}
/*blog*/
.posts {display: flex; flex-wrap: wrap; gap: 2rem}
.posts .post {margin: 0; padding-bottom: 3rem; position: relative; width: calc(100% / 3 - 4rem / 3)}
.posts .post_link {bottom: 1rem; left: 1rem; margin: 0; position: absolute; right: 1rem}
.paginationwrap .page-numbers {font-size: 1.25rem; padding: 0.125rem}
.firstpost_wrap {display: flex; gap: 2rem; margin: 2rem 0}
.firstpost_wrap .post_link {position: static}
.firstpost_wrap .post {margin: 0}
.firstpost_wrap > .post {position: relative; width: calc(100% / 3 * 2 - 4rem / 6)}
.firstpost_wrap > .post .post_img {height: 100%; padding: 0; width: 100%}
.firstpost_wrap > .post .post_copy_wrap {background-color: var(--bg2); color: var(--txt2); bottom: 0; left: 0; position: absolute; width: 60%}
.nextposts {display: inline-flex; flex-direction: column; gap: 2rem; width: calc(100% / 3 - 4rem / 3)}
/*single*/
.singlepost_img {float: right; margin: 0 0 2rem 2rem; max-width: none; min-width: 360px; width: 30%}