/* Origine Shop — aggiunte per WordPress/WooCommerce sopra style.css della demo.
   Qui solo quello che la demo non aveva: campi e notifiche di WooCommerce, admin bar, pagamenti. */

/* barra di amministrazione (solo utenti loggati) */
.admin-bar .header { top: 32px; }
.admin-bar .filtri { top: 110px; }
@media (max-width: 782px) { .admin-bar .header { top: 0; } .admin-bar .filtri { top: 78px; } }

.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---------- notifiche WooCommerce ---------- */
.os .woocommerce-notices-wrapper:empty { display: none; }
.os .woocommerce-message, .os .woocommerce-info, .os .woocommerce-error, .os .wc-block-components-notice-banner {
  list-style: none; margin: 0 0 18px; padding: 16px 20px; border-radius: var(--r-box);
  background: var(--carta-2); color: var(--cacao); font-weight: 600; line-height: 1.5;
  display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: center; justify-content: space-between;
}
.os .woocommerce-message { background: #e3efe7; color: #0b4d30; }
.os .woocommerce-error { background: #fbe6e2; color: #7d1712; display: block; }
.os .woocommerce-error li { margin: 2px 0; }
.os .woocommerce-message .button, .os .woocommerce-info .button { font: 700 12.5px/1 var(--display); letter-spacing: .1em; text-transform: uppercase; text-decoration: underline; text-underline-offset: 4px; }
.os .woocommerce-info a, .os .woocommerce-message a, .os .woocommerce-error a { color: inherit; font-weight: 700; }

/* ---------- campi WooCommerce con l'aspetto .campo della demo ---------- */
.os .form-row { margin: 0; }
.os .form-grid > .form-row { grid-column: span 1; }
.os .form-grid > .form-row-wide, .os .form-grid > .notes, .os .form-grid > #billing_country_field, .os .form-grid > #shipping_country_field { grid-column: 1 / -1; }
.os .form-row label { font: 700 13px/1.25 var(--display); letter-spacing: .14em; text-transform: uppercase; color: var(--cacao); }
.os .form-row label .optional { font: 500 12.5px/1 var(--testo); letter-spacing: 0; text-transform: none; color: var(--cacao-3); }
.os .form-row abbr.required, .os .form-row .required { color: var(--accento); text-decoration: none; border: 0; }
.os .woocommerce-input-wrapper { display: block; }
.os .form-row .input-text, .os .form-row select, .os .form-row textarea, .os .woocommerce-form .input-text {
  width: 100%; min-height: 54px; padding: 14px 18px; border-radius: 14px; border: 1.5px solid rgba(57,40,40,.28);
  background: #fff; color: var(--cacao); font: 500 16px/1.3 var(--testo); transition: border-color .2s, box-shadow .2s;
}
.os .form-row textarea { min-height: 110px; resize: vertical; }
.os .form-row .input-text:focus, .os .form-row select:focus, .os .form-row textarea:focus, .os .woocommerce-form .input-text:focus { outline: none; border-color: var(--cacao); box-shadow: 0 0 0 4px rgba(170, 68, 24, .16); }
.os .form-row.woocommerce-invalid .input-text, .os .form-row.woocommerce-invalid select { border-color: #b3261e; }
.os .form-row .checkout-inline-error-message, .os .form-row .woocommerce-error { color: #9f1d17; font-size: 14px; font-weight: 600; margin: 6px 0 0; background: none; padding: 0; }
.os .form-row .woocommerce-input-wrapper strong { font-weight: 600; }
.os .form-row .description { font-size: 13.5px; color: var(--cacao-3); margin-top: 6px; display: block; }
.os .form-row input[type=checkbox], .os .form-row input[type=radio] { width: 20px; height: 20px; accent-color: var(--cacao); }

/* select con ricerca (selectWoo) */
.os .select2-container { width: 100% !important; }
.os .select2-container .select2-selection--single { height: 54px; border-radius: 14px; border: 1.5px solid rgba(57,40,40,.28); background: #fff; display: flex; align-items: center; }
.os .select2-container .select2-selection--single .select2-selection__rendered { padding: 0 44px 0 18px; color: var(--cacao); font: 500 16px/1.3 var(--testo); line-height: 54px; }
.os .select2-container .select2-selection--single .select2-selection__arrow { height: 52px; right: 12px; }
.os .select2-container--focus .select2-selection--single, .os .select2-container--open .select2-selection--single { border-color: var(--cacao); box-shadow: 0 0 0 4px rgba(170, 68, 24, .16); }
.select2-dropdown { border: 1.5px solid var(--cacao) !important; border-radius: 14px !important; overflow: hidden; font-family: var(--testo); }
.select2-results__option--highlighted[aria-selected], .select2-results__option--highlighted[data-selected] { background: var(--cacao) !important; }
.select2-search--dropdown .select2-search__field { border-radius: 10px; padding: 8px 12px; border: 1.5px solid rgba(57,40,40,.28); }

/* ---------- cassa ---------- */
.os .checkout .cassa__col { display: grid; gap: 18px; min-width: 0; }
.os #customer_details { display: grid; gap: 18px; }
.os .woocommerce-form-login-toggle, .os .woocommerce-form-coupon-toggle { margin-bottom: 12px; }
.os .woocommerce-form-login-toggle .woocommerce-info, .os .woocommerce-form-coupon-toggle .woocommerce-info { margin: 0; background: var(--carta-2); color: var(--cacao); justify-content: flex-start; }
.os .woocommerce-form-login-toggle a, .os .woocommerce-form-coupon-toggle a { text-decoration: underline; text-decoration-color: var(--accento); text-decoration-thickness: 2px; text-underline-offset: 4px; }
.os form.checkout_coupon, .os form.woocommerce-form-login.login:not(.box) { background: #fff; border: 1px solid var(--linea); border-radius: var(--r-box); padding: 22px; margin: 0 0 18px; display: grid; gap: 12px; }
.os form.checkout_coupon { grid-template-columns: 1fr auto; align-items: end; }
.os form.checkout_coupon > p:first-child { grid-column: 1 / -1; margin: 0; color: var(--cacao-2); }
.os form.checkout_coupon .form-row-first, .os form.checkout_coupon .form-row-last { width: auto; float: none; }
.os .shipping_address { overflow: hidden; }
.os #ship-to-different-address { margin: 0; }
.os .check--box input { width: 20px; height: 20px; accent-color: var(--cacao); }
.os .check--box { display: flex; gap: 12px; align-items: center; }

.os .sped { margin: 8px 0; padding: 8px 0; }
.os .sped__tit { font: 700 12px/1 var(--display); letter-spacing: .16em; text-transform: uppercase; color: var(--cacao-3); margin: 0 0 10px; }
.os .sped ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.os .sped .sped-metodo { margin-top: 0; grid-template-columns: 40px 1fr; }
.os .sped .pagamento .amount { font-weight: 800; }
.os .nota--errore { color: #9f1d17; font-weight: 600; }
.os .tot .amount, .os .or-riga__prezzo .amount { white-space: nowrap; }
.os .tot--grande strong .amount { font: 800 26px/1 var(--display-b); }
.os .order-total small.includes_tax { display: none; }

/* pagamento */
.os #payment { margin-top: 6px; }
.os #payment ul.payment_methods { list-style: none; margin: 0 0 16px; padding: 0; display: grid; gap: 10px; }
.os #payment ul.payment_methods > li:not(.woocommerce-notice) { border: 1.5px solid rgba(57,40,40,.25); border-radius: var(--r-box); overflow: hidden; }
.os #payment ul.payment_methods > li:has(input:checked) { border-color: var(--cacao); background: var(--carta); }
.os #payment ul.payment_methods > li > input { position: absolute; margin: 20px 0 0 18px; width: 20px; height: 20px; accent-color: var(--cacao); }
.os #payment ul.payment_methods > li > label { display: flex; gap: 10px; align-items: center; justify-content: space-between; padding: 16px 18px 16px 50px; font-weight: 600; cursor: pointer; }
.os #payment ul.payment_methods > li > label img { max-height: 24px; width: auto; }
.os #payment .payment_box { padding: 12px 18px 16px; background: var(--carta-2); font-size: 14px; color: var(--cacao-2); }
.os #payment .payment_box p { margin: 0; }
.os #payment li.woocommerce-notice { background: #fff5e8; border: 1px dashed #c98a4e; color: #6b3b12; border-radius: var(--r-box); padding: 12px 14px; font-size: 14px; font-weight: 600; }
.os #payment .place-order { margin: 0; display: grid; gap: 14px; }
.os .woocommerce-privacy-policy-text p { font-size: 13.5px; color: var(--cacao-3); margin: 0; }
.os .woocommerce-privacy-policy-text a, .os .woocommerce-terms-and-conditions-checkbox-text a { color: var(--cacao); font-weight: 700; }
.os .woocommerce-terms-and-conditions-wrapper .form-row { display: flex; }
.os .woocommerce-terms-and-conditions-wrapper label { font: 500 14.5px/1.45 var(--testo); letter-spacing: 0; text-transform: none; color: var(--cacao-2); display: flex; gap: 12px; align-items: flex-start; }
.os #place_order {
  --bg: var(--accento); --fg: #fff; width: 100%; min-height: 60px; border: 0; border-radius: var(--r-s); background: var(--bg); color: var(--fg); cursor: pointer;
  font: 500 15px/1 var(--display); letter-spacing: 1.5px; text-transform: uppercase; transition: transform .25s var(--ease), background .25s;
}
.os #place_order:hover { --bg: var(--accento-2); transform: translateY(-2px); }
.os .blockUI.blockOverlay { border-radius: var(--r-box); }

/* ---------- carrello ---------- */
.os .riga.is-busy { opacity: .45; pointer-events: none; transition: opacity .2s; }
.os .riepilogo .tot .riga__rimuovi { margin-left: 8px; }

/* ---------- scheda prodotto ---------- */
.os .buy__prezzo del { font: 700 18px/1 var(--display-b); color: var(--cacao-3); margin-right: 10px; }
.os .esaurito { font-weight: 700; color: #9f1d17; margin: 18px 0; }

/* ---------- account ---------- */
@media (max-width: 900px) { .os .acc-layout { grid-template-columns: minmax(0, 1fr); } }
.os .acc-nav a.woocommerce-MyAccount-navigation-link--customer-logout { color: #9f1d17; margin-top: 6px; }
.os .acc-nav a.woocommerce-MyAccount-navigation-link--customer-logout[aria-current] { color: #fff; }
.os .acc-panel > p:first-child { margin-top: 0; }
.os .acc-panel table.shop_table, .os .acc-panel table.woocommerce-table {
  width: 100%; border-collapse: separate; border-spacing: 0; font-size: 15.5px; background: #fff; border: 1px solid var(--linea); border-radius: var(--r-l); overflow: hidden;
}
.os .acc-panel table.shop_table th { text-align: left; padding: 16px 20px; font: 700 12px/1 var(--display); letter-spacing: .16em; text-transform: uppercase; color: var(--cacao-3); border-bottom: 1px solid var(--linea); background: var(--carta); }
.os .acc-panel table.shop_table td { padding: 16px 20px; border-bottom: 1px solid var(--linea); }
.os .acc-panel table.shop_table tr:last-child td, .os .acc-panel table.shop_table tfoot tr:last-child th { border-bottom: 0; }
.os .acc-panel table.shop_table tfoot th { background: none; color: var(--cacao); }
.os .acc-panel .woocommerce-orders-table__cell-order-actions .button, .os .acc-panel .button, .os .acc-panel button[type=submit] {
  display: inline-flex; align-items: center; justify-content: center; min-height: 39px; padding: 12px 24px; border-radius: var(--r-s); border: 0;
  background: #000; color: #fff; text-decoration: none; cursor: pointer; font: 500 15px/1 var(--display); letter-spacing: 1.5px; text-transform: uppercase;
}
.os .acc-panel .button:hover, .os .acc-panel button[type=submit]:hover { background: var(--cacao); }
/* telefono: la tabella ordini va in colonna (il CSS «smallscreen» di WooCommerce è tolto da assets.php) */
@media (max-width: 700px) {
  .os .acc-panel table.shop_table_responsive thead { display: none; }
  .os .acc-panel table.shop_table_responsive,
  .os .acc-panel table.shop_table_responsive tbody,
  .os .acc-panel table.shop_table_responsive tbody tr { display: block; width: 100%; }
  .os .acc-panel table.shop_table_responsive tbody tr { padding: 8px 0; border-bottom: 1px solid var(--linea); }
  .os .acc-panel table.shop_table_responsive tbody tr:last-child { border-bottom: 0; }
  .os .acc-panel table.shop_table_responsive tbody :is(th, td) {
    display: block; overflow: hidden; padding: 10px 18px;
    border-bottom: 0; background: none; text-align: right; font: inherit; letter-spacing: normal; text-transform: none; color: inherit;
  }
  .os .acc-panel table.shop_table_responsive tbody :is(th, td)[data-title]::before {
    content: attr(data-title); float: left; margin: 3px 16px 0 0; text-align: left;
    font: 700 12px/1.2 var(--display); letter-spacing: .16em; text-transform: uppercase; color: var(--cacao-3);
  }
  .os .acc-panel .woocommerce-orders-table__cell-order-actions::before { margin-top: 12px; }
  .os .acc-panel .woocommerce-orders-table__cell-order-actions .button { padding: 10px 16px; margin: 0 0 0 8px; font-size: 13px; letter-spacing: 1px; }
}
.os .acc-panel .woocommerce-Addresses, .os .acc-panel .u-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
@media (max-width: 700px) { .os .acc-panel .woocommerce-Addresses, .os .acc-panel .u-columns { grid-template-columns: 1fr; } }
.os .acc-panel .woocommerce-Address { background: #fff; border: 1px solid var(--linea); border-radius: var(--r-l); padding: 24px; }
.os .acc-panel .woocommerce-Address-title { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.os .acc-panel .woocommerce-Address-title h2, .os .acc-panel h2, .os .acc-panel h3 { font: 800 20px/1.1 var(--display); letter-spacing: .06em; text-transform: uppercase; margin: 0 0 14px; }
.os .acc-panel address { font-style: normal; line-height: 1.6; color: var(--cacao-2); }
.os .acc-panel form .form-row, .os .acc-panel .woocommerce-address-fields__field-wrapper { display: grid; gap: 6px; margin-bottom: 14px; }
.os .acc-panel .woocommerce-address-fields__field-wrapper { grid-template-columns: 1fr 1fr; gap: 16px; }
.os .acc-panel .woocommerce-address-fields__field-wrapper .form-row { margin: 0; }
.os .acc-panel .woocommerce-address-fields__field-wrapper .form-row-wide { grid-column: 1 / -1; }
.os .acc-panel fieldset { border: 1px solid var(--linea); border-radius: var(--r-l); padding: 20px 22px; margin: 18px 0; }
.os .acc-panel legend { font: 800 14px/1 var(--display); letter-spacing: .1em; text-transform: uppercase; padding: 0 8px; }
.os .woocommerce-form-login .campo input { width: 100%; }
.os .woocommerce-form-login .check input, .os .acc-login .check input { width: 20px; height: 20px; }
.os .lost_reset_password { max-width: 560px; background: #fff; border: 1px solid var(--linea); border-radius: var(--r-l); padding: clamp(20px, 3vw, 36px); display: grid; gap: 14px; }

@media (max-width: 700px) {
  .os .form-grid > .form-row { grid-column: 1 / -1; }
  .os .acc-panel .woocommerce-address-fields__field-wrapper { grid-template-columns: 1fr; }
}

/* ---------- pagine di testo e articoli scritti nell'editor di WordPress ---------- */
/* pagina senza titoli nel testo: niente indice, il testo prende tutta la larghezza */
.legale__grid--senza { grid-template-columns: minmax(0, 1fr); }
.legale__testo img, .art-prosa img { max-width: 100%; height: auto; }
.legale__testo a { color: var(--accento-2); font-weight: 700; text-underline-offset: 3px; }
.legale__testo h3 { font: 800 clamp(18px, 1.7vw, 22px)/1.2 var(--display); text-transform: uppercase; letter-spacing: .03em; margin: 1.6em 0 .5em; }
.legale__testo ul, .legale__testo ol { padding-left: 1.3em; color: var(--cacao-2); }
.art-prosa .alignleft { float: left; margin: .4em 1.6em 1em 0; }
.art-prosa .alignright { float: right; margin: .4em 0 1em 1.6em; }
.art-prosa .aligncenter { display: block; margin-inline: auto; }
.art-prosa iframe { max-width: 100%; border-radius: var(--r-m); }


/* bottone non disponibile (carrello sotto l'ordine minimo o con quantità non valide) */
.os .btn.is-disabled { background: #d9d4cc; border-color: #d9d4cc; color: #3d3535; cursor: not-allowed; pointer-events: none; }
.os .riepilogo .nota--errore, .os .drawer__foot .nota--errore { margin-top: 8px; }
