/*******************************************************************************
 *                                                                             *
 *                        CENTROBIBLIOTECHE - 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 */
}

/* Skip link - accessibilità WCAG 2.4.1 */
.sr-only-focusable:focus {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 9999;
  display: block !important;
  padding: 0.75rem 1.25rem;
  background-color: #2d5095;
  color: #fff;
  font-weight: 700;
  font-size: 1rem;
  text-decoration: none;
  outline: none;
  border-radius: 0 0 4px 0;
}

/* 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: #fff;
}

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;
  color: #000;
}

.bg-grigio {
  background-color: #f9f9f9;
}

.bg-red {
  background-color: #E63329;
}

.bg-azzurro {
  background-color: #2d5095;
  color: #fff;
}

.bg-nero {
  background-color: #1F1D21;
  color: #fff;
}

.bg-verde {
  background-color: #0f5406;
  color: #fff;
}

.bg-blue {
  background-color: #007BFF;
  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.5rem 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;
}

/* Focus visibile solo con tastiera (WCAG 2.4.7) */
a:focus:not(:focus-visible) {
  outline: none;
}

a:focus-visible {
  outline: 2px solid #2d5095;
  outline-offset: 3px;
  border-radius: 2px;
}

.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 {
  background-color: #2d5095;
  color: #fff;
  border-color: #2d5095;
}

.btn-primary:visited,
.btn-primary:hover,
.btn-primary:active,
.btn-primary:focus {
  background-color: #213b6e;
  border-color: #1d3563;
  color: #fff;
}

.btn-primary:not(:disabled):not(.disabled).active,
.btn-primary:not(:disabled):not(.disabled):active,
.show>.btn-primary.dropdown-toggle {
  color: #fff;
  background-color: #213b6e;
  border-color: #1d3563;
}

.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: #e6e6e6;
  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;
}


.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: #fff;
}

.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: #2d5095;
  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);
}



/*-------------------------------
      TOP Navigazione secondaria
--------------------------------*/
.top-nav-secondaria {
  background-color: #263238;
  padding: 0.5rem 0;
}

.top-nav-secondaria .nav {
  align-items: center;
}

.top-nav-secondaria .nav-item {
  margin-left: 1.5rem;
}

.top-nav-secondaria .nav-link {
  color: #fff;
  font-size: 0.875rem;
  /*font-family: "Nixie One", system-ui;*/
  font-weight: 400;
  font-style: normal;
  text-transform: uppercase;
  padding: 0.5rem 0;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  transition: color 0.3s ease;
}

.top-nav-secondaria .impegnoSpesa {
  color: #000;
  /*font-family: "Roboto", sans-serif;*/
  font-size: 0.875rem;
  font-weight: 700;
}

.top-nav-secondaria .nav-link:hover {
  color: #2d5095;
}

.top-nav-secondaria .nav-link svg {
  width: 1.125rem;
  height: 1.125rem;
  fill: currentColor;
}

/*-------------------------
       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 {
  font-size: 1rem;
  /*font-family: "Nixie One", system-ui;*/
  font-synthesis: weight;
  /* prova bold sintetico */
  -webkit-text-stroke: 0.2px currentColor;
  /* Chrome/Safari */
  /* fallback leggero */
  font-style: normal;
}

#top-menu-mobile .active a {
  color: #2d5095 !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: .945rem;
  top: .365rem;
  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: 4.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' width='16' height='16' fill='%23000000' viewBox='0 0 16 16'%3e%3cpath fill-rule='evenodd' d='M12 8a.5.5 0 0 1-.5.5H5.707l2.147 2.146a.5.5 0 0 1-.708.708l-3-3a.5.5 0 0 1 0-.708l3-3a.5.5 0 1 1 .708.708L5.707 7.5H11.5a.5.5 0 0 1 .5.5'/%3e%3c/svg%3e");
  background-size: contain;
  background-repeat: no-repeat;

  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: transparent;


}

.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: #f9f9f9;
  ;
}

