/*
 Theme Name:    Borgo Agnello
 Theme URI:     https://www.borgoagnello.it
 Description:   Tema Child di Divi per Borgo Agnello
 Author:        Borgo Agnello S.p.A.
 Author URI:    https://www.borgoagnello.it
 Template:      Divi
 Version:       2.0.0
*/

/* ============================================================
   FONT
   ============================================================ */
@font-face {
  font-family: "Inter";
  src: url("/wp-content/themes/Divi-Child-Borgo-Agnello/assets/fonts/intervariable.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

/* ============================================================
   CSS VARIABLES
   ============================================================ */
:root {
  --page-bg: #f5f5f5;
  --primary: #1554FF;
  --primary-dark: #003dda;
  --primary-light: #eef3ff;
  --focus-ring: #005fcc;
  --focus-ring-dark: #7fb3ff;
  --focus-radius: 6px;
  --focus-outline-width: 2px;
  --focus-outline-offset: 3px;
  --focus-gap: 2px;
  --focus-width: 2px;
  /* NUOVO: transizione globale uniforme */
  --transition-base: 0.22s ease;
  --shadow-card: 0 4px 16px rgba(0,0,0,0.08);
  --shadow-card-hover: 0 8px 28px rgba(21,84,255,0.14);
  --radius-card: 10px;
  --et_global_body_font: "Inter" !important;
  --et_global_heading_font: "Inter" !important;
  --et_global_body_font_family: 'Inter', 'Segoe UI', system-ui, -apple-system, sans-serif !important;
  --et_global_heading_font_family: 'Inter', 'Segoe UI', system-ui, -apple-system, sans-serif !important;
}

/* ============================================================
   TIPOGRAFIA
   FIX: line-height da 1 a 1.15
   MIGLIORAMENTO: letter-spacing più professionale sui titoli
   ============================================================ */
h1 { font-size: 35px; line-height: 1.15; font-weight: 800 !important; letter-spacing: -0.5px; }
h2 { font-size: 32px; line-height: 1.15; font-weight: 700 !important; letter-spacing: -0.3px; }
h3 { font-size: 26px; line-height: 1.15; font-weight: 700 !important; letter-spacing: -0.2px; }
h4 { font-size: 22px; line-height: 1.15; font-weight: 700 !important; }
h5 { font-size: 18px; line-height: 1.15; font-weight: 700 !important; }
h6 { font-size: 16px; line-height: 1.15; font-weight: 700 !important; }

/* ============================================================
   VARIE
   ============================================================ */
#iubenda-pp { z-index: 99999 !important; }

.home .menu-item-17 { display: none !important; }

.iq-centra-verticale {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

/* FIX + MIGLIORAMENTO: min-width per mobile */
.whatsapp-usato {
  width: 9%;
  min-width: 36px;
  transition: transform var(--transition-base);
}
.whatsapp-usato:hover { transform: scale(1.08); }

.titleiveco {
  font-weight: 700;
  font-size: 16px;
  color: var(--primary);
}
/* ============================================================
   CONTACT FORM 7
   FIX: rimossi blocchi duplicati
   MIGLIORAMENTO: focus highlight sui campi, hover sul submit
   ============================================================ */
#responsive-form {
  max-width: 1100px;
  margin: 0 auto;
  width: 100%;
}

.form-row {
  width: 100%;
  margin-bottom: 20px;
}

.column-half,
.column-full {
  float: left;
  position: relative;
  padding: 0.65rem;
  width: 100%;
  box-sizing: border-box;
}

.clearfix:after {
  content: "";
  display: table;
  clear: both;
}

@media only screen and (min-width: 48em) {
  .column-half { width: 50%; }
}

/* Stile dei campi – MIGLIORAMENTO: border-radius più morbido, hover highlight */
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="date"],
.wpcf7 textarea,
.wpcf7 select {
  width: 100%;
  padding: 10px 12px;
  background-color: #ffffff;
  border: 1.5px solid #d0d0d0;
  border-radius: 6px;
  height: auto;
  box-sizing: border-box;
  font-size: 16px;
  color: #000000;
  transition: border-color var(--transition-base), box-shadow var(--transition-base);
}

.wpcf7 input[type="text"]:hover,
.wpcf7 input[type="email"]:hover,
.wpcf7 input[type="tel"]:hover,
.wpcf7 input[type="date"]:hover,
.wpcf7 textarea:hover,
.wpcf7 select:hover {
  border-color: #999;
}

/* Label accessibili */
.wpcf7-form label {
  display: block;
  font-weight: 600;
  font-size: 14px;
  margin-bottom: 4px;
}

/* FIX: padding aumentato + MIGLIORAMENTO: ombra e hover raffinato */
.wpcf7-submit {
  display: block;
  margin: 20px auto;
  background: var(--primary);
  color: #ffffff;
  font-weight: 700;
  font-size: 18px;
  text-transform: uppercase;
  border: none;
  padding: 12px 32px;
  border-radius: 6px;
  cursor: pointer;
  letter-spacing: 0.5px;
  box-shadow: 0 4px 14px rgba(21,84,255,0.3);
  transition: background-color var(--transition-base), box-shadow var(--transition-base), transform var(--transition-base);
}

.wpcf7-submit:hover {
  background: var(--primary-dark);
  color: #ffffff;
  box-shadow: 0 6px 20px rgba(21,84,255,0.4);
  transform: translateY(-1px);
}

.wpcf7-submit:active {
  transform: translateY(0);
  box-shadow: 0 2px 8px rgba(21,84,255,0.25);
}

/* Avvisi di validazione */
span.wpcf7-not-valid-tip {
  text-shadow: none;
  font-size: 14px;
  color: #ffffff;
  background: #cc0000;
  padding: 6px 10px;
  border-radius: 4px;
}

div.wpcf7-validation-errors {
  text-shadow: none;
  border: transparent;
  background: #f9cd00;
  padding: 5px;
  color: #9C6533;
  text-align: center;
  margin: 0;
  font-size: 12px;
}

div.wpcf7-mail-sent-ok {
  text-align: center;
  text-shadow: none;
  padding: 5px;
  font-size: 12px;
  background: #59a80f;
  border-color: #59a80f;
  color: #ffffff;
  margin: 0;
}

.wpcf7-form.sent .wpcf7-response-output {
  background: #59a80f;
  border-color: #59a80f;
  color: #ffffff;
  padding: 20px;
  font-size: 20px;
  font-weight: 700;
  margin: 0;
  text-align: center;
}

.wpcf7-form.invalid .wpcf7-response-output {
  background: #cc0000;
  border-color: #cc0000;
  color: #ffffff;
  padding: 20px;
  font-size: 20px;
  font-weight: 700;
  margin: 0;
  text-align: center;
}

fieldset legend {
  font-weight: 700;
  font-size: 1.1rem;
  padding: 15px 0;
}

.required {
  color: #A80000;
  font-size: 16px;
  font-weight: bold;
}

.wpcf7 .input-file {
  position: absolute;
  left: -9999px;
}

.wpcf7 .custom-file-upload {
  display: inline-block;
  padding: 10px 20px;
  background-color: var(--primary);
  color: #fff;
  font-size: 14px;
  font-weight: 600;
  border-radius: 6px;
  cursor: pointer;
  transition: background var(--transition-base), transform var(--transition-base);
  text-align: center;
}

.wpcf7 .custom-file-upload:hover {
  background-color: var(--primary-dark);
}

.wpcf7 .custom-file-upload:active {
  transform: scale(0.97);
}

.wpcf7 .file-chosen {
  margin-left: 12px;
  font-size: 13px;
  color: #333;
  font-style: italic;
  vertical-align: middle;
}
/* ===========================================================
   CONTACT FORM 7 – stili funzionali dal core (styles.css v6.1.5)
   Da aggiornare se si aggiorna il plugin
   =========================================================== */
.wpcf7 .screen-reader-response {
    position: absolute;
    overflow: hidden;
    clip: rect(1px, 1px, 1px, 1px);
    clip-path: inset(50%);
    height: 1px;
    width: 1px;
    margin: -1px;
    padding: 0;
    border: 0;
    word-wrap: normal !important;
}
.wpcf7 .hidden-fields-container {
    display: none;
}
.wpcf7 form .wpcf7-response-output {
    margin: 2em 0.5em 1em;
    padding: 0.2em 1em;
    border: 2px solid #00a0d2;
}
.wpcf7 form.init .wpcf7-response-output,
.wpcf7 form.resetting .wpcf7-response-output,
.wpcf7 form.submitting .wpcf7-response-output {
    display: none;
}
.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.aborted .wpcf7-response-output {
    border-color: #dc3232;
}
.wpcf7 form.spam .wpcf7-response-output {
    border-color: #f56e28;
}
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output {
    border-color: #ffb900;
}
.wpcf7-form-control-wrap {
    position: relative;
}
.wpcf7-list-item {
    display: inline-block;
    margin: 0 0 0 1em;
}
.wpcf7-list-item-label::before,
.wpcf7-list-item-label::after {
    content: " ";
}
.wpcf7-spinner {
    visibility: hidden;
    display: inline-block;
    background-color: #23282d;
    opacity: 0.75;
    width: 24px;
    height: 24px;
    border: none;
    border-radius: 100%;
    padding: 0;
    margin: 0 24px;
    position: relative;
}
form.submitting .wpcf7-spinner {
    visibility: visible;
}
.wpcf7-spinner::before {
    content: '';
    position: absolute;
    background-color: #fbfbfc;
    top: 4px;
    left: 4px;
    width: 6px;
    height: 6px;
    border: none;
    border-radius: 100%;
    transform-origin: 8px 8px;
    animation-name: spin;
    animation-duration: 1000ms;
    animation-timing-function: linear;
    animation-iteration-count: infinite;
}
@media (prefers-reduced-motion: reduce) {
    .wpcf7-spinner::before {
        animation-name: blink;
        animation-duration: 2000ms;
    }
}
@keyframes spin {
    from { transform: rotate(0deg); }
    to   { transform: rotate(360deg); }
}
@keyframes blink {
    from { opacity: 0; }
    50%  { opacity: 1; }
    to   { opacity: 0; }
}
.wpcf7 [inert] { opacity: 0.5; }
.wpcf7 input[type="file"] { cursor: pointer; }
.wpcf7 input[type="file"]:disabled { cursor: default; }
.wpcf7 .wpcf7-submit:disabled { cursor: not-allowed; }
.wpcf7 input[type="url"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"] { direction: ltr; }
.wpcf7-reflection > output { display: list-item; list-style: none; }
.wpcf7-reflection > output[hidden] { display: none; }
/* ============================================================
   STAMPA PDF
   ============================================================ */
.woocommerce-print-products-pdf-link {
  display: inline-block;
  line-height: 1.7em !important;
  background-color: var(--primary);
  color: #ffffff !important;
  padding: 10px 20px;
  font-weight: 700;
  transition: background-color var(--transition-base);
}
.woocommerce-print-products-pdf-link:hover { background-color: var(--primary-dark); }

.woocommerce-print-products-print-link {
  display: inline-block;
  line-height: 1.7em !important;
  background-color: var(--primary);
  color: #ffffff !important;
  padding: 7px 20px;
  font-weight: 700;
  transition: background-color var(--transition-base);
}
.woocommerce-print-products-print-link:hover { background-color: var(--primary-dark); }

/* ============================================================
   WOOCOMMERCE / SHOP
   MIGLIORAMENTO: hover card prodotto più morbido
   ============================================================ */
.woocommerce-product-attributes-item--attribute_pa_optional {
  width: 100% !important;
}

.woocommerce ul.products li.product .price {
  font-weight: 700;
  font-size: 16px;
  color: var(--primary) !important;
}

/* FIX: virgola → punto nel line-height */
.woocommerce-loop-product__title {
  font-size: 16px !important;
  color: #000000 !important;
  line-height: 1.3em;
}

/* MIGLIORAMENTO: card prodotto con transizione hover */
.woocommerce ul.products li.product {
  transition: transform var(--transition-base), box-shadow var(--transition-base);
  border-radius: var(--radius-card);
}
.woocommerce ul.products li.product:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow-card-hover);
}

