/*************************************
███╗░░░███╗░█████╗░██╗░░░░██╗░░░██╗██╗
████╗░████║██╔══██╗██║░░░░██║░░░██║██║
██╔████╔██║███████║██║░░░░╚██╗░██╔╝██║
██║╚██╔╝██║██╔══██║██║░░░░░╚████╔╝░██║
██║░╚═╝░██║██║░░██║███████╗░╚██╔╝░░██║
╚═╝░░░░░╚═╝╚═╝░░╚═╝╚══════╝░░╚═╝░░░╚═╝
**************************************/

/*
Project: function()
Author: function() 
Designer: MALVI
Version: 2.0
Contact: hi@thefunction.works
*/

/* ~~~~~~~~~~~~~ */
/* ~~~ FONTS ~~~ */
/* ~~~~~~~~~~~~~ */
@font-face {
  font-family: "basic-sans";
  src: url("https://use.typekit.net/af/721f9c/00000000000000007735abf2/30/l?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n4&v=3")
      format("woff2"),
    url("https://use.typekit.net/af/721f9c/00000000000000007735abf2/30/d?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n4&v=3")
      format("woff"),
    url("https://use.typekit.net/af/721f9c/00000000000000007735abf2/30/a?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n4&v=3")
      format("opentype");
  font-display: swap;
  font-style: normal;
  font-weight: 400;
  font-stretch: normal;
}

@font-face {
  font-family: "basic-sans";
  src: url("https://use.typekit.net/af/4cfce7/00000000000000007735abd4/31/l?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n9&v=3")
      format("woff2"),
    url("https://use.typekit.net/af/4cfce7/00000000000000007735abd4/31/d?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n9&v=3")
      format("woff"),
    url("https://use.typekit.net/af/4cfce7/00000000000000007735abd4/31/a?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n9&v=3")
      format("opentype");
  font-display: swap;
  font-style: normal;
  font-weight: 900;
  font-stretch: normal;
}

@font-face {
  font-family: "nort";
  src: url("https://use.typekit.net/af/e295de/00000000000000007735bb0b/31/l?primer=2c525e945db23ca903c9e53f7672c72b14fc41c424013235fbe023be98740bd1&fvd=n8&v=3")
      format("woff2"),
    url("https://use.typekit.net/af/e295de/00000000000000007735bb0b/31/d?primer=2c525e945db23ca903c9e53f7672c72b14fc41c424013235fbe023be98740bd1&fvd=n8&v=3")
      format("woff"),
    url("https://use.typekit.net/af/e295de/00000000000000007735bb0b/31/a?primer=2c525e945db23ca903c9e53f7672c72b14fc41c424013235fbe023be98740bd1&fvd=n8&v=3")
      format("opentype");
  font-display: auto;
  font-style: normal;
  font-weight: 800;
  font-stretch: normal;
}

@font-face {
  font-family: "nort";
  src: url("https://use.typekit.net/af/217ece/00000000000000007735bb23/31/l?primer=2c525e945db23ca903c9e53f7672c72b14fc41c424013235fbe023be98740bd1&fvd=n4&v=3")
      format("woff2"),
    url("https://use.typekit.net/af/217ece/00000000000000007735bb23/31/d?primer=2c525e945db23ca903c9e53f7672c72b14fc41c424013235fbe023be98740bd1&fvd=n4&v=3")
      format("woff"),
    url("https://use.typekit.net/af/217ece/00000000000000007735bb23/31/a?primer=2c525e945db23ca903c9e53f7672c72b14fc41c424013235fbe023be98740bd1&fvd=n4&v=3")
      format("opentype");
  font-display: auto;
  font-style: normal;
  font-weight: 400;
  font-stretch: normal;
}

.tk-nort {
  font-family: "nort", sans-serif;
}
body.tk-nort .bold {
  font-family: "nort", sans-serif;
  font-weight: 800;
}

/* ~~~~~~~~~~~~ */
/* ~~~ VARS ~~~ */
/* ~~~~~~~~~~~~ */
:root {
  --cAlert: hsl(4deg 90% 58%);
  --cWarning: hsl(27deg 100% 50%);
  --cSuccess: hsl(122deg 39% 49%);
  --cDisabled: hsl(0deg 0% 40%);
  --cTransparent: hsl(0deg 0% 0% / 0%);

  --cWhite: hsl(0deg 0% 100%);
  --cWhite_o: hsl(0deg 0% 100% / 4%);
  --cBlack: hsl(212deg 100% 4%);
  --cBlack_o: hsl(0deg 0% 0% / 80%);
  --cLgray: hsl(20, 4%, 83%);
  --cMgray: hsl(0deg 0% 85%);
  --cDgray: hsl(0deg 0% 40%);
  --cBlue: rgba(74, 227, 238, 1);
  --cGreen: rgba(194, 245, 0, 1);
  --cDarkBlue: hsl(247deg 87% 12%);
  --cBeige: hsl(35deg 33% 97%);
  --cBeige_o: hsl(35deg 33% 97% / 80%);
  --cGradientBlack: linear-gradient(
    -45deg,
    rgba(0, 0, 0, 1),
    rgba(80, 80, 80, 1)
  );
  --cGradientColor: linear-gradient(
    -45deg,
    rgba(194, 245, 0, 1),
    rgba(74, 227, 238, 1)
  );

  --width: 9ch;
  --steps: 9;

  --duration-short: 0.1s;
  --duration-default: 0.2s;
  --duration-long: 0.5s;

  --font-150: calc(10rem + (150 - 100) * ((100vw - 300px) / (1800 - 300)));
  --line-150: calc(10rem + (150 - 100) * ((100vw - 300px) / (1800 - 300)));

  --font-110: calc(6rem + (110 - 60) * ((100vw - 300px) / (1800 - 300)));
  --line-110: calc(6.6rem + (90 - 66) * ((100vw - 300px) / (1800 - 300)));

  --font-100: calc(5.6rem + (100 - 56) * ((100vw - 300px) / (1800 - 300)));
  --line-100: calc(6.2rem + (96 - 62) * ((100vw - 300px) / (1800 - 300)));

  --font-60: calc(4.8rem + (60 - 48) * ((100vw - 300px) / (1800 - 300)));
  --line-60: calc(5.4rem + (66 - 54) * ((100vw - 300px) / (1800 - 300)));

  --font-55: calc(4.4rem + (55 - 44) * ((100vw - 300px) / (1800 - 300)));
  --line-55: calc(5rem + (55 - 50) * ((100vw - 300px) / (1800 - 300)));

  --font-50: calc(4.4rem + (50 - 44) * ((100vw - 300px) / (1800 - 300)));
  --line-50: calc(5rem + (50 - 50) * ((100vw - 300px) / (1800 - 300)));

  --font-48: calc(3.6rem + (48 - 36) * ((100vw - 300px) / (1800 - 300)));
  --line-48: calc(3.8rem + (50 - 38) * ((100vw - 300px) / (1800 - 300)));

  --font-40: calc(3.2rem + (40 - 32) * ((100vw - 300px) / (1800 - 300)));
  --line-40: calc(3.4rem + (44 - 34) * ((100vw - 300px) / (1800 - 300)));

  --font-32: calc(2.4rem + (32 - 24) * ((100vw - 300px) / (1800 - 300)));
  --line-32: calc(2.6rem + (36 - 26) * ((100vw - 300px) / (1800 - 300)));

  --font-30: calc(2.4rem + (30 - 24) * ((100vw - 300px) / (1800 - 300)));
  --line-30: calc(2.6rem + (32 - 26) * ((100vw - 300px) / (1800 - 300)));

  --font-24: calc(1.8rem + (24 - 18) * ((100vw - 300px) / (1800 - 300)));
  --line-24: calc(2.2rem + (30 - 22) * ((100vw - 300px) / (1800 - 300)));

  --font-20: calc(1.6rem + (20 - 16) * ((100vw - 300px) / (1800 - 300)));
  --line-20: calc(1.9rem + (26 - 19) * ((100vw - 300px) / (1800 - 300)));

  --font-18: calc(1.6rem + (18 - 16) * ((100vw - 300px) / (1800 - 300)));
  --line-18: calc(1.7rem + (19 - 17) * ((100vw - 300px) / (1800 - 300)));

  --font-16: calc(1.4rem + (16 - 14) * ((100vw - 300px) / (1800 - 300)));
  --line-16: calc(1.8rem + (20 - 18) * ((100vw - 300px) / (1800 - 300)));

  --font-14: calc(1.4rem + (14 - 14) * ((100vw - 300px) / (1800 - 300)));
  --line-14: calc(1.6rem + (16 - 16) * ((100vw - 300px) / (1800 - 300)));

  --font-12: 1.2rem;
  --line-12: 1.4rem;

  --transition-transform-opacity: transform var(--duration-default) ease,
    opacity var(--duration-default) ease;
  --transition-all: all var(--duration-default) ease;
  --transition-colors: color var(--duration-default) ease,
    background-color var(--duration-default) ease;
  --transition-transform: transform var(--duration-default) ease;
  --details-animation-duration: 200;
}

/* ~~~~~~~~~~~~~~~~~ */
/* ~~~ RESET CSS ~~~ */
/* ~~~~~~~~~~~~~~~~~ */
*:where(:not(html, iframe, canvas, img, svg, video, pre):not(svg *, symbol *)) {
  all: unset;
  display: revert;
}
*,
*::before,
*::after {
  box-sizing: border-box;
}
a,
button {
  cursor: revert;
}
ol,
ul,
menu {
  list-style: none;
}
img {
  max-inline-size: 100%;
}
table {
  border-collapse: collapse;
}
input,
textarea {
  -webkit-user-select: auto;
}
textarea {
  white-space: revert;
}
meter {
  -webkit-appearance: revert;
  appearance: revert;
}
::placeholder {
  color: unset;
}
:where([hidden]) {
  display: none;
}
:where([contenteditable]:not([contenteditable="false"])) {
  -moz-user-modify: read-write;
  -webkit-user-modify: read-write;
  overflow-wrap: break-word;
  -webkit-line-break: after-white-space;
  -webkit-user-select: auto;
}
:where([draggable="true"]) {
  -webkit-user-drag: element;
}

/* ~~~~~~~~~~~~~~~~~~ */
/* ~~~ BASE RULES ~~~ */
/* ~~~~~~~~~~~~~~~~~~ */
html {
  height: 100%;
}
body {
  height: auto;
  color: var(--cBlack);
  background: var(--cWhite);
}
html,
body {
  margin: 0;
  padding: 0;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
  -webkit-text-size-adjust: 100%;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
button,
select {
  text-transform: none;
}
button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
  font-size: 100%;
  line-height: 1.15;
  margin: 0;
  -webkit-appearance: none;
  appearance: none;
}
summary {
  display: list-item;
  cursor: pointer;
  list-style: none;
}
summary::-webkit-details-marker {
  display: none;
}
template,
[hidden] {
  display: none;
}

header {
  height: 7rem;
  transition: background-color 0.3s ease;
  border-bottom-right-radius: 2rem;
  border-bottom-left-radius: 2rem;
}

header.scrolled {
  background-color: rgba(255, 255, 255, 0.98);
  /* box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); */
}

header.scrolled nav {
  color: black;
}

header.scrolled nav a {
  color: black;
}

