/* ════════════════════════════════════════════════════════════════════════
   Radisa Account — WooCommerce nello stile del tema
   Il tema disattiva il CSS di Woo, quindi ogni pezzo di markup Woo che il
   tema non sovrascrive usciva con lo stile del browser. Qui tutto viene
   riportato sui token del tema: .r-btn, .r-input, .r-label, --r-charcoal.
   Regola: nessun pulsante, checkbox o radio con l'aspetto di sistema.
   ════════════════════════════════════════════════════════════════════════ */

/* ── Checkbox e radio del tema, su tutto il sito ──────────────────────── */
input[type="checkbox"],
input[type="radio"] {
  -webkit-appearance: none;
  appearance: none;
  width: 16px; height: 16px;
  margin: 0;
  flex-shrink: 0;
  border: 1px solid var(--r-charcoal-50);
  background: transparent;
  border-radius: 0;
  display: inline-grid;
  place-content: center;
  vertical-align: -3px;
  cursor: pointer;
  transition: background .2s ease, border-color .2s ease;
}
input[type="radio"] { border-radius: 50%; }
input[type="checkbox"]::before {
  content: "";
  width: 9px; height: 5px;
  border: solid var(--r-ivory);
  border-width: 0 0 1.5px 1.5px;
  transform: translateY(-1px) rotate(-45deg) scale(0);
  transition: transform .15s ease;
}
input[type="radio"]::before {
  content: "";
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--r-charcoal);
  transform: scale(0);
  transition: transform .15s ease;
}
input[type="checkbox"]:checked { background: var(--r-charcoal); border-color: var(--r-charcoal); }
input[type="checkbox"]:checked::before { transform: translateY(-1px) rotate(-45deg) scale(1); }
input[type="radio"]:checked { border-color: var(--r-charcoal); }
input[type="radio"]:checked::before { transform: scale(1); }
input[type="checkbox"]:hover,
input[type="radio"]:hover { border-color: var(--r-charcoal); }
input[type="checkbox"]:focus-visible,
input[type="radio"]:focus-visible { outline: 1px solid var(--r-charcoal); outline-offset: 2px; }
input[type="checkbox"]:disabled,
input[type="radio"]:disabled { opacity: .4; cursor: not-allowed; }

/* ── Pulsanti Woo che non passano dai template del tema ───────────────── */
.woocommerce :is(.button, button[type="submit"], input[type="submit"]):not(.r-btn):not(.r-x):not(.radisa-pw-toggle):not(.rg-textbtn),
.woocommerce-page :is(.button, button[type="submit"], input[type="submit"]):not(.r-btn):not(.r-x):not(.radisa-pw-toggle):not(.rg-textbtn),
.woocommerce-Button {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  padding: 14px 22px;
  border: 1px solid var(--r-charcoal);
  background: var(--r-charcoal); color: var(--r-ivory);
  font-family: var(--r-sans);
  font-size: 12px; font-weight: 400; line-height: 1.2;
  letter-spacing: .08em; text-transform: uppercase;
  text-decoration: none;
  border-radius: 0;
  cursor: pointer;
  -webkit-appearance: none; appearance: none;
  transition: background .25s ease, color .25s ease, border-color .25s ease;
}
.woocommerce :is(.button, button[type="submit"], input[type="submit"]):not(.r-btn):not(.r-x):not(.radisa-pw-toggle):not(.rg-textbtn):hover,
.woocommerce-page :is(.button, button[type="submit"], input[type="submit"]):not(.r-btn):not(.r-x):not(.radisa-pw-toggle):not(.rg-textbtn):hover,
.woocommerce-Button:hover { background: var(--r-charcoal-70); border-color: var(--r-charcoal-70); color: var(--r-ivory); }
.woocommerce :is(.button, button):disabled,
.woocommerce .button.disabled { opacity: .5; cursor: not-allowed; }

/* Pulsanti secondari (coupon, "Applica", azioni ordine non principali) */
.woocommerce :is(button[name="apply_coupon"], .woocommerce-orders-table .button:not(.pay)):not(.r-btn) {
  background: transparent; color: var(--r-charcoal); border-color: var(--r-charcoal-30);
}
.woocommerce :is(button[name="apply_coupon"], .woocommerce-orders-table .button:not(.pay)):not(.r-btn):hover {
  background: var(--r-charcoal); color: var(--r-ivory); border-color: var(--r-charcoal);
}

/* "Conferma ordine" a tutta larghezza */
#place_order.radisa-place-order { width: 100%; justify-content: center; margin-top: 8px; padding: 18px 22px; }

