:root {
  /* FONT FAMILY */
  --balboa: "balboa", sans-serif;
  --balboaCondensed: "balboa-condensed", sans-serif;
  --balboaExtraCondensed: "balboa-extra-condensed", sans-serif;
  --sharp: 'Sharp Grotesk';

  /* COLORS */
  --azzurro: #2E75ED;
  --azzurro-chiaro: #5891F1;
  --azzurro-light: #ABC8F8;
  --rosa: #E1C1E6;
  --blu: #273681;
  --giallo: #E4FF83;
  --viola: #502274;

  --form-gap: calc(var(--distance-medium) / 2);

  --error: #FF5151;

  font-size: 62.5%;
  --bianco-rgb: 255, 255, 255;
  --bianco: rgb(var(--bianco-rgb));
  --nero-rgb: 0, 0, 0;
  --nero: rgb(var(--nero-rgb));
  --error: #ba2e2e;
  --distance: 30px;
  --distance-medium: 40px;
  --distance-half: calc(var(--distance) / 2);
  --distance-big: 100px;
  --wrapper-padding: var(--distance-big);
  --max-width: 1400px;
  --form-gap: var(--distance);
  --transition: all 0.3s ease-out;
}

@media (max-width: 767.98px) {
  :root {
      font-size: 10px;
      --wrapper-padding: var(--distance-medium);
  }
}

/* REBOOT */
body {
  font-family: var(--sharp);
  background: var(--azzurro);
  color: var(--bianco);
  font-weight: normal;
}

body > main {
  display:flex;
  flex-direction:column;
  min-height:100vh;
}


*, ::after, ::before {
  box-sizing: border-box;
}

a {
  color: rgba(var(--bs-link-color-rgb),var(--bs-link-opacity,1));
  text-decoration: underline;
}

h1, h2, h3, h4, h5, h6, p, ul, ol, li {
  margin-bottom: 0;
}

/* =========================================================================================================== */


/* HEADER */
header {
  display: flex;
  align-items: center;
  position: fixed;
  top: var(--distance-medium);
  left: 50%;
  transform: translateX(-50%);
  width: calc(100% - var(--wrapper-padding));
  max-width: var(--max-width);
  height: 75px;
  background-color: var(--bianco);
  border-radius: 38px;
  z-index: 21;
  transition: all 0.2s linear;
  -webkit-transition: all 0.2s linear;
  pointer-events: none;
}
body.scroll-down header {
  top: -100px;
}
header .wrapper {
  width: 100%;
  margin-left: calc(var(--distance-big) / 2);
  margin-right: var(--distance-half);
}
header .row .row {
  --bs-gutter-x: calc(var(--distance-half) * 3)
}

header .login,
header .login:focus,
header .login:visited,
header .login:hover {
  position: absolute;
  top: calc(var(--distance) * -1);
  right: calc(var(--distance-half) * 3);
  transform: translateY(-4px);
  font-size: 1.2rem;
  line-height: 1.25;
  font-weight: 300;
  letter-spacing: normal;
  text-decoration: none;
  text-transform: uppercase;
  padding: calc(var(--distance-half) / 2) 0;
  pointer-events: all;
  transition: var(--transition);
  -webkit-transition: var(--transition);
}

@media (max-width: 991.98px) {
  header .wrapper {
    margin-left: calc(var(--distance-big) / 4);
    margin-right: calc(var(--distance-big) / 4);
  }
  header .row .row {
      --bs-gutter-x: calc(var(--distance-medium) / 2);
  }
  header .login, header .login:focus, header .login:visited, header .login:hover {
      position: relative;
      top: auto;
      right: auto;
      transform: none;
      font-size: 1.6rem;
  }
  .open-menu header .login,
  .open-menu header .bottone {
      opacity: 0;
  }
}

/* =========================================================================================================== */

/* NAVIGATION */
header .row .row {
  --bs-gutter-x: calc(var(--distance-half) * 3);
}

.logo,
.logo:visited,
.logo:focus,
.logo:hover {
  width: 79px;
  height: 30px;
  display: block;
  -webkit-mask: url(../media/logo/logo-qipo.svg) no-repeat 50% 50%;
  mask: url(../media/logo/logo-qipo.svg) no-repeat 50% 50%;
  -webkit-mask-size: contain;
  mask-size: contain;
  background-color: var(--azzurro);
  transition: var(--transition);
  -webkit-transition: var(--transition);
  opacity: 1;
  pointer-events: all;
}

.menu {
  display: flex;
  align-items: center;
  list-style-type: none;
  column-gap: calc(var(--distance-half) * 3);
  padding: 0;
}

