.vp-hero{
  position: relative;
}
.vp-hero::after{
  content: "";
  width: 100vw;
  height: 100vh;
  background-color: #3D2B1A;
  opacity: 0.5;
  position: absolute;
}
.vd-pattern-bg {
  position: relative;
  overflow: hidden;
}

.vd-pattern-bg::after {
  content: "";
  background-image: url(/wp-content/uploads/2026/07/pattern-bg-1.svg);
  position: absolute;
  left: -75%;
  bottom: -75%;
  width: 150%;
  height: 150%;
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center center;
  animation: vd-pattern-spin 25s linear infinite;
  transform-origin: 50% 50%;
  opacity: 0.8;
}
.vd-pattern-bg.contact::after{
  filter: brightness(100) contrast(100);
  opacity: 0.1;
}

@keyframes vd-pattern-spin {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}

.swiper-wrapper.vin-swiper-wrapper .vin-gallery-slide .et_pb_image{
  background-color: #ededed;
  height: 100%;
}
.swiper-wrapper.vin-swiper-wrapper h6{
  padding: 0 !important;
}
.swiper-wrapper.vin-swiper-wrapper .vin-slider-desc{
  max-height: 0;
  overflow: hidden;
  transition: 0.3s ease-in-out;
}
.swiper-wrapper.vin-swiper-wrapper .vin-gallery-slide h6{
  transition: 0.3s ease-in-out;
}
.swiper-wrapper.vin-swiper-wrapper .vin-gallery-slide:hover h6{
  padding-bottom: 10px !important;
}
.swiper-wrapper.vin-swiper-wrapper .vin-gallery-slide:hover .vin-slider-desc{
  max-height: 100vh;
}
.vin-swiper-pagination{
  bottom: -36px !important;
}
.vin-swiper-pagination .swiper-pagination-bullet {
  background-color: #C85B8E;
  transition: 0.3s ease-in-out;
}
.vin-swiper-pagination .swiper-pagination-bullet.swiper-pagination-bullet-active{
  width: 36px;
  border-radius: 3px;
}
.vin-cf7 input, .vin-cf7 textarea, .vin-cf7 select{
  font-size: 24px;
  width: 100%;
  padding: 24px !important;
  border-radius: 12px;
  border: 2px solid #B5D9EB;
}
.vin-cf7 label{
  font-size: 24px;
  margin: 24px 0 12px;
  display: block;
  color: #fff8ee;
}
.vin-cf7 br{
  display: none;
}
.vin-cf7 .wpcf7-submit{
  background-color: #FCE9A5;
  cursor: pointer;
}
.vin-cf7-form-row{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
}

div.vin-marquee-content {
  margin: 0;
  padding: 0;
  color: #134236;
  font-size: 96px ;
  font-weight: bold;
}
.vin-marquee {
  position: relative;
  width: 100vw;
  max-width: 100%;
  height: 200px;
  overflow: hidden;
  display: flex;
  align-items: center;
}
.vin-marquee-track {
  position: absolute;
  display: flex;
  white-space: nowrap;
  will-change: transform;
  animation: vin-marquee 32s linear infinite;
}
.vin-marquee-content {
  white-space: nowrap;
}
@keyframes vin-marquee {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}
.vg-effect-cube{
  position: relative;
  height: 100%;
}
.vg-effect-cube::after {
  content: "";
  position: absolute;
  width: 100px;
  height: 100px;
  background-color: #FFF8EE;
  bottom: 100px;
  left: 0;
  animation: cube-slide 3s ease-in-out infinite;
}

@keyframes cube-slide {
  0% {
    margin-left: 0;
    transform: rotate(0deg);
  }
  50% {
    margin-left: calc(100% - 100px);
    transform: rotate(360deg);
  }
  100% {
    margin-left: 0;
    transform: rotate(0deg);
  }
}
.vg-effect-bubble {
  position: relative;
  height: 100%;
}

.vg-effect-bubble::after {
  content: "";
  position: absolute;
  width: 100px;
  height: 100px;
  border-radius: 50%;
  background-color: #2b8c7a;
  bottom: 0;
  left: 50%;
  animation: bubble-bounce 1.2s ease-in-out infinite;
}

