/* Roberto */
@charset "UTF-8";

/* montserrat-regular - latin */
@font-face {
    font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Montserrat';
    font-style: normal;
    font-weight: 400;
    src: url('../fonts/montserrat-v26-latin-regular.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
  }
  /* montserrat-500 - latin */
  @font-face {
    font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Montserrat';
    font-style: normal;
    font-weight: 500;
    src: url('../fonts/montserrat-v26-latin-500.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
  }
  /* montserrat-600 - latin */
  @font-face {
    font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Montserrat';
    font-style: normal;
    font-weight: 600;
    src: url('../fonts/montserrat-v26-latin-600.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
  }

:root {
    --color-primary: #387912 !important;
    --color-secondary: #2b2b2b !important;
    --color-third: #4c4c4c !important;
    --color-text: #2b2b2b !important;
    --color-white: #fff !important;
    --color-separatore: #dddddd !important;
    --color-red: #00648f !important;
  }


/* search */
.header #btn-search {
    background-color: var(--color-red);
    color: #fff;
}

.header #btn-search:hover {
    background-color: var(--color-third);
    color: #fff;
}
.header #btn-logout,
.header #btn-raccolte,
.header #btn-login {
    background-color: var(--color-third);
}

.header #btn-login:hover,
.header #btn-raccolte:hover,
.header #btn-logout:hover {
    background-color: var(--color-red);
}

.header .raccolte--go.active #btn-raccolte {
    background-color: var(--color-red);
}

.header .raccolte--go.active #btn-raccolte:hover {
    background-color: var(--color-third);
}



/* header */
.header svg  { padding-left:10px; }
.header .text-logo-com { color:#fff; }

.header .input-group > .form-select {
    flex: 0 0 auto; /* Il select non si espande */
    width: auto; /* Si adatta al contenuto */
    min-width: 150px; /* Imposta una larghezza minima */
}

.header .input-group > .form-control {
    flex: 1 1 auto; /* L'input si espande per riempire lo spazio */
}


/* NAV MENU FILTER */
.navbar .megamenu{ padding: 1rem; }

/* ============ desktop view ============ */
@media all and (min-width: 992px) {
    .navbar .has-megamenu{position:static!important; margin-right:1rem;}
    .navbar .has-megamenu:hover{background: var(--color-secondary);}
    .navbar .megamenu{left:0; right:0; width:100%; margin-top:0; border-radius:0px;  }
}
/* ============ desktop view .end// ============ */

/* ============ mobile view ============ */
@media(max-width: 991px){
    .navbar.fixed-top .navbar-collapse, .navbar.sticky-top .navbar-collapse{
        overflow-y: auto;
        max-height: 90vh;
        margin-top: 10px;
    }
}

.navbar-expand-lg .navbar-nav .nav-link {
    font-size:1rem !important;
    color: #fff !important;
}

/* FILTRI */
.filtri--button {
    position: relative;
    display: flex;
    color: #fff;
    align-items: center;
    justify-content: space-between;
    background-color: var(--color-primary);
    text-decoration: none;
    min-height:55px;
    padding: 10px 20px;
    margin: 0px 0px 5px 0px;
    border: 1px solid var(--color-primary);
    gap: 0.5rem;
    padding-right: 1.5rem; /* spazio a destra per l'icona */
    min-width: 120px;       /* opzionale: evita che si stringa troppo */
}

.filtri--button .icon--fontawesome {
    display: none;
    margin-left: auto;
    color: #fff;
}

.filtri--button:hover .icon--fontawesome {
    display: inline-block;
}

.filtri--button.filtri--active .icon--fontawesome {
    display: inline-block;
    padding:8px;
    background-color: var(--color-red);
    border-radius:50%;
}


.filtri--button--label {
    background-color:  #333435;
    color: #fff;
    display: flex;
    align-items: center;
    padding: 10px;
    margin: 0px 0px 5px 0px;
    border: 1px solid  #333435;
    text-decoration: none;
}
.filtri--button--label h2 {
    font-size:1.2em;
    margin-bottom:0px;
    text-transform: uppercase;
}
.filtri--button:hover{
    color: #fff;
    text-decoration:none;
}
.filtri--button:hover .icon--fontawesome {
    display: inline-block;
    color:#fff;
}

.filtri--button--remove {
    font-size: 16px;
}

#selected-filters .icon--fontawesome--remowe {
    padding-left:20px !important;
}
#selected-filters ul {
    margin-top:8px !important;
    margin-bottom:8px !important;
}
.nav-item.cancella--filtri {
    background: var(--color-secondary);
}

