
body {
    font-family: 'Inter', sans-serif;
    background-color: #f8fafc;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}
main {
    flex-grow: 1;
}
.brand-yellow { background-color: #facc15; } /* Giallo GCAD */

.card .image-container {
    position: relative;
    overflow: hidden;
}
/*.card .img-after {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: opacity 0.4s ease;
    opacity: 0;
}
.card:hover .img-after {
    opacity: 1;
}*/


 /* MODIFICA PER ANIMAZIONE SLIDE */
 .card .img-before {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    clip-path: inset(0 100% 0 0); /* Inizia completamente "tagliata" da destra */
    transition: clip-path 0.6s ease-in-out;

      /* Effetto dissolvenza in uscita */
  opacity: 0;
  transition: opacity 0.3s ease-in-out 0.5s; /* delay per aspettare la fine della clip-path */
  pointer-events: none; /* evita problemi di hover su img-after */
}
.card:hover .img-before {
    clip-path: inset(0 0 0 0); /* Si rivela completamente */
    opacity: 1;                       /* completamente visibile */
    transition: clip-path 0.6s ease-in-out, opacity 0.3s ease-in-out 0s; /* nessun delay per l'opacità in entrata */
}


.modal-image-container {
    position: relative;
}
.modal-image-container img {
    transition: opacity 0.4s ease-in-out;
}

.rounded-right-2xl{
    border-top-right-radius: 1rem;
    border-bottom-right-radius: 1rem;
}

.rating-stars .star {
    cursor: pointer;
    color: #d1d5db; /* grigio */
    transition: color 0.2s;
}
.rating-stars .star:hover,
.rating-stars .star.hovered,
.rating-stars .star.selected {
    color: #f59e0b; /* ambra */
}
.rating-stars.disabled .star {
    cursor: not-allowed;
}

.gemini-feature-btn {
    background: linear-gradient(to right, #4f46e5, #9333ea);
    color: white;
}
.gemini-feature-btn:hover {
    background: linear-gradient(to right, #4338ca, #7e22ce);
}
.loader {
    border: 2px solid #f3f3f3;
    border-top: 2px solid #9333ea;
    border-radius: 50%;
    width: 16px;
    height: 16px;
    animation: spin 1s linear infinite;
}
@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

body.noselect, body.noselect * {
    user-select: none;
  }


.w-2px
{
    width:2px;
}

.prose h2 {
    font-size: 1.5rem;
    font-weight: 600;
    margin-top: 2em;
    margin-bottom: 1em;
    padding-bottom: 0.5em;
    border-bottom: 1px solid #e2e8f0;
}
.prose p, .prose ul {
    color: #475569;
    line-height: 1.7;
}
.prose ul {
    list-style-position: inside;
    list-style-type: disc;
}
.prose a {
    color: #ca8a04;
    text-decoration: none;
}
.prose a:hover {
    text-decoration: underline;
}

 /* Stile per gli slider */
 input[type="range"] {
    -webkit-appearance: none;
    appearance: none;
    background: transparent;
    cursor: pointer;
  }
  input[type="range"]::-webkit-slider-runnable-track {
    background: #e2e8f0; /* bg-slate-200 */
    height: 0.5rem;
    border-radius: 9999px;
  }
  input[type="range"]::-moz-range-track {
    background: #e2e8f0;
    height: 0.5rem;
    border-radius: 9999px;
  }
  input[type="range"]::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    margin-top: -3px;
    height: 1.25rem;
    width: 1.25rem;
    background-color: #facc15; /* brand-yellow */
    border-radius: 9999px;
    border: 3px solid white;
    box-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
  }
  input[type="range"]::-moz-range-thumb {
    height: 1.25rem;
    width: 1.25rem;
    background-color: #facc15;
    border-radius: 9999px;
    border: 3px solid white;
    box-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
  }
  /* Transizione per il pannello filtri */
  #filter-panel {
      transition: all 0.3s ease-in-out;
      max-height: 0;
      overflow: hidden;
      opacity: 0;
  }
  #filter-panel.open {
      max-height: 500px; /* Altezza sufficiente per contenere i filtri */
      opacity: 1;
      padding-top: 1.5rem; /* py-6 */
      padding-bottom: 1.5rem;
  }

  #close-viewer-btn {
    transition: transform 0.2s ease;
    cursor: pointer;
}
#close-viewer-btn:hover {
    transform: scale(1.2);
}