section.home-gallery {
  padding-block-start: 8.75rem;
  overflow-x: hidden;
}

section.home-gallery .zones {
  display: flex;
  flex-direction: column;
  gap: 8.75rem;
  text-align: center;
}

section.home-gallery .zones .zone-title .text .text-wrapper .section-title {
  margin-bottom: 1.875rem;
}

section.home-gallery .zones .zone.zone-gallery,
section.home-gallery .zones .zone.zone-gallery .gallery-row {
  display: flex;
  align-items: center;
  gap: 2rem;
  flex-shrink: 0;
}

section.home-gallery .zones .zone.zone-gallery .gallery-row {
  animation: marquee 22s linear infinite;
}

@keyframes marquee {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(calc(-100% - 2rem));
  }
}

section.home-gallery .zones .zone.zone-gallery .gallery-row .img-wrapper {
  overflow: hidden;
  border-radius: 0.625rem;
  flex-shrink: 0;
}

section.home-gallery .zones .zone.zone-gallery .gallery-row .img-wrapper img {
  max-height: 17.125rem;
}

section.home-gallery .zones .zone.zone-gallery .gallery-row .img-wrapper:nth-child(odd) img {
  max-height: 11.25rem;
}

@media only screen and (max-width: 768px) {
  section.home-gallery {
    padding-block-start: 3.125rem;
  }
  section.home-gallery .zones {
    gap: 3.125rem;
  }
  section.home-gallery .zones .zone-title .text .text-wrapper .section-title {
    margin-bottom: 1rem;
  }
  section.home-gallery .zones .zone.zone-gallery .gallery-row .img-wrapper img {
    max-height: 14.125rem;
  }

  section.home-gallery .zones .zone.zone-gallery .gallery-row .img-wrapper:nth-child(odd) img {
    max-height: 11.25rem;
  }
}

/*
* ==============================================
SIDE IMAGE
* ==============================================
*/
section.side-image {
  padding-block: 8.75rem;
}

section.side-image .zones {
  --side-image-overlapping-amount: 6.375rem;
  display: grid;
  align-items: center;
  padding-inline-end: 2rem;
}

section.side-image.flipped .zones {
  padding-inline-start: 2rem;
  padding-inline-end: 0rem;
}

section.side-image .zones .zone {
  grid-column: -1/1;
  grid-row: -1/1;
}

section.side-image .zones .zone.zone-text {
  width: 100%;
  height: 100%;
  max-width: 42.625rem;
  background-color: var(--c-white);
  border-radius: var(--br-big);
  min-height: 35.5rem;
  display: grid;
  align-items: center;
}

section.side-image.flipped .zones .zone.zone-text {
  justify-self: end;
}

section.side-image .zones .zone.zone-text .text {
  margin-inline-end: var(--side-image-overlapping-amount);
  padding: 2rem;
  z-index: 1;
  background: var(--c-white);
  border-radius: var(--br-big);
}

section.side-image.flipped .zones .zone.zone-text .text {
  margin-inline-start: var(--side-image-overlapping-amount);
  margin-inline-end: 0;
}

section.side-image .zones .zone.zone-text .text .text-wrapper {
  max-width: 23.5rem;
  margin-inline: auto;
}

section.side-image .zones .zone.zone-text .text .text-wrapper .section-title {
  margin-bottom: 1.875rem;
}

section.side-image .zones .zone.zone-text .text .text-wrapper .title {
  text-wrap: balance;
}

section.side-image .zones .zone.zone-text .text .text-wrapper .title + .description {
  margin-block-start: 1.875rem;
}

section.side-image .zones .zone.zone-img {
  max-width: 23.5rem;
  justify-self: end;
}

section.side-image.flipped .zones .zone.zone-img {
  justify-self: start;
}

section.side-image .zones .zone.zone-img .images {
  display: grid;
}

section.side-image .zones .zone.zone-img .images .img-wrapper {
  grid-column: -1/1;
  grid-row: -1/1;
  overflow: hidden;
  border-radius: var(--br-big);
}

