/* blog.css — quello che serve in piu' per un articolo, e niente altro.
 *
 * Si carica DOPO temario.css e usa le sue variabili: colori, caratteri, spaziature sono
 * gia' decise li'. Qui dentro c'e' solo quello che una pagina di testo lungo ha e una
 * pagina di prodotto no — la colonna stretta, il ritmo dei paragrafi, le tabelle.
 *
 * Perche' un foglio in piu' e non uno nuovo: due fogli che ridefiniscono gli stessi
 * colori si contraddicono al primo cambio, e il sito comincia ad avere due sfumature di
 * verde che nessuno ha deciso.
 */

/* La colonna. 68 caratteri: piu' larga si perde la riga tornando a capo, piu' stretta
   il testo si spezzetta. */
.articolo { max-width: 68ch; margin: 0 auto; }
.articolo > * { max-width: 100%; }

.articolo p,
.articolo li {
  color: var(--prosa);
  font-size: 17px;
  line-height: 1.72;
}
.articolo p { margin: 0 0 20px; }
.articolo strong, .articolo b { color: var(--tinta); font-weight: 600; }

/* I titoli di sezione dentro l'articolo: staccati sopra, vicini a quello che
   introducono. Un titolo equidistante fra i due paragrafi non si capisce a chi
   appartiene. */
.articolo h2 {
  font-size: clamp(24px, 3.2vw, 31px);
  margin: 52px 0 14px;
  color: var(--tinta);
  text-wrap: balance;
}
.articolo h3 {
  font-family: var(--testo);
  font-size: 18px;
  font-weight: 650;
  color: var(--tinta);
  margin: 32px 0 10px;
  text-wrap: balance;
}
.articolo h2 + p, .articolo h3 + p { margin-top: 0; }

.articolo ul, .articolo ol { margin: 0 0 20px; padding-left: 22px; }
.articolo li { margin-bottom: 9px; }
.articolo li::marker { color: var(--accento); }

.articolo a { color: var(--accento-scuro); text-underline-offset: 3px; }
.articolo a:hover { color: var(--accento); }

/* Il filetto fra una sezione e l'altra: piu' leggero di un bordo, si sente e non si
   guarda. */
.articolo hr {
  border: 0;
  border-top: 1px solid var(--linea);
  margin: 46px 0;
}

/* Le tabelle sono il cuore di questi articoli: due servizi accostati si capiscono
   guardandoli, non leggendoli. Scorrono da sole sullo stretto, cosi' la pagina non
   scorre di lato. */
.articolo .tabella { overflow-x: auto; margin: 0 0 24px; }
.articolo table {
  border-collapse: collapse;
  width: 100%;
  min-width: 460px;
  font-size: 15.5px;
}
.articolo th, .articolo td {
  text-align: left;
  padding: 11px 14px;
  border-bottom: 1px solid var(--linea);
  vertical-align: top;
}
.articolo th {
  color: var(--tinta);
  font-weight: 650;
  font-size: 13px;
  letter-spacing: .03em;
  text-transform: uppercase;
  background: var(--pannello);
  border-bottom-color: var(--linea);
}
.articolo tbody tr:last-child td { border-bottom: 0; }
.articolo td b { color: var(--tinta); }

/* ====== SUL TELEFONO LE TABELLE DIVENTANO SCHEDE ======
   Trovato la notte del 6 settembre 2026 fotografando un articolo a 390 px: la tabella di
   confronto era tagliata a meta' — «CLOUD PRACTITIONER | SOL ARC ASS...» — perche' qui sopra
   c'e' un `min-width: 460px` dentro un contenitore che scorre. Funzionava: bisognava
   trascinare di lato. Ma chi legge un articolo dal telefono non trascina una tabella: gli
   manca mezzo confronto e non sa che gli manca.
   E' lo stesso difetto che Enjoy AI mi ha segnalato sul loro calendario dei DJ la sera prima,
   e che avevo appena riparato nel pannello di Sala. Terza volta in un giorno, tre posti
   diversi: **il difetto non e' della pagina, e' della forma tabella su uno schermo stretto.**
   Sta nel CSS del blog e non nell'articolo, cosi' vale anche per i sette gia' pubblicati.
   Il nome della colonna, quando serve, lo porta la cella con `data-col`. */