/* ── Campi: etichette mono, input sottolineati come .r-input ──────────── */
.woocommerce form .form-row { margin: 0; padding: 0; }
.woocommerce form .form-row > label:not(.checkbox):not(.woocommerce-form__label-for-checkbox),
.woocommerce form .form-row .woocommerce-input-wrapper > label {
  font-family: var(--r-mono);
  font-size: 10px; letter-spacing: .18em; text-transform: uppercase;
  color: var(--r-charcoal-70);
  display: block; margin: 0 0 4px; line-height: 1.6;
}
.woocommerce form .form-row .required { color: var(--r-charcoal-70); text-decoration: none; border: 0; }
.woocommerce form .form-row .optional { text-transform: none; letter-spacing: 0; font-family: var(--r-sans); font-size: 11px; color: var(--r-charcoal-50); }

.woocommerce form .form-row :is(input.input-text, select, textarea),
.woocommerce form :is(input.input-text, input[type="email"], input[type="password"], input[type="text"], input[type="tel"]):not(.r-input),
.woocommerce .form-row input.input-text,
.woocommerce .form-row select,
.woocommerce .form-row textarea,
.woocommerce-address-fields :is(input.input-text, select, textarea) {
  width: 100%;
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--r-charcoal-30);
  border-radius: 0;
  padding: 12px 0;
  font-family: var(--r-sans);
  font-size: 15px;
  color: var(--r-charcoal);
  box-shadow: none;
  -webkit-appearance: none; appearance: none;
}
.woocommerce form .form-row textarea { min-height: 96px; resize: vertical; }
.woocommerce form .form-row :is(input.input-text, select, textarea):focus,
.woocommerce .form-row input.input-text:focus,
.woocommerce .form-row select:focus { outline: none; border-bottom-color: var(--r-charcoal); }
.woocommerce form .form-row select {
  background-image: linear-gradient(45deg, transparent 50%, var(--r-charcoal) 50%), linear-gradient(135deg, var(--r-charcoal) 50%, transparent 50%);
  background-position: calc(100% - 10px) 52%, calc(100% - 5px) 52%;
  background-size: 5px 5px; background-repeat: no-repeat;
  padding-right: 24px;
}
.woocommerce form .form-row.woocommerce-invalid :is(input.input-text, select) { border-bottom-color: #b44; }
.woocommerce form .form-row .description { font-size: 12px; color: var(--r-charcoal-50); margin: 6px 0 0; }

/* select2 (provincia): stessa linea degli input */
.woocommerce .select2-container .select2-selection--single {
  border: 0 !important; border-bottom: 1px solid var(--r-charcoal-30) !important;
  background: transparent !important; height: auto !important; padding: 12px 0 !important;
}
.woocommerce .select2-container .select2-selection--single .select2-selection__arrow { top: 50% !important; transform: translateY(-50%); }
.select2-dropdown { background: var(--r-ivory) !important; }
.select2-search__field { border: 0 !important; border-bottom: 1px solid var(--r-charcoal-30) !important; background: transparent !important; padding: 8px 0 !important; }

/* Righe affiancate di Woo (nome/cognome ecc.) */
.woocommerce .radisa-fields {
  display: grid; grid-template-columns: 1fr 1fr; gap: 24px;
}
.woocommerce .radisa-fields > .form-row-wide,
.woocommerce .radisa-fields > .form-row:not(.form-row-first):not(.form-row-last) { grid-column: 1 / -1; }
.woocommerce .form-row[hidden],
.woocommerce .radisa-fields > [hidden] { display: none !important; }

/* Privato / Azienda: segmented control come .r-seg2 */
.woocommerce .radisa-tipo .woocommerce-input-wrapper { display: inline-flex; border: 1px solid var(--r-charcoal-30); }
.woocommerce .radisa-tipo input[type="radio"] { position: absolute; opacity: 0; pointer-events: none; }
.woocommerce .radisa-tipo label.radio {
  margin: 0; padding: 10px 20px; cursor: pointer;
  font-family: var(--r-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase;
  color: var(--r-charcoal-70);
  transition: background .2s ease, color .2s ease;
}
.woocommerce .radisa-tipo input[type="radio"]:checked + label.radio { background: var(--r-charcoal); color: var(--r-ivory); }
.woocommerce .radisa-tipo input[type="radio"]:focus-visible + label.radio { outline: 1px solid var(--r-charcoal); outline-offset: 2px; }

/* Checkbox con testo (termini, crea account, ricordami) */
.woocommerce :is(label.checkbox, .woocommerce-form__label-for-checkbox) {
  display: flex; align-items: flex-start; gap: 10px;
  font-family: var(--r-sans); font-size: 13px; line-height: 1.5;
  color: var(--r-charcoal-70);
  text-transform: none; letter-spacing: 0;
  cursor: pointer;
}
.woocommerce :is(label.checkbox, .woocommerce-form__label-for-checkbox) input { margin-top: 2px; }
.woocommerce :is(label.checkbox, .woocommerce-form__label-for-checkbox) a { color: var(--r-charcoal); text-underline-offset: 3px; }

/* ── Pagamento ─────────────────────────────────────────────────────────── */
.woocommerce-checkout-payment .wc_payment_methods {
  list-style: none; margin: 0 0 28px; padding: 0;
  display: flex; flex-direction: column; gap: 10px;
}
.woocommerce-checkout-payment .wc_payment_method {
  border: 1px solid var(--r-charcoal-12);
  padding: 18px 20px;
  transition: border-color .2s ease;
}
.woocommerce-checkout-payment .wc_payment_method:has(> input:checked) { border-color: var(--r-charcoal); }
.woocommerce-checkout-payment .wc_payment_method > input { margin-right: 12px; }
.woocommerce-checkout-payment .wc_payment_method > label {
  font-family: var(--r-sans); font-size: 14px; color: var(--r-charcoal); cursor: pointer;
  display: inline-flex; align-items: center; gap: 10px;
}
.woocommerce-checkout-payment .wc_payment_method > label img { max-height: 22px; width: auto; }
.woocommerce-checkout-payment .payment_box {
  margin: 12px 0 0 28px;
  font-size: 13px; line-height: 1.6; color: var(--r-charcoal-70);
}
.woocommerce-checkout-payment .payment_box p { margin: 0; }
.woocommerce-checkout-payment .place-order { display: flex; flex-direction: column; gap: 18px; }
.woocommerce-checkout-payment .woocommerce-privacy-policy-text,
.woocommerce-checkout-payment .woocommerce-privacy-policy-text p {
  font-size: 12px; line-height: 1.6; color: var(--r-charcoal-50); margin: 0;
}
.woocommerce-checkout-payment .woocommerce-privacy-policy-text a,
.woocommerce-terms-and-conditions-wrapper a { color: var(--r-charcoal); text-underline-offset: 3px; }
.woocommerce-terms-and-conditions { max-height: 240px; overflow: auto; border: 1px solid var(--r-charcoal-12); padding: 16px; font-size: 13px; }
/* Messaggio rate PayPal: dentro la scala del tema */
#ppcp-messages, .ppcp-messages { margin-bottom: 16px; }

/* ── Login e coupon in cima al checkout ───────────────────────────────── */
.woocommerce-form-login-toggle .woocommerce-info,
.woocommerce-form-coupon-toggle .woocommerce-info { margin-bottom: 16px; }
.woocommerce-info a.showlogin,
.woocommerce-info a.showcoupon { color: var(--r-charcoal); text-decoration: underline; text-underline-offset: 3px; }
form.woocommerce-form-login.login,
form.checkout_coupon {
  border: 1px solid var(--r-charcoal-12);
  padding: 28px;
  margin: 0 0 32px;
  display: flex; flex-direction: column; gap: 20px;
}
form.woocommerce-form-login.login > p:first-child,
form.checkout_coupon > p:first-child { margin: 0; font-size: 14px; color: var(--r-charcoal-70); }
form.woocommerce-form-login.login .form-row:has(.woocommerce-form-login__rememberme) {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px;
}
form.woocommerce-form-login.login .lost_password a { font-size: 13px; color: var(--r-charcoal-70); text-underline-offset: 3px; }
form.checkout_coupon { flex-direction: row; flex-wrap: wrap; align-items: flex-end; }
form.checkout_coupon > p:first-child { flex-basis: 100%; }
form.checkout_coupon .form-row-first { flex: 1 1 200px; }
form.checkout_coupon .clear { display: none; }

/* ── Mostra / nascondi password ───────────────────────────────────────── */
.radisa-pw, .woocommerce .password-input { position: relative; display: block; }
.radisa-pw input { padding-right: 84px !important; }
.radisa-pw-toggle,
.woocommerce .show-password-input {
  position: absolute; right: 0; top: 50%; transform: translateY(-50%);
  background: none; border: 0; padding: 6px 0; margin: 0;
  width: auto; height: auto;
  font-family: var(--r-mono); font-size: 10px; letter-spacing: .14em; text-transform: uppercase;
  color: var(--r-charcoal-70);
  cursor: pointer;
}
.radisa-pw-toggle:hover, .woocommerce .show-password-input:hover { color: var(--r-charcoal); }
/* Il pulsante di Woo è un'icona vuota: gli diamo un'etichetta testuale */
.woocommerce .show-password-input::after { content: "Mostra"; }
.woocommerce .show-password-input.display-password::after { content: "Nascondi"; }

/* ── Avvisi ────────────────────────────────────────────────────────────── */
.woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-error, .woocommerce-message, .woocommerce-info { list-style: none; }
.woocommerce-error li { margin: 0; }
.woocommerce-error li + li { margin-top: 6px; }
.woocommerce-message .button, .woocommerce-info .button { float: right; margin-left: 16px; padding: 8px 14px !important; }

/* ── Riepilogo: ritiro in showroom ────────────────────────────────────── */
.radisa-pickup {
  display: flex; gap: 12px; align-items: flex-start;
  border-top: 1px solid var(--r-charcoal-12);
  margin-top: 20px; padding-top: 20px;
  font-size: 13px; line-height: 1.6; color: var(--r-charcoal-70);
}
.radisa-pickup strong { display: block; font-weight: 500; color: var(--r-charcoal); }

/* ── Area clienti: navigazione su schermi stretti ─────────────────────── */
@media (max-width: 1080px) {
  .r-acct__nav {
    flex-direction: row !important; flex-wrap: nowrap !important;
    overflow-x: auto; -webkit-overflow-scrolling: touch;
    scroll-snap-type: x proximity; scroll-padding-inline: var(--r-pad, 20px); scrollbar-width: none;
    gap: 8px !important; border: 0 !important;
    margin: 0 calc(var(--r-pad, 20px) * -1); padding: 0 var(--r-pad, 20px) 4px;
  }
  .r-acct__nav::-webkit-scrollbar { display: none; }
  .r-acct__nav a {
    flex: 0 0 auto; scroll-snap-align: start;
    white-space: nowrap;
    border: 1px solid var(--r-charcoal-12) !important;
    padding: 10px 14px !important;
    font-size: 13px !important;
    gap: 8px;
  }
  .r-acct__nav a[data-active="true"] { border-color: var(--r-charcoal) !important; }
  .r-acct__nav a .r-acct__dot { display: none; }
}

/* ── Dati fiscali nel dettaglio ordine ────────────────────────────────── */
.radisa-fiscal { margin: 4px 0 0; font-size: 14px; }
.radisa-fiscal span { font-family: var(--r-mono); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: var(--r-charcoal-50); margin-right: 6px; }

/* ── Checkout: su mobile il riepilogo va in cima, prima dei dati ──────── */
@media (max-width: 1080px) {
  .r-co__aside { order: -1; }
}
.woocommerce-checkout .r-checkout-section .radisa-fields + * { margin-top: 0; }
.woocommerce-account-fields .create-account { margin-top: 20px; }

/* ── Dettaglio ordine (area clienti) e conferma ───────────────────────── */
.woocommerce-order-details,
.woocommerce-customer-details,
.woocommerce-bacs-bank-details,
.woocommerce-order-downloads { margin-top: 48px; text-align: left; }
.woocommerce-order-details__title,
.woocommerce-column__title,
.woocommerce-bacs-bank-details .wc-bacs-bank-details-heading,
.woocommerce-bacs-bank-details h2,
.woocommerce-bacs-bank-details h3 {
  font-family: var(--r-mono) !important; font-size: 10px !important; font-weight: 400 !important;
  letter-spacing: .18em; text-transform: uppercase; color: var(--r-charcoal-70);
  margin: 0 0 16px !important;
}
.woocommerce table.shop_table,
.woocommerce-table--order-details {
  width: 100%; border-collapse: collapse; font-size: 14px;
}
.woocommerce table.shop_table :is(th, td) {
  text-align: left; padding: 14px 0; border-bottom: 1px solid var(--r-charcoal-12); vertical-align: top;
}
.woocommerce table.shop_table thead th,
.woocommerce table.shop_table tfoot th {
  font-family: var(--r-mono); font-size: 10px; font-weight: 400; letter-spacing: .16em; text-transform: uppercase; color: var(--r-charcoal-70);
}
.woocommerce table.shop_table :is(th, td):last-child { text-align: right; }
.woocommerce table.shop_table td.product-name a { color: var(--r-charcoal); text-decoration: none; font-family: var(--r-serif); font-size: 16px; }
.woocommerce table.shop_table tfoot tr:last-child :is(th, td) { border-bottom: 0; }
.woocommerce table.shop_table tfoot tr:last-child td { font-family: var(--r-serif); font-size: 20px; }
.woocommerce-customer-details address {
  font-style: normal; font-size: 14px; line-height: 1.7; color: var(--r-charcoal-70);
  border: 1px solid var(--r-charcoal-12); padding: 24px;
}
.woocommerce-customer-details address p { margin: 4px 0 0; }
.woocommerce-columns--addresses { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 24px; }
/* "L'ordine #N è stato effettuato il …" */
.woocommerce-MyAccount-content > p:first-of-type mark,
.r-acct__panels > p mark { background: none; color: var(--r-charcoal); font-weight: 500; }
.woocommerce-OrderUpdates { list-style: none; margin: 0; padding: 0; }
.woocommerce-OrderUpdate { border-left: 2px solid var(--r-charcoal-12); padding: 4px 0 4px 16px; margin-bottom: 16px; font-size: 14px; }
.woocommerce-OrderUpdate-meta { font-family: var(--r-mono); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: var(--r-charcoal-50); margin: 0 0 4px; }

/* Coordinate bancarie del bonifico */
.wc-bacs-bank-details { list-style: none; margin: 0 0 16px; padding: 24px; border: 1px solid var(--r-charcoal-12); display: grid; gap: 10px; }
.wc-bacs-bank-details li { display: flex; justify-content: space-between; gap: 16px; font-size: 13px; color: var(--r-charcoal-70); }
.wc-bacs-bank-details li strong { font-family: var(--r-mono); font-weight: 400; color: var(--r-charcoal); letter-spacing: .04em; }
.radisa-thankyou-extra { text-align: left; }
.radisa-thankyou-extra > p { font-size: 14px; line-height: 1.6; color: var(--r-charcoal-70); }

/* Pulsante testuale (Rimuovi, azioni secondarie) */
.rg-textbtn {
  background: none; border: 0; padding: 0; cursor: pointer;
  font-family: var(--r-mono); font-size: 10px; letter-spacing: .12em; text-transform: uppercase;
  color: var(--r-charcoal-50); text-decoration: underline; text-underline-offset: 3px;
}
.rg-textbtn:hover { color: var(--r-charcoal); }

/* ── Scheda prodotto ──────────────────────────────────────────────────── */
/* Le righe senza valore hanno già [hidden], ma lo style inline display:grid le rimostrava */
[hidden] { display: none !important; }
.rg-bc__current { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rg-bc__back { white-space: nowrap; }
@media (max-width: 600px) {
  .rg-bc .rg-bc__m-hide { display: none; }
  .rg-bc { gap: 10px !important; }
}
/* Pulsante "Aggiungi al carrello" dopo l'aggiunta */
.r-btn.is-added { pointer-events: none; opacity: .75; }

/* ── Carrello su mobile: foto + nome sopra, quantità/totale/rimuovi sotto ── */
@media (max-width: 768px) {
  .r-cart-row {
    grid-template-columns: 80px 1fr auto !important;
    grid-template-areas: "img name name" "img qty total" "img qty remove";
    gap: 10px 16px !important;
    align-items: start !important;
  }
  .r-cart-row > div:first-child { grid-area: img; width: 80px !important; height: 100px !important; }
  .r-cart-row > div:nth-child(2) { grid-area: name; }
  .r-cart-row > div:nth-child(2) a, .r-cart-row > div:nth-child(2) > span { font-size: 17px !important; }
  .r-cart-row .r-cart-qty { grid-area: qty; align-self: center; justify-self: start; }
  .r-cart-row .r-cart-total { grid-area: total; min-width: 0 !important; align-self: center; }
  .r-cart-row .r-cart-remove { grid-area: remove; justify-self: end; }
}

/* Campi fiscali: obbligatori a seconda del tipo, quindi niente "(facoltativo)" */
.woocommerce .radisa-tipo .optional,
.woocommerce .radisa-privato .optional,
.woocommerce .radisa-azienda .optional { display: none; }

/* Checkbox obbligatorie: l'asterisco resta attaccato al testo */
.woocommerce :is(label.checkbox, .woocommerce-form__label-for-checkbox) > abbr.required { display: none; }
.woocommerce :is(label.checkbox, .woocommerce-form__label-for-checkbox):has(> abbr.required) > span::after { content: " *"; }
.woocommerce-terms-and-conditions-wrapper { display: flex; flex-direction: column; gap: 14px; }

/* Richieste di consulenza su mobile: azioni sotto, a tutta riga */
@media (max-width: 600px) {
  .rg-req__row { grid-template-columns: 72px 1fr !important; }
  .rg-req__actions { grid-column: 1 / -1; flex-direction: row !important; align-items: center !important; justify-content: space-between; }
}