nav a:not(.logo, .typeform-share) {
  position: relative;
}

/* Make nav relative to contain mobile navigation */
nav {
  position: relative;
}

header nav a:not(.logo)::before {
  content: "(";
  position: absolute;
  left: -1rem;
  opacity: 0;
  transform: translateX(1rem);
  transition: all 0.3s ease;
  color: var(--cGreen);
}

header nav a:not(.logo)::after {
  content: ")";
  position: absolute;
  right: -1rem;
  opacity: 0;
  transform: translateX(-1rem);
  transition: all 0.3s ease;
  color: var(--cGreen);
}

header nav a:not(.logo):hover::before {
  opacity: 1;
  transform: translateX(0);
}

header nav a:not(.logo):hover::after {
  opacity: 1;
  transform: translateX(0);
}

footer a:hover {
  color: var(--cGreen);
}

/* ~~~~~~~~~~~~~~~~~~ */
/* ~~~ TYPOGRAPHY ~~~ */
/* ~~~~~~~~~~~~~~~~~~ */
html {
  font-size: 62.5%;
}
body {
  font-size: 1.6em;
  font-weight: 400;
  font-style: normal;
  font-family: "basic-sans", Helvetica, Arial, sans-serif;
}
strong {
  font-family: "basic-sans", Helvetica, Arial, sans-serif;
  font-weight: 900;
}
small {
  font-size: 80%;
}
hr {
  display: block;
  border: none;
  margin: 1rem 0;
  box-sizing: content-box;
  height: 0.1rem;
  overflow: visible;
}
sub {
  bottom: -0.25em;
}
sup {
  top: -0.5em;
}
em {
  font-style: italic;
}
p {
  margin-bottom: 2rem;
}

.regular {
  font-family: "basic-sans", Helvetica, Arial, sans-serif;
  font-weight: 400;
}
.bold {
  font-family: "basic-sans", Helvetica, Arial, sans-serif;
  font-weight: 900;
}

.uppercase {
  text-transform: uppercase;
}
.lowercase {
  text-transform: lowercase;
}
.capitalize {
  text-transform: capitalize;
}
.breakword {
  word-break: break-word;
}
.text-left {
  text-align: left;
}
.text-right {
  text-align: right;
}
.text-center {
  text-align: center;
}
.underline {
  text-decoration: underline;
  text-underline-offset: 0.6rem;
}
.linethrough {
  text-decoration: line-through;
}
.no-decoration {
  text-decoration: none;
}
.text-ellipsis {
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden;
}
.text-shadow-white {
  text-shadow: 0.1rem 0.1rem 0 var(--cWhite), -0.1rem 0.1rem 0 var(--cWhite),
    0.1rem -0.1rem 0 var(--cWhite), -0.1rem -0.1rem 0 var(--cWhite);
}

.txt-150 {
  font-size: var(--font-150);
  line-height: var(--line-150);
}
.txt-110 {
  font-size: var(--font-110);
  line-height: var(--line-110);
}
.txt-100 {
  font-size: var(--font-100);
  line-height: var(--line-100);
}
.txt-60 {
  font-size: var(--font-60);
  line-height: var(--line-60);
}
.txt-55 {
  font-size: var(--font-55);
  line-height: var(--line-55);
}
.txt-48 {
  font-size: var(--font-48);
  line-height: var(--line-48);
}
.txt-40 {
  font-size: var(--font-40);
  line-height: var(--line-40);
}
.txt-32 {
  font-size: var(--font-32);
  line-height: var(--line-32);
}
.txt-24 {
  font-size: var(--font-24);
  line-height: var(--line-24);
}
.txt-20 {
  font-size: var(--font-20);
  line-height: var(--line-20);
}
.txt-18 {
  font-size: var(--font-18);
  line-height: var(--line-18);
}
.txt-16 {
  font-size: var(--font-16);
  line-height: var(--line-16);
}
.txt-14 {
  font-size: var(--font-14);
  line-height: var(--line-14);
}
.txt-12 {
  font-size: var(--font-12);
  line-height: var(--line-12);
}

.line-height-initial {
  line-height: initial;
}

.text-nowrap {
  white-space: nowrap;
}
.text-break {
  word-break: break-all;
}
.text-truncate {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.badge {
  letter-spacing: 0.4rem;
  padding: 1rem 2rem;
  transform: rotate(-10deg);
  background: linear-gradient(
    45deg,
    rgba(246, 146, 81, 1),
    rgba(235, 94, 81, 1)
  );
  width: fit-content;
  margin-left: -1rem;
  border: 1px solid var(--cBlack);
  color: var(--cBlack);
}
@media (max-width: 49em) {
  .sm-badge {
    letter-spacing: 0.2rem;
    padding: 0.5rem 1rem;
    transform: rotate(-10deg);
    width: fit-content;
  }
}

@media (max-width: 64em) {
  .mds-text-center {
    text-align: center;
  }
}

@media (max-width: 49em) {
  .sm-txt-150 {
    font-size: var(--font-150);
    line-height: var(--line-150);
  }
  .sm-txt-110 {
    font-size: var(--font-110);
    line-height: var(--line-110);
  }
  .sm-txt-100 {
    font-size: var(--font-100);
    line-height: var(--line-100);
  }
  .sm-txt-60 {
    font-size: var(--font-60);
    line-height: var(--line-60);
  }
  .sm-txt-55 {
    font-size: var(--font-55);
    line-height: var(--line-55);
  }
  .sm-txt-50 {
    font-size: var(--font-50);
    line-height: var(--line-50);
  }
  .sm-txt-48 {
    font-size: var(--font-48);
    line-height: var(--line-48);
  }
  .sm-txt-40 {
    font-size: var(--font-40);
    line-height: var(--line-40);
  }
  .sm-txt-32 {
    font-size: var(--font-32);
    line-height: var(--line-32);
  }
  .sm-txt-24 {
    font-size: var(--font-24);
    line-height: var(--line-24);
  }
  .sm-txt-12 {
    font-size: var(--font-12);
    line-height: var(--line-12);
  }
  .sm-text-center {
    text-align: center;
  }
  .sm-text-left {
    text-align: left;
  }
  .sm-text-right {
    text-align: right;
  }
}

/* ~~~~~~~~~~~~~~~ */
/* ~~~ CURSORS ~~~ */
/* ~~~~~~~~~~~~~~~ */
.cursor-not-allowed {
  cursor: not-allowed;
}
.cursor-grab {
  cursor: grab;
}
.cursor-grabbing {
  cursor: grabbing;
}
.cursor-pointer {
  cursor: pointer;
}
.cursor-zoom-in {
  cursor: zoom-in;
}

.pointer-events-none {
  pointer-events: none;
}

/* ~~~~~~~~~~~~~~~ */
/* ~~~ PALETTE ~~~ */
/* ~~~~~~~~~~~~~~~ */
.color-white {
  color: var(--cWhite);
}
.color-black {
  color: var(--cBlack);
}
.color-beige {
  color: var(--cBeige);
}
.color-blue {
  color: var(--cBlue);
}
.color-green {
  color: var(--cGreen);
}
.color-magenta {
  color: var(--cMagenta);
}
.color-darkblue {
  color: var(--cDarkBlue);
}
.color-dgray {
  color: var(--cDgray);
}
.color-lgray {
  color: var(--cLgray);
}

.bg-shade {
  background: linear-gradient(0deg, rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2));
}

.bg-transparent {
  background-color: var(--cTransparent);
}
.bg-white_o {
  background-color: var(--cWhite_o);
}
.bg-white {
  background-color: var(--cWhite);
}
.bg-black {
  background-color: var(--cBlack);
}
.bg-lgray {
  background-color: var(--cLgray);
}
.bg-mgray {
  background-color: var(--cMgray);
}
.bg-dgray {
  background-color: var(--cDgray);
}
.bg-magenta {
  background-color: var(--cMagenta);
}
.bg-blue {
  background-color: var(--cBlue);
}
.bg-green {
  background-color: var(--cGreen);
}
.bg-darkblue {
  background-color: var(--cDarkBlue);
}
.bg-gradient-black {
  background: var(--cGradientBlack);
}
.bg-gradient-color {
  background: var(--cGradientColor);
}

.shadow {
  box-shadow: 0 0 3rem rgba(0, 0, 0, 0.2);
}
.gradient-text {
  background: var(--cGradientColor);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  color: transparent;
}

.invert {
  filter: invert(1);
}
.bw {
  filter: brightness(0%);
}
.grayscale {
  filter: grayscale(100%);
}

/* .overlay-magenta { filter: brightness(80%) saturate(100%) invert(10%) sepia(89%) saturate(345%) hue-rotate(33deg) brightness(90%) contrast(70%); } */
.overlay-magenta {
  background: radial-gradient(
    circle,
    rgba(62, 145, 255, 1) 0%,
    rgba(10, 4, 56, 1) 70%,
    rgba(189, 0, 255, 1) 100%
  );
}

@media (max-width: 80em) {
  .md-bg-transparent {
    background-color: var(--cTransparent);
  }
}

@media (max-width: 49em) {
  .sm-color-white {
    color: var(--cWhite);
  }
  .sm-color-black {
    color: var(--cBlack);
  }
  .sm-bg-transparent {
    background-color: var(--cTransparent);
  }
  .sm-bg-magenta {
    background-color: var(--cMagenta);
  }
}

/* ===================== */
/* === ACCESSIBILITY === */
/* ===================== */
.visually-hidden,
.visually-hidden:not(:focus):not(:active) {
  position: absolute !important;
  overflow: hidden;
  height: 1px;
  width: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  word-wrap: normal !important;
}
.skip-link:focus {
  z-index: 9999;
  position: inherit;
  overflow: auto;
  width: auto;
  height: auto;
  clip: auto;
}
*:focus-visible {
  outline: 0.4rem solid orangered;
  outline-offset: 0.5rem;
}

/* ============================ */
/* === VISIBILITY & OPACITY === */
/* ============================ */
.opacity-0 {
  opacity: 0;
}
.opacity-1 {
  opacity: 1;
}
.opacity-03 {
  opacity: 0.3;
}
.opacity-05 {
  opacity: 0.5;
}

.hidden {
  display: none;
}
@media (max-width: 49em) {
  .sm-show {
    display: block;
  }
}

/* ~~~~~~~~~~~~~~ */
/* ~~~ LAYOUT ~~~ */
/* ~~~~~~~~~~~~~~ */
.flex-container {
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  margin: 0 auto;
  padding: 0 5%;
} /* max-width: 204.8rem; max-width: 256rem; */
.flex-container-fluid {
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  margin: 0 auto;
} /* max-width: 204.8rem; max-width: 256rem; */

.lg-0 {
  display: none;
}
.lg-1 {
  width: 8.33%;
}
.lg-2 {
  width: 16.66%;
}
.lg-3 {
  width: 25%;
}
.lg-4 {
  width: 33.33%;
}
.lg-5 {
  width: 41.66%;
}
.lg-6 {
  width: 50%;
}
.lg-7 {
  width: 58.33%;
}
.lg-8 {
  width: 66.66%;
}
.lg-9 {
  width: 75%;
}
.lg-10 {
  width: 83.33%;
}
.lg-11 {
  width: 91.66%;
}
.lg-12 {
  width: 100%;
}