section.side-image .zones .zone.zone-img .images .img-wrapper.img-big img {
  scale: 1.2;
}

section.side-image .zones .zone.zone-img .images .img-wrapper.img-small {
  justify-self: end;
  align-self: center;
  max-height: 6.5rem;
  max-width: 6.5rem;
  translate: 0 50% !important;
}

@media only screen and (max-width: 768px) {
  section.side-image {
    padding-block: 3.125rem;
  }

  section.side-image.flipped .zones,
  section.side-image .zones {
    padding: 0;
  }

  section.side-image .zones .zone {
    grid-column: -1/1;
    grid-row: auto;
  }

  section.side-image .zones .zone.zone-text {
    padding-block-start: 3.125rem;
    min-height: unset;
    order: 2;
  }

  section.side-image.with-badge .zones .zone.zone-text {
    padding-block-start: 6.25rem;
  }

  section.side-image.flipped .zones .zone.zone-text .text,
  section.side-image .zones .zone.zone-text .text {
    margin-inline: 0;
  }

  section.side-image .zones .zone.zone-text .text .text-wrapper .section-title {
    margin-block-end: 1rem;
  }

  section.side-image .zones .zone.zone-text .text .text-wrapper .title + .description {
    margin-block-start: 1rem;
  }

  section.side-image .zones .zone.zone-img {
    margin-bottom: -3.125rem;
    z-index: 1;
    margin-inline: auto;
  }

  section.side-image .zones .zone.zone-img .images {
    padding-inline: 1rem;
  }

  section.side-image .zones .zone.zone-img .images .img-wrapper.img-small {
    justify-self: center;
    align-self: end;
    transform: translateY(50%);
  }
}

/*
* ==============================================
HOME DOP
* ==============================================
*/
section.home-dop {
  text-align: center;
  overflow-x: hidden;
}

section.home-dop .layers .layer.layer-fg .title + .cta {
  margin-block-start: 1.875rem;
}

section.home-dop .layers .layer.layer-bg .images {
  display: flex;
  justify-content: space-between;
  margin-inline: -4rem -2rem;
  margin-block-start: 1rem;
}

section.home-dop .layers .layer.layer-bg .images .img-wrapper img {
  object-fit: contain;
  width: fit-content;
  max-height: 10.125rem;
}

@media only screen and (max-width: 768px) {
  section.home-dop .layers .layer.layer-bg .images .img-wrapper img {
    max-height: 5rem;
  }

  section.home-dop .layers .layer.layer-bg .images {
    margin-block-start: 2rem;
  }
}

/*
* ==============================================
HOME TALEGGIO
* ==============================================
*/

section.home-taleggio {
  padding-block: 8.75rem;
  background-color: var(--c-white);
  margin-top: 12.6875rem;
  position: relative;
}

section.home-taleggio svg.tongue {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%) translateY(-100%);
  color: var(--c-white);
}

section.home-taleggio .zones .zone.zone-title {
  position: relative;
  text-align: center;
  margin-block-end: 1.8125rem;
}

section.home-taleggio .zones .zone.zone-title .section-title + .title {
  margin-block-start: 1.875rem;
}

section.home-taleggio .zones .zone.zone-info {
  margin-top: -8.5rem;
}

section.home-taleggio .zones .zone.zone-info > .container > .layers {
  justify-items: center;
}

section.home-taleggio .zones .zone.zone-info > .container > .layers > .layer.layer-bg {
  max-width: 37.75rem;
}

section.home-taleggio .zones .zone.zone-info > .container > .layers > .layer.layer-bg > .layers {
  place-items: center;
}

section.home-taleggio .zones .zone.zone-info > .container > .layers > .layer.layer-bg > .layers > .layer.layer-fg {
  max-width: 34.1875rem;
}

section.home-taleggio .zones .zone.zone-info > .container > .layers > .layer.layer-fg {
  z-index: 1;
  width: 100%;
}

section.home-taleggio .zones .zone.zone-info > .container > .layers > .layer.layer-fg .arrow {
  opacity: 0;
  position: absolute;
  top: 50%;
  left: 50%;
  font-size: 2rem;
  line-height: 1.266667;
  font-weight: 900;
  text-transform: uppercase;
  color: #434343;
}

