:root {
  --blue: #2030F4;
  --blue-40: rgb(32 48 244 / 0.4);
  --blue-70: rgb(32 48 244 / 0.7);
  --blue-90: rgb(32 48 244 / 0.9);
  --blue-hover: #2e00cc;
  --blue-active: #1f0080;
  --orange: #ff6d00;
  --violet: #1f0080;
  --green: #b1ff00;
  --pink: #ff97fe;
  --black: #000000;
  --gray-225: #e1e1e1;
  --gray-200: #c8c8c8;
  --gray-150: #969696;
  --gray-100: #646464;
  --gray-50: #323232;
  --white: #fdfcf9;
  --font-primary: "Glyphic Sans", sans-serif;
  --body-font-size: 17px;
  --body-font-weight: 400;
  --body-line-height: 1.5;
  --swiper-scrollbar-border-radius: 5px;
  --swiper-scrollbar-top: auto;
  --swiper-scrollbar-bottom: 0px;
  --swiper-scrollbar-left: auto;
  --swiper-scrollbar-right: 5px;
  --swiper-scrollbar-sides-offset: 15%;
  --swiper-scrollbar-bg-color: var(--gray-200);
  --swiper-scrollbar-drag-bg-color: var(--blue);
  --swiper-scrollbar-size: 10px;
}

.grid-stretch {
  grid-auto-rows: 1fr;
}

.height-100 {
  height: 100%;
}

.d-none {
  display: none !important;
}

#call-to-action {
  position: relative;
  background-color: var(--blue);
  color: #FFFFFF;
}

#lista {
  position: relative;
}

#lista::before {
  position: absolute;
  content: '';
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: url('../img/bg-texture.svg') no-repeat center center var(--blue);
  background-size: cover;
  opacity: .15;
}

#call-to-action::before {
  position: absolute;
  content: '';
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: url('../img/bg-texture.svg') no-repeat center center;
  background-size: cover;
  opacity: .25;
}

.cta-image {
  padding-top: 70%;
  background: url('../img/partecipa.webp') no-repeat top center;
  background-size: cover;
}

@media (min-width: 992px) {
  .cta-image {
    padding-top: 45%;
  }
}

.text-uppercase {
  text-transform: uppercase;
}

.text-bold {
  font-weight: 700;
}

.scrolling {
  animation: fadeInDown 0.9s 1;
  backdrop-filter: blur(10px);
  box-shadow: 0 0 5px 2px rgb(0 0 0 / 10%);
  background: rgba(255, 255, 255, 0.8);
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 99;
}

.scrolling.is-bg-transparent-text-white {
  background: var(--blue);
}

.scrolling.is-bg-transparent-text-dark {
  background: rgba(255, 255, 255, 0.95);
}

.swiper {
  padding: 0 15px 2rem 15px;
}

@keyframes fadeInDown {
  0% {
    opacity: 0;
    transform: translate3d(0, -100%, 0);
  }

  100% {
    opacity: 1;
    transform: translateZ(0);
  }
}

.swiper-wrapper {
  transition-timing-function: linear;
  height: auto;
}

.mugshot-bg {
  background-image: url('/assets/img/candidati/fondale.jpg');
  background-size: cover;
}

.reveal-text {
  display: inline-block;
  position: relative;
  transform: translateY(100%);
  translate-origin: top left;
  animation: text-reveal 2s cubic-bezier(0.25, 0.1, 0.25, 1) both;
}

/* Other CSS */
.hero-slider .swiper-slide {
  overflow: hidden;
}

.hero-slider .swiper-slide .hero-bg-img {
  transform: scale(1.25);
  transition: all 1.5s ease;
}

.hero-slider .swiper-slide-active .hero-bg-img {
  transform: scale(1);
}

.hero-slider .swiper-slide h4,
.hero-slider .swiper-slide h1,
.hero-slider .swiper-slide p,
.hero-slider .swiper-slide a {
  transform: translateY(25%);
  opacity: 0;
  transition: all 0.65s ease;
  transition-delay: 1.25s;
}

.hero-slider .swiper-slide h4,
.hero-slider .swiper-slide-active h1,
.hero-slider .swiper-slide-active p,
.hero-slider .swiper-slide-active a {
  transform: translateY(0%);
  opacity: 1;
}

/* Style for the loader */
.fullpage_loader {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background-color: #0d0e1d;
  /* Light background */
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 9999;
  /* Ensure the loader is on top of everything */
}

/* Loader spinner */
.spinner {
  border: 4px solid #fff;
  /* Light gray */
  border-top: 4px solid #0119ff;
  /* Blue color for the spinner */
  border-radius: 50%;
  width: 80px;
  height: 80px;
  animation: spin 1s linear infinite;
}

/* Animation for the spinner */
@keyframes spin {
  0% {
    transform: rotate(0deg);
  }

  100% {
    transform: rotate(360deg);
  }
}

