/* ==========================================================================
   Accessibilita' (EAA - D.Lgs. 82/2022, EN 301 549, WCAG 2.1 livello AA)
   Caricato dopo style.css: contiene solo regole aggiuntive o correttive.
   ========================================================================== */

:root {
  --a11y-arancio: #BB5B02;      /* 4.56:1 su bianco */
  --a11y-testo: #373737;
  --a11y-testo-2: #595959;      /* 7:1 su bianco */
  --a11y-errore: #b00020;       /* 6.9:1 su bianco */
  --a11y-bordo-campo: #767676;  /* 4.5:1 su bianco (WCAG 1.4.11) */
  --a11y-focus: #1a1a1a;
}

/* --- testo solo per screen reader ------------------------------------- */
.visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* --- link di salto (2.4.1) --------------------------------------------- */
.skip-link {
  position: absolute;
  top: -100px;
  left: 16px;
  z-index: 10000;
  padding: 12px 20px;
  background: var(--a11y-focus);
  color: #fff !important;
  font-weight: 600;
  text-decoration: underline;
}
.skip-link:focus {
  top: 16px;
}
main:focus {
  outline: none;
}

/* --- focus sempre visibile (2.4.7) ------------------------------------- */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible,
.btn:focus-visible {
  outline: 3px solid var(--a11y-focus) !important;
  outline-offset: 2px !important;
  box-shadow: 0 0 0 5px #fff !important;
}

/* --- pulsanti a icona (sostituiscono i link javascript:void) ------------ */
.a11y-iconbtn {
  background: none;
  border: 0;
  padding: 0;
  margin: 0;
  color: inherit;
  font: inherit;
  line-height: inherit;
  cursor: pointer;
  min-width: 24px;
  min-height: 24px;
}
.canvas_close .a11y-iconbtn {
  font-size: 30px;
  transition: 0.7s;
  display: inline-block;
}
.canvas_close .a11y-iconbtn:hover {
  color: var(--a11y-arancio);
  transform: scale(1.3) rotate(180deg);
}
.canvas_open .a11y-iconbtn {
  font-size: 38px;
  display: block;
  line-height: 16px;
}
.canvas_open .a11y-iconbtn:hover,
.mini_cart_close .a11y-iconbtn:hover,
.search_close .a11y-iconbtn:hover {
  color: var(--a11y-arancio);
}
.mini_cart_close .a11y-iconbtn {
  font-size: 25px;
}
.search_close .a11y-iconbtn {
  font-size: 20px;
}
.shopping_cart .a11y-iconbtn {
  display: flex;
  align-items: center;
}

/* --- pannelli chiusi fuori dall'ordine di tabulazione ------------------- */
.offcanvas_menu_wrapper:not(.active),
.mini_cart:not(.active) {
  visibility: hidden;
}

/* --- menu principale: sottomenu apribili con pulsante ------------------- */
.main_menu nav > ul > li > .submenu-toggle {
  display: inline-block;
  position: relative;
  font-weight: 500;
  font-size: 18px;
  line-height: 41px;
  text-transform: uppercase;
  color: #6b6b6b;
  background: none;
  border: 0;
  padding: 0;
  font-family: inherit;
  cursor: pointer;
}
@media only screen and (min-width: 992px) and (max-width: 1199px) {
  .main_menu nav > ul > li > .submenu-toggle {
    font-size: 15px;
  }
}
.main_menu nav > ul > li > .submenu-toggle::before {
  position: absolute;
  content: "";
  width: 0;
  height: 2px;
  background: var(--a11y-arancio);
  left: 0;
  top: 0;
  transition: 0.3s;
}
.main_menu nav > ul > li:hover > .submenu-toggle,
.main_menu nav > ul > li.is-open > .submenu-toggle {
  color: var(--a11y-testo);
}
.main_menu nav > ul > li:hover > .submenu-toggle::before,
.main_menu nav > ul > li.is-open > .submenu-toggle::before {
  width: 100%;
}
.main_menu nav > ul > li.is-open ul.sub_menu {
  visibility: visible;
  opacity: 1;
  top: 100%;
}
.main_menu nav > ul > li ul.sub_menu {
  max-height: 80vh;
  overflow-y: auto;
}

/* --- intestazioni (gerarchia corretta, stesso aspetto di prima) --------- */
.breadcrumb_content h1 {
  font-weight: normal;
  font-size: 34px;
  line-height: 45px;
  margin-bottom: 19px;
  font-family: "Poppins", sans-serif;
}
@media only screen and (min-width: 768px) and (max-width: 991px) {
  .breadcrumb_content h1 {
    font-size: 30px;
    line-height: 39px;
  }
}
@media only screen and (max-width: 767px) {
  .breadcrumb_content h1 {
    font-size: 26px;
    line-height: 35px;
    margin-bottom: 15px;
  }
}
.product_tab_title {
  font-size: 36px;
  line-height: 48px;
  text-transform: uppercase;
  color: var(--a11y-testo);
  font-family: "Poppins", sans-serif;
  font-weight: 500;
  margin: 0;
}
@media only screen and (max-width: 767px) {
  .product_tab_title {
    font-size: 26px;
    line-height: 36px;
  }
}
.product_content h3 {
  font-weight: 500;
  font-size: 16px;
  min-height: 42px;           /* era height fissa: il testo non si taglia con spaziatura aumentata (1.4.12) */
  line-height: 21px;
  font-family: "Poppins", sans-serif;
  margin-bottom: 9px;
}
.product_content h3 a:hover {
  color: var(--a11y-arancio);
}
.cart_text h2 {
  font-size: 18px;
  text-transform: capitalize;
  font-weight: 600;
  margin-bottom: 0;
}
.shop_widget_title h2 {
  font-weight: normal;
  font-size: 24px;
  line-height: 94.3%;
  text-transform: capitalize;
  margin-bottom: 0;
}
@media only screen and (max-width: 767px) {
  .shop_widget_title h2 {
    font-size: 20px;
  }
}
.condizioni_titolo {
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.5;
  margin: 1.5rem 0 0.25rem;
}

