/* ================================== *//* ================================== *//* ================================== */
/*             STYLE.CSS              *//* ================================== *//* ================================== */
/*          Core Stylesheet           *//* ================================== *//* ================================== */
/* ================================== *//* ================================== *//* ================================== */



/* ================================== *//* ================================== */
/* == Default styling =============== *//* ================================== */
/* ================================== *//* ================================== */


*, *::before, *::after {
	padding: 0;
	margin: 0;
	box-sizing: border-box;
	list-style: none;
	list-style-type: none;
	text-decoration: none;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

html {
   font-size: 100%;
	box-sizing: inherit;
	scroll-behavior: smooth;
}

body {
   font-family: var(--primary-font);
   font-size: clamp(1rem, 2vw, 1.125rem);
   font-weight: 400;
   line-height: 1.5;
   color: var(--color-light-100);
   background-color: var(--color-dark-500);
}

main, section {
   overflow: hidden;
}

a, button {
   cursor: pointer;
   user-select: none;
   white-space: nowrap;
   border: none;
   outline: none;
   color: inherit;
   background: unset;
   transition: all 0.3s ease;
}

h1, h2, h3, h4, h5 {
   font-family: inherit;
   line-height: 1.25;
   text-wrap: balance;
   word-wrap: break-word;
}

p, li {
   font-family: inherit;
   line-height: 1.5;
   text-wrap: pretty;
   word-wrap: break-word;
}

img, svg, picture {
   max-width: 100%;
   height: auto;
   vertical-align: middle;
   object-fit: cover;
   background-size: cover;
   background-repeat: no-repeat;
}

::selection {
  background: var(--color-primary-100); 
  color: var(--color-light-100);         
}

strong {
   font-weight: 700;
}


/* ================================== *//* ================================== */
/* == Header, Navbar and Hero ======= *//* ================================== */
/* ================================== *//* ================================== */


.header {
   position: fixed;
   height: auto;
   width: 97.5%;
   top: 1.5rem;
   left: 0;
   right: 0;
   margin: 0 auto;
   z-index: 100;
   color: var(--color-light-100);
   background: rgba(73, 73, 73, 0.35); 
   border-radius: 0.5rem;
   transition: all 0.3s ease-in-out;
}

.header::after {
   content: "";
   position: absolute;
   inset: 0;
   z-index: -1;
   backdrop-filter: blur(20px);
   -webkit-backdrop-filter: blur(20px);
   border-radius: 0.5rem;
}

@media screen and (min-width: 70rem) {
   .header {
      width: 100%;
      background-color: transparent;
      box-shadow: unset;
      border-radius: unset;
   }

   .header.on-scroll {
      background-color: var(--color-light-100); color: var(--color-dark-100);
      box-shadow: var(--shadow-blur);
      top: 0;
   }

   .header.on-scroll .brand {
      filter: invert(1);
   }

   .header::after {
      content: "";
      display: none;
      backdrop-filter: unset;
      -webkit-backdrop-filter: unset;
      border-radius: unset;
   }
}

.navbar {
   display: flex;
   flex-direction: row;
   align-items: center;
   justify-content: center;
   column-gap: 1.25rem;
   width: 100%;
   height: 4rem;
   margin-inline: auto;
}

.navbar.container {
   padding: 1rem;
   max-width: 110rem;
   justify-content: center;
}

.navbar .btn {
   font-weight: 700;
   margin-left: auto; margin-right: 0;
}

.brand {
   font-family: inherit;
   font-size: 1.5rem;
   font-weight: 600;
   line-height: 1.5;
   text-transform: uppercase;
   color: inherit;
   transition: all 0.15s ease;
   margin-right: auto; margin-left: 0; padding: 0;
   width: 210px;
}

.brand img {
   width: 100%;
}

@media screen and (min-width: 70rem) {
   .brand {
      margin-right: unset;
   }
}

.menu {
   position: fixed;
   top: -100%;
   left: 0;
   right: 0;
   margin: auto;
   padding: 1.25rem 1.25rem 3rem 1.25rem;
   width: 97.5%;
   height: auto;
   overflow: hidden;
   box-shadow: var(--shadow-small);
   transition: all .2s ease-out .1s, top 0s ease;
   color: inherit;
   background: rgba(73, 73, 73, 0.35); 
   backdrop-filter: blur(20px);
   -webkit-backdrop-filter: blur(20px);
   border-radius: .5rem;
   opacity: 0;
}

.menu.is-active {
   opacity: 1;
   top: 6rem;
}

.menu-inner {
   display: flex;
   flex-direction: column;
   justify-content: center;
   align-items: flex-start;
   row-gap: .75rem;
}

.menu-link {
   position: relative;
   font-family: inherit;
   font-size: 1.15rem;
   font-weight: 600;
   line-height: 1.3;
   color: inherit;
   transition: all 0.15s ease;
   width: 100%;
}

.menu-seperation {
   position: relative;
	background-color: rgba(var(--color-light-100-raw), 0.1);
	height: 1px;
	width: 100%;
}

.menu-link:hover {
   opacity: 0.7;
   text-transform: capitalize;
}

.menu-block {
   margin-left: auto;
}

@media screen and (min-width: 70rem) {
   .menu {
      position: relative;
      top: initial;
      width: auto;
      padding: 0;
      margin: auto;
      background: unset;
      box-shadow: unset;
      transition: unset;
      backdrop-filter: unset;
      -webkit-backdrop-filter: unset;
      opacity: 1;
	}

   .menu-inner {
      display: flex;
      flex-direction: row;
      column-gap: 2.75rem;
      margin-inline: auto;
	}

	.menu-block {
		margin-left: unset;
	}
}

.burger {
   cursor: pointer;
   position: relative;
   display: block;
   order: 1;
   z-index: 10;
   width: 1.5rem;
   height: 1rem;
   user-select: none;
   visibility: visible;
}

@media screen and (min-width: 70rem) {
   .burger {
      display: none;
      visibility: hidden;
	}
}

.burger-line {
   position: absolute;
   display: block;
   left: 0;
   opacity: 1;
   width: 100%;
   height: 2px;
   background-color: currentColor;
   transition: all 0.25s ease;
}

.burger-line:nth-child(1) {
   top: 0px;
}

.burger-line:nth-child(2) {
   top: 0.5rem;
   width: 70%;
}

.burger-line:nth-child(3) {
   top: 1rem;
}

.burger.is-active .burger-line:nth-child(1) {
   top: 0.5rem;
   transform: rotate(135deg);
}

.burger.is-active .burger-line:nth-child(2) {
   left: -1rem;
   opacity: 0;
}

.burger.is-active .burger-line:nth-child(3) {
   top: 0.5rem;
   transform: rotate(-135deg);
}


/* ================================== *//* ================================== */
/* == Cookie banner ================= *//* ================================== */
/* ================================== *//* ================================== */


.cookie-alert {
   position: fixed;
   bottom: 1rem;
   right: -100%; 
   max-width: 600px;
   width: 100%;
   border-radius: 8px;
   padding: 15px 25px 22px;
   transition: right 0.6s ease;
   box-shadow: var(--shadow-super);
   z-index: 9999;
}

.cookie-alert.show {
   right: 1rem;
}

.cookie-alert header {
   display: flex;
   align-items: center;
   column-gap: 15px;
}

header i {
   color: var(--color-primary-100);
   font-size: 32px;
}

header h2 {
   color: var(--color-primary-100);
   font-weight: 600;
   font-size: 1.35rem;
}

.cookie-alert .data {
   margin-top: 16px;
}

.cookie-alert .data p {
   font-size: 1rem;
   font-weight: 400
}

.cookie-alert.dark-bg .data p {
   color: var(--color-light-100);
}

.cookie-alert.light-bg .data p {
   color: var(--color-dark-100);
}

.data p a {
   color: var(--color-primary-100);
   text-decoration: none;
}

.data p a:hover {
   text-decoration: underline;
}

.cookie-alert .buttons {
   margin-top: 16px;
   width: 100%;
   display: flex;
   align-items: center;
   justify-content: space-between;
}

.buttons .button {
   padding: 9px 0;
   width: calc(100% / 2 - 10px);
}

@media (max-width: 768px) {
   .cookie-alert {
      right: -150%; 
   }

   .cookie-alert.show {
      right: 50%; transform: translateX(50%);
      max-width: unset; width: 90%;
   }
}


/* ================================== *//* ================================== */
/* == Content Layout ================ *//* ================================== */
/* ================================== *//* ================================== */


.section {
   position: relative;
   padding: 75px 0;
}

.s404.section {
   color: var(--color-light-100);
   background-color: var(--color-dark-500);
   min-height: 100vh;
}

.section.banner-hero {
   padding-top: 10rem;
   min-height: 100vh;
   background-color: var(--color-dark-500);
}

.section.banner-hero.hero-alt {
   min-height: unset;
}

.section.banner-hero .flexbox {
   justify-content: flex-start;
   margin-top: 50px;
}

@media (max-width: 880px) {
   .section.banner-hero .flexbox {
      margin-top: 0;
   }
}

.banner-image-wrapper {
   position: absolute;
   display: none;
   right: 25%;
   bottom: 50%;
   transform: translate(50%, 50%);
   width: 50vw;
   min-width: 200px;
   max-width: 675px;
   aspect-ratio: 1;
   justify-self: center;
   overflow: hidden;
   clip-path: inset(0 round 80% 40% 80% 40%);
}

@media screen and (min-width: 55rem) {
   .banner-image-wrapper {
      display: block;
   }
}

.banner-image-wrapper::before {
   content: "";
   position: absolute;
   inset: 0;
   background: rgba(0, 0, 0, 0.35);
   z-index: 2;
   pointer-events: none;
}

.banner-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

.s404-image {
   display: block;
   max-width: 16rem;
   height: auto;
   justify-self: center;
}

.container {
   width: 100%;
   max-width: 90rem;
   height: auto;
   margin: auto;
}

.horizontal-wrapper {
   display: flex; 
   flex-direction: row;  
   flex-wrap: wrap;     
   gap: 1rem;            
   align-items: top; 
   width: 100%;
   clear: both;
}

.vertical-wrapper {
   display: flex; 
   flex-direction: column;       
   gap: 1rem;            
   align-items: baseline;  
}

.flexbox {
   display: flex;
   flex-direction: row;
   justify-content: center;
   align-items: center;
   flex-wrap: wrap;
}

.grid { 
   display: grid; 
}

.inner {
   position: relative;
   display: flex;
   flex: 1 1 20rem;
   flex-direction: column;
   max-width: 35rem;
   align-items: baseline;
   row-gap: .75rem;
   margin: 2rem;
   z-index: 1;
}

.card {
   position: relative;
   display: flex;
   flex: 1 1 25rem;
   flex-direction: column;
   align-items: baseline;
   justify-content: center;
   row-gap: 1.1rem;
   padding: 1.5rem 2.5rem 2.5rem 2.5rem;
   margin: 1.5rem 1rem;
   border-radius: 0.4rem;
   z-index: 1;
   transition: all 0.25s ease;
}

.card .line {
   position: relative;
   display: inline-block;
   width: 100%;
   height: 2px;
   margin-bottom: 0.25rem;
   margin-top: -0.5rem;
}

.card.dark .line, .card.card-glass .line {
   background-color: rgba(var(--color-light-100-raw), 0.1);
}

.card.light .line {
   background-color: rgba(var(--color-dark-100-raw), 0.1);
}

.card .btn {
   margin: auto;
}

@media screen and (min-width: 425px) {
   .card .btn {
      margin-left: auto;
      margin-right: unset;
   }
}

.card.card-glass {
   border: 0.2rem solid rgba(0, 0, 0, 0.1);
   background-color: rgba(73, 73, 73, 0.1);
   backdrop-filter: blur(10px);
}

.card.light {
   background-color: var(--color-light-100);
   box-shadow: var(--shadow-blur);
}

.card.dark {
   background-color: var(--color-dark-300);
   box-shadow: var(--shadow-extra);
}

.card:hover {
   transform: translateY(-12.5px);
}

.section:has(.split) {
   padding: 0;
   display: flex;
   flex-wrap: wrap;
   overflow: unset;
   z-index: 1;
}

.split {
   position: relative;
   flex: 1 1 50%;
   min-width: unset;
   min-height: 450px;
   padding: 8rem 2rem;
   margin: 0;
   box-shadow: var(--shadow-blur);
}

@media (max-width: 900px) {
   .split {
      padding: 5rem 2rem;
   }
}

@media screen and (min-width: 450px) {
   .split {
      min-width: 450px;
   }
}

@media screen and (max-width: 450px) {
   .split {
      min-width: 100%;
   }
}

.split .inner {
   margin: auto;
   max-width: 35rem;
   row-gap: 1.5rem;
}

.split img {
   position: relative;
   height: 100%; max-height: 800px;
   width: 100%;
   background-size: cover;
   background-position: center;
}

.split.special-img img {
   position: absolute;
   top: 50%; left: 50%; transform: translate(-50%, -50%);
   width: 75%; height: auto;
   border-radius: clamp(1rem, 2vw, 2rem);
   box-shadow: var(--shadow-blur);
}

.split:has(img):after {
   content: '';
   position: absolute;
   top: 0; left: 0;
   width: 100%; height: 100%;
   background-color: var(--color-dark-500);
   opacity: 0.25;
}

.split:has(img) {
   padding: 0;
}

.split ul li {
   display: flex; flex-direction: row; gap: 1rem; align-items: center; line-height: 1.15;
}

.split ul li :first-child {
   font-size: 1.4rem;
   font-weight: 900;
}

@media (max-width: 350px) {
   .split ul li {
      margin-bottom: 0.5rem;
   }
}

.single {
   display: flex;
   flex: 1 1 20rem;
   flex-direction: column;
   max-width: 47.5rem;
   text-align: center;
   row-gap: .75rem;
   margin: 0 1.7rem;
   z-index: 1;
}

.section:has(.single) {
   padding-top: 110px;
   padding-bottom: 55px;
}

.section.light-bg:has(.single) + .section.light-bg,
.section.dark-bg:has(.single) + .section.dark-bg,
.section.primary-bg:has(.single) + .section.primary-bg {
   padding-top: 0;
}
#form-hero:has(.single) + .section {
   padding-top: 75px;
}