@media (max-width: 80em) {
  .md-0 {
    display: none;
  }
  .md-1 {
    width: 8.33%;
  }
  .md-2 {
    width: 16.66%;
  }
  .md-3 {
    width: 25%;
  }
  .md-4 {
    width: 33.33%;
  }
  .md-5 {
    width: 41.66%;
  }
  .md-6 {
    width: 50%;
  }
  .md-7 {
    width: 58.33%;
  }
  .md-8 {
    width: 66.66%;
  }
  .md-9 {
    width: 75%;
  }
  .md-10 {
    width: 83.33%;
  }
  .md-11 {
    width: 91.66%;
  }
  .md-12 {
    width: 100%;
  }
}

@media (max-width: 64em) {
  .mds-0 {
    display: none;
  }
  .mds-1 {
    width: 8.33%;
  }
  .mds-2 {
    width: 16.66%;
  }
  .mds-3 {
    width: 25%;
  }
  .mds-4 {
    width: 33.33%;
  }
  .mds-5 {
    width: 41.66%;
  }
  .mds-6 {
    width: 50%;
  }
  .mds-7 {
    width: 58.33%;
  }
  .mds-8 {
    width: 66.66%;
  }
  .mds-9 {
    width: 75%;
  }
  .mds-10 {
    width: 83.33%;
  }
  .mds-11 {
    width: 91.66%;
  }
  .mds-12 {
    width: 100%;
  }
}

@media (max-width: 49em) {
  .flex-container,
  .flex-container-fluid {
    padding: 1.5rem;
  }
  .sm-0 {
    display: none !important;
  }
  .sm-1 {
    width: 8.33%;
  }
  .sm-2 {
    width: 16.66%;
  }
  .sm-3 {
    width: 25%;
  }
  .sm-4 {
    width: 33.33%;
  }
  .sm-5 {
    width: 41.66%;
  }
  .sm-6 {
    width: 50%;
  }
  .sm-7 {
    width: 58.33%;
  }
  .sm-8 {
    width: 66.66%;
  }
  .sm-9 {
    width: 75%;
  }
  .sm-10 {
    width: 83.33%;
  }
  .sm-11 {
    width: 91.66%;
  }
  .sm-12 {
    width: 100%;
  }
}

/* ~~~~~~~~~~~~~~~~ */
/* ~~~ GRID CSS ~~~ */
/* ~~~~~~~~~~~~~~~ */
.grid {
  display: grid;
}
.grid-cols-1 {
  grid-template-columns: repeat(1, minmax(0, 1fr));
}
.grid-cols-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.grid-cols-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.grid-cols-4 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

/* ~~~~~~~~~~~~~~~~~~~~~~~ */
/* ~~~ JUSTIFY CONTENT ~~~ */
/* ~~~~~~~~~~~~~~~~~~~~~~~ */
.justify-content-start {
  justify-content: flex-start;
}
.justify-content-end {
  justify-content: flex-end;
}
.justify-content-center {
  justify-content: center;
}
.justify-content-evenly {
  justify-content: space-evenly;
}
.justify-content-around {
  justify-content: space-around;
}
.justify-content-between {
  justify-content: space-between;
}
.justify-content-initial {
  justify-content: initial;
}

/* ~~~~~~~~~~~~~~~~~ */
/* ~~~ ALIGNMENT ~~~ */
/* ~~~~~~~~~~~~~~~~~ */
.align-items-start {
  align-items: flex-start;
}
.align-items-end {
  align-items: flex-end;
}
.align-items-center {
  align-items: center;
}
.align-items-stretch {
  align-items: stretch;
}
.align-items-baseline {
  align-items: baseline;
}
.align-items-initial {
  align-items: initial;
}
.align-content-center {
  align-content: center;
}

.align-self-start {
  align-self: flex-start;
}

/* ~~~~~~~~~~~~ */
/* ~~~ FLEX ~~~ */
/* ~~~~~~~~~~~~ */
.flex-row {
  flex-direction: row;
}
.flex-column {
  flex-direction: column;
}
.flex-wrap {
  flex-wrap: wrap;
}
.flex-nowrap {
  flex-wrap: nowrap;
}

.flex-0 {
  flex: none;
}
.flex-1 {
  flex: 1 1 0%;
}
.flex-auto {
  flex: 1 1 auto;
}
.flex-grow-0 {
  flex-grow: 0;
}
.flex-grow-1 {
  flex-grow: 1;
}
.flex-initial {
  flex: 0 1 auto;
}
.flex-shrink-0 {
  flex-shrink: 0;
}
.flex-shrink-1 {
  flex-shrink: 1;
}

.flex-basis-0 {
  flex-basis: 0;
}
.flex-basis-auto {
  flex-basis: auto;
}
.flex-basis-full {
  flex-basis: 100%;
}

@media (max-width: 80em) {
  .md-justify-content-between {
    justify-content: space-between;
  }
  .md-align-items-center {
    align-items: center;
  }
}

@media (max-width: 64em) {
  .mds-flex-column {
    flex-direction: column;
  }
  .mds-align-self-center {
    align-self: center;
  }
}

@media (max-width: 49em) {
  .sm-align-items-start {
    align-items: flex-start;
  }
  .sm-align-items-center {
    align-items: center;
  }
  .sm-justify-content-center {
    justify-content: center;
  }
  .sm-justify-content-start {
    justify-content: flex-start;
  }
  .sm-flex-column {
    flex-direction: column;
  }
  .sm-flex-reverse-column {
    flex-direction: column-reverse;
  }
  .sm-flex-row {
    flex-direction: row;
  }
  .sm-flex-nowrap {
    flex-wrap: nowrap;
  }
  .sm-flex-wrap {
    flex-wrap: wrap;
  }
}

/* ~~~~~~~~~~~~~ */
/* ~~~ ORDER ~~~ */
/* ~~~~~~~~~~~~~ */
.order-0 {
  order: 0;
}
.order-1 {
  order: 1;
}
.order-2 {
  order: 2;
}
.order-3 {
  order: 3;
}
.order-4 {
  order: 4;
}
.order-last {
  order: 9999;
}

@media (max-width: 49em) {
  .sm-order-0 {
    order: 0;
  }
  .sm-order-1 {
    order: 1;
  }
  .sm-order-2 {
    order: 2;
  }
  .sm-order-3 {
    order: 3;
  }
  .sm-order-4 {
    order: 4;
  }
  .sm-order-last {
    order: 9999;
  }
}

/* ~~~~~~~~~~~~~~~~ */
/* ~~~ OVERFLOW ~~~ */
/* ~~~~~~~~~~~~~~~~ */
.overflow-hidden {
  overflow: hidden;
}

.overflow-y-auto {
  overflow-y: auto;
}
.overflow-y-scroll {
  overflow-y: scroll;
}

.overflow-x-auto {
  overflow-x: auto;
}
.overflow-x-scroll {
  overflow-x: scroll;
}
.overflow-x-hidden {
  overflow-x: hidden;
}

@media (max-width: 49em) {
  .sm-overflow-x-auto {
    overflow-x: auto;
  }
}

/* ~~~~~~~~~~~~~~~~~~~ */
/* ~~~ BACKGROUND ~~~~ */
/* ~~~~~~~~~~~~~~~~~ */
.bg-center {
  background-position: center center;
}
.bg-cover {
  background-size: cover;
}
.bg-contain {
  background-size: contain;
}
.bg-norepeat {
  background-repeat: no-repeat;
}
.bg-fixed {
  background-attachment: fixed;
}

.bg-preset-fixed-cover {
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
  background-attachment: fixed;
}

/* ~~~~~~~~~~~~~~~~ */
/* ~~~ POSITION ~~~ */
/* ~~~~~~~~~~~~~~~~ */
.relative {
  position: relative;
}
.absolute {
  position: absolute;
}
.fixed {
  position: fixed;
}
.sticky {
  position: sticky;
}

@media (max-width: 49em) {
  .sm-absolute {
    position: absolute;
  }
  .sm-relative {
    position: relative;
  }
  .sm-position-initial {
    position: initial;
  }
}

/* ~~~~~~~~~~~~~~~~~~~~~~~~ */
/* ~~~ BASE POSITIONING ~~~ */
/* ~~~~~~~~~~~~~~~~~~~~~~~~ */
.top-0 {
  top: 0;
}
.top-p10 {
  top: 10%;
}
.top-p70 {
  top: 70%;
}
.top-r05 {
  top: 0.5rem;
}
.top-r5 {
  top: 5rem;
}
.top-r10 {
  top: 10rem;
}
.left-0 {
  left: 0;
}
.left-p10 {
  left: 10%;
}
.left-p12 {
  left: 12%;
}
.right-0 {
  right: 0;
}
.bottom-0 {
  bottom: 0;
}
.bottom-1 {
  bottom: 1rem;
}
.left-1 {
  left: 1rem;
}
.left-p5 {
  left: 5%;
}
.left-p10 {
  left: 10%;
}
.right-1 {
  right: 1rem;
}
.top-1 {
  top: 1rem;
}

.top-neg-r25 {
  top: -25px;
}
.top-neg-p10 {
  top: -10%;
}
.left-neg-p5 {
  left: -5%;
}
.left-p50 {
  left: 50%;
}
.left-neg-p20 {
  left: -20%;
}
.left-neg-p50 {
  left: -50%;
}
.left-neg-r40 {
  left: -40px;
}

@media (max-width: 49em) {
  .sm-top-0 {
    top: 0;
  }
  .sm-top-p3 {
    top: 3%;
  }
  .sm-top-p5 {
    top: 5%;
  }
  .sm-top-r50 {
    top: 5rem;
  }
  .sm-left-p5 {
    left: 5%;
  }
  .sm-left-r15 {
    left: 1.5rem;
  }
  .sm-top-p20 {
    top: 20%;
  }
  .sm-top-p30 {
    top: 30%;
  }
  .sm-top-p40 {
    top: 40%;
  }
  .sm-top-neg-p10 {
    top: -10%;
  }
  .sm-top-neg-p20 {
    top: -20%;
  }
  .sm-top-neg-p30 {
    top: -30%;
  }
  .sm-top-neg-p40 {
    top: -40%;
  }
  .sm-left-neg-p5 {
    left: -5%;
  }
  .sm-left-neg-p20 {
    left: -20%;
  }
  .sm-right-0 {
    right: 0;
  }
  .sm-right-p10 {
    right: 10%;
  }
  .sm-right-neg-p20 {
    right: -20%;
  }
  .sm-right-neg-p50 {
    right: -50%;
  }
  .sm-bottom-neg-p10 {
    bottom: -10%;
  }
  .sm-bottom-neg-p20 {
    bottom: -20%;
  }
  .sm-bottom-neg-p30 {
    bottom: -30%;
  }
  .sm-bottom-neg-p40 {
    bottom: -40%;
  }
}

/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
/* ~~~ COMPOUND POSITIONING ~~~ */
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
.v-flex-center {
  display: flex;
  align-items: center;
}
.h-flex-center {
  display: flex;
  justify-content: center;
}
.vh-flex-center {
  display: flex;
  justify-content: center;
  align-items: center;
}

