@import url("hotspots.css");

:root {
  --primary: 54, 58, 58;
  --secondary: 227, 24, 25;
}

#module-iqitelementor-Preview .d-none {
  display: block !important;
}

.text-primary-custom {
  color: rgb(var(--primary)) !important;
}

.text-secondary-custom,
.text-secondary-link,
.text-secondary-link a {
  color: rgb(var(--secondary)) !important;
}

.bg-primary-custom {
  background-color: rgb(var(--primary)) !important;
}

.bg-secondary-custom {
  background-color: rgb(var(--secondary)) !important;
}

.w-8 {
  width: 2rem;
}

.h-8 {
  height: 2rem;
}

/* menu */

.header-top {
  padding-bottom: 0px !important;
}

#cbp-hrmenu>ul {
  display: flex;
  justify-content: center;
  padding-bottom: 8px;
}

#cbp-hrmenu>ul>li {
  float: none;
}

#desktop-header {
  box-shadow: 0px 3px 5px rgba(104, 104, 104, 0.15);
  background: #ffffff !important;
}

#mobile-header #mobile-header-sticky {
  background: #ffffff;
  padding-bottom: 15px;
}

.cbp-hrmenu .cbp-menu-column {
  margin-top: 10px;
}

.cbp-hropen .cbp-hrsub {
  left: 0;
  border-top: 3px solid rgb(var(--secondary));
}

.cbp-hrmenu .cbp-hrsub-inner .iqitmegamenu-submenu-container>.row:last-child {
  margin-bottom: 0px;
}

/* ---- */

/* Overlay scuro su main#main-page-content quando megamenu aperto */
body:has(.cbp-hrmenu-tab.cbp-hropen.cbp-has-submeu) main#main-page-content {
  position: relative;
  min-height: 100vh;
}

body:has(.cbp-hrmenu-tab.cbp-hropen.cbp-has-submeu):not(:has(#_desktop_blockcart-content.show)):not(:has(.header-btn.show)) main#main-page-content::after {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, .5);
  pointer-events: none;
  z-index: 99;
}

.button-p-0 a.elementor-button-link {
  padding: 0 !important;
}

.button-p-0 a.elementor-button-link .elementor-align-icon-right.elementor-button-icon i {
  margin-right: 0;
}

#index #wrapper,
body.page-cms #wrapper {
  padding: 0;
}

#rev_slider_1_1_forcefullwidth,
#rev_slider_1_1_wrapper,
#rev_slider_1_1 {
  height: calc(100vh - 150px) !important;
}


#_desktop_blockcart-content.show::before,
.header-btn.show+.dropdown-user-show::before {
  content: "";
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background-color: rgba(0, 0, 0, 0.5);
  z-index: 1;
  pointer-events: none;
}

body:has(#_desktop_blockcart-content.show),
body:has(.header-btn.show) {
  overflow: hidden;
}

body:has(#_desktop_blockcart-content.show) .cbp-hrsub,
body:has(.header-btn.show) .cbp-hrsub {
  display: none !important;
}

.dropdown-menu.dropdown-menu-right.show {
  inset: 0 0 auto auto !important;
}

.product-list .elementor-element-populated .elementor-widget-wrap {
  box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.15);
}

/* Category */

#category #products .alert.alert-warning {
  display: none;
}
.products-selection {
    border: none;
}
.products-selection .view-switcher,
.products-selection .products-nb-per-page {
    display: none;
}

/* FAQ */
.elementor-widget-toggle.faq .elementor-toggle .elementor-toggle-title {
  position: relative;
  padding: 30px 15px 30px 0;
  border-width: 0 !important;
  border-top: none;
  border-left: none;
  border-right: none;
  border-bottom: none;
  display: flex;
  align-items: center;
}

.elementor-widget-toggle.faq .elementor-toggle .elementor-toggle-title:not(:first-child) {
  border-top: 1px solid #d4d4d4 !important;
}

.elementor-widget-toggle.faq .elementor-toggle .elementor-toggle-title .elementor-toggle-icon {
  display: inline-block;
  width: 1em;
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
}

.elementor-widget-toggle.faq .elementor-toggle .elementor-toggle-content {
  border-width: 0 !important
}

.elementor-widget-toggle.faq .elementor-toggle .elementor-toggle-title .elementor-toggle-icon .fa::before {
  content: "\f078";
}

.elementor-widget-toggle.faq .elementor-toggle .elementor-toggle-title.active .elementor-toggle-icon .fa::before {
  content: "\f077";
}

/* custom widget */
.icon-text .elementor-icon-box-wrapper {
  display: flex;
}

.icon-text .elementor-icon-box-title {
  display: none;
}

.icon-text .elementor-icon-box-wrapper .elementor-icon-box-icon {
  margin: 0 10px 0 0 !important;
}

.icon-text .elementor-icon-box-wrapper .elementor-icon-box-icon {
  flex: 0 0 auto;
  width: auto;
}

.tooltip.show {
  opacity: 1;
}

.tooltip-inner {
  opacity: 1;
  font-size: 16px;
  font-weight: 500;
  border-radius: 6px;
  box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.3);
  padding: 5px 10px;
}


.page-authentication #content {
  border: none;
  padding: 0;
}

/* ─── Breadcrumb Chevron ─────────────────────────────── */
.breadcrumb--chevron {
  background: transparent;
  padding: 8px 0;
  border: 0;
  margin: 0;
}

