/*******************************************************************************
 *                                                                             *
 *                        SEGNALIBRO - FOGLIO DI STILE                         *
 *                                                                             *
 *  Struttura del file:                                                        *
 *  1. RESET E IMPOSTAZIONI BASE                                               *
 *  2. HEADER (Top Bar, Menu, Ricerca, Breadcrumb)                             *
 *  3. MAIN (Vetrine, Banner, Carosello, Prodotti, Ricerca)                    *
 *  4. FOOTER                                                                  *
 *  5. COMPONENTI GLOBALI (Modali, Form, Tabelle, Swiper, SweetAlert)         *
 *  6. UTILITY E MEDIA QUERIES                                                 *
 *                                                                             *
 *******************************************************************************/

/*==============================================================================
    1. RESET E IMPOSTAZIONI BASE
==============================================================================*/

/*--------------------------
      HTML ROOT FONT SIZE
--------------------------*/
html {
  font-size: 16px; /* 1rem = 16px */
}

/* Heading da h1 a h6: font-size e line-height */

.xsmall {
  font-size: 0.75rem;
}

.pl-15,
.px-15 {
  padding-left: 15px;
}

.pr-15,
.px-15 {
  padding-right: 15px;
}

.pr-20,
.px-20 {
  padding-right: 20px;
}
.pl-20,
.px-20 {
  padding-left: 20px;
}

.pr-30,
.px-30 {
  padding-right: 30px;
}

.pl-30,
.px-30 {
  padding-left: 30px;
}

.fw-500 {
  font-weight: 500;
}
.fw-600 {
  font-weight: 600;
}
.fw-700 {
  font-weight: 700;
}

h1 {
  font-size: 1.75rem;
  line-height: 1.25;
}

h2 {
  font-size: 1.5rem;
  line-height: 1.3;
}

h3 {
  font-size: 1.25rem;
  line-height: 1.35;
}

h4 {
  font-size: 1rem;
  line-height: 1.4;
}

h5 {
  font-size: 0.875rem;
  line-height: 1.5;
}

/* label {
  font-size: 0.875rem;
} */

.password-dimenticata {
  font-size:1rem;
}

.registrati-link {
  font-size: 1rem;
  font-weight: 600;
  text-decoration: underline;
}

/* --------------------------
   PREVENZIONE FOUC (Flash of Unstyled Content)
   Nasconde i menu inizialmente per evitare il flash
-------------------------- */
.top-menu,
.top-menu-mobile {
  visibility: hidden;
  opacity: 0;
}
/* 
.top-bar {
  visibility: hidden;
  opacity: 0;
} */

.top-menu.loaded,
.top-menu-mobile.loaded {
  visibility: visible;
  opacity: 1;
  transition: opacity 0.2s ease-in-out;
}

/* .top-bar.loaded {
  visibility: visible;
  opacity: 1;
  transition: opacity 0.2s ease-in-out;
} */

/*--------------------------
        FINE FUOC
--------------------------*/

body {
  font-family: "Roboto", sans-serif;
  font-size: 1rem;
  line-height: 1.5;
  color: #000;
  /* background: #f8f9fa;*/
  background: #f4f4ff;
}

body.homepage main {
  padding-top: 0;
  /*padding-bottom: 0;*/
}

main {
  /*padding-top: 2rem;*/
  padding-top: 1.25rem;
  padding-bottom: 2rem;
}

.with-breadcrumb {
padding-top: 0;
}

main + #ricerca{
  padding-top: 1.25rem;
}

body.no-top main {
  padding-top: 0;
}

body.no-bottom main {
  padding-bottom: 0;
}

/*---------------------
      Scrollbar
----------------------*/

html::-webkit-scrollbar {
  width: 10px;
}

html::-webkit-scrollbar-track {
  background: rgb(179, 177, 177);
  border-radius: 10px;
}

html::-webkit-scrollbar-thumb {
  background: rgb(136, 136, 136);
  border-radius: 10px;
}

html::-webkit-scrollbar-thumb:hover {
  background: rgb(100, 100, 100);
  border-radius: 10px;
}

html::-webkit-scrollbar-thumb:active {
  background: rgb(68, 68, 68);
  border-radius: 10px;
}

/* Per scrollbar shifting, aggiungi al body */
body {
  overflow-y: scroll;
}

/*--------------------------
      BACKGROUND E COLORI
--------------------------*/

.bg-trasparente {
  background-color: transparent;
  border: none;
}

.bg-bianco {
  background-color: #fff;
}

.bg-grigio {
  background-color: #f9f9f9;
}

.bg-rosa {
  background-color: #f8e6e7;
}

.bg-azzurro {
  background-color: #0c25f9;
  color: #fff;
}

/*--------------------------
      Header h1 e section h2
      display none
--------------------------*/
header > h1:first-of-type,
section > h2:first-of-type {
  display: none;
}

/* titolo h3 visibile su pagina */
.sezioneTitolo {
  font-size: 1.5rem;
  line-height: 1.3;
  padding-bottom: 1.25rem;
  text-align: center;
  margin-bottom: 0;
}

.sezioneTitolo + .sezioneSottotitolo {
 padding-bottom: 0.5rem;
}


.sezioneDescrizione {
  padding-bottom: 2rem;
  text-align: center;
}

/*--------------------------
      BOX SHADOW  copertine
--------------------------*/

.copertina {
  box-shadow: rgba(60, 64, 67, 0.3) 0px 1px 2px 0px,
    rgba(60, 64, 67, 0.15) 0px 2px 6px 2px;
  -moz-box-shadow: rgba(60, 64, 67, 0.3) 0px 1px 2px 0px,
    rgba(60, 64, 67, 0.15) 0px 2px 6px 2px;
  -webkit-box-shadow: rgba(60, 64, 67, 0.3) 0px 1px 2px 0px,
    rgba(60, 64, 67, 0.15) 0px 2px 6px 2px;

}

/*---------------------------
    ALERT
----------------------------*/
.alert {
  border: none;
  margin-bottom: 3rem;
  text-align: center;
}
.alert p {
  margin-bottom: 0;
  font-size: 1rem;
}
.alert .text-muted {
  font-size: 1rem;
}
.alert blockquote {
  font-size: 1rem;
}

/*--------------------------
        LINK E BUTTONS
--------------------------*/
.btn  { border-radius: 100px;
}

.btn-wishlist svg{
  font-size: 2.5rem
}


/* Stati link uniformi */
.btn-primary,
.btn-secondary,
.btn-outline-secondary,
.btn-outline-success,
.btn-light {
  padding: 0.875rem 0.75rem;
  font-size: 1rem;
  border-radius: 100px;
}
.btn-secondary,
.btn-secondary:visited,
.btn-secondary:hover,
.btn-link.btn-secondary,
.btn-link.btn-secondary:visited,
.btn-link.btn-secondary:hover {
  color: #fff !important;
  border-radius: 100px;
}
a,
a:visited,
a:hover,
a:active,
a:focus {
  color: /*#474747*/  #000;
  text-decoration: none;
  background-color: transparent;
}

.btn-dark:visited, .btn-dark:hover, .btn-dark:active, .btn-dark:focus {
    color: /*#474747*/ #fff;
    
}

.btn-ricerca {
  font-size: 1.25rem;
  color: /*#474747*/  #000;
}
.btn-link,
.btn-link:visited,
.btn-link:hover,
.btn-link:active,
.btn-link:focus {
  font-weight: 400;
  color: /*#474747*/  #000; /* era important*/
  text-decoration: none;
}

.btn-primary,
.btn-primary:visited,
.btn-primary:hover,
.btn-primary:active,
.btn-primary:focus {
  background-color: #0c25f9;
  color: #fff;
  border-color: #0c25f9;
}

.btn-primary.disabled,
.btn-primary:disabled {
  color: #fff;
  background-color: #535353;
  border-color: #535353;
}

.nav-pills .nav-link.active,
.nav-pills .show > .nav-link {
  color: #fff;
  background-color: /*#474747*/  #000;
}

#btn-back-to-top {
  position: fixed;
  bottom: 1rem;
  right: 4.25rem;
  display: none;
}

#mobile-back-to-top-bar {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 9999;
  background: #000;
  color: /*#474747*/  #000;
  text-align: center;
  padding: 0.75rem 0;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  font-size: 1rem;
  transform: translateY(-100%);
  transition: transform 0.3s ease;
}
#mobile-back-to-top-bar a {
  color: /*#474747*/  #000;
  text-decoration: none;
  font-weight: 600;
}

.border {
    border: 1px solid #e0e0fa;
}

.border-left-0 {
    border-left: 0;
}

 .img-circle {
    width: 400px; /* Or any size */
    height: 200px;
    border-radius: 50%; /* Makes it circular */
    object-fit: cover; /* Crops image to fit without distortion */
    /* You can also add a shadow: */
    /* box-shadow: 0 4px 8px rgba(0,0,0,0.2); */
  }

#top-carosello {
  display: none;
}
.homepage #top-carosello {
  display: block;
}

/*==============================================================================
    2. HEADER - NAVIGAZIONE, TOP BAR, RICERCA, BREADCRUMB
==============================================================================*/

/* --------------------------
        TOP BAR
-------------------------- */
.top-bar {
 /* border-bottom: 1px solid #000;*/
  padding: 0.5rem 0;
  background-color: #e0e0fa;
}

.top-bar .social svg {
  width: 1.5rem;
  height: 1.5rem;
  fill: /*#474747*/  #000;
}

.top-bar-logo img {
  max-height: 30px;
  min-height: 30px;
}

.ricerca-top-link {
  font-size: 1rem;
  font-weight: 500;
  color: /*#474747*/  #000 !important;
}


.top-nav-secondaria {
  background-color: #323232;
  min-height: 0;
}

/* --------TOP BAR ---------- */

 

.bi-person,
.bi-person-fill,
.bi-heart,
#menu-mobile .bi-list{       
  vertical-align: middle;
  transform: translateY(1px);
}


#utente-accedi-registrati,
#utente-loggato,
#utente-admin,
#carrello-top,
#menu-ricerca,
#menu-wishlist  {
  padding: 0.5rem;
}

#menu-wishlist {
  padding-right: .25rem;
}

#utente-accedi-registrati .bi,
#utente-loggato .bi,
#utente-admin .bi,
#menu-wishlist .bi,
#carrello-top .bi,
#menu-ricerca .bi {
  font-size: 1.5rem;
  vertical-align: middle;
}



#menu-mobile .bi {
  font-size: 1.875rem;
}
.carrello-top {
  position: relative;
  display: inline-block;
}

/* Badge carrello: cerchio rosso in alto a destra */
.carrello-top-item {
  position: absolute;
  top: 0;
  right: -10px;
  min-width: 22px;
  height: 22px;
  padding: 3px;
  background: #0c25f9;
  color: #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  font-weight: bold;
  line-height: 1;
  z-index: 10;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.12);
}

/*-------------------------
       Multilevel menu
-------------------------*/

/* Fa aprire i sottomenu del dropdown a sinistra per evitare overflow orizzontale */
/* .dropdown-submenu .dropdown-menu {
  right: 100%;
}

#macrosettori .dropdown-menu {
  min-width: 20rem;
  max-height: calc(100vh - 100px);
}

.dropdown-submenu {
  position: relative;
}

.dropdown-submenu > a {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.dropdown-submenu > a:after {
  content: "";
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  margin-left: 0.5rem;
  border: none;
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: center;
}

.dropdown-submenu > .dropdown-menu {
  top: 0;
  left: 100%;
  margin-top: 0;
  margin-left: -0.5rem;
  transform-origin: 0 0;
  transition: transform 0.2s ease-out;
}

.dropdown-submenu:not(.show) > .dropdown-menu {
  display: none;
  transform: translateX(15px);
}

.dropdown-submenu.show > .dropdown-menu {
  display: block;
  transform: translateX(0);
}

.dropdown-submenu:not(.show) > .dropdown-menu {
  display: none;
  transform: translateX(15px);
}

.dropdown-submenu.show > .dropdown-menu {
  display: block;
  transform: translateX(0);
} */

/*--------------------------
      MENU MOBILE (MMENU)
--------------------------*/
#top-menu-mobile .active a {
  color: #0c25f9 !important;
}
/*evitare blink mmenujs prima che js è caricato*/
nav.argomenti:not(.mm-spn),
nav.top-menu-mobile:not(.mm-spn) {
  display: none;
}

.top-menu-mobile-close,
.argomenti-close {
  position: absolute;
  right: 1rem;
  top: 1.125rem;
  cursor: pointer;
  z-index: 999;
  font-size: 1.75rem;
}

/* Icona freccia indietro personalizzata per mmenujs */
.mm-spn.mm-spn--navbar:before {
  /* Nuove regole con SVG inline */
  content: "";
  display: block;
  position: absolute;
  left: 1rem;
  top: 1.125rem;
  cursor: pointer;
  width: 28px;
  height: 28px;
  /* COLORE: modifica fill='%23XXXXXX' dove %23 = # e XXXXXX è il codice esadecimale del colore
       Esempi: 
       - Nero: %23000000
       - Rosso: %23dc3545
       - Verde: %2328a745
       - Blu: %23007bff
       - Grigio: %236c757d  */
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000000'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
  background-size: contain;
  background-repeat: no-repeat;
  transform: translateY(0%);
  transform: scaleX(-1);
  opacity: 1;
}

/* Titolo menu aperto mobile */
.mm-spn.mm-spn--navbar:after {
  content: attr(data-mm-spn-title);
  display: block;
  position: absolute;
  top: 60px;
  left: 0;
  right: 0;
  height: 50px;
  color: #000;
  font-size: 1.25rem;
  opacity: 1;
  border-bottom: none;
  height: var(--mm-spn-item-height);
  padding: 0 40px;
  padding: 0 calc(var(--mm-spn-item-indent) * 2);
  line-height: 50px;
  line-height: var(--mm-spn-item-height);
  text-align: center;
  overflow: hidden;
  white-space: nowrap;
  -o-text-overflow: ellipsis;
  text-overflow: ellipsis;
}

/**************************************/
/*Stili per voci menu Principali con sottomenu  */
.mm-spn span {
  text-decoration: none;
  font-size: 1rem;
  font-weight: 500;
}

/* Stili per voci menu con sottomenu aperto */
.mm-spn--parent .mm-spn--open a,
.mm-spn--parent .mm-spn--open span {
  font-size: 0.875rem;
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
  font-weight: 500;
}

/*****************************/
/*Stili per voci menu singole*/

/* voci menu */
.mm-spn a {
  text-decoration: none;
  font-size: 1rem;
  font-weight: 500;
  color: #000;
}

/*chevron tolto  */
.mm-spn li.menu-singolo:before {
  content: "";
  display: block;
  position: absolute;

  z-index: 0;
  width: 0;
  height: 0;
}
.mm-nobordo:after {
  border-top: 0 !important;
}

.mm-spn.mm-spn--navbar ul {
  top: 51px;
  top: calc(var(--mm-spn-item-height) + 5rem);
}

.mm-spn--parent .mm-spn--parent .mm-spn--open li::before {
  background: none;
}

.top-menu-mobile .dropdown-item.active,
.top-menu-mobile .dropdown-item:active,
.top-menu-mobile .dropdown-item:focus,
.top-menu-mobile .dropdown-item:hover {
  color: /*#474747*/  #000 !important;
  text-decoration: none !important;
  background-color: transparent !important;
}

/* --------------------------
      TOP RICERCA
-------------------------- */

#top-ricerca,
.top-ricerca {
  min-height: auto;
  height: auto;
  padding: 0  0 1rem 0;
   background-color: #e0e0fa;
  
  
}

.top-ricerca .form-control {
  border: none;
  border-radius: 0;
  box-shadow: none;
}

.top-ricerca .form-control:focus {
  border: none;
  box-shadow: none;
}

.top-ricerca .form-control::placeholder {
  color: #6c757d;
  opacity: 1;
  font-style: italic !important;

  font-size: 0.75rem !important;
}

.ricerca-top .input-group,
.ricerca-top .input-group input {
  /*background-color: #f1f1f1;*/
  background: transparent;
  
}

.ricerca-top .input-group{
  background-color: #fff;;
}

.ricerca-top .input-group{
 border: 1px solid #e0e0fa;
 border-radius:  0.25rem  !important;
  
}
.top-ricerca .btn-ricerca {
  border: none;
  border-radius: 0;
}

.top-ricerca .input-group .form-control:not(:last-child) {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}

.top-ricerca .input-group .btn:not(:first-child) {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}

/*==============================================================================
    BREADCRUMB
==============================================================================*/

/* Breadcrumb link: mobile solo con tooltip-active, desktop sempre cliccabile */
@media (max-width: 767.98px) {
 body.tooltipcrumbs .breadcrumb-elemento > a {
    pointer-events: none;
    color: #000;
  }
   body.tooltipcrumbs .breadcrumb-elemento.tooltip-active > a {
    pointer-events: auto;
    color: inherit;
  }
}
@media (min-width: 768px) {
 body.tooltipcrumbs  .breadcrumb-elemento > a,
  body.tooltipcrumbs .breadcrumb-elemento.tooltip-active > a {
    pointer-events: auto;
    color: inherit;
  }
}


.breadcrumb {
    background-color: transparent;
    display: flex;
    align-items: center;
     margin-bottom: 1rem;
   
}
.breadcrumb-image {
    padding-right: .5rem;
}

.breadcrumb-image img,
.breadcrumbs-image-item {
    width: 25px;
    height: 25px;
}
.breadcrumb-elemento {
    padding:0 .5rem;
    border-left: 1px solid #ccc;
    font-size: .75rem;
}


  /* width: 100%;
  aspect-ratio: 2/3;
  display: block;
  object-fit: cover; */

/*==============================================================================
    IMMAGINI E LAZY LOADING
==============================================================================*/

/*-----------------------
      immagini
-------------------------*/
.stesso-autore figure,
.stesso-settore figure,
.home-vetrina .vetrina-copertina,
.stesso-autore .vetrina-copertina,
.stesso-settore .vetrina-copertina,
.prodotto-copertina{
  position: relative;
  width: 100%;
  height: auto;
  aspect-ratio: 2/3; /* proporzione tipica dei libri */
  /* overflow: hidden;*/
}

.home-vetrina figure.classifica-box{
  aspect-ratio: unset;
}


.home-news figure{
  position: relative;
  width: 100%;
}

.stesso-autore figure img::before,
.stesso-settore figure img::before,
.home-vetrina figure img::before,
.prodotto-copertina img::before {
  content: "";
  display: block;
  aspect-ratio: 2/3; /* Riserva spazio per immagini 200x308 */
}

.stesso-autore figure img,
.stesso-settore figure img,
.home-vetrina figure img,
.prodotto-copertina img{
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: top center;
  position: absolute;
  top: 0;
  left: 0;
}

