@import url('reset.css');

::-moz-selection{ background-color: #f3f3f3; color: #333;}
::selection{ background-color: #f3f3f3; color: #333;}

:root {
--grigio-chiaro: #DDD;
--grigio-scuro: #161616;
}

a {text-decoration: none; color: #FFF; cursor: pointer;}
a:hover {color: var(--grigio-chiaro);}
body {
  font-family: 'Montserrat', sans-serif;
  background: var(--grigio-scuro);
  color: var(--grigio-chiaro);
  font-size: 17px;
  line-height: 27px;
  letter-spacing: 0;
  font-weight: 400;
  -webkit-text-size-adjust: 100%;
}

ul li, ol li {font-weight: inherit; text-align: left;}

h1 {font-size: 30px; line-height: 32px; font-weight: 700; text-transform: uppercase; color: #FFF; font-family: 'Montserrat', sans-serif; margin-bottom: 15px;}
h2 {font-size: 30px; line-height: 35px; font-weight: 700; text-transform: uppercase; color: #FFF; font-family: 'Montserrat', sans-serif; margin-bottom: 20px;}
h3 {font-size: 24px; line-height: 30px; font-weight: 700; text-transform: uppercase;  color: #FFF; font-family: 'Montserrat', sans-serif; margin-bottom: 10px;}
h4 {font-size: 18px; line-height: 25px; font-weight: 400; color: #FFF; font-family: 'Montserrat', sans-serif; margin-bottom: 10px;}

strong {font-weight: 600; color: #FFF;}

#cookieChoiceInfo {display:none; color: #CCC; bottom: 0; top: inherit !important; font-size: 12px; line-height: 20px; padding: 20px 30px 19px 32px !important; background-color: black !important; text-align: left !important}
#cookieChoiceInfo a#cookieChoiceDismiss {position: absolute;top: 20px;right: 20px; font-size: 15px}
/*#cookieChoiceInfo a#cookieChoiceDismiss::after{content: "\2715"}*/
#cookieChoiceInfo a {color: white;}
#cookieChoiceInfo a:hover {color: #CCC;}

a.bottone {position: relative; height: auto; overflow: hidden; background: #efefef; font-size: 13px; line-height: 21px; letter-spacing: 0; color: #333; width: 200px; display: inline-block; text-align: center; padding: 12px 0;}
a.bottone:hover {background: #d2d2d2;}

.sticky {position: sticky !important; position: -webkit-sticky !important; top: -1px; z-index: 2;}

.grecaptcha-badge {visibility: hidden;}
.iubenda-tp-btn[data-tp-float]:not([data-tp-anchored]), .iubenda-cs-brand-badge {display: none !important;}

#lang {font-size: 12px; font-weight: 500; position: relative; top: -3px; margin-right: 20px;}

body.home-grid {
    margin: 0;
    overflow: hidden;
    cursor: grab;
    font-family: sans-serif;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    transition: opacity 0.5s ease-out;
    /* Impedisce il "pull-to-refresh" su Android e l'overflow su iOS */
    touch-action: none; /* Aggiunto per il touch */
}

body.fade-out {
    opacity: 0;
}

.container-wrapper {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    z-index: 1;
    /* Aggiunto per assicurare che gli eventi touch siano catturati su tutta l'area */
    touch-action: none; 
}

.grid-container {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: flex-start;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) scale(1);
    padding: 50px;
    box-sizing: border-box;
    transition: transform 0.5s ease-out, opacity 0.5s ease-out;
    will-change: transform, opacity;
    min-width: calc(100vw + 100px);
    /* Assicurati che non ci siano trascinamenti di testo o immagini accidentali */
    -webkit-touch-callout: none;
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0); /* Rimuove il flash al tap */
}

.grid-container.zoom-fade-out {
    transform: translate(-50%, -50%) scale(1.05);
    opacity: 0;
}

.grid-item {
    height: auto;
    /*box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);*/
    opacity: 0;
    transform: scale(0.9);
    transition: opacity 0.5s ease-out, transform 0.5s ease-out, box-shadow 0.3s ease;
    box-sizing: border-box;
    cursor: pointer; 
    -webkit-user-drag: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    display: flex; 
    justify-content: center;
    align-items: center;
    overflow: hidden; 
}

.grid-item img, .grid-item video {
    display: block; /* Rimuove lo spazio extra sotto l'immagine */
    width: 100%;
    height: 100%;
    object-fit: cover; /* Copre l'intera area del grid-item mantenendo le proporzioni */
    opacity: 0; /* Inizialmente nascosta per un fade-in */
    transition: opacity 2s ease-in; /* Transizione per il fade-in dell'immagine */
}

.grid-item.is-visible {
    opacity: 1;
    transform: scale(1);
}

.grid-item.is-visible img, .grid-item.is-visible video {
    opacity: 1; /* Rende visibile l'immagine quando il grid-item è visibile */
}

.grid-item.dim {
    opacity: 0.4;
}

.grid-item:hover {
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2);
    cursor: zoom-in;
}

.logo-fixed {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 10;
    max-width: 250px;
    height: auto;
    opacity: 0.8;
    pointer-events: none;
    filter: invert(1);
}


/* --------------------------------------------------------------------------
        CSS BASE
--------------------------------------------------------------------------- */

.only-mobile {display: none;}
.not-mobile {display: block;}
body.stop-scroll {overflow: hidden; height:100%;}

.wrapper {position: relative; height: auto; overflow: hidden; width: 100%; max-width: 1140px; margin: 0 auto; padding: 0 20px;}
.wrapper-small {max-width: 610px}
.wrapper-medium {max-width: 800px}
.wrapper-big {max-width: 1200px}

.wrapper.flex-container {display: flex; flex-direction: row; justify-content: space-between; align-items: center;} /* per vertical: align-items: center; */

.overflow-visible {overflow: visible !important;}
.flex-vertical-center {display: flex; flex-direction: row; justify-content: space-between; align-items: center;}
.flex {display: flex; flex-direction: row; align-content: center; justify-content: space-between;}

#menu {position: relative; height: auto; overflow: hidden;}
#menu ul {position: relative; height: auto; overflow: hidden; padding-left: 0; display: flex;}
#menu ul li {position: relative; height: auto; overflow: hidden; list-style: none; margin: 0 20px; vertical-align: middle;}
#menu ul li a {position: relative; height: auto; overflow: hidden; color: #FFF;font-size: 17px; line-height: 20px; text-transform: uppercase; letter-spacing: 0; font-weight: 400;}
#menu ul li:hover, #menu ul li a:hover, #menu ul li.active a {color: #CCC;}

#main-content {padding: 80px 0 60px 0;}

section.default-section {padding: 80px 0;}
section.default-section p:last-child {margin-bottom: 0}
section.no-padding-bottom {padding-bottom: 0}
section.no-padding-top {padding-top: 0}

header {position: relative; padding: 15px 0; position: fixed; width: 100%; top: 0; background: var(--grigio-scuro); /*backdrop-filter: blur(6px); */ z-index: 1;}
#logo img {display: inline-block; max-width: 110px; filter:invert(1);}

#main-content {padding-top: 200px;}

#x-close img {max-width: 20px; filter: invert(1);}

.wrapper.min-height-wrapper {min-height: 400px;}


/* --------------------------------------------------------------------------
        GALLERIA
--------------------------------------------------------------------------- */

#galleria-container {z-index: 1; position: relative;}
#galleria {z-index: 2; position: relative;}
#galleria-overlay {z-index: 3; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,0.5);}
#galleria-title {z-index: 4; position: absolute; width: 100%;}
#galleria-title .galleria-title-content {width: 100%; max-width: 800px; margin: 0 auto; position: relative; color: white;}

#galleria-container, #galleria-container #galleria, #galleria-container #galleria-overlay {height: 80vh;}
#galleria-container.galleria-container-home, #galleria-container.galleria-container-home #galleria, #galleria-container.galleria-container-home #galleria-overlay {height: 100vh;}


/* --------------------------------------------------------------------------
        PROGETTI
--------------------------------------------------------------------------- */

#gallery {margin-top: 50px;}
.singola-gallery {margin-bottom: 20px}
.singola-gallery:last-child {margin-bottom: 0}

iframe.vimeo {
  width: 100vw; min-height: 100vh; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
  min-width: 177.77vh !important; /* Given a 16:9 aspect ratio, 16/9*100 = 177.77 */
  height: 56.25vw !important; /* Given a 16:9 aspect ratio, 9/16*100 = 56.25 */
}
.video-container {position: relative; overflow: hidden; background: #222; margin-bottom: 20px;}



/* --------------------------------------------------------------------------
        FOOTER
--------------------------------------------------------------------------- */

footer {padding: 40px 0 60px 0; border-top: 1px solid #333; font-size: 12px; line-height: 24px; font-weight: 500;}
#home-footer {position: absolute; width: 100%; bottom: 20px; font-size: 13px; line-height: 18px; z-index: 2}
#home-footer .wrapper {max-width: 99%; min-width: 99%}


/* --------------------------------------------------------------------------
        Newsletter
--------------------------------------------------------------------------- */

#mc_embed_signup {background: transparent !important;}
#mc_embed_signup input.email {border: none !important; background: #fafafa; color: #9b9b9b !important; font-size: 10px !important; width: 100% !important; padding-left: 10px !important;}
#mc_embed_signup input.button {font-size: 11px !important; width: 100% !important;}
#mc_embed_signup .button {background-color: #efefef !important; color: #9b9b9b !important;}
#mc_embed_signup .button:hover {background-color: #d2d2d2 !important;}
#mc_embed_signup {margin-left: -5px !important;}


/* --------------------------------------------------------------------------
        FORM
--------------------------------------------------------------------------- */

label{font-size:12px;text-align:center;font-weight:600;color:#222;letter-spacing:0}
input,select{position:relative;height:auto;overflow:hidden;width:100%;border:1px solid #E7E7E7;background:#FFF;font-size:14px;letter-spacing:1px;color:#8E8E8E;padding:15px 20px;display:block;margin-bottom:15px;font-weight:400;border-radius:4px}
textarea{position:relative;height:auto;overflow:hidden;display:block;width:100%;font-size:13px;border:1px solid #E7E7E7;letter-spacing:1px;background:#FFF;padding:15px 20px;height:200px;margin-bottom:15px;color:#8E8E8E;font-weight:400;border-radius:4px}

input.submit{margin-top:15px;cursor:pointer;position:relative;height:auto;overflow:hidden;background:#6191cd;font-size:12px;line-height:21px;font-weight:600;letter-spacing:1px;color:#fff;width:200px;display:inline-block;text-align:center;padding:12px 0;border:0}
input.submit:hover{background:#4481cc}
input:focus,select:focus,textarea:focus,button:focus{outline:none}

select{cursor:pointer;display:inline-block;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none}
select.classic{background-image:linear-gradient(45deg,transparent 50%,blue 50%),linear-gradient(135deg,blue 50%,transparent 50%),linear-gradient(to right,skyblue,skyblue);background-position:calc(100% - 20px) calc(1em + 2px),calc(100% - 15px) calc(1em + 2px),100% 0;background-size:5px 5px,5px 5px,2.5em 2.5em;background-repeat:no-repeat}
select.minimal{background-image:linear-gradient(45deg,transparent 50%,gray 50%),linear-gradient(135deg,gray 50%,transparent 50%),linear-gradient(to right,#ccc,#ccc);background-position:calc(100% - 20px) calc(1.7em + 0px),calc(100% - 15px) calc(1.7em + 0px),calc(100% - 2.5em) 1em;background-size:5px 5px,5px 5px,1px 1.5em;background-repeat:no-repeat}

input.checkbox {-webkit-appearance: checkbox !important; padding: 0; cursor: pointer;}
input.checkbox {width: auto; margin-right: 10px; float: left; top: 4px;}


/* --------------------------------------------------------------------------
        FADE IN / FADE OUT
--------------------------------------------------------------------------- */

.js .hideme, .js .hideme-slideup, .js .hidemeslow {opacity: 0;}
.unveil {opacity: 0}

/* --------------------------------------------------------------------------
        slideUp
--------------------------------------------------------------------------- */

.slideUp{animation-name:slideUp;-webkit-animation-name:slideUp;animation-duration:1s;-webkit-animation-duration:1s;animation-timing-function:ease;-webkit-animation-timing-function:ease;visibility:visible}
@keyframes slideUp {
    0%{transform:translateY(100%)}
    100%{transform:translateY(0%)}
}
@-webkit-keyframes slideUp {
    0%{-webkit-transform:translateY(100%)}
    100%{-webkit-transform:translateY(0%)}
}


/* --------------------------------------------------------------------------
        GALLERIA: Zoom on Loading
--------------------------------------------------------------------------- */

#id-galleria-jg .galleria-image img{-webkit-transition:scale 2s ease;-moz-transition:scale 2s ease;-o-transition:scale 2s ease;-ms-transition:scale 2s ease;transition:scale 2s ease;max-width:100%;-webkit-animation-fill-mode:forwards;-moz-animation-fill-mode:forwards;animation-fill-mode:forwards;animation-name:galleriaZoomOnLoading;-webkit-animation-name:galleriaZoomOnLoading;-moz-animation-name:galleriaZoomOnLoading;animation-duration:2s;-webkit-animation-duration:1s;-moz-animation-duration:1s;animation-timing-function:ease;-moz-animation-timing-function:ease;-webkit-animation-timing-function:ease;visibility:visible}
@keyframes galleriaZoomOnLoading {
  0%{-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);-o-transform:scale(1);transform:scale(1)}
  100%{-webkit-transform:scale(1.05);-moz-transform:scale(1.05);-ms-transform:scale(1.05);-o-transform:scale(1.05);transform:scale(1.05)}
}
@-webkit-keyframes galleriaZoomOnLoading {
  0%{-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);-o-transform:scale(1);transform:scale(1)}
  100%{-webkit-transform:scale(1.05);-moz-transform:scale(1.05);-ms-transform:scale(1.05);-o-transform:scale(1.05);transform:scale(1.05)}
}


/* --------------------------------------------------------------------------
        Responsive patterns
--------------------------------------------------------------------------- */

.col-r-1 {width: 8.33%;}
.col-r-2 {width: 16.66%;}
.col-r-3 {width: 25%;}
.col-r-4 {width: 33.33%;}
.col-r-5 {width: 41.66%;}
.col-r-6 {width: 50%;}
.col-r-7 {width: 58.33%;}
.col-r-8 {width: 66.66%;}
.col-r-9 {width: 75%;}
.col-r-10 {width: 83.33%;}
.col-r-11 {width: 91.66%;}
.col-r-12 {width: 100%;}

[class*="col-r-"] {float:left; padding: 15px; position: relative; height: auto; overflow: hidden;}
[class*="col-r-"] p img {width: 100% !important; height: auto !important;}
.row::after {content: ""; clear: both; display: block;}
.row.row-no-margin {margin: -15px;}

/* ---- MASONRY ---- */
.masonry.masonry-2 {column-count: 2; column-gap: 0.3em; }
.masonry.masonry-3 {column-count: 3; column-gap: 0.3em; }
.item {width: 100%; position: relative !important; left: auto !important; right: auto !important; top: auto !important; bottom: auto !important;break-inside: avoid}
.item img {width: 100%; display: block;}


/* --------------------------------------------------------------------------
        RESPONSIVE
--------------------------------------------------------------------------- */


@media screen and (max-width: 900px) {

  /* ---- FLEXBOX ---- */
  .flexbox-container {display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-moz-box-orient:vertical;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:start;-moz-box-align:start;-ms-flex-align:start;-webkit-align-items:flex-start;align-items:flex-start}
  .flexbox-container .first-div{-webkit-box-ordinal-group:2;-moz-box-ordinal-group:2;-ms-flex-order:2;-webkit-order:2;order:2}
  .flexbox-container .second-div{-webkit-box-ordinal-group:1;-moz-box-ordinal-group:1;-ms-flex-order:1;-webkit-order:1;order:1}

  .only-mobile {display: block;}
  .not-mobile {display: none;}

  .unveil {opacity: 1}

  .flex-vertical-center {display: block;}
  .flex-vertical-center.flexbox-container {display: flex;}

  .masonry.masonry-2 {column-count: 1;}
  .masonry.masonry-3 {column-count: 1;}

  [class*="col-r-"] {float: none; padding: 0 0 15px 0 !important; width: 100%;}
  [class*="col-r-"]:last-child {padding-bottom: 0 !important;}
  .row.row-no-margin {margin: 0;}

  input.checkbox {float: none; margin-bottom: 10px !important; padding: 0;}

  section.default-section {padding: 50px 0;}
  section.default-section p:last-child {margin-bottom: 0}
  section.no-padding-bottom {padding-bottom: 0}
  section.no-padding-top {padding-top: 0}

  header .wrapper.flex {display: flex;}

  .grid-container {padding: 0;}
  body {font-size: 16px;line-height: 26px;}
  h1 {font-size: 25px;line-height: 27px; }
  .logo-fixed {max-width: 200px;}

  #main-content {padding-top: 140px}
  #gallery {margin-top: 30px;}

  #home-footer div {text-align: center }
  .video-container {background: transparent;}
  /*iframe.vimeo {
    min-height: auto;
    width: 100%;
    top: auto;
    left: auto;
    transform: none;
    min-width: auto !important;
    height: 200px !important;
    position: relative;
  }*/

}

@media screen and (max-width: 700px) {
  /*.video-container {height: 350px;}*/
}
@media screen and (max-width: 600px) {
  /*.video-container {height: 230px;}*/
}
