/*
Theme Name: Casa Bagno Store
Description: Tema child di Hello Commerce per Casa Bagno Store.
Author: D.Carlone @Upsystems S.p.A.
Template: hello-commerce
Version: 1.0.0
Text Domain: casabagnostore

  _    _ _____   _______     _______ _______ ______ __  __  _____ 
 | |  | |  __ \ / ____\ \   / / ____|__   __|  ____|  \/  |/ ____|
 | |  | | |__) | (___  \ \_/ / (___    | |  | |__  | \  / | (___  
 | |  | |  ___/ \___ \  \   / \___ \   | |  |  __| | |\/| |\___ \ 
 | |__| | |     ____) |  | |  ____) |  | |  | |____| |  | |____) |
  \____/|_|    |_____/   |_| |_____/   |_|  |______|_|  |_|_____/ 
                                                                  
                                                                  

*/


/* --------------------------------------------------------------------------
   ACCESSO / REGISTRAZIONE CLIENTI
   Lo scope :not(.logged-in) mantiene questi stili fuori dalla dashboard.
   -------------------------------------------------------------------------- */

body.woocommerce-account {
  --cbs-account-green: #1f563a;
  --cbs-account-orange: #e86726;
  --cbs-account-orange-dark: #c94f16;
  --cbs-account-ink: #18372a;
  --cbs-account-muted: #52656f;
  --cbs-account-border: #dfe4e1;
  --cbs-account-surface: #ffffff;
  --cbs-account-canvas: #f3f6f4;
}

body.woocommerce-account:not(.logged-in)
  .elementor-widget-woocommerce-my-account {
  width: 100% !important;
  max-width: 1240px;
  margin-right: auto;
  margin-left: auto;
}

body.woocommerce-account:not(.logged-in)
  .elementor-widget-woocommerce-my-account
  .e-my-account-tab {
  width: 100%;
}

body.woocommerce-account:not(.logged-in)
  .elementor-widget-woocommerce-my-account
  .e-my-account-tab
  > .woocommerce {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: clamp(24px, 3vw, 40px);
  row-gap: 24px;
  align-items: stretch;
  margin: 0;
}

body.woocommerce-account:not(.logged-in)
  .elementor-widget-woocommerce-my-account
  .e-my-account-tab
  > .woocommerce
  > h2 {
  position: relative;
  margin: 0;
  padding: 0 0 14px;
  color: var(--cbs-account-green);
  font-size: clamp(27px, 2.2vw, 36px);
  font-weight: 700;
  letter-spacing: -0.025em;
  line-height: 1.15;
}

body.woocommerce-account:not(.logged-in)
  .elementor-widget-woocommerce-my-account
  .e-my-account-tab
  > .woocommerce
  > h2::after {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 42px;
  height: 3px;
  border-radius: 99px;
  background: var(--cbs-account-orange);
  content: "";
}

body.woocommerce-account:not(.logged-in)
  .elementor-widget-woocommerce-my-account
  .e-my-account-tab
  > .woocommerce
  > h2:nth-of-type(1) {
  grid-column: 1;
  grid-row: 1;
}

body.woocommerce-account:not(.logged-in)
  .elementor-widget-woocommerce-my-account
  .e-my-account-tab
  > .woocommerce
  > h2:nth-of-type(2) {
  grid-column: 2;
  grid-row: 1;
}

body.woocommerce-account:not(.logged-in)
  .elementor-widget-woocommerce-my-account
  .e-my-account-tab
  > .woocommerce
  > .woocommerce-form-login {
  grid-column: 1;
  grid-row: 2;
}

body.woocommerce-account:not(.logged-in)
  .elementor-widget-woocommerce-my-account
  .e-my-account-tab
  > .woocommerce
  > .woocommerce-form-register {
  grid-column: 2;
  grid-row: 2;
}

body.woocommerce-account:not(.logged-in)
  .elementor-widget-woocommerce-my-account
  form.woocommerce-form-login,
body.woocommerce-account:not(.logged-in)
  .elementor-widget-woocommerce-my-account
  form.woocommerce-form-register,
body.woocommerce-account:not(.logged-in)
  .elementor-widget-woocommerce-my-account
  form.lost_reset_password {
  height: 100%;
  margin: 0;
  padding: clamp(24px, 3vw, 38px);
  border: 1px solid var(--cbs-account-border);
  border-radius: 18px;
  background-color: var(--cbs-account-canvas) !important;
  box-shadow: none !important;
}

body.woocommerce-account:not(.logged-in)
  .elementor-widget-woocommerce-my-account
  form
  .form-row {
  margin: 0 0 18px;
  padding: 0;
}

body.woocommerce-account:not(.logged-in)
  .elementor-widget-woocommerce-my-account
  form
  .form-row:last-child {
  margin-bottom: 0;
}

body.woocommerce-account:not(.logged-in)
  .elementor-widget-woocommerce-my-account
  form
  label {
  display: block;
  margin: 0 0 11px;
  color: var(--cbs-account-ink);
  font-size: 14px;
  font-weight: 650;
  line-height: 1.4;
}

body.woocommerce-account:not(.logged-in)
  .elementor-widget-woocommerce-my-account
  form
  .required {
  color: var(--cbs-account-orange);
}

body.woocommerce-account:not(.logged-in)
  .elementor-widget-woocommerce-my-account
  form
  input.input-text {
  width: 100%;
  min-height: 54px;
  padding: 13px 16px;
  border: 1px solid #cfd9d2;
  border-radius: 10px;
  outline: 0;
  background: #fbfcfb;
  color: var(--cbs-account-ink);
  font-size: 16px;
  line-height: 1.4;
  transition: border-color 0.2s ease, box-shadow 0.2s ease,
    background-color 0.2s ease;
}

body.woocommerce-account:not(.logged-in)
  .elementor-widget-woocommerce-my-account
  form
  input.input-text:hover {
  border-color: #aabcb0;
  background: #fff;
}

body.woocommerce-account:not(.logged-in)
  .elementor-widget-woocommerce-my-account
  form
  input.input-text:focus {
  border-color: var(--cbs-account-green);
  background: #fff;
  box-shadow: 0 0 0 4px rgb(31 86 58 / 12%);
}

body.woocommerce-account:not(.logged-in)
  .elementor-widget-woocommerce-my-account
  .show-password-input {
  top: 50%;
  right: 16px;
  transform: translateY(-50%);
  color: var(--cbs-account-green);
}

body.woocommerce-account:not(.logged-in)
  .elementor-widget-woocommerce-my-account
  form
  .woocommerce-form-login__rememberme {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  color: var(--cbs-account-muted);
  font-weight: 500;
  line-height: 1;
  order: 1;
}

body.woocommerce-account:not(.logged-in)
  .elementor-widget-woocommerce-my-account
  .woocommerce-form-login
  .form-row:has(.woocommerce-form-login__submit) {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
  margin-top: 4px;
  margin-bottom: 12px;
}