.stesso-autore figure img[alt],
.stesso-settore figure img[alt],
.home-vetrina figure img[alt],
.prodotto-copertina img[alt] {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.home-news.crop figure img{
  width: 100%;
  aspect-ratio: 1/1.1; 
  object-fit: cover;
  object-position: top center;
}

.home-news.post figure img{
  width: 100%;
  aspect-ratio: 2/2.7; /* proporzione tipica dei libri */
  object-fit: cover;
  object-position: top center;
}

/* -----------------------
  LAZYLOAD
--------------------------*/
.lazyload,
.lazyloading {
  opacity: 0;
}

.lazyloaded {
  opacity: 1;
  /*  transition is applied to lazyloaded not lazyload */
  transition: opacity 3000ms 500ms;
}

/*
per evitare lo shifting della pagina, aspect ratio calcolato per immagini 200x308: 308/200 = 1.54, quindi 154%
*/
[data-src]::before {
  content: "";
  display: block;
  padding-top: 154%; /* Riserva spazio per immagini 200x308 */
}



/* Per scrollbar shifting, aggiungi al body */
body {
  overflow-y: scroll;
}
/* L'altezza calcolata di .form-control è inconsistente. Considera di alzare l'input rispetto ai pulsanti negli input-group.


va bene per resettare altezza ma spacca float/label
.form-control {
  height: auto !important;
}
 */

/*---------------------------
      COPERTINA IMMAGINE CENTRATA NEL CONTENITORE
      USARE LA CLASSE .contenitore-copertina PER IL CONTENITORE
      USARE LA CLASSE .copertina PER L'IMMAGINE
      VANTAGGI:
✅ Immagine centrata perfettamente (sia verticalmente che orizzontalmente)
✅ Non deforma l'immagine (mantiene proporzioni)
✅ Non esce mai dal contenitore
✅ Funziona con qualsiasi dimensione di immagine
  
-----------------------------*/
/* .contenitore-copertina {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.copertina {
  display: block;
  left: 50%;
  max-height: 100%;
  max-width: 100%;
  position: absolute;
  top: 50%;
  -webkit-transform: translate(-50%, -50%);
  -moz-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  -o-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  width: auto;
}*/

/*---------------------------
      STILI TESTO SOVRAIMPRESSIONE CAROSELLO - STILI PREDEFINITI
-----------------------------*/

/* RIEPILOGO STILI PREDEFINITI:
 * .stile1: Top-left, sfondo scuro, testo grande, ombra pesante
 * .stile2: Centro, gradiente, glow, testo medio
 * .stile3: Bottom-right, senza sfondo, outline nero, testo medio
 * .stile4: Top-center, sfondo chiaro, testo grande, centrato
 * .stile5: Left-center, sfondo scuro, ombra pesante, testo grande
 * .stile6: Bottom-center, gradiente orizzontale, testo piccolo
 * .stile7: Top-right, senza sfondo, glow bianco, testo grande
 * .stile8: Centro-left, sfondo chiaro, outline bianco, testo medio
 * .stile9: Bottom-left, gradiente diagonale, testo molto grande
 * .stile10: Top-center, senza sfondo, ombra pesante, testo grande maiuscolo
 */

/* Stile 1: Top-left con sfondo scuro e testo grande */
.stile1 {
  position: absolute;
  top: 10%;
  left: 5%;
  z-index: 10;
  background: rgba(0, 0, 0, 0.8);
  color: white;
  padding: 1rem;
  border-radius: 8px;
  text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.9);
  max-width: 50%;
}
.stile1 h3 {
  font-size: 2.5rem;
  font-weight: 600;
  text-transform: uppercase;
}
.stile1 p {
  font-size: 1rem;
  margin-top: 0.5rem;
}

/* Stile 2: Centro con gradiente e glow */
.stile2 {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 10;
  background: linear-gradient(45deg, rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0.4));
  color: white;
  padding: 1.5rem;
  border-radius: 12px;
  text-align: center;
  text-shadow: 0 0 10px rgba(255, 255, 255, 0.8),
    0 0 20px rgba(255, 255, 255, 0.6);
  max-width: 60%;
}
.stile2 h3 {
  font-size: 2rem;
  font-weight: 900;
}
.stile2 p {
  font-size: 1.1rem;
  margin-top: 0.5rem;
}

/* Stile 3: Bottom-right senza sfondo, outline */
.stile3 {
  position: absolute;
  bottom: 10%;
  right: 5%;
  z-index: 10;
  background: none;
  color: white;
  padding: 1rem;
  text-align: right;
  -webkit-text-stroke: 1px black;
  text-shadow: none;
  max-width: 45%;
}
.stile3 h3 {
  font-size: 1.8rem;
  font-weight: 600;
}
.stile3 p {
  font-size: 0.9rem;
  margin-top: 0.5rem;
}

/* Stile 4: Top-center con sfondo chiaro */
.stile4 {
  position: absolute;
  top: 10%;
  left: 50%;
  transform: translateX(-50%);
  z-index: 10;
  background: rgba(255, 255, 255, 0.9);
  color: black;
  padding: 1rem;
  border-radius: 8px;
  text-align: center;
  text-shadow: none;
  max-width: 55%;
}
.stile4 h3 {
  font-size: 2.2rem;
  font-weight: 600;
}
.stile4 p {
  font-size: 1rem;
  margin-top: 0.5rem;
}

/* Stile 5: Left-center con ombra pesante */
.stile5 {
  position: absolute;
  top: 50%;
  left: 5%;
  transform: translateY(-50%);
  z-index: 10;
  background: rgba(0, 0, 0, 0.6);
  color: white;
  padding: 1rem;
  border-radius: 8px;
  text-shadow: 3px 3px 6px rgba(0, 0, 0, 0.9);
  max-width: 40%;
}
.stile5 h3 {
  font-size: 2rem;
  font-weight: 800;
}
.stile5 p {
  font-size: 1rem;
  margin-top: 0.5rem;
}

/* Stile 6: Bottom-center con gradiente e testo piccolo */
.stile6 {
  position: absolute;
  bottom: 10%;
  left: 50%;
  transform: translateX(-50%);
  z-index: 10;
  background: linear-gradient(90deg, rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0.5));
  color: white;
  padding: 0.8rem;
  border-radius: 6px;
  text-align: center;
  text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.7);
  max-width: 50%;
}
.stile6 h3 {
  font-size: 1.5rem;
  font-weight: 600;
}
.stile6 p {
  font-size: 0.8rem;
  margin-top: 0.5rem;
}

/* Stile 7: Top-right con glow e sfondo none */
.stile7 {
  position: absolute;
  top: 10%;
  right: 5%;
  z-index: 10;
  background: none;
  color: white;
  padding: 1rem;
  text-align: right;
  text-shadow: 0 0 15px rgba(255, 255, 255, 0.9),
    0 0 30px rgba(255, 255, 255, 0.7);
  max-width: 45%;
}
.stile7 h3 {
  font-size: 2.3rem;
  font-weight: 600;
}
.stile7 p {
  font-size: 1rem;
  margin-top: 0.5rem;
}

/* Stile 8: Centro-left con outline e sfondo chiaro */
.stile8 {
  position: absolute;
  top: 50%;
  left: 5%;
  transform: translateY(-50%);
  z-index: 10;
  background: rgba(255, 255, 255, 0.8);
  color: black;
  padding: 1rem;
  border-radius: 8px;
  -webkit-text-stroke: 0.5px white;
  text-shadow: none;
  max-width: 40%;
}
.stile8 h3 {
  font-size: 1.8rem;
  font-weight: 600;
}
.stile8 p {
  font-size: 0.9rem;
  margin-top: 0.5rem;
}

/* Stile 9: Bottom-left con gradiente e testo grande */
.stile9 {
  position: absolute;
  bottom: 10%;
  left: 5%;
  z-index: 10;
  background: linear-gradient(135deg, rgba(0, 0, 0, 0.9), rgba(0, 0, 0, 0.6));
  color: white;
  padding: 1.2rem;
  border-radius: 10px;
  text-shadow: 2px 2px 5px rgba(0, 0, 0, 0.8);
  max-width: 50%;
}
.stile9 h3 {
  font-size: 2.8rem;
  font-weight: 900;
}
.stile9 p {
  font-size: 1.2rem;
  margin-top: 0.5rem;
}

/* Stile 10: Top-center con ombra pesante e sfondo none */
.stile10 {
  position: absolute;
  top: 10%;
  left: 50%;
  transform: translateX(-50%);
  z-index: 10;
  background: none;
  color: white;
  padding: 1rem;
  text-align: center;
  text-shadow: 4px 4px 8px rgba(0, 0, 0, 1);
  max-width: 55%;
}
.stile10 h3 {
  font-size: 2.5rem;
  font-weight: 600;
  text-transform: uppercase;
}
.stile10 p {
  font-size: 1rem;
  margin-top: 0.5rem;
}

/*---#fine carousel testi sovraimpressione---*/

/*==============================================================================
    FORM CONTROLS E VALIDAZIONE
==============================================================================*/

/*---------------------------
      FORM CONTROLS
-----------------------------*/
.custom-select,
.form-control{
  border: 1px solid #e0e0fa ;
  
}
/* Nascondi la "maschera" nativa della data quando l'input ha classe hide-date-format
   Nota: meglio caricare questo blocco dopo Bootstrap per evitare override */
input.hide-date-format:not(:focus) {
  color: transparent !important;
  /* fallback per alcuni browser */
  text-shadow: 0 0 0 transparent !important;
}

/* WebKit-based browsers (Chrome, Edge Chromium, Safari) */
input.hide-date-format:not(:focus)::-webkit-datetime-edit,
input.hide-date-format:not(:focus)::-webkit-datetime-edit-fields-wrapper,
input.hide-date-format:not(:focus)::-webkit-datetime-edit-month-field,
input.hide-date-format:not(:focus)::-webkit-datetime-edit-day-field,
input.hide-date-format:not(:focus)::-webkit-datetime-edit-year-field,
input.hide-date-format:not(:focus)::-webkit-datetime-edit-text {
  color: transparent !important;
  text-shadow: 0 0 0 transparent !important;
}

/* Firefox fallback: nasconde testo quando non in focus */
input.hide-date-format:not(:focus)::-moz-placeholder {
  color: transparent !important;
}

.custom-control-input:checked ~ .custom-control-label::before {
  background-color: #0c25f9 !important;
  border-color: #0c25f9 !important;
}

.btn-reset {
  padding: 0.875rem 0;
  font-size: 1rem;
  border: 1px solid transparent;
  margin-bottom: 1.25rem;
}

.ricerca-header .custom-select:focus,
.ricerca-header .custom-select:focus-visible {
  border: none  !important; /* rimuovi bordo */
  box-shadow: none !important; /* rimuovi ombra */
  outline: none;
}
/* bordo quando la select è focalizzata (aperta nel caso nativo) */
/* bordo quando la select è focalizzata (aperta nel caso nativo) */
.custom-select:focus,
.custom-select:focus-visible,
.custom-select.open-select {
  border: 1px solid #ced4da;
  box-shadow: none;
  outline: none;
}

.form-control:focus {
  box-shadow: none;
  border-color: #ced4da;
}

.btn.focus,
.btn:focus {
  outline: 0;
  box-shadow: none;
}

/* Toggle password button styles */
.toggle-password-btn {
  border-radius: 0 0.25rem 0.25rem 0 !important;
  border-color: #ced4da;
  background: #fff;
}

.toggle-password-icon {
  color: #adb5bd;
}

/*------ FORM VALIDATION -----------*/

.form-control.is-invalid {
  background: #fff;
}
.input-group .form-control.is-invalid ~ .input-group-append .btn {
  border-color: #dc3545 !important;
  border-top-right-radius: 0.25rem;
  border-bottom-right-radius: 0.25rem;
}

.input-group .form-control.is-invalid:focus ~ .input-group-append .btn {
  border-color: #dc3545 !important;
  border-top-right-radius: 0.25rem;
  border-bottom-right-radius: 0.25rem;
}

.input-group .form-control:focus,
.input-group .form-control.is-invalid:focus {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
  /* border-right: none; 
  forse va bene per toggle password manon per buono sconto ordine-conferma*/
}
.input-group input[type="password"].form-control:focus,
.input-group input[type="password"].form-control.is-invalid:focus {
  border-right: none;
}

.invalid-feedback {
  display: block;
  color: #dc3545;
  font-size: 0.875rem;
  margin-top: 0.25rem;
  text-indent: 1rem;
}

/*-----------------------------------------------------------------------------------------------------------------------
      ALTERNATIVA: Regole CSS per .float-label con input PRIMA di label (senza JS, come Bootstrap .form-floating)
      Cambiare HTML a: <div class="float-label"><input ...><label ...></label></div>
      Rimuovere JS per .float-label
----------------------------------------------------------------------------------------------*/
/*
.float-label2 {
  position: relative;
  margin-bottom: 1rem;
}
.float-label2 input {
  height: calc(3.5rem + 2px);
  padding: 1rem 0.75rem;
}

.float-label2  label {
  display: inline-block;
    color: #c0c0c0;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 2;
    height: 100%;
    padding: 1rem .75rem;
    overflow: hidden;
    text-align: start;
    text-overflow: ellipsis;
    white-space: nowrap;
    pointer-events: none;
    border: 1px solid transparent;
    transform-origin: 0 0;
    transition: opacity .1s ease-in-out, transform .1s ease-in-out;
}

.float-label2 .form-control:focus ~ label,
.float-label2 .form-control:not(:placeholder-shown) ~ label,
.float-label2 .form-select ~ label {
  opacity: 0.65;
  transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);
}

.float-label2 .form-control:not(:placeholder-shown) {
  padding-top: 2rem;
}

.float-label2 input::-webkit-input-placeholder,
.float-label2 input::-moz-placeholder,
.float-label2 input:-ms-input-placeholder,
.float-label2 input::-ms-input-placeholder,
.float-label2 input::placeholder {
  color: transparent;
}

.float-label2 input:not(:-moz-placeholder-shown),
.float-label2 input:not(:-ms-input-placeholder),
.float-label2 input:not(:placeholder-shown) {
  padding-top: 1.25rem;
  padding-bottom: .25rem;
}



 Fallback for Edge
@supports (-ms-ime-align: auto) {
  .float-label2 {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column-reverse;
    flex-direction: column-reverse;
  }

  .float-label2 label {
    position: static;
  }

  .float-label2 input::-ms-input-placeholder {
    color: #777;
  }
}

.float-label2 input:not(:-moz-placeholder-shown) ~ label,
.float-label2 input:not(:-ms-input-placeholder) ~ label,
.float-label2 input:not(:placeholder-shown) ~ label,
.float-label2 input:-webkit-autofill ~ label {
  padding-top: .25rem;
  padding-bottom: .25rem;
  font-size: 12px;
  color: #777;
}
*/

/*---------  FORM FLOATING LABELS (label prima dell'input, con JS per active class)--------------*/
.float-label {
  position: relative;
  margin-bottom: 1.25rem;
}

.float-label label {
  display: inline-block;
  color: #c0c0c0;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 12;
  height: 100%;
  padding: 1rem 0.75rem;
  overflow: hidden;
  text-align: start;
  text-overflow: ellipsis;
  white-space: nowrap;
  pointer-events: none;
  border: 1px solid transparent;
  transform-origin: 0 0;
  transition: opacity 0.2s ease-in-out, transform 0.2ss ease-in-out;
}

.float-label input {
  /* padding: 1rem 0.75rem; originale*/
  padding: 0 0.75rem;
  height: calc(3.125rem + 2px);
}

.float-label select {
  padding: 0 0.75rem;
  height: calc(3.125rem + 2px);
}
.float-label textarea {
  padding: 0 0.75rem;
  height: auto;
  min-height: calc(10.125rem + 2px);
}
.float-label.active label,
.fixed-label label {
  color: #535353;
  opacity: 0.65;
  transform: scale(0.85) translateY(-0.75rem) translateX(0.15rem);
}
.float-label.active input,
.fixed-label input {
  /* padding-top: 2rem; originale*/
  padding-top: 1.125rem;
}

.float-label.active select,
.fixed-label select {
  padding-top: 1rem;
}
.float-label.active textarea,
.fixed-label textarea {
  padding-top: 1.625rem;
}

.float-label input::-webkit-input-placeholder,
.float-label input::-moz-placeholder,
.float-label input:-ms-input-placeholder,
.float-label input::-ms-input-placeholder,
.float-label input::placeholder {
  color: transparent;
}
.float-label textarea::-webkit-input-placeholder,
.float-label textarea::-moz-placeholder,
.float-label textarea:-ms-input-placeholder,
.float-label textarea::-ms-input-placeholder,
.float-label textarea::placeholder {
  color: transparent;
}

.float-label input:not(:-moz-placeholder-shown),
.float-label input:not(:-ms-input-placeholder),
.float-label input:not(:placeholder-shown) {
  padding-top: 1.25rem;
  padding-bottom: 0.25rem;
}
.float-label textarea:not(:-moz-placeholder-shown),
.float-label textarea:not(:-ms-input-placeholder),
.float-label textarea:not(:placeholder-shown) {
  padding-top: 1.25rem;
  padding-bottom: 0.25rem;
}

/* Fallback for Edge float labels
-------------------------------------------------- */
@supports (-ms-ime-align: auto) {
  .float-label {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column-reverse;
    flex-direction: column-reverse;
  }

  .float-label label {
    position: static;
  }

  .float-label input::-ms-input-placeholder {
    color: #777;
  }
}

/*------------RADIO BUTTONS   -------------*/
.form-check {
  margin-bottom: 0.5rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.form-check-input {
  width: 1rem;
  height: 1rem;
  margin-top: 0;
  flex-shrink: 0;
  position: static;
}

.form-check-label {
  margin-bottom: 0;
  padding-left: 15px;
}

.radio-inline {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0;
}

.border {
    border: 1px solid #e0e0fa;
}

.border-left-0 {
    border-left: 0;
}
/*--------------------------
    
--------------------------*/

#top-carosello {
  display: none;
}
.homepage #top-carosello {
  display: block;
}


/*==============================================================================
    LAYOUT BASE E TYPOGRAPHY
==============================================================================*/

/*--------------------------
      HTML ROOT FONT SIZE
--------------------------*/
html {
  font-size: 16px; /* 1rem = 16px */
}

/* Heading da h1 a h6: font-size e line-height */

.xsmall {
  font-size: 0.75rem;
}

.pl-15,
.px-15 {
  padding-left: 15px;
}

.pr-15,
.px-15 {
  padding-right: 15px;
}

.pr-20,
.px-20 {
  padding-right: 20px;
}
.pl-20,
.px-20 {
  padding-left: 20px;
}