.woocommerce-print-products.link-wrapper {
  display: none;
}

/* ============================================================
   LIGHTGALLERY
   ============================================================ */
.lg-backdrop { z-index: 99999 !important; }
.lg-outer    { z-index: 99999 !important; }

/* ============================================================
   ICONE SVG
   MIGLIORAMENTO: transizione colore su hover
   ============================================================ */
.iconebav2 {
  width: 6rem;
  height: 6rem;
  display: block;
  margin: 0 auto;
  color: var(--primary);
  transition: color var(--transition-base), transform var(--transition-base);
}
.iconebav2:hover { transform: scale(1.05); }

.iconebasmall {
  width: 2rem;
  height: 2rem;
  display: block;
  margin: 0 auto;
  color: var(--primary);
  transition: color var(--transition-base);
}

.iconebamenu  { width: 1.5rem; height: 1.5rem; color: #ffffff; }
.iconebamenu2 { width: 1.5rem; height: 1.5rem; color: #000000; }

/* ============================================================
   PRODUCT FILTER
   ============================================================ */
.pf_search {
  width: 100%;
  padding: 10px !important;
}

@media only screen and (max-width: 600px) {
  .pf_search { padding: 8px !important; font-size: 14px; }
}

@media only screen and (max-width: 980px) {
  .prdctfltr_filter { margin-bottom: 15px !important; }
}

.pf-system-select { width: 100% !important; }

/* Range prezzo filtri */
.pf_rngstyle_html5 .irs-bar,
.pf_rngstyle_html5 .irs-to,
.pf_rngstyle_html5 .irs-from,
.pf_rngstyle_html5 .irs-single {
  background: var(--primary);
}

.pf_rngstyle_html5 .irs-bar {
  height: 10px;
  top: 33px;
  border-top: 1px solid var(--primary);
  border-bottom: 1px solid var(--primary);
}

/* ============================================================
   IUBENDA FLOATING
   MIGLIORAMENTO: micro-interazione hover
   ============================================================ */
.floating-iubenda {
  position: fixed;
  z-index: 999;
  bottom: 0;
  right: 0;
  margin-bottom: 17px;
  margin-right: 15px;
}

.floating-iubenda a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  background-color: #ffffff;
  color: var(--primary);
  border-radius: 50%;
  box-shadow: 2px 2px 5px rgba(0,0,0,0.3);
  font-size: 20px;
  transition: box-shadow var(--transition-base), transform var(--transition-base);
}
.floating-iubenda a:hover {
  box-shadow: 2px 4px 12px rgba(0,0,0,0.35);
  transform: translateY(-2px);
}

/* ============================================================
   TABELLA BORGO
   MIGLIORAMENTO: transizione hover riga più fluida
   ============================================================ */
.contenitore-borgo {
  max-width: 1000px;
  margin: 0 auto;
  overflow-x: auto;
}

.tabellaba {
  width: 100%;
  border-collapse: collapse;
}

.tabellaba thead { background-color: var(--primary); }

.tabellaba thead th {
  color: #ffffff;
  padding: 12px;
  text-align: left;
  border: 1px solid #ddd;
}

.tabellaba tbody td {
  padding: 12px;
  text-align: left;
  border: 1px solid #ddd;
  transition: background-color 0.15s ease;
}

.tabellaba .trborgo:nth-child(even) { background-color: #f9f9f9; }
.tabellaba tbody .trborgo:hover td  { background-color: var(--primary-light); }

@media screen and (max-width: 1024px) {
  .contenitore-borgo { width: 100%; padding: 0 15px; }
}

/* ============================================================
   TABELLE SPEC
   ============================================================ */
.spec-table-wrap {
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.spec-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 980px;
  font-size: 14px;
  color: #000000;
  background: #fff;
}

.spec-table th,
.spec-table td {
  border: 1px solid #efefef;
  padding: 14px 16px;
  vertical-align: middle;
}

.spec-blue    { background: var(--primary); color: #fff; font-weight: 700; text-align: center; }
.spec-mtt     { text-align: center; font-weight: 700; white-space: nowrap; }
.spec-label   { text-align: left; font-weight: 400; color: #000000; white-space: nowrap; }
.spec-val     { text-align: center; color: #000000; font-weight: 400; white-space: nowrap; }
.spec-merged  { text-align: center; color: #6b6b6b; font-weight: 400; }
.spec-subhead { text-align: center; font-weight: 700; color: #000000; background: #fff; }
.spec-val-wrap { white-space: normal; line-height: 1.35; }

/* ============================================================
   ACCESSIBILITÀ – FOCUS COERENTE
   ============================================================ */
:where(a, button, input, select, textarea, summary, [role="button"], [tabindex]:not([tabindex="-1"])):focus-visible {
  outline: var(--focus-outline-width) solid var(--focus-ring);
  outline-offset: var(--focus-outline-offset);
  border-radius: var(--focus-radius);
  position: relative;
  z-index: 2;
  scroll-margin: 96px;
}

:where(a, button, input, select, textarea, summary, [role="button"], [tabindex]:not([tabindex="-1"])):focus:not(:focus-visible) {
  outline: none;
}

.wpcf7 input:focus,
.wpcf7 select:focus,
.wpcf7 textarea:focus { outline: none; }

.wpcf7 input:focus-visible,
.wpcf7 select:focus-visible,
.wpcf7 textarea:focus-visible,
.wpcf7 .wpcf7-submit:focus-visible {
  outline: var(--focus-outline-width) solid var(--focus-ring);
  outline-offset: var(--focus-outline-offset);
  border-radius: var(--focus-radius);
}

/* ============================================================
   PLUGIN VARI
   ============================================================ */
.et_pb_menu__menu > nav > ul > li > a:hover { text-decoration: underline; }

.apop-container-toggle .apop-toggle img.design-size1 {
  padding: 10px !important;
  width: 40px !important;
  height: 40px !important;
}

.onetap-container-toggle .onetap-toggle img.design-size1 {
  padding: 5px !important;
  width: 40px !important;
  height: 40px !important;
}

/* FIX: colori hardcoded sicuri al posto delle variabili Divi non documentate */
.ba-btn-pdf {
  background-color: var(--primary);
  color: #ffffff !important;
  border-radius: 6px;
  border-color: transparent;
  transition: background-color var(--transition-base), transform var(--transition-base);
}

.ba-btn-pdf:hover {
  background-color: var(--primary-dark) !important;
  color: #ffffff !important;
  border-color: transparent !important;
  transform: translateY(-1px);
}

/* ============================================================
   RESET GLOBALE HEADER
   ============================================================ */
#ba-header *, #ba-spacer,
.mob-header *, #mob-menu * {
  box-sizing: border-box !important;
}

/* ============================================================
   DESKTOP HEADER – visibile solo ≥ 1024px
   ============================================================ */
#ba-menu, #ba-menu ul, #ba-menu li, #ba-menu li.ba-sub-item {
  list-style: none !important;
  list-style-type: none !important;
  margin: 0 !important;
  padding: 0 !important;
  background-image: none !important;
  border: none !important;
}

#ba-menu > li::before, #ba-menu > li::after,
#ba-menu li.ba-sub-item::before, #ba-menu li.ba-sub-item::after {
  display: none !important;
  content: "" !important;
  width: 0 !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

#ba-header {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  width: 100% !important;
  z-index: 99990 !important;
  margin: 0 !important;
  padding: 0 !important;
  display: none !important;
}

body.admin-bar #ba-header { top: 32px !important; }

@media screen and (max-width: 782px) {
  body.admin-bar #ba-header { top: 46px !important; }
}

#ba-spacer {
  display: none !important;
  width: 100% !important;
  height: 0 !important;
}

/* Pre-header */
#ba-preheader {
  display: flex !important;
  width: 100% !important;
  background: #ffffff !important;
  border-bottom: 1px solid #e0e0e0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

#ba-preheader-inner {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: space-between !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 8px 40px !important;
  gap: 20px !important;
}

#ba-col-logo { flex: 0 0 auto !important; display: flex !important; align-items: center !important; }
#ba-col-logo a { display: block !important; line-height: 0 !important; text-decoration: none !important; }
#ba-logo-main { width: 400px !important; height: auto !important; max-width: 400px !important; display: block !important; object-fit: contain !important; }

#ba-col-center { flex: 0 0 auto !important; display: flex !important; align-items: center !important; justify-content: center !important; }
#ba-col-center a { display: block !important; line-height: 0 !important; text-decoration: none !important; }
#ba-logo-rete { height: 52px !important; width: auto !important; max-width: 140px !important; display: block !important; object-fit: contain !important; }

#ba-col-brands { flex: 0 0 auto !important; display: flex !important; flex-direction: row !important; align-items: center !important; gap: 24px !important; }
#ba-col-brands a.ba-brand-link { display: flex !important; align-items: center !important; line-height: 0 !important; text-decoration: none !important; transition: opacity .2s ease !important; }
#ba-col-brands a.ba-brand-link:hover { opacity: .6 !important; }
#ba-col-brands img.ba-brand-img { height: 28px !important; width: auto !important; max-width: 90px !important; display: block !important; object-fit: contain !important; }

/* Nav nera */
#ba-nav { display: flex !important; width: 100% !important; background: #000000 !important; margin: 0 !important; padding: 0 !important; position: relative !important; z-index: 1 !important; }
#ba-menu { display: flex !important; flex-direction: row !important; flex-wrap: nowrap !important; align-items: center !important; justify-content: center !important; width: 100% !important; margin: 0 !important; padding: 0 40px !important; gap: 0 !important; }
#ba-menu > li.ba-item { display: block !important; position: relative !important; float: none !important; }

#ba-menu > li.ba-item > a.ba-link,
#ba-menu > li.ba-item > span.ba-link {
  display: flex !important;
  align-items: center !important;
  gap: 4px !important;
  padding: 16px 15px !important;
  font-family: inherit !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  letter-spacing: .3px !important;
  line-height: 1.2 !important;
  color: #ffffff !important;
  text-decoration: none !important;
  white-space: nowrap !important;
  cursor: pointer !important;
  background: transparent !important;
  border: none !important;
  user-select: none !important;
  transition: color .18s ease !important;
}

/* MIGLIORAMENTO: indicatore di pagina attiva con underline animato */
#ba-menu > li.ba-item > a.ba-link::after,
#ba-menu > li.ba-item > span.ba-link::after {
  content: '' !important;
  display: block !important;
  position: absolute !important;
  bottom: 0 !important;
  left: 15px !important;
  right: 15px !important;
  height: 2px !important;
  background: var(--primary) !important;
  transform: scaleX(0) !important;
  transition: transform .22s ease !important;
}