.v-center {
  top: 50%;
  transform: translateY(-50%);
}
.h-center {
  left: 50%;
  transform: translate(-50%);
}
.vh-center {
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.trans-rot-neg-15 {
  transform: rotate(-15deg);
}
.trans-rot-25 {
  transform: rotate(25deg);
}

@media (max-width: 49em) {
  .sm-vh-center {
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
  }
  .sm-reset-pos {
    top: initial;
    left: initial;
    transform: initial;
  }
  .sm-reset-v-center {
    top: initial;
    transform: initial;
  }
  .sm-reset-h-center {
    left: initial;
    transform: initial;
  }

  .sm-trans-rot-neg-15 {
    transform: rotate(-15deg);
  }
  .sm-trans-rot-25 {
    transform: rotate(25deg);
  }
  .sm-scale-08 {
    transform: scale(0.8);
  }

  .sm-trans-rot-25-and-scale {
    transform: rotate(25deg) scale(0.8);
  }
  .sm-trans-rot-neg-25-and-scale {
    transform: rotate(-25deg) scale(0.8);
  }
}

.border-solid {
  border: 2px solid var(--cBlack);
}
.border-1-darkblue {
  border: 1px solid var(--cDarkBlue);
}
.border-1-magenta {
  border: 1px solid var(--cMagenta);
}
.border-white {
  border: 2px solid var(--cWhite);
}
.border-1-dgray {
  border: 2px solid var(--cDgray);
}
.border-bottom-lgray {
  border-bottom: 2px solid var(--cLgray);
}
.border-top-lgray {
  border-top: 2px solid var(--cLgray);
}
.border-bottom-dgray {
  border-bottom: 2px solid var(--cDgray);
}

.border-left-1-white {
  border-left: 1px solid var(--cWhite);
}
.border-right-1-white {
  border-right: 1px solid var(--cWhite);
}

/* ~~~~~~~~~~~~~~~ */
/* ~~~ DISPLAY ~~~ */
/* ~~~~~~~~~~~~~~~ */
.none {
  display: none;
}
.flex {
  display: flex;
}
.grid {
  display: grid;
}
.block {
  display: block;
}
.inline {
  display: inline;
}
.inline-flex {
  display: inline-flex;
}
.inline-block {
  display: inline-block;
}

@media (max-width: 80em) {
  .md-flex {
    display: flex;
  }
}

@media (max-width: 49em) {
  .sm-none {
    display: none;
  }
  .sm-flex {
    display: flex;
  }
}

/* ~~~~~~~~~~~~~~~ */
/* ~~~ Z-INDEX ~~~ */
/* ~~~~~~~~~~~~~~~ */
.z1 {
  z-index: 1;
}
.z2 {
  z-index: 2;
}
.z3 {
  z-index: 3;
}
.z4 {
  z-index: 4;
}
.z5 {
  z-index: 5;
}
.z6 {
  z-index: 6;
}
.z7 {
  z-index: 7;
}
.z8 {
  z-index: 8;
}
.z9 {
  z-index: 9;
}
.z10 {
  z-index: 10;
}

/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
/* ~~~ OBJECT FIT AND POSITION ~~~ */
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
.object-cover {
  object-fit: cover;
}
.object-contain {
  object-fit: contain;
}
.object-center {
  object-position: center;
}
.object-top {
  object-position: top;
}
.object-left {
  object-position: left;
}
.object-right {
  object-position: right;
}
.object-bottom {
  object-position: bottom;
}

@media (max-width: 49em) {
  .sm-object-right {
    object-position: right;
  }
}

/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
/* ~~~ ASPECT RATIO BOXES + SHAPES ~~~ */
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
[class*="square"]::after,
[class*="portrait"]::after,
[class*="landscape"]::after {
  content: "";
  display: block;
}

.circle {
  border-radius: 100%;
}
.round {
  border-radius: 5rem;
}
.rounded {
  border-radius: 2rem;
}
.square::after {
  padding-bottom: 100%;
}
.landscape-40::after {
  padding-bottom: 40%;
}
.landscape-50::after {
  padding-bottom: 50%;
}
.landscape-70::after {
  padding-bottom: 70%;
}
.portrait-120::after {
  padding-bottom: 120%;
}

/* ~~~~~~~~~~~~~~~~~~~~~ */
/* ~~~ WIDTH PRESETS ~~~ */
/* ~~~~~~~~~~~~~~~~~~~~~ */
.w-0 {
  width: 0;
}
.w-fit {
  width: fit-content;
}
.w-auto {
  width: auto;
}

.w-p10 {
  width: 10%;
}
.w-p25 {
  width: 25%;
}
.w-p33 {
  width: 33.333%;
}
.w-p375 {
  width: 37.5%;
}
.w-p40 {
  width: 40%;
}
.w-p50 {
  width: 50%;
}
.w-p60 {
  width: 60%;
}
.w-p60 {
  width: 66.666%;
}
.w-p75 {
  width: 75%;
}
.w-p90 {
  width: 90%;
}
.w-p100 {
  width: 100%;
}

.w-r01 {
  width: 1rem;
}
.w-r02 {
  width: 2rem;
}
.w-r03 {
  width: 3rem;
}
.w-r04 {
  width: 4rem;
}
.w-r05 {
  width: 5rem;
}
.w-r06 {
  width: 6rem;
}
.w-r075 {
  width: 7.5rem;
}
.w-r08 {
  width: 8rem;
}
.w-r10 {
  width: 10rem;
}
.w-r15 {
  width: 15rem;
}
.w-r20 {
  width: 20rem;
}
.w-r30 {
  width: 30rem;
}
.w-r45 {
  width: 45rem;
}

.w-vh100 {
  width: 100vh;
}

.w-max-r5 {
  max-width: 5rem;
}
.w-max-r10 {
  max-width: 10rem;
}
.w-max-r15 {
  max-width: 15rem;
}
.w-max-r20 {
  max-width: 20rem;
}
.w-max-r25 {
  max-width: 25rem;
}
.w-max-r30 {
  max-width: 30rem;
}
.w-max-r40 {
  max-width: 40rem;
}
.w-max-r50 {
  max-width: 50rem;
}
.w-max-r56 {
  max-width: 56rem;
}
.w-max-r60 {
  max-width: 60rem;
}

.w-max-vw80 {
  max-width: 80vw;
}
.w-max-vw90 {
  max-width: 90vw;
}
.w-max-r100 {
  max-width: 100rem;
}
w .w-max-r144 {
  max-width: 144rem;
}

@media (max-width: 80em) {
  .md-h-auto {
    height: auto;
  }
  .md-w-max-r10 {
    max-width: 10rem;
  }
}

@media (max-width: 49em) {
  .sm-w-max-reset {
    max-width: initial;
  }
  .sm-w-min-r10 {
    min-width: 10rem;
  }
  .sm-w-max-r10 {
    max-width: 10rem;
  }
  .sm-w-max-r20 {
    max-width: 20rem;
  }
  .sm-w-r02 {
    width: 2rem;
  }
  .sm-w-r03 {
    width: 3rem;
  }
  .sm-w-r04 {
    width: 4rem;
  }
  .sm-w-r05 {
    width: 5rem;
  }
  .sm-w-r06 {
    width: 6rem;
  }
  .sm-w-r075 {
    width: 7.5rem;
  }
  .sm-w-r08 {
    width: 8rem;
  }
  .sm-w-r10 {
    width: 10rem;
  }
  .sm-w-r15 {
    width: 15rem;
  }
  .sm-w-r20 {
    width: 20rem;
  }
  .sm-w-r30 {
    width: 30rem;
  }
  .sm-w-r45 {
    width: 45rem;
  }
  .sm-w-r50 {
    width: 50rem;
  }
  .sm-w-r60 {
    width: 60rem;
  }

  .sm-w-content {
    width: max-content;
  }
  .sm-w-r04 {
    width: 4rem;
  }
  .sm-w-r06 {
    width: 6rem;
  }
  .sm-w-r20 {
    width: 20rem;
  }
  .sm-w-p50 {
    width: 50%;
  }
  .sm-w-p60 {
    width: 60%;
  }
  .sm-w-p75 {
    width: 75%;
  }
  .sm-w-p90 {
    width: 90%;
  }
  .sm-w-p100 {
    width: 100%;
  }

  .sm-w-p33 {
    width: 33.33%;
  }
  .sm-w-fit {
    width: fit-content;
  }
}

/* ~~~~~~~~~~~~~~~~~~~~~~ */
/* ~~~ HEIGHT PRESETS ~~~ */
/* ~~~~~~~~~~~~~~~~~~~~~~ */
.h-0 {
  height: 0;
}
.h-auto {
  height: auto;
}
.h-fit {
  height: fit-content;
}

.h-p33 {
  height: 33.333%;
}
.h-p90 {
  height: 90%;
}
.h-p100 {
  height: 100%;
}

.h-r01 {
  height: 1rem;
}
.h-r02 {
  height: 2rem;
}
.h-r03 {
  height: 3rem;
}
.h-r035 {
  height: 3.5rem;
}
.h-r04 {
  height: 4rem;
}
.h-r05 {
  height: 5rem;
}
.h-r06 {
  height: 6rem;
}
.h-r075 {
  height: 7.5rem;
}
.h-r08 {
  height: 8rem;
}
.h-r10 {
  height: 10rem;
}
.h-r30 {
  height: 30rem;
}

.h-vh35 {
  height: 35vh;
}
.h-vh50 {
  height: 50vh;
}
.h-vh80 {
  height: 80vh;
}
.h-vh90 {
  height: 90vh;
}
.h-vh100 {
  height: 100vh;
}

.h-min-r5 {
  min-height: 5rem;
}
.h-min-r10 {
  min-height: 10rem;
}
.h-min-r20 {
  min-height: 20rem;
}
.h-min-r25 {
  min-height: 25rem;
}
.h-min-r100 {
  min-height: 100rem;
}
.h-min-r60 {
  min-height: 60rem;
}
.h-min-vh30 {
  min-height: 30vh;
}
.h-min-vh50 {
  min-height: 50vh;
}
.h-min-vh65 {
  min-height: 65vh;
}
.h-min-vh80 {
  min-height: 80vh;
}
.h-min-vh90 {
  min-height: 90vh;
}
.h-min-vh115 {
  min-height: 115vh;
}

.h-min-r100 {
  min-height: 100rem;
}

.h-max-r5 {
  max-height: 5rem;
}
.h-max-r30 {
  max-height: 30rem;
}

.h-max-vh50 {
  max-height: 50vh;
}
.h-max-vh65 {
  max-height: 65vh;
}
.h-max-vh80 {
  max-height: 80vh;
}
.h-max-r140 {
  max-height: 140rem;
}

@media (max-width: 64em) {
  .mds-w-max-r12 {
    max-width: 12rem;
  }
  .mds-h-max-r20 {
    max-height: 20rem;
  }
  .mds-h-p100 {
    height: 100%;
  }
}

@media (max-width: 49em) {
  .sm-h-auto {
    height: auto;
  }
  .sm-h-min-reset {
    min-height: initial;
  }
  .sm-h-r02 {
    height: 2rem;
  }
  .sm-h-r03 {
    height: 3rem;
  }
  .sm-h-r04 {
    height: 4rem;
  }
  .sm-h-r05 {
    height: 5rem;
  }
  .sm-h-max-r20 {
    max-height: 20rem;
  }
  .sm-h-vh70 {
    height: 70vh;
  }
  .sm-h-vh90 {
    height: 90vh;
  }
  .sm-h-min-vh80 {
    min-height: 80vh;
  }
  .sm-h-p100 {
    height: 100%;
  }
  .sm-h-p33 {
    height: 33.33%;
  }
}

/* ~~~~~~~~~~~~~~~~~~~~~~~ */
/* ~~~ PADDING PRESETS ~~~ */
/* ~~~~~~~~~~~~~~~~~~~~~~~ */
.pdg-0 {
  padding: 0;
}
.pdg-t0 {
  padding-top: 0;
}
.pdg-b0 {
  padding-bottom: 0;
}
.pdg-l0 {
  padding-left: 0;
}
.pdg-r0 {
  padding-right: 0;
}

.pdg-t20 {
  padding-top: 2rem;
}
.pdg-t50 {
  padding-top: 5rem;
}
.pdg-t100 {
  padding-top: 10rem;
}
.pdg-t150 {
  padding-top: 15rem;
}
.pdg-t200 {
  padding-top: 20rem;
}
.pdg-b15 {
  padding-bottom: 1.5rem;
}
.pdg-b20 {
  padding-bottom: 2rem;
}
.pdg-b30 {
  padding-bottom: 3rem;
}
.pdg-b100 {
  padding-bottom: 10rem;
}
.pdg-b200 {
  padding-bottom: 20rem;
}

.pdg-l10 {
  padding-left: 1rem;
}
.pdg-l15 {
  padding-left: 1.5rem;
}
.pdg-l20 {
  padding-left: 2rem;
}

.pdg-r15 {
  padding-right: 1.5rem;
}
.pdg-r20 {
  padding-right: 2rem;
}
.pdg-r30 {
  padding-right: 3rem;
}

.pdg-v10 {
  padding-top: 1rem;
  padding-bottom: 1rem;
}
.pdg-v40 {
  padding-top: 4rem;
  padding-bottom: 4rem;
}
.pdg-v100 {
  padding-top: 10rem;
  padding-bottom: 10rem;
}
.pdg-v200 {
  padding-top: 20rem;
  padding-bottom: 20rem;
}

.pdg-pt5 {
  padding-top: 5%;
}
.pdg-pt7 {
  padding-top: 7.14%;
}
.pdg-pv7 {
  padding-top: 7.14%;
  padding-bottom: 7.14%;
}

.pdg-pb5 {
  padding-bottom: 5%;
}
.pdg-pb10 {
  padding-bottom: 10%;
}

.pdg-ph5 {
  padding-left: 5%;
  padding-right: 5%;
}

.pdg-vwv3 {
  padding-top: 3.58vw;
  padding-bottom: 3.58vw;
}
.pdg-vwv7 {
  padding-top: 7.14vw;
  padding-bottom: 7.14vw;
}

.pdg-vwt3 {
  padding-top: 3.58vw;
}
.pdg-vwr3 {
  padding-right: 3.58vw;
}

.pdg-vwt7 {
  padding-top: 7.14vw;
}
.pdg-vwl7 {
  padding-left: 7.14vw;
}
.pdg-vwr7 {
  padding-right: 7.14vw;
}
.pdg-vwb7 {
  padding-bottom: 7.14vw;
}

.pdg-vwt14 {
  padding-top: 14vw;
}
.pdg-vwb14 {
  padding-bottom: 14vw;
}
.pdg-vwv14 {
  padding-top: 14vw;
  padding-bottom: 14vw;
}
.pdg-vwv20 {
  padding-top: 20vw;
  padding-bottom: 20vw;
}

.pdg-10 {
  padding: 1rem;
}
.pdg-15 {
  padding: 1.5rem;
}
.pdg-20 {
  padding: 2rem;
}
.pdg-25 {
  padding: 2.5rem;
}
.pdg-30 {
  padding: 3rem;
}
.pdg-50 {
  padding: 5rem;
}

.pdg-p5 {
  padding: 5%;
}

.pdg-v05 {
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}
.pdg-v10 {
  padding-top: 1rem;
  padding-bottom: 1rem;
}
.pdg-v15 {
  padding-top: 1.5rem;
  padding-bottom: 1.5rem;
}
.pdg-v20 {
  padding-top: 2rem;
  padding-bottom: 2rem;
}
.pdg-v50 {
  padding-top: 5rem;
  padding-bottom: 5rem;
}
.pdg-h0 {
  padding-left: 0;
  padding-right: 0;
}
.pdg-h15 {
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}
.pdg-h18 {
  padding-left: 1.8rem;
  padding-right: 1.8rem;
}
.pdg-h20 {
  padding-left: 2rem;
  padding-right: 2rem;
}
.pdg-h30 {
  padding-left: 3rem;
  padding-right: 3rem;
}

@media (max-width: 90em) {
  .mdl-pdg-vwt7 {
    padding-top: 7.14vw;
  }
}

@media (max-width: 80em) {
  .md-pdg-vwh7 {
    padding-left: 7.14vw;
    padding-right: 7.14vw;
  }
}

@media (max-width: 49em) {
  .sm-pdg-0 {
    padding: 0;
  }
  .sm-pdg-10 {
    padding: 1rem;
  }
  .sm-pdg-15 {
    padding: 1.5rem;
  }
  .sm-pdg-20 {
    padding: 2rem;
  }
  .sm-pdg-25 {
    padding: 2.5rem;
  }
  .sm-pdg-30 {
    padding: 3rem;
  }
  .sm-pdg-t10 {
    padding-top: 1rem;
  }
  .sm-pdg-t40 {
    padding-top: 4rem;
  }
  .sm-pdg-t80 {
    padding-top: 8rem;
  }
  .sm-pdg-t120 {
    padding-top: 12rem;
  }
  .sm-pdg-vwt14 {
    padding-top: 14vw;
  }
  .sm-pdg-vwv14 {
    padding-top: 14vw;
    padding-bottom: 14vw;
  }
  .sm-pdg-vwv20 {
    padding-top: 20vw;
    padding-bottom: 20vw;
  }
  .sm-pdg-v0 {
    padding-top: 0;
    padding-bottom: 0;
  }
  .sm-pdg-v10 {
    padding-top: 1rem;
    padding-bottom: 1rem;
  }
  .sm-pdg-v40 {
    padding-top: 4rem;
    padding-bottom: 4rem;
  }
  .sm-pdg-v100 {
    padding-top: 10rem;
    padding-bottom: 10rem;
  }
  .sm-pdg-pb10 {
    padding-bottom: 10%;
  }
  .sm-pdg-b0 {
    padding-bottom: 0;
  }
  .sm-pdg-b10 {
    padding-bottom: 1rem;
  }
  .sm-pdg-b40 {
    padding-bottom: 4rem;
  }
  .sm-pdg-b100 {
    padding-bottom: 10rem;
  }
  .sm-pdg-t150 {
    padding-top: 15rem;
  }
  .sm-pdg-h10 {
    padding-left: 1rem;
    padding-right: 1rem;
  }

  .sm-pdg-vwb7 {
    padding-bottom: 7.14vw;
  }
  .sm-pdg-vwh7 {
    padding-left: 7.14vw;
    padding-right: 7.14vw;
  }
  .sm-pdg-vwv7 {
    padding-top: 7.14vw;
    padding-bottom: 7.14vw;
  }
}

/* ~~~~~~~~~~~~~~~~~~~~~~ */
/* ~~~ MARGIN PRESETS ~~~ */
/* ~~~~~~~~~~~~~~~~~~~~~~ */

.mrg-auto {
  margin: 0 auto;
}
.mrg-t-auto {
  margin-top: auto;
}
.mrg-l-auto {
  margin-left: auto;
}
.mrg-r-auto {
  margin-right: auto;
}
.mrg-0 {
  margin: 0;
}
.mrg-10 {
  margin: 1rem;
}
.mrg-20 {
  margin: 2rem;
}
.mrg-100 {
  margin: 10rem;
}
.mrg-t0 {
  margin-top: 0;
}
.mrg-b0 {
  margin-bottom: 0;
}
.mrg-l0 {
  margin-left: 0;
}
.mrg-r0 {
  margin-right: 0;
}

.mrg-l10 {
  margin-left: 1rem;
}
.mrg-l15 {
  margin-left: 1.5rem;
}
.mrg-l20 {
  margin-left: 2rem;
}
.mrg-l30 {
  margin-left: 3rem;
}
.mrg-r20 {
  margin-right: 2rem;
}
.mrg-r30 {
  margin-right: 3rem;
}

.mrg-pt3 {
  margin-top: 3.58%;
}
.mrg-pt-10 {
  margin-top: -10%;
}
.mrg-pb7 {
  margin-bottom: 7.14%;
}
.mrg-pv3 {
  margin-top: 3.58%;
  margin-bottom: 3.58%;
}
.mrg-pv7 {
  margin-top: 7.14%;
  margin-bottom: 7.14%;
}

.mrg-vwt3 {
  margin-top: 3.58vw;
}
.mrg-vwl3 {
  margin-left: 3.58vw;
}
.mrg-vwr3 {
  margin-right: 3.58vw;
}
.mrg-vwb3 {
  margin-bottom: 3.58vw;
}

.mrg-vwt7 {
  margin-top: 7.14vw;
}
.mrg-vwl7 {
  margin-left: 7.14vw;
}
.mrg-vwr7 {
  margin-right: 7.14vw;
}
.mrg-vwb7 {
  margin-bottom: 7.14vw;
}

.mrg-vwl14 {
  margin-left: 14.28vw;
}
.mrg-vwb14 {
  margin-bottom: 14.28vw;
}

.mrg-vwv3 {
  margin-top: 3.58vw;
  margin-bottom: 3.58vw;
}
.mrg-vwv7 {
  margin-top: 7.14vw;
  margin-bottom: 7.14vw;
}
.mrg-vwv14 {
  margin-top: 14.28vw;
  margin-bottom: 14.28vw;
}

.mrg-t10 {
  margin-top: 1rem;
}
.mrg-t15 {
  margin-top: 1.5rem;
}
.mrg-t20 {
  margin-top: 2rem;
}
.mrg-t30 {
  margin-top: 3rem;
}
.mrg-t40 {
  margin-top: 4rem;
}
.mrg-t50 {
  margin-top: 5rem;
}
.mrg-t60 {
  margin-top: 6rem;
}
.mrg-t70 {
  margin-top: 7rem;
}
.mrg-t100 {
  margin-top: 10rem;
}
.mrg-t150 {
  margin-top: 15rem;
}
.mrg-t200 {
  margin-top: 20rem;
}

.mrg-b05 {
  margin-bottom: 0.5rem;
}
.mrg-b10 {
  margin-bottom: 1rem;
}
.mrg-b15 {
  margin-bottom: 1.5rem;
}
.mrg-b20 {
  margin-bottom: 2rem;
}
.mrg-b30 {
  margin-bottom: 3rem;
}
.mrg-b40 {
  margin-bottom: 4rem;
}
.mrg-b60 {
  margin-bottom: 6rem;
}
.mrg-b100 {
  margin-bottom: 10rem;
}
.mrg-b200 {
  margin-bottom: 20rem;
}

.mrg-h20 {
  margin-left: 2rem;
  margin-right: 2rem;
}

.mrg-v30 {
  margin-top: 3rem;
  margin-bottom: 3rem;
}
.mrg-v50 {
  margin-top: 5rem;
  margin-bottom: 5rem;
}
.mrg-v60 {
  margin-top: 6rem;
  margin-bottom: 6rem;
}
.mrg-v100 {
  margin-top: 10rem;
  margin-bottom: 10rem;
}
.mrg-v200 {
  margin-top: 20rem;
  margin-bottom: 20rem;
}

.mrg-auto {
  margin: auto;
}
.mrg-h-auto {
  margin-left: auto;
  margin-right: auto;
}
.mrg-t-vh30 {
  margin-top: 30vh;
}
@media (max-width: 64em) {
  .mds-mrg-vwb7 {
    margin-bottom: 7.14vw;
  }
}

@media (max-width: 49em) {
  .sm-mrg-auto {
    margin: auto;
  }
  .sm-mrg-l-auto {
    margin-left: auto;
  }
  .sm-mrg-r-auto {
    margin-right: auto;
  }
  .sm-mrg-h-auto {
    margin-left: auto;
    margin-right: auto;
  }
  .sm-mrg-h-0 {
    margin-left: 0;
    margin-right: 0;
  }
  .sm-mrg-l-10 {
    margin-left: 1rem;
  }
  .sm-mrg-l-20 {
    margin-left: 2rem;
  }
  .sm-mrg-r-10 {
    margin-right: 1rem;
  }
  .sm-mrg-r-20 {
    margin-right: 2rem;
  }
  .sm-mrg-r-30 {
    margin-right: 3rem;
  }
  .sm-mrg-r-40 {
    margin-right: 4rem;
  }
  .sm-mrg-r-0 {
    margin-right: 0;
  }
  .sm-mrg-0 {
    margin: 0;
  }
  .sm-mrg-10 {
    margin: 1rem;
  }
  .sm-mrg-t-p10 {
    margin-top: -10%;
  }
  .sm-mrg-t-40 {
    margin-top: 4rem;
  }
  .sm-mrg-t0 {
    margin-top: 0;
  }
  .sm-mrg-t20 {
    margin-top: 2rem;
  }
  .sm-mrg-t30 {
    margin-top: 3rem;
  }
  .sm-mrg-t40 {
    margin-top: 4rem;
  }
  .sm-mrg-t50 {
    margin-top: 5rem;
  }
  .sm-mrg-t100 {
    margin-top: 10rem;
  }
  .sm-mrg-b0 {
    margin-bottom: 0;
  }
  .sm-mrg-b30 {
    margin-bottom: 3rem;
  }
  .sm-mrg-b40 {
    margin-bottom: 4rem;
  }
  .sm-mrg-b60 {
    margin-bottom: 6rem;
  }
  .sm-mrg-b100 {
    margin-bottom: 10rem;
  }
  .sm-mrg-vwb7 {
    margin-bottom: 7.14vw;
  }
  .sm-mrg-vwb14 {
    margin-bottom: 14.28vw;
  }
  .sm-mrg-vwb20 {
    margin-bottom: 20vw;
  }
  .sm-mrg-v10 {
    margin-top: 1rem;
    margin-bottom: 1rem;
  }
  .sm-mrg-v15 {
    margin-top: 1.5rem;
    margin-bottom: 1.5rem;
  }
  .sm-mrg-v20 {
    margin-top: 2rem;
    margin-bottom: 2rem;
  }
  .sm-mrg-v30 {
    margin-top: 3rem;
    margin-bottom: 3rem;
  }
  .sm-mrg-v40 {
    margin-top: 4rem;
    margin-bottom: 4rem;
  }
  .sm-mrg-v100 {
    margin-top: 10rem;
    margin-bottom: 10rem;
  }
  .sm-mrg-vwv7 {
    margin-top: 7.14vw;
    margin-bottom: 7.14vw;
  }
  .sm-mrg-vwv14 {
    margin-top: 14.28vw;
    margin-bottom: 14.28vw;
  }
  .sm-mrg-vwt28 {
    margin-top: 28.56vw;
  }
}

/* ~~~~~~~~~~~~~~~~~~~~~ */
/* ~~~ OWLS AND GAPS ~~~ */
/* ~~~~~~~~~~~~~~~~~~~~~ */
.owl-vw7 > * + * {
  margin-top: 7.14vw;
}
.owl-r01 > * + * {
  margin-top: 1rem;
}
.owl-r02 > * + * {
  margin-top: 2rem;
}
.owl-r03 > * + * {
  margin-top: 3rem;
}
.owl-r04 > * + * {
  margin-top: 4rem;
}
.owl-r05 > * + * {
  margin-top: 5rem;
}

.gap-10 {
  gap: 1rem;
}
.gap-15 {
  gap: 1.5rem;
}
.gap-20 {
  gap: 2rem;
}
.gap-30 {
  gap: 3rem;
}
.gap-40 {
  gap: 4rem;
}
.gap-60 {
  gap: 6rem;
}
.gap-100 {
  gap: 10rem;
}

@media (max-width: 49em) {
  .sm-gap-10 {
    gap: 1rem;
  }
  .sm-gap-15 {
    gap: 1.5rem;
  }
  .sm-gap-20 {
    gap: 2rem;
  }
  .sm-gap-30 {
    gap: 3rem;
  }
  .sm-gap-40 {
    gap: 4rem;
  }
  .sm-gap-60 {
    gap: 6rem;
  }
  .sm-gap-80 {
    gap: 8rem;
  }
  .sm-owl-r02 > * + * {
    margin-top: 2rem;
  }
  .sm-owl-r03 > * + * {
    margin-top: 3rem;
  }
  .sm-owl-r04 > * + * {
    margin-top: 4rem;
  }
}

/* ~~~~~~~~~~~~~~~~~~~~~~~~~ */
/* ~~~ STANDARD ELEMENTS ~~~ */
/* ~~~~~~~~~~~~~~~~~~~~~~~~~ */

.btn {
  display: inline-block;
  padding: 1rem 2rem;
  border-radius: 1rem;
  transition: background-color 0.3s, color 0.3s;
  cursor: pointer;
  /* width: fit-content; */
  text-align: center;
  border: 2px solid transparent;
}

.btn:hover {
  background-color: transparent;
  border: 2px solid var(--cBlack);
  color: var(--cBlack);
  transition: background-color 0.3s, color 0.3s;
}

/* ~~~~~~~~~~~~~~~~~~~~~ */
/* ~~~ ANIMATIONS CSS ~~~ */
/* ~~~~~~~~~~~~~~~~~~~~~ */
.animate-fade {
  animation: fade var(--duration-default) ease;
}
.animate-slide-up {
  animation: slideUp 1s ease forwards;
}
.animate-slide-down {
  animation: slideDown var(--duration-default) ease;
}

@keyframes fade {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes slideUp {
  from {
    transform: translateY(20px);
    opacity: 0;
  }
  to {
    transform: translateY(0);
    opacity: 1;
  }
}

@keyframes slideDown {
  from {
    transform: translateY(-20px);
    opacity: 0;
  }
  to {
    transform: translateY(0);
    opacity: 1;
  }
}

@keyframes animate-slap {
  0% {
    transform: scale(1.4) rotate(var(--element-rotation, 0deg));
    opacity: 1;
  }
  90% {
    transform: scale(1) rotate(var(--element-rotation, 0deg));
    opacity: 1;
  }
  95% {
    transform: scale(0.95) rotate(var(--element-rotation, 0deg));
    opacity: 1;
  }
  100% {
    transform: scale(1) rotate(var(--element-rotation, 0deg));
    opacity: 1;
  }
}

.apply-slap-animation {
  animation: animate-slap 1s ease-in forwards;
}

/* ~~~~~~~~~~~~~~~~~~~~~ */
/* ~~~ INTERACTIONS ~~~ */
/* ~~~~~~~~~~~~~~~~~~~~~ */
.hover-opacity {
  transition: opacity var(--duration-default) ease;
}
.hover-opacity:hover {
  opacity: 0.8;
}

.hover-scale {
  transition: transform var(--duration-default) ease;
}
.hover-scale:hover {
  transform: scale(1.05);
}

.focus-ring {
  outline: none;
}
.focus-ring:focus-visible {
  outline: 2px solid var(--cBlue);
  outline-offset: 2px;
}

.active-scale:active {
  transform: scale(0.95);
}

.disabled {
  opacity: 0.5;
  pointer-events: none;
  cursor: not-allowed;
}

/* ~~~~~~~~~~~~~~~~~~~~~ */
/* ~~~ PRINT CSS ~~~ */
/* ~~~~~~~~~~~~~~~~~~~~~ */
@media print {
  .print-hidden {
    display: none !important;
  }
  .print-block {
    display: block !important;
  }
  .print-inline {
    display: inline !important;
  }
  .print-inline-block {
    display: inline-block !important;
  }
}

/* ~~~~~~~~~~~~~~~~~~~~~~ */
/* ~~~ CUSTOM CLASSES ~~~ */
/* ~~~~~~~~~~~~~~~~~~~~~~ */

#builds,
#support,
#audit {
  scroll-margin-top: 20rem;
}

.typeform-share {
  transition: all 1s ease;
}

.typeform-share:hover {
  background-color: var(--cBlack);
  color: var(--cWhite);
  border: 2px solid var(--cWhite);
  transition: all 1s ease;
}

.typeform-share-reverse:hover {
  background-color: var(--cWhite);
  color: var(--cBlack);
  border: 2px solid var(--cBlack);
  transition: all 1s ease;
}

.border-gradient {
  position: relative;
  border: 2px solid transparent;
  border-radius: 2rem;
  background: linear-gradient(var(--cBlack), var(--cBlack)) padding-box,
    var(--cGradientColor) border-box;
  color: var(--cWhite);
}
a.border-gradient {
  transition: background-image 1s ease, color 1s ease;
}

a.border-gradient:hover {
  background: linear-gradient(var(--cWhite), var(--cWhite)) padding-box,
    var(--cGradientColor) border-box;
  border: 2px solid transparent;
  color: var(--cBlack);
}
.border-transparent {
  border: 2px solid transparent;
}
/* Projects Section Styles */
#projects {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  /* transition: background-image var(--duration-long) ease; */
  position: relative;
  height: 100vh;
  overflow: hidden;
}