@keyframes bubble-bounce {
  0%   { margin-bottom: 0;    transform: translateX(-50%) scale(1); }
  50%  { margin-bottom: 100%; transform: translateX(-50%) scale(2); }
  100% { margin-bottom: 0;    transform: translateX(-50%) scale(1); }
}
.vg-events{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  row-gap: 32px;
}
h3.vg-event__title{
  font-weight: 700;
  text-transform: uppercase;
  color: #2b8c7a;
  font-size: 24px;
}
.vg-event__date{
  font-size: 20px;
  color: #3d2b1a;
}
.vg-event__thumbnail{
  margin-bottom: 12px;
}
.vg-events-search__input{
  width: 100%;
  margin-bottom: 32px !important;
  font-size: 24px !important;
  padding: 24px !important;
  font-family: Lora !important;
  border-radius: 8px !important;
  color: #3d2b1a !important;
  border:1px solid #3d2b1a !important;
}
.vg-pagination__list{
  list-style: none !important;
  font-size: 18px !important;
  display: flex !important;
  gap: 12px !important;
  justify-content: center !important;
  margin: 48px 0 0 0 !important;
}
.vg-events-loading{
  opacity: 0.5;
}
.vg-pagination__list .vg-pagination__item span,
.vg-pagination__list .vg-pagination__item a{
  font-family: Lora;
  padding: 12px;
  width: 42px;
  height: 42px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  border: 1px solid #3d2b1a;
  color: #3d2b1a;
  transition: 0.3s ease-in-out;
}
.vg-pagination__list .vg-pagination__item span:hover,
.vg-pagination__list .vg-pagination__item a:hover{
  background-color: #3d2b1a;
  color: #ffffff;
}
.vin-gallery-grid-col{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}
.vin-gallery-grid-col .et_pb_image{
  height: 100%;
}
.vin-gallery-grid-col .vin-gallery-grid h6{
  padding: 0;
  transition: 0.3s ease-in-out;
}
.vin-gallery-grid-col .vin-gallery-grid .vin-slider-desc{
  max-height: 0;
  overflow: hidden;
  transition: 0.3s ease-in-out;
}
.vin-gallery-grid-col .vin-gallery-grid:hover .vin-slider-desc{
  max-height: 100vh;
}
.vin-gallery-grid-col .vin-gallery-grid:hover h6{
  padding-bottom: 10px;
}
.vin-cf7 input, .vin-cf7 textarea, .vin-cf7 select{
  font-size: 24px !important;
  width: 100% !important;
  padding: 24px !important;
  border-radius: 12px !important;
  border: 2px solid #B5D9EB !important;
}
.vin-cf7 label{
  font-size: 24px !important;
  margin: 24px 0 12px !important;
  display: block !important;
  color: #fff8ee !important;
}
.vin-cf7 br{
  display: none !important;
}
.vin-cf7 .wpcf7-submit{
  background-color: #FCE9A5 !important;
  cursor: pointer !important;
}

/* Radio / Checkbox lists */
.vin-cf7 .wpforms-field{
  padding: 0 0 16px 0 !important;
}
.vin-cf7 .wpforms-field-radio ul,
.vin-cf7 .wpforms-field-checkbox ul{
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 14px !important;
}

.vin-cf7 .wpforms-field-radio li,
.vin-cf7 .wpforms-field-checkbox li{
  display: flex !important;
  align-items: center !important;
}

.vin-cf7 .wpforms-field-radio li label,
.vin-cf7 .wpforms-field-checkbox li label{
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  margin: 0 !important;
  font-size: 20px !important;
  color: #fff8ee !important;
  cursor: pointer !important;
  width: auto !important;
}

.vin-cf7 .wpforms-field-radio input[type="radio"],
.vin-cf7 .wpforms-field-checkbox input[type="checkbox"]{
  appearance: none !important;
  -webkit-appearance: none !important;
  width: 26px !important;
  height: 26px !important;
  min-width: 26px !important;
  border: 2px solid #B5D9EB !important;
  background: #fff8ee !important;
  margin: 0 !important;
  padding: 0 !important;
  cursor: pointer !important;
  position: relative !important;
  flex-shrink: 0 !important;
  transition: border-color 0.15s ease, background-color 0.15s ease !important;
}

.vin-cf7 .wpforms-field-radio input[type="radio"]{
  border-radius: 50% !important;
}

.vin-cf7 .wpforms-field-checkbox input[type="checkbox"]{
  border-radius: 6px !important;
}

.vin-cf7 .wpforms-field-radio input[type="radio"]:checked,
.vin-cf7 .wpforms-field-checkbox input[type="checkbox"]:checked{
  border-color: #FCE9A5 !important;
  background: #FCE9A5 !important;
}
.vin-cf7 input[type=text],
.vin-cf7 input[type=email],
.vin-cf7 input[type=url],
.vin-cf7 input[type=tel]{
  max-width: 100% !important;
}
.vin-cf7 input[type=checkbox]:before,
.vin-cf7 input[type=checkbox]:after,
.vin-cf7 input[type=radio]:before,
.vin-cf7 input[type=radio]:after{
  content: '' !important;
  position: absolute !important;
  left: 50% !important;
  top: 50% !important;
  right: auto !important;
  transform: translate(-50%, -50%) !important;
  width: var(--wpforms-field-size-checkbox-size, 10px) !important;
  height: var(--wpforms-field-size-checkbox-size, 10px) !important;
  box-sizing: content-box !important;
  cursor: pointer !important;
}