#ba-menu > li.ba-item > a.ba-link:hover::after,
#ba-menu > li.ba-item > span.ba-link:hover::after,
#ba-menu > li.ba-item.ba-active > a.ba-link::after {
  transform: scaleX(1) !important;
}

#ba-menu > li.ba-item > a.ba-link:hover,
#ba-menu > li.ba-item > span.ba-link:hover,
#ba-menu > li.ba-item.ba-active > a.ba-link { color: #ffffff !important; background: transparent !important; }

#ba-menu svg.ba-chev { width: 10px !important; height: 6px !important; flex-shrink: 0 !important; display: inline-block !important; vertical-align: middle !important; transition: transform .2s ease !important; overflow: visible !important; }
#ba-menu > li.ba-has-sub.ba-open svg.ba-chev { transform: rotate(180deg) !important; }

/* Submenu desktop – MIGLIORAMENTO: ombra più elegante */
#ba-menu ul.ba-sub {
  position: absolute !important;
  top: 100% !important;
  left: 50% !important;
  transform: translateX(-50%) translateY(12px) !important;
  display: block !important;
  background: #ffffff !important;
  border-radius: 14px !important;
  padding: 10px 0 !important;
  min-width: 240px !important;
  border: 1px solid rgba(0,0,0,0.08) !important;
  box-shadow: 0 20px 50px rgba(0,0,0,0.18) !important;
  overflow: hidden !important;
  z-index: 99999 !important;
  opacity: 0 !important;
  pointer-events: none !important;
  transition: opacity .2s ease, transform .2s ease !important;
  margin: 0 !important;
}