@media (max-width: 49em) {
  #projects {
    height: 70vh;
  }
}

#projects::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: var(--cGradientColor);
  opacity: 0.85;
  z-index: 1;
}

.projects-container {
  position: relative;
  height: 100%;
  display: flex;
  align-items: center;
  z-index: 2;
}

.projects-scroll {
  height: 100%;
  /* scroll-snap-type: y mandatory; */
  scrollbar-width: none;
  -ms-overflow-style: none;
  padding: 50vh 0; /* Add padding to allow scrolling past first/last items */
}

.projects-scroll::-webkit-scrollbar {
  display: none;
}

.project-item {
  height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all var(--duration-default) ease;
  opacity: 0.3;
  transform: scale(0.9);
  color: var(--cBlack);
  scroll-snap-align: center;
}

.project-item:hover {
  opacity: 0.7;
}

.project-item[data-visible="true"] {
  opacity: 1;
  transform: scale(1);
}

.project-info {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity var(--duration-long) ease,
    transform var(--duration-long) ease;
  color: var(--cBlack);
  z-index: 2;
}

.project-info.visible {
  opacity: 1;
  transform: translateY(0);
}

.gallery-item {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  position: relative;
  overflow: hidden;
}

.gallery-item::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: var(--cGradientColor);
  opacity: 0.55;
  z-index: 1;
}