/* Kill slash iniettata dal tema */
.bc-chevron-item::after,
.bc-chevron-item::before {
  content: none !important;
}

.bc-row {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
}

.bc-after {
  align-self: flex-end;
}

/* Tasto indietro */
.bc-back-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: transparent;
  border: 1px solid #d0d0d0;
  color: #444;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .1em;
  cursor: pointer;
  padding: 7px 12px;
  white-space: nowrap;
  transition: border-color .15s ease, color .15s ease, background .15s ease;
  flex-shrink: 0;
}

.bc-back-btn:hover {
  border-color: #c0392b;
  color: #c0392b;
  background: transparent;
}

.bc-back-btn i {
  font-size: 9px;
}

/* Lista chevron */
.bc-chevron-list {
  display: flex;
  align-items: stretch;
  list-style: none;
  margin: 0;
  padding: 0;
}

.bc-chevron-item {
  display: flex;
  align-items: stretch;
}

.bc-chevron-item:not(:first-child) {
  margin-left: -8px;
}

.bc-chevron-link {
  display: flex;
  align-items: center;
  padding: 5px 18px 5px 12px;
  background: #ebebeb;
  color: #555;
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .06em;
  text-decoration: none;
  white-space: nowrap;
  clip-path: polygon(0 0, calc(100% - 12px) 0, 100% 50%, calc(100% - 12px) 100%, 0 100%, 12px 50%);
  transition: background .15s ease, color .15s ease;
}

.bc-chevron-item:first-child .bc-chevron-link {
  clip-path: polygon(0 0, calc(100% - 12px) 0, 100% 50%, calc(100% - 12px) 100%, 0 100%);
  padding-left: 14px;
}

.bc-chevron-link:hover {
  background: #dedede;
  color: #111;
  text-decoration: none;
}

.bc-chevron-link--current {
  background: #c0392b;
  color: #fff;
  cursor: default;
  pointer-events: none;
}

.bc-chevron-item:not(:first-child) span {
  padding-left: 10px;
}

.bc-chevron-item--current span {
  padding-left: 20px !important;
  font-weight: 800;
}

@media (max-width: 767px) {
  .bc-row {
    gap: 6px;
  }

  .bc-chevron-list {
    flex-wrap: wrap;
    gap: 4px;
  }

  .bc-chevron-item:not(:first-child) {
    margin-left: 0;
  }

  .bc-chevron-link,
  .bc-chevron-item:first-child .bc-chevron-link {
    clip-path: none;
    padding: 6px 10px;
    font-size: 11px;
  }

  .bc-chevron-link--current {
    background: #c0392b;
    color: #fff;
  }

  #footer .block-iqithtmlandbanners-html {
    flex: 0 0 auto;
    width: 100%;
  }

  #footer .block-iqithtmlandbanners-html img {
    width: 200px;
    margin: 0 auto;
    display: block;
  }
}

input[name="product"][readonly] {
  pointer-events: none;
  background-color: #e9ecef;
}

.wpcfu h3 {
  text-transform: unset;
}

.ets_cfu_input_submit.ets_cfu_input {
  text-align: right;
}

.ets_cfu-textarea {
  height: 120px !important;
}

.group-span-filestyle label {
  margin: 0 0 0px 0 !important;
}

.group-span-filestyle span {
  color: #fff;
  font-weight: bold;
  line-height: 40px;
  padding: 0 10px;
}

/* Prodotto */
.product-reference span {
  font-weight: bold;
}

/* Checkout */
/*
#cart-subtotal-products-blockcart .value
#cart-subtotal-products .value,
body#checkout #cart-subtotal-products,
.cart-summary-subtotals-container,
#order-items table tbody tr:first-child,
#checkout-payment-step #order-items table tbody tr:nth-child(2),
*/

button[name="confirmDeliveryOption"],
#cart-subtotal-shipping,
#cart-subtotal-shipping-blockcart,
.delivery-options,
#checkout-payment-step .payment-options,
#checkout-payment-step #order-items table tbody tr:nth-child(3),
#checkout-payment-step #order-summary-content .row:nth-child(4),
.wk_field_opt_container>.wk_field_opt_group_label,
.wk_field_opt_group_mandate,
#blockcart-content .cart-totals .clearfix:nth-child(2),
.cart-summary-totals .cart-total,
.cart-summary-totals .cart-total+.cart-summary-line,
#order-items table .total-value,
#order-items table .sub.taxes,
.cart-voucher-area,
#cart-subtotal-discount
 {
  display: none !important;
}

#blockcart-content .cart-totals .label,
#blockcart-content .cart-totals .value,
.cart-summary-totals .cart-summary-line .label,
.cart-summary-totals .cart-summary-line .value,
#checkout-payment-step #order-items table tbody .text-uppercase,
#checkout-payment-step #order-items table tbody tr:nth-child(4) td {
  font-weight: bold;
}

/* #order-confirmation #order-items table tbody tr:not(:last-child), */
#order-confirmation .order-confirmation-details ul li:not(:first-child),
#order-confirmation .wk_additional_information_title .material-icons,
#order-confirmation .wk_custom_display_container table thead,
#order-confirmation .wk_custom_display_container table tbody>tr:nth-child(1)>td:nth-child(3),
#order-confirmation #content-hook_payment_return {
  display: none;
}


button.wk_save_checkout_field {
  width: 100%;
  padding: 1rem 1.5rem;
  font-size: 16px;
}