#ba-menu > li.ba-has-sub.ba-open > ul.ba-sub { opacity: 1 !important; pointer-events: auto !important; transform: translateX(-50%) translateY(8px) !important; }
#ba-menu li.ba-sub-item { display: block !important; float: none !important; }
#ba-menu li.ba-sub-item + li.ba-sub-item > a.ba-sub-link { border-top: 1px solid rgba(0,0,0,.06) !important; }
#ba-menu a.ba-sub-link { display: block !important; padding: 12px 18px !important; font-size: 14px !important; font-weight: 600 !important; line-height: 1.3 !important; color: #111111 !important; text-decoration: none !important; background: transparent !important; white-space: nowrap !important; transition: background-color .18s ease, color .18s ease, padding-left .18s ease !important; }
/* MIGLIORAMENTO: effetto padding invece di transform per evitare reflow */
#ba-menu a.ba-sub-link:hover { background: var(--primary-light) !important; color: var(--primary) !important; padding-left: 22px !important; }

@media screen and (min-width: 1024px) {
  #ba-header { display: block !important; }
  #ba-spacer  { display: block !important; }
}

/* ============================================================
   MOBILE HEADER
   ============================================================ */
.mob-header {
  display: none;
  justify-content: space-between;
  align-items: center;
  padding: 10px 15px;
  background: #000000;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 99991;
  height: 70px;
  box-shadow: 0 2px 6px rgba(0,0,0,.25);
}

