/* Stili minimi del plugin: mettono le cose al loro posto e nient'altro.
   Colori e caratteri li decide il tema — queste classi sono fatte per essere sovrascritte. */

.abn-regalo {
	margin: 0 0 20px;
	padding: 16px 18px;
	border: 1px dashed currentColor;
	border-radius: 14px;
	opacity: 0.85;
}
.abn-regalo.attivo { border-style: solid; opacity: 1; }

.abn-regalo__titolo { margin: 0 0 10px; font-weight: 600; }
.abn-regalo__nota { margin: 0 0 12px; font-weight: 600; }

.abn-regalo__scelte {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
	gap: 12px;
}
.abn-regalo__scelta {
	display: grid;
	gap: 4px;
	padding: 10px;
	text-align: center;
	text-decoration: none;
	color: inherit;
	border: 1px solid rgba(128, 128, 128, 0.35);
	border-radius: 12px;
}
.abn-regalo__scelta:hover { border-color: currentColor; }
.abn-regalo__scelta img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 8px; }
.abn-regalo__scelta .nome { font-weight: 600; font-size: 0.92em; }
.abn-regalo__scelta .valore { font-size: 0.8em; opacity: 0.7; }

.abn-regalo__tag {
	display: inline-block;
	margin-left: 6px;
	padding: 1px 7px;
	border-radius: 999px;
	font-size: 0.72em;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	border: 1px solid currentColor;
}