.menu li a, .menu li a:visited, .menu li a:focus, .menu li a:hover {
  font-weight: 300;
  font-size: 1.5rem;
  line-height: 1.27;
  letter-spacing: normal;
  color: var(--azzurro);
  -webkit-transition: var(--transition);
  transition: var(--transition);
  text-decoration: none;
  pointer-events: all;
}
.menu li a:hover,
.menu li.current-menu-item a {
  opacity: 0.5;
}

footer {
  position: relative;
  padding: calc(var(--distance-big) / 2) 0;
  background-color: var(--blu);
  z-index: 15;
  margin-top:auto;
}
footer .logo,
footer .logo:visited,
footer .logo:focus,
footer .logo:hover {
  background: var(--azzurro-light);
}
footer .menu {
  justify-content: space-between;
  padding-bottom: calc(var(--distance-big) / 4);
  border-bottom: 1px solid var(--bianco);
}
footer .menu li a, 
footer .menu li a:visited, 
footer .menu li a:focus, 
footer .menu li a:hover {
  font-size: 1.4rem;
  line-height: 1.28;
  font-weight: 300;
  letter-spacing: normal;
  text-transform: uppercase;
  color: var(--bianco);
}
footer .app-download {
  padding-bottom: calc(var(--distance-big) / 4);
  margin-bottom: calc(var(--distance-big) / 4);
  border-bottom: 1px solid var(--bianco);
}

.subfooter {
  position: relative;
  background: var(--azzurro);
  padding: calc(var(--distance) / 3) 0;
  z-index: 15;
}
.subfooter .menu {
  justify-content: space-between;
}
.subfooter .menu li a, 
.subfooter .menu li a:visited, 
.subfooter .menu li a:focus, 
.subfooter .menu li a:hover {
  font-size: 1rem;
  line-height: 1.6;
  font-weight: 500;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--bianco);
}

@media (max-width: 1199.98px) {
  header {
    width: calc(100% - var(--wrapper-padding));
  }
  .menu {
      column-gap: calc(var(--distance-medium) / 2);
  }
}

@media (max-width: 991.98px) {
  footer .app-download {
      margin-top: var(--distance-medium);
  }
}

@media (max-width: 767.98px) {
  header {
    top: 20px;
    height: 50px;
  }
  header .wrapper {
      margin-left: calc(var(--distance-medium) / 4);
      margin-right: calc(var(--distance-medium) / 4);
  }
  .logo, .logo:visited, .logo:focus, .logo:hover {
      width: 48px;
      height: 18px;
  }
  header .login, header .login:focus, header .login:visited, header .login:hover {
      font-size: 1.1rem;
  }
  .btn-hamburger {
      width: 20px;
      height: 13px;
  }
  .loader [class*="icon"] {
      width: 60px;
      height: 60px;
  }
  footer {
    padding-bottom: var(--distance);
  }
  footer .logo,
  footer .logo:visited,
  footer .logo:focus,
  footer .logo:hover {
      width: 80px;
      height: 30px;
  }
  .menu-footer {
      display: block;
  }
  .menu-footer li + li {
      margin-top: calc(var(--distance) / 3);
  }
  .app-download .g-custom-double {
      --bs-gutter-x: calc(var(--distance-medium) / 2);
      --bs-gutter-y: calc(var(--distance) / 3);
  }
}

/* =========================================================================================================== */

/* STANDARD */
.color-bianco, .color-bianco * {
  color: var(--bianco);
}

.cont-testo > * + * {
  margin-top: var(--distance-half);
}

section:first-of-type {
  padding-top: calc(var(--distance-big) * 2);
}

section {
  padding: var(--distance-big) 0;
}

section {
  padding: var(--distance-big) 0;
  position: relative;
}

.wrapper {
  width: calc(100% - var(--wrapper-padding));
  max-width: var(--max-width);
  margin: 0 auto;
}

[class*="icon-"] {
  display: block;
  width: var(--distance);
  height: var(--distance);
  transition: var(--transition);
  -webkit-transition: var(--transition);
}
[class*="icon-"].big {
  width: var(--distance-big);
  height: var(--distance-big);
}

@media (max-width: 767.98px) {
  .cont-testo > * + * {
    margin-top: calc(var(--distance) / 3);
  }
}

/* =========================================================================================================== */

/* CUSTOM */
.back-nero {
  background-color: var(--nero);
}
.back-bianco {
  background-color: var(--bianco);
}
.back-rosa {
  background: var(--rosa);
}
.color-viola {
  color: var(--viola);
}
.color-blu {
  color: var(--blu);
}
.color-rosa {
  color: var(--rosa);
}
.color-azzurro-light {
  color: var(--azzurro-light);
}
.back-rosa {
  background: var(--rosa);
}
.back-viola {
  background: var(--viola);
}
.back-blu {
  background: var(--blu);
}
.back-azzurro {
  background: var(--azzurro);
}
.back-azzurro-chiaro {
  background: var(--azzurro-chiaro);
}
.back-azzurro-light {
  background: var(--azzurro-light);
}
.back-giallo {
  background: var(--giallo);
}