body.woocommerce-account:not(.logged-in)
  .elementor-widget-woocommerce-my-account
  .woocommerce-form-login
  .woocommerce-form-login__submit {
  float: none;
  flex: 0 0 auto;
  margin: 0;
  order: 2;
}

body.woocommerce-account:not(.logged-in)
  .elementor-widget-woocommerce-my-account
  form
  input[type="checkbox"] {
  width: 17px;
  height: 17px;
  margin: 0;
  accent-color: var(--cbs-account-green);
}

body.woocommerce-account:not(.logged-in)
  .elementor-widget-woocommerce-my-account
  form
  button.button {
  min-height: 46px;
  padding: 11px 24px;
  border: 0;
  border-radius: 999px;
  background: var(--cbs-account-orange);
  box-shadow: none;
  color: #fff;
  font-size: 15px;
  font-weight: 700;
  line-height: 1;
  transition: background-color 0.2s ease;
}

body.woocommerce-account:not(.logged-in)
  .elementor-widget-woocommerce-my-account
  form
  button.button:hover,
body.woocommerce-account:not(.logged-in)
  .elementor-widget-woocommerce-my-account
  form
  button.button:focus-visible {
  background: var(--cbs-account-orange-dark);
  box-shadow: none;
  color: #fff;
}

body.woocommerce-account:not(.logged-in)
  .elementor-widget-woocommerce-my-account
  form
  button.button:focus-visible {
  outline: 3px solid rgb(31 86 58 / 22%);
  outline-offset: 3px;
}

body.woocommerce-account:not(.logged-in)
  .elementor-widget-woocommerce-my-account
  .woocommerce-LostPassword {
  margin: 0;
}

body.woocommerce-account:not(.logged-in)
  .elementor-widget-woocommerce-my-account
  .woocommerce-LostPassword
  a,
body.woocommerce-account:not(.logged-in)
  .elementor-widget-woocommerce-my-account
  form
  a {
  color: var(--cbs-account-green) !important;
  font-weight: 600;
  text-decoration: underline;
  text-decoration-color: rgb(31 86 58 / 28%);
  text-underline-offset: 3px;
}

body.woocommerce-account:not(.logged-in)
  .elementor-widget-woocommerce-my-account
  .woocommerce-LostPassword
  a:hover,
body.woocommerce-account:not(.logged-in)
  .elementor-widget-woocommerce-my-account
  form
  a:hover {
  color: var(--cbs-account-orange) !important;
  text-decoration-color: currentColor;
}

body.woocommerce-account:not(.logged-in)
  .elementor-widget-woocommerce-my-account
  form.woocommerce-form-register
  p:not(.form-row) {
  margin: 0 0 16px;
  color: var(--cbs-account-muted);
  font-size: 14px;
  line-height: 1.7;
}

body.woocommerce-account:not(.logged-in)
  .elementor-widget-woocommerce-my-account
  form.woocommerce-form-register
  p:not(.form-row)
  a {
  font-size: inherit;
  line-height: inherit;
}

/* Recupero password: ritmo verticale coerente con accesso e registrazione. */
body.woocommerce-account:not(.logged-in)
  .elementor-widget-woocommerce-my-account
  form.lost_reset_password {
  margin: 0;
}

body.woocommerce-account:not(.logged-in)
  .elementor-widget-woocommerce-my-account
  form.lost_reset_password
  > p:first-child {
  margin: 0 0 20px;
  color: var(--cbs-account-muted);
  font-size: 14px;
  line-height: 1.7;
}

body.woocommerce-account:not(.logged-in)
  .elementor-widget-woocommerce-my-account
  form.lost_reset_password
  .form-row-first {
  float: none;
  width: 100%;
  margin: 0 0 22px;
}

body.woocommerce-account:not(.logged-in)
  .elementor-widget-woocommerce-my-account
  form.lost_reset_password
  .clear {
  display: none;
}

body.woocommerce-account:not(.logged-in)
  .elementor-widget-woocommerce-my-account
  form.lost_reset_password
  .form-row:last-of-type,
body.woocommerce-account:not(.logged-in)
  .elementor-widget-woocommerce-my-account
  form.lost_reset_password
  button.button {
  margin: 0;
}

body.woocommerce-account:not(.logged-in)
  .elementor-widget-woocommerce-my-account
  .woocommerce-error,
body.woocommerce-account:not(.logged-in)
  .elementor-widget-woocommerce-my-account
  .woocommerce-message,
body.woocommerce-account:not(.logged-in)
  .elementor-widget-woocommerce-my-account
  .woocommerce-info {
  grid-column: 1 / -1;
  margin: 0;
  border: 1px solid var(--cbs-account-border);
  border-top: 4px solid var(--cbs-account-green);
  border-radius: 12px;
  background: var(--cbs-account-surface);
  box-shadow: 0 8px 24px rgb(20 29 24 / 8%);
}

body.woocommerce-account:not(.logged-in)
  .elementor-widget-woocommerce-my-account
  .woocommerce-error {
  border-top-color: #b42318;
}

@media (max-width: 767px) {
  body.woocommerce-account:not(.logged-in)
    .elementor-widget-woocommerce-my-account
    .e-my-account-tab
    > .woocommerce {
    display: flex;
    flex-direction: column;
    gap: 18px;
  }

  body.woocommerce-account:not(.logged-in)
    .elementor-widget-woocommerce-my-account
    .e-my-account-tab
    > .woocommerce
    > h2:nth-of-type(2) {
    margin-top: 12px;
  }

  body.woocommerce-account:not(.logged-in)
    .elementor-widget-woocommerce-my-account
    form.woocommerce-form-login,
  body.woocommerce-account:not(.logged-in)
    .elementor-widget-woocommerce-my-account
    form.woocommerce-form-register,
  body.woocommerce-account:not(.logged-in)
    .elementor-widget-woocommerce-my-account
    form.lost_reset_password {
    padding: 22px 18px;
    border-radius: 14px;
  }

  body.woocommerce-account:not(.logged-in)
    .elementor-widget-woocommerce-my-account
    form
    .woocommerce-form-login__rememberme {
    width: 100%;
    margin: 0;
    order: 1;
  }

  body.woocommerce-account:not(.logged-in)
    .elementor-widget-woocommerce-my-account
    form
    button.button {
    width: 100%;
  }

  body.woocommerce-account:not(.logged-in)
    .elementor-widget-woocommerce-my-account
    .woocommerce-form-login
    .woocommerce-form-login__submit {
    order: 2;
  }
}

/* --------------------------------------------------------------------------
   PAGAMENTO
   Colori e stati interattivi del Checkout Block coerenti con il tema.
   -------------------------------------------------------------------------- */

body.woocommerce-checkout {
  --cbs-checkout-green: #1f563a;
  --cbs-checkout-orange: #eb641c;
  --cbs-checkout-orange-dark: #d9520e;
  --cbs-checkout-muted: #66756d;
}

