:root {
    --primaryColor: #00B8A8;
    --secondaryColor: #E6E97E;
    --gradientTeal: #00BDE4;
    --gradient: linear-gradient(-135deg, var(--gradientTeal) , var(--secondaryColor));
}

body, html {
    font-size: clamp(14px, calc(14px + (2 * ((100vw - 320px) / 1120))), 16px);
    font-family: "DM Sans", sans-serif;
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
    line-height: 1.4;
    color: black;
    max-width: 100vw !important;
    overflow-x: hidden !important;
}

.px-6 {
    padding-inline: 7.5rem;
}

.sectionHead {
    font-size: 2rem;
    line-height: 1.2;
    font-weight: 700;
    margin-bottom: 1rem;
}

.siteBtn {
    background-color: var(--primaryColor) !important;
    border: none !important;
    outline: none !important;
    box-shadow: none !important;
    color: white;
    position: relative;
    z-index: 1;
    border-radius: 5rem;
    overflow: hidden;
    font-size: 1rem;
    line-height: 1;
    font-weight: 700;
    padding: 0.625em 1.25em;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    height: 2.8125rem;
    max-width: 10rem;
    transition: color 0.3s ease-in-out;
}

.siteBtn_alt {
    background: transparent !important;
    color: var(--primaryColor);
}

.siteBtn:hover {
    color: black;
}

.siteBtn span {
    position: relative;
    z-index: 3;
    display: inline-block;
}

.siteBtn::after {
    position: absolute;
    content: "";
    z-index: 2;
    inset: -2px;
    background-image: var(--gradient);
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
    opacity: 0;
    transition: opacity 0.3s ease-in-out;
}

.siteBtn_alt::before {
    position: absolute;
    content: "";
    z-index: 1;
    inset: 0;
    border: 2px solid var(--primaryColor);
    border-radius: 4rem;
}

.siteBtn:hover::after {
    opacity: 1;
}

.siteHeader {
    padding-block: 1.75rem;
    background: white;
}

.fixedHeader {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 999;
    padding-block: 0.75rem;
    background: white;
    transform: translateY(-200%);
    box-shadow: rgba(99, 99, 99, 0.2) 0px 2px 8px 0px;
    transition: transform 0.3s ease-in-out;
}

.fixedHeader.show {
    transform: translateY(0%);
}

.siteLogo {
    width: 9.375rem;
}

.siteBanner .px-6 {
    padding-inline: 2rem;
}

.siteBanner_Content {
    position: relative;
    z-index: 1;
}

.siteBanner .splide {
    position: relative;
    z-index: 1;
}

.splide .splide__pagination {
    position: static;
    margin-top: 0.75rem;
}

.splide .splide__pagination .splide__pagination__page {
    background: #ACAAAA;
}

.splide .splide__pagination .splide__pagination__page.is-active {
    background: #646464;
}

.siteBanner .splide img {
    aspect-ratio: 1920/1080;
    width: 100%;
    object-position: left bottom;
    object-fit: cover;
}

.siteBanner_Card {
    padding: 1.75rem;
    width: 24.25rem;
    background-image: var(--gradient);
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
    position: absolute;
    top: 5.5rem;
    right: 5.5rem;
    z-index: 2;
}

.siteBanner_Card h1 {
    font-size: 2.25rem;
    font-weight: 700;
    line-height: 1.15;
    margin-bottom: 0.75rem;
}

.siteBanner_Card p {
    padding-right: 10%;
    font-size: 1.45rem;
}

.breakthrough_content {
    width: 17.95rem;
}

.breakthrough, 
.location,
.infographics,
.future {
    padding-top: 4.5rem;
}

.cards {
    padding-block: 4.5rem;
}

.breakthrough_wrap {
    column-gap: 5rem;
}

.iconBox {
    display: flex;
    flex-direction: column;
    align-items: start;
    gap: 0.75rem;
}

.iconBox_image {
    background: var(--primaryColor);
    border-radius: 50%;
    width: 3.75rem;
    height: 3.75rem;
    position: relative;
    z-index: 1;
    overflow: hidden;
}

.iconBox_image::after {
    position: absolute;
    inset: -2px;
    background-image: var(--gradient);
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    z-index: 1;
    content: '';
    opacity: 0;
    transition: opacity 0.3s ease-in-out;
}

.iconBox_image svg {
    height: 100%;
    width: 100%;
    position: relative;
    z-index: 2;
}

.iconBox_image path {
    fill: white;
    transition: fill 0.3s ease-in-out;
}

.iconBox:hover .iconBox_image::after {
    opacity: 1;
}

.iconBox:hover .iconBox_image path {
    fill: black;
}