@media (max-width: 640px) {
  .articolo .tabella { overflow-x: visible; }
  .articolo table { min-width: 0; font-size: 15px; }
  .articolo thead { display: none; }
  .articolo table, .articolo tbody, .articolo tbody tr, .articolo tbody td { display: block; width: 100%; }
  .articolo tbody tr {
    border: 1px solid var(--linea);
    border-radius: 12px;
    padding: 12px 14px;
    margin: 0 0 12px;
  }
  .articolo tbody td { border-bottom: 0; padding: 3px 0; }
  .articolo tbody td:first-child { font-weight: 650; padding-bottom: 6px; }
  .articolo tbody td[data-col]::before {
    content: attr(data-col);
    display: block;
    font-size: 12px;
    letter-spacing: .03em;
    text-transform: uppercase;
    color: var(--tinta);
    margin-top: 6px;
  }
}

/* Il riquadro della regola d'esame. E' il pezzo che chi studia cerca scorrendo la
   pagina, quindi deve trovarsi senza leggere: filo d'accento a sinistra e fondo appena
   diverso. Non un colore in piu' — lo stesso accento del sito. */
.regola {
  background: var(--pannello);
  border-left: 3px solid var(--accento);
  border-radius: 0 10px 10px 0;
  padding: 15px 18px;
  margin: 0 0 24px;
}
.regola p:last-child { margin-bottom: 0; }
.regola .eti {
  display: block;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: .13em;
  text-transform: uppercase;
  color: var(--accento-scuro);
  margin-bottom: 6px;
}

/* ====== IL RIQUADRO DELL'INVITO, a meta' articolo ======
   Trovato il 19 settembre 2026 fotografando un articolo nuovo e guardando l'immagine:
   `.riquadro-cta` era scritta in CINQUE articoli e NON ESISTEVA in nessuno dei due fogli.
   L'invito a provare il simulacro — cioe' l'unico pezzo dell'articolo che porta a un cliente —
   si leggeva come un paragrafo qualunque in mezzo agli altri. Nessun errore da nessuna parte:
   una classe che non esiste non e' un guasto, e' semplicemente niente, e `pagina-errori.js`
   guarda gli errori del programma. L'ha trovato la fotografia, guardata davvero.

   Sta qui nel foglio e non nell'articolo, come le tabelle che diventano schede sul telefono:
   cosi' i cinque gia' pubblicati si riparano insieme a quello di oggi.

   Perche' cosi': sfondo dell'accento appena accennato invece del grigio del pannello, per
   distinguerlo dalla `.regola` — l'una e' materia d'esame, l'altro e' una proposta nostra, e
   se si somigliano il lettore impara a saltarli tutti e due. */