.nav-item.cancella--filtri svg { padding-right:5px; }

.nav-item.cancella--filtri:hover {
    background: var(--color-red);
}

.raccolte--go {
    margin-right:10px;
}

.icon--fontawesome {
    display:none;
    float: right;
}

#selected-filters .list-inline-item { margin-right:0px !important; }





/* body */
body {
  color: var(--color-text);
  font-family: 'Montserrat';
  font-size:16px;
}

/* home */
.card .card__img {
    position: relative;
}

.card .overlay-icon {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: rgba(0, 0, 0, 0.8);
    color: white;
    padding: 20px;
    border-radius: 50%;
    font-size: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 80px;
    height: 80px;
}

.div-grid .card--loading {
    box-shadow: none !important;
    background:var(--color-white);
    min-height: 200px; /* placeholder provvisorio */
    transition: all 0.3s ease;
  }

.div-grid .card--loaded {
    box-shadow: 0 0 20px 0 var(--color-text);
}

.zoom-container {
    overflow: hidden; /* Mantiene l'immagine dentro i bordi */
    display: block;
    border-radius: 16px 16px 0 0; /* Mantiene il border-radius */
    position: relative;
}

.zoom-effect {
    transition: transform 0.3s ease-in-out;
    display: block;
    width: 100%;
    height: auto;
}

/* ATTIVA LO ZOOM SOLO QUANDO IL MOUSE È SU UN LINK (TITOLO, IMMAGINE O PULSANTE) */
.card a:hover .zoom-effect {
    transform: scale(1.2); /* Zoom immagine */
}


.btn {
  color: #fff !important;
}

.header {
    height: 130px;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    background: var(--color-secondary);
    z-index: 999;
    box-shadow: 0 2px 2px 0 var(--color-text);
    padding: 20px;
}

.footer-bottom { clear:both !important; }
.footer-bottom, .footer-bottom a {
  color: #fff;
}

.loghifooter {
  padding: 20px;
  text-align: right;
}

.nav-link {
  text-transform: uppercase;
  font-size: 18px;
}

.stickyfilter {
  position: fixed !important;
  top: 130px;
  left: 0;
  z-index: 999;
  width: 100%;
  height: 70px;
  background-color: var(--color-primary);
}

.list-inline {
  display: inline-flex;
  margin-right: 10px;
}

.list-inline > li {
  display: inline-block;
  padding-left: 5px;
  padding-right: 5px;
}

.column-grid { margin-bottom: 30px; }

.column-grid .card {
    background: #fff;
    box-shadow: 0 0 20px 0   var(--color-text);
    -webkit-box-shadow: 0 0 20px 0   var(--color-text);
}

.result-search-grid { margin:30px 0px; }

.card {
  border-radius: 16px !important;
  border: 0px solid #fff !important;
  background: #fff;
  min-height: 100%;
}

.div-grid .card {
    /*background: var(--color-secondary) !important;*/
}
.div-grid .card.documenti {
    background: var(--color-white) !important;
}
.div-grid .card.documenti a {
    color:  var(--color-secondary);
    text-decoration:none;
}

.div-grid .card.documenti .button--documenti a {
    color:  var(--color-white) !important;
    text-decoration:none;
}

.div-grid .card.documenti .fa-2xl {
    font-size: 3rem !important;
}

.div-grid .card.documenti h3 {
    font-size:1.5rem;
    margin-bottom: 0 !important;
    text-decoration:none;
}

.div-grid .card.documenti  a:hover h3 {
    color:var(--color-red);
}

.div-grid .card.documenti .card-body {
    padding: 20px 20px 20px 20px;
}

.div-grid .card h6 {
    font-size:0.9rem;
    margin-bottom: 0 !important;
}

.div-grid .video-duration {
    font-size:1rem;
    font-weight:bold;
}

.card__img {
    position: relative;
}

.card__img canvas { border-radius: 16px; height:100%;}

.card__img.gallery img { border-radius: 16px 16px 0 0 !important; }

video#video-node { border-radius:16px 16px 0 0; margin-bottom:-6px;}

/* grid mansory */
/* Stili di base per la griglia */
@media screen and (max-width: 480px){
	#grid[data-columns]::before {
		content: '1 .column.size-1of1';
        visibility:hidden;
	}
}

@media screen and (min-width: 481px) and (max-width: 768px) {
	#grid[data-columns]::before {
		content: '2 .column.size-1of2';
        visibility:hidden;
	}
}
@media screen and (min-width: 769px) {
	#grid[data-columns]::before {
		content: '4 .column.size-1of4';
        visibility:hidden;
	}
}

