/* ============================================================================
   Il carrello a scomparsa
   ----------------------------------------------------------------------------
   Entra da destra e lascia la pagina dov'era. L'ordine dentro al pannello e'
   quello delle domande: quanto manca al gratis (si decide ancora), cosa ho
   preso, quanto pago, e solo in fondo i due modi di uscire.
   ========================================================================= */

/* L'attributo hidden lo batte qualunque regola di display scritta dopo.
   Qui sotto ce ne sono parecchie, quindi va messo fuori discussione. */
.rt-cassetto[hidden],
.rt-cassetto [hidden] { display: none !important; }

/* Il corpo non scorre mentre il cassetto e' aperto: due scorrimenti
   sovrapposti sono il modo piu' veloce di perdere il posto nella pagina. */
.rt-blocca, .rt-blocca body { overflow: hidden; }

.rt-cassetto {
  position: fixed;
  inset: 0;
  /* 130: sopra la testata appiccicata (100), sopra l'assistente (96),
     sopra la barra d'acquisto (60) e sopra la fettuccia metrica in cima
     (120) — che se no disegnava una riga blu ferma attraverso la testata
     del pannello, dove sembra un difetto e non un indicatore. */
  z-index: 130;
  display: flex;
  justify-content: flex-end;
}

/* ── Il velo ─────────────────────────────────────────────────────────── */

.rt-cassetto__velo {
  position: absolute;
  inset: 0;
  padding: 0;
  border: 0;
  cursor: pointer;
  background: var(--rt-velo);
  opacity: 0;
  transition: opacity 320ms cubic-bezier(0.22, 1, 0.36, 1);
  /* Sfocare quello che sta sotto costa poco e stacca il pannello meglio
     di qualunque ombra: il fondo diventa una superficie sola. */
  backdrop-filter: blur(3px);
  -webkit-backdrop-filter: blur(3px);
}
.rt-cassetto.e-aperto .rt-cassetto__velo { opacity: 1; }

/* ── Il pannello ─────────────────────────────────────────────────────── */

.rt-cassetto__pannello {
  position: relative;
  display: flex;
  flex-direction: column;
  width: min(100%, var(--rt-cassetto));
  height: 100%;
  background: var(--rt-superficie);
  border-radius: var(--rt-r-2xl) 0 0 var(--rt-r-2xl);
  box-shadow: var(--rt-ombra-3);
  transform: translateX(100%);
  transition: transform 340ms cubic-bezier(0.22, 1, 0.36, 1);
  overflow: hidden;
}
.rt-cassetto.e-aperto .rt-cassetto__pannello { transform: none; }

/* A tutta larghezza non ha due angoli da arrotondare: ne ha quattro di
   troppo. Sul telefono il pannello E' la pagina. */
@media (max-width: 560px) {
  .rt-cassetto__pannello { border-radius: 0; }
}

/* Mentre il server risponde: non si spegne niente, si toglie un filo di
   contrasto. Un pannello che sbianca a ogni "+" lampeggia. */
.rt-cassetto.e-attesa .rt-cassetto__corpo { opacity: 0.55; pointer-events: none; }
.rt-cassetto__corpo { transition: opacity 140ms ease; }

/* ── La testata ──────────────────────────────────────────────────────── */

.rt-cassetto__testa {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--rt-s4);
  flex: none;
  padding: var(--rt-s5) var(--rt-s6);
  border-block-end: 1px solid var(--rt-linea);
}
.rt-cassetto__testa h2 {
  display: flex;
  align-items: center;
  gap: var(--rt-s2);
  margin: 0;
  font-size: var(--rt-t-lg);
  font-weight: var(--rt-peso-forte);
  letter-spacing: var(--rt-tracking-testa);
}
.rt-cassetto__conta {
  display: inline-grid;
  place-items: center;
  min-width: 22px;
  height: 22px;
  padding-inline: 6px;
  border-radius: var(--rt-r-pill);
  background: var(--rt-blu-tenue);
  color: var(--rt-blu-scuro);
  font-family: var(--rt-font-dati);
  font-variant-numeric: tabular-nums;
  font-size: var(--rt-t-xs);
}