.riquadro-cta {
  background: linear-gradient(140deg, rgba(13, 148, 136, .07), rgba(13, 148, 136, .03));
  border: 1px solid rgba(13, 148, 136, .22);
  border-radius: 14px;
  padding: 20px 22px;
  margin: 34px 0;
}
.articolo .riquadro-cta p { margin: 0; color: var(--prosa); }
.riquadro-cta strong { color: var(--tinta); }
/* il collegamento diventa un invito vero: va a capo da solo e si preme */
.articolo .riquadro-cta a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 14px;
  background: var(--accento);
  color: #fff;
  text-decoration: none;
  font-weight: 650;
  font-size: 15.5px;
  padding: 11px 20px;
  border-radius: 11px;
  transition: background .18s var(--uscita), transform .18s var(--uscita);
}
.articolo .riquadro-cta a:hover { background: var(--accento-scuro); color: #fff; }
/* il tocco su un telefono lascia il :hover appeso: il sollevamento solo dove c'e' un mouse */
@media (hover: hover) and (pointer: fine) {
  .articolo .riquadro-cta a:hover { transform: translateY(-1px); }
}
@media (prefers-reduced-motion: reduce) {
  .articolo .riquadro-cta a { transition: none; }
  .articolo .riquadro-cta a:hover { transform: none; }
}

/* L'avviso: quando una cosa sta cambiando e chi studia deve saperlo. Giallo no — sul
   sito non esiste; si usa il grigio del pannello con il filo piu' marcato. */
.avviso {
  background: var(--pannello);
  border: 1px solid var(--linea);
  border-radius: 12px;
  padding: 18px 20px;
  margin: 0 0 24px;
}
.avviso h3 { margin-top: 0; }
.avviso p:last-child { margin-bottom: 0; }

/* ====== LA RIGA DELLE FONTI E LA NOTA LEGALE ======
   Trovate il 19 settembre 2026 insieme al titolo invisibile: `.fonte` e `.nota-legale` erano
   scritte negli articoli e non definite da nessuna parte, quindi si leggevano come un paragrafo
   qualunque dell'articolo. Sono due cose che devono ESSERCI e non devono pesare: da dove
   vengono i dati, e il fatto che non siamo affiliati ad AWS. Un paragrafo in corpo pieno in
   fondo a un articolo sembra ancora l'articolo, e la nota legale letta come contenuto e' peggio
   di una nota legale piccola. */
.articolo .fonte,
.articolo .nota-legale {
  border-top: 1px solid var(--linea);
  margin-top: 44px;
  padding-top: 18px;
  font-size: 14.5px;
  line-height: 1.62;
  color: var(--tenue);
}
.articolo .fonte a, .articolo .nota-legale a { color: var(--tenue); font-weight: 600; }
.articolo .fonte a:hover, .articolo .nota-legale a:hover { color: var(--accento-scuro); }
/* se stanno una dietro l'altra, il secondo filetto sarebbe di troppo */
.articolo .fonte + .nota-legale,
.articolo .nota-legale + .fonte { border-top: 0; margin-top: 12px; padding-top: 0; }

/* La firma in fondo: si dice chi scrive e cosa vendiamo, in chiaro. Piu' piccola del
   testo, perche' non e' l'articolo. */
.firma {
  border-top: 1px solid var(--linea);
  margin-top: 46px;
  padding-top: 22px;
  font-size: 15.5px;
  color: var(--tenue);
}
.firma p { font-size: 15.5px; color: var(--tenue); }
.firma a { font-weight: 600; }

/* La data e il tempo di lettura, sotto il titolo. */
.dati-articolo {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  align-items: center;
  color: var(--su-notte-tenue);
  font-size: 14px;
  margin: 14px 0 0;
}
.dati-articolo span { display: inline-flex; align-items: center; gap: 7px; }
.dati-articolo span + span::before {
  content: '';
  width: 3px; height: 3px;
  border-radius: 50%;
  background: currentColor;
  opacity: .5;
  margin-right: 7px;
}

/* L'elenco degli articoli, sulla pagina /blog. */
.pezzi { display: grid; gap: 14px; margin-top: 30px; }
.pezzo {
  display: block;
  border: 1px solid var(--linea);
  border-radius: 14px;
  padding: 20px 22px;
  text-decoration: none;
  background: var(--fondo);
  transition: border-color .18s var(--uscita), transform .18s var(--uscita);
}
.pezzo:hover { border-color: var(--accento); transform: translateY(-2px); }
.pezzo b {
  display: block;
  font-family: var(--titolo);
  font-weight: 400;
  font-size: 21px;
  color: var(--tinta);
  margin-bottom: 7px;
  text-wrap: balance;
}
.pezzo span { display: block; color: var(--prosa); font-size: 15.5px; line-height: 1.6; }
.pezzo em {
  display: block;
  font-style: normal;
  color: var(--tenue);
  font-size: 13px;
  margin-top: 10px;
}

@media (prefers-reduced-motion: reduce) {
  .pezzo { transition: none; }
  .pezzo:hover { transform: none; }
}