/* ================================== *//* ================================== */
/* == Showcase section ============== *//* ================================== */
/* ================================== *//* ================================== */


/* Showcase/Grid ==================== */


.showcase-title { 
   text-align: center; margin-bottom: 2.25rem; 
}

.showcase-filters {
   display: flex;
   justify-content: center;
   align-items: center;
   width: 100%;
   column-gap: .6rem;
   margin-bottom: 2rem;
}

.showcase-item {
   cursor: pointer;
   color: inherit;
   padding: 0.25rem .75rem;
   font-weight: 700;
   border-radius: .5rem;
}

.active-showcase {
   background-color: var(--color-primary-100);
   color: var(--color-light-100);
}

.showcase-container {
   grid-template-columns: repeat(3, 450px);
   gap: 1.3rem;
   justify-content: center;
   padding-top: 1rem;
}

.showcase-card { 
   padding: 1.25rem 1.25rem 2rem 1.25rem; border-radius: .5rem; 
}

.dark-bg .showcase-card {
   box-shadow: var(--shadow-extra);
   background-color: var(--color-dark-300);
}

.light-bg .showcase-card {
   box-shadow: var(--shadow-blur);
   background-color: var(--color-light-100);
}

.showcase-card-title { 
   text-align: left; 
}

.portfolio-item-details { 
   display: none; 
}