/* The ripple effect */
.ripple-button .ripple {
  animation: ripple-animation 2s infinite;
}

/* Ripple animation */
@keyframes ripple-animation {
  0% {
    transform: scale(0);
    opacity: 1;
  }

  100% {
    transform: scale(1.5);
    opacity: 0;
  }
}

/* MAILCHIMP */

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.invalid-feedback {
  display: none;
  width: 100%;
  margin-top: .25rem;
  font-size: .875em;
  color: var(--bs-form-invalid-color);
}

.is-invalid~.invalid-feedback,
.is-invalid~.invalid-tooltip,
.was-validated :invalid~.invalid-feedback,
.was-validated :invalid~.invalid-tooltip {
  display: block;
}

.alert-success {
  --bs-alert-color: var(--blue);
  --bs-alert-bg: var(--green);
  --bs-alert-border-color: var(--green);
  --bs-alert-link-color: var(--green);
}

.alert-danger {
  --bs-alert-color: var(--white);
  --bs-alert-bg: var(--orange);
  --bs-alert-border-color: var(--orange);
  --bs-alert-link-color: var(--orange);
}

.alert {
  position: relative;
  padding: .6rem 1.2rem;
  margin-bottom: .5rem;
  color: var(--bs-alert-color);
  background-color: var(--bs-alert-bg);
  border: var(--bs-alert-border);
  border-radius: var(--br);
}

.fields {
  display: flex;
  flex-wrap: wrap;
}

.form-field {
  width: 100%;
  padding: 0;
  margin-bottom: .5rem;
}

@media (min-width: 768px) {
  .form-field {
    width: 50%;
    padding: 0 .5rem;
    margin-bottom: .5rem;
  }
}

.form-control {
  padding: .8rem 1.2rem;
  color: var(--black);
  background-color: var(--white);
  border: var(--bw) solid var(--blue);
  border-radius: var(--br);
  display: block;
  width: 100%;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-clip: padding-box;
  transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out;
}

.form-control:focus {
  color: var(--black);
  background-color: var(--white);
  border-color: var(--green);
  outline: 0;
  box-shadow: 0 0 0 .25rem rgba(13, 110, 253, .25);
}

.form-control::-webkit-input-placeholder {
  -webkit-transition: all .2s ease-in-out;
  transition: all .2s ease-in-out;
  color: var(--gray);
  font-size: 1em;
  font-family: inherit;
}

.form-check {
  display: block;
  min-height: 1.5rem;
  padding-left: 1.5em;
  margin-bottom: .125rem;
}

.form-check .form-check-input {
  margin-right: .5rem;
  width: 20px !important;
  height: 20px;
  border: var(--bw) solid var(--blue);
  --bs-form-check-bg: var(--bs-body-bg);
  flex-shrink: 0;
  margin-top: .25em;
  vertical-align: top;
  background-color: var(--white);
}

.form-check .form-check-label a {
  text-decoration: underline;
}

.mc-submit:disabled,
button[disabled] {
  cursor: not-allowed;
}

#cookie-tip {
  margin: .3rem 0 .8rem 0;
  background-color: var(--green);
  padding: .5rem 1rem;
}

#cookie-tip p {
  font-size: 1.1rem;
  color: var(--black);
  line-height: 1.3;
  font-weight: 400;
}

#cookie-tip p a {
  text-decoration: underline;
}


/* FOOTER */

.copy {
  font-size: 1rem;
  display: flex;
  align-items: center;
}

.policies,
.social {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
}

.policies a {
  font-size: 1rem;
  padding: .3rem .5rem;
}

.text {
  width: 100%;
}

@media (min-width: 768px) {
  .text {
    width: calc(100% - 150px);
  }
}

.margin-auto {
  margin: 0 auto;
}

/* VIDEO *********************************************************************************************************/

.videowrapper {
  float: none;
  clear: both;
  width: 100%;
  position: relative;
  height: 0;
}

.videowrapper.mobile {
  padding-bottom: 150%;
}

.videowrapper.desktop {
  padding-bottom: 177.8%;
}

.videowrapper video {
  width: 100%;
  height: auto;
  vertical-align: top;
}

.videowrapper iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.videoCaption {
  margin-top: 1rem;
  font-size: 90%;
}

.desktop-only {
  display: none;
}

.mobile-only {
  display: block;
}

.sticky {
  position: sticky;
  top: 70px;
}

.link {
  color: var(--blue);
  text-decoration: underline;
}

@media (min-width: 992px) {
  .desktop-only {
    display: block;
  }

  .mobile-only {
    display: none;
  }
}

.btn-icon {
  cursor: pointer;
}

@media (max-width: 768px) {
  .swiper-slide .-bottom-full {
    bottom: 0 !important;
  }

  .swiper-slide .btn-white {
    width: 100% !important;
  }
}