.rt-cassetto__chiudi {
  display: grid;
  place-items: center;
  flex: none;
  width: 38px;
  height: 38px;
  border: 0;
  border-radius: var(--rt-r-pill);
  background: var(--rt-superficie-2);
  color: var(--rt-ink-2);
  cursor: pointer;
  transition: background var(--rt-transizione), color var(--rt-transizione);
}
.rt-cassetto__chiudi:hover { background: var(--rt-linea); color: var(--rt-ink); }

/* ── Il corpo che scorre ─────────────────────────────────────────────── */

.rt-cassetto__corpo {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
}
.rt-cassetto__scorre {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: var(--rt-s5) var(--rt-s6);
}

/* ── La soglia della spedizione gratuita ─────────────────────────────── */

.rt-csped {
  margin-block-end: var(--rt-s5);
  padding: var(--rt-s4);
  border-radius: var(--rt-r-md);
  background: var(--rt-superficie-2);
}
.rt-csped__testo {
  margin: 0 0 var(--rt-s3);
  font-size: var(--rt-t-sm);
  color: var(--rt-ink-2);
}
.rt-csped__testo b { color: var(--rt-ink); font-weight: var(--rt-peso-forte); }

.rt-csped__pista {
  display: block;
  height: 7px;
  border-radius: var(--rt-r-pill);
  background: color-mix(in srgb, var(--rt-ink) 10%, transparent);
  overflow: hidden;
}
.rt-csped__riempi {
  display: block;
  width: var(--rt-quota, 0%);
  height: 100%;
  border-radius: inherit;
  background: var(--rt-grad-cta);
  transition: width 420ms cubic-bezier(0.22, 1, 0.36, 1);
}

/* Arrivati: il verde di "fatto", non il blu di "in corso". Il colore
   cambia perche' cambia il significato, non per vivacita'. */
.rt-csped--fatta { background: var(--rt-ok-tenue); }
.rt-csped--fatta .rt-csped__testo b { color: var(--rt-ok); }
.rt-csped--fatta .rt-csped__riempi { background: var(--rt-ok); }

/* ── Le righe ────────────────────────────────────────────────────────── */

.rt-crighe {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: var(--rt-s4);
}

.rt-criga {
  display: grid;
  grid-template-columns: 64px 1fr auto;
  gap: var(--rt-s4);
  align-items: start;
  padding-block-end: var(--rt-s4);
  border-block-end: 1px solid var(--rt-linea);
}
.rt-criga:last-child { border-block-end: 0; padding-block-end: 0; }

.rt-criga__img {
  display: grid;
  place-items: center;
  aspect-ratio: 1;
  border-radius: var(--rt-r-sm);
  background: var(--rt-superficie-2);
  overflow: hidden;
}
.rt-criga__img img { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; }

.rt-criga__corpo { display: grid; gap: var(--rt-s2); min-width: 0; }

.rt-criga__nome {
  font-size: var(--rt-t-sm);
  font-weight: var(--rt-peso-forte);
  color: var(--rt-ink);
  line-height: 1.3;
  text-decoration: none;
}
.rt-criga__nome:hover { color: var(--rt-blu); }
.rt-criga__var { font-size: var(--rt-t-xs); color: var(--rt-ink-3); }

.rt-criga__basso {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--rt-s3);
  flex-wrap: wrap;
  margin-block-start: var(--rt-s1);
}
.rt-criga__prezzo {
  font-family: var(--rt-font-dati);
  font-variant-numeric: tabular-nums;
  font-size: var(--rt-t-sm);
  color: var(--rt-ink);
  font-variant-numeric: tabular-nums;
}

/* Il contatore della riga: lo stesso disegno di quello della scheda, in
   piccolo. Due contatori diversi nello stesso sito sono due cose da
   imparare al posto di una. */