/* Again, you’re free to use and define the classes: */
.column { float: left; }
.column div.div-grid {padding: 20px; }
.column div video { border-radius: 16px;}
.size-1of1 { width: 100%; }
.size-1of2 { width: 50%; }
.size-1of3 { width: 33.333%; }
.size-1of4 { width: 25%; }

.card__supporting-text {
    padding: 20px;

    /* min-height: 215px; */
}

h3.card__supporting-text__title {
    font-size: 22px;
}

.card__supporting-text__title a {
    color: var(--color-secondary);
    text-decoration: none;
}

.card__supporting-text__title a:hover {
    color: var(--color-red);
    text-decoration: none;
}

a.supporting-title{ color: rgba(255, 255, 255, .8); text-decoration:none;}
a.supporting-title:hover{ color:#fff;}

/* Posiziona l'immagine */
#grid .card__img {
    position: relative;
    overflow: hidden; /* Nasconde eventuali elementi fuori dall'immagine */
}

/* Nasconde le icone e le etichette di default */
#grid .card-icons, #grid .card__supporting-text {
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
}

/* Quando si passa sopra la card (hover) */
#grid .card:hover .card-icons,
#grid .card:hover .card__supporting-text {
    opacity: 1;
    visibility: visible;
}

/* Posiziona le icone sovrapposte alla foto */
#grid .card-icons {
    top: 10px;
    left: 10px;
    display: flex;
    gap: 10px;
    font-size: 24px;
    z-index: 10;
}

/* Stile per le icone */
#grid .card-icons .eye-icon,
#grid .card-icons .add-to-collection-icon {
    background-color: rgba(0, 0, 0, 0.5);
    color: white;
    padding: 10px; /* Dato che padding è usato per creare il cerchio, lo regoliamo per la dimensione desiderata */
    border-radius: 50%; /* Questo rende le icone un cerchio perfetto */
    cursor: pointer;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    width: 40px; /* Impostiamo una larghezza fissa */
    height: 40px; /* Impostiamo un'altezza fissa per garantire il cerchio */
}

/* Gradiente sopra l'immagine al passaggio del mouse */
#grid .card__img {
    transition: background 0.3s ease; /* Aggiunge transizione al background */
}


/* Etichette in basso alla foto */
#grid .card__supporting-text {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    padding: 10px;
    background: linear-gradient(to top, rgba(0, 0, 0, 1), rgba(0, 0, 0, 0)); /* Gradiente nero che sfuma in trasparente */
    text-align: left;
    z-index: 5;
    color: #fff;
    border-radius: 0 0 16px 16px;
}

#grid .card__supporting-text .badge-primary a {
    color: rgba(255,255,255,.8);
    font-size:0.8rem;
    margin-right: 0 3px 0 0;
    padding:0px;
    line-height:0px;
    text-decoration: none;
}

#grid .card__supporting-text .badge-primary a:hover {
    color: rgba(255,255,255,1);
    text-decoration: none;
}

/* Nasconde etichette fino a hover */
#grid .card__supporting-text span {
    opacity: 0;
    transition: opacity 0.3s ease;
}

/* Le etichette diventano visibili al passaggio del mouse */
#grid .card:hover .card__supporting-text span {
    opacity: 1;
}

/* Posizionamento dell'immagine */
#grid .card__img img {
    border-radius: 16px !important;
}

.label {
    display: inline;
    padding: 10px 15px;
    font-size: 16px;
    color: #fff;
    text-align: center;
    white-space: nowrap;
    line-height: 46px;
}

.label a {
    color: #fff;
    text-decoration: none;
}

.label a:hover {
    color: #fff;
    text-decoration: none;
}

.label-node-b {
    padding:10px 0;
    font-size: 16px;
    color: #fff;
    text-align: center;
    text-decoration:none;
}
.card__supporting-text a {
    text-decoration:none !important;
}
.card__supporting-text a .label-node-b {
    text-decoration:none !important;
}

.label-node-b a {
    color: #fff;
    text-decoration: none;
}

.label-node-b a:hover {
    color: #fff;
    text-decoration: none;
}

.label-primary {
    background-color: var(--color-red);
}

.label-primary:hover {
    background-color: var(--color-secondary);
}

.label-secondary {
    background-color: var(--color-secondary);
}

.label-secondary:hover {
    background-color: var(--color-primary);
}

.label-third {
    background-color: var(--color-primary);
}

.label-third:hover {
    background-color: var(--color-secondary);
}

.titleTop {
    font-size: 2rem;
    background: var(--color-text);
    padding: 14px 0px;
    margin: 0px;
    color: #fff;
    text-align: center;
}