.wk-custom-group-div .wk-product-custom-fields-item,
.wk-custom-group-div-action .wk_field_opt_group_label {
  padding: 0;
}

.wk-custom-group-div {
  border: 0;
}

#hook-display-before-carrier {
  margin-top: 15px;
}

/* Checkout step 3: lista matricole */
.matricola-wrapper {
  margin-bottom: 8px;
}

.matricola-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 8px;
}

.matricola-row {
  display: flex;
  align-items: center;
  padding: 6px 12px;
  border: 1px solid #dee2e6;
  border-radius: 4px;
  gap: 8px;
}

.matricola-row .form-control {
  border: none;
  box-shadow: none;
  padding: 0;
  height: auto;
}

.matricola-row .form-control:focus {
  outline: none;
  box-shadow: none;
}

.matricola-row__del {
  background: none;
  border: none;
  color: #dc3545;
  padding: 0 4px;
  cursor: pointer;
  font-size: 1rem;
  flex-shrink: 0;
}

.matricola-row__del:hover {
  color: #a71d2a;
}

.matricola-footer {
  text-align: right;
}

@media (min-width: 992px) {
  .elementor-widget.faq .elementor-toggle-title {
    scroll-margin-top: 135px;
  }
}

/* Fix altezza sticky-desktop-wrapper */
.sticky-desktop-wrapper {
  height: 138px !important;
}

/* Selettore lingua */
.bv-lang-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  color: #363a3a;
  font-size: 0.8125rem;
  font-weight: 500;
  text-decoration: none !important;
  padding: 0.3rem 0.5rem;
  border-radius: 4px;
  transition: color 0.2s ease, background 0.2s ease;
}

.bv-lang-btn:hover {
  color: #000;
  background: rgba(0, 0, 0, 0.05);
}

.bv-lang-btn .fa-earth-europe {
  font-size: 1rem;
  opacity: 0.7;
}

.bv-lang-btn::after {
  display: none;
}

.bv-lang-btn .bv-lang-name {
  letter-spacing: 0.02em;
}

.bv-lang-selector .dropdown-menu {
  min-width: 130px;
  border-radius: 6px;
  border: 1px solid rgba(0, 0, 0, 0.1);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
  padding: 0.25rem 0;
}

.bv-lang-selector .dropdown-item {
  font-size: 0.8125rem;
  display: flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.45rem 1rem;
  color: #363a3a !important;
  border-bottom: none !important;
}

.bv-lang-selector .dropdown-item.active,
.bv-lang-selector .dropdown-item:hover {
  background: rgba(0, 0, 0, 0.04) !important;
  color: #000 !important;
}

.bv-lang-selector .dropdown-item .fa-earth-europe {
  opacity: 0.5;
  font-size: 0.875rem;
}

/* Checkout step 3: nasconde il testo "Si" accanto al checkbox "Materiale per scorta" */
.wk-product-custom-fields-item:has(#wk_custom_checkbox_1_4_4_Si) .col-md-9>label {
  font-size: 0;
}

/* Permette al wrapper .qty di crescere sulla pagina prodotto */
.product-add-to-cart .qty {
  width: auto;
  flex: 0 0 auto;
}

/* Permette al wrapper .qty di crescere nel carrello */
.product-quantity .qty {
  width: 99px;
  height: 100%;
}

/* Permette al touchspin di non essere clippato nel carrello e blockcart */
.product-line-grid .col.col-auto.col-md,
.cart-products .col.ps-0 {
  width: auto;
  flex: 0 0 auto;
}
.cart-item .bootstrap-touchspin,
.cart-products .bootstrap-touchspin {
  max-width: none;
  margin: 0 auto;
  min-height: 40px;
  width: auto !important;
}

/* Quantità + bottone sulla stessa riga nella lista prodotti e pagina prodotto */
.product-miniature-list .input-group-add-cart,
.product-add-cart .input-group-add-cart {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: nowrap;
}
.product-miniature-list .add-to-cart,
.product-add-cart .add-to-cart {
  white-space: nowrap;
  flex-shrink: 0;
}

/* ── Touchspin orizzontale [ — N + ] ──
   Contesti: lista prodotti, pagina prodotto, carrello, blockcart */