.icon-alert {
  -webkit-mask: url(../media/svg/alert.svg) no-repeat 50% 50%;
  mask: url(../media/svg/alert.svg) no-repeat 50% 50%;
  -webkit-mask-size: contain;
  mask-size: contain;
  width: 100%;
  height: calc(var(--distance) * 2);
}
.icon-balloon-circle {
  -webkit-mask: url(../media/svg/balloon-circle.svg) no-repeat 50% 50%;
  mask: url(../media/svg/balloon-circle.svg) no-repeat 50% 50%;
  -webkit-mask-size: contain;
  mask-size: contain;
  width: 100%;
  height: calc(var(--distance) * 2);
}
.icon-balloon-square {
  -webkit-mask: url(../media/svg/balloon-square.svg) no-repeat 50% 50%;
  mask: url(../media/svg/balloon-square.svg) no-repeat 50% 50%;
  -webkit-mask-size: contain;
  mask-size: contain;
  width: 100%;
  height: calc(var(--distance) * 2);
}
.icon-bell {
  -webkit-mask: url(../media/svg/bell.svg) no-repeat 50% 50%;
  mask: url(../media/svg/bell.svg) no-repeat 50% 50%;
  -webkit-mask-size: contain;
  mask-size: contain;
  width: 100%;
  height: calc(var(--distance) * 2);
}
.icon-bluetooth {
  -webkit-mask: url(../media/svg/bluetooth.svg) no-repeat 50% 50%;
  mask: url(../media/svg/bluetooth.svg) no-repeat 50% 50%;
  -webkit-mask-size: contain;
  mask-size: contain;
  width: 100%;
  height: calc(var(--distance) * 2);
}
.icon-case {
  -webkit-mask: url(../media/svg/case.svg) no-repeat 50% 50%;
  mask: url(../media/svg/case.svg) no-repeat 50% 50%;
  -webkit-mask-size: contain;
  mask-size: contain;
  width: 100%;
  height: calc(var(--distance) * 2);
}
.icon-cash {
  -webkit-mask: url(../media/svg/cash.svg) no-repeat 50% 50%;
  mask: url(../media/svg/cash.svg) no-repeat 50% 50%;
  -webkit-mask-size: contain;
  mask-size: contain;
  width: 100%;
  height: calc(var(--distance) * 2);
}
.icon-check-circle {
  -webkit-mask: url(../media/svg/check-circle.svg) no-repeat 50% 50%;
  mask: url(../media/svg/check-circle.svg) no-repeat 50% 50%;
  -webkit-mask-size: contain;
  mask-size: contain;
  width: 100%;
  height: calc(var(--distance) * 2);
}
.icon-check {
  -webkit-mask: url(../media/svg/check.svg) no-repeat 50% 50%;
  mask: url(../media/svg/check.svg) no-repeat 50% 50%;
  -webkit-mask-size: contain;
  mask-size: contain;
  width: 100%;
  height: calc(var(--distance) * 2);
}
.icon-clip {
  -webkit-mask: url(../media/svg/clip.svg) no-repeat 50% 50%;
  mask: url(../media/svg/clip.svg) no-repeat 50% 50%;
  -webkit-mask-size: contain;
  mask-size: contain;
  width: 100%;
  height: calc(var(--distance) * 2);
}
.icon-code {
  -webkit-mask: url(../media/svg/code.svg) no-repeat 50% 50%;
  mask: url(../media/svg/code.svg) no-repeat 50% 50%;
  -webkit-mask-size: contain;
  mask-size: contain;
  width: 100%;
  height: calc(var(--distance) * 2);
}
.icon-document {
  -webkit-mask: url(../media/svg/document.svg) no-repeat 50% 50%;
  mask: url(../media/svg/document.svg) no-repeat 50% 50%;
  -webkit-mask-size: contain;
  mask-size: contain;
  width: 100%;
  height: calc(var(--distance) * 2);
}
.icon-emoji-sad {
  -webkit-mask: url(../media/svg/emoji-sad.svg) no-repeat 50% 50%;
  mask: url(../media/svg/emoji-sad.svg) no-repeat 50% 50%;
  -webkit-mask-size: contain;
  mask-size: contain;
  width: 100%;
  height: calc(var(--distance) * 2);
}
.icon-emoji-smile {
  -webkit-mask: url(../media/svg/emoji-smile.svg) no-repeat 50% 50%;
  mask: url(../media/svg/emoji-smile.svg) no-repeat 50% 50%;
  -webkit-mask-size: contain;
  mask-size: contain;
  width: 100%;
  height: calc(var(--distance) * 2);
}
.icon-error {
  -webkit-mask: url(../media/svg/error.svg) no-repeat 50% 50%;
  mask: url(../media/svg/error.svg) no-repeat 50% 50%;
  -webkit-mask-size: contain;
  mask-size: contain;
  mask-position: left;
  -webkit-mask-position: left;
  width: 100%;
  height: calc(var(--distance) * 2);
}
.icon-eye {
  -webkit-mask: url(../media/svg/eye.svg) no-repeat 50% 50%;
  mask: url(../media/svg/eye.svg) no-repeat 50% 50%;
  -webkit-mask-size: contain;
  mask-size: contain;
  width: 100%;
  height: calc(var(--distance) * 2);
}
.icon-folder {
  -webkit-mask: url(../media/svg/folder.svg) no-repeat 50% 50%;
  mask: url(../media/svg/folder.svg) no-repeat 50% 50%;
  -webkit-mask-size: contain;
  mask-size: contain;
  width: 100%;
  height: calc(var(--distance) * 2);
}
.icon-industry {
  -webkit-mask: url(../media/svg/industry.svg) no-repeat 50% 50%;
  mask: url(../media/svg/industry.svg) no-repeat 50% 50%;
  -webkit-mask-size: contain;
  mask-size: contain;
  width: 100%;
  height: calc(var(--distance) * 2);
}
.icon-lamp {
  -webkit-mask: url(../media/svg/lamp.svg) no-repeat 50% 50%;
  mask: url(../media/svg/lamp.svg) no-repeat 50% 50%;
  -webkit-mask-size: contain;
  mask-size: contain;
  width: 100%;
  height: calc(var(--distance) * 2);
}
.icon-lock {
  -webkit-mask: url(../media/svg/lock.svg) no-repeat 50% 50%;
  mask: url(../media/svg/lock.svg) no-repeat 50% 50%;
  -webkit-mask-size: contain;
  mask-size: contain;
  mask-position: left;
  -webkit-mask-position: left;
  width: 100%;
  height: calc(var(--distance) * 2);
}
.icon-mail {
  -webkit-mask: url(../media/svg/mail.svg) no-repeat 50% 50%;
  mask: url(../media/svg/mail.svg) no-repeat 50% 50%;
  -webkit-mask-size: contain;
  mask-size: contain;
  width: 100%;
  height: calc(var(--distance) * 2);
}
.icon-moon {
  -webkit-mask: url(../media/svg/moon.svg) no-repeat 50% 50%;
  mask: url(../media/svg/moon.svg) no-repeat 50% 50%;
  -webkit-mask-size: contain;
  mask-size: contain;
  width: 100%;
  height: calc(var(--distance) * 2);
}
.icon-pencil {
  -webkit-mask: url(../media/svg/pencil.svg) no-repeat 50% 50%;
  mask: url(../media/svg/pencil.svg) no-repeat 50% 50%;
  -webkit-mask-size: contain;
  mask-size: contain;
  width: 100%;
  height: calc(var(--distance) * 2);
}
.icon-pin {
  -webkit-mask: url(../media/svg/pin.svg) no-repeat 50% 50%;
  mask: url(../media/svg/pin.svg) no-repeat 50% 50%;
  -webkit-mask-size: contain;
  mask-size: contain;
  width: 100%;
  height: calc(var(--distance) * 2);
}
.icon-play-circle {
  -webkit-mask: url(../media/svg/play-circle.svg) no-repeat 50% 50%;
  mask: url(../media/svg/play-circle.svg) no-repeat 50% 50%;
  -webkit-mask-size: contain;
  mask-size: contain;
  width: 100%;
  height: calc(var(--distance) * 2);
}
.icon-play {
  -webkit-mask: url(../media/svg/play.svg) no-repeat 50% 50%;
  mask: url(../media/svg/play.svg) no-repeat 50% 50%;
  -webkit-mask-size: contain;
  mask-size: contain;
  width: 100%;
  height: calc(var(--distance) * 2);
}
.icon-qipo-bluetooth {
  -webkit-mask: url(../media/svg/qipo-bluetooth.svg) no-repeat 50% 50%;
  mask: url(../media/svg/qipo-bluetooth.svg) no-repeat 50% 50%;
  -webkit-mask-size: contain;
  mask-size: contain;
  width: 100%;
  height: calc(var(--distance) * 2);
}
.icon-scanner {
  -webkit-mask: url(../media/svg/scanner.svg) no-repeat 50% 50%;
  mask: url(../media/svg/scanner.svg) no-repeat 50% 50%;
  -webkit-mask-size: contain;
  mask-size: contain;
  width: 100%;
  height: calc(var(--distance) * 2);
}
.icon-shifts {
  -webkit-mask: url(../media/svg/shifts.svg) no-repeat 50% 50%;
  mask: url(../media/svg/shifts.svg) no-repeat 50% 50%;
  -webkit-mask-size: contain;
  mask-size: contain;
  mask-position: left;
  -webkit-mask-position: left;
  width: 100%;
  height: calc(var(--distance) * 2);
}
.icon-signal {
  -webkit-mask: url(../media/svg/signal.svg) no-repeat 50% 50%;
  mask: url(../media/svg/signal.svg) no-repeat 50% 50%;
  -webkit-mask-size: contain;
  mask-size: contain;
  width: 100%;
  height: calc(var(--distance) * 2);
}
.icon-smartphone {
  -webkit-mask: url(../media/svg/smartphone.svg) no-repeat 50% 50%;
  mask: url(../media/svg/smartphone.svg) no-repeat 50% 50%;
  -webkit-mask-size: contain;
  mask-size: contain;
  width: 100%;
  height: calc(var(--distance) * 2);
}
.icon-star {
  -webkit-mask: url(../media/svg/star.svg) no-repeat 50% 50%;
  mask: url(../media/svg/star.svg) no-repeat 50% 50%;
  -webkit-mask-size: contain;
  mask-size: contain;
  width: 100%;
  height: calc(var(--distance) * 2);
}
.icon-sun {
  -webkit-mask: url(../media/svg/sun.svg) no-repeat 50% 50%;
  mask: url(../media/svg/sun.svg) no-repeat 50% 50%;
  -webkit-mask-size: contain;
  mask-size: contain;
  width: 100%;
  height: calc(var(--distance) * 2);
}
.icon-sunset {
  -webkit-mask: url(../media/svg/sunset.svg) no-repeat 50% 50%;
  mask: url(../media/svg/sunset.svg) no-repeat 50% 50%;
  -webkit-mask-size: contain;
  mask-size: contain;
  width: 100%;
  height: calc(var(--distance) * 2);
}
.icon-target {
  -webkit-mask: url(../media/svg/target.svg) no-repeat 50% 50%;
  mask: url(../media/svg/target.svg) no-repeat 50% 50%;
  -webkit-mask-size: contain;
  mask-size: contain;
  width: 100%;
  height: calc(var(--distance) * 2);
}
.icon-thunder {
  -webkit-mask: url(../media/svg/thunder.svg) no-repeat 50% 50%;
  mask: url(../media/svg/thunder.svg) no-repeat 50% 50%;
  -webkit-mask-size: contain;
  mask-size: contain;
  width: 100%;
  height: calc(var(--distance) * 2);
}
.icon-ticket {
  -webkit-mask: url(../media/svg/ticket.svg) no-repeat 50% 50%;
  mask: url(../media/svg/ticket.svg) no-repeat 50% 50%;
  -webkit-mask-size: contain;
  mask-size: contain;
  width: 100%;
  height: calc(var(--distance) * 2);
}
.icon-user {
  -webkit-mask: url(../media/svg/user.svg) no-repeat 50% 50%;
  mask: url(../media/svg/user.svg) no-repeat 50% 50%;
  -webkit-mask-size: contain;
  mask-size: contain;
  width: 100%;
  height: calc(var(--distance) * 2);
}
.icon-user-2 {
  -webkit-mask: url(../media/svg/user-2.svg) no-repeat 50% 50%;
  mask: url(../media/svg/user-2.svg) no-repeat 50% 50%;
  -webkit-mask-size: contain;
  mask-size: contain;
  width: 100%;
  height: calc(var(--distance) * 2);
}
.icon-user-3 {
  -webkit-mask: url(../media/svg/user-3.svg) no-repeat 50% 50%;
  mask: url(../media/svg/user-3.svg) no-repeat 50% 50%;
  -webkit-mask-size: contain;
  mask-size: contain;
  width: 100%;
  height: calc(var(--distance) * 2);
}
.icon-warning {
  -webkit-mask: url(../media/svg/warning.svg) no-repeat 50% 50%;
  mask: url(../media/svg/warning.svg) no-repeat 50% 50%;
  -webkit-mask-size: contain;
  mask-size: contain;
  width: 100%;
  height: calc(var(--distance) * 2);
}
.icon-watch {
  -webkit-mask: url(../media/svg/watch.svg) no-repeat 50% 50%;
  mask: url(../media/svg/watch.svg) no-repeat 50% 50%;
  -webkit-mask-size: contain;
  mask-size: contain;
  width: 100%;
  height: calc(var(--distance) * 2);
}
.icon-waves {
  -webkit-mask: url(../media/svg/waves.svg) no-repeat 50% 50%;
  mask: url(../media/svg/waves.svg) no-repeat 50% 50%;
  -webkit-mask-size: contain;
  mask-size: contain;
  width: 100%;
  height: calc(var(--distance) * 2);
}
.icon-facebook {
  -webkit-mask: url(../media/icons/icon-facebook.svg) no-repeat 50% 50%;
  mask: url(../media/icons/icon-facebook.svg) no-repeat 50% 50%;
  -webkit-mask-size: contain;
  mask-size: contain;
}
.icon-instagram {
  -webkit-mask: url(../media/icons/icon-instagram.svg) no-repeat 50% 50%;
  mask: url(../media/icons/icon-instagram.svg) no-repeat 50% 50%;
  -webkit-mask-size: contain;
  mask-size: contain;
}
.icon-linkedin {
  -webkit-mask: url(../media/icons/icon-linkedin.svg) no-repeat 50% 50%;
  mask: url(../media/icons/icon-linkedin.svg) no-repeat 50% 50%;
  -webkit-mask-size: contain;
  mask-size: contain;
}
.icon-app-store {
  -webkit-mask: url(../media/icons/app-store.svg) no-repeat 50% 50%;
  mask: url(../media/icons/app-store.svg) no-repeat 50% 50%;
  -webkit-mask-size: contain;
  mask-size: contain;
  width: var(--distance-big);
}
.icon-app-gallery {
  -webkit-mask: url(../media/icons/app-gallery.svg) no-repeat 50% 50%;
  mask: url(../media/icons/app-gallery.svg) no-repeat 50% 50%;
  -webkit-mask-size: contain;
  mask-size: contain;
  width: var(--distance-big);
}
.icon-google-play {
  -webkit-mask: url(../media/icons/google-play.svg) no-repeat 50% 50%;
  mask: url(../media/icons/google-play.svg) no-repeat 50% 50%;
  -webkit-mask-size: contain;
  mask-size: contain;
  width: var(--distance-big);
}