.iconBox h4 {
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.2;
    margin: 0;
}

.cards .d-flex {
    gap: 1rem;
}

.flipCard {
   width: 16.375rem;
   height: 16.375rem;
   position: relative;
   transform-style: preserve-3d;
   transition: 1s ease;
}

.flipCard.hover {
   transform: rotateY(180deg);
}

.flipCard_front,
.flipCard_back {
   position: absolute;
   height: 100%;
   width: 100%;
   backface-visibility: hidden;
   font-family: sans-serif;
   text-align: center;
   display: flex;
   flex-direction: column;
   justify-content: center;
   align-items: center;
}

.flipCard_front {
   background-color: #B43393;
}

.flipCard_back {
   background-color: #E6E97E;
   transform: rotateY(180deg);
}

.flipCard_back p {
    padding-inline: 15%;
}

.flipCard_front img {
    width: 3.5rem;
    height: 3.5rem;
    object-fit: contain;
    object-position: center;
}

.flipCard_front img.filpArrow {
    margin-top: 1.5rem;
    height: auto;
}

.location_content {
    max-width: 51.125rem;
    margin: 0 auto;
}

.space {
    background-color: black;
    background-image: url(assets/images/bg-01.png);
    background-image: url(assets/images/bg-01.webp);
    background-position: center center;
    background-repeat: no-repeat;
    background-size: cover;
    padding-block: 5rem;
}

.spaceHead {
    font-size: 1.5rem;
    line-height: 1.2;
    font-weight: 700;
}

.spaceCard p {
    font-size: 0.875rem;
}

.spaceCard picture {
    display: inline-block;
}

.spaceCard {
    position: relative;
    z-index: 1;
    flex-grow: 1;
}

.spaceCard * {
    position: relative;
    z-index: 3;
}

.spaceCard::after {
    position: absolute;
    z-index: 1;
    inset: -2px;
    content: "";
    background-image: var(--gradient);
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    opacity: 0;
    transition: opacity 0.3s ease-in-out;
}

.spaceCard::before {
    position: absolute;
    z-index: 2;
    inset: 0;
    content: "";
    background: black;
    opacity: 0;
    transition: opacity 0.05s 0.3s ease-in-out;
}

.spaceCard:hover::after {
    opacity: 1;
}

.spaceCard:hover::before {
    opacity: 1;
    transition: opacity 0.1s ease-in-out;
}

.spaceCard_point {
    min-width: 15rem;
}

.future picture {
    display: block;
}

.future .splide {
    max-width: 51.25rem;
    margin: 0 auto;
    width: 100%;
}

.future .splide__track {
    position: relative;
    box-shadow: rgba(50, 50, 93, 0.15) 0px 13px 27px -5px, rgba(0, 0, 0, 0.15) 0px 8px 16px -8px;
}

.future .splide__track::after {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 1.2rem;
    content: "";
    background-image: var(--gradient);
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
}

.future .splide img {
    width: 100%;
}

.contact {
    padding-block: 5rem;
}

.contactCard {
    box-shadow: rgba(50, 50, 93, 0.15) 0px 13px 27px -5px, rgba(0, 0, 0, 0.15) 0px 8px 16px -8px;
    background: white;
}

.contactCard_side {
    height: 100%;
    background-color: var(--secondaryColor);
    background-image: url(assets/images/bg-02.png);
    background-image: url(assets/images/bg-02.webp);
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    padding: 2rem;
    display: flex;
    align-items: flex-end;
}

.form_card .contactCard_side {
    background-color: var(--secondaryColor);
    background-image: url(assets/images/bg-02.png);
    background-image: url(assets/images/bg-02.webp);
}

.response_card .contactCard_side,
.error_card .contactCard_side {
    background-color: var(--gradientTeal);
    background-image: url(assets/images/bg-04.png);
    background-image: url(assets/images/bg-04.webp);
}

.siteBtn.download {
    max-width: 15rem;
}

.contactCard_form {
    padding: 3rem 4rem;
}

