/* ==========================================================================
   SECONDA VISIONE — COMPONENTI (Mission 10B.2-R3)
   ========================================================================== */

/* ---------------------------------------------------------------------- */
/* MARCHIO — "convergenza di due fotogrammi": quattro angoli di inquadratura,
   due bianchi (primo fotogramma) e due rossi (secondo, che arriva e si
   allinea). Astratto, proprietario, funziona a qualunque scala e in
   monocromia. Nessun ciak, nessuna bobina, nessun occhio letterale.       */
/* ---------------------------------------------------------------------- */

.sv-mark {
  color: var(--sv-text);
  flex-shrink: 0;
  overflow: visible;
}
.sv-mark__bracket {
  fill: none;
  stroke: currentColor;
  stroke-width: 3.4;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.sv-mark__bracket--red { stroke: var(--sv-red); }

@keyframes sv-mark-settle {
  from { opacity: 0; transform: scale(0.9); }
  to   { opacity: 1; transform: scale(1); }
}
.js .sv-mark:not(.sv-mark--reveal) .sv-mark__bracket {
  animation: sv-mark-settle var(--sv-duration-reveal) var(--sv-ease-soft) both;
  transform-origin: 24px 24px;
}
.js .sv-mark:not(.sv-mark--reveal) .sv-mark__bracket--red { animation-delay: 80ms; }

/* ---------- Ingresso Home: le due coppie convergono nel marchio definitivo.
   Bianco = primo fotogramma (appare). Rosso = secondo (arriva offset,
   ruotato, e si allinea) — "due stati -> allineamento -> marchio". ---- */
@keyframes sv-mark-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes sv-mark-converge {
  0% { opacity: 0; transform: translate(7px, -7px) rotate(-10deg); }
  55% { opacity: 1; }
  100% { opacity: 1; transform: translate(0, 0) rotate(0deg); }
}
@keyframes sv-mark-converge-inv {
  0% { opacity: 0; transform: translate(-7px, 7px) rotate(10deg); }
  55% { opacity: 1; }
  100% { opacity: 1; transform: translate(0, 0) rotate(0deg); }
}
.js .sv-mark--reveal .sv-mark__bracket--a,
.js .sv-mark--reveal .sv-mark__bracket--d {
  animation: sv-mark-fade calc(var(--sv-duration-reveal) * 0.8) var(--sv-ease-soft) both;
}
.js .sv-mark--reveal .sv-mark__bracket--b {
  transform-origin: 36px 12px;
  animation: sv-mark-converge calc(var(--sv-duration-reveal) * 1.5) var(--sv-ease-soft) calc(var(--sv-duration-reveal) * 0.3) both;
}
.js .sv-mark--reveal .sv-mark__bracket--c {
  transform-origin: 12px 36px;
  animation: sv-mark-converge-inv calc(var(--sv-duration-reveal) * 1.5) var(--sv-ease-soft) calc(var(--sv-duration-reveal) * 0.4) both;
}

.sv-wordmark {
  display: inline-flex;
  align-items: center;
  gap: var(--sv-space-3);
  text-decoration: none;
  color: var(--sv-text);
}
.sv-wordmark:hover .sv-mark__bracket--red { transform: translate(1px, -1px); }
.sv-wordmark .sv-mark__bracket { transition: transform var(--sv-duration-base) var(--sv-ease-soft); }

.sv-wordmark__text {
  font-family: var(--sv-font-sans);
  font-size: var(--sv-size-brand);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 700;
}
.sv-wordmark__text .thin { color: var(--sv-text-dim); font-weight: 400; }

/* ---------------------------------------------------------------------- */
/* HEADER / NAVIGAZIONE — mobile-first: mai due righe compresse, mai wrap
   disordinato. Su schermi piccoli la nav scorre in orizzontale invece
   di impilarsi in un blocco alto.                                        */
/* ---------------------------------------------------------------------- */

.sv-header {
  border-bottom: 1px solid var(--sv-border);
  padding: var(--sv-space-4) 0;
  position: relative;
  z-index: 20;
  background: linear-gradient(180deg, rgba(6,6,6,0.7), rgba(6,6,6,0));
  backdrop-filter: blur(6px);
}

.sv-header__inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--sv-space-2) var(--sv-space-4);
  min-height: var(--sv-touch-min);
}