.pr-30,
.px-30 {
  padding-right: 30px;
}

.pl-30,
.px-30 {
  padding-left: 30px;
}

.fw-500 {
  font-weight: 500;
}
.fw-600 {
  font-weight: 600;
}
.fw-700 {
  font-weight: 700;
}

h1 {
  font-size: 1.75rem;
  line-height: 1.25;
}

h2 {
  font-size: 1.5rem;
  line-height: 1.3;
}

h3 {
  font-size: 1.25rem;
  line-height: 1.35;
}

h4 {
  font-size: 1rem;
  line-height: 1.4;
}

h5 {
  font-size: 0.875rem;
  line-height: 1.5;
}

/* label {
  font-size: 0.875rem;
} */

.password-dimenticata {
  font-size:1rem;
}

.registrati-link {
  font-size: 1rem;
  font-weight: 600;
  text-decoration: underline;
}

/* --------------------------
   PREVENZIONE FOUC (Flash of Unstyled Content)
   Nasconde i menu inizialmente per evitare il flash
-------------------------- */
.top-menu,
.top-menu-mobile {
  visibility: hidden;
  opacity: 0;
}
/* 
.top-bar {
  visibility: hidden;
  opacity: 0;
} */

.top-menu.loaded,
.top-menu-mobile.loaded {
  visibility: visible;
  opacity: 1;
  transition: opacity 0.2s ease-in-out;
}

/* .top-bar.loaded {
  visibility: visible;
  opacity: 1;
  transition: opacity 0.2s ease-in-out;
} */

/*--------------------------
        FINE FUOC
--------------------------*/

body {
  font-family: "Roboto", sans-serif;
  font-size: 1rem;
  line-height: 1.5;
  color: #000;
  /* background: #f8f9fa;*/
  background: #f4f4ff;
}

body.homepage main {
  padding-top: 0;
  /*padding-bottom: 0;*/
}

main {
  /*padding-top: 2rem;*/
  padding-top: 1.25rem;
  padding-bottom: 2rem;
}

.with-breadcrumb {
padding-top: 0;
}

main + #ricerca{
  padding-top: 1.25rem;
}

body.no-top main {
  padding-top: 0;
}

body.no-bottom main {
  padding-bottom: 0;
}

/*---------------------
      Scrollbar
----------------------*/

html::-webkit-scrollbar {
  width: 10px;
}

html::-webkit-scrollbar-track {
  background: rgb(179, 177, 177);
  border-radius: 10px;
}

html::-webkit-scrollbar-thumb {
  background: rgb(136, 136, 136);
  border-radius: 10px;
}

html::-webkit-scrollbar-thumb:hover {
  background: rgb(100, 100, 100);
  border-radius: 10px;
}

html::-webkit-scrollbar-thumb:active {
  background: rgb(68, 68, 68);
  border-radius: 10px;
}

/*==============================================================================
    BACKGROUND E COLORI
==============================================================================*/

/*--------------------------
      BACKGROUND MODULI
--------------------------*/

.bg-trasparente {
  background-color: transparent;
  border: none;
}

.bg-bianco {
  background-color: #fff;
}

.bg-grigio {
  background-color: #f9f9f9;
}

.bg-rosa {
  background-color: #f8e6e7;
}

.bg-azzurro {
  background-color: #0c25f9;
  color: #fff;
}

/*==============================================================================
    AREA ADMIN
==============================================================================*/

/*------------------------
          Admin
--------------------------*/

.select2-container--default .select2-selection--multiple {
  border: 1px solid #000;
  min-height: calc(1.5em + 0.75rem + 2px);
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
  color: #495057;
}

.select2-container {
  width: 100%;
}

/*------------------------
    CAMPI EDITABILI CON MODAL
 -------------------------*/
.editable-field {
  min-height: 38px;
  width: 100% !important;
  padding: 6px 12px;
  border: 1px solid #ced4da;
  border-radius: 4px;
  background-color: #fff;
  cursor: pointer;
  transition: all 0.2s ease;
  position: relative;
  box-sizing: border-box;
}

.editable-field:hover {
  border-color: #007bff;
  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
}

.editable-field .field-content {
  min-height: 20px;
  line-height: 1.5;
  word-wrap: break-word;
  /* width: 100%; */
  width: 180px;
  box-sizing: border-box;
}

.editable-field .field-content h2 {
  margin: 0;
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.7;
}

.editable-field .field-content p {
  margin: 0;
  font-size: 1rem;
  line-height: 1.5;
}



.btn-success {
	       background-color: #0c25f9;
    color: #fff;
    border-color: #0c25f9;
	}
	.admin-megamenu-modifica .card {
	    border-radius: 0.25rem;
      /*border-radius: 100px;*/
	    box-shadow: none;
	    margin-bottom: 0.5rem;
	}
	.admin-megamenu-modifica .sezione-div .card {
	    border: 1px solid #dee2e6;
	}

	.admin-megamenu-modifica .voci-container .card {
    border: none;
}
	.admin-megamenu-modifica .card-header {
	    background-color: #f8f9fa;
	    border-bottom: 1px solid #dee2e6;
	    padding: 0.25rem 0.75rem;
	    font-weight: 600;
	    font-size: 1rem;
	}
	.admin-megamenu-modifica .sezione-div .card-header {
	    background-color: #007bff;
	    color: white;
	    border-bottom: 1px solid #0056b3;
	    padding: 0.375rem 0.75rem;
	}
	.admin-megamenu-modifica .card-body {
	    padding: 0.75rem;
	}
	.admin-megamenu-modifica .voce {
	    border: 0;
	    border-radius: 0.25rem;
	    margin-bottom: 0.25rem;
	}
	.admin-megamenu-modifica .voce:nth-child(even) {
	    background-color: #f8f9fa;
	}
	.admin-megamenu-modifica .voce .card-header {
	    background-color: #e9ecef;
	    border-bottom: 1px solid #dee2e6;
	    padding: 0.125rem 0.5rem;
	    font-size: 1rem;
	}
	.admin-megamenu-modifica .btn:hover {
	    transform: none;
	}
	.admin-megamenu-modifica .form-select:focus, .admin-megamenu-modifica .form-control:focus {
	    border-color: #007bff;
	    box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
	}
	.admin-megamenu-modifica .alert {
	    border-radius: 0.25rem;
	    border: 1px solid #dee2e6;
	    padding: 0.5rem 0.75rem;
	    margin-bottom: 0;
	}
	.admin-megamenu-modifica .mb-3 {
	    margin-bottom: 0.5rem !important;
	}
	.admin-megamenu-modifica .MenuMacrosettori {
	    width: 100% !important;
	}
	.select2-container {
	    max-width: 100%;
	}
	.select2-dropdown {
	    max-width: 100%;
	    overflow-x: none;
	}
	/* Uniforma Select2 con Bootstrap custom-select */
	.select2-container--default .select2-selection--single,
	.select2-container--default .select2-selection--multiple {
	    background-color: #fff;
	    border: 1px solid #000;
	    border-radius: 0.25rem;
	    height: auto;
	    min-height: calc(1.5em + 0.75rem + 2px);
	    padding: 0.375rem 0.75rem;
	    font-size: 1rem;
	    line-height: 1.5;
	    color: #495057;
	}
	.select2-container--default .select2-selection--single .select2-selection__rendered {
	    color: #495057;
	    padding-left: 0;
	    padding-right: 0;
	    line-height: 1.5;
	}
	.select2-container--default .select2-selection--single .select2-selection__arrow {
	    height: calc(1.5em + 0.75rem);
	    right: 0.75rem;
	    top: 50%;
	    transform: translateY(-50%);
	}
	.select2-container--default .select2-selection--multiple .select2-selection__choice {
	    background-color: #e9ecef;
	    border: 1px solid #adb5bd;
	    border-radius: 0.2rem;
	    color: #495057;
	    padding: 0.125rem 2rem 0.125rem 2rem; /* Aumentato padding sinistro per spostare il testo a destra */
	    margin: 0.125rem 0.25rem 0.125rem 0;
	}
	.select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
	    color: #6c757d;
	    margin-left: 0; /* Spazio tra testo e pulsante */
	    cursor: pointer;
		padding: .2rem .5rem;
	    
    	
	}
	.select2-container--default.select2-container--focus .select2-selection--single,
	.select2-container--default.select2-container--focus .select2-selection--multiple {
	    border-color: #007bff;
	    box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
	}
	.admin-megamenu-NewsDaInserire {
	    background-color: #d4edda; /* Verde chiaro per selezionate */
	}
	.admin-megamenu-NewsGiaInseriti {
	    background-color: #fff3cd; /* Giallo chiaro per già inserite */
	}
	.admin-megamenu-BannerDaInserire {
	    background-color: #d4edda; /* Verde chiaro per selezionate */
	}
	.admin-megamenu-BannerGiaInseriti {
	    background-color: #fff3cd; /* Giallo chiaro per già inserite */
	}
	.admin-megamenu-ClassificaDaInserire {
	    background-color: #d4edda; /* Verde chiaro per selezionate */
	}
	.admin-megamenu-ClassificaGiaInseriti {
	    background-color: #fff3cd; /* Giallo chiaro per già inserite */
	}
	.selected-news-ids, .selected-banner-ids {
	    margin-left: 10px;
	    font-weight: bold;
	    color: #007bff;
	}

/*==============================================================================
    AREA UTENTI
==============================================================================*/

/* ---------------------
      Area Utenti
-----------------------*/
#utenti {
  margin-top: -1rem;
}
.utenti-menu-mobile .bi-dot {
  font-size: 2rem;
}

.utenti-dashboard .card .bi {
  font-size: 2.5rem;
}
/* Nascondi scrollbar su dispositivi touch (mobile) */
@media (pointer: coarse) {
  .utenti-menu-mobile {
    -ms-overflow-style: none; /* IE e Edge */
    scrollbar-width: none; /* Firefox */
  }
  .utenti-menu-mobile::-webkit-scrollbar {
    display: none; /* Chrome, Safari, Opera */
  }
}

/* Mostra sempre la scrollbar su desktop */
@media (pointer: fine) {
  .utenti-menu-mobile {
    -ms-overflow-style: auto;
    scrollbar-width: auto;
  }

  .utenti-menu-mobile::-webkit-scrollbar-thumb {
    background: #888;
    border-radius: 4px;
  }
}

.utenti-menu-mobile svg {
  display: inline-block;
  vertical-align: middle;
  margin: 0 8px; /* opzionale: spazio orizzontale */
  height: 1em; /* adatta la dimensione al testo */
  width: 1em;
}

.utenti-recensioni .prodotto-scheda {
  margin-bottom: 0;
  margin-top: 0;
  padding-bottom: 1rem;
  padding-top: 1rem;
}
.utenti-recensioni .prodotto-scheda .titolo a {
  font-size: 1rem;
  color: /*#474747*/  #000;
}
.utenti-recensioni .prodotto-scheda .autore a {
  font-size: 1rem;
  
}

.utenti-recensioni .prodotto-dettagli span {
  font-size: 1rem;
  color: /*#474747*/  #000;
}

.utenti-recensioni .recensioni-riepilogo .recensioni-totali .body,
.utenti-recensioni .recensioni-riepilogo .rating-number {
  font-weight: 600;
  font-size: 2rem;
  color: /*#474747*/  #000;
}
.utenti-recensioni .recensioni-riepilogo .recensioni-ultima .body {
  font-weight: 600;
  font-size: 1.25rem;
}

.utenti-menu a.active {
  font-weight: bold;
  color: #000;
}
/* Voci menu non attive */
.utenti-menu-mobile a {
  font-size: 1rem;
  color: /*#474747*/  #000;
  background: transparent;
  font-weight: normal;
  border-radius: 4px;
  padding: 4px 8px;
  transition: background 0.2s;
  display: inline-flex;
  align-items: center;
}

/* Voci menu attive */
.utenti-menu-mobile a.active {
  color: #000;
  background-color: #e0e0fa;
  font-weight: bold;
}

.utenti-menu-mobile .logout {
  font-weight: 600;
}

/* Opzionale: Aggiungi un gradiente per indicare scrolling */
.utenti-menu-mobile::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 20px;
  height: 100%;
  background: linear-gradient(
    to left,
    rgba(255, 255, 255, 1),
    rgba(255, 255, 255, 0)
  );
  pointer-events: none;
}


/*==============================================================================
    DATATABLES E TABELLE
==============================================================================*/

/* ------------------------------------------------------------------
   TABLE -> CARD VISUAL (per #data)
   Versione compatibile: manteniamo il comportamento nativo della tabella
   (thead + tbody) ma applichiamo background, bordo e radius sui singoli
   td e usiamo border-spacing per creare lo spazio tra le righe, così
   DataTables mantiene l'allineamento delle colonne e il sorting.
   ------------------------------------------------------------------ */

.filters-header {
  background: #e0e0fa;
  border: 1px solid #e0e0fa;
  border-radius: 0.5rem;
  padding: 1rem 1rem 0.75rem 1rem;
  margin-bottom: 1rem;
}
.filters-header .filter-toggle {
  margin-bottom: 0.5rem;
}
.filters-header .search-filters {
  margin-bottom: 0;
}

.filters-header .text-muted .bi, 
.filters-header.text-muted svg.bi {
    color: #000;
}

/* Stili esistenti per DataTables */
table.dataTable thead > tr > th.dt-orderable-asc:hover,
table.dataTable thead > tr > th.dt-orderable-desc:hover,
table.dataTable thead > tr > td.dt-orderable-asc:hover,
table.dataTable thead > tr > td.dt-orderable-desc:hover {
  outline: none !important;
  outline-offset: 0;
}

table.dataTable th.dt-type-numeric div.dt-column-header,
table.dataTable th.dt-type-numeric div.dt-column-footer,
table.dataTable th.dt-type-date div.dt-column-header,
table.dataTable th.dt-type-date div.dt-column-footer,
table.dataTable td.dt-type-numeric div.dt-column-header,
table.dataTable td.dt-type-numeric div.dt-column-footer,
table.dataTable td.dt-type-date div.dt-column-header,
table.dataTable td.dt-type-date div.dt-column-footer {
  flex-direction: row !important;
}

table.dataTable th {
  text-align: left !important;
}

#utenti-ordini-storico table.table-bordered.dataTable td:first-child {
  border-left-width: inherit;
}

#utenti-ordini-storico table.table-bordered.dataTable tbody td {
  border-bottom-width: inherit;
}

/* Sovrascrivi stili Bootstrap per #data */
#data {
  margin: 0;
  border: none;
}

#data thead tr {
 /* background: white;*/
  border: none;
  color: /*#474747*/  #000;
  font-weight: 600;
}

#data thead th {
  background: transparent;
  color: /*#474747*/  #000;
  font-size: 1rem;
  padding: 16px 12px 0 12px;
  border: none;
}

#data tbody tr {
 /* box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);*/
  transition: background 0.3s ease;
  cursor: pointer;
}

.utenti-recensioni #data tbody tr {
  box-shadow: none;
}

#data tbody tr:hover {
  background: #e0e0fa;
}
.table-bordered td, .table-bordered th {
  /*  border: 1px solid #000;*/
  border: none;
}
.utenti-ordini-aperti #data tbody tr td,
.utenti-ordini-storico #data tbody tr td {
  border-right: none;
}

.utenti-ordini-aperti #data tbody tr td.ordini-totale,
.utenti-ordini-aperti #data tbody tr td:last-child,
.utenti-ordini-storico #data tbody tr td:last-child {
/* border-right: 1px solid #000;*/
border-right: none;
}
#data tbody td {
  padding: 16px 12px;
  vertical-align: middle;
}

table.dataTable.table.table-striped>tbody>tr:nth-of-type(2n+1) {
    background-color: #e0e0fa;
}



/* Stili per elementi interni - sovrascrivi classi esistenti */
#data .ordini-date,
#data .ordini-totale {
  font-size: 1rem;
  color: /*#474747*/  #000;
}

#data .ordini-id a {
  color: /*#474747*/  #000;
  text-decoration: none;
  font-size: 1rem;
  font-weight: 600;
}

/* Nuovo stile per th - reso più specifico */
#data th {
  background: transparent;
  color: /*#474747*/  #000;
  font-size: 1rem;
  padding: 16px 12px;
  border: none;
}

/* ------------------------------------------------------------------
   Make DataTables pagination use the same visual style as our
   .paginazione component by mapping DataTables markup to the
   same colors/spacing/hover/disabled styles.
   ------------------------------------------------------------------ */
.dt-container .dt-paging {
  margin-top: 1rem;
  text-align: center;
}
.dt-container .dt-paging .pagination {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem; /* more space between page items */
  padding-left: 0;
  margin: 0;
  list-style: none;
}
.dt-container .dt-paging .pagination li {
  display: inline-block;
  margin: 0; /* rely on gap for spacing */
}
.dt-container .dt-paging .pagination li a,
.dt-container .dt-paging .pagination li span {
  display: inline-block;
  padding: 0.25rem 0.25rem; /* slightly larger hit area */
  color: #6c757d;
  text-decoration: none; /* remove underline */
  background: transparent; /* remove background */
  border: none; /* remove borders */
  font-size: 0.875rem;
}
.dt-container .dt-paging .pagination li a:hover {
  color: #000;
  text-decoration: none; /* no underline on hover */
}
.dt-container .dt-paging .pagination li.active a,
.dt-container .dt-paging .pagination li.active span {
  text-decoration: none;
  font-weight: bold;
  color: #000;
  font-size: 1rem;
}
.dt-container .dt-paging .pagination li.disabled a,
.dt-container .dt-paging .pagination li.disabled span {
  color: #000;
  pointer-events: none;
  opacity: 0.6;
}

/* Make the DataTables "info" text match pagination (dimension + color) */
.dt-container .dt-info,
.dt-container #data_info {
  /* match .paginazione a:not(.pag-icon) sizing and color */
  color: #6c757d;
  font-size: 1rem; /* same as .paginazione links */
  font-weight: normal;
  margin-top: 0.6rem; /* similar spacing to pagination */
}

/* DataTables sorting icons to the right, text to the left */
.dataTables_wrapper table thead th {
  position: relative;
  text-align: left;
  padding-right: 30px; /* space for the icon */
}

.dataTables_wrapper table thead th.sorting::after,
.dataTables_wrapper table thead th.sorting_asc::after,
.dataTables_wrapper table thead th.sorting_desc::after {
  right: 8px;
  left: auto;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}

table.dataTable tbody>tr.EventiDaInserire,
table.dataTable tbody>tr>.EventiDaInserire,
#data-admin tbody>tr.NewsDaInserire,
#data-admin tbody>tr>.NewsDaInserire {
  background-color: #d4edda;
}