.ricerca-top .input-group {
  border: 1px solid #ced4da;
  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: #f9f9f9;
  border-top: 1px solid #ced4da;
  border-bottom: 1px solid #ced4da;
  /* border-bottom: none; */
  padding: .75rem 0; 
  /*margin-top: 1rem;*/
  margin-bottom: 1rem;
}

#breadcrumb .bi {
  vertical-align: text-top;
}

body.contatti #breadcrumb {
  margin-bottom: 0;
}

.breadcrumb {
  background-color: transparent;
  display: flex;
  align-items: center;
  margin-bottom: 0;
  padding: 0;

}

.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;
}

.breadcrumb a {
  color: #444 !important;
  text-decoration: none;
}


.breadcrumb a:hover,
.breadcrumb a:focus,
.breadcrumb a:active,
.breadcrumb a:visited {
  color: #333;

}



/* 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
-----------------------------*/


/* carosello-caption: sinistra, centrato verticalmente, font Nixie One */
.carosello-caption {
  position: absolute;
  top: 50%;
  left: 5%;
  transform: translateY(-50%);
  z-index: 10;
  max-width: 45%;
  text-align: left;
  /*font-family: "Roboto", sans-serif;*/
}

.carosello-caption h3 {
  font-size: 5rem;
  font-weight: 400;
  line-height: 1.2;
  color: #2d5095;
  -webkit-text-stroke: 1px #2d5095;
  margin-bottom: 0.6rem;
}

.carosello-caption p {
  font-size: 2.2rem;
  line-height: 1.5;
  color: #222222;
  margin-bottom: 0;
}

@media (max-width: 767.98px) {
  .carosello-caption {
    max-width: 80%;
  }

  .carosello-caption h3 {
    font-size: 2.5rem;
  }

  .carosello-caption p {
    font-size: 1.5rem;
  }
}


/*---#fine carousel testi sovraimpressione---*/

/*==============================================================================
    FORM CONTROLS E VALIDAZIONE
==============================================================================*/

/*---------------------------
      FORM CONTROLS
-----------------------------*/
.custom-select,
.form-control {
  border: 1px solid #ced4da;

}

/* 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;
}

/* Colore brand per tutte le checkbox native (accent-color) */
input[type="checkbox"],
input[type="radio"] {
  accent-color: #2d5095;
}

/* Bootstrap 4 custom checkbox: stato selezionato */
.custom-control-input:checked~.custom-control-label::before,
.custom-checkbox .custom-control-input:checked~.custom-control-label::before,
.custom-radio .custom-control-input:checked~.custom-control-label::before {
  background-color: #2d5095 !important;
  border-color: #2d5095 !important;
}

/* Bootstrap 4 custom checkbox: anello di focus */
.custom-control-input:focus~.custom-control-label::before,
.custom-checkbox .custom-control-input:focus~.custom-control-label::before {
  box-shadow: 0 0 0 0.2rem rgba(45, 80, 149, 0.25) !important;
}

/* Bootstrap 4 custom checkbox: bordo quando focused ma non ancora spuntato */
.custom-control-input:focus:not(:checked)~.custom-control-label::before,
.custom-checkbox .custom-control-input:focus:not(:checked)~.custom-control-label::before {
  border-color: #2d5095 !important;
}

/* Bootstrap 4 custom checkbox: stato indeterminato */
.custom-control-input:indeterminate~.custom-control-label::before,
.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before {
  background-color: #2d5095 !important;
  border-color: #2d5095 !important;
}

.btn-reset {
  padding: 0.875rem 0;
  font-size: 1rem;
  border: 1px solid transparent;
  margin-bottom: 1.25rem;
}

.ricerca-header .custom-select:focus {
  border: none !important;
  box-shadow: none !important;
  outline: none;
}

body:not(.using-mouse) .ricerca-header .custom-select:focus {
  border: none !important;
  box-shadow: none !important;
  outline: 2px solid #2d5095;
  outline-offset: 2px;
}

/* bordo quando la select è focalizzata: outline visibile solo da tastiera (Tab) */
.custom-select:focus,
.custom-select.open-select {
  border: 1px solid #ced4da;
  box-shadow: none;
  outline: none;
}