.sv-nav {
  display: flex;
  align-items: center;
  gap: var(--sv-space-6);
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  min-height: var(--sv-touch-min);
}
.sv-nav::-webkit-scrollbar { display: none; }

.sv-nav a {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  height: var(--sv-touch-min);
  font-family: var(--sv-font-sans);
  font-size: var(--sv-size-meta);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--sv-text-dim);
  border-bottom: 2px solid transparent;
  transition: color var(--sv-duration-fast) var(--sv-ease), border-color var(--sv-duration-fast) var(--sv-ease);
}
.sv-nav a:hover, .sv-nav a[aria-current="page"] {
  color: var(--sv-text);
  border-bottom-color: var(--sv-red);
}

.sv-nav__badge {
  flex-shrink: 0;
  font-family: var(--sv-font-sans);
  font-size: var(--sv-size-micro);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--sv-text-faint);
  border: 1px solid var(--sv-border-strong);
  border-radius: 999px;
  padding: 0.35em 0.8em;
}

.sv-nav a.sv-nav__cta { color: var(--sv-red); }
.sv-nav a.sv-nav__cta:hover { color: var(--sv-red-strong); }

/* ---------- Identita' utente + logout (Mission 10B.3A) ----------
   Discreti per design: nessuna profile page, nessun avatar — solo il
   nome e un'azione, come richiesto. */
.sv-nav__user {
  flex-shrink: 0;
  font-family: var(--sv-font-sans);
  font-size: var(--sv-size-meta);
  color: var(--sv-text-dim);
}
.sv-nav__logout { flex-shrink: 0; display: flex; }
.sv-nav__logout-btn {
  height: var(--sv-touch-min);
  padding: 0 var(--sv-space-1);
  background: none;
  border: none;
  cursor: pointer;
  font-family: var(--sv-font-sans);
  font-size: var(--sv-size-meta);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--sv-text-dim);
  border-bottom: 2px solid transparent;
  transition: color var(--sv-duration-fast) var(--sv-ease), border-color var(--sv-duration-fast) var(--sv-ease);
}
.sv-nav__logout-btn:hover { color: var(--sv-red); border-bottom-color: var(--sv-red); }

@media (max-width: 639px) {
  .sv-nav__badge { display: none; }
  /* Il nome utente si nasconde per lasciare spazio; Logout resta sempre
     visibile — l'azione conta piu' dell'etichetta su schermi piccoli. */
  .sv-nav__user { display: none; }
}

@media (max-width: 479px) {
  .sv-nav {
    flex-basis: 100%;
    justify-content: flex-end;
  }
}

/* ---------------------------------------------------------------------- */
/* FOCUS-IN — firma visiva: un doppione fantasma converge sull'originale. */
/* Usata per il momento più importante di ogni pagina (una sola volta).   */
/* ---------------------------------------------------------------------- */

.sv-focus-in { position: relative; display: inline-block; }
.sv-focus-in__ghost {
  position: absolute;
  inset: 0;
  color: var(--sv-red-soft);
  opacity: 0;
  transform: translate(-14px, -10px);
  filter: blur(0.5px);
  pointer-events: none;
  transition: transform var(--sv-duration-reveal) var(--sv-ease-soft),
              opacity var(--sv-duration-reveal) var(--sv-ease-soft);
}
.js .sv-focus-in.is-visible .sv-focus-in__ghost { opacity: 0.5; transform: translate(6px, 4px); }
.sv-focus-in__real { position: relative; }
@media (prefers-reduced-motion: reduce) { .sv-focus-in__ghost { display: none; } }

/* ---------------------------------------------------------------------- */
/* BOTTONI                                                                 */
/* ---------------------------------------------------------------------- */

.sv-btn {
  display: inline-flex;
  align-items: center;
  gap: var(--sv-space-2);
  min-height: var(--sv-touch-min);
  font-family: var(--sv-font-sans);
  font-size: 0.95rem;
  letter-spacing: 0.02em;
  text-decoration: none;
  padding: 0.7em 1.6em;
  border-radius: var(--sv-radius-sm);
  border: 1px solid transparent;
  cursor: pointer;
  transition: background-color var(--sv-duration-base) var(--sv-ease),
              border-color var(--sv-duration-base) var(--sv-ease),
              transform var(--sv-duration-fast) var(--sv-ease),
              box-shadow var(--sv-duration-base) var(--sv-ease);
}
.sv-btn:active { transform: translateY(1px); }