table.dataTable tbody>tr.EventiGiaInseriti,
table.dataTable tbody>tr>.EventiGiaInseriti,
#data-admin tbody>tr.NewsGiaInseriti,
#data-admin tbody>tr>.NewsGiaInseriti {
  background-color: #fff3cd;
  
}

#data-admin tbody>tr.NewsDaInserire td {
  border-color: #c3e6cb;
}

#data-admin tbody>tr.NewsGiaInseriti td {
  border-color: #ffeaa7;
}

/* Classe per titoli più piccoli nelle tabelle DataTables */
.titolo-piccolo {
  font-size: 1rem;
}

/* Margine inferiore per elementi DataTables */
.dt-layout-end,
.dt-layout-start {
  margin-bottom: 1.5rem;
}

#data-admin h2  {
  font-size: 1rem;
 
}
#data-admin h2,
#data-admin p {
  margin-bottom:0;
 
}

/* Allineamento verticale al centro per la tabella admin-menu-lista */
#data-admin td,
#moduli-banner td,
#moduli-vetrine td,
#moduli-news td,
#vetrina-data td,
#classifiche-data td {
  vertical-align: middle;
  text-align: left;
  font-size: 1rem;
}

#data-admin thead th,
#moduli-banner thead th,
#moduli-vetrine thead th,
#moduli-news thead th,
#vetrina-data thead th,
#classifiche-data thead th {
  background: transparent;
  color: /*#474747*/  #000;
  font-size: 1rem;
  padding: 16px 12px 16px 12px;
  border: none;
}

#data-admin thead tr,
#moduli-banner thead tr,
#moduli-vetrine thead tr,
#moduli-news thead tr,
#vetrina-data thead tr,
#classifiche-data thead tr {
  background: transparent;
  border: none;
  color: /*#474747*/  #000;
  font-weight: 600;
  padding-bottom: 0.5rem;
}

#data-admin,
#moduli-banner,
#moduli-vetrine,
#moduli-news,
#vetrina-data,
#classifiche-data {
  border: none;
}

.copertina-vetrina-modifica {
  max-width: 60px;
}

/*--------------------------
      Header h1 e section h2
      display none
--------------------------*/
header > h1:first-of-type,
section > h2:first-of-type {
  display: none;
}

/* titolo h3 visibile su pagina */
.sezioneTitolo {
  font-size: 1.5rem;
  line-height: 1.3;
  padding-bottom: 1.25rem;
  text-align: center;
  margin-bottom: 0;
}

.sezioneTitolo + .sezioneSottotitolo {
 padding-bottom: 0.5rem;
}


.sezioneDescrizione {
  padding-bottom: 2rem;
  text-align: center;
}
/*==============================================================================
    ELEMENTI UI
==============================================================================*/

/*--------------------------
      BOX SHADOW  copertine
--------------------------*/

.copertina {
  box-shadow: rgba(60, 64, 67, 0.3) 0px 1px 2px 0px,
    rgba(60, 64, 67, 0.15) 0px 2px 6px 2px;
  -moz-box-shadow: rgba(60, 64, 67, 0.3) 0px 1px 2px 0px,
    rgba(60, 64, 67, 0.15) 0px 2px 6px 2px;
  -webkit-box-shadow: rgba(60, 64, 67, 0.3) 0px 1px 2px 0px,
    rgba(60, 64, 67, 0.15) 0px 2px 6px 2px;

}

/*---------------------------
    ALERT
----------------------------*/
.alert {
  border: none;
  margin-bottom: 3rem;
  text-align: center;
}
.alert p {
  margin-bottom: 0;
  font-size: 1rem;
}
.alert .text-muted {
  font-size: 1rem;
}
.alert blockquote {
  font-size: 1rem;
}
/*==============================================================================
    LINK E BUTTONS
==============================================================================*/

/*--------------------------
        LINK
--------------------------*/
.btn  { border-radius: 100px;
}

.btn-wishlist svg{
  font-size: 2.5rem
}


/* Stati link uniformi */
.btn-primary,
.btn-secondary,
.btn-outline-secondary,
.btn-outline-success,
.btn-light {
  padding: 0.875rem 0.75rem;
  font-size: 1rem;
  border-radius: 100px;
}
.btn-secondary,
.btn-secondary:visited,
.btn-secondary:hover,
.btn-link.btn-secondary,
.btn-link.btn-secondary:visited,
.btn-link.btn-secondary:hover {
  color: #fff !important;
  border-radius: 100px;
}
a,
a:visited,
a:hover,
a:active,
a:focus {
  color: /*#474747*/  #000;
  text-decoration: none;
  background-color: transparent;
}

.btn-dark:visited, .btn-dark:hover, .btn-dark:active, .btn-dark:focus {
    color: /*#474747*/ #fff;
    
}

.btn-ricerca {
  font-size: 1.25rem;
  color: /*#474747*/  #000;
}
.btn-link,
.btn-link:visited,
.btn-link:hover,
.btn-link:active,
.btn-link:focus {
  font-weight: 400;
  color: /*#474747*/  #000; /* era important*/
  text-decoration: none;
}

.btn-primary,
.btn-primary:visited,
.btn-primary:hover,
.btn-primary:active,
.btn-primary:focus {
  background-color: #0c25f9;
  color: #fff;
  border-color: #0c25f9;
}

.btn-primary.disabled,
.btn-primary:disabled {
  color: #fff;
  background-color: #535353;
  border-color: #535353;
}

.nav-pills .nav-link.active,
.nav-pills .show > .nav-link {
  color: #fff;
  background-color: /*#474747*/  #000;
}

#btn-back-to-top {
  position: fixed;
  bottom: 1rem;
  right: 4.25rem;
  display: none;
}

#mobile-back-to-top-bar {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 9999;
  background: #000;
  color: /*#474747*/  #000;
  text-align: center;
  padding: 0.75rem 0;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  font-size: 1rem;
  transform: translateY(-100%);
  transition: transform 0.3s ease;
}
#mobile-back-to-top-bar a {
  color: /*#474747*/  #000;
  text-decoration: none;
  font-weight: 600;
}

/*==============================================================================
    HEADER, TOP BAR E NAVIGATION
==============================================================================*/

/* --------------------------
        TOP BAR
-------------------------- */
.top-bar {
 /* border-bottom: 1px solid #000;*/
  padding: 0.5rem 0;
  background-color: #e0e0fa;
}

.top-bar .social svg {
  width: 1.5rem;
  height: 1.5rem;
  fill: /*#474747*/  #000;
}

.top-bar-logo img {
  max-height: 30px;
  min-height: 30px;
}

.ricerca-top-link {
  font-size: 1rem;
  font-weight: 500;
  color: /*#474747*/  #000 !important;
}


.top-nav-secondaria {
  background-color: #323232;
  min-height: 0;
}

/* --------TOP BAR ---------- */

 

.bi-person,
.bi-person-fill,
.bi-heart,
#menu-mobile .bi-list{       
  vertical-align: middle;
  transform: translateY(1px);
}


#utente-accedi-registrati,
#utente-loggato,
#utente-admin,
#carrello-top,
#menu-ricerca,
#menu-wishlist  {
  padding: 0.5rem;
}

#menu-wishlist {
  padding-right: .25rem;
}

#utente-accedi-registrati .bi,
#utente-loggato .bi,
#utente-admin .bi,
#menu-wishlist .bi,
#carrello-top .bi,
#menu-ricerca .bi {
  font-size: 1.5rem;
  vertical-align: middle;
}



#menu-mobile .bi {
  font-size: 1.875rem;
}
.carrello-top {
  position: relative;
  display: inline-block;
}

/* Badge carrello: cerchio rosso in alto a destra */
.carrello-top-item {
  position: absolute;
  top: 0;
  right: -10px;
  min-width: 22px;
  height: 22px;
  padding: 3px;
  background: #0c25f9;
  color: #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  font-weight: bold;
  line-height: 1;
  z-index: 10;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.12);
}

/*-------------------------
       Multilevel menu
-------------------------*/

/* Fa aprire i sottomenu del dropdown a sinistra per evitare overflow orizzontale */
/* .dropdown-submenu .dropdown-menu {
  right: 100%;
}

#macrosettori .dropdown-menu {
  min-width: 20rem;
  max-height: calc(100vh - 100px);
}

.dropdown-submenu {
  position: relative;
}

.dropdown-submenu > a {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.dropdown-submenu > a:after {
  content: "";
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  margin-left: 0.5rem;
  border: none;
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: center;
}

.dropdown-submenu > .dropdown-menu {
  top: 0;
  left: 100%;
  margin-top: 0;
  margin-left: -0.5rem;
  transform-origin: 0 0;
  transition: transform 0.2s ease-out;
}

.dropdown-submenu:not(.show) > .dropdown-menu {
  display: none;
  transform: translateX(15px);
}

.dropdown-submenu.show > .dropdown-menu {
  display: block;
  transform: translateX(0);
}

.dropdown-submenu:not(.show) > .dropdown-menu {
  display: none;
  transform: translateX(15px);
}

.dropdown-submenu.show > .dropdown-menu {
  display: block;
  transform: translateX(0);
} */

/*------------------------
          TOPBAR
-------------------------*/

/*------------------------
  LOGO RICERCA CARRELLO
-------------------------*/



/*------------------------
          NAVBAR
-------------------------*/

/*--------------------------
      MENU TOP 
      rivedere
--------------------------*/
/* .top-menu .navbar li.active::after,
.top-menu .navbar li:hover::after {
  content: "";
  position: absolute;
  height: 1px;
  background-image: linear-gradient(to right, #000, #000);
  width: 100%;
  bottom: -6px;
  left: 0;
}

.top-menu .navbar #macrosettori li.active::after,
.top-menu .navbar #macrosettori li:hover::after {
  content: "";
  position: absolute;
  height: 0;
  background-image: none;
  width: 100%;
  bottom: 0;
  left: 0;
}

.top-menu .navbar li.active,
.top-menu .navbar li:hover {
  position: relative;
}

.top-menu .navbar {
  padding: 0;
  padding-top: 5px;
  padding-bottom: 5px;
  border-bottom: 1px solid;
}

.top-menu .navbar-nav {
  width: 100% !important;
}

.top-menu-scroll {
  transition: all 0.4s;
}

.top-menu-shadow {
  box-shadow: 0 4px 8px -2px rgba(0, 0, 0, 0.2);
}

.top-menu {
  border-top: none;
  border-bottom: none;
  padding-bottom: 0.5 rem;
 
}

.top-menu .nav-link {
  font-weight: 400;

  text-align: center;
  color: #3e3c39 !important;
  font-size: 1.125rem;
  transition: 1s;
} */
/*==============================================================================
    MENU MOBILE (MMENU)
==============================================================================*/

/*--------------------------
      MENU MOBILE
       MMENU LIGHT
--------------------------*/
#top-menu-mobile .active a {
  color: #0c25f9 !important;
}
/*evitare blink mmenujs prima che js è caricato*/
nav.argomenti:not(.mm-spn),
nav.top-menu-mobile:not(.mm-spn) {
  display: none;
}

.top-menu-mobile-close,
.argomenti-close {
  position: absolute;
  right: 1rem;
  top: 1.125rem;
  cursor: pointer;
  z-index: 999;
  font-size: 1.75rem;
}

/* Icona freccia indietro personalizzata per mmenujs */
.mm-spn.mm-spn--navbar:before {
  /* Nuove regole con SVG inline */
  content: "";
  display: block;
  position: absolute;
  left: 1rem;
  top: 1.125rem;
  cursor: pointer;
  width: 28px;
  height: 28px;
  /* COLORE: modifica fill='%23XXXXXX' dove %23 = # e XXXXXX è il codice esadecimale del colore
       Esempi: 
       - Nero: %23000000
       - Rosso: %23dc3545
       - Verde: %2328a745
       - Blu: %23007bff
       - Grigio: %236c757d  */
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000000'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
  background-size: contain;
  background-repeat: no-repeat;
  transform: translateY(0%);
  transform: scaleX(-1);
  opacity: 1;
}

/* Titolo menu aperto mobile */
.mm-spn.mm-spn--navbar:after {
  content: attr(data-mm-spn-title);
  display: block;
  position: absolute;
  top: 60px;
  left: 0;
  right: 0;
  height: 50px;
  color: #000;
  font-size: 1.25rem;
  opacity: 1;
  border-bottom: none;
  height: var(--mm-spn-item-height);
  padding: 0 40px;
  padding: 0 calc(var(--mm-spn-item-indent) * 2);
  line-height: 50px;
  line-height: var(--mm-spn-item-height);
  text-align: center;
  overflow: hidden;
  white-space: nowrap;
  -o-text-overflow: ellipsis;
  text-overflow: ellipsis;
}

/**************************************/
/*Stili per voci menu Principali con sottomenu  */
.mm-spn span {
  text-decoration: none;
  font-size: 1rem;
  font-weight: 500;
}

/* Stili per voci menu con sottomenu aperto */
.mm-spn--parent .mm-spn--open a,
.mm-spn--parent .mm-spn--open span {
  font-size: 0.875rem;
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
  font-weight: 500;
}

/*****************************/
/*Stili per voci menu singole*/

/* voci menu */
.mm-spn a {
  text-decoration: none;
  font-size: 1rem;
  font-weight: 500;
  color: #000;
}

/*chevron tolto  */
.mm-spn li.menu-singolo:before {
  content: "";
  display: block;
  position: absolute;

  z-index: 0;
  width: 0;
  height: 0;
}
.mm-nobordo:after {
  border-top: 0 !important;
}

.mm-spn.mm-spn--navbar ul {
  top: 51px;
  top: calc(var(--mm-spn-item-height) + 5rem);
}

.mm-spn--parent .mm-spn--parent .mm-spn--open li::before {
  background: none;
}

.top-menu-mobile .dropdown-item.active,
.top-menu-mobile .dropdown-item:active,
.top-menu-mobile .dropdown-item:focus,
.top-menu-mobile .dropdown-item:hover {
  color: /*#474747*/  #000 !important;
  text-decoration: none !important;
  background-color: transparent !important;
}
/*
.argomenti.mm-spn {
  font-weight: 400;
}

.argomenti.mm-spn ul {
  font-weight: 400;
  font-size: 1.125rem;
}




.mm-spn.mm-spn--navbar:after {
  font-size: 1.25rem;
  font-weight: 600;
  color: #000;
  opacity: 1;
}

.mm-spn--parent .mm-spn--open a,
.mm-spn--parent .mm-spn--open span {
  font-size: 0.875rem;
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
  font-weight: 500;
}

.mm-spn--parent .mm-spn--parent .mm-spn--open li:after {
  border-top: 1px solid #ececec;
}





.mm-spn li:before,
.top-menu-mobile-close,
.top-menu-mobile.mm-spn.mm-spn--light,
.argomenti-close {
  color:   #000;
}

.top-menu-mobile span,
.top-menu-mobile a,
.top-menu-mobile .active a {
  color:  #000;
}

.top-menu-mobile .dropdown-item.active,
.top-menu-mobile .dropdown-item:active,
.top-menu-mobile .dropdown-item:focus,
.top-menu-mobile .dropdown-item:hover {
  color: #000 !important;
  text-decoration: none !important;
  background-color: transparent !important;
}

.mm-spn li.top-menu-mobile-social a {
  display: inline;
}

.mm-spn li.top-menu-mobile-social::before {
  content: "";
}

.mm-spn li.top-menu-mobile-social::after {
  border-top: 0;
}

.mm-spn li.top-menu-mobile-social a:not(:last-child)::after {
  border-right: 0;
}*/
/*==============================================================================
    RICERCA
==============================================================================*/

/* --------------------------
      TOP RICERCA
-------------------------- */

#top-ricerca,
.top-ricerca {
  min-height: auto;
  height: auto;
  padding: 0  0 1rem 0;
   background-color: #e0e0fa;
  
  
}

.top-ricerca .form-control {
  border: none;
  border-radius: 0;
  box-shadow: none;
}

.top-ricerca .form-control:focus {
  border: none;
  box-shadow: none;
}

.top-ricerca .form-control::placeholder {
  color: #6c757d;
  opacity: 1;
  font-style: italic !important;

  font-size: 0.75rem !important;
}

.ricerca-top .input-group,
.ricerca-top .input-group input {
  /*background-color: #f1f1f1;*/
  background: transparent;
  
}

.ricerca-top .input-group{
  background-color: #fff;;
}

.ricerca-top .input-group{
 border: 1px solid #e0e0fa;
 border-radius:  0.25rem  !important;
  
}
.top-ricerca .btn-ricerca {
  border: none;
  border-radius: 0;
}

.top-ricerca .input-group .form-control:not(:last-child) {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}

.top-ricerca .input-group .btn:not(:first-child) {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}

/*==============================================================================
    CAROSELLO E BANNER
==============================================================================*/

/*------------------------
      CAROSELLO
-------------------------*/
#top-carosello .container-xl {
  padding-left: 0;
  padding-right: 0;
}
#top-carosello a  {
   width: 100%; /* o una larghezza fissa */
  max-width: 1440px; /* opzionale */
  margin: 0 auto;
  overflow: hidden; /* evita overflow indesiderato */
}
#top-carosello  img {

  width: 100%;      /* si adatta alla larghezza del contenitore */
  height: 200px;    /* altezza fissa */
  object-fit: cover; /* l’immagine riempie il box senza deformarsi */
  display: block;
}

/* Nuovi stili per banner con img e testo sovraimpressione */
.banner-image {
  width: 100%;
  height: auto;
  display: block;
}

.testo-sovraimpressione {
  position: absolute;
  top: 40%;
  left: 5%;
  z-index: 10;
  color: white;
  text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.7);
}

.testo-sovraimpressione h3 {
  margin: 0;
  font-size: 2rem;
  text-transform: uppercase;
  font-weight: 600;
  opacity: 0.9;
  padding: 0.375rem 0.75rem;
  background: rgba(0, 0, 0, 0.5);
  display: inline-block;
}

.testo-sovraimpressione p {
  font-size: 0.9rem;
  font-weight: 400;
  padding: 0.375rem 0.75rem;
  background: rgba(0, 0, 0, 0.5);
  display: inline-block;
  margin-top: 0.5rem;
}

/*==============================================================================
    HOMEPAGE
==============================================================================*/

/*------------------------
      HOMEPAGE
-------------------------*/
.homepage header h2 {
  font-size: 1.75rem;
  font-weight: 600;
  border-bottom: 2px solid #000;
  line-height: 1.3;
  margin-bottom: 0;
}

.home-vetrina,
.home-banner,
.home-news,
.stesso-autore,
.stesso-settore {
  padding-left: 0;
  padding-right: 0;
}

.home-vetrina .prodotto-carrello,
.stesso-autore .prodotto-carrello,
.stesso-settore .prodotto-carrello {
  position: absolute;
}