.rt-cqta {
  display: inline-flex;
  align-items: stretch;
  border: 1px solid var(--rt-linea);
  border-radius: var(--rt-r-sm);
  overflow: hidden;
}
.rt-cqta__b {
  width: 30px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--rt-ink-2);
  font-family: var(--rt-font);
  font-size: var(--rt-t-sm);
  line-height: 1;
  cursor: pointer;
  transition: background var(--rt-transizione);
}
.rt-cqta__b:hover { background: var(--rt-superficie-2); color: var(--rt-ink); }
.rt-cqta__n {
  width: 2.5rem;
  min-height: 30px;
  padding: 0;
  border: 0;
  border-inline: 1px solid var(--rt-linea);
  background: transparent;
  text-align: center;
  font-family: var(--rt-font-dati);
  font-variant-numeric: tabular-nums;
  font-size: var(--rt-t-xs);
  color: var(--rt-ink);
  -moz-appearance: textfield;
  appearance: textfield;
}
.rt-cqta__n::-webkit-outer-spin-button,
.rt-cqta__n::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

.rt-criga__via {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border: 0;
  border-radius: var(--rt-r-pill);
  background: transparent;
  color: var(--rt-ink-3);
  cursor: pointer;
  transition: background var(--rt-transizione), color var(--rt-transizione);
}
.rt-criga__via:hover { background: var(--rt-superficie-2); color: var(--rt-errore); }

/* ── Il codice sconto ────────────────────────────────────────────────── */

.rt-ccoupon {
  margin-block-start: var(--rt-s5);
  border-block-start: 1px solid var(--rt-linea);
}
.rt-ccoupon summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-block: var(--rt-s4);
  font-size: var(--rt-t-sm);
  color: var(--rt-ink-2);
  cursor: pointer;
  list-style: none;
}
.rt-ccoupon summary::-webkit-details-marker { display: none; }
.rt-ccoupon summary span {
  position: relative;
  width: 16px;
  height: 16px;
  flex: none;
}
.rt-ccoupon summary span::before,
.rt-ccoupon summary span::after {
  content: "";
  position: absolute;
  inset-block-start: 50%;
  inset-inline-start: 50%;
  width: 11px;
  height: 1.5px;
  background: var(--rt-ink-3);
  transform: translate(-50%, -50%);
  transition: transform var(--rt-transizione);
}
.rt-ccoupon summary span::after { transform: translate(-50%, -50%) rotate(90deg); }
.rt-ccoupon[open] summary span::after { transform: translate(-50%, -50%) rotate(0deg); }

.rt-ccoupon__dentro { padding-block-end: var(--rt-s4); display: grid; gap: var(--rt-s3); }

.rt-ccoupon__riga { display: flex; gap: var(--rt-s2); }
.rt-ccoupon__riga input {
  flex: 1 1 auto;
  min-width: 0;
  padding: var(--rt-s3) var(--rt-s4);
  border: 1.5px solid var(--rt-linea);
  border-radius: var(--rt-r-sm);
  background: var(--rt-superficie);
  font-family: var(--rt-font-dati);
  font-variant-numeric: tabular-nums;
  font-size: var(--rt-t-sm);
  color: var(--rt-ink);
  text-transform: uppercase;
}
.rt-ccoupon__riga input:focus-visible { outline: 2px solid var(--rt-blu); outline-offset: 1px; border-color: var(--rt-blu); }

/* I codici si scrivono maiuscoli, il suggerimento no: "IL TUO CODICE"
   in stampatello sembra un campo gia' compilato male. */
.rt-ccoupon__riga input::placeholder { text-transform: none; }

.rt-ccoupon__attivi { margin: 0; padding: 0; list-style: none; display: grid; gap: var(--rt-s2); }
.rt-ccoupon__attivi li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--rt-s3);
  padding: var(--rt-s2) var(--rt-s3);
  border-radius: var(--rt-r-sm);
  background: var(--rt-ok-tenue);
  font-size: var(--rt-t-xs);
  color: var(--rt-ok);
}
.rt-ccoupon__attivi b { font-family: var(--rt-font-dati); font-variant-numeric: tabular-nums; font-weight: var(--rt-peso-medio); }
.rt-ccoupon__attivi button {
  border: 0;
  background: transparent;
  color: var(--rt-ink-3);
  font-size: var(--rt-t-xs);
  text-decoration: underline;
  cursor: pointer;
}
.rt-ccoupon__attivi button:hover { color: var(--rt-errore); }