.sv-btn__arrow { display: inline-block; transition: transform var(--sv-duration-base) var(--sv-ease); }
.sv-btn:hover .sv-btn__arrow { transform: translateX(4px); }
@media (prefers-reduced-motion: reduce) { .sv-btn:hover .sv-btn__arrow { transform: none; } }

.sv-btn--primary {
  background: linear-gradient(180deg, var(--sv-red-strong), var(--sv-red));
  color: var(--sv-text);
  font-weight: 600;
  box-shadow: 0 1px 0 0 rgba(255,255,255,0.12) inset;
}
.sv-btn--primary:hover { filter: brightness(1.1); box-shadow: 0 10px 28px -10px var(--sv-red-glow); transform: translateY(-1px); }
.sv-btn--primary:active { filter: brightness(0.95); }

.sv-btn--ghost {
  background: transparent;
  border-color: var(--sv-border-strong);
  color: var(--sv-text-dim);
}
.sv-btn--ghost:hover { color: var(--sv-text); border-color: var(--sv-red-soft); transform: translateY(-1px); }

/* ---------------------------------------------------------------------- */
/* SEZIONE                                                                 */
/* ---------------------------------------------------------------------- */

.sv-section { padding: var(--sv-space-24) 0; border-top: 1px solid var(--sv-border); }
.sv-section--tight { padding: var(--sv-space-16) 0; }
.sv-section__head { margin-bottom: var(--sv-space-8); max-width: 56ch; }
.sv-section__kicker {
  font-family: var(--sv-font-sans);
  font-size: var(--sv-size-micro);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--sv-red);
  margin-bottom: var(--sv-space-3);
}
.sv-section__title {
  font-family: var(--sv-font-display);
  font-size: var(--sv-size-h1);
  line-height: var(--sv-line-tight);
  margin-bottom: var(--sv-space-3);
}
.sv-section__note { font-family: var(--sv-font-sans); font-size: var(--sv-size-meta); color: var(--sv-text-faint); }

/* ---------------------------------------------------------------------- */
/* SEARCH SHELL (Analizza un film)                                         */
/* ---------------------------------------------------------------------- */

.sv-search { max-width: 40rem; }
.sv-search__label {
  display: block;
  font-family: var(--sv-font-sans);
  font-weight: 600;
  font-size: var(--sv-size-lede);
  color: var(--sv-text-dim);
  margin-bottom: var(--sv-space-4);
}
.sv-search__row {
  display: flex;
  align-items: flex-end;
  gap: var(--sv-space-4);
  border-bottom: 1.5px solid var(--sv-border-strong);
  padding-bottom: var(--sv-space-3);
  transition: border-color var(--sv-duration-base) var(--sv-ease), box-shadow var(--sv-duration-base) var(--sv-ease);
}
.sv-search__row:focus-within {
  border-color: var(--sv-red);
  box-shadow: 0 1px 0 0 var(--sv-red-soft);
}
.sv-search__input {
  flex: 1; min-width: 0;
  background: transparent; border: none;
  color: var(--sv-text);
  font-family: var(--sv-font-display);
  font-size: clamp(1.3rem, 1.1rem + 1vw, 1.9rem);
  padding: var(--sv-space-2) 0;
}
.sv-search__input::placeholder { color: var(--sv-text-faint); }
.sv-search__submit {
  flex-shrink: 0;
  background: transparent; border: none;
  color: var(--sv-red-strong);
  font-family: var(--sv-font-sans);
  font-size: var(--sv-size-meta);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  cursor: pointer;
  padding: var(--sv-space-2) 0;
  transition: color var(--sv-duration-fast) var(--sv-ease), transform var(--sv-duration-fast) var(--sv-ease);
}
.sv-search__submit:hover { color: var(--sv-red-strong); }
.sv-search__submit:hover .sv-btn__arrow { transform: translateX(4px); }
.sv-search__hint { margin-top: var(--sv-space-3); font-size: var(--sv-size-meta); color: var(--sv-text-faint); }

