@import url('https://fonts.googleapis.com/css2?family=Archivo:ital,wght@0,100..900;1,100..900&family=Cal+Sans&family=DM+Mono:ital,wght@0,300;0,400;0,500;1,300;1,400;1,500&display=swap');

* {
    vertical-align: baseline;
    font-weight: inherit;
    font-family: inherit;
    font-style: inherit;
    font-size: 100%;
    border: 0 none;
    outline: 0;
    padding: 0;
    margin: 0;
}

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

:root {
  --rosso: #d23c3c;
  --nero: #1f1f1e;
  --grigio: #a6a6a6;
  --bianco: #f9f5f2;
  --azzurro: #e7f6f8;
  --font-body: "Archivo", sans-serif;
  --font-cta: "DM Mono", monospace;
  --font-tit: "Cal Sans", sans-serif;
  --pd-left: 100px;
}

/* TIPOGRAFIA ED ELEMENTI GLOBALI */

body {
  font-family: "Archivo", sans-serif;
  font-weight: 300;
  color: var(--nero);
  font-size: 1em;
  line-height: 1.5em;
  background: var(--bianco);
}

p {
  margin-bottom: 0;
}

h1 {
  font-family: "Cal Sans", sans-serif;
  font-weight: 400;
  color: var(--nero);
  font-size: 8vw;
  line-height: 1em;
  text-wrap: balance;
  white-space: pre-line;
  padding-bottom: 50px;
}

h2 {
  font-family: "Cal Sans", sans-serif;
  font-size: 8vw;
  line-height: 1em;
  color: var(--nero);
  text-wrap: balance;
  white-space: pre-line;
}

h3 {
  font-family: "Cal Sans", sans-serif;
  color: var(--nero);
  font-size: 5em;
  line-height: 1em;
  text-wrap: balance;
}

h4 {
  font-family: "Archivo", sans-serif;
  font-weight: 100;
  font-size: 2em;
  line-height: 1em;
  text-wrap: balance;
  white-space: pre-line;
  margin-bottom: 0;
  text-transform: uppercase;
}

h5 {
  font-family: var(--font-cta);
  font-weight: 200;
  font-size: .9em;
  text-transform: uppercase;
  line-height: 1.3em;
  text-wrap: balance;
  white-space: pre-line;
  text-decoration: underline;
}

h6 {
  font-family: "Archivo", sans-serif;
  font-weight: 100;
  font-size: 2em;
  line-height: 1.2em;
  text-wrap: balance;
  white-space: pre-line;
  margin-bottom: 0;
}

.font-weight-bold {
  font-weight: 800!important;
}

a {
  color: black;
  font-family: var(--font-cta);
  text-transform: uppercase;

  &:hover {
    color: black;
    text-decoration: none;
  }
}

.text-cta {
  font-family: var(--font-cta);
  text-transform: uppercase;
  font-size: 90%;
}




/* PADDING - MARGINI */
.pd-top-200 {
  padding-top: 200px;
}

.pd-top-100 {
  padding-top: 100px;
}

.pd-top-50 {
  padding-top: 50px;
}

.pd-top-25 {
  padding-top: 25px;
}

.pd-top-10 {
  padding-top: 10px;
}

.pd-top-btm-100 {
  padding: 100px 0;
}

.pd-btm-50 {
  padding-bottom: 50px;
}

.pd-btm-25 {
  padding-bottom: 25px;
}

.pd-btm-10 {
  padding-bottom: 10px;
}

.mg-top-100 {
  margin-top: 100px;
}


/* ------------------------------------------------ CTA ------------------------------------------------ */

.cta-std {
  background: #DB6864;
  line-height: 1em;
  margin: 0;
  padding: 20px;
  border-radius: 100em;
}