.home-banner img,
.home-news img {

  box-shadow: rgba(60, 64, 67, 0.3) 0px 1px 2px 0px,
    rgba(60, 64, 67, 0.15) 0px 2px 6px 2px;
  -moz-box-shadow: rgba(60, 64, 67, 0.3) 0px 1px 2px 0px,
    rgba(60, 64, 67, 0.15) 0px 2px 6px 2px;
  -webkit-box-shadow: rgba(60, 64, 67, 0.3) 0px 1px 2px 0px,
    rgba(60, 64, 67, 0.15) 0px 2px 6px 2px;
  
}


/*==============================================================================
    CLASSIFICHE
==============================================================================*/

/*------------------------
      CLASSIFICA
-------------------------*/
.classifica .classifica-1 {
  background-color: #e1e1e1;
  padding: 2rem 5rem 0rem 5rem
}

/*
.classifica figure {

    margin: 0 15px 1rem;
}*/
.classifica-1 .classifica-copertina img {
  width: 100%;
  max-width: 250px;
  height: auto;
  vertical-align: middle;
}

/* .classifica-1 .classifica-posizione {
  font-size: 6rem;
  position: absolute;
  left: 1rem;
  top: 1rem
}

.classifica-2 .classifica-posizione {
  font-size: 2rem;
  position: absolute;
  left: -2.5rem;
  top: 0;
} */

.classifica-1 .classifica-copertina {
  text-align: center;
}

.classifica-1 figcaption {
  width: 100%;
  text-align: center;
}

.classifica-1 .classifica-info {
  padding-top: 1rem;
}

.classifica-2 .classifica-copertina img {
  /*max-width: 100%;*/
  width: 80px !important;
  /*max-height: 130px;*/
  vertical-align: middle !important;
 
}

.classifica-2 .classifica-copertina {
  min-width: 80px
}



.classifica-1 .classifica-info .titolo {
  font-size: 1.125rem;
}

.classifica-1 .classifica-info .autore, .classifica-1 .classifica-info .editore {
  font-size: 1rem;
}

.classifica-2 .classifica-info .titolo {
  font-size: .875rem;
}

.classifica-2 .classifica-info .autore, .classifica-2 .classifica-info .editore {
  font-size: 0.75rem;
}

.classifica-info .titolo {
  font-weight: 600;
  margin: 0;
  padding: 0;
}

.classifica-info .autore {
  padding-bottom: 0;
  margin-bottom: 0;
}

.classifica-info .editore {
  font-weight: 400;
  font-style: italic;
  padding-bottom: 0;
  margin-bottom: 0;
}

/* Badge classifica home-vetrina - stile con triangoli diagonali */
.classifica-box-1 > div:first-of-type {
  display: flex;
  align-items: flex-start;
}

.classifica-box-1 .classifica-box-posizione {
  font-size: 1.25rem;
  font-weight: 700;
  position: static;
  background: 
    linear-gradient(135deg, #263238 0%, #263238 50%, transparent 50%),
    linear-gradient(135deg, transparent 50%, #455a64 50%, #455a64 100%);
  color: white;
  min-width: 48px;
  height: 48px;
  padding: 0 12px;
  border-radius: 6px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.25);
  letter-spacing: 0.5px;
  margin-right: 1rem;
  flex-shrink: 0;
}

/* Variante per posizione 1 - oro */
.classifica-box-1 .classifica-box-posizione[data-position="1"] {
  background: 
    linear-gradient(135deg, #d4af37 0%, #d4af37 50%, transparent 50%),
    linear-gradient(135deg, transparent 50%, #f9e79f 50%, #f9e79f 100%);
  color: #1a1a1a;
}

.classifica-box .classifica-box-posizione {
  font-size: 1rem;
  font-weight: 700;
  position: static;
  background: 
    linear-gradient(135deg, #263238 0%, #263238 50%, transparent 50%),
    linear-gradient(135deg, transparent 50%, #455a64 50%, #455a64 100%);
  color: white;
  min-width: 36px;
  height: 36px;
  padding: 0 8px;
  border-radius: 4px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
  letter-spacing: 0.5px;
  margin-right: 0.75rem;
  flex-shrink: 0;
}

/* Varianti per top 3 - piccoli */
.classifica-box .classifica-box-posizione[data-position="2"] {
  background: 
    linear-gradient(135deg, #a8a8a8 0%, #a8a8a8 50%, transparent 50%),
    linear-gradient(135deg, transparent 50%, #f0f0f0 50%, #f0f0f0 100%);
  color: #1a1a1a;
}

.classifica-box .classifica-box-posizione[data-position="3"] {
  background: 
    linear-gradient(135deg, #b8732c 0%, #b8732c 50%, transparent 50%),
    linear-gradient(135deg, transparent 50%, #e8b892 50%, #e8b892 100%);
  color: white;
}

.classifica-box {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
}

.classifica-box .classifica-box-posizione {
  position: static;
  margin-right: 0.75rem;
  flex-shrink: 0;
}

.classifica-box .classifica-copertina {
  flex-shrink: 0;
}

.classifica-box figcaption {
  flex-grow: 1;
  margin-left: 0.75rem;
}

/*==============================================================================
    VETRINE E SHOWCASE
==============================================================================*/

/*------------------------
      home-vetrina
-------------------------*/

hr.vetrina-hr {
  border: 0;
  margin: 0.725rem auto 0 auto;
  height: 1px;
  width: 70%;
  display: none;
}

.bg-trasparentehr + hr.vetrina-hr {
  display: block;
}

.vetrina-titolo {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
 /*border-bottom: 2px solid #000;*/
  padding-bottom: 0.125rem;
}

.vetrina-titolo h2 {
  border-bottom: none !important;
  margin-bottom: 0 !important;
}

.vetrina-catweb {
  font-size: 0.75rem;
  font-weight: 400;
  font-style: italic;
  text-decoration: none;
  white-space: nowrap;
}

/* Limita altezza titoli per uniformare allineamento copertine */
.home-vetrina .swiper-slide h3,
.home-vetrina .classifica-box h3,
.stesso-autore h3,
.stesso-settore h3 {
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 1em;
  line-height: 1.2em;
}

.home-vetrina .swiper-slide h4,
.home-vetrina .classifica-box h4,
.stesso-autore h4,
.stesso-settore h4{
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 2.4em;
  line-height: 1.2em;
}

.home-vetrina figcaption h3,
.stesso-autore figcaption h3,
.stesso-settore figcaption h3 {
  font-size: 1rem;
  line-height: 1.2;
  font-weight: 400;
  margin: 0;
  margin-top: 1rem;
  text-align: center;
}

.home-vetrina figcaption .vetrina-prezzo .prezzo-scontato,
.home-vetrina figcaption .vetrina-prezzo .prezzo-originale,
.stesso-autore figcaption .vetrina-prezzo .prezzo-scontato,
.stesso-autore figcaption .vetrina-prezzo .prezzo-originale,
.stesso-settore figcaption .vetrina-prezzo .prezzo-scontato,
.stesso-settore figcaption .vetrina-prezzo .prezzo-originale {
  font-size: 1.25rem !important;
  line-height: 1.2;
  font-weight: 700;
  margin: 0;
  margin-top: .5rem;
  text-align: center ;
}

/*------------------------
        Home- figcaption
-------------------------*/

.home-news figcaption,
.home-banner figcaption {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.2;
  text-align: center;
  background-color: /*#474747*/  #000;
  color: #fff;
  padding: 0.5rem 0.1875rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.home-news figcaption h3 {
  font-size: 1rem;
  line-height: 1.2;
  font-weight: 500;
  margin: 0;
}

/* .home-news.post figure img {
  max-height: 200px;
}

.home-news.crop figure img {
  width: 100%;
  aspect-ratio: 1/1;
  height: 100%;
  object-position: top center;
  object-fit: cover;
} */

.home-news .swiper-slide {
  overflow: hidden;
}

.home-news .swiper-slide .etichetta {
  position: absolute;
  background: #678090;
  opacity: 0.9;
  color: #fff !important;
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.3px;
  white-space: nowrap;
  z-index: 10;
  padding: 0.4rem 1rem;
  inset: 0 auto auto 0;
  transform-origin: 100% 0;
  transform: translate(-29.3%) rotate(-45deg);
}

.home-news .swiper-slide .etichetta::before {
  content: "";
  position: absolute;
  top: 0;
  left: -100px;
  right: -100px;
  bottom: 0;
  background: #678090;
  z-index: -1;
}




.news-giorno,
.news-mese {
font-weight: 600;
  color: gold;
}
/* Badge data/ora in sovrimpressione */
/* .home-news .news-date-badge {
  position: absolute;
  top: 12px;
  left: 8px;
  right: 8px;
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(8px);
  padding: 8px 12px;
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
  display: flex;
  align-items: center;
  gap: 6px;
  font-weight: 600;
  line-height: 1.2;
  font-size: 0.85rem;
  opacity: 0.9;
} 
.home-news .news-date-badge .giorno {
  font-size: 1.1rem;
  color: var(--accent);
}
.home-news .news-date-badge .mese {
  font-size: 0.85rem;
  color: var(--text);
  text-transform: uppercase;
}
.home-news .news-date-badge .orario {
  font-size: 0.8rem;
  color: var(--muted);
  border-left: 1px solid rgba(0, 0, 0, 0.1);
  padding-left: 6px;
}

.home-news .news-tag-badge {
  position: absolute;
  top: 52px;
  left: 12px;
  opacity: 0.9;
  background: var(--etichetta);
  color: white;
  padding: 6px 12px;
  border-radius: 6px;
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
  letter-spacing: 0.5px;
  text-align: center;
}
*/
/*==============================================================================
    NEWS ED EVENTI
==============================================================================*/

/*--------------------------
      PAGINA EVENTI
--------------------------*/

/* CSS Variabili */
:root {
  --bg: #f7f7f8;
  --card: #ffffff;
  --accent: /*#474747*/  #000;
  --muted: #6b7280;
  --gap: 1rem;
  --etichetta: green;
}

.news-titolo {
  font-size: 2rem;
  line-height: 1.3;
  margin-bottom: 0.5rem;
}

/* Nascondi la X di cancellazione nativa per il campo titolo su news */
#news-filterTitle::-webkit-search-cancel-button,
#news-filterTitle::-webkit-search-decoration {
  -webkit-appearance: none;
  appearance: none;
  display: none;
}
/* IE/Edge */
#news-filterTitle::-ms-clear {
  display: none;
  width: 0;
  height: 0;
}
/* Firefox fallback */
#news-filterTitle {
  appearance: textfield;
  -moz-appearance: textfield;
}

/* Button gruppo */
.news .btn-group {
  display: flex;
  gap: 0.5rem;
  margin-top: 1rem;
}
.news .btn-group .btn {
  flex: 1;
}

/* Da lg in su: pulsanti sulla stessa riga dei campi */
@media (min-width: 992px) {
  .news .btn-group {
    margin-top: 0;
    justify-content: flex-end;
  }
  .news .btn-group .btn {
    flex: 0 0 auto;
    padding: 0.5rem 1.25rem;
    font-size: 0.9rem;
  }
}

/* Desktop: mostra sempre filtri */
@media (min-width: 768px) {
  .news .news-filter-toggle {
    display: none;
  }
  .news .news-search-filters {
    display: block !important;
  }
}

/* Header filtri - occupa tutta la larghezza della griglia */
/* .news.grid .news-page-head {
      grid-column: 1 / -1;
    }
*/
/* DataTables -> visualizzazione a griglia per le righe nel tbody di #data (evita che <colgroup> crei un box vuoto) */
.news #data {
  /* manteniamo il comportamento tabellare per DataTables, il tbody diventerà una grid */
  margin-top: 1rem;
  width: 100%;
}
.news #data tbody {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--gap, 1rem);
}
/* Assicuriamoci che i tag <colgroup> non occupino spazio nella grid */
.news #data colgroup,
.news #data col {
  display: none !important;
}

@media (min-width: 576px) {
  .news #data tbody {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media (min-width: 768px) {
  .news #data tbody {
    grid-template-columns: repeat(4, 1fr);
  }
}
@media (min-width: 992px) {
  .news #data tbody {
    grid-template-columns: repeat(4, 1fr);
  }
}
@media (min-width: 1200px) {
  .news #data tbody {
    grid-template-columns: repeat(5, 1fr);
  }
}

/* Rimuove thead visivamente ma DataTables lo usa per sorting 
    .news #data thead { display: none; }*/

/* Permetti agli <article> (dentro td) di essere diretti figli della grid */
.news #data tbody,
.news #data tbody tr,
.news #data tbody td {
  display: contents;
}

.news th.text-right {
  text-align: right !important;
  padding-right: 0.5rem !important;
  padding-bottom: 1rem;
}

/* Ripristina padding su card per non ereditare td */
.news #data .news-card {
  margin: 0;
}
.news #data .news-card {
  width: 100%;
}

/* Card eventi */
.news .news-card {
  background: var(--card);
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 6px 18px rgba(15, 23, 42, 0.06);
  display: flex;
  flex-direction: column;
}
.news .news-card:hover {
  background: #f8f9fa;
}

/* Copertina */
.news .news-card .news-cover-wrap {
  position: relative;
  flex: 0 0 auto;
  background: #eee;
}
.news .news-card .news-cover {
  display: block;
  width: 100%;
  height: 0;
  padding-bottom: 150%;
  object-fit: cover;
  border-radius: 10px 10px 0 0;
}
@supports (aspect-ratio: 2/3) {
  .news .news-card .news-cover {
    height: auto;
    padding-bottom: 0;
    aspect-ratio: 2/3;
  }
}


/* Badge data/ora in sovrimpressione */
.news .news-date-badge {
  position: absolute;
  top: 6px;
  left: 6px;
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(8px);
  padding: 8px 12px;
  border-radius: 6px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
  display: flex;
  align-items: center;
  gap: 6px;
   line-height: 1.2;
  font-size: 0.85rem;
}
.news .news-date-badge .news-giorno {
  font-size: 0.875rem;
  
  font-weight: 600;
   color: /*#474747*/  #000 !important;
}
.news .news-date-badge .news-mese {
  font-size: 0.75rem;
   color: /*#474747*/  #000;
  font-weight: 600;
}
.news .news-date-badge .news-orario {
  font-size: 0.75rem;
  color: var(--muted);
  border-left: 1px solid rgba(0, 0, 0, 0.1);
  padding-left: 6px;
  font-weight: 600;
  
}

/* Badge etichetta in sovrimpressione */
.news .news-tag-badge {
  position: absolute;
  bottom: 6px;
  left: 6px;

  background: var(--etichetta);
  color: white;
  padding: 6px 12px;
  border-radius: 6px;

  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
  letter-spacing: 0.5px;
  text-align: center;
}

/* Centra verticalmente i filtri */
.news .news-search-filters .row {
  align-items: flex-start;
}

/* Responsive tweaks */
@media (min-width: 640px) {
  .news .news-page-title {
    font-size: 1.75rem;
  }
}
@media (min-width: 900px) {
  .news .news-card .news-cover {
    aspect-ratio: 2/3;
  }
}

/*==============================================================================
    GRIGLIE GENERICHE
==============================================================================*/