section.home-taleggio .zones .zone.zone-info > .container > .layers > .layer.layer-fg .arrow:nth-child(1) {
  left: 14%;
}

section.home-taleggio .zones .zone.zone-info > .container > .layers > .layer.layer-fg .arrow:nth-child(1) svg {
  transform: scaleX(-1) translateX(-5.5ch);
}

section.home-taleggio .zones .zone.zone-info > .container > .layers > .layer.layer-fg .arrow:nth-child(2) {
  top: 70%;
  left: 47%;
}

section.home-taleggio .zones .zone.zone-info > .container > .layers > .layer.layer-fg .arrow:nth-child(2) svg {
  margin-inline-start: 50%;
  transform: translateX(-50%) rotate(90deg);
}

section.home-taleggio .zones .zone.zone-info > .container > .layers > .layer.layer-fg .arrow:nth-child(3) {
  left: 78%;
  top: 36%;
}

section.home-taleggio .zones .zone.zone-info > .container > .layers > .layer.layer-fg .arrow:nth-child(3) svg {
  transform: translateX(-3ch) translateY(0.3rem);
}

section.home-taleggio .zones .zone.zone-text {
  margin-block-start: 2.625rem;
  text-align: center;
}

section.home-taleggio .zones .zone.zone-text .description + .cta {
  margin-top: 1.875rem;
}

@media only screen and (max-width: 768px) {
  section.home-taleggio {
    margin-block-start: 6.25rem;
    padding-block-start: 3.125rem;
    padding-block-end: 3.125rem;
  }
}

@media only screen and (max-width: 900px) {
  section.home-taleggio .zones .zone.zone-info > .container > .layers > .layer.layer-fg .arrow {
    font-size: 1rem;
  }

  section.home-taleggio .zones .zone.zone-info > .container > .layers > .layer.layer-fg .arrow svg {
    scale: 0.75;
  }

  section.home-taleggio .zones .zone.zone-info > .container > .layers > .layer.layer-fg .arrow:nth-child(1) {
    left: 0;
  }

  section.home-taleggio .zones .zone.zone-info > .container > .layers > .layer.layer-fg .arrow p {
    position: relative;
  }

  section.home-taleggio .zones .zone.zone-info > .container > .layers > .layer.layer-fg .arrow p::after {
    content: "";
    background: var(--c-white);
    position: absolute;
    width: calc(100% + 1rem);
    height: calc(100% + 0.5rem);
    top: -0.25rem;
    left: -0.5rem;
    border-radius: 4px;
    z-index: -1;
  }

  section.home-taleggio .zones .zone.zone-info {
    margin-top: -5.5rem;
  }

  section.home-taleggio .zones .zone.zone-text {
    margin-top: 0;
  }

  section.home-taleggio .zones .zone.zone-info > .container > .layers > .layer.layer-fg .arrow:nth-child(3) {
    left: 70%;
  }
}

/*
* ==============================================
HOME MORE
* ==============================================
*/

section.home-more {
  padding-block-end: 6.8125rem;
}

section.home-more .text .text-wrapper {
  text-align: center;
  display: grid;
  gap: 1.875rem;
}

section.home-more .text + .image {
  margin-block-start: 3.75rem;
}

section.home-more .image .img-wrapper {
  max-width: 11rem;
  margin-inline: auto;
}

@media only screen and (max-width: 768px) {
  section.home-more {
    padding-block-end: 3.125rem;
  }

  section.home-more .text + .image {
    margin-block-start: 2rem;
  }
}

/*
* ==============================================
BANNER BASIC
* ==============================================
*/

section.banner.banner-basic .layers {
  height: 100%;
  place-items: center;
  text-align: center;
}

section.banner.banner-basic .layers .layer.layer-bg {
  height: 100%;
  width: 100%;
}

section.banner.banner-basic .layers .layer.layer-bg .img-wrapper {
  height: 100%;
}