/* ---------- recensioni ---------- */
.abn-rec__stelle { color: #f5a623; letter-spacing: 0.06em; white-space: nowrap; }
.abn-rec__vuote { color: rgba(128, 128, 128, 0.35); }

.abn-rec-sintesi,
.abn-rec-mini {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 0.9em;
	margin: 0 0 10px;
}
.abn-rec-mini { font-size: 0.82em; margin: 4px 0; }
.abn-rec-sintesi span,
.abn-rec-mini span { opacity: 0.7; }

.abn-rec__testa {
	display: flex;
	align-items: baseline;
	gap: 10px;
	margin-bottom: 18px;
	padding-bottom: 14px;
	border-bottom: 1px solid rgba(128, 128, 128, 0.2);
}
.abn-rec__testa strong { font-size: 1.5em; }

.abn-rec__elenco { display: grid; gap: 18px; }

.abn-rec__voce h4 { margin: 8px 0 4px; }
.abn-rec__voce p { margin: 0 0 8px; }
.abn-rec__voce footer { font-size: 0.85em; opacity: 0.75; }

.abn-rec__ok {
	display: inline-block;
	margin-left: 6px;
	padding: 1px 8px;
	border-radius: 999px;
	font-size: 0.86em;
	border: 1px solid currentColor;
}

/* La risposta del negozio conta quanto la recensione: chi legge guarda come si risponde
   a una lamentela per capire con chi ha a che fare. */
.abn-rec__risposta {
	margin-top: 10px;
	padding: 10px 14px;
	border-left: 3px solid currentColor;
	background: rgba(128, 128, 128, 0.07);
}
.abn-rec__risposta strong { display: block; font-size: 0.82em; margin-bottom: 2px; }
.abn-rec__risposta p { margin: 0; font-size: 0.92em; }

/* ---------- fascia di testimonianze ----------
   Scorre in orizzontale con lo scroll nativo: nessuna libreria, funziona col dito sul
   telefono e con la rotella sul desktop, e non si rompe se il JavaScript non parte. */
.abn-testi { overflow: hidden; }
.abn-testi__pista {
	display: flex;
	gap: 16px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	padding: 4px 4px 16px;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: thin;
}
.abn-testi__voce {
	flex: 0 0 min(320px, 82vw);
	scroll-snap-align: start;
	margin: 0;
	padding: 18px 20px;
	border: 1px solid rgba(128, 128, 128, 0.25);
	border-radius: 16px;
	display: grid;
	gap: 10px;
	align-content: start;
}
.abn-testi__voce blockquote {
	margin: 0;
	font-size: 1.02em;
	line-height: 1.45;
	quotes: "\201C" "\201D";
}
.abn-testi__voce blockquote::before { content: open-quote; opacity: 0.4; }
.abn-testi__voce blockquote::after { content: close-quote; opacity: 0.4; }
.abn-testi__voce figcaption { font-size: 0.85em; opacity: 0.75; }
.abn-testi__voce figcaption a { color: inherit; }

/* Prezzo riservato agli iscritti: sotto il prezzo, deve farsi notare senza gridare. */
.abn-iscritto-prezzo {
	display: block;
	margin-top: 4px;
	font-size: 0.82em;
	font-weight: 600;
	line-height: 1.35;
}

/* La mia iscrizione: riquadri semplici, il tema decide colori e caratteri. */
.abn-iscrizione { display: grid; gap: 16px; }
.abn-iscrizione__attiva,
.abn-iscrizione__requisito,
.abn-iscrizione__offerta { padding: 16px 18px; border: 1px solid rgba(128, 128, 128, 0.35); border-radius: 14px; }
.abn-iscrizione__attiva--avviso { border-color: #c0392b; }
.abn-iscrizione__titolo { margin: 0 0 6px; font-weight: 600; }
.abn-iscrizione__nota { margin: 4px 0; font-size: 0.9em; opacity: 0.85; }
.abn-iscrizione__prezzo { margin: 0 0 8px; font-size: 1.4em; font-weight: 700; }
.abn-iscrizione__prezzo span { font-size: 0.6em; font-weight: 400; }
.abn-iscrizione__offerte { display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.abn-iscrizione__barra { height: 8px; margin: 10px 0 4px; border-radius: 99px; background: rgba(128, 128, 128, 0.2); overflow: hidden; }
.abn-iscrizione__barra span { display: block; height: 100%; border-radius: 99px; background: currentColor; }
.abn-iscrizione__oppure { margin: 6px 0; font-size: 0.8em; text-transform: uppercase; opacity: 0.6; }
.abn-iscrizione form { margin: 10px 0 0; }

/* Quantità di vendita: una riga discreta sopra il pulsante. */
.abn-quantita-nota { margin: 6px 0 10px; font-size: 0.9em; font-weight: 600; }

/* Lista desideri. */
.abn-cuore { display: inline-flex; align-items: center; gap: 8px; margin: 4px 0 12px; padding: 8px 14px; border: 1px solid rgba(128, 128, 128, 0.4); border-radius: 999px; background: transparent; color: inherit; font: inherit; cursor: pointer; }
.abn-cuore svg { fill: none; stroke: currentColor; stroke-width: 2; }
.abn-cuore.is-dentro svg { fill: #d33a4f; stroke: #d33a4f; }
.abn-cuore--piccolo { position: absolute; top: 8px; right: 8px; z-index: 3; margin: 0; padding: 7px; border: 0; background: rgba(255, 255, 255, 0.92); box-shadow: 0 1px 4px rgba(0, 0, 0, 0.15); }
.abn-cuore-griglia { position: relative; }
.abn-desideri { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.abn-desideri__voce { display: grid; grid-template-columns: 96px 1fr; gap: 14px; padding: 12px; border: 1px solid rgba(128, 128, 128, 0.3); border-radius: 14px; }
.abn-desideri__foto img { width: 96px; height: 96px; object-fit: cover; border-radius: 10px; }
.abn-desideri__nome { font-weight: 600; }
.abn-desideri__prezzo { margin: 4px 0; }
.abn-desideri__no { color: #b54708; }
.abn-desideri__avvisi label { display: block; font-size: 0.9em; }
.abn-desideri__azioni { margin: 8px 0 0; display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.abn-desideri__togli { background: none; border: 0; padding: 0; text-decoration: underline; cursor: pointer; color: inherit; }
.abn-desideri-avviso { position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%); z-index: 9999; max-width: calc(100% - 32px); padding: 12px 18px; border-radius: 12px; background: #14161a; color: #fff; font-size: 0.95em; transition: opacity 0.4s; }
.abn-desideri-avviso.is-via { opacity: 0; }

/* Regalo scelto dopo il pagamento: ogni scelta è un piccolo modulo con il suo pulsante. */
.abn-regalo__scelta { align-content: start; }
.abn-regalo__scelta img { width: 100%; height: auto; border-radius: 10px; }
.abn-regalo__scelta .valore { font-size: 0.85em; opacity: 0.75; }
.abn-regalo__scelta .button { margin-top: 6px; }

/* Confronto prodotti. */
.abn-confronta { display: inline-flex; align-items: center; gap: 6px; margin: 4px 0 12px; padding: 7px 12px; border: 1px solid rgba(128, 128, 128, 0.4); border-radius: 999px; background: transparent; color: inherit; font: inherit; font-size: 0.9em; cursor: pointer; }
.abn-confronta.is-dentro { border-color: currentColor; font-weight: 600; }
.abn-confronta--piccolo { margin: 6px 0 0; padding: 4px 10px; font-size: 0.8em; }

/* Il cuore e «Confronta» sono due gesti dello stesso tipo, uno accanto all'altro: devono
   essere due pulsanti gemelli. Ma SOLO sulla scheda del prodotto, dove c'è spazio e dove
   si guardano da vicino: dentro le tessere dei caroselli e delle griglie restano i segni
   piccoli di sempre, altrimenti mangiano la tessera. */
.single-product .abn-scheda__gesti {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 14px;
}
.single-product .abn-scheda__gesti .abn-cuore,
.single-product .abn-scheda__gesti .abn-confronta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 46px;          /* si tocca col dito senza sbagliare */
  margin: 0;
  padding: 0 18px;
  border: 1px solid rgba(128, 128, 128, 0.4);
  border-radius: 999px;
  background: transparent;
  color: inherit;
  font: inherit;
  font-size: 0.95rem;
  font-weight: 600;
  line-height: 1;
  cursor: pointer;
  transition: border-color 160ms ease, background 160ms ease;
}
.single-product .abn-scheda__gesti .abn-cuore:hover,
.single-product .abn-scheda__gesti .abn-confronta:hover { border-color: currentColor; }

/* Sul telefono i due gesti stanno sulla STESSA riga: due pulsanti uno sopra l'altro, larghi
   quanto lo schermo, sembrano due pulsanti d'acquisto e rubano l'occhio a quello vero.
   «Aggiungi alla lista desideri» non ci starebbe in mezza riga: lì il cuore resta il solo
   simbolo (il testo lo dice comunque a chi naviga con lo screen reader, nell'aria-label) e
   «Confronta» si prende lo spazio che avanza. */
@media (max-width: 781px) {
  .single-product .abn-scheda__gesti { flex-wrap: nowrap; align-items: stretch; }
  .single-product .abn-scheda__gesti .abn-cuore {
    flex: 0 0 auto;
    width: 46px;
    padding: 0;
    gap: 0;
  }
  .single-product .abn-scheda__gesti .abn-cuore > span { display: none; }
  .single-product .abn-scheda__gesti .abn-confronta {
    flex: 1 1 auto;
    min-width: 0;
    padding: 0 14px;
  }
}
.abn-confronto-barra { position: fixed; left: 50%; bottom: 16px; transform: translateX(-50%); z-index: 9998; display: flex; align-items: center; gap: 12px; flex-wrap: wrap; justify-content: center; max-width: calc(100% - 32px); padding: 10px 14px; border-radius: 14px; background: #fff; color: #14161a; box-shadow: 0 6px 24px rgba(0, 0, 0, 0.18); }
.abn-confronto-barra__svuota { background: none; border: 0; text-decoration: underline; cursor: pointer; color: inherit; }
.abn-confronto__scorri { overflow-x: auto; }
.abn-confronto__tabella { width: 100%; min-width: 560px; border-collapse: collapse; }
.abn-confronto__tabella th, .abn-confronto__tabella td { padding: 10px; border-bottom: 1px solid rgba(128, 128, 128, 0.2); text-align: left; vertical-align: top; }
.abn-confronto__tabella thead th { vertical-align: bottom; }
.abn-confronto__tabella thead img { display: block; width: 120px; height: 120px; object-fit: cover; border-radius: 10px; margin-bottom: 6px; }
.abn-confronto__tabella tbody th { font-weight: 600; white-space: nowrap; }
.abn-confronto__tabella tr.is-diversa td { font-weight: 600; }
.abn-confronto__togli { display: block; margin-top: 6px; background: none; border: 0; padding: 0; text-decoration: underline; cursor: pointer; color: inherit; font-size: 0.85em; }
.abn-confronto__no { color: #b54708; }
.abn-confronto__sezione th { padding-top: 22px; font-size: 0.95em; letter-spacing: 0.04em; text-transform: uppercase; opacity: 0.75; border-bottom-width: 2px; }
.abn-confronto__tabella tbody th.abn-confronto__sotto { padding-left: 26px; font-weight: 400; opacity: 0.85; }
.abn-confronto__tabella td.abn-confronto__meglio { font-weight: 800; }
.abn-confronto__bollino { color: #2e7d32; }
.abn-confronto__vuoto { opacity: 0.5; }

/* Scrivere una recensione (solo chi ha comprato il prodotto). */
.abn-rec-scrivi { margin-top: 24px; padding: 20px; border: 1px solid rgba(128,128,128,.25); border-radius: 12px; display: grid; gap: 12px; max-width: 640px; }
.abn-rec-scrivi__titolo { margin: 0; font-weight: 800; font-size: 1.05rem; }
.abn-rec-scrivi__nota { margin: 0; font-size: .85rem; opacity: .75; }
.abn-rec-scrivi__invito { margin-top: 18px; font-size: .92rem; }
.abn-rec-scrivi label { display: grid; gap: 4px; font-weight: 600; font-size: .9rem; }
.abn-rec-scrivi label span { font-weight: 400; opacity: .7; }
.abn-rec-scrivi input[type=text], .abn-rec-scrivi textarea { width: 100%; padding: 10px 12px; border: 1px solid rgba(128,128,128,.4); border-radius: 8px; font: inherit; }
.abn-rec-scrivi__stelle { border: 0; padding: 0; margin: 0; display: inline-flex; flex-direction: row-reverse; justify-content: flex-end; gap: 2px; }
.abn-rec-scrivi__stelle legend { width: 100%; font-weight: 600; font-size: .9rem; margin-bottom: 4px; }
.abn-rec-scrivi__stelle input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.abn-rec-scrivi__stelle label { font-size: 1.9rem; line-height: 1; color: rgba(128,128,128,.35); cursor: pointer; }
.abn-rec-scrivi__stelle input:checked ~ label, .abn-rec-scrivi__stelle label:hover, .abn-rec-scrivi__stelle label:hover ~ label { color: #f5a623; }
.abn-rec-scrivi__stelle input:focus-visible + label { outline: 2px solid currentColor; outline-offset: 2px; }
.abn-rec-scrivi button { justify-self: start; }
.abn-rec-scrivi--grazie { background: rgba(0,115,58,.06); }
.abn-rec-scrivi__codice { font-size: 1.15rem; letter-spacing: .06em; }