.product-miniature-list .bootstrap-touchspin,
.product-add-cart .bootstrap-touchspin,
.product-add-to-cart .bootstrap-touchspin,
.product-line-grid .bootstrap-touchspin,
.cart-products .bootstrap-touchspin {
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: stretch;
  border: 1px solid #ccc;
  border-radius: 4px;
  overflow: hidden;
  width: 100px;
  flex-shrink: 0;
  margin-bottom: 0 !important;
}
/* Appiattisce il contenitore verticale per riordinamento */
.product-miniature-list .input-group-btn-vertical,
.product-add-cart .input-group-btn-vertical,
.product-add-to-cart .input-group-btn-vertical,
.product-line-grid .input-group-btn-vertical,
.cart-products .input-group-btn-vertical {
  display: contents;
}
/* — a sinistra */
.product-miniature-list .bootstrap-touchspin-down,
.product-add-cart .bootstrap-touchspin-down,
.product-add-to-cart .bootstrap-touchspin-down,
.product-line-grid .bootstrap-touchspin-down,
.cart-products .bootstrap-touchspin-down {
  order: 0;
  flex: 0 0 auto;
  align-self: stretch;
  display: flex;
  align-items: center;
  background: none;
  border: none;
  border-right: 1px solid #ccc;
  padding: 4px 10px;
  font-size: 1rem;
  cursor: pointer;
  width: auto !important;
  height: auto !important;
}
/* input al centro — classe diversa per contesto */
.product-miniature-list .input-qty,
.product-add-cart .input-qty,
.product-add-to-cart #quantity_wanted,
.product-line-grid .js-cart-line-product-quantity,
.cart-products .js-cart-line-product-quantity {
  display: block !important;
  order: 1;
  flex: 0 0 40px;
  width: 40px !important;
  border: none !important;
  border-radius: 0 !important;
  text-align: center;
  padding: 4px 2px;
  box-shadow: none !important;
  -moz-appearance: textfield;
}
.product-miniature-list .input-qty::-webkit-outer-spin-button,
.product-miniature-list .input-qty::-webkit-inner-spin-button,
.product-add-cart .input-qty::-webkit-outer-spin-button,
.product-add-cart .input-qty::-webkit-inner-spin-button,
.product-add-to-cart #quantity_wanted::-webkit-outer-spin-button,
.product-add-to-cart #quantity_wanted::-webkit-inner-spin-button,
.product-line-grid .js-cart-line-product-quantity::-webkit-outer-spin-button,
.product-line-grid .js-cart-line-product-quantity::-webkit-inner-spin-button,
.cart-products .js-cart-line-product-quantity::-webkit-outer-spin-button,
.cart-products .js-cart-line-product-quantity::-webkit-inner-spin-button {
  -webkit-appearance: none;
}
/* + a destra */
.product-miniature-list .bootstrap-touchspin-up,
.product-add-cart .bootstrap-touchspin-up,
.product-add-to-cart .bootstrap-touchspin-up,
.product-line-grid .bootstrap-touchspin-up,
.cart-products .bootstrap-touchspin-up {
  order: 2;
  flex: 0 0 auto;
  align-self: stretch;
  display: flex;
  align-items: center;
  background: none;
  border: none;
  border-left: 1px solid #ccc;
  padding: 4px 10px;
  font-size: 1rem;
  cursor: pointer;
  width: auto !important;
  height: auto !important;
}
/* Nascondi icone angolo, mostra — e + */
.product-miniature-list .bootstrap-touchspin-down i,
.product-miniature-list .bootstrap-touchspin-up i,
.product-add-cart .bootstrap-touchspin-down i,
.product-add-cart .bootstrap-touchspin-up i,
.product-add-to-cart .bootstrap-touchspin-down i,
.product-add-to-cart .bootstrap-touchspin-up i,
.product-line-grid .bootstrap-touchspin-down i,
.product-line-grid .bootstrap-touchspin-up i,
.cart-products .bootstrap-touchspin-down i,
.cart-products .bootstrap-touchspin-up i {
  display: none;
}
.product-miniature-list .bootstrap-touchspin-down::after,
.product-add-cart .bootstrap-touchspin-down::after,
.product-add-to-cart .bootstrap-touchspin-down::after,
.product-line-grid .bootstrap-touchspin-down::after,
.cart-products .bootstrap-touchspin-down::after {
  content: '−';
}
.product-miniature-list .bootstrap-touchspin-up::after,
.product-add-cart .bootstrap-touchspin-up::after,
.product-add-to-cart .bootstrap-touchspin-up::after,
.product-line-grid .bootstrap-touchspin-up::after,
.cart-products .bootstrap-touchspin-up::after {
  content: '+';
}

.input-qty[name="qty"] {
  pointer-events: none;
  background: #f9f9f9;
}
/* Icone span nei toggle Elementor */
.icon-service_manual,
.icon-manuale_uso_manutenzione,
.icon-listino_ricambi,
.icon-video_formazione {
  display: inline-block;
  width: 40px;
  height: 40px;
  margin-right: 8px;
  vertical-align: middle;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}
.icon-service_manual {
  background-image: url('../../../../img/cms/icone/service_manual.svg');
}
.icon-manuale_uso_manutenzione {
  background-image: url('../../../../img/cms/icone/manuale_uso_manutenzione.svg');
}
.icon-listino_ricambi {
  background-image: url('../../../../img/cms/icone/listino_ricambi.svg');
}
.icon-video_formazione {
  background-image: url('../../../../img/cms/icone/video_formazione.svg');
}

/* Toggle Elementor senza freccia */
.no-arrow .elementor-toggle-title .elementor-toggle-icon {
  display: none;
}

.no-arrow .elementor-toggle .elementor-toggle-content {
  padding: 0 63px 15px;
}

/* Nasconde la descrizione del tipo file negli allegati */
.attachment .file_type_des {
  display: none;
}

/* Nasconde i prezzi per i gruppi clienti senza visibilità prezzi (es. gruppo
   "Catalogo") nei punti dove i moduli di terze parti non controllano
   product.show_price: dropdown di ricerca live (iqitsearch) e tooltip degli
   hotspot (iqitelementor). La classe .pblg-hide-prices viene impostata su
   <html> da custom.js in base a prestashop.configuration.show_prices. */
.pblg-hide-prices .autocomplete-suggestion .product-price,
.pblg-hide-prices .product-price-hotspot {
  display: none !important;
}