.plans li {
  list-style-type: "→";
  margin-left: 1rem;
  padding-left: 1rem;
}

.plans li::marker {
  color: var(--cLgray);
}

.accordion-icon {
  font-size: 2.5rem;
  font-weight: bold;
  margin-left: 1rem;
  transition: transform 0.2s;
  display: inline-block;
  width: 2rem;
  text-align: center;
}

details[open] .accordion-icon::after {
  content: "−";
}
details:not([open]) .accordion-icon::after {
  content: "+";
}

.extra-services-list li {
  border-bottom: 1px solid var(--cLgray);
  padding-bottom: 1rem;
}

#pain-promise .pain-item,
#pain-promise .promise-item {
  transform: translateX(-20px);
  opacity: 0.8;
  transition: all 0.3s ease;
  cursor: pointer;
  position: relative;
  overflow: hidden;
}

#pain-promise .pain-item:hover,
#pain-promise .promise-item:hover {
  transform: translateX(0);
  opacity: 1;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
}

#pain-promise .pain-item::before,
#pain-promise .promise-item::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 4px;
  height: 100%;
  background: var(--gradient-color);
  transform: scaleY(0);
  transition: transform 0.3s ease;
}

#pain-promise .pain-item:hover::before,
#pain-promise .promise-item:hover::before {
  transform: scaleY(1);
}