.sharp1 {
  font-size: 5rem;
  line-height: 1;
  letter-spacing: normal;
  font-weight: 500;
}
.sharp1 span {
  display: block;
  color: var(--bianco);
}
.sharp2 {
  font-size: 4rem;
  line-height: 1.25;
  letter-spacing: normal;
  font-weight: 300;
}
.sharp3 {
  font-size: 2.4rem;
  line-height: 1.3;
  letter-spacing: normal;
  font-weight: normal;
}
.sharp4 {
  font-size: 1.8rem;
  line-height: 1.5;
  letter-spacing: normal;
  font-weight: normal;
}
.sharp5 {
  font-size: 1.4rem;
  line-height: 1.285;
  letter-spacing: normal;
  font-weight: 300;
}
.sharp6 {
  font-size: 1.2rem;
  line-height: 1.25;
  letter-spacing: normal;
  font-weight: 300;
}

.balboa1 {
  font-family: var(--balboaExtraCondensed);
  font-size: 12rem;
  line-height: 1;
  letter-spacing: normal;
}
.balboa2 {
  font-family: var(--balboaCondensed);
  font-size: 6rem;
  line-height: 1;
  letter-spacing: normal;
}


.h2, h2 {
    font-size: calc(1.325rem + .9vw);
}

.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 {
    margin-top: 0;
    margin-bottom: 0.5rem;
    font-weight: 500;
    line-height: 1.2;
    color: var(--bs-heading-color);
}