body.woocommerce-checkout .wc-block-checkout a {
  color: var(--cbs-checkout-green);
  font-family: inherit;
  font-size: inherit !important;
  font-weight: inherit;
  line-height: inherit;
  text-decoration-color: rgb(31 86 58 / 28%);
  text-underline-offset: 3px;
  transition: color 0.2s ease, text-decoration-color 0.2s ease;
}

body.woocommerce-checkout .wc-block-checkout a:is(:hover, :focus-visible) {
  color: var(--cbs-checkout-orange);
  text-decoration-color: currentColor;
}

body.woocommerce-checkout
  .wc-block-components-checkout-place-order-button,
body.woocommerce-checkout
  .wc-block-components-button:not(.is-link):not(:disabled) {
  border-color: var(--cbs-checkout-orange) !important;
  background: var(--cbs-checkout-orange) !important;
  box-shadow: none !important;
  color: #fff !important;
  transition: background-color 0.2s ease, border-color 0.2s ease;
}

body.woocommerce-checkout
  .wc-block-components-checkout-place-order-button:hover,
body.woocommerce-checkout
  .wc-block-components-button:not(.is-link):not(:disabled):hover {
  border-color: var(--cbs-checkout-orange-dark) !important;
  background: var(--cbs-checkout-orange-dark) !important;
  box-shadow: none !important;
  color: #fff !important;
}

body.woocommerce-checkout
  .wc-block-components-checkout-place-order-button:disabled,
body.woocommerce-checkout .wc-block-components-button:disabled {
  border-color: #dce5df !important;
  background: #e9eeeb !important;
  box-shadow: none !important;
  color: var(--cbs-checkout-muted) !important;
  cursor: not-allowed;
  opacity: 1;
}

body.woocommerce-checkout .wc-block-components-button.is-link,
body.woocommerce-checkout .wc-block-components-address-card__edit,
body.woocommerce-checkout .wc-block-components-address-form__address_2-toggle {
  color: var(--cbs-checkout-green) !important;
  text-decoration: none;
}

body.woocommerce-checkout .wc-block-components-button.is-link:hover,
body.woocommerce-checkout .wc-block-components-address-card__edit:hover,
body.woocommerce-checkout
  .wc-block-components-address-form__address_2-toggle:hover {
  color: var(--cbs-checkout-orange) !important;
}

body.woocommerce-checkout .wc-block-components-checkbox__input,
body.woocommerce-checkout .wc-block-components-radio-control__input {
  accent-color: var(--cbs-checkout-orange);
}

body.woocommerce-checkout
  :is(a, button, input, select, textarea):focus-visible {
  outline: 3px solid rgb(31 86 58 / 22%);
  outline-offset: 2px;
  box-shadow: none !important;
}

/* --------------------------------------------------------------------------
   CARRELLO
   Restyling del widget Elementor/WooCommerce, mantenendo intatta la logica.
   -------------------------------------------------------------------------- */

body.woocommerce-cart {
  --cbs-cart-green: #1f563a;
  --cbs-cart-orange: #eb641c;
  --cbs-cart-orange-dark: #d9520e;
  --cbs-cart-ink: #18372a;
  --cbs-cart-muted: #66756d;
  --cbs-cart-border: #dce5df;
  --cbs-cart-soft: #f6f8f6;
}

body.woocommerce-cart .elementor-widget-woocommerce-cart,
body.woocommerce-cart .woocommerce {
  color: var(--cbs-cart-ink);
}

body.woocommerce-cart .e-cart__container {
  align-items: start;
  gap: clamp(24px, 3vw, 42px);
}

body.woocommerce-cart .e-cart__column-start,
body.woocommerce-cart .e-cart__column-end,
body.woocommerce-cart table.shop_table,
body.woocommerce-cart .cart_totals {
  border: 1px solid var(--cbs-cart-border) !important;
  border-radius: 10px;
  background: #fff;
  box-shadow: none !important;
}

body.woocommerce-cart .e-cart__column-start,
body.woocommerce-cart .e-cart__column-end {
  padding: clamp(22px, 2.5vw, 34px) !important;
}

body.woocommerce-cart table.shop_table {
  margin: 0;
  overflow: hidden;
  border-collapse: separate;
  border-spacing: 0;
  border: 0 !important;
  border-radius: 0;
  box-shadow: none;
}

body.woocommerce-cart .e-cart__column-start .e-cart-section,
body.woocommerce-cart .e-cart__column-end .e-cart__column-inner,
body.woocommerce-cart .e-cart__column-end .e-cart-totals,
body.woocommerce-cart .e-cart__column-end .cart_totals {
  border: 0 !important;
  border-radius: 0;
  box-shadow: none !important;
}