.benvenuto-text { padding: 40px 60px; font-size:18px; }

.fas {
    width: 16px; /* Regola la larghezza desiderata */
}

.fas {
    display: inline-block;
    width: 32px; /* Regola la larghezza desiderata */
}

/* HOMEPAGE */
.home-page {margin-top:0px !important; margin-bottom:30px; }
.home-page p { margin-bottom:0px !important; }

.home-page .card__supporting-text p { margin-bottom:1em !important; }

.title-esplora { font-size:2rem; color:#ffffff; text-align:center; width:100%; margin:0px; padding:0px;}

/* PAGINAZIONE */
.pager {
    clear:both;
    margin: 30px 0px 30px 0px;
    text-align: center;
}

/* Stili per la lista dei pager */
.pager__items {
    list-style: none;
    display: inline-block;
    margin: 60px 0px 30px 0px;
    padding: 0;
}

/* Stili per ciascun elemento del pager */
.pager__item {
    display: inline-block;
    margin: 0 5px;
}

/* Stili per il pager attivo */
.pager__item.is-active a {
    font-weight: bold;
    background: var(--color-primary);
    color: #fff; /* Colore desiderato per la pagina attuale */
    pointer-events: none;
    cursor: default;
}

/* Stili per i link del pager */
.pager__item a {
    text-decoration: none;
    padding: 5px 10px;
    border: 1px solid #ccc;
    color: #666; /* Colore desiderato per i link del pager */
}
.pager__item a:hover {
    color: #fff; /* Colore desiderato per i link disabilitati */
    background: var(--color-primary);
}

/* Stili per il link del pager quando è disabilitato */
.pager__item.is-disabled a {
    color: #999; /* Colore desiderato per i link disabilitati */
    pointer-events: none; /* Impedisce il clic su link disabilitati */
}

/* Stili per i link di navigazione successiva e ultima pagina */
.pager__item--next a,
.pager__item--last a {
    font-weight: bold;
    color: var(--color-text);; /* Colore desiderato per i link di navigazione successiva e ultima pagina */
}

/* Stili per il link di navigazione successiva quando è disabilitato */
.pager__item--next.is-disabled a {
    color: #999; /* Colore desiderato per il link di navigazione successiva disabilitato */
    pointer-events: none; /* Impedisce il clic su link disabilitati */
}


/* login page */

.user-login-box {
    min-height: calc(100vh - 260px);
}

.user-login-box .container .row .login--user--page>div {
    /*min-height: calc(100vh - 260px);*/
    /*display: flex;*/
    align-items: center;
}

.js-form-item {
    display: block;
    margin-bottom: 10px; /* Aggiungi spazio tra i blocchi se desiderato */
}

.js-form-item input {
    display: block;
    margin-bottom: 10px; /* Aggiungi spazio tra i blocchi se desiderato */
    font-size:16px;
    padding:10px;
}

/* Stile aggiuntivo per la label */
.js-form-item label {
    font-size:22px;
    font-weight: bold; /* Puoi aggiungere uno stile specifico per la label se lo desideri */
}

.user-login-form #edit-submit {
    background: var(--color-text) !important;
    padding: .5rem 1rem;
    font-size: 1.25rem;
    border-radius: .3rem;
    border:0px;
    color:#fff;
    margin-top:20px;
}


/* page node */

/* icona zoom */
.zoom-icon {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: 2em; /* Regola la dimensione dell'icona a tuo piacimento */
    color: #ffffff; /* Cambia il colore dell'icona se necessario */
    cursor: pointer;
}

/* metadati */
.border-bottom {
    padding:5px 0px;
    border-bottom: 1px solid var(--color-separatore) !important;
    min-height:100%;
}

/* modulo raccolte */
.raccolte-list .container-fluid { margin:0px; padding:0px; }
.raccolte-list .container-fluid { margin:0px; padding:0px; }
.raccolte-list table th {
    background:var(--color-primary);
    color:#fff;
    font-weight:bold;
    padding:10px 15px;
  }
  .raccolte-list td {
    padding:10px 15px;
    vertical-align: middle;
  }

.raccolte-list .button--visualizza {
    color:var(--color-primary);
}
.raccolte-list .button--elimina {
    color:var(--color-red);
}
.raccolte-list .btn--button {
    width:100%;
    background:var(--color-secondary);
    color:#fff;
    padding:10px 20px;
    font-weight:bold;
    border: 0px !important;
}

.raccolte-list table {
    margin: 30px 0;
}

.raccolte-list .titleTop {
    position:relative;
    margin: 70px 0px 0px 0px;
}

.raccolte--button {
    margin:0;
}