#pain-promise .pain-item span,
#pain-promise .promise-item span {
  transition: transform 0.3s ease;
}

#pain-promise .pain-item:hover span,
#pain-promise .promise-item:hover span {
  transform: scale(1.2);
}

/* Gradient Background Animation */
#pain-promise .bg-gradient-black,
#pain-promise .bg-gradient-color {
  position: relative;
  overflow: hidden;
}

#pain-promise .bg-gradient-black::after,
#pain-promise .bg-gradient-color::after {
  content: "";
  position: absolute;
  top: -50%;
  left: -50%;
  width: 200%;
  height: 200%;
  background: linear-gradient(
    45deg,
    transparent 0%,
    rgba(255, 255, 255, 0.1) 50%,
    transparent 100%
  );
  transform: rotate(45deg);
  animation: gradient-shift 8s linear infinite;
}

@keyframes gradient-shift {
  0% {
    transform: rotate(45deg) translateY(-100%);
  }
  100% {
    transform: rotate(45deg) translateY(100%);
  }
}
@media (max-width: 49em) {
  #pain-promise .pain-item,
  #pain-promise .promise-item {
    transform: translateX(0);
  }
}

/* Accessibility */
#pain-promise .pain-item:focus,
#pain-promise .promise-item:focus {
  outline: 2px solid var(--gradient-color);
  outline-offset: 2px;
}

/* Print Styles */
@media print {
  #pain-promise .pain-item,
  #pain-promise .promise-item {
    break-inside: avoid;
    border: 1px solid #000;
  }
}

#project-gallery a {
  position: relative;
  display: block;
}

#project-gallery a img {
  display: block;
  width: 100%;
  transition: all 0.3s ease;
  position: relative;
}

/* Overlay container that will match the image dimensions exactly */
#project-gallery a {
  position: relative;
}

/* The gradient overlay */
#project-gallery a:not(.typeform-share)::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0; /* Adjust based on how much text/content is below your image */
  background: linear-gradient(45deg, var(--cGreen) 0%, var(--cBlue) 100%);
  opacity: 0;
  transition: opacity 0.3s ease;
  pointer-events: none;
  z-index: 1;
}

#project-gallery a:not(.typeform-share):hover::before {
  opacity: 0.3;
}

#project-gallery a .arrow {
  transition: all 0.3s ease;
  transform: rotate(0deg);
}

#project-gallery a:hover .arrow {
  position: relative;
  background: linear-gradient(45deg, var(--cGreen) 0%, var(--cBlue) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  transition: all 0.3s ease;
  transform: rotate(-45deg);
}

#project-gallery a .badge {
  transform: rotate(-10deg);
  transition: all 0.3s ease;
  z-index: 2; /* Ensure badge appears above the overlay */
}

#project-gallery a:hover .badge {
  transform: rotate(-8deg);
}

/* Gradient Blob Animation */
.gradient-blob {
  position: absolute;
  width: 100%;
  height: 100%;
  max-width: 50rem;
  background: linear-gradient(
    45deg,
    var(--cGreen) 0%,
    var(--cBlue) 50%,
    var(--cGreen) 100%
  );
  filter: blur(30px);
  opacity: 1;
  border-radius: 50%;
  animation: blob-animation 15s ease-in-out infinite;
  z-index: 1;
}

@keyframes blob-animation {
  0% {
    transform: translate(0, 0) scale(1);
    width: 80%;
    height: 120%;
    filter: blur(40px);
  }
  33% {
    transform: translate(30px, -20px) scale(1.1);
    width: 110%;
    height: 70%;
    filter: blur(30px);
  }
  66% {
    transform: translate(-20px, 20px) scale(0.9);
    width: 70%;
    height: 90%;
    filter: blur(50px);
  }
  100% {
    transform: translate(0, 0) scale(1);
    width: 80%;
    height: 120%;
    filter: blur(40px);
  }
}

/* Ensure logos stay above the blob */
#logos img {
  position: relative;
  z-index: 1;
}

/* Testimonials */
#testimonials [data-testimonial] {
  display: none;
  opacity: 0;
  transform: translateY(-20px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}
#testimonials [data-testimonial].active {
  display: block;
  opacity: 1;
  transform: translateY(0);
}
[data-testimonial-customer] {
  cursor: pointer;
  transition: color 0.3s ease;
  position: relative;
  z-index: 2;
}
#testimonials .sliding-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 33.333%;
  height: 100%;
  border-radius: inherit;
  background-color: white;
  transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
  z-index: 1;
}
#testimonials [data-testimonial-customer].active {
  color: black !important;
}

/* Mobile testimonial styles */
@media (max-width: 49em) {
  #testimonials [data-testimonial-customer]:not(.active) {
    display: none;
  }

  #testimonials .sliding-bg {
    display: none;
  }

  .testimonial-pagination {
    width: 100%;
  }

  .pagination-btn {
    background: transparent;
    border: 2px solid var(--cWhite);
    cursor: pointer;
    transition: all 0.3s ease;
    width: 4rem;
    height: 4rem;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .pagination-btn:hover {
    background: var(--cWhite_o);
  }

  .pagination-dot {
    border-radius: 50%;
    transition: background-color 0.3s ease;
  }

  .pagination-dot.active {
    background-color: var(--cWhite);
  }
}

/* ~~~~~~~~~~~~~~~~~~~~~~ */
/* ~~~ BURGER MENU ~~~ */
/* ~~~~~~~~~~~~~~~~~~~~~~ */
.burger-menu {
  background: none;
  border: none;
  cursor: pointer;
  padding: 0.5rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 3rem;
  height: 3rem;
  position: relative;
  z-index: 1001;
  gap: 0.5rem;
  border-radius: 0.5rem;
  transition: background-color 0.3s ease;
}

.burger-menu:hover {
  background-color: rgba(255, 255, 255, 0.1);
}

.burger-menu:focus {
  outline: 2px solid var(--cGreen);
  outline-offset: 2px;
}

.burger-line {
  width: 2.5rem;
  height: 0.25rem;
  background: var(--cWhite);
  border-radius: 0.125rem;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  transform-origin: center;
  display: block;
}
.color-black .burger-line {
  background: var(--cGreen);
}

.burger-menu:hover .burger-line {
  background: var(--cGreen);
}

/* Burger menu animation when active */
.burger-menu.active {
  gap: 0;
  background-color: rgba(255, 255, 255, 0.1);
}

.burger-menu.active .burger-line {
  background: var(--cGreen);
}

.burger-menu.active .burger-line:nth-child(1) {
  transform: rotate(45deg);
  position: absolute;
  top: 50%;
  left: 50%;
  margin-top: -0.125rem;
  margin-left: -1.25rem;
}

.burger-menu.active .burger-line:nth-child(2) {
  opacity: 0;
  transform: scaleX(0);
}

.burger-menu.active .burger-line:nth-child(3) {
  transform: rotate(-45deg);
  position: absolute;
  top: 50%;
  left: 50%;
  margin-top: -0.125rem;
  margin-left: -1.25rem;
}

/* Mobile Navigation */
.mobile-nav {
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  height: 0;
  opacity: 0;
  visibility: hidden;
  overflow: hidden;
  transition: height 1s cubic-bezier(0.4, 0, 0.2, 1),
    opacity 0.5s cubic-bezier(0.4, 0, 0.2, 1) 0.5s,
    /* Fades out in the latter half of collapse */ visibility 0s linear 1s; /* Hidden after 1s total */
  z-index: 1;
  box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.3);
  border-bottom-right-radius: 2rem;
  border-bottom-left-radius: 2rem;
  height: 100vh;
}

.mobile-nav.active {
  opacity: 1;
  visibility: visible;
  transition: height 1s cubic-bezier(0.4, 0, 0.2, 1),
    opacity 0.5s cubic-bezier(0.4, 0, 0.2, 1),
    /* Fades in during the first half of expand */ visibility 0s linear 0s; /* Visible immediately */
}

.mobile-nav a {
  position: relative;
  padding: 1rem 2rem;
  border-radius: 1rem;
  opacity: 0;
  transform: translateY(-30px);
  transition: opacity 0.6s ease-out, transform 0.4s ease-out,
    background-color 0.3s ease; /* Added background-color for hover */
}

/* When nav is active, animate links to final position */
.mobile-nav.active a {
  opacity: 1;
  transform: translateX(0);
}

/* Stagger the animation for each link within the first direct div child */
/* Main nav animation is 0.4s. Delays start during/after nav opens. Link anim duration is 0.4s */
.mobile-nav.active .flex.flex-column:first-child a:nth-child(1) {
  transition-delay: 0.1s; /* Total time to full visibility ~0.1s (delay) + 0.4s (duration) = 0.5s */
}
.mobile-nav.active .flex.flex-column:first-child a:nth-child(2) {
  transition-delay: 0.2s; /* ~0.55s */
}
.mobile-nav.active .flex.flex-column:first-child a:nth-child(3) {
  transition-delay: 0.3s; /* ~0.6s */
}
.mobile-nav.active .flex.flex-column:first-child a:nth-child(4) {
  /* Get in touch link */
  transition-delay: 0.4s; /* ~0.65s */
}

.mobile-nav a:not(.typeform-share):hover {
  background: var(--cWhite_o);
}

.mobile-nav a:not(.typeform-share)::before {
  content: "(";
  position: absolute;
  left: -1rem;
  opacity: 0;
  transform: translateX(1rem);
  transition: all 0.3s ease;
  color: var(--cGreen);
}

.mobile-nav a:not(.typeform-share)::after {
  content: ")";
  position: absolute;
  right: -1rem;
  opacity: 0;
  transform: translateX(-1rem);
  transition: all 0.3s ease;
  color: var(--cGreen);
}

.mobile-nav a:not(.typeform-share):hover::before {
  opacity: 1;
  transform: translateX(0);
}