.showcase-img { 
   border-radius: .5rem; margin-bottom: 1.5rem; aspect-ratio: 5/4; 
}

.showcase-card-title { 
   font-size: 1.1rem; font-weight: 600; margin-bottom: 0.25rem; 
}

.showcase-button {
   color: var(--color-primary-100);
   font-size: 1rem; font-weight: 300;
   display: flex; align-items: center;
   column-gap: .25rem; cursor: pointer;
}

.showcase-button i { 
   font-size: 0.8rem; transition: all .2s ease-out; 
   margin-left: 0; margin-top: 0.225rem;
}

.showcase-button:hover i { 
   transform: translateX(.35rem); 
}


/* Portfolio popup ================== */


.portfolio-popup {
   position: fixed; inset: 0;
   background-color: rgba(0, 0, 0, .5);
   display: flex; justify-content: center; align-items: center;
   padding: 0 1rem;
   opacity: 0; visibility: hidden;
   z-index: 100;
   transition: all .2s ease-out;
}

.portfolio-popup.open { 
   opacity: 1; visibility: visible; 
}

.portfolio-popup-inner {
   background-color: var(--color-dark-100);
   width: 900px; border-radius: .5rem;
   padding: 1.5rem; position: relative;
}

.portfolio-popup-content {
   display: grid;
   grid-template-columns: repeat(2, 1fr);
   align-items: center; column-gap: 3rem;
}