/* ── Le altre misure ─────────────────────────────────────────────────────
   Il pezzo che fa risparmiare un giro intero: chi ha due stampanti —
   la cassa e il POS, la cassa e la bilancia — oggi per la seconda misura
   deve uscire dal carrello, tornare al catalogo e ricominciare.

   Qui la quantita' si sceglie da un menu con gli stessi scaglioni del
   listino, il prezzo si aggiorna mentre si sceglie, e il piu' aggiunge.
   Tre righe, non sei: un elenco lungo in fondo a un carrello e' un
   catalogo, e un catalogo rimanda la decisione.                          */

.rt-csugg {
  margin-block-start: var(--rt-s6);
  padding-block-start: var(--rt-s5);
  border-block-start: 1px solid var(--rt-linea);
}
.rt-csugg__titolo {
  margin: 0;
  font-size: var(--rt-t-base);
  font-weight: var(--rt-peso-forte);
  color: var(--rt-ink);
}
.rt-csugg__sub {
  margin: var(--rt-s1) 0 var(--rt-s4);
  font-size: var(--rt-t-xs);
  color: var(--rt-ink-3);
}

.rt-csugg__elenco { margin: 0; padding: 0; list-style: none; display: grid; gap: var(--rt-s2); }

.rt-csugg__voce {
  display: grid;
  grid-template-columns: 52px 1fr;
  gap: var(--rt-s3);
  align-items: center;
  padding: var(--rt-s3);
  border: 1px solid var(--rt-linea);
  border-radius: var(--rt-r-md);
  background: var(--rt-superficie);
  transition: border-color var(--rt-transizione), background var(--rt-transizione);
}
.rt-csugg__voce:hover { border-color: color-mix(in srgb, var(--rt-blu) 45%, var(--rt-linea)); }

.rt-csugg__img {
  display: grid;
  place-items: center;
  aspect-ratio: 1;
  border-radius: var(--rt-r-sm);
  background: var(--rt-superficie-2);
  overflow: hidden;
}
.rt-csugg__img img { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; }

.rt-csugg__corpo { display: grid; gap: var(--rt-s2); min-width: 0; }