.vin-cf7 input[type="radio"]:checked::after{
  border-radius: 50% !important;
  background: #3d2b1a !important;
}

.vin-cf7 input[type="checkbox"]:checked::after{
  width: 6px !important;
  height: 12px !important;
  background: transparent !important;
  border: solid #3d2b1a !important;
  border-width: 0 3px 3px 0 !important;
  transform: translate(-50%, -50%) rotate(45deg) !important;
}

.vin-cf7 .wpforms-field-radio input[type="radio"]:hover,
.vin-cf7 .wpforms-field-checkbox input[type="checkbox"]:hover{
  border-color: #FCE9A5 !important;
}

/* "Other" text input inside radio/checkbox (e.g. Altro) */
.vin-cf7 .wpforms-field-radio .wpforms-other-control,
.vin-cf7 .wpforms-field-checkbox .wpforms-other-control{
  font-size: 18px !important;
  padding: 8px 12px !important;
  border-radius: 10px !important;
  border: 2px solid #B5D9EB !important;
  background: #fff8ee !important;
  margin-left: 8px !important;
  width: auto !important;
  flex: 1 !important;
}
.wpforms-required-label{
  display: none !important;
}
.vin-cf7 .wpcf7-submit,
.vin-cf7 button[type="submit"],
.vin-cf7 input[type="submit"]{
  background-color: #FCE9A5 !important;
  color: #3d2b1a !important;
  font-size: 20px !important;
  font-weight: 600 !important;
  border: none !important;
  border-radius: 12px !important;
  cursor: pointer !important;
  width: 100% !important;
  transition: background-color 0.2s ease, transform 0.15s ease !important;
}

.vin-cf7 .wpcf7-submit:hover,
.vin-cf7 button[type="submit"]:hover,
.vin-cf7 input[type="submit"]:hover{
  background-color: #F5D67A !important;
}

.vin-cf7 .wpcf7-submit:active,
.vin-cf7 button[type="submit"]:active,
.vin-cf7 input[type="submit"]:active{
  transform: scale(0.98) !important;
}

.vin-cf7 .wpcf7-submit:disabled,
.vin-cf7 button[type="submit"]:disabled,
.vin-cf7 input[type="submit"]:disabled{
  opacity: 0.6 !important;
  cursor: not-allowed !important;
}
@media screen and (min-width: 981px) {
    .home .vp-header a{
    color: #fff8ee !important;
    }
    .home .vp-header{
    transition: 0.3s ease-in-out;
    }
    .home .vp-header.et_pb_sticky a{
    color: var(--gcid-body-color) !important;
    }
}
@media screen and (max-width: 980px) {
    .vg-effect-cube, .vg-effect-bubble {
        height: auto;
    }
    .vg-effect-cube::after{
        right: 24px;
        top: 0;
        left: unset;
        bottom: unset;
    }
    .vg-effect-bubble::after{
        display: none;
    }
    .vin-gallery-grid-col{
        grid-template-columns: repeat(2, 1fr);
    }
    @keyframes cube-slide {
        0% {
            margin-left: unset;
            transform: rotate(0deg);
        }
        50% {
            margin-left: unset;
            transform: rotate(360deg);
        }
        100% {
            margin-left: unset;
            transform: rotate(0deg);
        }
    }
    .vg-events{
        grid-template-columns: 2fr;
    }

    /**
    mobile header
    **/
    .vp-header .et_pb_menu_inner_container:has(.mobile_nav.opened) {
        background: #FFF8EE;
        border-radius: 8px 8px 0 0;
        padding: 12px;
    }
    .vp-header .mobile_nav.opened .mobile_menu_bar:before{
        color: #038D88;
    }
    .vp-header .et_mobile_menu{
        border-radius: 0 0 8px 8px;
    }
    .vp-header .et_pb_menu_inner_container{
        transition: 0.3s ease-in-out;
    }
    .vp-header.et_pb_sticky .mobile_menu_bar:before{
        color: #038D88 !important;
    }
    .vp-header.et_pb_sticky .et_mobile_menu{
        width: calc(100vw + 5%);
        left: -5%;
        border-radius: 0;
        height: 100vh;
    }

}
@media screen and (max-width: 768px) {
    .vg-effect-cube::after{
        display:none
    }
    .vin-cf7-form-row{
        grid-template-columns: 1fr;
    }
      .vg-events{
        grid-template-columns: 1fr;
    }
      .vin-gallery-grid-col{
        grid-template-columns: repeat(1, 1fr);
    }
}