.portfolio-popup-close {
   position: absolute; top: 1.5rem; right: 1.5rem;
   font-size: 1.5rem; color: var(--color-primary-100); cursor: pointer;
}

.portfolio-popup-img { 
   border-radius: .5rem; 
}

.portfolio-popup-subtitle { 
   font-size: 1rem; margin-bottom: 0.3rem; font-weight: 300; color: var(--color-primary-100);
}

.details-title { 
   font-size: 1.3rem; font-weight: 600; margin-bottom: 0.8rem; 
}

.details-description { 
   font-size: 1rem; margin-bottom: 1.4rem; font-weight: 300;

}
.details-info li { 
   margin-bottom: 0.25rem; font-size: 1rem; font-weight: 300;
}

.details-info li:last-child { 
   margin-bottom: 0; 
}

.details-info li span { 
   font-weight: 300; 
}

.details-info li a { 
   color: var(--color-primary-100); 
}


/* Showcase responsiveness ================== */


@media screen and (max-width: 1216px) {

   .showcase-container { 
      grid-template-columns: repeat(2, 330px); gap: 3rem; 
   }

}

@media screen and (max-width: 1024px) {

   .showcase-card { 
      padding: 1rem; 
   }

   .showcase-img { 
      margin-bottom: var(0.75rem); 
   }

   .showcase-card-title { 
      margin-bottom: var(0.25rem); 
   }

}

@media screen and (max-width: 768px) {
   
   .showcase-container { 
      grid-template-columns: 330px; 
   }

}

@media screen and (max-width: 576px) {

   .showcase-container { 
      grid-template-columns: 300px; 
   }

   .portfolio-popup-inner { 
      width: 420px; 
      padding: 2.8rem 1.5rem 2.5rem; 
   }

   .portfolio-popup-content { 
      grid-template-columns: 1fr; 
      row-gap: 1.6rem; 
   }
   .details-title { 
      font-size: 1rem; 
   }
   
   .portfolio-popup-close { 
      top: .5rem; 
   }

}


/* ================================== *//* ================================== */
/* == Links and Buttons ============= *//* ================================== */
/* ================================== *//* ================================== */