/*------------------------
      GRIGLIA GENERICA (senza DataTables)
-------------------------*/
/* Badge classifica alternativo - design con due triangoli diagonali */
.classifica .classifica-posizione3 {
  font-size: 1.25rem;
  font-weight: 700;
  position: absolute;
  left: 0.75rem;
  top: 0.75rem;
  background: 
    linear-gradient(135deg, #263238 0%, #263238 50%, transparent 50%),
    linear-gradient(135deg, transparent 50%, #455a64 50%, #455a64 100%);
  color: white;
  min-width: 48px;
  height: 48px;
  padding: 0 12px;
  border-radius: 6px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.25);
  letter-spacing: 0.5px;
  z-index: 10;
}

/* Variante per top 3 con triangoli distintivi scuro sotto */
.classifica .classifica-posizione3[data-position="1"] {
  background: 
    linear-gradient(135deg, #d4af37 0%, #d4af37 50%, transparent 50%),
    linear-gradient(135deg, transparent 50%, #f9e79f 50%, #f9e79f 100%);
  color: #1a1a1a;
}

.classifica .classifica-posizione3[data-position="2"] {
  background: 
    linear-gradient(135deg, #a8a8a8 0%, #a8a8a8 50%, transparent 50%),
    linear-gradient(135deg, transparent 50%, #f0f0f0 50%, #f0f0f0 100%);
  color: #1a1a1a;
}

.classifica .classifica-posizione3[data-position="3"] {
  background: 
    linear-gradient(135deg, #b8732c 0%, #b8732c 50%, transparent 50%),
    linear-gradient(135deg, transparent 50%, #e8b892 50%, #e8b892 100%);
  color: white;
}
/* Badge classifica alternativo - design con due triangoli diagonali */
.classifica .classifica-posizione {
  font-size: 1.25rem;
  font-weight: 700;
  position: absolute;
  left: 0.75rem;
  top: 0.75rem;
  background: 
    linear-gradient(135deg, #455a64 0%, #455a64 50%, transparent 50%),
    linear-gradient(135deg, transparent 50%, #263238 50%, #263238 100%);
  color: white;
  min-width: 48px;
  height: 48px;
  padding: 0 12px;
  border-radius: 6px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.25);
  letter-spacing: 0.5px;
  z-index: 10;
}

/* Variante per top 3 con triangoli distintivi */
.classifica .classifica-posizione[data-position="1"] {
  background: 
    linear-gradient(135deg, #f9e79f 0%, #f9e79f 50%, transparent 50%),
    linear-gradient(135deg, transparent 50%, #d4af37 50%, #d4af37 100%);
  color: #1a1a1a;
}

.classifica .classifica-posizione[data-position="2"] {
  background: 
    linear-gradient(135deg, #f0f0f0 0%, #f0f0f0 50%, transparent 50%),
    linear-gradient(135deg, transparent 50%, #a8a8a8 50%, #a8a8a8 100%);
  color: #1a1a1a;
}

.classifica .classifica-posizione[data-position="3"] {
  background: 
    linear-gradient(135deg, #e8b892 0%, #e8b892 50%, transparent 50%),
    linear-gradient(135deg, transparent 50%, #b8732c 50%, #b8732c 100%);
  color: white;
}
/* Container griglia */
.griglia {
  margin-top: 1rem;
}

/* Grid layout */
.griglia-container {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2rem;
}

@media (min-width: 576px) {
  .griglia-container {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (min-width: 768px) {
  .griglia-container {
    grid-template-columns: repeat(4, 1fr);
  }
}

@media (min-width: 992px) {
  .griglia-container {
    grid-template-columns: repeat(4, 1fr);
  }
}

@media (min-width: 1200px) {
  .griglia-container {
    grid-template-columns: repeat(5, 1fr);
  }
}

/* Card griglia */
.griglia-card {
   overflow: hidden;
  /*box-shadow: 0 6px 18px rgba(15, 23, 42, 0.06);*/
  display: flex;
  flex-direction: column;
}


/* Copertina wrapper */
.griglia-cover-wrap {
  position: relative;
  flex: 0 0 auto;
}

/* Immagine copertina */
.griglia-cover {
  display: block;
  width: 100%;
  height: 0;
  padding-bottom: 150%;
  object-fit: cover;

 
}


@supports (aspect-ratio: 2/3) {
  .griglia-cover {
    height: auto;
    padding-bottom: 0;
    aspect-ratio: 2/3;
  }
}

@media (min-width: 900px) {
  .griglia-cover {
    aspect-ratio: 2/3;
  }
}

/* Contenuto card */
.griglia-content {
  padding: 1rem 0;
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
}
.griglia-content .titolo {
  font-size: 1rem;
  font-weight: 600;
  margin: 0;
}

/* Contenuto card */
.griglia-content .autore{
 font-size: 0.875rem;
  font-weight: 400;
  margin: 0;
}

/* Contenuto card */
.griglia-content .prodotto-disponibilita{
 font-size: 0.75rem;

}
/*==============================================================================
    SWIPER SLIDER
==============================================================================*/

/*------------------------
      SWIPER
-------------------------*/
.swiper-lazy-preloader {
    border: 3px solid #000;
    border-radius: 50%;
    border-top: 3px solid #bbb;
    box-sizing: border-box;
    height: 42px;
    left: 50%;
    margin-left: -21px;
    margin-top: -21px;
    position: absolute;
    top: 50%;
    transform-origin: 50%;
    width: 42px;
    z-index: 10;
}

.swiper-pagination-bullets,
.swiper-pagination-fraction {
  /* bottom: -6px !important;*/
  position: relative !important;
  margin-top: 1rem;
}

.swiper-pagination-bullet {
  width: 0.8rem;
  height: 0.8rem;
  min-width: 16px;
  min-height: 16px;
  border-radius: 100% !important;
}

.swiper figure {
  margin: 0;
  width: 100%;
  display: flex;
  flex-direction: column;
}

.swiper-wrapper {
  align-items: stretch;
}

.swiper-slide {
  /*text-align: center;*/
  display: flex;
  justify-content: center;
  align-items: stretch;
  padding-top: 0;
  padding-bottom: 0; /* Rimosso padding ora che la paginazione è esterna */
  height: auto;
}

/* Forza tutte le vetrine-copertina nelle swiper ad avere la stessa altezza */
.swiper .vetrina-copertina {
  flex-shrink: 0;
  min-height: 0;
}

.swiper figcaption {
  flex-grow: 1;
  display: flex;
  flex-direction: column;
}

/* Fix per vetrine classifica con layout col-4/col-8 */
.home-vetrina.classifica .col-4 {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.home-vetrina.classifica .col-8 .swiper {
  margin-left: -0.5rem;
  margin-right: -0.5rem;
}

.home-vetrina.classifica .swiper-slide {
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}

/* Forza altezza uniforme per copertine nelle classifiche */
.home-vetrina.classifica .vetrina-copertina {
  aspect-ratio: 2/3;
  height: auto;
  width: 100%;
  position: relative;
}

.home-vetrina.classifica .vetrina-copertina img {
  width: 100%;
  height: 100% !important;
  max-height: none !important;
  object-fit: cover;
  object-position: top center;
  display: block;
  position: absolute;
  top: 0;
  left: 0;
}

.swiper-button-prev,
.swiper-button-next {
  color: #3c3c3c;
}

.swiper-pagination-bullet-active {
  background-color: #000;
}

/* se vuoi avere le copertine della stessa altezza 
regolare max-height nelle media query  
.swiper-slide .vetrina-box img {

    max-height: 150px;
  } */

/*==============================================================================
    ORDINI E CHECKOUT
==============================================================================*/

/*-------------------------
    Ordine conferma
-------------------------*/

/* .alert {
  border-radius: 0 !important;
  border: none !important;
} */
.ordine-conferma .alert-info {
  border-radius: 0.25rem !important;
}

.ordine-conferma .alert-info a {
  font-size: 1.4rem;
}

.ordine-conferma .alert-heading {
  font-size: 1.8rem;
}

.ordine-conferma ol {
  padding-left: 1.25rem;
}

.ordine-conferma ul {
  list-style: none;
  font-size: 0.875rem;
  padding-left: 0;
}

.ordine-conferma .alert-dismissible {
  padding-right: 1.25rem;
}

#ordine-conferma .card .card-header {
  background-color: transparent;
}

#ordine-conferma .accordion > .card > .card-header {
  border-radius: 0;
  margin-bottom: 0;
}

/* #ordine-conferma .card .btn {
  padding-left: 0;
  font-weight: 600;
  padding-right: 0;
} */

#ordine-conferma .card .btn:hover {
  text-decoration: none;
  outline: none;
  box-shadow: none;
}

#ordine-conferma .card-footer {
  border-top: none;
  background-color: transparent;
  font-size: 0.75rem;
}
#ordine-conferma .card-header {
  border-bottom: none;
  background-color: transparent;
}

#ordine-conferma .card-body {
  padding-top: 0;
  padding-bottom: 0;
}

/*==============================================================================
    MODALI
==============================================================================*/

/*------------------------
      MODALE geneica
-------------------------*/

/* #password-richiesta .modal-dialog {
  max-width: 500px;
  margin: 1.75rem auto;
  height: auto;
} */

.modale .modal-header {
  border-bottom: none;
}
.modale .card-footer {
  border-top: none;
  background-color: transparent;
  font-size: 0.75rem;
}
.modale .card-header {
  border-bottom: none;
  background-color: transparent;
}

.modale .card-body {
  padding-bottom: 0;
  padding-left: 0.75rem;
}
.modale .card {
  margin-bottom: 1rem;
}
.modale .form-check-input {
  margin-left: 0.25rem;
}

/*------------------------
      MODALE destinazione
-------------------------*/
.destinazioni .modal-header {
  border-bottom: none;
}
.destinazioni .card-footer {
  border-top: none;
  background-color: transparent;
  font-size: 0.75rem;
}
.destinazioni .card-header {
  border-bottom: none;
  background-color: transparent;
}

/* .destinazioni .card-body {
  padding-bottom: 0;
  padding-left: 0.75rem;
} */

.destinazioni .card {
  margin-bottom: 1rem;
  min-height: 220px;
}

.destinazioni .card p {
  line-height: 1.8;
}

#checkout .destinazioni .card {
  margin-bottom: 1rem;
  min-height: 180px;
}
.destinazioni .form-check-input {
  margin-left: 0.25rem;
}

.aggiungi-indirizzo{
 height: 220px; 
 background-color: #0c25f9;
 color: #fff;
}

/*------------------------
      MODALE X MOBILI
-------------------------*/

.modal-body {
  background-color: #fff;
  opacity: 1;
  padding-bottom: 1rem;
  padding-left: 0;
  padding-right: 0;
}

.modal-dialog {
  max-width: 100%;
  height: 100vh;
  margin: 0;
}

.modal-content {
  height: 100vh;
  border-radius: 0;
  border: none;
}
.modal-footer {
  background-color: #fff;
  opacity: 1;
  padding-bottom: 1rem;
  border-radius: 0;
  border: none;
}

/*==============================================================================
    CARRELLO
==============================================================================*/

/*------------------------
      CARRELLO  
-------------------------*/
.modal-carrello .prodotto-scheda {
  border-bottom: 1px solid #000;
  padding: 1rem 15px;
}
/* Animazione modal carrello - Zoom elegante apertura e chiusura */
.modal-carrello.fade .modal-dialog {
  transform: scale(0.8);
  opacity: 0;
  transition: transform 0.3s ease-out, opacity 0.3s ease-out;
}

.modal-carrello.show .modal-dialog {
  transform: scale(1);
  opacity: 1;
}

/* Animazione chiusura - rimpicciolisce */
.modal-carrello.fade:not(.show) .modal-dialog {
  transform: scale(0.8);
  opacity: 0;
}

/* Fade out del contenuto durante il refresh */
.modal-carrello .modal-body.fade-content {
  opacity: 0;
  transition: opacity 0.2s ease-out;
}

/* Overlay loading per refresh interno della modal */
.modal-carrello-loading-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.7);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1060;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}

.modal-carrello-loading-overlay.show {
  opacity: 1;
  visibility: visible;
}

.modal-carrello-loading-overlay .spinner-border {
  width: 3rem;
  height: 3rem;
  border-width: 0.3rem;
  color: #fff;
}

.modal-carrello .prezzo-scontato,
.modal-carrello .prezzo-originale {
  font-size: 1.125rem;
}

#modal-carrello .titolo {
  font-size: 1rem;
}
/*------------------------
      CARRELLO TESTI  
-------------------------*/
.carrello .prodotto-scheda {
  margin-top: 0;
  margin-bottom: 0;
}

.carrello-dettagli .carrello-info .titolo {
  font-size: 0.875rem;
}

.carrello-dettagli .carrello-info .autore,
.carrello-dettagli .carrello-info .autore a,
.carrello-dettagli .carrello-info .editore,
.carrello-dettagli .carrello-info .editore a,
.carrello-dettagli .carrello-info .ean {
  font-size: 0.75rem;
}

.carrello-dettagli .carrello-info .ean {
  padding-top: 0.375rem;
}

.carrello-footer .prezzo-scontato,
.carrello-footer .prezzo-originale {
  font-size: 1rem;
}

.carrello-footer .prezzo-vecchio {
  font-size: 0.75rem;
}

.carrello-riepilogo {
  font-size: 1rem;
  font-weight: 600;
}
.carrello-riepilogo .carrello-subtotale,
.carrello-riepilogo .carrello-spedizione {
  font-size: 0.875rem;
  font-weight: 400;
}
.carrello-riepilogo .carrello-buonosconto {
  font-size: 0.875rem;
  font-weight: 500;
}
.carrello-riepilogo .carrello-buonosconto .sconto {
  font-size: 1rem;
  font-weight: 600;
  color: #dc3545;
}

.carrello-riepilogo .carrello-totale {
  font-size: 1rem;
  font-weight: 600;
}

/*==============================================================================
    WISHLIST
==============================================================================*/

/*------------------------
      Wishlist  
-------------------------*/
#menu-wishlist {
  position: relative;
  display: inline-block;
}
.wishlist-top-item {
  position: absolute;
  top: -0px;
  right: -8px;
  min-width: 22px;
  height: 22px;
  padding: 3px;
  background: #fff;
  border:1px solid #ccc;
  color: #444;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.75rem;
  font-weight: bold;
  line-height: 1;
  z-index: 10;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.12);
}

.bi-heart,
.bi-heart-fill {
  font-size: 2.5rem;
}
.bi-heart-fill {
  color:red
}
.utenti-wishlist-dettaglio .prodotto-scheda .titolo {
 font-size:1rem ;

}
.utenti-wishlist-dettaglio .prodotto-scheda .autore {
 font-size:.875rem ;
}

.utenti-wishlist-dettaglio .prodotto-copertina img{
max-width:60px ;
}

.utenti-wishlist-dettaglio .prodotto-copertina {
flex:0 0 60px;
max-width:60px;
}



.wish .card-footer {
  border-top: none;
  background-color: transparent;
  font-size: 0.75rem;
}
.wish .card-header {
  border-bottom: none;
  background-color: transparent;
}
.wish .card-body {
    font-size: .875rem;
    padding: 0 1.25rem;
}

/* .destinazioni .card-body {
  padding-bottom: 0;
  padding-left: 0.75rem;
} */

.wish .card {
  margin-bottom: 1rem;
  
}

.wish .card p {
line-height: 1.8;
}
 .wish   .etichetta-add {
        cursor: pointer;
        height:148px;
        background-color: #fff;
        color: #444;
    }
.wish    .etichetta-add .card-body {
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        height: 100%;
    }
 .wish   .etichetta-add svg {
        font-size: 4rem;
        margin-bottom: 1rem;
    }
 .wish   .etichetta-toggle:disabled {
        opacity: 0.6;
        cursor: not-allowed;
    }
 .wish   .loading-etichetta .card {
        opacity: 0.8;
        transition: opacity 0.3s ease;
    }

.wish .col-12 {
    transition: transform 0.3s ease, opacity 0.3s ease;
}


/*==============================================================================
    PRODOTTO - SCHEDA DETTAGLIO
==============================================================================*/

/*------------------------
      PRODOTTO SCHEDA           
-------------------------*/

/* PER ALLINEARLI AGLI ELEMENTI SUPERIORI  */
#prodotto-scheda .prodotto-carrello,
#prodotto-scheda .prodotto-disponibilita,
#prodotto-scheda .prodotto-prezzo {
  padding-left: 15px;
  padding-right: 15px;
}

#prodotto-scheda .prodotto-disponibilita {
  padding: 15px 0;
 
 /*background-color: #fff;*/
  font-size: 0.875rem;
}

#prodotto-scheda .stesso-settore article,
#prodotto-scheda .stesso-autore article {
  margin-left: 15px;
  margin-right: 15px;
}

/* PER ALLINEARLI AGLI ELEMENTI SUPERIORI  */

#prodotto-scheda .prodotto-prezzo {
  padding-left: 15px;
  padding-right: 15px;
}

#prodotto-scheda .prodotto-scheda .titolo {
  font-size: 1.5rem;
}

#prodotto-scheda .prodotto-scheda .titolo {
  font-size: 1.5rem;
}

#prodotto-scheda .prodotto-scheda {
  border-bottom: none;
}

.prodotto-scheda {
  color: #000;
  font-weight: 400;
  /*margin-top: 1rem;*/
  margin-top: 0;
  margin-bottom: 1rem;
}

.macro-settore .ellipsis {
  flex: 1; /* Ogni parola occupa spazio uguale e si restringe */
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  min-width: 0;
}

.prodotto-scheda p {
  margin-bottom: 0;
}

.prodotto-scheda .titolo {
  font-weight: 500;
  font-size: 1.125rem;
  line-height: 1.1;
  margin-bottom: 0.5rem;
}
.prodotto-scheda .titolo a {
  color: #000;
}

.prodotto-info .titolo {
  margin-bottom: 0;
}

.prodotto-scheda .sottotitolo {
  font-size: 0.75rem;
  font-style: italic;
}

.prodotto-scheda .autore a,
.prodotto-scheda .editore a {
  margin-bottom: 0.5rem;
  font-weight: 500;
  font-size: 0.875rem;
  text-decoration: underline;
}

.prodotto-scheda .editore
 {

  font-style: italic;
  
}

.prodotto-scheda .collana,
.prodotto-scheda .collana a {
  margin-bottom: 0.5rem;
  text-transform: lowercase;
}

.prodotto-scheda .collana::first-letter {
  text-transform: capitalize;
}

.prodotto-scheda .blocco-acquisto {
  background-color: #e0e0fa;

  margin-left: -15px;
  margin-right: -15px;
    padding: 25px 0px;
}

/* Prossima pubblicazione */
.swiper-content,
.prodotto-copertina,
.carrello-copertina {
  position: relative;
}

.swiper-content {
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
}

.swiper-content .vetrina-copertina {
  flex-shrink: 0;
}

/* Numero posizione classifica */
.home-classifica-posizione {
  display: block;
  text-align: center;
  width: 100%;
  font-weight: 600;
  font-size: 2rem;
  margin-bottom: 0.5rem;
}

.swiper-content .np {
  left: 0;
  width: 100%;
}

/* Coccarda "Prossima pubblicazione" - design ribbon */
.np {
  position: absolute;
  top: 12px;
  right: -8px;
  background: linear-gradient(135deg, #c0392b 0%, #e74c3c 100%);
  color: white;
  font-size: 0.7rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  padding: 6px 14px;
  z-index: 10;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);
}

.modal-carrello .np,
.carrello-copertina .np {
  font-size: 0.5rem;
}

/* Triangolo laterale per effetto ribbon */
.np::before {
  content: "";
  position: absolute;
  bottom: -6px;
  right: 0;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 6px 8px 0 0;
  border-color: #a93226 transparent transparent transparent;
}

/* Versione per swiper con larghezza piena */
.swiper-content .np {
  right: 0;
  left: 0;
  width: 100%;
  text-align: center;
  top: 15px;
}

.swiper-content .np::before {
  display: none;
}

/*------Prodotto accordion------*/

#prodotto-scheda .card .btn:focus {
  text-decoration: none;
  outline: none;
  box-shadow: none;
}

#prodotto-scheda .card {
  border-top: none;
  border-bottom: 1px solid #000;
  border-left: 0;
  border-right: 0;
  border-radius: 0;
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}

#prodotto-scheda .card-header {
  background-color: #f4f4ff;
  border-bottom: none;
  font-weight: 600;
}

#prodotto-scheda .card:first-child {
  border-top: 1px solid #000;
}

#prodotto-scheda .card-header span {
  font-weight: 600;
}

#prodotto-scheda .card-body {
  font-size: 1rem;
  line-height: 1.5;
  padding: 1.25rem 2rem;
  color: /*#474747*/  #000;
  background-color: #f4f4ff;
}

#prodotto-scheda .review-item {
  font-size: 0.875rem;

  color: /*#474747*/  #000;
}

#prodotto-scheda .card-body dt {
  font-weight: 600;
}
#prodotto-scheda .card-body dd {
  margin-bottom: 1rem;
}

/* ------ Animazione dei chevron per l'accordion prodotto e ordine carrello------------ */
.card .accordion-chevron {
  transition: transform 0.3s ease;
  font-size: 0.875rem;
  color: #000;
}

/* Quando l'accordion è aperto (non ha la classe collapsed) */
.card .btn[aria-expanded="true"] .accordion-chevron {
  transform: rotate(90deg);
}

/* Quando l'accordion è chiuso (ha la classe collapsed) */
.card .btn.collapsed .accordion-chevron {
  transform: rotate(0deg);
}

/* ------RECENSIONI PRODOTTO---------- */
.rating-average .rating-number {
  font-size: 2.5rem;
  font-weight: 600;
  color: #000;
}

.rating-average .rating-total {
  font-size: 1.25rem;
  color: #000;
}

.rating-stars {
  font-size: 1rem;
  margin-bottom: 0.5rem;
}

.rating-breakdown .progress {
  background-color: #e9ecef;
}

.review-item {
  padding: 1rem 0;
}

.review-title {
  font-weight: 600;
  margin-bottom: 0.5rem;
}

.review-text {
  line-height: 1.6;
  color: #495057;
}

.review-item .rating-stars {
  font-size: 1rem;
  margin-top: 0.25rem;
}