/* ==========================================================================
   Stile moderno per il banner cookie del modulo gdprpro (GDPR Pro).
   Sposta il banner in basso a sinistra come piccola card compatta; quando
   viene aperto ("Ulteriori informazioni") si espande in un pannello
   centrato con le categorie di cookie. Vedi anche custom.js per il
   toggle delle classi "open"/"gdpr-modal" in base allo stato del modulo.
   ========================================================================== */
#footer a.show-gdpr-modal {
  padding: 0px 0px 0px 12px;
}
#footer a:hover.show-gdpr-modal {
  color: #e31819;
}

#footer .show-gdpr-modal {
    background-color: transparent;
    border: 0;
    color: inherit !important;
    margin: 0;
}

#footer .show-gdpr-modal:hover {
    color: inherit;
}

.gdprModal .gdpr-consent-tabs-content {
    height: auto !important;
    max-height: calc(100vh - 256px) !important;
    min-height: 90px;
    overflow-y: auto;
}

.gdpr-consent-tabs-content li {
    height: 100% !important;
    max-height: 100% !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
}

body.gdpr-modal {
    overflow: hidden !important;
}

body.gdpr-modal::after {
    content: "";
    height: 100%;
    width: 100%;
    position: fixed;
    top: 0;
    background-color: rgba(0, 0, 0, 0.5);
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 999;
}

.gdprModal:not(.open) .gdprModal__placeholder {
    width: 400px;
    margin-left: 30px !important;
    margin-bottom: 30px !important;
    border-radius: 10px;
    box-shadow: rgba(0, 0, 0, 0.3) 0px 0px 10px 0px !important;
    transition: width .2s ease;
}

.gdprModal .gdpr-consent-tabs {
    border-radius: 10px;
}

.gdprModal:not(.open) .h3_popuptitle {
    text-align: center;
    padding: 15px 0;
}

.gdprModal:not(.open) .gdpr-consent-tabs-v2 .div_control_your_privacy {
    display: inline-block;
    width: 100%;
    text-align: justify;
    margin-bottom: 20px !important;
}

.gdprModal .gdpr-consent-tabs .div_accept_moreinfo button#accept-all-gdpr,
.gdprModal #reject-all-gdpr {
    margin-left: 0 !important;
}

.gdprModal:not(.open) #reject-all-gdpr {
    display: none !important;
}

.gdprModal:not(.open) .span_moreinfo::after {
    background-image: none;
    display: none;
}

.gdprModal .gdpr-consent-tabs .div_accept_moreinfo .span_moreinfo {
    border: 2px solid #df0000;
    color: #df0000 !important;
    padding: 14px 0;
    border-radius: 25px;
    width: 270px;
    font-weight: bold;
}

.gdprModal .gdpr-consent-tabs .div_accept_moreinfo .span_moreinfo.open {
    display: none !important;
}

/* display:flex + align-items/justify-items: center serve a centrare
   davvero il testo nel bottone. Da soli "text-align:center" e "height"
   non bastano: questi <button> avevano line-height minore dell'altezza
   fissata, quindi il testo restava appiccicato in alto. */
.gdprModal .gdpr-consent-tabs .div_accept_moreinfo #accept-all-gdpr {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: normal;
    border: 2px solid #df0000;
    background-color: #df0000 !important;
    border-radius: 25px;
    height: 52px;
    width: 270px;
    font-weight: bold;
    transition: background-color .15s ease, color .15s ease;
}

.gdprModal .gdpr-consent-tabs .div_accept_moreinfo #accept-all-gdpr:hover {
    background-color: #b50000 !important;
    border-color: #b50000;
}

.gdprModal .gdpr-consent-tabs .div_accept_moreinfo #reject-all-gdpr {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: normal;
    border: 2px solid #df0000;
    color: #df0000 !important;
    border-radius: 25px;
    font-weight: 700;
    background: #fff !important;
    height: 52px;
    width: 270px;
    transition: background-color .15s ease, color .15s ease;
}

.gdprModal .gdpr-consent-tabs .div_accept_moreinfo #reject-all-gdpr:hover {
    background: #fdeaea !important;
}

.gdpr-consent-tabs-v2 #close-gdpr-consent {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: normal;
    margin-left: 20px;
    border: 2px solid #df0000;
    color: #df0000 !important;
    border-radius: 25px;
    width: auto;
    font-weight: 700;
    background: #fff !important;
    height: 40px;
    margin-top: -11px;
    transition: background-color .15s ease;
}

.gdpr-consent-tabs-v2 #close-gdpr-consent:hover {
    background: #fdeaea !important;
}

.gdprModal .gdpr-consent-tabs-v2 .div_accept_moreinfo {
    display: flex;
    width: 100%;
    flex-direction: column;
    justify-content: center;
    text-align: center;
    align-items: center;
}

@media (max-width: 450px) {
    .gdprModal:not(.open) .gdprModal__placeholder {
        width: 300px;
        margin-left: 10px !important;
        margin-bottom: 10px !important;
        border-radius: 10px;
        box-shadow: rgba(0, 0, 0, 0.3) 0px 0px 10px 0px !important;
        transition: width .2s ease;
    }

    .div_top_buttons {
        padding: 0 15px;
    }

    .gdprModal.open .gdpr-consent-tabs-content {
        padding: 0 15px;
    }

    .gdprModal.open .gdpr-consent-tabs-v2 {
        padding: 12px 0px;
    }
}