body.admin-bar .mob-header { top: 46px; }

@media screen and (min-width: 600px) {
  body.admin-bar .mob-header { top: 32px; }
}

.mob-logo { flex-shrink: 1; min-width: 0; }
.mob-logo a { display: block; line-height: 0; text-decoration: none; }
.mob-logo img { height: 40px; width: auto; max-width: 180px; object-fit: contain; display: block; }

.mob-icons { display: flex; align-items: center; gap: 4px; flex-shrink: 0; }

.mob-icons a,
.mob-icons button {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
  padding: 10px;
  background: none;
  border: none;
  cursor: pointer;
  color: #ffffff !important;
  fill: #ffffff !important;
  border-radius: 8px;
  transition: background var(--transition-base);
}
/* MIGLIORAMENTO: feedback visivo su tap/hover */
.mob-icons a:hover,
.mob-icons button:hover { background: rgba(255,255,255,0.12) !important; }

.mob-icon { width: 24px; height: 24px; flex-shrink: 0; display: block; }

.mob-header .mob-icon,
.mob-header .mob-icon use,
#mob-menu .mob-icon,
#mob-menu .mob-icon use {
  fill: #ffffff !important;
  color: #ffffff !important;
  stroke: #ffffff !important;
  display: block !important;
  width: 24px !important;
  height: 24px !important;
  visibility: visible !important;
  opacity: 1 !important;
}