.contactCard_form form {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.form-group {
    position: relative;
}

.form-group label {
    display: inline-block;
    font-size: 0.8125rem;
    line-height: 1;
    color: #434343;
}

.form-group .form-control {
    border: 1px solid #9D9D9D;
    outline: none !important;
    box-shadow: none !important;
    background-color: #F0F0F0;
    height: 3.25rem;
}

.form-group .form-control:hover,
.form-group .form-control:active,
.form-group .form-control:focus {
    border-color: var(--primaryColor);
}

.form-group .parsley-errors-list {
    padding: 0;
    margin: 0;
    font-size: 12px;
    position: absolute;
    bottom: 6px;
    right: 6px;
    z-index: 3;
    pointer-events: none;
    max-width: 100%;
}

.countySelector {
    width: 6rem;
    appearance: none;
    background-image: url(assets/images/down.svg);
    background-repeat: no-repeat;
    background-position: right center;
    background-size: 2rem;
}

.siteFooter {
    background: #EDEDED;
    padding-block: 4rem;
}

.siteFooter p {
    font-size: 0.8125rem;
}

.siteFooter p span {
    font-weight: 700;
}

.map_placeholder {
    width: 20rem;
    border: 1px solid white;
}

.footer_col_1 {
    width: 13rem;
}

.footer_col_2 {
    width: 15rem;
}

.siteFooter h6 {
    font-size: 1rem;
    font-weight: 700;
}

.socialLinks {
    display: flex;
    padding: 0;
    margin: 0;
    list-style-type: none;
    gap: 0.5rem;
}

.socialLinks img {
    width: 1.75rem;
}

.infographics img {
    max-width: 51.125rem;
}

.infographics p {
    width: 100%;
    font-size: 0.75rem;
}

.facilities {
    background-color: var(--gradientTeal);
    background-image: url(assets/images/bg-03.png);
    background-image: url(assets/images/bg-03.webp);
    background-position: center bottom;
    background-repeat: no-repeat;
    background-size: cover;
    padding-block: 5rem;
    min-height: 75rem;
}

.facilities ul {
    max-width: 51.25rem;
    width: 100%;
    border-top: 1px solid black;
}

.facilities ul li {
    border-bottom: 1px solid black;
    padding: 1.5rem 1rem;
    height: 4rem;
    overflow: hidden;
    position: relative;
    z-index: 1;
    transition: height 0.3s ease-in-out;
}

.facilities ul li:hover {
    height: 9rem;
}

.facilities ul li::after,
.facilities ul li::before {
    position: absolute;
    content: "";
    width: 1.5rem;
    height: 2px;
    background: black;
    right: 1rem;
    top: 50%;
    transform-origin: center;
    transform: translateY(-50%) rotate(0);
    transition: transform 0.3s ease-in-out;
}

.facilities ul li::before {
    transform: translateY(-50%) rotate(90deg);
}

.facilities ul li:hover::after,
.facilities ul li:hover::before {
    transform: translateY(-50%) rotate(360deg);
}

.fac_head {
    font-size: 1.25rem;
    font-weight: 700;
    width: 16rem;
}

.fac_content {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 1rem;
    flex-grow: 1;
    transform: translateX(25%);
    opacity: 0;
    transition: transform 0.3s ease-in-out, opacity 0.3s ease-in-out;
}

.facilities ul li:hover .fac_content {
    transform: translateX(0);
    opacity: 1;
}

.fac_content .fac_icon {
    width: 3.75rem;
    height: 3.75rem;
    background: var(--primaryColor);
    border-radius: 50%;
    position: relative;
    overflow: hidden;
}

.fac_content .fac_icon::after {
    position: absolute;
    content: "";
    inset: -2px;
    background-image: var(--gradient);
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    opacity: 0;
    transition: opacity 0.3s ease-in-out;
}

.fac_content .fac_icon:hover::after {
    opacity: 1;
}

.fac_icon svg {
    width: 100%;
    height: 100%;
    position: relative;
    z-index: 1;
    fill: white;
    transition: fill 0.3s ease-in-out;
}

.fac_icon svg path {
    fill: white;
    transition: fill 0.3s ease-in-out;
}

.fac_icon:hover svg path {
    fill: black;
}

.fac_content p {
    width: 1px;
    flex-grow: 1;
    padding-right: 2rem;
}

.contactCard_side {
    min-height: 32rem;
}

.loader {
  width: 1.2rem;
  aspect-ratio: 4;
  background: radial-gradient(circle closest-side,#fff 90%,#fff0) 0/calc(100%/3) 100% space;
  clip-path: inset(0 100% 0 0);
  animation: l1 1s steps(4) infinite;
}
@keyframes l1 {to{clip-path: inset(0 -34% 0 0)}}

.submitBtn {
    max-width: 10rem;
}

.siteBtn.disabled {
    pointer-events: none;
    color: white;
    opacity: 1;
}

.right {
    display: inline-block;
    position: relative;
    z-index: 1;
    vertical-align: middle;
}

.right::after {
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%) translateX(50%);
    width: 2rem;
    height: 2rem;
    background-image: url(assets/images/right.svg);
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    content: "";
}

input.parsley-success, select.parsley-success, textarea.parsley-success {
    color: var(--primaryColor) !important;
    background: #00B8A80a !important;
    border-color: var(--primaryColor) !important;
}