body:not(.using-mouse) .custom-select:focus {
  outline: 2px solid #2d5095;
  outline-offset: 2px;
}

/* Focus input: outline e box-shadow rimossi di default (rispecchia stile default Bootstrap) */
.form-control:focus {
  box-shadow: none;
  border-color: #ced4da;
  outline: none;
}

/* Focus input: outline visibile solo da tastiera (WCAG 2.4.7) — stessa logica dei custom-select */
body:not(.using-mouse) .form-control:focus {
  outline: 2px solid #2d5095;
  outline-offset: 2px;
}

/* Focus bottoni: visibile solo da tastiera (WCAG 2.4.7) */
.btn:focus:not(:focus-visible) {
  outline: none;
  box-shadow: none;
}

.btn:focus-visible {
  outline: 2px solid #2d5095;
  outline-offset: 3px;
  border-radius: 2px;
  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;
}

.buonosconto.float-label label {

  left: 45px;

}

.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 #ced4da;
}

.border-left-0 {
  border-left: 0;
}

/*==============================================================================
    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: #2d5095;
  color: #fff;
  border-color: #2d5095;
}

.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 !important;
  /* Verde chiaro per selezionate */
}

.admin-megamenu-BannerGiaInseriti {
  background-color: #fff3cd !important;
  /* Giallo chiaro per già inserite */
}

.admin-megamenu-ClassificaDaInserire {
  background-color: #d4edda !important;
  /* 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-recensioni .recensioni-utente {
  background: #f8f9fa;
}

.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: #fff;
  background-color: #2d5095;
  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: #fff;
  border: 1px solid #ced4da;
  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: #ced4da;
}

.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: #ced4da;
}



/* 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;
}

/*==============================================================================
    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-banner .card {
  border-radius: 0 !important;
  padding-top: 2rem;
  padding-bottom: 2rem;
}

/* Hover sul banner testuale: solo il testo cresce */
.home-banner .banner-title {
  transition: transform 0.35s cubic-bezier(0.34, 1.56, 0.64, 1);
  display: inline-block;
  transform-origin: center center;
  /*font-family: "Nixie One", system-ui;*/
  margin: 0;
  font-size: 2rem;
  -webkit-text-stroke: 1px #fff;
}



.home-banner .swiper-slide:hover .banner-title {
  transform: scale(1.2);
}


.news-box 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: left;
  background-color: transparent;
  color: #2d5095;
  padding: 0.5rem 0.1875rem;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
}

.news-box figcaption h3 {
  font-size: 1rem;
  line-height: 1.2;
  /*font-family: "Nixie One", system-ui;*/
  margin: 0;
  -webkit-text-stroke: 1px #2d5095;
}



.news-box figcaption p {
  font-size: 0.875rem;
  line-height: 1.2;
  font-weight: 400;
  margin: 0;
  color: #343a40;
  font-style: italic;
  margin-top: 0.25rem;

}

.news-box .librerie-badge span {
  padding: .25rem .5rem;
  font-size: .75rem;
}

/* .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;
} */

.news-box {
  overflow: hidden;
  padding: .75rem;
  background-color: #e6e6e6;

}

.news-box .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);
}

.news-box .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;
}*/



/*==============================================================================
    NEWS ED EVENTI
==============================================================================*/

/*--------------------------
      PAGINA EVENTI
--------------------------*/
/* .news-box .badge {
  font-size: 1rem;
} */

/* CSS Variabili */
:root {
  --bg: #f7f7f8;
  --card: #ffffff;
  --accent:
    /*#474747*/
    #000;
  --muted: #6b7280;
  --gap: 1rem;
  --etichetta: green;
}

.news-data {
  display: flex;
  align-items: center;
  font-size: 1.5rem;
  color: #333;
  /*font-family: "Nixie One", system-ui;*/
  font-weight: bold;
  /* Linea sottile per separare */
}

.news-data .giorno {
  /* Colore blu per evidenziare il giorno */
  margin-right: 0.25rem;
}