section.banner.banner-basic .layers .layer.layer-bg .img-wrapper {
  border-image: fill 0 linear-gradient(rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.3));
}

section.banner.banner-basic .layers .layer.layer-bg .img-wrapper img {
  z-index: -1;
}

section.banner.banner-basic .layers .layer.layer-fg .title {
  padding-block: 7.5rem;
}

section.banner.banner-basic .layers .layer.layer-fg svg {
  rotate: 180deg;
  color: var(--c-light-gray);
  margin-top: -1px;
}

@media only screen and (max-width: 768px) {
  section.banner.banner-basic .layers .layer.layer-fg .title {
    padding-block: 3.125rem;
  }
}

/*
* ==============================================
HERO VIDEO
* ==============================================
*/

section.hero.hero-video {
  min-height: 75vh;
  min-height: max(500px, 75vh);
  height: 0;
  position: relative;
}

section.hero.hero-video a.go-down {
  position: absolute;
  bottom: 2rem;
  left: 50%;
  transform: translateX(-50%);
  height: 2.625rem;
  width: 2.625rem;
  border-radius: var(--br-medium);
  backdrop-filter: blur(30px) brightness(115%);
  display: grid;
  place-items: center;
}

section.hero.hero-video::after {
  pointer-events: none;
  content: "";
  position: absolute;
  bottom: 0;
  height: var(--tongue-height);
  background-color: var(--c-light-gray);
  width: 100%;
  z-index: 2;
  mask-image: url("../assets/images/tongue-upside-down.svg"), url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxyZWN0IHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9ImJsdWUiIC8+Cjwvc3ZnPgoK");
  mask-composite: exclude;
  mask-repeat: no-repeat;
  mask-position: top center;
}

section.hero.hero-video .layers {
  height: 100%;
}

section.hero.hero-video .layers .layer.layer-bg .img-wrapper {
  height: 100%;
}

section.hero.hero-video .layers .layer.layer-fg {
  z-index: 2;
  padding-top: 3.625rem;
  padding-bottom: 2.3125rem;
  height: fit-content;
  background-image: linear-gradient(rgba(0, 0, 0, 0.3), transparent);
}

section.hero.hero-video .layers .layer.layer-fg .zones {
  display: grid;
  position: relative;
  grid-template-columns: repeat(3, 1fr);
}

section.hero.hero-video .layers .layer.layer-fg .zones .zone:nth-child(1) {
  justify-self: center;
  grid-column: 2;
}

section.hero.hero-video .layers .layer.layer-fg .zones .zone:nth-child(2) {
  justify-self: end;
  grid-column: 3;
}

section.hero.hero-video .layers .layer.layer-fg .zones .zone.zone-social {
  display: flex;
  gap: 1.5rem;
  align-items: center;
}

section.hero.hero-video .layers .layer.layer-fg .zones .zone.zone-social a {
  height: 1.6875rem;
  width: 1.6875rem;
}

section.hero.hero-video .layers .layer.layer-fg .zones .zone.zone-social svg {
  color: var(--c-white);
}

@media only screen and (max-width: 768px) {
  section.hero.hero-video .layers .layer.layer-fg {
    padding-block: 1rem;
  }

  section.hero.hero-video .layers .layer.layer-fg .zones {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 1rem;
  }

  section.hero.hero-video .layers .layer.layer-fg .zones .zone.zone-social {
    margin-left: auto;
  }
}

/*
* ==============================================
HEADER
* ==============================================
*/
header {
  padding-block-start: 0.625rem;
  padding-block-end: 0.6875rem;
  text-transform: uppercase;
  color: var(--c-white);
  background-color: var(--c-black);
  font-weight: 600;
  text-align: center;
}

.taleggio-logo-wrapper {
  position: fixed;
  top: 3.75rem;
  z-index: 3;
  width: 100%;
  pointer-events: none;
}

.taleggio-logo-wrapper img {
  max-width: 6.375rem;
  max-height: 6.375rem;
}

@media only screen and (max-width: 768px) {
  .taleggio-logo-wrapper {
    top: 6.75rem;
  }

  .taleggio-logo-wrapper img {
    max-width: 3.5rem;
    max-height: 3.5rem;
  }
}