.mobile-nav a:not(.typeform-share):hover::after {
  opacity: 1;
  transform: translateX(0);
}

/* Hide burger menu on desktop */
@media (min-width: 64em) {
  .burger-menu,
  .mobile-nav {
    display: none !important;
  }
}
/* Body scroll lock when mobile menu is open */
body.mobile-menu-open {
  overflow: hidden;
}
body.mobile-menu-open nav {
  background: var(--cGradientBlack);
}

/* New rule to remove header's bottom radius when mobile menu is open */
body.mobile-menu-open header {
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
  transition: border-radius 0.1s linear; /* Optional: smooth out the radius change */
}

@media (max-width: 49em) {
  header.mobile-menu-open {
    position: fixed;
    width: 100%;
    top: 0;
    left: 0;
  }

  header.scrolled nav a:not(.typeform-share) {
    color: var(--cWhite);
  }
  header.scrolled {
    background: var(--cGradientBlack);
  }
}
/* Make mobile nav background match nav when active */
body.mobile-menu-open .mobile-nav {
  background: var(--cGradientBlack);
}

/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
/* ~~~ PRICING COMPARISON TABLE ~~~ */
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
.comparison-table-wrapper {
  border-radius: 1rem; /* Rounded corners for the scrollable container */
  /* box-shadow: 0 0.5rem 1.5rem rgba(0,0,0,0.1); */
  padding-top: 3rem; /* Add space for the badge above the table */
}

.comparison-table {
  border-collapse: separate; /* Allows for rounded corners on table itself if needed, and spacing */
  border-spacing: 0;
  text-align: center;
  border-radius: 1rem;
  /* overflow: hidden; */ /* Ensures child elements respect the border-radius */
  border: 1px solid var(--cLgray);
}

.comparison-table th,
.comparison-table td {
  padding: 1.5rem 1rem; /* Default padding, can be adjusted */
  vertical-align: middle;
  width: 20%;
  min-width: 20rem;
}

/* Header Styles */
.comparison-table thead th {
  padding-top: 2.5rem;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid var(--cLgray); /* Separator line */
}

.comparison-table th.feature-col-header {
  text-align: left;
  padding-left: 2rem;
  background-color: var(--cWhite); /* Match light plan columns */
  border-bottom: 1px solid var(--cLgray);
}

.comparison-table th.plan-col-header {
  border-left: 1px solid var(--cLgray); /* Vertical separators for light plans */
}

.comparison-table th.plan-col-header:first-of-type {
  /* Optimal column, no left border */
  border-left: none;
}

.comparison-table th.premium-service-col {
  border-left: 1px solid var(--cBlack); /* Darker separator for premium plans */
}

.plan-name {
  margin-bottom: 0.5rem;
}

.plan-subtext {
  min-height: 3em; /* Ensure consistent height for subtext */
  font-weight: 400;
}

.most-popular-badge {
  /* Uses utility classes, specific positioning via inline style */
  padding: 0.5rem 1rem;
  font-size: var(--font-12);
  z-index: 2;
}

.premium-services-badge {
  margin-bottom: 0.5rem; /* Space between badge and plan name */
  display: block;
}

/* Body (Feature Rows) Styles */
.comparison-table tbody tr {
  border-bottom: 1px solid var(--cLgray);
}

.comparison-table tbody tr:last-child {
  border-bottom: none;
}

.comparison-table tbody td {
  text-align: center;
}

.comparison-table tbody td.feature-name {
  text-align: left;
  padding-left: 2rem;
  font-weight: 400; /* Regular weight for feature names */
  color: var(--cBlack);
}

.comparison-table td.check-mark,
.comparison-table td.check-mark-dark {
  font-size: 2rem; /* Larger checkmarks */
  font-weight: bold;
}

.comparison-table td.check-mark {
  color: var(--cGreen);
}

.comparison-table td.check-mark-dark {
  color: var(--cGreen) !important;
}

.comparison-table td.plan-text,
.comparison-table td.plan-text-dark,
.comparison-table td.plan-text-dim,
.comparison-table td.plan-text-dim-dark {
  font-size: var(--font-14);
  line-height: var(--line-14);
}

.comparison-table td.plan-text {
  color: var(--cBlack);
  font-weight: 400;
}
.comparison-table td.plan-text-dark {
  color: var(--cWhite);
  font-weight: 400;
}

.comparison-table td.plan-text-dim {
  color: var(--cDgray);
}
.comparison-table td.plan-text-dim-dark {
  color: var(--cLgray);
}

.comparison-table .info-icon {
  font-size: 0.8em;
  color: var(--cDgray);
  cursor: help; /* Indicate it's hoverable/clickable for more info */
  margin-left: 0.5rem;
}

/* Footer Styles */
.comparison-table tfoot tr td {
  padding-top: 2rem;
  padding-bottom: 2rem;
  font-weight: bold;
}

.comparison-table tfoot tr.support-row td {
  border-top: 2px solid var(--cLgray);
  color: var(--cBlack);
}
.comparison-table tfoot tr.support-row td.plan-text-dark {
  color: var(--cWhite);
}

.comparison-table tfoot tr.price-row td {
  font-size: var(--font-24); /* Larger price font */
  color: var(--cBlack);
  padding-top: 1rem;
}
.comparison-table tfoot tr.price-row td.plan-price-dark {
  color: var(--cWhite);
}

.comparison-table tfoot tr.price-row span {
  display: block; /* Make "From" sit on top */
  margin-bottom: 0.25rem;
}

.comparison-table tfoot tr.cta-row td {
  padding-bottom: 2.5rem;
}

/* .btn-table {
    display: inline-block;
    width: 80%;
    max-width: 200px;
    padding: 1rem 1.5rem;
    border-radius: 1rem;
    text-decoration: none;
    font-weight: bold;
    transition: var(--transition-all);
    border: 2px solid var(--cGreen);
    background-color: var(--cGreen);
    color: var(--cBlack);
    font-size: var(--font-16);
} */

/* .btn-table:hover {
    background-color: transparent;
    color: var(--cGreen);
} */

.btn-table.btn-popular {
  /* No specific style change needed if it already stands out, but can be tweaked */
}

.btn-table-dark {
  display: inline-block;
  width: 80%;
  max-width: 200px;
  padding: 1rem 1.5rem;
  border-radius: 1rem;
  text-decoration: none;
  font-weight: bold;
  transition: var(--transition-all);
  border: 2px solid var(--cWhite);
  background-color: var(--cWhite);
  color: var(--cBlack);
  font-size: var(--font-16);
}

.btn-table-dark:hover {
  background-color: transparent;
  color: var(--cWhite);
}

/* Cell background colors for specific columns - apply to td as well */
.comparison-table th.premium-service-col,
.comparison-table td.premium-service-col-cell {
  background: var(--cGradientBlack);
  color: var(--cWhite);
}

.comparison-table td {
  border-left: 1px solid var(--cLgray);
}

.comparison-table td:first-child {
  /* Feature name column */
  border-left: none;
  background-color: var(--cWhite);
}

.comparison-table th.premium-service-col ~ th.premium-service-col,
.comparison-table td.premium-service-col-cell ~ td.premium-service-col-cell {
  border-left: 1px solid var(--cBlack); /* Darker vertical line between premium columns */
}

/* To apply dark background to Premium and Plus plan data cells */
.comparison-table tbody tr td:nth-child(4),
.comparison-table tbody tr td:nth-child(5),
.comparison-table tfoot tr td:nth-child(4),
.comparison-table tfoot tr td:nth-child(5) {
  background: var(--cGradientBlack);
  color: var(--cWhite); /* Ensure text contrast */
  border-left: 1px solid var(--cBlack); /* Darker separator for premium plans data cells */
}

.comparison-table tbody tr td:nth-child(4).plan-text-dim,
.comparison-table tbody tr td:nth-child(5).plan-text-dim {
  color: var(--cLgray); /* Ensure dim text on dark bg is still readable */
}

.comparison-table tbody tr td:nth-child(3) {
  /* Growth column, before Premium */
  border-right: 1px solid var(--cLgray);
}

/* Responsive adjustments */
@media (max-width: 768px) {
  /* Adjust breakpoint as needed */
  .comparison-table thead {
    /* display: none; -- Optionally hide table header and rely on stacked layout */
  }
  .comparison-table,
  .comparison-table tbody,
  .comparison-table tr,
  .comparison-table td {
    /* display: block; -- For fully stacked layout, but overflow-x-auto is preferred for wide tables */
  }

  .comparison-table td,
  .comparison-table th {
    padding: 1rem 0.75rem;
    font-size: var(
      --font-14
    ); /* Slightly smaller font on mobile for table data */
  }

  .plan-name {
    font-size: var(--font-24); /* Adjust header plan names for mobile */
  }
  .plan-subtext {
    font-size: var(--font-12);
  }
  .most-popular-badge {
    font-size: var(--font-10);
    padding: 0.3rem 0.6rem;
    top: -1rem; /* Adjust badge position */
  }
  .btn-table,
  .btn-table-dark {
    width: 90%;
    padding: 0.8rem 1rem;
    font-size: var(--font-14);
  }
}

/* Ensure wrapper allows horizontal scroll on small screens */
.comparison-table-wrapper {
  -webkit-overflow-scrolling: touch; /* Smooth scrolling on iOS */
}
/* Target the customer cards using their data attribute */
div[data-testimonial-customer] {
  opacity: 0.6; /* Inactive cards will be slightly faded */
  transform: scale(0.95); /* Inactive cards will be slightly smaller */
  transition: opacity 0.4s ease-in-out, transform 0.4s ease-in-out;
  will-change: opacity, transform; /* Hint for browser animation optimization */
}

div[data-testimonial-customer].active {
  opacity: 1; /* Active card fully visible */
  transform: scale(1); /* Active card at normal size */
}

/* ~~~~~~~~~~~~~~~~~~~~~~~~ */
/* ~~~ COOKIE BANNER ~~~~~~ */
/* ~~~~~~~~~~~~~~~~~~~~~~~~ */
#cookie-banner {
  /* Initial state: slightly offset, faded out, and hidden */
  opacity: 0;
  transform: translateX(2rem); /* Start 20px below its final position */
  visibility: hidden;
  /* Transition for opacity, transform, and visibility (delayed hiding) */
  transition: opacity 0.3s ease-out, transform 0.3s ease-out,
    visibility 0s linear 0.3s;
  pointer-events: none; /* Disable interactions when hidden */
}

#cookie-banner.active {
  /* Active state: fully visible and in its final position */
  opacity: 1;
  transform: translateX(0);
  visibility: visible;
  /* Override visibility transition delay to show immediately */
  transition-delay: 0s;
  pointer-events: auto; /* Enable interactions when visible */
}

/* Header text fade animation styles */
.header-text-container {
  position: relative;
  height: fit-content;
  min-height: 1.6rem; /* Match the text line height */
  min-width: 100%;
}

.header-text {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  opacity: 0;
  transition: opacity 0.8s ease-in-out;
  pointer-events: none;
}

.header-text.active {
  opacity: 1;
  pointer-events: auto;
}

/* Ensure the container maintains its height */
.header-text-container::after {
  content: "";
  display: block;
  height: 1.6rem; /* Match the text line height */
  visibility: hidden;
}