.news-data .anno {
  margin-left: 0.25rem;
}

.news-data .orario {
  /* Verde per l'orario */
  padding: 0.2rem 0.5rem;
}

/* Aggiungi un'icona calendario prima della data (opzionale, se vuoi)*/
	.news-data .giorno::before {
		content: "";
		display: inline-block;
		width: 1.5rem;
		height: 1.5rem;
		background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor"><path d="M3.5 0a.5.5 0 0 1 .5.5V1h8V.5a.5.5 0 0 1 1 0V1h1a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V3a2 2 0 0 1 2-2h1V.5a.5.5 0 0 1 .5-.5zM1 4v10a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V4H1z"/></svg>') no-repeat center;
		margin-right: 0.5rem;
		opacity: 0.7; 
	}

/* Aggiungi un'icona orologio prima dell'orario (opzionale) */
.news-data .orario::before {
  content: "";
  display: inline-block;
  width: 1.25rem;
  height: 1.2rem;
  background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor"><path d="M8 3.5a.5.5 0 0 0-1 0V9a.5.5 0 0 0 .252.434l3.5 2a.5.5 0 0 0 .496-.868L8 8.71V3.5z"/><path d="M8 16A8 8 0 1 0 8 0a8 8 0 0 0 0 16zm7-8A7 7 0 1 1 1 8a7 7 0 0 1 14 0z"/></svg>') no-repeat center;
  margin-right: 0.25rem;
  vertical-align: middle;
}


.news-titolo {
  font-size: 2rem;
  line-height: 1.3;
  margin-bottom: 0.5rem;
  color: #333;
  /*font-family: "Nixie One", system-ui;*/
  -webkit-text-stroke: 1px #333;
}

/* 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(1, 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(2, 1fr);
  }
}

@media (min-width: 768px) {
  .news #data tbody {
    grid-template-columns: repeat(3, 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(4, 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 (pagina 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;
}


.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;
  }
}


.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: #000 !important;
}

.news .news-date-badge .news-mese {
  font-size: 0.75rem;
  color: #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;
}

/* Nasconde l'icona CSS predefinita di Swiper quando usiamo SVG inline */
.carosello.swiper .swiper-button-prev::after,
.carosello.swiper .swiper-button-next::after {
  display: none;
}

.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;
  box-shadow: none;
}

#ordine-conferma .card .btn:focus:not(:focus-visible) {
  outline: none;
  box-shadow: none;
}

#ordine-conferma .card .btn:focus-visible {
  outline: 2px solid #2d5095;
  outline-offset: 3px;
}

#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: #2d5095;
  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;
}

/* Modal piccole (es. modifica etichetta): non a schermo intero su mobile */
#modal-etichetta-modifica .modal-dialog {
  height: 100vh;
  max-height: 100vh;
  margin: 0 auto;
}

#modal-etichetta-modifica .modal-content {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  border-radius: 0;
  background-color: #fff;
}

#modal-etichetta-modifica .modal-body {
  overflow-y: auto;
  flex: 0 0 auto;
}

/*==============================================================================
    CARRELLO
==============================================================================*/

/*------------------------
      CARRELLO  
-------------------------*/
.modal-carrello .prodotto-scheda {
  border-bottom: 1px solid #dee2e6;
  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: #e6e6e6;

  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:not(:focus-visible) {
  text-decoration: none;
  outline: none;
  box-shadow: none;
}

#prodotto-scheda .card .btn:focus-visible {
  outline: 2px solid #2d5095;
  outline-offset: 3px;
}

#prodotto-scheda .card {
  border-top: none;
  border-bottom: 1px solid #dee2e6;
  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: #fff;
  border-bottom: none;
  font-weight: 600;
}

#prodotto-scheda .card:first-child {
  border-top: 1px solid #dee2e6;
}

#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: #fff;
}

#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: #2d5095;
  text-decoration: none;
  color: #000;
  transform: translateX(4px);
}

.classificazione-link:hover::before {
  color: #2d5095;
}