.g-custom {
  --bs-gutter-x: calc(var(--distance-medium) / 2);
  --bs-gutter-y: calc(var(--distance-medium) / 2);
}
.gy-custom {
  --bs-gutter-y: calc(var(--distance-medium) / 2);
}
.g-custom-double {
  --bs-gutter-x: var(--distance-medium);
  --bs-gutter-y: var(--distance-medium);
}
.gy-custom-double {
  --bs-gutter-y: var(--distance-medium);
}
.gy-custom-triple {
  --bs-gutter-y: calc(var(--distance-medium) * 1.5);
}

.bottone,
.bottone:focus,
.bottone:visited,
.bottone:hover {
    position: relative;
    font-size: 1.8rem;
    line-height: 1.28;
    font-weight: 300;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: calc(var(--distance-half) * 3);
    border-radius: 23px;
    border: 1px solid transparent;
    padding: 0 calc(var(--distance-big) / 4);
    text-decoration: none;
    text-transform: uppercase;
    pointer-events: all;
    transition: var(--transition);
    -webkit-transition: var(--transition);
    overflow: hidden;
}
.bottone::before {
	content: '';
    position: absolute;
	top: 0;
	left: -75%;
	z-index: 2;
	display: block;
	width: 50%;
	height: 100%;
	background: -webkit-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,.2) 100%);
	background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,.2) 100%);
	-webkit-transform: skewX(-25deg);
	transform: skewX(-25deg);
}
.bottone:hover::before {
	-webkit-animation: shine .75s;
	animation: shine .75s;
}
@-webkit-keyframes shine {
	100% {
		left: 125%;
	}
}
@keyframes shine {
	100% {
		left: 125%;
	}
}