.raccolte--button .container-fluid, .raccolte--button .container-fluid .col-3 {
    background:var(--color-primary);
}
.raccolte--button .container-fluid .col-3 {
    padding: 13px 20px;
}

.body--form--raccolte { padding-top:130px; }
.body--form--raccolte h1.titleTop { background:var(--color-red); }
.btn--button.active, .btn--button:hover  { background:var(--color-red);}
.raccolte--button { background:var(--color-primary);}

.raccolte--button svg { padding-right:10px; }

[data-drupal-messages] {
    background-color: #e6f4ea;
    text-align:center;
    padding: 1rem;
    margin-top: 1rem;
    color: #155724;
    font-weight: 500;
    padding-top:70px;
    margin-bottom: -70px;
}

.body--form--raccolte [data-drupal-messages] {
    text-align:center;
    padding-top: 20px;
    background-color: #e9c3c3;
    color: #440101 !important;
    margin-bottom: -0px;
    margin-top: 0px;
}

/* Scroll Tags */
.button--tags .btn { color:#000 !important }
.button--tags .btn-outline-dark { background:#fff !important; border:0px; border-radius:50%; box-shadow: rgba(25, 25, 25, 0.25) 0px 2px 3px; }
.tag-card:hover .tag-overlay { background: var(--color-red) !important;}
.container-fluid.width--custom { width:98% !important;}
.featured-tags-scroll {
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    scroll-behavior: smooth;
}
.scroll-left {
    display: none;
}
.button--tags {
    position: relative;
    height: 70px; /* Altezza uguale a .tag-card */
}

.tag-card {
    scroll-snap-align: start;
    flex: 0 0 auto;
    width: 200px;
    height: 70px; /* fissa altezza per ancorare il centro */
    min-width: 200px;
}

.tag-img-wrapper {
    height: 70px;
    background-size: cover;
    background-position: center;
    border-radius: 35px;
    position: relative;
}

.tag-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.4);
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 35px;
}

.tag-label {
    font-size: 1rem;
    margin: 0;
    color: white;
}

/* Magnifc Popup */
img.mfp-img  {
    max-height: 100vh !important;
    width: auto;
    height: auto;
    object-fit: contain;
    display: block;
    margin: 0 auto;
}

/* Paginazione */
.pager {
    display: flex;
    justify-content: center;
    padding: 2rem 0;
  }

  .pager__items {
    display: flex;
    list-style: none;
    gap: 0.5rem;
    padding: 0;
    margin: 0;
}


.pager__item {
    display: inline-block;
}

.pager__item a {
    display: flex;
    justify-content: center;
    align-items: center;
    min-width: 40px; /* fornisce equilibrio visivo */
    height: 40px;
    padding: 0; /* padding interno non necessario con height/width */
    border: 1px solid #dee2e6;
    border-radius: 0.375rem;
    background-color: #fff;
    color: var(--color-red);
    text-decoration: none;
    font-weight: 500;
    transition: all 0.2s ease-in-out;
}

.pager__item a:hover {
    background-color: var(--color-primary);
    border-color: #dee2e6;
    text-decoration: none;
}

.pager__item.is-active a {
    background-color: var(--color-red);
    color: #fff;
    border-color: var(--color-red);
    cursor: default;
    pointer-events: none;
}

.pager__item--next a,
.pager__item--last a,
.pager__item--first a,
.pager__item--previous a {
    padding-left: 20px;
    padding-right: 20px;
    font-weight: bold;
}

#edit-submit {
    background: var(--color-text) !important;
    padding: .5rem 1rem;
    font-size: 1.25rem;
    border-radius: .3rem;
    border: 0px;
    color: #fff;
    margin-top: 20px;
}

#edit-submit:hover {
    background-color: var(--color-red) !important;
}

#edit-cancel {
    background: var(--color-red) !important;
    padding: .7rem 1rem;
    font-size: 1.25rem;
    border-radius: .3rem;
    border: 0px;
    color: #fff;
    margin-top: 20px;
    text-decoration:none;
}

#edit-cancel:hover {
    background-color: var(--color-text) !important;
}

input[type="submit"]:hover {
    background-color: var(--color-red);
  }

@media (max-width: 480px) {
    .pager__item--last,
    .pager__item--first {
        display: none;
    }
}

.login--user--page [data-drupal-messages] {
    padding-top: 20px !important;
    margin-bottom: 40px !important;
    text-align:left;
}

.login--user--page .placeholder {
    background-color: transparent !important;
    opacity: 1 !important;
}


.login--user--page [data-drupal-messages] a {
    color: #155724 !important;
}