/*--- 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 #dee2e6;
  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 #dee2e6;
}

.ricerca-header #page-changer select {
  border: none;
  background-color: inherit;

}

.ricerca-risultato .prodotto-scheda {
  border-bottom: 1px solid #dee2e6;
  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: #2d5095;
  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 #dee2e6;
  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: #ced4da;
  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:not(:focus-visible) {
  text-decoration: none;
  outline: none;
  box-shadow: none;
}

.filtri-sidebar.accordion .btn:focus-visible {
  outline: 2px solid #2d5095;
  outline-offset: 3px;
}

.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 #dee2e6;
  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: #263238;
  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-social .bi {
  width: 2rem;
  height: 2rem;
}

/* per titoli con border bottom
footer h3 {
  color: #fff;
  font-size: 1.25rem;
  font-weight: 600;
  margin-bottom: 40px;
  position: relative;
}

footer h3::before {
  content: "";
  position: absolute;
  left: 0;
  bottom: -15px;
  height: 2px;
  width: 100%;
  background: #eff1f6;
}*/

footer h3 {
  /*font-family: "Roboto", sans-serif;*/
  font-size: 1.75rem;
}

footer a,
footer a:visited,
footer a:hover,
footer a:active,
footer a:focus {
  color:
    /*#474747*/
    #fff;
  text-decoration: none;
  background-color: transparent;
}

footer .table {

  color: #fff;
}

.footer-copy {
  border-top: 1px solid #2b2b2b;

}

.footer-copy p {
  font-size: 1rem;
}

/* 
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 */
  }

  .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) {

  .home-banner .card {
    padding-top: 3rem;
    padding-bottom: 3rem;
  }


  .breadcrumb-elemento {
    padding: 0 .375rem 0 .5rem;
    /* border-left: 1px solid #000;*/
    font-size: 1rem;
  }


  .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: #000 !important;
  }

  .news .news-date-badge .news-mese {
    font-size: 0.85rem;
    color:#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) {

  body.homepage #top-navigazione {
    margin-bottom: 2rem;
  }

#breadcrumb {
 padding: .75rem 0; 
}
  #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: #fff;
  }

  #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: transparent;

  }

  .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: #2d5095 !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: #2d5095 !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: #2d5095 !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:focus:not(:focus-visible) {
  outline: none !important;
}

.swal2-popup:focus-visible {
  outline: 2px solid #2d5095 !important;
  outline-offset: 3px;
}

/* ========== 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
   =========================================== */

/* ===========================================
   CAROSELLO — PULSANTE PAUSA/RIPRODUCI
   WCAG 2.2.2: controllo per contenuti in movimento
   =========================================== */
.home-carosello {
  position: relative;
}

.carosello-pause-btn {
  position: absolute;
  bottom: 0.5rem;
  right: 0.5rem;
  z-index: 20;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  height: 1.5rem;
  padding: 0;
  background: rgba(0, 0, 0, 0.25);
  color: rgba(255, 255, 255, 0.6);
  border: 1px solid rgba(255, 255, 255, 0.3);
  border-radius: 50%;
  cursor: pointer;
  opacity: 0.5;
  transition: opacity 0.2s ease, background 0.2s ease;
}

.carosello-pause-btn:hover,
.carosello-pause-btn:focus-visible {
  opacity: 1;
  background: rgba(0, 0, 0, 0.55);
  border-color: rgba(255, 255, 255, 0.7);
  outline: 2px solid var(--color-primary, #2d5095);
  outline-offset: 3px;
}

.carosello-pause-btn:focus:not(:focus-visible) {
  outline: none;
}

/* ===========================================
   FINE CAROSELLO PAUSA
   =========================================== */

/* Mobile menu: lista piatta senza freccia (t-macrosettore, t-settore, t-macrosettoreAll) */
.mm-spn .mobile-flat-list>li::before {
  display: none !important;
}

.mm-spn .mobile-flat-list>li>a {
  width: 100% !important;
}

.mm-spn .mobile-flat-list>li>a::after {
  display: none !important;
}

.mm-spn .mobile-flat-list>li>button {
  display: none !important;
}