.custom-card {
  height: 100%;
  width: 100%;
  border-radius: var(--distance);
  overflow: hidden;
  user-select: none !important;
}
.custom-card.square {
  aspect-ratio: 1 / 1;
  height: auto;
}
.custom-card.horizontal {
  max-width: 100%;
  width: auto;
  height: 100%;
  aspect-ratio: 5/3;
}
.last-card .custom-card.horizontal {
  aspect-ratio: 5/2.35;
}

.custom-card .sharp3 {
  font-size: 2.8rem;
  line-height: 1;
  font-weight: 600;
}


.custom-card.card-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  /* flex-wrap: wrap; */
  padding: var(--distance) var(--distance-medium) calc(var(--distance-medium) / 2);
}
.custom-card.card-icon [class*="icon-"] {
  height: calc(var(--distance-medium) * 2);
  width: calc(var(--distance-medium) * 2);
}
.custom-card.card-icon.with-text {
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.custom-card.card-icon.only-icon {
  padding: var(--distance-medium);
}
.custom-card.card-icon.only-icon [class*="icon-"] {
  height: calc(var(--distance-medium) * 3);
  width: calc(var(--distance-medium) * 3);
  max-width: 100%;
  max-height: 100%;
}
.custom-card.card-icon.only-icon.horizontal [class*="icon-"] {
  height: calc(var(--distance-medium) * 5);
  width: calc(var(--distance-medium) * 5);
}
.custom-card.card-icon .sharp3 {
  margin: calc(var(--distance-medium) / 2) 0 calc(var(--distance-half) / 3);
}

.custom-card.card-icon.with-text.horizontal {
  display: block;
}
.custom-card.card-icon.with-text.horizontal [class*="icon-"] {
  margin: 0 auto;
}

@media (min-width: 1200px) {
  .h2, h2 {
      font-size: 2rem;
  }
}

@media (max-width: 767.98px) {
  section:first-of-type {
    padding-top: calc(var(--distance-medium) * 3);
  }
  .bottone, .bottone:focus, .bottone:visited, .bottone:hover {
      font-size: 1.1rem;
      line-height: 1;
      height: 30px;
      padding: 0 10px;
  }
  .sharp1 {
      font-size: 2.4rem;
      line-height: 2.7rem;
  }
  .sharp3 {
    font-size: 1.5rem;
  }
}

/* =========================================================================================================== */

/* SECTIONS */
.swiper-card {
  margin-top: var(--distance-big);
}
.swiper-card .swiper-slide {
  width: auto !important;
}
.swiper-card .swiper-slide .custom-card {
  height: 220px;
  width: auto;
}
.swiper-card .swiper-slide a {
  text-decoration: none !important;
}
.swiper-card .swiper-slide a .custom-card * {
  pointer-events: none;
}
.swiper-card .swiper-slide a .custom-card {
  position: relative;
  overflow: hidden;
}
.swiper-card .swiper-slide a .custom-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: -75%;
  z-index: 2;
  display: block;
  width: 50%;
  height: 100%;
  background: -webkit-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,.2) 100%);
  background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,.2) 100%);
  -webkit-transform: skewX(-25deg);
  transform: skewX(-25deg);
}
.swiper-card .swiper-slide a .custom-card.back-bianco::before,
.swiper-card .swiper-slide a .custom-card.back-giallo::before {
  background: -webkit-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(171,200,248,.2) 100%);
  background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(171,200,248,.2) 100%);
}
.swiper-card .swiper-slide a .custom-card:hover::before {
  -webkit-animation: shine .75s;
  animation: shine .75s;
}
@-webkit-keyframes shine {
  100% {
    left: 125%;
  }
}
@keyframes shine {
  100% {
    left: 125%;
  }
}