.btn {
   display: inline-flex;
   font-family: inherit;
   font-size: clamp(1rem, 3vw, 1.05rem);
   font-weight: 500;
   line-height: 1.225;
   align-items: center;
   white-space: nowrap;
   text-wrap: nowrap;
   text-align: center;
   justify-content: center;
   vertical-align: middle;
   padding-block: 0.9rem;
   padding-inline: 1.2rem;
   border: .15rem solid;
   border-radius: 0.3rem;
   transition: all 0.2s ease-in-out;
}

.btn-light {
   color: var(--color-light-100);
   border-color: var(--color-light-100);
   box-shadow: var(--shadow-tiny);
}

.btn-light-reversed {
   color: var(--color-dark-100);
   background-color: var(--color-light-100);
   border-color: var(--color-light-100);
   box-shadow: var(--shadow-tiny);
}

.btn-dark {
   color: var(--color-dark-100);
   border-color: var(--color-dark-100);
   box-shadow: var(--shadow-tiny);
}

.btn-dark-reversed {
   color: var(--color-light-100);
   background-color: var(--color-dark-100);
   border-color: var(--color-dark-100);
   box-shadow: var(--shadow-tiny);
}

.btn-primary {
   color: var(--color-primary-100);
   border-color: var(--color-primary-100);
   box-shadow: var(--shadow-tiny);
}

.btn-primary-reversed {
   color: var(--color-light-100);
   background-color: var(--color-primary-100);
   border-color: var(--color-primary-100);
   box-shadow: var(--shadow-tiny);
}

.btn-secondary {
   color: var(--color-secondary-100);
   border-color: var(--color-secondary-100);
   box-shadow: var(--shadow-tiny);
}

.btn-secondary-reversed {
   color: var(--color-light-100);
   background-color: var(--color-secondary-100);
   border-color: var(--color-secondary-100);
   box-shadow: var(--shadow-tiny);
}


/* == Hover & Selected States ================== */


.btn-light:hover, .btn-light.selected {
   color: var(--color-dark-100);
   background-color: var(--color-light-100);
}

.btn-light-reversed:hover, .btn-light-reversed.selected {
   color: var(--color-light-100);
   background-color: transparent;
}

.btn-dark:hover, .btn-dark.selected {
   color: var(--color-light-100);
   background-color: var(--color-dark-100);
}

.btn-dark-reversed:hover, .btn-dark-reversed.selected {
   color: var(--color-dark-100);
   background-color: transparent;
}

.btn-primary:hover, .btn-primary.selected {
   color: var(--color-light-100);
   background-color: var(--color-primary-100);
}

.btn-primary-reversed:hover, .btn-primary-reversed.selected {
   color: var(--color-primary-100);
   background-color: transparent;
}

.btn-secondary:hover, .btn-secondary.selected {
   color: var(--color-light-100);
   background-color: var(--color-secondary-100);
}

.btn-secondary-reversed:hover, .btn-secondary.selected {
   color: var(--color-secondary-100);
   background-color: transparent;
}


/* ================================== *//* ================================== */
/* == 404 Section =================== *//* ================================== */
/* ================================== *//* ================================== */


.s404 .c {
   text-align: center;
   display: block;
   position: relative;
   width: 100%;
   max-width: 800px;
   margin: 100px auto;
   z-index: 10;
   padding: 1rem;
}

.s404 ._404 {
   font-size: 140px;
   position: relative;
   display: inline-block;
   z-index: 10;
   height: 160px;
   letter-spacing: 5px;
}

.s404 ._404:after {
   content: '';
   position: absolute;
   bottom: -20px;
   left: 50%;
   transform: translateX(-50%);
   
   background-color: white;
   width: 100%;
   height: 5px;
}

.s404 ._1 {
   text-align:center;
   display:block;
   position:relative;
   margin-top: 40px;
   letter-spacing: 2px;
   z-index: 10;
}

.s404 ._2 {
   text-align:center;
   display:block;
   position: relative;
   font-size: 20px;
   margin-top: 10px;
   z-index: 10;
}

.s404 ._3 {
   margin-top: 25px;
   justify-content: center;
   z-index: 10;
}