#recensioni-container thead tr th {
	border-top: none !important;
}
.rating-breakdown .row {
	cursor: pointer;
}
/* --- CLASSIFICAZIONE ---- */
.classificazione-lista {
    list-style: none;
    padding-left: 0;
    margin: 0;
    counter-reset: classificazione-counter;
}

.classificazione-item {
    margin-bottom: 0.5rem;
    padding-left: 0;
    counter-increment: classificazione-counter;
}

.classificazione-link {
    display: flex;
    align-items: center;
    padding: 0.75rem 1rem;
    border-left: 3px solid transparent;
    background-color: #f8f9fa;
    border-radius: 4px;
    text-decoration: none;
    color: #495057;
    font-size: 0.95rem;
    transition: all 0.25s ease;
    position: relative;
}

.classificazione-link::before {
    content: counter(classificazione-counter) ".";
    font-weight: 600;
    color: #000;
    margin-right: 0.75rem;
    min-width: 24px;
    transition: color 0.25s ease;
}

.classificazione-link:hover {
    background-color: #e9ecef;
    border-left-color: #0c25f9 ;
    text-decoration: none;
    color: #000;
    transform: translateX(4px);
}

.classificazione-link:hover::before {
    color: #0c25f9 ;
}



/*--- PREZZO PRODOTTO -----*/

.prodotto-prezzo {
  margin-bottom: 1rem;
}

#prodotto-scheda .prezzo-originale,
#prodotto-scheda .prezzo-scontato {
  font-size: 2rem;
  line-height: 1.3;
  font-weight: 600;
}

.prezzo-vecchio {
  font-size: 0.875rem;
  font-weight: 400;
  text-decoration: line-through;
}

.prezzo-scontato {
  color: #000;
  font-size: 1.5rem;
  font-weight: 600;
}

.prezzo-sconto {
  font-size: 1rem;
}

.prezzo-sconto {
  font-size: 1rem;
  font-weight: 600;
  color: #dc3545;
}

.prezzo-originale {
  font-size: 1.5rem;
  font-weight: 600;
  /*color: #000;*/
}

/*----- prodotto disponibilità -----*/

.carrello-dettagli .prodotto-disponibilita p,
.modal-carrello .prodotto-disponibilita p {
  font-size: 0.75rem;
  padding: 0;
}

.prodotto-disponibilita p {
  margin-bottom: 0;
  font-weight: 400;
  padding: 0.25rem 0 0 0;
}

.prodotto-disponibilita .disponibile {
  font-weight: 600;
  color: #4a895f ;
}

.prodotto-disponibilita .non-disponibile {
  font-weight: 600;
  color: #fc3439;
}

.ricerca-risultato .prodotto-disponibilita p {
  font-size: 0.875rem;
  padding: 0;
}
.ricerca-risultato .prodotto-disponibilita {
  padding-top: 0.5rem;
}

/*---- VALUTAZIONI PRODOTTI------*/

.valutazione-media {
  width: 2.5rem;
  /* 40px - più piccolo */
  height: 2.5rem;
  /* 40px - più piccolo */
  font-weight: bold;
  font-size: 1rem;
  /* più piccolo */
  border-radius: 0.5rem;
  /* bordi arrotondati */
}



.valutazione-testo {
  font-size: 0.8rem;
  /* più piccolo */
  font-weight: 400;
  color: /*#474747*/  #000;
  /* colore del body */
  /* 3px - più piccolo */
}

.valutazione-stelle {
    font-size: 1rem;
    margin-bottom: 0.5rem;
}

.ricerca-header {
  border-bottom: 1px solid #000;
  margin-bottom: 1rem;
  padding-bottom: 1rem;
}
.ricerca-header .page-changer-submit {
  display: none;
}
.ricerca-header .parola-cercata {
  padding-left: 1rem;
}
.ricerca-header .ordinamento {
border-right: 1px solid #000;
}
.ricerca-header #page-changer select {
  border: none;
  background-color: inherit;
  
}

.ricerca-risultato .prodotto-scheda {
  border-bottom: 1px solid #000;
  padding-bottom: 1.5rem;
}
.ricerca-risultato .valutazione-stelle,
.ricerca-risultato .valutazione-testo {
  font-size: 0.75rem;
  /* più piccolo */
}

.valutazione-numero {
  font-size: 0.75rem;
  color: #000;
  margin-left: 0.375rem;
  font-weight: 400;
}

	.stella-vuota {
		   color: #cccccc;
	}

/*--------stessosettore buttoni acquisto-------*/
button.copertina-hover span {
  

  font-weight: 700;
}
  
.bg-azzurro button.copertina-hover {
  background-color: #fff;
  color: #000;
}
button.copertina-hover {
  position: absolute;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  left: 0;
  right: 0;
  bottom: 0;
  padding: .5rem 0;
  opacity: 1;
  font-weight: 700;
 /*cerchio sulla copertina
  width: 40px;
  height: 40px;
  border-radius: 50%;
   bottom: 10px;
  left: 50%;
  transform: translateX(-50%);
  background: #eee;
  */
  z-index: 2;
  border: none;
  cursor: pointer;
  background-color: #0c25f9;
  color: #fff;
}

button.copertina-hover:hover {
  
  opacity:.9;

}

/*==============================================================================
    RICERCA - RISULTATI E FILTRI
==============================================================================*/

/*---------------------------
      RISULTATO RICERCA 
---------------------------*/
/* #ricerca-risultato .prodotto-scheda a {
  text-decoration: none;
} */

/*---------------------------
      FILTRI SIDEBAR ACCORDION
---------------------------*/
/* Pulsanti outline sidebar filtri: background opaco */
.filtri-sidebar {
  /*background-color: #fff !important;*/
  opacity: 1;
  padding-bottom: 1rem;
}
.filtri-sidebar .card {
background-color: transparent;
}
.filtri-sidebar.accordion .filtri-nome {
    flex: 1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    text-align: left;
}
.filtri-sidebar.accordion .card {
  border-top: none;
  border-bottom: 1px solid #000;
  border-left: 0;
  border-right: 0;
  border-radius: 0;
}

.filtri-sidebar.accordion .card-header {
  background-color: transparent;
  border-bottom: none;
  padding: 0.75rem 1rem;
}

.filtri-sidebar.accordion .card-header h3 {
  font-size: 1rem;
  font-weight: 600;
}

.filtri-sidebar.accordion .card-header .btn-link {
  text-decoration: none;
  color: /*#474747*/  #000;
  padding: 0;
}

.filtri-sidebar.accordion .card-header .btn-link:hover {
  text-decoration: none;
  color: /*#474747*/  #000;
}

.filtri-sidebar.accordion .card-body {
  font-size: 0.875rem;
  padding: 1rem 1.25rem;
}

.filtri-sidebar.accordion .form-check {
  margin-bottom: 0.5rem;
  gap: 0;
  display: flex;
  align-items: center;
}

.filtri-sidebar.accordion .form-check-label {
  font-size: 0.875rem;
  cursor: pointer;
  margin-bottom: 0;
  padding-left: 15px;
  width: 100%;
  display: flex;
  align-items: center;
}

.filtri-sidebar.accordion .filtri-nome {
  flex: 1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  text-align: left;
}

/* .filtri-sidebar.accordion .filtri-count {
  margin-left: auto;
  text-align: right;
  background-color: #e9ecef;
  margin-left: .5rem;
} */

/* Badge per il conteggio dei filtri */
.filtri-sidebar.accordion .filtri-count {
  margin-left: auto;
  text-align: right;
  background-color: #e0e0fa;
  border-radius: 0.375rem; /* Angoli arrotondati per effetto badge */
  padding: 0.25rem 0.5rem; /* Padding interno */
  font-size: 0.75rem; /* Font piccolo */
  font-weight: 600; /* Grassetto */
  color: #000; /* Colore testo */
  display: inline-block; /* Per allineamento */
  min-width: 1.5rem; /* Larghezza minima */
  text-align: center; /* Centra il testo */
  margin-left: 1rem;
}

/* Classe plus-minus per filtri-sidebar: logica simile a .accordion-chevron */
.filtri-sidebar.accordion .plus-minus {
  display: inline-block;
  width: 1.25rem; /* 20px, dimensione simile a .accordion-chevron */
  height: 1.25rem;
  background-image: url("../img/BsIcons/plus.svg"); /* Icona plus quando chiuso */
  background-size: contain;
  background-repeat: no-repeat;
  transition: transform 0.3s ease; /* Transizione per rotazione se vuoi mantenerla */
  font-size: 1.25rem;
  color: #000;
}

/* Quando l'accordion è aperto (aria-expanded="true"), cambia a minus.svg */
.filtri-sidebar.accordion .btn[aria-expanded="true"] .plus-minus {
  background-image: url("../img/BsIcons/dash-lg.svg"); /* Icona minus quando aperto */
  /* Se vuoi mantenere la rotazione: transform: rotate(90deg); */
}

/* Quando l'accordion è chiuso (aria-expanded="false" o assente), resta plus.svg */
.filtri-sidebar.accordion .btn:not([aria-expanded="true"]) .plus-minus {
  background-image: url("../img/BsIcons/plus-lg.svg");
}

.filtri-sidebar.accordion .accordion-chevron {
  transition: transform 0.3s ease;
  font-size: 1.25rem;
  color: #000;
}

.filtri-sidebar.accordion .btn[aria-expanded="true"] .accordion-chevron {
  transform: rotate(90deg);
}

.filtri-sidebar.accordion .btn.collapsed .accordion-chevron {
  transform: rotate(0deg);
}

.filtri-sidebar.accordion .btn:focus {
  text-decoration: none;
  outline: none;
  box-shadow: none;
}

.filtri-sidebar.accordion .vedi-tutti {
  font-size: 0.875rem;
  text-decoration: underline;
  color: /*#474747*/  #000;
}

.filtri-sidebar.accordion .vedi-tutti:hover {
  color: #000;
  text-decoration: underline;
}

/* ---- Header Mobile ---- */

.ricerca-header-mobile .ricerca-risultato-filtri {
  border-bottom: 1px solid #000;
  color: #000;
}

.modal-fullscreen-mobile .modal-header {
  border-bottom: none;
}

.header-actions .btn {
  font-size: 1.2rem;
}

.header-actions .btn i {
  opacity: 0.7;
  transition: opacity 0.3s ease;
  color: #fff;
}

.header-actions .btn:hover i {
  opacity: 1;
  color: #fff;
}

/* Header mobile full-width solo nella pagina ricerca */
.ricerca-header-mobile {
  /* margin-left: -20px;
   margin-right: -20px; */
  margin-left: -15px;
  margin-right: -15px;
}

/*==============================================================================
    PAGINAZIONE
==============================================================================*/

/* ---- Paginazione Universale ---- */

/* Solo stili visuali - NO LAYOUT */
.ricerca-footer {
  background-color: #f3f3f3;
  /* margin-left: -20px;
  margin-right: -20px; */
  margin-left: -15px;
  margin-right: -15px;
  padding: 0.75rem 0.625rem;
}

/* Stili per link numerici - Mobile-first */
.paginazione a:not(.pag-icon) {
  text-decoration: underline;
  color: #6c757d;
  font-weight: normal;
  padding: 0.1875rem 0.25rem;
  white-space: nowrap;
  font-size: 0.9375rem;
  cursor: pointer;
}

.paginazione a.current {
  text-decoration: none !important;
  font-weight: bold !important;
  color: #000;
  font-size: 1rem;
  cursor: pointer;
}

.paginazione a:not(.pag-icon):not(.current):hover {
  color: #000;
  text-decoration: underline;
  cursor: pointer;
}

/* Separatori */
.paginazione span {
  color: #6c757d;
  font-weight: normal;
  margin: 0 0.125rem;
  font-size: 0.875rem;
}

/* Stili per frecce - Mobile-first */
.paginazione .pag-icon {
  text-decoration: none;
  color: #000;
  font-size: 0.8125rem;
  padding: 0;
  white-space: nowrap;
  cursor: pointer;
}

.paginazione .pag-icon i {
  font-size: 0.75rem;
}

.paginazione .pag-left i {
  margin-right: 0.375rem;
}

.paginazione .pag-right i {
  margin-left: 0.375rem;
}

.paginazione .pag-icon:hover {
  color: #000;
  cursor: pointer;
}

/* Link disabilitati - supporta multiple opzioni */
.paginazione .pag-icon[disabled],
.paginazione .pag-icon.disabled,
.paginazione .pag-icon[aria-disabled="true"] {
  color: #6c757d !important;
  cursor: not-allowed !important;
  pointer-events: none;
  opacity: 0.6;
}

.paginazione .pag-icon[disabled]:hover,
.paginazione .pag-icon.disabled:hover,
.paginazione .pag-icon[aria-disabled="true"]:hover {
  color: #000 !important;
  cursor: not-allowed !important;
}

/*==============================================================================
    FOOTER
==============================================================================*/

/*-------------------------
        F O O T E R
--------------------------*/
footer {
  margin-top: 0;
  background-color: #323232;
  color: #fff;
}
footer p  {
 
  font-size: 1.25rem;

}
footer .footer-logo  {
  width:250px;
  height: 100px
}
footer a {
  color: #fff;
  text-decoration: none;
}
footer a:hover {
  color: #fff;
  text-decoration: none;
}

footer ul {
  margin: 0px;
  list-style-type: none;
  font-size: 1rem;
  padding: 0;
  list-style: none;
  list-style-position: inside;
  padding-left: 0;
}

footer ul li {
  padding: 0.312rem 0;
}

.footer-nav ul {
  list-style-type: none;
  /*display: table;*/
  margin: 0.75rem auto;

  display: flex !important;
  justify-content: center !important;
  flex-wrap: wrap;
}

.footer-nav ul li {
  display: inline;
  margin: 0 0.875rem;
}

footer a:hover {
  color: #fff;
}

footer h2 {
  color: #fff;
  font-size: 1.25rem;
  font-weight: 600;
  margin-bottom: 40px;
  position: relative;
}

footer h2::before {
  content: "";
  position: absolute;
  left: 0;
  bottom: -15px;
  height: 2px;
  width: 100%;
  background: #eff1f6;
}

/* 
TABELLA CONVERSIONE PX -> REM (base: 16px = 1rem)
2px  = 0.125rem                    | 22px = 1.375rem
3px  = 0.1875rem                   | 23px = 1.4375rem
4px  = 0.25rem   ← bordi sottili   | 24px = 1.5rem
5px  = 0.3125rem                   | 25px = 1.5625rem
6px  = 0.375rem                    | 26px = 1.625rem
7px  = 0.4375rem                   | 27px = 1.6875rem
8px  = 0.5rem    ← spaziature base | 28px = 1.75rem
9px  = 0.5625rem                   | 29px = 1.8125rem
10px = 0.625rem                    | 30px = 1.875rem
11px = 0.6875rem                   | 31px = 1.9375rem
12px = 0.75rem   ← font piccoli    | 32px = 2rem      ← titoli h2
13px = 0.8125rem                   | 33px = 2.0625rem
14px = 0.875rem                    | 34px = 2.125rem
15px = 0.9375rem                   | 35px = 2.1875rem
16px = 1rem      ← font base       | 36px = 2.25rem   ← titoli h1
17px = 1.0625rem                   | 37px = 2.3125rem
18px = 1.125rem                    | 38px = 2.375rem
19px = 1.1875rem                   | 39px = 2.4375rem
20px = 1.25rem                     | 40px = 2.5rem
21px = 1.3125rem                   | 41px = 2.5625rem
22px = 1.375rem                    | 42px = 2.625rem
23px = 1.4375rem                   | 43px = 2.6875rem
24px = 1.5rem                      | 44px = 2.75rem
25px = 1.5625rem                   | 45px = 2.8125rem
26px = 1.625rem                    | 46px = 2.875rem
27px = 1.6875rem                   | 47px = 2.9375rem
28px = 1.75rem                     | 48px = 3rem      ← fino a 3rem
29px = 1.8125rem                   | 
30px = 1.875rem                    | 
*/

/*==============================================================================
    MEDIA QUERIES - RESPONSIVE
==============================================================================*/

/*---------------------------------------------------
    MEDIA QUERY - Responsive CSS 
-----------------------------------------------------
 Small devices (landscape phones, 576px and up)

 Medium devices (tablets, 768px and up)

 Large devices (desktops, 992px and up)

 Extra large devices (large desktops, 1200px and up)
-----------------------------------------------------*/

/* Small devices (landscape phones, 576px and up)*/
@media (min-width: 576px) {
#menu-wishlist {
  padding: .5rem;
}

.wishlist-top-item {
  position: absolute;
  top: -2px;
  right: -4px;
}

  .prodotto-scheda .blocco-acquisto {

    padding:  0px;
}
 #prodotto-scheda .blocco-acquisto,
  #prodotto-scheda .prodotto-disponibilita,
  #prodotto-scheda .prodotto-carrello {
    background-color: transparent;
  }
  #top-carosello  img {
  height: 250px;    /* altezza fissa */
}
  .top-bar-logo img {
    max-height: 40px;
    min-height: 40px;
  }
 .prodotto-scheda .titolo {
    font-size: 1.25rem;
   }
  /* Badge data/ora in sovrimpressione */
.news .news-date-badge {
  position: absolute;
  top: 12px;
  left: 12px;
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(8px);
  padding: 8px 12px;
  border-radius: 6px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
  display: flex;
  align-items: center;
  gap: 6px;
   line-height: 1.2;
  font-size: 0.85rem;
}

.news .news-tag-badge {
  position: absolute;
  bottom: 12px;
  left: 12px;
  }

  .utenti-ordini-aperti #data tbody tr td.ordini-totale {
  border-right: none;
}
}

/* Medium devices (tablets, 768px and up) */
@media (min-width: 768px) {


#breadcrumb{
  background-color: #e0e0fa;

    margin-bottom: 1rem;
}
.breadcrumb-elemento {
    padding:0 .375rem 0 .5rem;
    border-left: 1px solid #000;
    font-size: 0.875rem;
}


.breadcrumb-image {
    padding-right: .75rem;
}

.breadcrumb-image img,
.breadcrumbs-image-item {
    width: 40px;
    height: 40px;
}



  #top-carosello  img {
  height: 300px;    /* altezza fissa */
}
#utente-accedi-registrati .bi,
#utente-loggato .bi,
#utente-admin .bi,
#menu-wishlist .bi,
#carrello-top .bi,
#menu-ricerca .bi {
  font-size: 1.875rem;
}

.news .news-date-badge .news-giorno {
  font-size: 1rem;
  
  font-weight: 600;
   color: /*#474747*/  #000 !important;
}
.news .news-date-badge .news-mese {
  font-size: 0.85rem;
   color: /*#474747*/  #000;
  font-weight: 600;
}
.news .news-date-badge .news-orario {
  font-size: 0.8rem;
  color: var(--muted);
  border-left: 1px solid rgba(0, 0, 0, 0.1);
  padding-left: 6px;
  font-weight: 600;
  
}
.top-menu-mobile-toggle .bi {
    font-size: 2.5rem;
}