/* ---------------------------------------------------------------------- */
/* CARD                                                                    */
/* ---------------------------------------------------------------------- */

.sv-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); gap: var(--sv-space-6); }

.sv-card {
  display: block;
  text-decoration: none;
  color: inherit;
  background: var(--sv-surface);
  border: 1px solid var(--sv-border);
  border-radius: var(--sv-radius-md);
  padding: var(--sv-space-6);
  transition: border-color var(--sv-duration-base) var(--sv-ease),
              transform var(--sv-duration-base) var(--sv-ease-soft),
              background-color var(--sv-duration-base) var(--sv-ease),
              box-shadow var(--sv-duration-base) var(--sv-ease);
}
.sv-card:hover {
  border-color: var(--sv-red-soft);
  background: var(--sv-surface-hover);
  transform: translateY(-3px);
  box-shadow: 0 16px 40px -20px rgba(0,0,0,0.6);
}
.sv-card__eyebrow {
  font-family: var(--sv-font-sans); font-size: var(--sv-size-micro);
  letter-spacing: 0.08em; text-transform: uppercase; color: var(--sv-red);
  margin-bottom: var(--sv-space-2);
}
.sv-card__title { font-family: var(--sv-font-display); font-size: 1.25rem; line-height: var(--sv-line-tight); margin-bottom: var(--sv-space-2); }
.sv-card__meta { font-family: var(--sv-font-sans); font-size: var(--sv-size-meta); color: var(--sv-text-faint); margin-bottom: var(--sv-space-4); }
.sv-card__excerpt { font-family: var(--sv-font-sans); font-size: 0.92rem; line-height: var(--sv-line-body); color: var(--sv-text-dim); }
.sv-card__why {
  margin-top: var(--sv-space-4);
  padding-top: var(--sv-space-3);
  border-top: 1px dashed var(--sv-border);
  font-size: var(--sv-size-micro);
  color: var(--sv-text-faint);
  font-style: italic;
}

/* ---------------------------------------------------------------------- */
/* STATO                                                                   */
/* ---------------------------------------------------------------------- */

.sv-state {
  display: inline-flex; align-items: center; gap: var(--sv-space-2);
  font-family: var(--sv-font-sans); font-size: var(--sv-size-meta);
  letter-spacing: 0.03em; color: var(--sv-text-dim);
}
.sv-state::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; flex-shrink: 0; }
.sv-state--positive { color: var(--sv-state-positive); }
.sv-state--caution { color: var(--sv-state-caution); }
.sv-state--neutral { color: var(--sv-state-neutral); }

/* ---------------------------------------------------------------------- */
/* EMPTY / INSUFFICIENT STATE                                              */
/* ---------------------------------------------------------------------- */

.sv-empty { border: 1px dashed var(--sv-border-strong); border-radius: var(--sv-radius-lg); padding: var(--sv-space-8); max-width: var(--sv-content-width); }
.sv-empty__title { font-family: var(--sv-font-display); font-size: var(--sv-size-h2); margin-bottom: var(--sv-space-4); }
.sv-empty__text { font-family: var(--sv-font-sans); color: var(--sv-text-dim); line-height: var(--sv-line-body); margin-bottom: var(--sv-space-6); }
.sv-empty__columns { display: grid; grid-template-columns: 1fr 1fr; gap: var(--sv-space-8); }
@media (max-width: 639px) { .sv-empty__columns { grid-template-columns: 1fr; gap: var(--sv-space-6); } }
.sv-empty__col h3 { font-family: var(--sv-font-sans); font-size: var(--sv-size-micro); letter-spacing: 0.08em; text-transform: uppercase; color: var(--sv-text-faint); margin-bottom: var(--sv-space-3); }
.sv-empty__col ul li { font-size: 0.92rem; color: var(--sv-text-dim); padding: var(--sv-space-2) 0; border-bottom: 1px solid var(--sv-border); }
.sv-empty__col ul li:last-child { border-bottom: none; }

/* ---------------------------------------------------------------------- */
/* METADATA                                                                */
/* ---------------------------------------------------------------------- */