@media (max-width: 630px) {
    #gdprModal.gdprModal.open .gdprModal__placeholder {
        width: calc(100vw - 30px) !important;
        bottom: 10px !important;
    }
}

@media (max-width: 767px) {
    /* Il resto della regola duplicava esattamente ".div_accept_moreinfo" già
       definita sopra senza il media query (colonna, sempre attiva anche
       sotto i 767px): qui serve solo lo spazio in più tra i due bottoni
       quando sono impilati. */
    .gdprModal .gdpr-consent-tabs .div_accept_moreinfo #accept-all-gdpr {
        margin-top: 12px;
    }
}

@media (min-width: 768px) {
    .gdprModal.open .gdpr-consent-tabs-v2 .div_accept_moreinfo {
        display: flex;
        width: 100%;
        flex-direction: row;
        justify-content: center;
        text-align: center;
        align-items: center;
        gap: 20px;
    }

    .gdprModal.open .gdpr-consent-tabs .div_accept_moreinfo #accept-all-gdpr,
    .gdprModal.open .gdpr-consent-tabs .div_accept_moreinfo #reject-all-gdpr {
        padding: 0 35px;
        width: 40%;
    }
}

#gdprModal.open .gdpr-consent-tabs.gdpr-consent-tabs-v2 {
    display: flex;
    flex-direction: column-reverse;
}

#gdprModal.open .div_control_your_privacy {
    display: none;
}

.gdpr-consent-tabs-content .tooltiptext {
    display: none;
}

.gdpr-consent-tabs-content .table-responsive td.td_description {
    cursor: auto;
}

/* Niente "left: 50%; transform: translateX(-50%)" per centrare: quel transform
   entra in conflitto con l'animazione di apertura della libreria (che anima
   già "transform" per lo scale-in), causando l'effetto "arriva da destra e
   sale lentamente". Si centra invece con margini automatici, lasciando
   "transform" libero per la sola animazione di scala. */
.gdprModal.open .gdprModal__placeholder {
    width: 600px;
    left: 0;
    right: 0;
    margin-left: auto !important;
    margin-right: auto !important;
    bottom: 40px !important;
    border-radius: 10px;
    box-shadow: rgba(0, 0, 0, .3) 0 0 10px 0px !important;
    transition: width .2s ease;
}

.gdprModal .div_summary_checkboxes {
    display: none;
}

.gdpr-consent-tabs-v2 .div_center_area {
    display: flex;
    flex-direction: column;
}

/* Il tab "Cookie policy" è un <a> mentre i tab di categoria sono <span> (li
   renderizza così il template v2.tpl del modulo): tutti però condividono la
   classe "tab-title", quindi le regole puntano a quella invece che al tag
   "a", altrimenti il tab <a> risultava alto/allineato diversamente dagli
   altri. */
.gdpr-consent-tabs-navigation .tab-title {
    display: block;
    border: none;
    font-size: 16px !important;
    box-sizing: border-box;
}

.gdpr-consent-tabs-navigation {
    display: flex !important;
    align-items: stretch;
    overflow-x: auto;
}

.gdpr-consent-tabs-navigation li {
    width: unset;
    flex: 1 1 0%;
    margin: 0 auto;
    display: flex;
}

.gdpr-consent-tabs-navigation li .tab-title {
    white-space: nowrap;
    width: 100%;
}

.gdpr-consent-tabs-navigation .tab-title:hover {
    cursor: pointer;
    text-decoration: none !important;
    background-color: #ffffff !important;
}

.gdpr-consent-tabs-navigation .tab-title.selected {
    box-shadow: unset !important;
    background: transparent !important;
    border-bottom: 3px solid #df0000;
    text-align: center;
    font-weight: bold;
}

.gdpr-consent-tabs-navigation .tab-title:not(.selected) {
    background: #fff;
    border-bottom: 2px solid #ccc;
    text-align: center;
}

.gdpr-consent-tabs nav,
.gdpr-consent-tabs-content {
    width: 100% !important;
}

.gdpr-consent-tabs .div_top_buttons {
    margin: 0 0 10px 0;
    width: 100%;
    top: 0;
}

.gdpr-consent-tabs-content .table-responsive td>div div {
    padding-bottom: 10px;
}

/* ".td_checkbox" è la <td> stessa: con "display:flex" smetteva di comportarsi
   come cella di tabella e "height:100%" non si risolveva in modo affidabile
   contro l'altezza reale della riga (che varia se la descrizione va a capo),
   causando lo switch spostato verso l'alto nelle righe più alte. Restando
   una vera table-cell con "vertical-align:middle" il browser la allunga in
   modo affidabile all'altezza reale della riga, e le percentuali usate dallo
   switch (position:absolute; top/left:50%) si risolvono contro quella. */
.gdprModal .td_checkbox {
    position: relative;
    vertical-align: middle;
    /* Spazio simmetrico: non sposta il centro dello switch (calcolato con
       top/left:50% sulla sua "padding box"), gli lascia solo un margine
       visivo dai bordi della cella. */
    padding: 6px 10px !important;
}

/* "min-height"/"height" su una vera table-cell vengono spesso ignorati dal
   calcolo dell'altezza di riga (verificato: la cella restava a 28px contro
   i 34px dello switch, che sporgeva sopra/sotto). Uno spaziatore invisibile
   ma REALE nel flusso normale (a differenza dello switch, che è
   position:absolute e quindi non "conta" per l'altezza della cella) forza
   in modo affidabile la riga ad essere alta almeno quanto lui. */