.cta-std-due {
  color: var(--nero);
  line-height: 1em;
  margin: 0;
  padding: 20px;
  border-radius: 100em;
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  position: relative;
  background-color: rgba(31, 31, 30, 0.2);
  -webkit-transition-property: color;
  transition-property: color;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
}
.cta-std-due:before {
  content: "";
  position: absolute;
  z-index: -1;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background: var(--nero);
  -webkit-transform: scaleX(0);
  transform: scaleX(0);
  -webkit-transform-origin: 50%;
  transform-origin: 50%;
  -webkit-transition-property: transform;
  transition-property: transform;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-timing-function: ease-out;
  transition-timing-function: ease-out;
  border-radius: 100em;
}
.cta-std-due:hover, .cta-std-due:focus, .cta-std-due:active {
  color: white;
}
.cta-std-due:hover:before, .cta-std-due:focus:before, .cta-std-due:active:before {
  -webkit-transform: scaleX(1);
  transform: scaleX(1);
}

/* ------------------------------------------------ HOME PAGE ------------------------------------------------ */

#hero {
  position: relative;

  .cont-hero {
    width: 100%;
    height: 100vh;

    .box-img {
      width: 100%;
      height: 100vh;

      img {
        width: 100%;
        height: 100%;
        object-fit: cover;
      }
    }
  }

  .contenuti {
    width: 50%;
    height: auto;
    padding: 50px;
    background-color: rgba(31, 31, 30, .8);
    position: absolute;
    bottom: 0;
    left: 0;
    color: var(--bianco);
    z-index: 1;

    .tit {
      
      a {
        color: var(--bianco);
      }

      h2 {
        color: var(--bianco);
        font-size: 6vw;
        padding: 10px 0 75px;
      }
    }
  }

  .caratteristiche {
    display: flex;
    justify-content: space-between;

    .box-car {
      width: 25%;
      padding-top: 10px;
      border-top: solid 1px var(--bianco);
      margin-right: 50px;
    }
  }

  .filtro {
    width: 100%;
    height: 100vh;
    position: absolute;
    top: 0;
    left: 0;
    background-color: rgba(31, 31, 30, 0.5);
  }
}

#aboutHome {
  background: var(--bianco);
  position: relative;
  padding: 200px 0 150px;

  .cont-img {
    width: 100%;
    height: 600px;

    img {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }
  }

  .cont-img-small {
    width: 50%;
    height: auto;
    aspect-ratio: 1 / 1;
    float: right;

    img {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }

  }

  p {
    width: 90%;
    padding-left: var(--pd-left);
  }

  p.due {
    padding-left: 0;
    padding-bottom: 50px;
    width: 50%;
  }

  .col-lg-7 {
    padding-left: var(--pd-left);
  }
}

.img-par {
  overflow: hidden;
  position: relative;
}

.img-par img {
  width: 100%;
  height: 120%;
  object-fit: cover;
  display: block;
}

.due-colonne {
  column-gap: 80px;
  column-width: 100px;
  padding-right: 27%;
}

#video {
  width: 100%;
  height: auto;
  padding-bottom: 10px;

  video {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
}

.linea {
  width: 100%;
  display: block;
  height: 1px;
  background: var(--nero);
  margin: 50px 0 0;
}

#progettiHome {
  background: var(--rosso);
  padding: 200px 0;

  h2, h5 {
    padding-left: var(--pd-left);
  }

  p {
    width: 50%;
  }
}

#galleryHome {
  .gallery-home {
    overflow: hidden;        /* maschera ciò che esce dai lati */
    width: 100%;
    padding-bottom: 15px;
  }

  .marquee-inner {
    display: flex;           /* i due .cont-img-gal stanno in riga */
    width: max-content;      /* la riga si estende oltre il viewport */
    gap: 15px;
  }

  .cont-img-gal {
    display: flex;           /* le img stanno in riga */
    gap: 15px;
    height: 800px;
    flex-shrink: 0;          /* non si restringono per entrare */

    img {
      height: 100%;
      width: auto;           /* larghezza proporzionale all'altezza */
      object-fit: cover;
      display: block;
    }
  }
}

.marquee-inner {
  cursor: grab;
  user-select: none;           /* evita la selezione del testo mentre draggi */
}

.marquee-inner:active {
  cursor: grabbing;
}