.cloud {
   width: 350px; height: 120px;

   background: #FFF;
   background: linear-gradient(top, #FFF 100%);
   background: -webkit-linear-gradient(top, #FFF 100%);
   background: -moz-linear-gradient(top, #FFF 100%);
   background: -ms-linear-gradient(top, #FFF 100%);
   background: -o-linear-gradient(top, #FFF 100%);

   border-radius: 100px;
   -webkit-border-radius: 100px;
   -moz-border-radius: 100px;

   position: absolute;
   margin: 120px auto 20px;
   z-index: 1;
   transition: ease 1s;
}

.cloud:after, .cloud:before {
   content: '';
   position: absolute;
   background: #FFF;
   z-index: 1
}

.cloud:after {
   width: 100px; height: 100px;
   top: -50px; left: 50px;

   border-radius: 100px;
   -webkit-border-radius: 100px;
   -moz-border-radius: 100px;
}

.cloud:before {
   width: 180px; height: 180px;
   top: -90px; right: 50px;

   border-radius: 200px;
   -webkit-border-radius: 200px;
   -moz-border-radius: 200px;
}

.x1 {
   top:-50px; left:100px;

   -webkit-transform: scale(0.3);
   -moz-transform: scale(0.3);
   transform: scale(0.3);
   opacity: 0.9;
   -webkit-animation: moveclouds-reversed 15s linear infinite;
   -moz-animation: moveclouds-reversed 15s linear infinite;
   -o-animation: moveclouds-reversed 15s linear infinite;
   animation: moveclouds-reversed 15s linear infinite;
}

.x1_5{
   top: 0px; left: 250px;

   -webkit-transform: scale(0.3);
   -moz-transform: scale(0.3);
   transform: scale(0.3);
   -webkit-animation: moveclouds-reversed 17s linear infinite;
   -moz-animation: moveclouds-reversed 17s linear infinite;
   -o-animation: moveclouds-reversed 17s linear infinite; 
   animation: moveclouds 17s linear infinite;
}

.x2 {
   top: 60px; left: 250px;

   -webkit-transform: scale(0.6);
   -moz-transform: scale(0.6);
   transform: scale(0.6);
   opacity: 0.6; 
   -webkit-animation: moveclouds-reversed 25s linear infinite;
   -moz-animation: moveclouds-reversed 25s linear infinite;
   -o-animation: moveclouds-reversed 25s linear infinite;
   animation: moveclouds-reversed 25s linear infinite;
}

.x3 {
   bottom: -70px; left: 250px;

   -webkit-transform: scale(0.6);
   -moz-transform: scale(0.6);
   transform: scale(0.6);
   opacity: 0.8; 

   -webkit-animation: moveclouds 25s linear infinite;
   -moz-animation: moveclouds 25s linear infinite;
   -o-animation: moveclouds 25s linear infinite;
   animation: moveclouds 25s linear infinite;
}

.x4 {
   bottom: 20px; left: 470px;

   -webkit-transform: scale(0.75);
   -moz-transform: scale(0.75);
   transform: scale(0.75);
   opacity: 0.75;

   -webkit-animation: moveclouds 18s linear infinite;
   -moz-animation: moveclouds 18s linear infinite;
   -o-animation: moveclouds 18s linear infinite;
   animation: moveclouds-reversed 18s linear infinite;
}

.x5 {
   top: 300px; left: 200px;

   -webkit-transform: scale(0.5);
   -moz-transform: scale(0.5);
   transform: scale(0.5);
   opacity: 0.8; 

   -webkit-animation: moveclouds 20s linear infinite;
   -moz-animation: moveclouds 20s linear infinite;
   -o-animation: moveclouds 20s linear infinite;
   animation: moveclouds 20s linear infinite;
}

@-webkit-keyframes moveclouds {
   0% {margin-left: 100vw;}
   100% {margin-left: -35vw;}
}
@-moz-keyframes moveclouds {
   0% {margin-left: 100vw;}
   100% {margin-left: -35vw;}
}
@-o-keyframes moveclouds {
   0% {margin-left: 100vw;}
   100% {margin-left: -35vw;}
}

@keyframes moveclouds {
   0% {margin-left: 100vw;}
   100% {margin-left: -35vw;}
}

@-webkit-keyframes moveclouds-reversed {
   0% {margin-left: -35vw;}
   100% {margin-left: 100vw;}
}
@-moz-keyframes moveclouds-reversed {
   0% {margin-left: -35vw;}
   100% {margin-left: 100vw;}
}
@-o-keyframes moveclouds-reversed {
   0% {margin-left: -35vw;}
   100% {margin-left: 100vw;}
}

@keyframes moveclouds-reversed {
   0% {margin-left: -35vw;}
   100% {margin-left: 100vw;}
}


/* ================================== *//* ================================== */
/* == Footer ======================== *//* ================================== */
/* ================================== *//* ================================== */


.row {
	display: flex; justify-content: space-around; flex-wrap: wrap;
}

.footer {
	background-color: var(--color-dark-300);
   padding: 6rem 2rem;
}

@media (max-width: 25rem) {
   .footer {
      padding: 5rem 1.25rem;
      text-align: center;
   }
}

@media (max-width: 35.875rem) {
   .footer {
      text-align: center;
   }
}

.footer-col {
   min-width: 25%;
   padding: 2rem;
   flex-wrap: wrap;
}

.footer-col h1 {
	font-size: 1.2rem;
	color: var(--color-light-100);
	margin-bottom: 1.5rem;
	font-weight: 500;
	position: relative;
}

.footer-col h1::before {
	content: '';
	position: absolute;
	left:0;
	bottom: -.4rem;
	background-color: var(--color-primary-100);
	height: 2px;
	box-sizing: border-box;
	width: 100px;
}

@media (max-width: 35.875rem) {
   .footer-col h1::before {
      left: 50%;
      transform: translateX(-50%);
   }
}

.footer-col ul li:not(:last-child) {
	margin-bottom: 0.2rem;
}

.footer-col ul li a {
	font-size: 1.1rem;
	font-weight: 300;
	color: var(--color-light-300);
	display: block;
	transition: all 0.3s ease;
}

.footer-col ul li a:hover {
	color: var(--color-light-100);
	padding-left: 8px;
}

.footer-col .social-links a{
	display: inline-block;
	height: 40px;
	width: 40px;
	background-color: rgba(255,255,255,0.2);
	margin:0 10px 10px 0;
	text-align: center;
	line-height: 40px;
	border-radius: 50%;
	color: #ffffff;
	transition: all 0.5s ease;
}

.footer-col .social-links a:hover{
	color: #24262b;
	background-color: #ffffff;
}

.footer-col img {
   position: relative; display: flex;
   width: 100%; max-width: 125px; height: auto;
   margin-top: 1.75rem;
   border-radius: 0.5rem;
}

@media(max-width: 767px){
  .footer-col{
      width: 50%;
      margin-bottom: 30px;
   }
}

@media(max-width: 574px){
   .footer-col{
      width: 100%;
   }

   .footer-col img {
      align-self: center; justify-self: center; margin-left: auto; margin-right: auto;
   }
}


/* ================================== *//* ================================== */
/* == Form Inputs =================== *//* ================================== */
/* ================================== *//* ================================== */


.formbox {
   position: relative;
   display: flex; flex-direction: column; gap: 0.2rem;
   font-family: var(--primary-font);
   max-width: 1200px; width: 100%;
   padding: 4rem;
   margin: 1rem;
   border-radius: 0.5rem;
   text-align: left;
   backdrop-filter: blur(1px);
   z-index: 1;
   overflow: hidden;
}

.form-response { display: none; flex-direction: column; gap: 0.75rem; text-align: center; justify-content: center; align-items: center; }
.form-response i.fail-icon { font-size: 6rem; color:#FF8282; margin-bottom: -1.5rem;}
.form-response i.success-icon { font-size: 6rem; color: #6ae6bc; margin-bottom: -1.5rem;}
.form-response h1 { font-size: 2rem; font-weight: 600; }
.form-response h2 { font-size: 1.25rem; font-weight: 400; }

.light-bg .formbox {
   box-shadow: var(--shadow-blur);
   background-color: rgba(var(--color-light-100-raw), 0.925);
}

.dark-bg .formbox {
   box-shadow: var(--shadow-blur);
   background-color: rgba(var(--color-dark-300-raw), 0.975);
}

.light-bg .formbox input:-webkit-autofill, .light-bg .formbox input:-webkit-autofill:hover, .light-bg .formbox input:-webkit-autofill:focus { -webkit-box-shadow: 0 0 0 1000px var(--color-light-100) inset !important; box-shadow: 0 0 0 1000px var(--color-light-100) inset !important; -webkit-text-fill-color: var(--color-dark-100) !important; }
.dark-bg .formbox input:-webkit-autofill, .dark-bg .formbox input:-webkit-autofill:hover, .dark-bg .formbox input:-webkit-autofill:focus { -webkit-box-shadow: 0 0 0 1000px var(--color-dark-300) inset !important; box-shadow: 0 0 0 1000px var(--color-dark-300) inset !important; -webkit-text-fill-color: var(--color-light-100) !important; }

.formbox .field {
   position: relative;
   display: inline-block;
   text-align: center;
   width: 24.5%; height: 100px;
   padding: 3rem 0 2rem 0;
}

@media (max-width: 1000px) {
   .formbox .field {
      width: 48%;
   }
}

@media (max-width: 700px) {
   .formbox {
      padding: 3rem 2rem;
   }

   .formbox .field {
      width: 100%;
   }
}

@media (max-width: 500px) {
   .formbox {
      margin: auto;
      padding: 3rem 1.5rem;
   }
}


.formbox .field label {
   font-family: var(--secondary-font);
   font-weight: 900;
   text-align: left;
   font-size: 1.1rem;
   width: 92.5%;
   margin-bottom: 1rem;
}

.formbox .field input {
   font-family: var(--secondary-font);
   font-size: 1.05rem;
   font-weight: 200;
   width: 92.5%;
   padding: 0 0 0.5rem 0.1rem;
}

.formbox .field .form-err {
   position: absolute;
   top: 125%;
   left: 5%;
   color: #FF8282;
   font-size: 0.9rem;
   display: none;
}

@media (max-width: 700px) {
   .formbox .field input, .formbox .field label {
      width: 100%;
   }
}

.light-bg .formbox .field input {
   border-bottom: 2px solid rgba(var(--color-dark-100-raw), 0.4);
   color: var(--color-dark-100);
}

.dark-bg .formbox .field input {
   border-bottom: 2px solid rgba(var(--color-light-100-raw), 0.4);
   color: var(--color-light-100);
}

.formbox .field ::placeholder {
   opacity: 0.75;
}

.lefty, .righty {
   width: 48.5%; 
   vertical-align: middle;
}

.lefty {
   text-align: left;
}

.righty {
   text-align: right;
}

.lefty ul li {
   display: flex; flex-direction: row; gap: 0.75rem; align-items: center;
}

.lefty ul li :first-child {
   font-size: 1.75rem;
   font-weight: 900;
}

@media (max-width: 800px) {
   .lefty, .righty {
      width: 100%;
      margin: 1.25rem auto;
   }

   .lefty {
      text-align: left;
   }

   .righty {
      text-align: center;
   }
}

@media (max-width: 400px) {
   .lefty ul li {
      margin-bottom: 1rem;
   }
}

.formbox .horizontal-wrapper {
   align-items: center;
   margin-top: 3rem; 
}


/* ================================== *//* ================================== */
/* == Utility classes =============== *//* ================================== */
/* ================================== *//* ================================== */


.center {
   text-align: center;
   vertical-align: middle;
}

.left {
   text-align: left;
   align-items: flex-start;
   justify-content: flex-start;
}

.right {
   text-align: right;
   align-items: flex-end;
   justify-content: flex-end;
}

.hidden {
   display: none; visibility: hidden;
}

.title-tiny {
   font-family: inherit;
   font-size: clamp(1.6rem, 3.25vw, 1.9rem);
   font-weight: 700;
   line-height: 1.25;
}

.title-small {
   font-family: inherit;
   font-size: clamp(1.75rem, 4vw, 2.35rem);
   font-weight: 700;
   line-height: 1.25;
}

.title-medium {
   font-family: inherit;
   font-size: clamp(2rem, 4.5vw, 2.75rem);
   font-weight: 700;
   line-height: 1.15;
}

.title-large {
   font-family: inherit;
   font-size: clamp(2.2rem, 5.2vw, 3.3rem);
   font-weight: 700;
   line-height: 1.15;
}

.text-small {
   font-family: inherit;
   font-size: 0.95rem;
   line-height: 1.35;
}

.text-base {
   font-family: inherit;
   font-size: 1rem;
   line-height: 1.35;
}

.text-medium {
   font-family: inherit;
   font-size: 1.15rem;
   line-height: 1.35;
}

.text-large {
   font-family: inherit;
   font-size: 1.3rem;
   line-height: 1.35;
}

.text-upper {
   text-transform: uppercase;
}

.text-lower {
   text-transform: lowercase;
}

.text-capital {
   text-transform: capitalize;
}

.font-extra-light {
   font-weight: 200;
}

.font-light {
   font-weight: 300;
}

.font-normal {
   font-weight: 400;
}

.font-medium {
   font-weight: 500;
}

.font-semi {
   font-weight: 600;
}

.font-bold {
   font-weight: 700;
}

.mt-50 {
   margin-top: 50px;
}

.mt-75 {
   margin-top: 75px;
}

.mt-100 {
   margin-top: 100px;
}

.mb-50 {
   margin-bottom: 50px;
}

.mb-75 {
   margin-bottom: 75px;
}

.mb-100 {
   margin-bottom: 100px;
}

.mb-10-n {
   margin-bottom: -10px;
}

.mb-20-n {
   margin-bottom: -20px;
}

.mb-30-n {
   margin-bottom: -30px;
}

.mb-40-n {
   margin-bottom: -40px;
}

.mb-50-n {
   margin-bottom: -50px;
}

.light-bg {
   background-color: var(--color-light-100);
   color: var(--color-dark-500)
}

.dark-bg {
   background-color: var(--color-dark-500);
   color: var(--color-light-100);
}

.primary-bg {
   background-color: var(--color-primary-100);
   color: var(--color-light-100);
}

.secondary-bg {
   background-color: var(--color-secondary-100);
   color: var(--color-light-100);
}

.light-color {
   color: var(--color-light-100)
}

.dark-color {
   color: var(--color-dark-100);
}

.primary-color {
   color: var(--color-primary-100);
}

.secondary-color {
   color: var(--color-secondary-100);
}

.primary-font {
   font-family: var(--primary-font);
}

.secondary-font {
   font-family: var(--secondary-font);
}

.tertiary-font {
   font-family: var(--tertiary-font);
}

.no-overlay:after {
   display: none;
}

@media (min-width: 70rem) {
   .show-below-1000 {
      display: none;
   }
}

@media (max-width: 30rem) {
   .hide-below-500 {
      display: none;
   }
}

@media (max-width: 70rem) {
   .hide-below-1000 {
      display: none;
   }
}