.rt-csugg__nome {
  font-size: var(--rt-t-xs);
  color: var(--rt-ink-2);
  line-height: 1.3;
  text-decoration: none;
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.rt-csugg__nome b {
  font-family: var(--rt-font-dati);
  font-variant-numeric: tabular-nums;
  font-weight: var(--rt-peso-medio);
  color: var(--rt-ink);
}
.rt-csugg__nome:hover { color: var(--rt-blu); }

.rt-csugg__riga {
  display: flex;
  align-items: center;
  gap: var(--rt-s2);
  min-width: 0;
}

/* La tendina del sistema, vestita: una select vera continua a funzionare
   con la tastiera e sul telefono apre la rotella nativa, che nessun menu
   rifatto a mano eguaglia. */
.rt-csugg__qta {
  flex: 0 1 auto;
  min-width: 0;
  padding: var(--rt-s1) 1.6rem var(--rt-s1) var(--rt-s3);
  border: 1px solid var(--rt-linea);
  border-radius: var(--rt-r-sm);
  background-color: var(--rt-superficie);
  background-image: linear-gradient(45deg, transparent 50%, var(--rt-ink-3) 50%),
                    linear-gradient(135deg, var(--rt-ink-3) 50%, transparent 50%);
  background-position: right 0.75rem center, right 0.5rem center;
  background-size: 5px 5px, 5px 5px;
  background-repeat: no-repeat;
  color: var(--rt-ink);
  font-family: var(--rt-font);
  font-size: var(--rt-t-xs);
  line-height: 1.6;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
}
.rt-csugg__qta:focus-visible { outline: 2px solid var(--rt-blu); outline-offset: 1px; }

.rt-csugg__prezzo {
  flex: 1 1 auto;
  min-width: 0;
  font-family: var(--rt-font-dati);
  font-variant-numeric: tabular-nums;
  font-size: var(--rt-t-xs);
  color: var(--rt-ink);
  text-align: end;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.rt-csugg__piu {
  display: grid;
  place-items: center;
  flex: none;
  width: 32px;
  height: 32px;
  border: 0;
  border-radius: var(--rt-r-sm);
  background: var(--rt-blu-tenue);
  color: var(--rt-blu-scuro);
  cursor: pointer;
  transition: background var(--rt-transizione), color var(--rt-transizione);
}
.rt-csugg__piu:hover { background: var(--rt-blu); color: var(--rt-superficie); }
.rt-csugg__piu:focus-visible { outline: 2px solid var(--rt-blu); outline-offset: 2px; }

@media (max-width: 400px) {
  .rt-csugg__riga { flex-wrap: wrap; }
  .rt-csugg__prezzo { text-align: start; }
}

/* La riserva: misure come pastiglie, finche' non arrivano i
   suggerimenti veri. Occupa lo stesso posto, cosi' il pannello non
   cresce sotto gli occhi quando la chiamata risponde. */
.rt-csugg__chip {
  display: flex;
  flex-wrap: wrap;
  gap: var(--rt-s2);
  margin: 0 0 var(--rt-s4);
  padding: 0;
  list-style: none;
}
.rt-csugg__chip a {
  display: inline-flex;
  padding: var(--rt-s2) var(--rt-s4);
  border: 1px solid var(--rt-linea);
  border-radius: var(--rt-r-pill);
  background: var(--rt-superficie);
  color: var(--rt-ink);
  font-family: var(--rt-font-dati);
  font-variant-numeric: tabular-nums;
  font-size: var(--rt-t-xs);
  text-decoration: none;
  transition: border-color var(--rt-transizione), background var(--rt-transizione), color var(--rt-transizione);
}
.rt-csugg__chip a:hover {
  border-color: var(--rt-blu);
  background: var(--rt-blu-tenue);
  color: var(--rt-blu-scuro);
}
.rt-csugg__tutte {
  display: inline-flex;
  align-items: center;
  gap: var(--rt-s2);
  color: var(--rt-blu);
  font-size: var(--rt-t-sm);
  font-weight: var(--rt-peso-medio);
  text-decoration: none;
}
.rt-csugg__tutte:hover { color: var(--rt-blu-scuro); text-decoration: underline; text-underline-offset: 3px; }

/* ── Gli avvisi ──────────────────────────────────────────────────────── */

.rt-cassetto__avvisi {
  margin: var(--rt-s4) 0 0;
  padding: var(--rt-s3) var(--rt-s4);
  border-radius: var(--rt-r-sm);
  background: var(--rt-ok-tenue);
  color: var(--rt-ok);
  font-size: var(--rt-t-sm);
}
.rt-cassetto__avvisi.e-errore {
  background: color-mix(in srgb, var(--rt-errore) 10%, transparent);
  color: var(--rt-errore);
}

/* ── Il carrello vuoto ───────────────────────────────────────────────── */

.rt-cassetto__vuoto {
  display: grid;
  justify-items: center;
  gap: var(--rt-s3);
  padding-block: var(--rt-s16);
  text-align: center;
  color: var(--rt-ink-3);
}
.rt-cassetto__vuoto svg { color: var(--rt-linea); }
.rt-cassetto__vuoto p { margin: 0; font-size: var(--rt-t-sm); max-width: 28ch; }
.rt-cassetto__vuoto b { color: var(--rt-ink); font-size: var(--rt-t-base); }
.rt-cassetto__vuoto .rt-btn { margin-block-start: var(--rt-s3); }

/* ── Il piede: i numeri e le due uscite ──────────────────────────────── */

/* ── IL PIEDE DEL CASSETTO ────────────────────────────────────────────────
   Occupava quasi meta' pannello: riepilogo, totale grande, una riga di
   nota, il pulsante alto 56 e due collegamenti. Su un telefono restavano
   due righe e mezza di carrello visibili — cioe' il carrello non si
   vedeva, si vedeva il suo totale.

   Qui e' tutto piu' corto di un gradino. Il totale resta grande, perche'
   e' il numero per cui uno apre il carrello; tutto il resto scende.

   LA SFUMATURA AL POSTO DEL FILETTO. Un filetto dice "finisce qui" ed e'
   falso: sopra c'e' un elenco che continua, e la sfumatura lo dice —
   l'ultima riga svanisce invece di essere tagliata. Due separazioni a tre
   pixel l'una dall'altra sono una di troppo, quindi il filetto va via. */
.rt-cassetto__piede {
  position: relative;
  flex: none;
  padding: var(--rt-s4) var(--rt-s5) calc(var(--rt-s4) + env(safe-area-inset-bottom));
  background: var(--rt-superficie);
}
.rt-cassetto__piede::before {
  content: "";
  position: absolute;
  inset-inline: 0;
  inset-block-end: 100%;
  height: 2.5rem;
  pointer-events: none;
  background: linear-gradient(to top, var(--rt-superficie), transparent);
}

.rt-ctotali { margin: 0 0 var(--rt-s3); display: grid; gap: var(--rt-s1); }
.rt-ctotali > div { display: flex; align-items: baseline; justify-content: space-between; gap: var(--rt-s4); }
.rt-ctotali dt { font-size: var(--rt-t-sm); color: var(--rt-ink-3); }
.rt-ctotali dd {
  margin: 0;
  font-family: var(--rt-font-dati);
  font-variant-numeric: tabular-nums;
  font-size: var(--rt-t-sm);
  color: var(--rt-ink-2);
  font-variant-numeric: tabular-nums;
}
.rt-ctotali__sconto dd { color: var(--rt-risparmio); }

.rt-ctotali__riga-grande {
  padding-block-start: var(--rt-s2);
  border-block-start: 1px solid var(--rt-linea);
}
.rt-ctotali__riga-grande dt { font-size: var(--rt-t-sm); font-weight: var(--rt-peso-forte); color: var(--rt-ink); }
.rt-ctotali__riga-grande dd { font-size: var(--rt-t-lg); color: var(--rt-ink); }

.rt-cassetto__nota {
  margin: 0 0 var(--rt-s3);
  font-size: var(--rt-t-xxs);
  line-height: 1.35;
  color: var(--rt-ink-3);
}

.rt-cassetto__azioni { display: grid; gap: var(--rt-s2); }

/* Lo stesso pulsante della scheda prodotto: chi ha cliccato "aggiungi"
   due secondi fa deve ritrovare la stessa cosa sotto gli occhi. */
.rt-cassetto__cassa {
  min-height: 50px;
  border-radius: var(--rt-r-md);
  background: var(--rt-grad-cta);
  color: var(--rt-superficie);
  font-weight: var(--rt-peso-titolo);
  box-shadow: var(--rt-ombra-cta);
  transition: box-shadow 200ms ease, transform 140ms ease, background 200ms ease;
}
.rt-cassetto__cassa:hover,
.rt-cassetto__cassa:focus,
.rt-cassetto__cassa:focus-visible,
.rt-cassetto__cassa:active {
  background: var(--rt-grad-cta-su);
  color: var(--rt-superficie);
  box-shadow: var(--rt-ombra-cta-su);
  transform: translateY(-2px);
}
.rt-cassetto__cassa span { transition: transform var(--rt-transizione); }
.rt-cassetto__cassa:hover span { transform: translateX(3px); }

.rt-cassetto__minori {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--rt-s4);
}
.rt-cassetto__continua,
.rt-cassetto__completo {
  border: 0;
  background: transparent;
  padding: 0;
  font-family: var(--rt-font);
  font-size: var(--rt-t-sm);
  color: var(--rt-ink-3);
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
}
.rt-cassetto__continua:hover,
.rt-cassetto__completo:hover { color: var(--rt-ink); }

/* ── Movimento ridotto ───────────────────────────────────────────────── */

@media (prefers-reduced-motion: reduce) {
  .rt-cassetto__pannello,
  .rt-cassetto__velo,
  .rt-csped__riempi,
  .rt-cassetto__cassa { transition: none; }
  .rt-cassetto__cassa:hover { transform: none; }
}