.gdprModal .td_checkbox::before {
    content: "";
    display: inline-block;
    width: 1px;
    height: 40px;
    vertical-align: middle;
}

.gdprModal .td_checkbox input {
    opacity: 0;
    width: 0;
    height: 0;
}

.gdpr-consent-tabs-content li p {
    font-size: 12px;
}

.gdpr-consent-tabs-content .table-responsive td {
    font-size: 12px;
}

/* "left:100%; transform:translate(-100%, ...)" ancorava lo switch al bordo
   destro del suo contenitore (".td_checkbox", che è il <td> stesso e può
   essere più largo dei 60px dello switch): risultato non centrato. Con
   "left:50%; transform:translate(-50%, -50%)" si centra davvero, in
   orizzontale e verticale, indipendentemente dalla larghezza della cella. */
.gdprModal .td_checkbox label {
    border-radius: 34px;
    color: transparent !important;
    font-size: 1px !important;
    width: 60px !important;
    height: 34px;
    transform: translate(-50%, -50%);
    left: 50%;
    top: 50%;
    position: absolute;
    cursor: pointer;
    background-color: #ccc;
    -webkit-transition: .4s;
    transition: .4s;
}

.gdprModal .td_checkbox label::before {
    border-radius: 50%;
    position: absolute;
    content: "";
    height: 26px;
    width: 26px;
    left: 4px;
    bottom: 4px;
    background-color: white;
    -webkit-transition: .4s;
    transition: .4s;
}

.gdprModal .td_checkbox input:checked+label {
    background-color: #72aa33;
}

.gdprModal .td_checkbox input:disabled+label {
    background-color: #aac986;
}

.gdprModal .td_checkbox input:checked+label::before {
    -webkit-transform: translateX(26px);
    -ms-transform: translateX(26px);
    transform: translateX(26px);
}

/* Larghezza minima necessaria allo switch (non "100%": quello toglieva
   spazio a "Cosa fa", che è la colonna col testo più lungo e ne ha più
   bisogno). Altezza libera (non fissa): la cella si adatta alla vera
   altezza della riga, che può crescere se la descrizione va a capo su più
   righe, e ".td_checkbox" sopra si estende a tutta quell'altezza così lo
   switch resta centrato anche nelle righe più alte. */
.gdpr-consent-tabs-content .table-responsive td:last-child {
    width: 80px !important;
    text-align: center;
    vertical-align: middle;
}

.gdpr-consent-tabs-content::before {
    display: none;
}

.gdpr-consent-tabs .div_center_area {
    border: 1px solid rgba(255, 255, 255, 0);
    border-bottom: 0px solid #fff;
    margin-left: -1px;
    margin-right: -1px;
    overflow-x: hidden;
}

.gdprModal.open .gdpr-consent-tabs .div_show_moreinfo {
    display: none;
    background: #fff;
    padding: 0 0px 10px;
    margin-top: 12px;
}

/* ==========================================================================
   Tabella cookie in mobile: qualcosa (non individuato con certezza tra i
   19 fogli di stile caricati in pagina, quindi risolto forzando qui invece
   di rincorrere la regola originale) trasforma tra ~769px e ~780px di
   larghezza table/thead/tr in "display:flex", spezzando la tabella in due
   blocchi affiancati — intestazioni (thead) a sinistra, tutti i valori
   (tbody) accatastati a destra — invece di righe allineate. Effetto: le
   intestazioni "restano a sinistra" e lo switch, ereditando quel contesto
   rotto, appare fuori misura. Si ripristinano qui i ruoli di tabella
   corretti; sotto i 480px si passa poi a un vero layout "a lista" (nome +
   descrizione a sinistra, switch a destra), più leggibile di 5 colonne
   strette su un telefono.
   ========================================================================== */
@media (max-width: 780px) {
    .gdpr-consent-tabs-content .table-responsive {
        display: table !important;
    }

    .gdpr-consent-tabs-content .table-responsive thead {
        display: table-header-group !important;
    }

    .gdpr-consent-tabs-content .table-responsive tbody {
        display: table-row-group !important;
    }

    .gdpr-consent-tabs-content .table-responsive tr {
        display: table-row !important;
    }

    /* Oltre al ruolo di cella, anche l'altezza: gdprpro/views/css/gdpr-modal.css
       ha un blocco "BEGIN/END RAY CHANGES" (patch di un dev precedente, editata
       a mano nel file del modulo) che a max-width:768px forza "height: 30px"
       su ogni th/td. La descrizione va a capo su più righe ma la cella resta
       inchiodata a 30px: il testo in eccesso trabocca e finisce sotto la riga
       successiva, invisibile. Si riporta l'altezza al contenuto reale. */
    .gdpr-consent-tabs-content .table-responsive th,
    .gdpr-consent-tabs-content .table-responsive td {
        display: table-cell !important;
        height: auto !important;
    }

    /* Forzare "tr" sopra a table-row riesuma anche la riga di intestazione
       "mobile-gdpr-details" (nascosta di norma da gdpr-modal.css): qui la
       tabella resta una vera tabella con tutte le colonne visibili, quindi
       si tiene una sola intestazione (quella "desktop"). */
    .gdpr-consent-tabs-content .table-responsive tr.mobile-gdpr-details {
        display: none !important;
    }
}