body.no-top main {
  padding-top: 0rem;
}

.utenti-wishlist-dettaglio .prodotto-copertina img{
max-width:100px ;
}

.utenti-wishlist-dettaglio .prodotto-copertina {
flex:0 0 100px;
max-width:100px;
}
  /*----------------
  /   TOP BAR
  ---------------*/
  .top-bar-logo img {
    max-height: 40px;
    min-height: 40px;
  }
  .top-bar {
    padding: 0.5rem 0;
  }

  /*----------------
/   PRODOTTO SCHEDA
---------------*/
  .prodotto-scheda .blocco-acquisto {
    background-color: #fff;

  }
 /*
  #prodotto-scheda .prodotto-disponibilita {
    padding: 0 0 15px 15px;
    margin: 0 -15px;
  }
 */
  #prodotto-scheda .card-header span {
    font-size: 1.25rem;
    font-weight: 600;
  }

  #prodotto-scheda .card .accordion-chevron {

    font-size: 1rem;
  }

  
  /* perche l'avevo messa? 
  .prodotto-scheda .copertina {
    box-shadow: none;
  }*/

  #carrello .prodotto-scheda,
  #carrello .carrello-riepilogo {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
  }

  #AdminUtenteDropdownMenu {
    padding-right: 0 !important;
  }

  .user .fa-user-circle {
    padding-right: 0;
  }

  /* .custom-select option {
    font-size: 1rem;
    padding: 8px;
  } */

  .modal-carrello .prodotto-disponibilita p {
    font-size: 0.875rem;
    padding: 0.25rem 0 0 0;
  }

  .modal-dialog {
    max-width: 600px;
    margin: 1.75rem auto;
    height: auto;
  }

  .modal-content {
    height: auto;
  }

  #carrello .copertina,
  #ordine-conferma .copertina {
    max-width: 80px;
  }

  /* Paginazione Desktop - font e padding più grandi */
  .ricerca-footer {
    padding: 1rem 15px;
  }

  .paginazione a:not(.pag-icon) {
    padding: 0.25rem 0.375rem;
    font-size: 1rem;
  }

  .paginazione a.current {
    font-size: 1.125rem;
  }

  .paginazione .pag-icon {
    padding: 0.5rem 0.75rem;
    font-size: 0.875rem;
  }


}

/* Large devices (desktops, 992px and up) */
@media (min-width: 992px) {
#utenti {
  padding-top: 2rem;
}
  #top-carosello  img {
  height: 400px;    /* altezza fissa */
}


body.homepage #top-ricerca {
  min-height: auto;
  height: auto;
  border-top: 1px solid #000;
  /*padding: 0.5rem 0 0 0;*/
  border-bottom: none;
  
}
.top-bar {
 /* border-bottom: 1px solid #000;*/
  
  background-color: #f4f4ff;
}
#top-ricerca,
.top-ricerca {
  min-height: auto;
  height: auto;
  border-bottom: 1px solid #000;
  /*padding: 0.5rem 0 0 0;
  border-bottom: none;*/
  border-top: none;
   background-color: #f4f4ff;
  
}

  .ricerca-footer {
    background-color: inherit;
    /* margin-left: -20px;
  margin-right: -20px; */
    margin-left: 0;
    margin-right: 0;
  }
  #prodotto-scheda .card {
    background-color: inherit;
  }

  #prodotto-scheda .card-header {
    background-color: inherit;
  }

 

  .ricerca-risultato .prodotto-disponibilita p {
    font-size: 0.875rem;
    padding: 0.25rem 0 0 0;
  }

  #prodotto-scheda .blocco-acquisto,
  #prodotto-scheda .prodotto-disponibilita,
  #prodotto-scheda .prodotto-carrello {
    background-color: transparent;
  }

  #prodotto-scheda .valutazione-dettagli {
    margin-left: 0;
  }

  .top-bar-logo img {
    max-height: 50px;
    min-height: 50px;
  }

  #top-carosello .container-xl {
    padding-left: 15px;
    padding-right: 15px;
  }
  .modal-dialog {
    max-width: 800px;
    margin: 1.75rem auto;
    height: auto;
  }

  .social .nav-link,
  .carrello-utente .nav-link {
    height: 44px;
  }

  .link {
    padding-left: 1.25rem;
    z-index: 1;
  }

  .social li:first-child .nav-link {
    padding-left: 0;
  }

  #prodotto-scheda .card-body,
  #prodotto-scheda .card-header,
  #prodotto-scheda .card-header .btn-link {
    padding-left: 0;
    padding-right: 0;
  }

  .home-vetrina,
  .home-banner,
  .home-news {
    padding-left: 15px;
    padding-right: 15px;
  }
  .home-news .news-date-badge {
    left: 12px;
    right: auto;
  }
}

/* X-Large devices (large desktops, 1200px and up) */
@media (min-width: 1200px) {
}

/* XX-Large devices (larger desktops, 1400px and up) */
@media (min-width: 1400px) {
}

/* `sm` applies to x-small devices (portrait phones, less than 576px) */
@media (max-width: 575.98px) {

}

/* `md` applies to small devices (landscape phones, less than 768px) */
@media (max-width: 767.98px) {
  .prodotto-carrello .aggiungi-carrello {
    flex: 1;
  }
  .prodotto-carrello #wishlist-btn {
    flex-shrink: 0;
  }

  
  body.tooltipcrumbs .breadcrumb-elemento > a {
    pointer-events: none;
    color: #000;
  }
  body.tooltipcrumbs .breadcrumb-elemento.tooltip-active > a {
    pointer-events: auto;
    color: inherit;
  }
}

/* `lg` applies to medium devices (tablets, less than 992px) */
@media (max-width: 991.98px) {
}

/* `xl` applies to large devices (desktops, less than 1200px) */
@media (max-width: 1199.98px) {
}

/* `xxl` applies to x-large devices (large desktops, less than 1400px) */
@media (max-width: 1399.98px) {
}

/*==============================================================================
    UTILITY CLASSES
==============================================================================*/

/* Classi di utilità per dimensioni icone Bootstrap Icons */
.b10 {
  font-size: 0.625rem;
}
.b12 {
  font-size: 0.75rem;
}
.b14 {
  font-size: 0.875rem;
}
.b16 {
  font-size: 1rem;
}
.b18 {
  font-size: 1.125rem;
}
.b20 {
  font-size: 1.25rem;
}
.b22 {
  font-size: 1.375rem;
}
.b24 {
  font-size: 1.5rem;
}
.b28 {
  font-size: 1.75rem;
}
.b30 {
  font-size: 1.875rem;
}
.b32 {
  font-size: 2rem;
}

/*==============================================================================
    SWEETALERT2 - MODALI E NOTIFICHE
==============================================================================*/

/* ===========================================
   ANIMAZIONI E TRANSIZIONI SWEETALERT2
   =========================================== */

/* ========== ANIMAZIONI DI ENTRATA ========== 
   Definisce l'animazione quando la modale appare
   Effetto: slidedown fluido dall'alto
*/
.animate__animated.animate__fadeInDown {
  animation-duration: 0.3s !important; /* Durata animazione */
  animation-fill-mode: both !important; /* Mantiene stato finale */
  animation-name: fadeInDown !important; /* Nome dell'animazione */
}

/* ========== ANIMAZIONI DI USCITA ========== 
   Definisce l'animazione quando la modale scompare
   Effetto: slideup fluido verso l'alto
*/
.animate__animated.animate__fadeOutUp {
  animation-duration: 0.3s !important; /* Durata animazione */
  animation-fill-mode: both !important; /* Mantiene stato finale */
  animation-name: fadeOutUp !important; /* Nome dell'animazione */
}

/* ========== VELOCITÀ ANIMAZIONI ========== 
   Classe per rendere le animazioni più veloci
*/
.animate__faster {
  animation-duration: 0.3s !important; /* Durata veloce */
}

/* ========== KEYFRAMES ENTRATA ========== 
   Definisce il movimento dall'alto al centro
*/
@keyframes fadeInDown {
  from {
    opacity: 0; /* Inizia invisibile */
    transform: translate3d(0, -100%, 0); /* Posizione sopra lo schermo */
  }
  to {
    opacity: 1; /* Diventa visibile */
    transform: translate3d(0, 0, 0); /* Posizione finale centrata */
  }
}

/* ========== KEYFRAMES USCITA ========== 
   Definisce il movimento dal centro verso l'alto
*/
@keyframes fadeOutUp {
  from {
    opacity: 1; /* Inizia visibile */
    transform: translate3d(0, 0, 0); /* Posizione iniziale centrata */
  }
  to {
    opacity: 0; /* Diventa invisibile */
    transform: translate3d(0, -100%, 0); /* Posizione finale sopra lo schermo */
  }
}

/* ==========================================
   STILI AGGIUNTIVI SWEETALERT2
   =========================================== */

/* div:where(.swal2-container) h2:where(.swal2-title) {

    font-size: 1.25em !important;
    font-weight: 600;
    text-align: center;
}

div:where(.swal2-container) div:where(.swal2-html-container) {

    color: inherit;
    font-size: .875em !important;
    font-weight: normal;
    line-height: normal;
    text-align: center;
    
} */

/* ===========================================
   POSIZIONAMENTO E LAYOUT SWEETALERT2
   =========================================== */

/* ========== POSIZIONAMENTO CENTRATO ========== 
   Forza il posizionamento al centro dello schermo
   Sovrascrive il posizionamento di default di SweetAlert2
*/

/* ========== SFONDO OVERLAY ========== 
   Personalizza lo sfondo scuro dietro la modale
   Aggiunge effetto blur per focus visivo
*/
.swal2-backdrop-show {
  background: rgba(0, 0, 0, 0.4) !important; /* Nero semi-trasparente */
  backdrop-filter: blur(3px) !important; /* Effetto sfocatura dello sfondo */
}

/* ========== BARRA PROGRESSO TIMER ========== 
   Personalizza la barra che mostra il tempo rimanente
   Usata per: modali con chiusura automatica (toast)
*/
.swal2-timer-progress-bar {
  background: #0c25f9 !important; /* Verde del tema */
  height: 3px !important; /* Altezza sottile */
}

/* ===========================================
   PULSANTI NATIVI SWEETALERT2 (FALLBACK)
   =========================================== */

/* ========== PULSANTE CONFERMA NATIVO ========== 
   Stili per i pulsanti SweetAlert2 standard (non custom)
   Usato come fallback se le classi custom non vengono applicate
*/
.swal2-confirm {
  background-color: #0c25f9 !important; /* Verde del tema */
  border: none !important; /* Nessun bordo */
  border-radius: 100px !important; /* Angoli leggermente arrotondati */
  padding: 10px 20px !important; /* Padding interno */
  font-weight: 500 !important; /* Grassetto medio */
  transition: all 0.2s ease !important; /* Transizione veloce */
}

/* ========== HOVER PULSANTE CONFERMA NATIVO ========== */
.swal2-confirm:hover {
  background-color: #0c25f9 !important; /* Verde più scuro */
  transform: translateY(-1px) !important; /* Solleva leggermente */
  box-shadow: 0 4px 12px rgba(103, 138, 117, 0.3) !important; /* Ombra verde */
}

/* ========== PULSANTE ANNULLA NATIVO ========== 
   Stili per il pulsante di annullamento standard
*/
.swal2-cancel {
  background-color: #6c757d !important; /* Grigio Bootstrap */
  border: none !important; /* Nessun bordo */
  border-radius: 100px !important; /* Angoli leggermente arrotondati */
  padding: 10px 20px !important; /* Padding interno */
  font-weight: 500 !important; /* Grassetto medio */
  transition: all 0.2s ease !important; /* Transizione veloce */
}

/* ========== HOVER PULSANTE ANNULLA NATIVO ========== */
.swal2-cancel:hover {
  background-color: #5a6268 !important; /* Grigio più scuro */
  transform: translateY(-1px) !important; /* Solleva leggermente */
  box-shadow: 0 4px 12px rgba(108, 117, 125, 0.3) !important; /* Ombra grigia */
}

/* ===========================================
   CONTROLLI INTERAZIONE UTENTE
   =========================================== */

/* ========== CLICK FUORI DALLA MODALE ========== 
   Permette di chiudere la modale cliccando sullo sfondo
   Abilita l'interazione con l'overlay
*/
.swal2-container {
  pointer-events: all !important; /* Abilita eventi del mouse */
}

/* ========== SUPPORTO TASTO ESC ========== 
   Permette di chiudere la modale con il tasto Escape
   Rimuove l'outline di default per estetica
*/
.swal2-popup {
  outline: none !important; /* Nessun bordo di focus */
}

/* ========== MEDIA QUERY PER MOBILE ========== 
   Aggiunge spaziatura laterale sui dispositivi mobili
   per evitare che la modale tocchi i bordi dello schermo
*/
@media (max-width: 768px) {
  .custom-swal-popup {
    margin-left: 15px !important;
    margin-right: 15px !important;
    width: calc(100vw - 30px) !important; /* Larghezza viewport meno margini */
  }
}

/* ===========================================
   STILI PERSONALIZZATI PER SWEETALERT2
   =========================================== */

/* ========== POPUP PRINCIPALE ========== 
   Definisce l'aspetto generale della finestra modale SweetAlert2
   Usato per: tutte le modali (successo, errore, conferma, toast)
*/
.custom-swal-popup {
  border-radius: 0; /* Angoli squadrati per design moderno */
  box-shadow: none; /* Nessuna ombra di default */
  border: none; /* Rimuove bordi predefiniti */
  background: #fff; /* Sfondo bianco pulito */
}

/* ========== TITOLO DELLE MODALI ========== 
   Stile del titolo principale (es. "Successo", "Errore", "Sei sicuro?")
   Usato per: tutti i titoli delle modali SweetAlert2
*/
.custom-swal-title {
  color: /*#474747*/  #000; /* Grigio scuro per buona leggibilità */
  font-weight: 600; /* Grassetto per enfasi */
  font-size: 1rem; /* Dimensione standard del font */
  margin-bottom: 0; /* Nessun margine inferiore */
}

/* ========== CONTENUTO/MESSAGGIO ========== 
   Stile del testo principale del messaggio
   Usato per: testo descrittivo delle modali (es. "Indirizzo aggiornato")
*/
.custom-swal-content {
  color: #666; /* Grigio medio per il testo secondario */
  font-size: 1rem; /* Dimensione leggibile */
  line-height: 1.6; /* Spaziatura tra righe per leggibilità */
}

/* ========== PULSANTE CONFERMA ========== 
   Stile del pulsante principale (OK, Sì, Conferma)
   Usato per: azioni positive come conferme, eliminazioni
   Colore: Verde del tema del sito (#678a75)
*/
.custom-swal-confirm {
  background: linear-gradient(
    135deg,
    #678a75 0%,
    #5a7a68 100%
  ); /* Gradiente verde */
  border: none; /* Nessun bordo */
  border-radius: 0.25rem; /* Angoli molto arrotondati */
  padding: 12px 30px; /* Padding interno generoso */
  font-weight: 600; /* Testo in grassetto */
  font-size: 1rem; /* Dimensione del font */
  box-shadow: 0 4px 15px rgba(103, 138, 117, 0.3); /* Ombra verde sfumata */
  transition: all 0.3s ease; /* Transizione fluida per hover */
}

/* ========== HOVER PULSANTE CONFERMA ========== 
   Effetti quando si passa il mouse sopra il pulsante conferma
*/
.custom-swal-confirm:hover {
  background: linear-gradient(
    135deg,
    #5a7a68 0%,
    #4d6b5a 100%
  ); /* Verde più scuro */
  transform: translateY(-2px); /* Solleva il pulsante di 2px */
  box-shadow: 0 6px 20px rgba(103, 138, 117, 0.4); /* Ombra più prominente */
}

/* ========== PULSANTE ANNULLA ========== 
   Stile del pulsante secondario (Annulla, Chiudi)
   Usato per: azioni di annullamento o chiusura
   Colore: Grigio Bootstrap (#6c757d)
*/
.custom-swal-cancel {
  background: linear-gradient(
    135deg,
    #6c757d 0%,
    #5a6268 100%
  ); /* Gradiente grigio */
  border: none; /* Nessun bordo */
  border-radius: 0.25rem; /* Angoli molto arrotondati */
  padding: 12px 30px; /* Padding interno generoso */
  font-weight: 600; /* Testo in grassetto */
  font-size: 1rem; /* Dimensione del font */
  box-shadow: 0 4px 15px rgba(108, 117, 125, 0.3); /* Ombra grigia sfumata */
  transition: all 0.3s ease; /* Transizione fluida per hover */
}

/* ========== HOVER PULSANTE ANNULLA ========== 
   Effetti quando si passa il mouse sopra il pulsante annulla
*/
.custom-swal-cancel:hover {
  background: linear-gradient(
    135deg,
    #5a6268 0%,
    #495057 100%
  ); /* Grigio più scuro */
  transform: translateY(-2px); /* Solleva il pulsante di 2px */
  box-shadow: 0 6px 20px rgba(108, 117, 125, 0.4); /* Ombra più prominente */
}

/* ===========================================
   PERSONALIZZAZIONE ICONE SWEETALERT2
   =========================================== */

/* ========== ICONE WARNING (AVVISO) ========== 
   Personalizza l'icona gialla del punto esclamativo
   Usata per: conferme di eliminazione, avvisi generali
*/
.swal2-icon.swal2-warning {
  border-color: #ffc107; /* Bordo giallo Bootstrap */
  color: #856404; /* Colore del punto esclamativo */
}

.swal2-icon.swal2-warning .swal2-icon-content {
  color: #856404; /* Colore del simbolo "!" */
}

/* ========== PERSONALIZZAZIONE PUNTO ESCLAMATIVO ========== 
   Ridimensiona il simbolo "!" nelle icone warning
*/
.swal2-icon.swal2-warning .swal2-icon-content {
  font-size: 30px !important; /* Dimensione del punto esclamativo */
  font-weight: 600 !important; /* Grassetto per visibilità */
}

/* ========== ICONE INFO E QUESTION ========== 
   Personalizza le icone "i" (info) e "?" (question)
   Usate per: messaggi informativi, richieste di conferma
*/
.swal2-icon.swal2-info {
  border-width: 2px !important; /* Bordo più sottile */
  font-size: 20px !important; /* Dimensione del simbolo "i" */
}

.swal2-icon.swal2-question {
  border-width: 2px !important; /* Bordo più sottile */
  font-size: 20px !important; /* Dimensione del simbolo "?" */
}

/* ===========================================
   FINE SEZIONE SWEETALERT2
   =========================================== */