@media (max-width: 767.98px) {
  .swiper-card {
    margin-top: calc(var(--distance-big) / 2);
  }
  .swiper-card + .swiper-card {
      margin-top: calc(var(--distance) / 3);
  }
  .swiper-card .swiper-slide .custom-card {
      height: 150px;
  }
  .swiper-card .swiper-slide .custom-card.custom-card.card-icon.with-text.horizontal {
      width: 220px;
  }
  .custom-card.card-icon [class*="icon-"] {
      height: calc(var(--distance-medium) * 1.5);
      width: calc(var(--distance-medium) * 1.5);
  }
  .custom-card.card-icon.with-text.horizontal {
      display: flex;
  }
  .custom-card {
    border-radius: 12px;
  }
  .custom-card .sharp3 {
      font-size: 1.4rem;
  }
  .custom-card .sharp5,
  .custom-card .sharp6 {
      font-size: 1rem;
  }
  .custom-card.card-icon {
      padding: calc(var(--distance-medium) / 4);
  }
  .custom-card.card-icon .sharp3 {
      margin: calc(var(--distance-half) / 3) 0;
  }
  .custom-card.card-calendar {
      padding: calc(var(--distance-medium) / 2) calc(var(--distance-medium) / 4);
      column-gap: calc(var(--distance-medium) / 4);
  }
  .custom-card.card-calendar .calendar .linea {
      height: calc(var(--distance-medium) / 4);
  }
  .custom-card.card-calendar .calendar .linea .active-rect {
      width: calc(var(--distance-medium) / 2);
  }
  .custom-card.card-calendar .calendar {
      row-gap: 3px;
  }
  .custom-card.card-calendar .card-text * + * {
      margin-top: 0;
  }
  .custom-card.card-calendar .card-text {
      width: calc(50% - calc(var(--distance) / 3));
  }
  .custom-card.card-icon.only-icon,
  .mockup .over-mockup .custom-card.card-icon.only-icon {
      padding: calc(var(--distance-medium) / 2);
  }
  .custom-card.card-percentage {
      padding: calc(var(--distance-medium) / 2) calc(var(--distance-medium) / 4);
      column-gap: calc(var(--distance-medium) / 4);
  }
  .custom-card.card-percentage .pie-chart {
      width: calc(45% - calc(var(--distance) / 3));
  }
  .custom-card.card-percentage .card-text {
      width: calc(60% - calc(var(--distance) / 3));
  }
  .custom-card.card-percentage .card-text > * + * {
      margin-top: calc(var(--distance-half) / 3);
  }
  .custom-card.card-percentage .card-text .dati > * span {
      width: calc(var(--distance-medium) / 4);
      height: calc(var(--distance-medium) / 4);
      min-width: calc(var(--distance-medium) / 4);
      min-height: calc(var(--distance-medium) / 4);
  }
  .custom-card.card-columns {
      padding: calc(var(--distance-medium) / 2) calc(var(--distance-medium) / 4);
      column-gap: calc(var(--distance-medium) / 4);
  }
  .custom-card.card-columns .card-text {
      width: calc(50% - calc(var(--distance) / 3));
  }
  .custom-card.card-columns .card-text > * + * {
      margin-top: calc(var(--distance-half) / 3);
  }
  .custom-card.card-caso-studio {
      padding: var(--distance-half) calc(var(--distance-medium) / 2);
  }
  .custom-card.card-caso-studio .card-text {
      width: calc(55% - calc(var(--distance) / 3));
  }
  .custom-card.card-caso-studio .card-chart {
      width: calc(45% - calc(var(--distance) / 3));
  }
  .custom-card.card-caso-studio .card-text > *.sharp3 + *.sharp5 {
      margin-top: calc(var(--distance-half) / 3);
  }
  .custom-card.card-caso-studio .card-chart .dati {
      flex-wrap: wrap;
      row-gap: 8px;
      margin-top: var(--distance-half);
  }
  .custom-card.card-caso-studio .card-chart .dati > * span {
      width: calc(var(--distance-medium) / 4);
      height: calc(var(--distance-medium) / 4);
      min-width: calc(var(--distance-medium) / 4);
      min-height: calc(var(--distance-medium) / 4);
  }
  .custom-card.card-caso-studio .card-chart .dati .sharp6 {
      font-size: 0.8rem;
  }
  .custom-card.card-percentage .pie-chart .mask,
  .custom-card.card-caso-studio .pie-chart .mask {
      width: 60%;
      height: 60%;
  }
  .custom-card.card-caso-studio .card-chart .dati > * + * {
      margin-top: 0;
  }
  .custom-card.card-orario {
      padding: calc(var(--distance-medium) / 2) var(--distance);
  }
  .custom-card.card-orario .giorno, .custom-card.card-orario .ore, .custom-card.card-orario .minuti {
      font-size: 1rem;
  }
  .custom-card.card-orario .card-text > * + * {
      margin-top: calc(var(--distance-half) / 3);
  }

  .nav-point div.active {
      border-width: 7px;
      width: 25px;
      height: 25px;
  }
  .circle-container {
      margin-bottom: calc(var(--distance-medium) / 2);
  }
}

/* =========================================================================================================== */