.sv-meta-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0; border-top: 1px solid var(--sv-border); }
@media (max-width: 639px) { .sv-meta-grid { grid-template-columns: 1fr; } }
.sv-meta-grid > div { padding: var(--sv-space-4) 0; border-bottom: 1px solid var(--sv-border); }
.sv-meta-grid > div:nth-child(odd) { padding-right: var(--sv-space-6); }
.sv-meta-grid dt { font-family: var(--sv-font-sans); font-size: var(--sv-size-micro); letter-spacing: 0.06em; text-transform: uppercase; color: var(--sv-text-faint); margin-bottom: var(--sv-space-1); }
.sv-meta-grid dd { font-family: var(--sv-font-sans); font-size: 1rem; color: var(--sv-text); }
.sv-meta-grid dd.is-missing { color: var(--sv-text-faint); font-style: italic; font-size: 0.92rem; }

/* ---------------------------------------------------------------------- */
/* FONTI                                                                   */
/* ---------------------------------------------------------------------- */

.sv-sources h3 { font-family: var(--sv-font-sans); font-size: var(--sv-size-micro); letter-spacing: 0.08em; text-transform: uppercase; color: var(--sv-red); margin: var(--sv-space-6) 0 var(--sv-space-2) 0; }
.sv-sources h3:first-child { margin-top: 0; }
.sv-sources ul li { font-size: 0.92rem; color: var(--sv-text-dim); padding: var(--sv-space-1) 0; }

/* ---------------------------------------------------------------------- */
/* FOOTER                                                                  */
/* ---------------------------------------------------------------------- */

.sv-footer { border-top: 1px solid var(--sv-border); padding: var(--sv-space-12) 0 var(--sv-space-8) 0; margin-top: var(--sv-space-24); }
.sv-footer__inner {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  flex-wrap: wrap;
  gap: var(--sv-space-6);
}
.sv-footer__brand { display: flex; align-items: center; gap: var(--sv-space-3); color: var(--sv-text-dim); }
.sv-footer__lines { display: flex; flex-direction: column; gap: var(--sv-space-1); align-items: flex-end; text-align: right; }
.sv-footer__note { font-family: var(--sv-font-sans); font-size: var(--sv-size-micro); color: var(--sv-text-faint); letter-spacing: 0.03em; }
@media (max-width: 639px) {
  .sv-footer__inner { flex-direction: column; align-items: flex-start; }
  .sv-footer__lines { align-items: flex-start; text-align: left; }
}

/* ---------------------------------------------------------------------- */
/* CATENA DI VALORE — diagramma orizzontale/verticale (Home, sez. 02)      */
/* ---------------------------------------------------------------------- */

.sv-chain { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sv-space-2); }
.sv-chain__node {
  font-family: var(--sv-font-sans);
  font-size: 0.88rem;
  color: var(--sv-text-dim);
  padding: var(--sv-space-3) var(--sv-space-4);
  border: 1px solid var(--sv-border-strong);
  border-radius: var(--sv-radius-sm);
  background: var(--sv-surface);
}
.sv-chain__node.is-target { color: var(--sv-text); border-color: var(--sv-red-soft); background: var(--sv-red-dim); }
.sv-chain__arrow { color: var(--sv-text-faint); flex-shrink: 0; }
@media (max-width: 639px) {
  .sv-chain { flex-direction: column; align-items: stretch; }
  .sv-chain__arrow { transform: rotate(90deg); margin: 0 auto; }
  .sv-chain__node { text-align: center; }
}

/* ---------------------------------------------------------------------- */
/* INDICATORE "DATO REALE" — punto vivo, usato accanto alle metriche.      */
/* ---------------------------------------------------------------------- */

.sv-live-dot {
  display: inline-block;
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--sv-red);
  box-shadow: 0 0 0 0 var(--sv-red-glow);
  animation: sv-pulse 2.6s var(--sv-ease) infinite;
}
@keyframes sv-pulse {
  0% { box-shadow: 0 0 0 0 var(--sv-red-glow); }
  70% { box-shadow: 0 0 0 6px transparent; }
  100% { box-shadow: 0 0 0 0 transparent; }
}
@media (prefers-reduced-motion: reduce) { .sv-live-dot { animation: none; } }