.mob-btn-action .mob-icon,
.mob-btn-action .mob-icon use {
  fill: #ffffff !important;
  color: #ffffff !important;
  stroke: none !important;
  width: 22px !important;
  height: 22px !important;
}

#mob-menu {
  display: none;
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  background: #ffffff;
  overflow-y: auto;
  z-index: 99990;
  border-top: 1px solid #eee;
  box-shadow: 0 5px 10px rgba(0,0,0,.2);
}

#mob-menu.mob-open { display: block; }

.mob-list, .mob-sub,
.mob-list li, .mob-sub li {
  list-style: none !important;
  list-style-type: none !important;
  margin: 0 !important;
  padding: 0 !important;
  background-image: none !important;
}

.mob-list li::before, .mob-list li::after,
.mob-sub li::before,  .mob-sub li::after {
  display: none !important;
  content: "" !important;
  width: 0 !important;
  height: 0 !important;
}

.mob-li { border-bottom: 1px solid #eeeeee; }

.mob-link {
  display: flex !important;
  align-items: center !important;
  padding: 16px 20px !important;
  font-size: 17px !important;
  font-weight: 500 !important;
  color: #000000 !important;
  text-decoration: none !important;
  background: #ffffff !important;
  min-height: 52px !important;
  transition: background var(--transition-base), color var(--transition-base) !important;
}

.mob-link:hover { background: #f5f5f5 !important; }
.mob-link.mob-active { color: var(--primary) !important; font-weight: 700 !important; }

.mob-btn {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  padding: 16px 20px !important;
  width: 100% !important;
  background: #ffffff !important;
  border: none !important;
  font-size: 17px !important;
  font-weight: 500 !important;
  color: #000000 !important;
  cursor: pointer !important;
  min-height: 52px !important;
  text-align: left !important;
  transition: background var(--transition-base) !important;
}

.mob-btn:hover { background: #f5f5f5 !important; }

.mob-arrow {
  width: 20px !important;
  height: 20px !important;
  flex-shrink: 0 !important;
  stroke: #000000 !important;
  fill: none !important;
  transition: transform .3s ease !important;
  margin-left: 8px !important;
}

.mob-btn[aria-expanded="true"] .mob-arrow { transform: rotate(180deg) !important; }

.mob-sub { display: none; background: #f9f9f9 !important; }
.mob-btn[aria-expanded="true"] + .mob-sub { display: block; }
.mob-sub li { border-top: 1px solid #eeeeee; }

.mob-sub-link {
  display: block !important;
  padding: 14px 30px !important;
  font-size: 16px !important;
  color: #000000 !important;
  text-decoration: none !important;
  min-height: 48px !important;
  transition: background var(--transition-base), color var(--transition-base) !important;
}

/* MIGLIORAMENTO: hover sottomenu coerente con palette primaria */
.mob-sub-link:hover { background: var(--primary-light) !important; color: var(--primary) !important; }

.mob-actions { padding: 20px; display: flex; flex-direction: column; gap: 12px; }

.mob-btn-action {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 14px 16px !important;
  font-weight: 700 !important;
  font-size: 17px !important;
  text-decoration: none !important;
  border-radius: 8px !important;
  min-height: 52px !important;
  gap: 10px !important;
  color: #ffffff !important;
  transition: opacity var(--transition-base), transform var(--transition-base) !important;
}

/* MIGLIORAMENTO: feedback press su bottoni azione */
.mob-btn-action:hover  { opacity: 0.9 !important; transform: translateY(-1px) !important; }
.mob-btn-action:active { transform: translateY(0) !important; }

.mob-btn-call { background: #000000 !important; }
.mob-btn-wa   { background: #25d366 !important; }
.mob-btn-action .mob-icon { width: 22px !important; height: 22px !important; fill: #ffffff !important; }

/* Mostra solo su mobile */
@media screen and (max-width: 1023px) {
  .mob-header { display: flex; }
  body { padding-top: 69px !important; }
}
@media screen and (max-width: 599px) {
  body.admin-bar { padding-top: calc(69px + 46px) !important; }
}
@media screen and (min-width: 600px) and (max-width: 1023px) {
  body.admin-bar { padding-top: calc(69px + 32px) !important; }
}

/* ============================================================
   ACCESSIBILITÀ – DESKTOP
   ============================================================ */
#ba-menu > li.ba-item > a.ba-link:focus-visible,
#ba-menu > li.ba-item > span.ba-link:focus-visible {
  outline: none !important;
  border-radius: var(--focus-radius) !important;
  box-shadow: 0 0 0 1px #000, 0 0 0 3px var(--focus-ring-dark) !important;
}

#ba-menu > li.ba-item > a.ba-link:focus:not(:focus-visible),
#ba-menu > li.ba-item > span.ba-link:focus:not(:focus-visible) {
  outline: none !important;
  box-shadow: none !important;
}

#ba-menu > li.ba-has-sub:focus-within > ul.ba-sub {
  opacity: 1 !important;
  pointer-events: auto !important;
  transform: translateX(-50%) translateY(8px) !important;
  overflow: visible !important;
}

#ba-menu a.ba-sub-link:focus-visible {
  outline: none !important;
  border-radius: var(--focus-radius) !important;
  box-shadow: 0 0 0 1px #000, 0 0 0 3px var(--focus-ring-dark) !important;
}

#ba-menu a.ba-sub-link:focus:not(:focus-visible) {
  outline: none !important;
  box-shadow: none !important;
}

/* ============================================================
   ACCESSIBILITÀ – MOBILE
   ============================================================ */
#mob-menu a.mob-link:focus-visible,
#mob-menu a.mob-sub-link:focus-visible,
#mob-menu .mob-btn:focus-visible,
.mob-icons a:focus-visible,
.mob-icons button:focus-visible,
.mob-btn-action:focus-visible {
  outline: none !important;
  border-radius: var(--focus-radius) !important;
  box-shadow: 0 0 0 1px #000, 0 0 0 3px var(--focus-ring-dark) !important;
}

#mob-menu a.mob-link:focus:not(:focus-visible),
#mob-menu a.mob-sub-link:focus:not(:focus-visible),
#mob-menu .mob-btn:focus:not(:focus-visible),
.mob-icons a:focus:not(:focus-visible),
.mob-icons button:focus:not(:focus-visible),
.mob-btn-action:focus:not(:focus-visible) {
  outline: none !important;
  box-shadow: none !important;
}

/* ============================================================
   RESPONSIVE BREAKPOINTS
   ============================================================ */
@media screen and (min-width: 768px) and (max-width: 1023px) {
  .mob-header { padding: 12px 30px; }
  .mob-logo img { height: 50px; max-width: 250px; }
  .mob-icon { width: 28px !important; height: 28px !important; }
  .mob-link, .mob-btn { font-size: 18px !important; padding: 18px 30px !important; }
  .mob-sub-link { font-size: 17px !important; padding: 16px 40px !important; }
}

@media screen and (orientation: landscape) and (max-height: 600px) {
  .mob-header { height: 56px; padding: 8px 15px; }
  .mob-logo img { height: 32px; }
  #mob-menu { top: 56px !important; }
  .mob-link, .mob-btn { padding: 12px 20px !important; min-height: 44px !important; }
  .mob-sub-link { padding: 10px 30px !important; min-height: 40px !important; }
}

@media screen and (max-width: 360px) {
  .mob-logo img { max-width: 150px; height: 35px; }
  .mob-icons { gap: 2px; }
}

@media (max-width: 980px) {
  .mobile-header {
    position: fixed;
    top: 0; left: 0; right: 0;
    z-index: 999999;
    width: 100%;
  }
  body { padding-top: var(--mobile-header-h); }
  #et-main-area { padding-top: var(--mobile-header-h); }
}