#clients {
  background: var(--nero);
  color: var(--bianco);
  padding: 200px 0;

  p {
    padding-left: var(--pd-left);
  }

  h3 {
    color: var(--bianco);
  }

  .clienti {
    padding-top: 100px;

    .box-clienti {
      border-bottom: solid 1px var(--bianco);
      cursor: pointer;
      position: relative;

      &:hover {
        z-index: 10;
      }
      
      .titolo {
        display: flex;
        justify-content: space-between;
        padding: 13px 10px 10px;
        transition: all .5s cubic-bezier(.215, .61, .355, 1);
        background: var(--nero);
        position: relative;

        &:hover {
          background: var(--bianco);
          color: var(--nero);

          .hover-img {
            opacity: 1;
            transform: translate(65%, -50%) scale(1.5);
          }
        }

        .hover-img {
          position: absolute;
          top: 50%;
          left: 50%;
          transform: translate(65%, -50%) scale(0.9);
          width: 300px;
          height: auto;
          max-height: 200px;
          object-fit: cover;
          opacity: 0;
          pointer-events: none;
          transition: opacity .5s cubic-bezier(.215, .61, .355, 1),
                      transform .5s cubic-bezier(.215, .61, .355, 1);
          z-index: 100;
        }

        h4, p {
          position: relative;
          z-index: 1;
        }

        p {
          font-size: 3em;
          font-weight: 100;
          font-family: "Archivo", sans-serif;
        }
      }

      .contenuto {
        
        p {
          padding-left: 10px;
          padding-top: 20px;
          width: 50%;
        }

        a {
          margin: 20px 0 20px; 
          color: var(--rosso);
          padding-left: 10px;
        }
      }
    }
  }

  .box-clienti.primo {
    border-top: solid 1px var(--bianco);
  }
}

#pressHome {
  padding: 200px 0;

  h2 {
    padding-bottom: 50px;
  }

  p {
    width: 50%;
  }

  h6 {

    &::after {
      content: url('../img/Virgolette.svg');
      width: 100px;
      height: 100px;
      display: block;
      padding-top: 25px;
    }
  }

  .linea {
    margin-bottom: 50px;
  }
}

.swiper {
  height: 100%;
}

#blogHome {
  background: var(--bianco);
  position: relative;
  padding: 0 0 150px;

  .cont-img {
    width: 100%;
    height: 600px;

    img {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }
  }

  .cont-img-small {
    width: 50%;
    height: auto;
    aspect-ratio: 1 / 1;
    float: right;

    img {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }

  }

  p {
    width: 75%;
  }

  .col-lg-7 {
    padding-left: var(--pd-left);
  }

  .linea {
    margin-top: 0;
    margin-bottom: 50px;
  }

  h3 {
    white-space: pre-line;
  }
}

#immaginiHome {
  padding: 0;

  .container-fluid {
    display: flex;
    gap: 15px;
  }

  .img-uno, .img-due {
    width: 25%;
    height: 100%;
    aspect-ratio: 1 / 1;

    img {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }
  }

  .img-tre {
    width: 50%;
    height: 100%;

    img {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }
  }
}

#footerImg {
  width: 100%;
  height: 600px;
}

footer {
  background: var(--nero);
  color: var(--bianco);
  position: relative;
  margin-top: auto;
  flex-shrink: 0;
  padding: 75px 50px;
  margin-top: -2px;

  h3 {
    color: var(--bianco);
    text-transform: uppercase;
    font-size: 3em;
    margin-bottom: 0;
  }

  h4 {
    font-size: 1.3em;
    white-space: pre-line;
    padding-bottom: 29px;
  }

  .col-12.col-lg-3.uno {
    border-bottom: solid 1px var(--bianco);
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: end;
  }

  .col-12.col-lg-3.due {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: end;
  }

  .tre {
    padding: 100px 0;

    .row {
      margin-left: 0;
      margin-right: 0;
    }
  }

  .quattro {
    border-top: solid 1px var(--bianco);
    padding-top: 15px;

    .col-lg-2 {
      display: flex;
      justify-content: end;
    }
  }
}