/* ---------------------------------------------------------------------- */
/* NOTICE                                                                  */
/* ---------------------------------------------------------------------- */

.sv-notice {
  font-family: var(--sv-font-sans); font-size: var(--sv-size-meta); color: var(--sv-text-faint);
  border-left: 2px solid var(--sv-red-soft); padding: var(--sv-space-1) var(--sv-space-4); margin-top: var(--sv-space-4);
}

/* ---------------------------------------------------------------------- */
/* ENTRY — card in evidenza (usata da Scopri per il caso più recente).     */
/* ---------------------------------------------------------------------- */

.sv-entries { display: grid; grid-template-columns: 1.1fr 1fr; gap: var(--sv-space-6); }
@media (max-width: 767px) { .sv-entries { grid-template-columns: 1fr; } }

.sv-entry {
  display: block;
  text-decoration: none;
  color: inherit;
  position: relative;
  padding: var(--sv-space-12) var(--sv-space-8);
  border-radius: var(--sv-radius-lg);
  border: 1px solid var(--sv-border);
  background: var(--sv-surface);
  overflow: hidden;
  transition: transform var(--sv-duration-base) var(--sv-ease-soft), border-color var(--sv-duration-base) var(--sv-ease);
  min-height: 20rem;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}
.sv-entry::before {
  content: "";
  position: absolute; inset: 0;
  opacity: 0;
  transition: opacity var(--sv-duration-base) var(--sv-ease);
}
.sv-entry--scopri::before { background: radial-gradient(circle at 85% 15%, var(--sv-red-dim), transparent 60%); }
.sv-entry--analizza::before { background: radial-gradient(circle at 85% 15%, var(--sv-red-soft), transparent 60%); }
.sv-entry:hover { transform: translateY(-4px); border-color: var(--sv-border-strong); }
.sv-entry:hover::before { opacity: 1; }

.sv-entry__eyebrow { font-family: var(--sv-font-sans); font-size: var(--sv-size-micro); letter-spacing: 0.14em; text-transform: uppercase; margin-bottom: var(--sv-space-4); position: relative; }
.sv-entry--scopri .sv-entry__eyebrow { color: var(--sv-red); }
.sv-entry--analizza .sv-entry__eyebrow { color: var(--sv-red-strong); }
.sv-entry__title { font-family: var(--sv-font-display); font-size: var(--sv-size-hero); line-height: 1.1; margin-bottom: var(--sv-space-4); position: relative; }
.sv-entry__desc { font-family: var(--sv-font-sans); font-size: 0.95rem; color: var(--sv-text-dim); max-width: 34ch; position: relative; }
/* ---------- Stato + insight: due righe ordinate su mobile (mai due
   blocchi sparsi), una riga con separatore da tablet in su. ---------- */
.sv-entry__go {
  margin-top: var(--sv-space-6);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--sv-space-2);
  position: relative;
}
.sv-entry__insight {
  display: inline-flex;
  align-items: center;
  gap: var(--sv-space-2);
  font-family: var(--sv-font-sans);
  font-size: var(--sv-size-meta);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--sv-text-dim);
  transition: gap var(--sv-duration-base) var(--sv-ease);
}
.sv-entry__insight-arrow { color: var(--sv-red); flex-shrink: 0; }
.sv-entry:hover .sv-entry__insight { gap: var(--sv-space-3); }

@media (min-width: 640px) {
  .sv-entry__go { flex-direction: row; align-items: center; gap: var(--sv-space-4); }
  .sv-entry__insight::before {
    content: "";
    display: inline-block;
    width: 3px; height: 3px;
    border-radius: 50%;
    background: var(--sv-text-faint);
    margin-right: var(--sv-space-2);
  }
}

/* ---------------------------------------------------------------------- */
/* Sotto i 480px: azioni impilate, mai due bottoni compressi affiancati.   */
/* ---------------------------------------------------------------------- */

@media (max-width: 479px) {
  .sv-actions--stack-mobile { flex-direction: column; align-items: stretch; }
  .sv-actions--stack-mobile .sv-btn { text-align: center; justify-content: center; }
}