/*
* ==============================================
CONTACT US FORM
* ==============================================
*/
section.contact-us-form {
  padding-block-end: 2.5rem;
}

section.contact-us-form .zones .zone.zone-form {
  padding-block: 8.75rem;
}

section.contact-us-form .zones .zone.zone-form .text {
  text-align: center;
}

section.contact-us-form .zones .zone.zone-form .text .section-title::after {
  line-height: 1.25rem;
}

section.contact-us-form .zones .zone.zone-form .text .section-title + .title {
  margin-block-start: 1.875rem;
}

section.contact-us-form .zones .zone.zone-form .text .title + .cta {
  margin-block-start: 3.125rem;
}

section.contact-us-form .zones .zone.zone-form .text + .form {
  margin-top: 3.125rem;
}

section.contact-us-form .zones .zone.zone-form .form form {
  display: grid;
  grid-template-columns: 1fr auto;
  column-gap: 0.5rem;
  row-gap: 1.875rem;
}

section.contact-us-form .zones .zone.zone-form .form form .wpcf7-spinner {
  display: none;
}

section.contact-us-form .zones .zone.zone-form .form form p:has(span[data-name^="acceptance"]) {
  grid-column: -1/1;
  text-align: center;
  font-size: 0.875rem;
  color: var(--c-gray);
  line-height: 1.214286;
}

section.contact-us-form .zones .zone.zone-form .form form p:has(span[data-name^="acceptance"]) label {
  display: flex;
  align-items: center;
  gap: 0.625rem;
}

section.contact-us-form .zones .zone.zone-img {
  aspect-ratio: 1440/224.146;
  position: relative;
}

section.contact-us-form .zones .zone.zone-img svg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

@media only screen and (max-width: 768px) {
  section.contact-us-form .zones .zone.zone-form {
    padding-block: 3.125rem;
  }

  section.contact-us-form .zones .zone.zone-form .form form {
    grid-template-columns: 1fr;
    row-gap: 1rem;
  }

  section.contact-us-form .zones .zone.zone-form .form form p:has(span[data-name^="acceptance"]) {
    text-align: left;
  }
}

/*
* ==============================================
FOOTER
* ==============================================
*/

footer .rows .row.row-top {
  padding-block-start: 7.5rem;
  padding-block-end: 3.125rem;
}

footer .rows .row.row-top .footer-zones {
  display: grid;
  --grid-item-width: 22.5rem;
  grid-template-columns: repeat(auto-fit, minmax(var(--grid-item-width), 1fr));
  grid-template-columns: repeat(auto-fit, minmax(min(var(--grid-item-width), 100%), 1fr));
  gap: 1.5rem;
  row-gap: 3rem;
}

footer .rows .row.row-top .footer-zones .zone .title {
  text-transform: uppercase;
  margin-bottom: 2.5rem;
}

footer .rows .row.row-top .footer-zones .zone .socials {
  display: flex;
  gap: 1rem;
}

footer .rows .row.row-top .footer-zones .zone .socials svg {
  color: var(--c-black);
  height: 1.6875rem;
  width: 1.6875rem;
}

footer .rows .row.row-bottom .sponsors {
  border-top: 2px solid #e7e4e1;
  padding-top: 3.375rem;
  padding-bottom: 3.375rem;
  display: grid;
  gap: 1.4375rem;
  text-align: center;
  font-size: 0.875rem;
  line-height: 1.214286;
  font-weight: 700;
}

footer .rows .row.row-bottom .sponsors img {
  max-width: 27.5rem;
  margin-inline: auto;
}

footer .flag {
  height: 1.875rem;
  background-image: linear-gradient(#47944a 33%, white 33%, white 66%, #da3b2b 66%);
}

footer .copyright {
  text-align: center;
  padding-block: 3.4375rem;
  line-height: 1.5;
}

@media only screen and (max-width: 768px) {
  footer .rows .row.row-top .footer-zones .zone .title {
    margin-bottom: 1.2em;
  }
}