@media (max-width: 480px) {
    /* "table" resta display:table dal breakpoint sopra: mescolato con
       thead/tr sotto portati a block/flex confonde il calcolo delle
       larghezze (i figli ignoravano flex-basis). Si esce del tutto dal
       contesto di tabella. */
    .gdpr-consent-tabs-content .table-responsive {
        display: block !important;
    }

    .gdpr-consent-tabs-content .table-responsive thead {
        display: none !important;
    }

    .gdpr-consent-tabs-content .table-responsive tbody {
        display: block !important;
    }

    /* Riga come voce di lista (nome in alto, descrizione sotto, switch a
       destra su tutta l'altezza) invece che come tabella compressa: una
       griglia a 2 colonne (testo / switch) e 2 righe (nome / descrizione),
       con lo switch che occupa entrambe le righe. Niente più bordo/sfondo
       propri sulle singole celle: la separazione tra un cookie e l'altro è
       una sola linea sottile sulla riga. */
    .gdpr-consent-tabs-content .table-responsive tbody tr {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) 60px;
        grid-template-rows: auto auto;
        column-gap: 10px;
        align-items: center;
        padding: 10px 0;
        border-bottom: 1px solid #e0e0e0;
        background: transparent !important;
    }

    .gdpr-consent-tabs-content .table-responsive tbody tr:last-child {
        border-bottom: none;
    }

    .gdpr-consent-tabs-content .table-responsive .td_provider,
    .gdpr-consent-tabs-content .table-responsive .td_expiry {
        display: none !important;
    }

    .gdpr-consent-tabs-content .table-responsive .td_name,
    .gdpr-consent-tabs-content .table-responsive .td_description {
        border: none !important;
        background: transparent !important;
        padding: 0 !important;
    }

    .gdpr-consent-tabs-content .table-responsive .td_name {
        display: block !important;
        grid-column: 1;
        grid-row: 1;
        min-width: 0;
        font-weight: 700;
        word-break: break-word;
    }

    .gdpr-consent-tabs-content .table-responsive .td_description {
        display: block !important;
        grid-column: 1;
        grid-row: 2;
        min-width: 0;
        word-break: break-word;
    }

    /* Niente troncamento/tooltip su questa card mobile: la descrizione ha
       già spazio dedicato, mostrarla intera evita l'icona "+/-" (vedi sotto
       il motivo per cui a volte non si apriva bene) e i suoi problemi. */
    .gdpr-consent-tabs-content .table-responsive .td_description .description {
        display: block !important;
        white-space: normal !important;
        overflow: visible !important;
        text-overflow: unset !important;
        width: auto !important;
        padding: 2px 0 0 0 !important;
        margin: 0 !important;
        position: static !important;
        border: none !important;
        box-shadow: none !important;
        color: #666;
        font-size: 12px;
    }

    .gdpr-consent-tabs-content .table-responsive .td_description .description::before {
        display: none !important;
    }

    .gdpr-consent-tabs-content .table-responsive td.td_checkbox {
        display: flex !important;
        /* La regola generale "td:last-child { width: 80px }" (per dare più
           spazio a "Cosa fa" nella tabella normale) ha la stessa specificità
           di ".td_checkbox" più il tipo "td" ":last-child" conta come classe
           E aggiunge il tipo "td": qui si eguaglia aggiungendo "td." per
           batterla nell'ordine di sorgente. Vale anche qui e sfondava la
           colonna della griglia, larga 60px, di 20px: da qui lo scroll
           orizzontale. La si riporta alla larghezza della colonna. */
        width: 60px !important;
        grid-column: 2;
        grid-row: 1 / span 2;
        justify-content: center;
        border: none !important;
        background: transparent !important;
    }
}

/* L'icona "+/-" per espandere la descrizione (fuori dal breakpoint sopra,
   dove il testo resta troncato con tooltip/click-to-expand) usa
   font-family: "Material Icons", un font che su questo sito non è mai
   caricato: senza font di fallback mostrava il testo grezzo "add"/"remove"
   invece di un simbolo. Font Awesome è già caricato dal tema: si riusa
   quello per un'icona vera. */
.gdpr-consent-tabs-content .table-responsive tr td.td_description .description::before {
    content: "\f067" !important;
    font-family: "Font Awesome 6 Free" !important;
    font-weight: 900 !important;
}

.gdpr-consent-tabs-content .table-responsive tr.active td.td_description .description::before {
    content: "\f068" !important;
}

/* L'espansione al click (classe "active" sulla riga) usava un riquadro
   bianco con bordo nero secco: qui uno stile coerente col resto del banner. */
.gdpr-consent-tabs-content .table-responsive tr.active td.td_description .description {
    border-radius: 8px;
    border: 1px solid #ddd !important;
    box-shadow: 0 1px 6px rgba(0, 0, 0, .12);
}

/* "Accettare tutti"/"Reject all"/"Salvare" chiamano closeGdprConsentButton()
   in gdpr-consent.js (file del modulo, non del tema): lì c'è un
   setTimeout(...,2000) fisso più questa classe con transition di 3s prima
   di chiudere davvero — da qui i ~2,4s percepiti come lentezza. Non
   modifichiamo il file del modulo: gli si affianca invece, via JS
   (custom.js), una dissolvenza nostra molto più rapida. */
.gdprModal--fast-close {
    opacity: 0 !important;
    pointer-events: none !important;
    transition: opacity .2s ease !important;
}