body.woocommerce-cart table.shop_table thead th {
  padding: 0 14px 18px !important;
  border: 0 !important;
  border-bottom: 1px solid var(--cbs-cart-border) !important;
  background: transparent !important;
  color: var(--cbs-cart-green);
  font-size: 12px;
  font-weight: 750;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

body.woocommerce-cart table.shop_table tbody td {
  padding: 20px 14px !important;
  border: 0 !important;
  border-bottom: 1px solid var(--cbs-cart-border) !important;
  background: #fff !important;
  vertical-align: middle;
}

body.woocommerce-cart table.shop_table tbody tr:last-child td {
  border-bottom: 0 !important;
}

body.woocommerce-cart .product-thumbnail img,
body.woocommerce-cart .attachment-woocommerce_thumbnail {
  width: 74px !important;
  min-width: 74px;
  height: 74px !important;
  padding: 0;
  border: 0;
  border-radius: 10px;
  background: var(--cbs-cart-soft);
  object-fit: cover;
}

body.woocommerce-cart .product-name a {
  color: var(--cbs-cart-green) !important;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.4;
  text-decoration: none !important;
  transition: color 0.2s ease;
}

body.woocommerce-cart .product-name a:hover {
  color: var(--cbs-cart-orange) !important;
}

body.woocommerce-cart .product-price,
body.woocommerce-cart .product-subtotal,
body.woocommerce-cart .amount {
  color: var(--cbs-cart-ink);
  font-weight: 700;
}

body.woocommerce-cart .quantity .qty {
  width: 64px;
  min-height: 42px;
  padding: 8px 10px;
  border: 1px solid #cfd9d2;
  border-radius: 9px;
  background: #fbfcfb;
  color: var(--cbs-cart-ink);
  text-align: center;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

body.woocommerce-cart .quantity .qty:focus {
  border-color: var(--cbs-cart-green);
  outline: 0;
  box-shadow: 0 0 0 4px rgb(31 86 58 / 12%);
}

body.woocommerce-cart table.shop_table a.remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: var(--cbs-cart-muted) !important;
  font-size: 0;
  line-height: 1;
  text-decoration: none;
  transition: background-color 0.2s ease, color 0.2s ease;
}

body.woocommerce-cart table.shop_table a.remove::before {
  content: "\00d7";
  display: block;
  font-family: Arial, sans-serif;
  font-size: 21px;
  font-weight: 400;
  line-height: 1;
}

body.woocommerce-cart table.shop_table a.remove:hover {
  background: #fff4ec !important;
  color: var(--cbs-cart-orange) !important;
}

body.woocommerce-cart .elementor-widget-woocommerce-cart .woocommerce .cart_totals h2,
body.woocommerce-cart .e-cart__column-end .e-cart__column-inner::before {
  color: var(--cbs-cart-green);
}

body.woocommerce-cart .elementor-widget-woocommerce-cart .woocommerce .cart_totals h2 {
  margin: 0 0 22px;
  font-size: clamp(22px, 2vw, 28px);
  font-weight: 750;
  letter-spacing: -0.025em;
}

body.woocommerce-cart .cart_totals table.shop_table {
  border-top: 1px solid var(--cbs-cart-border) !important;
  border-radius: 0;
}

body.woocommerce-cart .cart_totals table.shop_table th,
body.woocommerce-cart .cart_totals table.shop_table td {
  padding: 16px 0 !important;
  border: 0 !important;
  border-bottom: 1px solid var(--cbs-cart-border) !important;
  background: transparent !important;
  color: var(--cbs-cart-muted);
  font-size: 14px;
  line-height: 1.55;
}

body.woocommerce-cart .cart_totals table.shop_table td {
  padding-left: 18px !important;
  color: var(--cbs-cart-ink);
  text-align: right;
}

body.woocommerce-cart .cart_totals table.shop_table tr.order-total th,
body.woocommerce-cart .cart_totals table.shop_table tr.order-total td {
  padding-top: 20px !important;
  border-bottom: 0 !important;
  color: var(--cbs-cart-green);
  font-size: 18px;
  font-weight: 800;
}

body.woocommerce-cart .woocommerce-shipping-methods,
body.woocommerce-cart .woocommerce-shipping-destination {
  color: var(--cbs-cart-muted);
  font-size: 13px;
}

body.woocommerce-cart .wc-proceed-to-checkout {
  padding: 22px 0 0;
}

body.woocommerce-cart .elementor-widget-woocommerce-cart.elementor-widget .woocommerce .wc-proceed-to-checkout a.checkout-button,
body.woocommerce-cart .e-cart__column-end .checkout-button {
  min-height: 52px;
  margin: 0;
  padding: 16px 24px;
  border: 0;
  border-radius: 999px;
  background: var(--cbs-cart-orange);
  box-shadow: none !important;
  color: #fff !important;
  font-size: 15px;
  font-weight: 750;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  transition: background-color 0.2s ease;
}

body.woocommerce-cart .elementor-widget-woocommerce-cart.elementor-widget .woocommerce .wc-proceed-to-checkout a.checkout-button:is(:hover, :focus-visible),
body.woocommerce-cart .e-cart__column-end .checkout-button:is(:hover, :focus-visible) {
  background: var(--cbs-cart-orange-dark);
  box-shadow: none !important;
}

body.woocommerce-cart .elementor-widget-woocommerce-cart.elementor-widget .woocommerce .wc-proceed-to-checkout a.checkout-button:focus-visible,
body.woocommerce-cart .product-name a:focus-visible,
body.woocommerce-cart table.shop_table a.remove:focus-visible {
  outline: 3px solid rgb(31 86 58 / 22%);
  outline-offset: 3px;
}

body.woocommerce-cart table.cart td.actions {
  padding-top: 22px !important;
}

body.woocommerce-cart table.cart td.actions .coupon .input-text {
  min-height: 44px;
  border-color: #cfd9d2;
  border-radius: 9px;
}

body.woocommerce-cart table.cart td.actions button.button {
  min-height: 44px;
  border-radius: 999px;
  background: var(--cbs-cart-green);
  color: #fff;
}

@media (max-width: 767px) {
  body.woocommerce-cart .e-cart__container {
    gap: 20px;
  }

  body.woocommerce-cart .e-cart__column-start,
  body.woocommerce-cart .e-cart__column-end {
    padding: 18px 14px !important;
    border-radius: 10px;
  }

  body.woocommerce-cart table.shop_table thead {
    display: none;
  }

  body.woocommerce-cart table.shop_table tbody td {
    padding: 14px 8px !important;
  }

  body.woocommerce-cart .product-thumbnail img,
  body.woocommerce-cart .attachment-woocommerce_thumbnail {
    width: 62px !important;
    min-width: 62px;
    height: 62px !important;
  }

  body.woocommerce-cart .product-name a {
    font-size: 14px;
  }

  body.woocommerce-cart table.cart td.actions .coupon {
    flex-wrap: wrap;
    gap: 10px;
  }

  body.woocommerce-cart table.cart td.actions .coupon .input-text,
  body.woocommerce-cart table.cart td.actions button.button {
    width: 100% !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.woocommerce-account:not(.logged-in)
    .elementor-widget-woocommerce-my-account
    *,
  body.woocommerce-cart *,
  body.woocommerce-checkout * {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }
}


/*STILE AGGIUNTIVO DASHBOARD UTENTE - ADDRESS BOOK*/

body.woocommerce-account.logged-in .woocommerce-MyAccount-content .wcab-address-book {
  width: 100%;
  min-width: 0;
}

body.woocommerce-account.logged-in .woocommerce-MyAccount-content .wcab-address-book__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  margin: 0 0 16px !important;
  padding: 0 !important;
}

body.woocommerce-account.logged-in .woocommerce-MyAccount-content .wcab-address-book__header h2 {
  margin: 0 !important;
  padding: 0 !important;
}

body.woocommerce-account.logged-in .woocommerce-MyAccount-content .wcab-address-book__grid {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 0 !important;
}

body.woocommerce-account.logged-in .woocommerce-MyAccount-content .wcab-address-card {
  display: flex !important;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px 24px;
  width: 100%;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 16px 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  box-sizing: border-box;
}

body.woocommerce-account.logged-in .woocommerce-MyAccount-content .wcab-address-card + .wcab-address-card {
  border-top: 1px solid #e7ebe8 !important;
}

body.woocommerce-account.logged-in .woocommerce-MyAccount-content .wcab-address-card__details {
  display: block;
  flex: 1 1 320px;
  min-width: 0;
  margin: 0 !important;
  padding: 0 !important;
  overflow-wrap: anywhere;
}

body.woocommerce-account.logged-in .woocommerce-MyAccount-content h3.wcab-address-card__label {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0 0 4px !important;
  padding: 0 !important;
  color: var(--account-heading, #1f563a);
  font-size: 16px !important;
  font-weight: 600;
  line-height: 1.4 !important;
}

body.woocommerce-account.logged-in .woocommerce-MyAccount-content .wcab-address-card__pin {
  flex: 0 0 20px;
  width: 20px;
  height: 20px;
  color: var(--account-heading, #1f563a);
}

body.woocommerce-account.logged-in .woocommerce-MyAccount-content address.wcab-address-card__content {
  display: block;
  width: auto !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: var(--account-text, #52656f) !important;
  font-size: 14px !important;
  font-style: normal !important;
  line-height: 1.6 !important;
}

body.woocommerce-account.logged-in .woocommerce-MyAccount-content .wcab-address-card__actions {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex: 0 1 auto;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 !important;
  padding: 0 !important;
}

body.woocommerce-account.logged-in .woocommerce-MyAccount-content .wcab-address-card__actions form {
  width: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.woocommerce-account.logged-in .woocommerce-MyAccount-content .wcab-address-card__actions .button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto !important;
  min-height: 40px;
  margin: 0 !important;
  padding: 8px 12px !important;
  font-size: 14px !important;
  line-height: 1.4 !important;
  white-space: normal;
}

body.woocommerce-account.logged-in .woocommerce-MyAccount-content .wcab-address-book .wcab-badge {
  margin: 0 0 0 4px;
  font-size: 12px;
  font-weight: 400;
}

@media (max-width: 767px) {
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .wcab-address-card__details,
  body.woocommerce-account.logged-in .woocommerce-MyAccount-content .wcab-address-card__actions {
    flex-basis: 100%;
  }
}


/* Avvisi WooCommerce: regole non duplicate */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-notice,
.woocommerce form.checkout_coupon,
.woocommerce form.login,
.woocommerce form.register {
    color: #333333;
}


/* CSS consolidato proveniente dal Personalizzatore */


/* PRODOTTO E CHECKOUT*/

.woocommerce:where(body:not(.woocommerce-uses-block-theme)) div.product p.price {
    color: #356241;
}

.woocommerce .woocommerce-product-gallery {
    border: 0;
}

.woocommerce-checkout.woocommerce-order-received .woocommerce-notice--success {
    margin-top: 60px;
}


/* VARIABILI AREA ACCOUNT */

body.woocommerce-account {
    --account-accent: #e86726;
    --account-accent-hover: #c94f16;
    --account-text: #52656f;
    --account-heading: #1f563a;
    --account-bg: #ffffff;
    --account-border: #dfe4e1;
    --account-muted-bg: #f3f6f4;
    --account-table-border: #e8ece9;
    --account-input-border: #cfd8d3;
    --account-input-text: #34454d;
}

/* Azzeramento ombre su tutti gli elementi dell'area account */
body.woocommerce-account .elementor-widget-woocommerce-my-account,
body.woocommerce-account .elementor-widget-woocommerce-my-account .e-my-account-tab,
body.woocommerce-account .elementor-widget-woocommerce-my-account .woocommerce,
body.woocommerce-account .woocommerce-MyAccount-content,
body.woocommerce-account .woocommerce-MyAccount-content-wrapper,
body.woocommerce-account .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-MyAccount-navigation,
body.woocommerce-account .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-MyAccount-navigation ul,
body.woocommerce-account .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-MyAccount-navigation li,
body.woocommerce-account .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-MyAccount-navigation a,
body.woocommerce-account .woocommerce-Addresses .woocommerce-Address,
body.woocommerce-account .wcab-address-card,
body.woocommerce-account table.shop_table,
body.woocommerce-account fieldset,
body.woocommerce-account input,
body.woocommerce-account select,
body.woocommerce-account textarea,
body.woocommerce-account button,
body.woocommerce-account .button {
    box-shadow: none !important;
    text-shadow: none !important;
}


/* LAYOUT GENERALE ACCOUNT*/

body.woocommerce-account .woocommerce-MyAccount-content,
body.woocommerce-account .woocommerce-MyAccount-content-wrapper,
body.woocommerce-account .woocommerce-Addresses .woocommerce-Address,
body.woocommerce-account .wcab-address-card,
body.woocommerce-account table.shop_table,
body.woocommerce-account table.shop_table td {
    background-color: var(--account-bg) !important;
}

body.woocommerce-account .woocommerce-MyAccount-content {
    color: var(--account-text) !important;
}

body.woocommerce-account .woocommerce-MyAccount-content-wrapper {
    width: 100%;
    min-width: 0;
    padding: 24px !important;
    border: 0 !important;
    border-radius: 0 !important;
}

body.woocommerce-account .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-MyAccount-content h2,
body.woocommerce-account .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-MyAccount-content h3,
body.woocommerce-account .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-MyAccount-content legend {
    color: var(--account-heading) !important;
    font-weight: 600;
    line-height: 1.25;
}

body.woocommerce-account .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-MyAccount-content h2 {
    margin: 0 0 22px;
    font-size: 30px;
}

body.woocommerce-account .woocommerce-MyAccount-content p,
body.woocommerce-account .woocommerce-MyAccount-content li,
body.woocommerce-account .woocommerce-MyAccount-content address {
    color: var(--account-text) !important;
    line-height: 1.65;
}


/* NAVIGAZIONE (TAB) ACCOUNT */

body.woocommerce-account .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-MyAccount-navigation ul {
    overflow: visible;
    margin: 0 !important;
    padding: 0 !important;
    background: var(--account-bg) !important;
    border: 0 !important;
    border-radius: 0 !important;
}

body.woocommerce-account .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-MyAccount-navigation li {
    margin: 0 0 4px !important;
    background: var(--account-bg) !important;
    border: 0 !important;
}

body.woocommerce-account .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-MyAccount-navigation li a {
    display: block !important;
    padding: 13px 16px !important;
    color: var(--account-accent) !important;

    background-color: var(--account-muted-bg) !important;
    border: 0 !important;
    border-radius: 4px !important;
    text-decoration: none !important;
    transition: color .2s ease, background-color .2s ease;
}

body.woocommerce-account .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-MyAccount-navigation li:not(.is-active) a:hover,
body.woocommerce-account .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-MyAccount-navigation li:not(.is-active) a:focus-visible {
    color: var(--account-accent-hover) !important;

    background-color: #e8eee9 !important;
}

body.woocommerce-account .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-MyAccount-navigation li.is-active,
body.woocommerce-account .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-MyAccount-navigation li.is-active a,
body.woocommerce-account .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-MyAccount-navigation li.is-active a:hover,
body.woocommerce-account .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-MyAccount-navigation li.is-active a:focus,
body.woocommerce-account .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-MyAccount-navigation li.is-active a:active {
    color: #ffffff !important;

    background: var(--account-accent) !important;
    border-color: var(--account-accent) !important;
}


/* LINK TESTUALI */

body.woocommerce-account .woocommerce-MyAccount-content a:where(:not(.button):not(.edit):not(.wcab-native-address-link__button):not(.wcab-address-book-link)) {
    color: var(--account-accent) !important;
    text-decoration-color: currentColor;
}

body.woocommerce-account .woocommerce-MyAccount-content a:where(:not(.button):not(.edit):not(.wcab-native-address-link__button):not(.wcab-address-book-link)):hover,
body.woocommerce-account .woocommerce-MyAccount-content a:where(:not(.button):not(.edit):not(.wcab-native-address-link__button):not(.wcab-address-book-link)):focus {
    color: var(--account-accent-hover) !important;
}


/* BOTTONI E CTA */

body.woocommerce-account .woocommerce-MyAccount-content :is(a, button, input).button,
body.woocommerce-account .woocommerce-MyAccount-content .upsr-button,
body.woocommerce-account .woocommerce-MyAccount-content a.edit,
body.woocommerce-account .woocommerce-MyAccount-content a.wcab-native-address-link__button,
body.woocommerce-account .woocommerce-MyAccount-content a.wcab-address-book-link,
body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-orders-table__cell-order-actions a,
body.woocommerce-account .woocommerce-MyAccount-content a[href*="wcab_action=add"] {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 38px;
    padding: 8px 14px !important;
    color: #ffffff !important;

    background-color: var(--account-accent) !important;
    border: 1px solid var(--account-accent) !important;
    border-radius: 4px !important;
    font-weight: 600 !important;
    line-height: 1.2 !important;
    text-align: center;
    text-decoration: none !important;
}

body.woocommerce-account .woocommerce-MyAccount-content :is(a, button, input).button *,
body.woocommerce-account .woocommerce-MyAccount-content .upsr-button *,
body.woocommerce-account .woocommerce-MyAccount-content a.edit *,
body.woocommerce-account .woocommerce-MyAccount-content a.wcab-native-address-link__button *,
body.woocommerce-account .woocommerce-MyAccount-content a.wcab-address-book-link *,
body.woocommerce-account .woocommerce-MyAccount-content a.edit::before,
body.woocommerce-account .woocommerce-MyAccount-content a.edit::after {
    color: #ffffff !important;

}

body.woocommerce-account .woocommerce-MyAccount-content :is(a, button, input).button:is(:hover, :focus, :active),
body.woocommerce-account .woocommerce-MyAccount-content .upsr-button:is(:hover, :focus),
body.woocommerce-account .woocommerce-MyAccount-content a.edit:is(:hover, :focus, :active),
body.woocommerce-account .woocommerce-MyAccount-content a.wcab-native-address-link__button:is(:hover, :focus),
body.woocommerce-account .woocommerce-MyAccount-content a.wcab-address-book-link:is(:hover, :focus),
body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-orders-table__cell-order-actions a:is(:hover, :focus),
body.woocommerce-account .woocommerce-MyAccount-content a[href*="wcab_action=add"]:is(:hover, :focus) {
    color: #ffffff !important;

    background-color: var(--account-accent-hover) !important;
    border-color: var(--account-accent-hover) !important;
    box-shadow: none !important;
}

body.woocommerce-account .woocommerce-MyAccount-content .button:focus-visible,
body.woocommerce-account .woocommerce-MyAccount-content a.edit:focus-visible,
body.woocommerce-account .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-MyAccount-navigation a:focus-visible {
    outline: 2px solid var(--account-heading) !important;
    outline-offset: 2px;
}

body.woocommerce-account .woocommerce-MyAccount-content .button:disabled,
body.woocommerce-account .woocommerce-MyAccount-content .button.disabled {
    opacity: .55;
    cursor: not-allowed;
}


/*  FORM  */

body.woocommerce-account .woocommerce-MyAccount-content form .form-row {
    margin-bottom: 18px;
}

body.woocommerce-account .woocommerce-MyAccount-content label {
    margin-bottom: 7px;
    color: var(--account-heading) !important;
    font-weight: 600;
}

body.woocommerce-account .woocommerce-MyAccount-content input.input-text,
body.woocommerce-account .woocommerce-MyAccount-content select,
body.woocommerce-account .woocommerce-MyAccount-content textarea {
    min-height: 46px;
    padding: 10px 13px;
    color: var(--account-input-text) !important;
    background: var(--account-bg) !important;
    border: 1px solid var(--account-input-border) !important;
    border-radius: 4px;
}

body.woocommerce-account .woocommerce-MyAccount-content input.input-text:focus,
body.woocommerce-account .woocommerce-MyAccount-content select:focus,
body.woocommerce-account .woocommerce-MyAccount-content textarea:focus {
    border-color: var(--account-heading) !important;
    outline: 2px solid rgba(31, 86, 58, .12) !important;
    outline-offset: 1px;
}

body.woocommerce-account .woocommerce-MyAccount-content fieldset {
    margin: 28px 0 22px;
    padding: 22px;
    background: var(--account-bg) !important;
    border: 1px solid var(--account-border) !important;
    border-radius: 6px;
}


/* TABELLE  */

body.woocommerce-account .woocommerce-MyAccount-content table.shop_table {
    overflow: hidden;
    border: 0 !important;
    border-radius: 0 !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
}

body.woocommerce-account .woocommerce-MyAccount-content table.shop_table thead th {
    color: var(--account-heading) !important;
    background: var(--account-muted-bg) !important;
    font-weight: 700 !important;
}

body.woocommerce-account .woocommerce-MyAccount-content table.shop_table th,
body.woocommerce-account .woocommerce-MyAccount-content table.shop_table td {
    border-right: 0 !important;
    border-left: 0 !important;
    border-color: var(--account-table-border) !important;
}

body.woocommerce-account .woocommerce-MyAccount-content table.shop_table tbody td {
    border-top: 0 !important;
    border-bottom: 1px solid var(--account-table-border) !important;
}

body.woocommerce-account .woocommerce-orders-table__cell-order-actions,
body.woocommerce-account .woocommerce-orders-table__header-order-actions {
    text-align: center !important;
    white-space: nowrap !important;
}

body.woocommerce-account .woocommerce-orders-table__cell-order-actions a.button {
    width: auto !important;
    min-height: 34px !important;
    margin: 3px 2px !important;
    padding: 6px 9px !important;
    font-size: 12px !important;
    white-space: nowrap !important;
}


/*  SCHEDE INDIRIZZO */

body.woocommerce-account .woocommerce-Addresses .woocommerce-Address,
body.woocommerce-account .wcab-address-card {
    margin-bottom: 16px;
    padding: 18px 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
}

body.woocommerce-account .woocommerce-Addresses .woocommerce-Address + .woocommerce-Address,
body.woocommerce-account .wcab-address-card + .wcab-address-card {
    border-top: 1px solid var(--account-border) !important;
}


/*  RECESSI (CRONOLOGIA) */

body.woocommerce-account .upsr.upsr-history {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
}

body.woocommerce-account .upsr-history ul {
    margin: 0;
    padding: 16px 20px 16px 40px;
    background: var(--account-muted-bg) !important;
    border-left: 3px solid var(--account-heading);
    border-radius: 4px;
}


/* RESPONSIVE ACCOUNT  */

@media (min-width: 768px) {
    body.woocommerce-account .woocommerce-orders-table th,
    body.woocommerce-account .woocommerce-orders-table td {
        padding: 14px 16px !important;
        vertical-align: middle !important;
    }

    body.woocommerce-orders .woocommerce-orders-table__header-order-actions,
    body.woocommerce-orders .woocommerce-orders-table__cell-order-actions {
        width: 30%;
    }
}

@media (max-width: 767px) {
    body.woocommerce-account .woocommerce-MyAccount-content-wrapper {
        padding: 18px 0 !important;
    }

    body.woocommerce-account .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-MyAccount-content h2 {
        font-size: 25px;
    }

    body.woocommerce-account .woocommerce-MyAccount-content .button,
    body.woocommerce-account .woocommerce-MyAccount-content .upsr-button {
        width: 100% !important;
    }

    body.woocommerce-account .woocommerce-order-details table th,
    body.woocommerce-account .woocommerce-order-details table td {
        padding: 12px 10px !important;
        font-size: 13px !important;
    }

    body.woocommerce-account .woocommerce-orders-table__cell-order-actions {
        white-space: normal !important;
    }

    body.woocommerce-account .woocommerce-orders-table__cell-order-actions a.button {
        width: 100% !important;
        margin: 4px 0 !important;
    }
}


/*   MEGA MENU MOBILE */

@media (max-width: 767px) {
    body .cbmm .cbmm__bar {
        background-color: #f7f8f7 !important;
        border: 1px solid #e9e8e6 !important;
        border-radius: 7px !important;
    }

    body .cbmm :is(.cbmm__trigger, .cbmm__home, .cbmm__nav-link) {
        color: #356241 !important;

        background: transparent !important;
        border-color: transparent !important;
        box-shadow: none !important;
    }

    body .cbmm :is(.cbmm__trigger, .cbmm__home, .cbmm__nav-link):is(:hover, :focus, [aria-expanded="true"]) {
        color: #e86726 !important;

        background: transparent !important;
        border-color: transparent !important;
    }
}

/* Tipografia del Checkout Block: scope esplicito rispetto a Elementor e WooCommerce. */
body.woocommerce-checkout .wc-block-checkout .wc-block-components-title {
  color: var(--cbs-checkout-green);
  font-family: inherit;
  font-size: 22px;
  font-weight: 600;
  line-height: 1.25;
}

body.woocommerce-checkout .wc-block-checkout .wc-block-components-product-name {
  color: var(--cbs-checkout-green);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.4;
}

@media (max-width: 767px) {
  body.woocommerce-checkout .wc-block-checkout .wc-block-components-title {
    font-size: 20px;
  }
}

/* Scheda tecnica prodotto: tipografia locale, separata dai link globali. */
.woocommerce .wc-scheda-tecnica .wc-scheda-tecnica__download {
  margin-top: 20px;
}

.woocommerce .wc-scheda-tecnica a.wc-scheda-tecnica__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 20px;
  background: #ed651f;
  color: #fff;
  text-decoration: none;
  border-radius: 4px;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.2;
  transition: background-color .2s ease, transform .2s ease;
}

.woocommerce .wc-scheda-tecnica a.wc-scheda-tecnica__button:is(:hover, :focus-visible) {
  background: #d95716;
  color: #fff;
  transform: translateY(-1px);
}

.woocommerce .wc-scheda-tecnica a.wc-scheda-tecnica__button:focus-visible {
  outline: 2px solid #1f563a;
  outline-offset: 3px;
}

/* Elementor forza il fondo normale degli avvisi: stessa priorita anche negli stati interattivi. */
body.e-wc-message-notice :is(.woocommerce-message, .wc-block-components-notice-banner.is-success) .button:is(:hover, :focus-visible) {
  background-color: var(--e-global-color-accent, #e86726) !important;
}

body.e-wc-info-notice :is(.woocommerce-info, .wc-block-components-notice-banner.is-info) .button:is(:hover, :focus-visible) {
  background-color: var(--e-global-color-86b4fcd, transparent) !important;
}

/* Consenti ai fieldset checkout di restringersi sui piccoli schermi. */
body.woocommerce-checkout .wc-block-checkout fieldset { min-inline-size: 0; }

/* CBS TYPOGRAPHY: standard semantici per Elementor, sovrascrivibili nei singoli widget. */
body .elementor h1,
body .elementor-widget-heading h1.elementor-heading-title {
  color: #1f563a;
  font-family: Roboto, sans-serif;
  font-size: clamp(32px, 3.2vw, 46px);
  font-weight: 600;
  line-height: 1.15;
  letter-spacing: normal;
  word-spacing: normal;
  text-transform: none;
  font-style: normal;
  text-decoration: none;
}

body .elementor h2,
body .elementor-widget-heading h2.elementor-heading-title {
  color: #1f563a;
  font-family: Roboto, sans-serif;
  font-size: clamp(27px, 2.5vw, 36px);
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: normal;
  word-spacing: normal;
  text-transform: none;
  font-style: normal;
  text-decoration: none;
}

body .elementor h3,
body .elementor-widget-heading h3.elementor-heading-title {
  color: #1f563a;
  font-family: Roboto, sans-serif;
  font-size: clamp(22px, 1.8vw, 26px);
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: normal;
  word-spacing: normal;
  text-transform: none;
  font-style: normal;
  text-decoration: none;
}

body .elementor h4,
body .elementor-widget-heading h4.elementor-heading-title {
  color: #1f563a;
  font-family: Roboto, sans-serif;
  font-size: 20px;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: normal;
  word-spacing: normal;
  text-transform: none;
  font-style: normal;
  text-decoration: none;
}

body .elementor h5,
body .elementor-widget-heading h5.elementor-heading-title {
  color: #1f563a;
  font-family: Roboto, sans-serif;
  font-size: 18px;
  font-weight: 600;
  line-height: 1.35;
  letter-spacing: normal;
  word-spacing: normal;
  text-transform: none;
  font-style: normal;
  text-decoration: none;
}

body .elementor h6,
body .elementor-widget-heading h6.elementor-heading-title {
  color: #1f563a;
  font-family: Roboto, sans-serif;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: normal;
  word-spacing: normal;
  text-transform: none;
  font-style: normal;
  text-decoration: none;
}

/* Un widget Titolo con tag p segue il testo normale, non lo stile Primary. */
body .elementor-widget-text-editor p,
body .elementor-widget-heading p.elementor-heading-title {
  color: #52656f;
  font-family: Roboto, sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.65;
  letter-spacing: normal;
  word-spacing: normal;
  text-transform: none;
  font-style: normal;
  text-decoration: none;
}

/* Mega menu: tipografia uniforme per link e pulsanti della navigazione principale. */
body .cbmm :is(.cbmm__home, .cbmm__nav-link, .cbmm__quick, .cbmm__trigger) {
  font-family: Roboto, sans-serif;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: normal;
  word-spacing: normal;
  text-transform: none;
  font-style: normal;
}

/* I link nei widget Titolo rispettano colore e tipografia impostati in Elementor. */
body .elementor-widget-heading .elementor-heading-title > a {
  color: inherit;
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  font-style: inherit;
  line-height: inherit;
  letter-spacing: inherit;
  word-spacing: inherit;
  text-transform: inherit;
  text-decoration: inherit;
}

/* Padding responsive del contenitore nativo della pagina Pagamento. */
.cbs-checkout-wrapper {
  padding-inline: 20px;
}
@media (min-width: 1025px) {
  .cbs-checkout-wrapper {
    padding-inline: 50px;
  }
}

/* CBS CONFERMA ORDINE: solo endpoint order-received, dentro il contenuto ordine. */
body.woocommerce-order-received .woocommerce-order {
  --order-green: #356241;
  --order-orange: #e86726;
  --order-ink: #18372a;
  --order-muted: #52656f;
  --order-border: #dfe6e1;
  color: var(--order-muted);
  font-size: 16px;
  line-height: 1.6;
}
body.woocommerce-order-received .woocommerce-order .woocommerce-thankyou-order-received {
  display: flex;
  align-items: center;
  gap: 16px;
  margin: 0 0 24px;
  padding: 24px 28px;
  border: 1px solid #cddfd2;
  border-radius: 12px;
  background: #edf5ef;
  color: var(--order-green);
  font-size: clamp(20px, 2vw, 28px);
  font-weight: 600;
  line-height: 1.3;
}
body.woocommerce-order-received .woocommerce-order .woocommerce-thankyou-order-received::before {
  content: "✓";
  display: grid;
  place-items: center;
  flex: 0 0 42px;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: var(--order-green);
  color: #fff;
  font-size: 24px;
}
body.woocommerce-order-received .woocommerce-order ul.woocommerce-order-overview {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  margin: 0 0 32px;
  padding: 0;
  list-style: none;
}
body.woocommerce-order-received .woocommerce-order ul.woocommerce-order-overview::before,
body.woocommerce-order-received .woocommerce-order ul.woocommerce-order-overview::after {
  display: none;
}
body.woocommerce-order-received .woocommerce-order ul.woocommerce-order-overview li {
  float: none;
  min-width: 0;
  margin: 0;
  padding: 18px 20px;
  border: 1px solid var(--order-border);
  border-radius: 10px;
  background: #f7f9f7;
  color: var(--order-muted);
  font-size: 12px;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: .04em;
  text-transform: uppercase;
}
body.woocommerce-order-received .woocommerce-order ul.woocommerce-order-overview li.method {
  grid-column: 1 / -1;
}
body.woocommerce-order-received .woocommerce-order ul.woocommerce-order-overview strong {
  display: block;
  margin-top: 6px;
  color: var(--order-ink);
  font-size: 17px;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: normal;
  text-transform: none;
  overflow-wrap: anywhere;
}
body.woocommerce-order-received .woocommerce-order > .woocommerce-order-details,
body.woocommerce-order-received .woocommerce-order > .woocommerce-customer-details {
  margin: 0 0 28px;
  padding: clamp(20px, 2.5vw, 32px);
  border: 1px solid var(--order-border);
  border-radius: 12px;
  background: #fff;
}
body.woocommerce-order-received .woocommerce-order h2 {
  margin: 0 0 20px;
  color: var(--order-green);
  font-family: inherit;
  font-size: clamp(22px, 2vw, 28px);
  font-weight: 600;
  line-height: 1.25;
  text-transform: none;
}
body.woocommerce-order-received .woocommerce-order table.shop_table {
  width: 100%;
  margin: 0;
  border: 1px solid var(--order-border);
  border-spacing: 0;
  border-collapse: separate;
  border-radius: 8px;
  overflow: hidden;
  table-layout: fixed;
}
body.woocommerce-order-received .woocommerce-order table.shop_table :is(th, td) {
  padding: 16px 20px;
  border: 0;
  border-bottom: 1px solid var(--order-border);
  background: #fff;
  color: var(--order-muted);
  font-size: 15px;
  line-height: 1.6;
  vertical-align: top;
  overflow-wrap: anywhere;
}
body.woocommerce-order-received .woocommerce-order table.shop_table thead th {
  background: #f3f6f4;
  color: var(--order-green);
  font-weight: 600;
}
body.woocommerce-order-received .woocommerce-order table.shop_table th:first-child {
  width: 58%;
}
body.woocommerce-order-received .woocommerce-order table.shop_table tfoot th {
  font-weight: 500;
}
body.woocommerce-order-received .woocommerce-order table.shop_table tfoot td {
  color: var(--order-ink);
  font-weight: 600;
}
body.woocommerce-order-received .woocommerce-order table.shop_table tr:last-child > :is(th, td) {
  border-bottom: 0;
}
body.woocommerce-order-received .woocommerce-order table.shop_table tbody tr:last-child > td {
  border-bottom: 1px solid var(--order-border);
}
body.woocommerce-order-received .woocommerce-order table.shop_table small {
  display: block;
  color: var(--order-muted);
  font-size: 13px;
  font-weight: 400;
}
body.woocommerce-order-received .woocommerce-order a {
  color: var(--order-green);
  font: inherit;
  font-weight: 600;
  text-decoration: underline;
  text-decoration-color: #b8cdbf;
  text-underline-offset: 3px;
}
body.woocommerce-order-received .woocommerce-order a:hover {
  color: var(--order-orange);
}
body.woocommerce-order-received .woocommerce-order a:focus-visible {
  outline: 2px solid var(--order-green);
  outline-offset: 3px;
}
body.woocommerce-order-received .woocommerce-order > .woocommerce-order-details > p {
  margin: 24px 0;
  padding: 18px 20px;
  border-left: 3px solid var(--order-orange);
  border-radius: 0 8px 8px 0;
  background: #fff6ef;
  color: var(--order-ink);
}
body.woocommerce-order-received .woocommerce-order .wcifit-summary {
  margin: 28px 0 0;
}
body.woocommerce-order-received .woocommerce-order .woocommerce-columns--addresses {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 28px;
}
body.woocommerce-order-received .woocommerce-order .woocommerce-columns--addresses::before,
body.woocommerce-order-received .woocommerce-order .woocommerce-columns--addresses::after {
  display: none;
}
body.woocommerce-order-received .woocommerce-order .woocommerce-columns--addresses .woocommerce-column {
  float: none;
  width: auto;
  min-width: 0;
}
body.woocommerce-order-received .woocommerce-order .woocommerce-columns--addresses h2 {
  font-size: 22px;
}
body.woocommerce-order-received .woocommerce-order .woocommerce-customer-details address {
  height: auto;
  padding: 20px;
  border: 1px solid var(--order-border);
  border-radius: 8px;
  background: #f7f9f7;
  color: var(--order-muted);
  font-style: normal;
  line-height: 1.7;
  overflow-wrap: anywhere;
}
@media (max-width: 1024px) {
  body.woocommerce-order-received .woocommerce-order ul.woocommerce-order-overview {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 767px) {
  body.woocommerce-order-received .woocommerce-order .woocommerce-thankyou-order-received {
    padding: 20px 16px;
    gap: 12px;
  }
  body.woocommerce-order-received .woocommerce-order ul.woocommerce-order-overview,
  body.woocommerce-order-received .woocommerce-order .woocommerce-columns--addresses {
    grid-template-columns: 1fr;
    gap: 14px;
  }
  body.woocommerce-order-received .woocommerce-order table.shop_table :is(th, td) {
    padding: 12px 10px;
    font-size: 14px;
  }
  body.woocommerce-order-received .woocommerce-order table.shop_table th:first-child {
    width: 52%;
  }
}