/* --- elenchi usati per la griglia prodotti / slide --------------------- */
ul.row.list-unstyled {
  padding-left: 0;
  margin-bottom: 0;
}

/* --- scheda prodotto ---------------------------------------------------- */
.product_title_big {
  font-size: 32px;
  line-height: 36px;
  font-weight: 700;
  color: var(--a11y-arancio);
  margin-bottom: 1.5rem;
}
.product_price_big {
  color: #000;
  font-size: 24px;
  font-weight: 700;
  margin-bottom: 0.5rem;
}
.product_disp {
  font-size: 16px;
  font-style: italic;
  color: var(--a11y-testo-2);
  margin: 1rem 0;
}
.product_disp--esaurito {
  color: var(--a11y-errore);
}
.product_variant {
  border: 0;
  padding: 0;
  margin-bottom: 0.5rem;
}
.product_variant legend,
.product_variant_title {
  float: none;
  width: auto;
  font-size: 1rem;
  font-weight: 700;
  color: var(--a11y-arancio);
  margin-bottom: 0.25rem;
}
.avviso_kit,
.avviso_kit a {
  color: var(--a11y-errore);
  font-size: 14px;
}
.avviso_kit a {
  text-decoration: underline;
}

/* --- moduli -------------------------------------------------------------- */
.form_label {
  display: block;
  font-size: 14px;
  font-weight: 500;
  color: var(--a11y-testo);
  margin-bottom: 4px;
}
.form_note,
.form_hint {
  font-size: 14px;
  color: var(--a11y-testo-2);
  margin: 4px 0 12px;
}
.form_legend {
  float: none;
  width: auto;
  font-size: 1rem;
  font-weight: 600;
  color: var(--a11y-testo);
  margin-bottom: 0.5rem;
}
.form_legend a {
  text-decoration: underline;
}
fieldset.radioblock,
fieldset.product_variant {
  min-width: 0;
  border: 0;
}
/* bordo dei campi visibile (1.4.11: contrasto componenti non testuali) */
.form_input input,
.form_textarea textarea,
.product_variant_size select,
#frm select {
  border: 1px solid var(--a11y-bordo-campo) !important;
}
/* spaziatura interna uniforme di tutti i campi (esclusi caselle e pulsanti) */
input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="image"]):not([type="submit"]):not([type="button"]):not([type="reset"]),
select {
  height: 40px !important;
  padding: 8px !important;
  margin-left: 0 !important;
}
.consent_text {
  font-size: 14px;
  line-height: 21px;
  color: var(--a11y-testo);
  background: #F9F9F9;
  padding: 12px 18px;
  margin: 0;
}
.form_error,
span.error,
label.error {
  display: block;
  color: var(--a11y-errore);
  font-size: 14px;
  font-weight: 600;
  margin-top: 4px;
}
input.error,
select.error,
textarea.error {
  border-color: var(--a11y-errore) !important;
}

/* --- carrello ------------------------------------------------------------ */
.cart_title {
  font-size: 24px;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--a11y-arancio);
  margin-bottom: 1rem;
}
.cart_head th {
  font-size: 16px;
  font-weight: 700;
  color: var(--a11y-arancio);
}
#carrello tbody th {
  font-weight: normal;
  text-align: left;
}

/* --- messaggi di esito ---------------------------------------------------- */
.esito_msg {
  margin: 1.5rem 0;
}
.esito_msg--errore {
  color: var(--a11y-errore);
}

/* --- link nel testo distinguibili non solo per colore (1.4.1) ------------ */
main p a,
main li a,
main td a,
.footer_section a {
  text-decoration: underline;
}
main nav a,
main .product_content a,
main .widget_categories a,
main .cart_button a {
  text-decoration: none;
}

/* --- movimento ridotto (2.3.3) ------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* --- sezione "Novita' on line" su sfondo blu (bianco su #1879B9 = 4.7:1) --- */
.product_new .product_tab_title,
.product_new .product_content h3 a {
  color: #ffffff;
}
.product_new .product_content h3 a:hover {
  color: #000;
}

/* --- campo trappola per i bot (antibot.php): fuori dallo schermo, nascosto anche ai lettori di schermo (aria-hidden) --- */
.campo-trappola {
  position: absolute !important;
  left: -10000px;
  top: auto;
  width: 1px;
  height: 1px;
  overflow: hidden;
}