#heroProgetto {

  .cont-hero {
    position: relative;
    /*
    .fade {
      width: 100%;
      height: 80vh;
      background: var(--nero);
      position: absolute;
      top: 0;
      left: 0;
      z-index: 99999;
    }*/

    h1 {
      position: absolute;
      bottom: 50px;
      left: 50px;
      color: var(--bianco);
      z-index: 1;
      font-size: 12vw;
    }

    .box-img {
    width: 100%;
    height: 100vh;
    background: var(--nero);

      img {
        width: 100%;
        object-fit: cover;
        opacity: .3;
      }
    }

    .dati {
      position: absolute;
      top: 150px;
      left: 50px;
      z-index: 1;
      display: flex;
      color: var(--bianco);
      align-items: center;

      p {
        color: var(--bianco);
        font-family: var(--font-cta);
        text-transform: uppercase;
      }

      span {
        display: block;
        width: 100px;
        height: 1px;
        background: var(--rosso);
        margin: 0 20px ;
      }
    }
  }
}

#primaProg {
  padding: 50px 50px 200px;
  background: var(--nero);
  color: var(--bianco);
  margin-top: -2px;
  
  .caratteristiche {
    display: flex;
    justify-content: end;
    height: 100%;
    align-items: end;

    .box-car {
      margin-right: 50px;

      width: 100px;
    }
  }
}

#secondaProg {
  background: var(--nero);
  padding-bottom: 15px;
  margin-top: -2px;

  .container-fluid.img {
    display: flex;
    align-items: end;
    gap: 15px;

    .box-img.uno {
      width: 70%;
      height: 800px;

      img {
        width: 100%;
        height: 100%;
        object-fit: cover;
      }
    }

    .box-img.due {
      width: 30%;
      height: 400px;

      img {
        width: 100%;
        height: 100%;
        object-fit: cover;
      }
    }
  }
}

.linea-box {
  display: block;
  width: 100%;
  height: 1px;
  background: var(--rosso);
  margin-top: 5px;
}

#terzaProg {
  padding: 200px 0 200px 50px;

  p {
    white-space: pre-line;
  }

  h2 {
    font-size: 4vw;
  }
}

#quartaProg {
  padding-bottom: 15px;
  
  .container-fluid {
    display: flex;
    gap: 15px;
    margin-top: 15px;
  }

  .box-img.large {
    width: 70%;
    height: 50vh;

    img {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }
  }

  .box-img.small {
    width: 30%;
    height: 50vh;

    img {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }
  }
}

#quintaProg {
  padding-bottom: 200px;

  h3 {
    padding: 50px 0 150px;
  }

  p {
    padding-left: var(--pd-left);
  }

  .linea {
    background: var(--rosso);
  }
}

#heroAbout {
  background: var(--nero);
  padding: 200px 0 0;
  color: var(--bianco)!important;

  h1 {
    color: var(--rosso);
    font-size: 10vw;
    padding-top: 100px;
  }

  h6 {
    width: 75%;
    padding-left: var(--pd-left);
    display: inline-flex;
    flex-wrap: wrap;

    img {
      width: 175px;
      position: relative;
    }
  }

  .box-img {
    width: 100%;
    height: auto;

    img {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }
  }
}

#immaginiHome.about {
  padding: 15px 0;
}

#primaAbout {
  padding-bottom: 50px;

  h6 {
    padding-left: var(--pd-left);
  }

  .linea {
    margin-left: var(--pd-left);
    margin-bottom: 50px;
    background: var(--rosso);
  }
}

#secondaAbout {
  padding-bottom: 200px;

  .col-12 {
    padding-left: 0;
    padding-right: 0;
  }

  p {
    padding-left: var(--pd-left);
    width: 75%;
  }
}

#terzaAbout {
  background: var(--rosso);
  padding: 200px 0;

  h2 {
    padding-bottom: 100px;
  }

  p {
    padding-left: var(--pd-left);
    width: 75%;
  }

  .cont-video {
    width: 100%;
    height: 100%;
    aspect-ratio: 1 / 1;

    video {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }
  }
}

#quartaAbout {
  padding: 200px 0;
  background: var(--nero);
  color: var(--bianco);

  h3 {
    color: var(--bianco);
  }

  p {
    padding-left: var(--pd-left);
    width: 75%;

    img {
      width: 150px;
    }
  }  
}

#menuCs {
  padding: 50px 0 0;

  .container-fluid {
    display: flex;
    justify-content: center;
  }
}

#comingSoon {
  padding: 100px 0;
  text-align: center;
  background: var(--bianco);

  h1 {
    color: var(--rosso);
  }

  img {
    width: 200px;
  }
}
