/* =========================================================================
   17-blog.css, @layer blog
   Pagine del blog: elenco (/blog) e articolo (/blog/<slug>). Caricato solo
   dai template del blog, dopo la stessa catena CSS della home, con il body
   che porta .c-definitiva .c-blog: eredita carta, inchiostro, header e
   footer della home senza toccare i file condivisi.

   La pagina e' un momento di lettura: una colonna sola a 720px, niente
   isole di tono, niente card. L'ambra compare dove c'e' un'informazione
   (occhiello, link, bottone), piatta.
   ========================================================================= */

@layer blog {

  /* -------------------------------------------------------------------
     Header: il brand della home piu' due link. Niente toggle, niente JS:
     a 390px i due link stanno accanto al brand.
     ------------------------------------------------------------------- */
  .c-blog .blog-nav {
    display: flex;
    align-items: center;
    gap: clamp(14px, 2vw, 28px);
    margin-inline-start: auto;
  }

  .c-blog .blog-nav a {
    color: var(--ink-2);
    font-size: var(--fs-body-s);
    font-weight: 600;
    text-decoration: none;
    padding-block: var(--s-2);
  }

  .c-blog .blog-nav a.blog-edit {
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 4px;
  }

  .c-blog .blog-nav a[aria-current="page"] {
    color: var(--ink-1);
    text-decoration: underline;
    text-decoration-color: var(--amber-deep);
    text-decoration-thickness: 2px;
    text-underline-offset: .35em;
  }

  @media (hover: hover) {
    .c-blog .blog-nav a:hover {
      color: var(--ink-1);
    }
  }

  /* -------------------------------------------------------------------
     Testata di pagina e di articolo
     ------------------------------------------------------------------- */
  .c-blog .blog-main {
    padding-block: clamp(40px, 6vw, 88px) clamp(56px, 8vw, 120px);
  }

  .c-blog .blog-head {
    display: grid;
    gap: var(--s-4);
    margin-block-end: clamp(32px, 5vw, 56px);
  }

  .c-blog .blog-head h1 {
    font-family: var(--display);
    font-size: var(--fs-h1);
    font-weight: 500;
    line-height: 1.08;
    letter-spacing: -.012em;
    color: var(--ink-1);
    text-wrap: balance;
    max-width: 20ch;
  }

  .c-blog .blog-lead {
    font-size: var(--fs-lead);
    line-height: var(--lh-lead);
    color: var(--ink-2);
    max-width: 58ch;
  }

  /* Metadati: pilastro in ambra piatta, data e minuti in grigio.
     Separati dallo spazio, non da un segno ripetuto. */
  .c-blog .blog-meta {
    display: flex;
    flex-wrap: wrap;
    gap: var(--s-2) var(--s-5);
    font-size: var(--fs-caption);
    line-height: var(--lh-small);
    color: var(--ink-3);
  }

  .c-blog .blog-meta-aggiornato {
    margin-block-start: calc(-1 * var(--s-2));
  }

  .c-blog .blog-meta-pilastro {
    color: var(--amber-text);
    font-weight: 700;
    letter-spacing: .02em;
  }

  /* -------------------------------------------------------------------
     Corpo dell'articolo: misura 68ch, scala dai token, spazio verticale
     che cresce con il livello del titolo.
     ------------------------------------------------------------------- */
  .c-blog .blog-body {
    font-size: var(--fs-body-l);
    line-height: var(--lh-body);
    color: var(--ink-1);
  }

  .c-blog .blog-body > * {
    max-width: 68ch;
  }

  .c-blog .blog-body > * + * {
    margin-block-start: var(--s-5);
  }

  .c-blog .blog-body h2,
  .c-blog .blog-body h3 {
    font-family: var(--display);
    font-weight: 500;
    line-height: 1.15;
    letter-spacing: -.01em;
    text-wrap: balance;
  }

  .c-blog .blog-body h2 {
    font-size: var(--fs-h2);
    margin-block-start: clamp(40px, 5vw, 64px);
  }

  .c-blog .blog-body h3 {
    font-size: var(--fs-h3);
    margin-block-start: var(--s-7);
  }

  .c-blog .blog-body h2 + *,
  .c-blog .blog-body h3 + * {
    margin-block-start: var(--s-4);
  }

  .c-blog .blog-body a {
    color: var(--amber-text);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: .18em;
  }

  .c-blog .blog-body strong {
    font-weight: 700;
    color: var(--ink-1);
  }

  .c-blog .blog-body ul,
  .c-blog .blog-body ol {
    padding-inline-start: 1.3em;
  }

  .c-blog .blog-body ul {
    list-style: disc;
  }

  .c-blog .blog-body ol {
    list-style: decimal;
  }

  .c-blog .blog-body li::marker {
    color: var(--ink-3);
  }

  .c-blog .blog-body li + li {
    margin-block-start: var(--s-2);
  }

  .c-blog .blog-body blockquote {
    padding-inline-start: var(--s-5);
    border-inline-start: 2px solid var(--amber-deep);
    color: var(--ink-2);
    font-size: var(--fs-body-l);
  }

  .c-blog .blog-body table {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--fs-body-s);
    line-height: 1.45;
  }

  .c-blog .blog-body th,
  .c-blog .blog-body td {
    padding: var(--s-3) var(--s-3) var(--s-3) 0;
    text-align: left;
    vertical-align: top;
    border-block-end: 1px solid var(--hair-l-2);
  }

  .c-blog .blog-body th {
    font-weight: 700;
    color: var(--ink-2);
    font-size: var(--fs-caption);
    letter-spacing: .02em;
  }

  .c-blog .blog-body code {
    font-family: ui-monospace, "SF Mono", Menlo, monospace;
    font-size: .92em;
    padding: .1em .35em;
    border-radius: var(--radius-xs);
    background: var(--surface-l-000);
  }

  .c-blog .blog-body hr {
    border: 0;
    border-block-start: 1px solid var(--hair-l-2);
    margin-block: var(--s-8);
  }

  /* La tabella scorre in orizzontale sotto i 720, invece di rompere la
     misura della pagina. */
  @media (max-width: 719px) {
    .c-blog .blog-body table {
      display: block;
      overflow-x: auto;
      -webkit-overflow-scrolling: touch;
    }
  }

  /* -------------------------------------------------------------------
     Chiusura: autore, invito, ritorno all'elenco.
     ------------------------------------------------------------------- */
  .c-blog .blog-foot {
    margin-block-start: clamp(48px, 6vw, 80px);
    padding-block-start: var(--s-7);
    border-block-start: 1px solid var(--hair-l-2);
    display: grid;
    gap: var(--s-7);
  }

  .c-blog .blog-author {
    display: grid;
    grid-template-columns: 72px 1fr;
    gap: var(--s-5);
    align-items: start;
  }

  .c-blog .blog-author img {
    width: 72px;
    height: 72px;
    border-radius: 50%;
    object-fit: cover;
  }

  .c-blog .blog-author-name {
    font-size: var(--fs-body);
    color: var(--ink-1);
  }

  .c-blog .blog-author-bio {
    margin-block-start: var(--s-2);
    font-size: var(--fs-body-s);
    line-height: var(--lh-body);
    color: var(--ink-3);
    max-width: 52ch;
  }

  .c-blog .blog-cta {
    display: grid;
    gap: var(--s-4);
    justify-items: start;
    padding: var(--s-6);
    border-radius: var(--radius-md);
    background: var(--surface-l-000);
  }

  .c-blog .blog-cta p {
    font-size: var(--fs-body-l);
    line-height: var(--lh-body);
    color: var(--ink-1);
    max-width: 48ch;
  }

  .c-blog .blog-back a {
    color: var(--ink-2);
    font-size: var(--fs-body-s);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: .25em;
  }

  /* -------------------------------------------------------------------
     Elenco: una lista cronologica, un filetto fra le voci, nessuna card.
     ------------------------------------------------------------------- */
  .c-blog .blog-list {
    list-style: none;
    padding: 0;
    margin-block: 0;
  }

  .c-blog .blog-list > li + li {
    border-block-start: 1px solid var(--hair-l-2);
  }

  .c-blog .blog-item {
    display: grid;
    gap: var(--s-3);
    padding-block: clamp(24px, 3.5vw, 40px);
  }

  .c-blog .blog-item h2 {
    font-family: var(--display);
    font-size: var(--fs-h3);
    font-weight: 500;
    line-height: 1.18;
    letter-spacing: -.01em;
    text-wrap: balance;
  }

  .c-blog .blog-item h2 a {
    color: var(--ink-1);
    text-decoration: none;
  }

  @media (hover: hover) {
    .c-blog .blog-item h2 a:hover {
      text-decoration: underline;
      text-decoration-color: var(--amber-deep);
      text-decoration-thickness: 2px;
      text-underline-offset: .18em;
    }
  }

  .c-blog .blog-item > p:last-child {
    font-size: var(--fs-body);
    line-height: var(--lh-body);
    color: var(--ink-2);
    max-width: 62ch;
  }

  .c-blog .blog-empty p {
    font-size: var(--fs-body-l);
    line-height: var(--lh-body);
    color: var(--ink-2);
    max-width: 52ch;
  }

  .c-blog .blog-empty a {
    color: var(--amber-text);
  }

  /* Sotto i 480 la testata stringe i margini e l'autore va in colonna. */
  @media (max-width: 479px) {
    .c-blog .blog-author {
      grid-template-columns: 1fr;
    }

    .c-blog .blog-cta {
      padding: var(--s-5);
    }
  }

  /* -------------------------------------------------------------------
     Articolo a due colonne: a sinistra una colonna che resta ferma con
     indice, autore e condivisione, a destra titolo, testo e chiusura.
     Sotto i 1024 la colonna sinistra sparisce e l'indice diventa un
     elenco apribile sopra il testo.
     ------------------------------------------------------------------- */
  .c-blog .blog-article .blog-layout {
    width: min(100% - 2 * var(--gutter), 1240px);
    margin-inline: auto;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--s-7);
  }

  .c-blog .blog-article .blog-side {
    display: none;
  }

  @media (min-width: 1024px) {
    .c-blog .blog-article .blog-layout {
      grid-template-columns: 260px minmax(0, 1fr);
      gap: clamp(48px, 7vw, 112px);
      align-items: start;
    }

    .c-blog .blog-article .blog-side {
      display: grid;
      gap: var(--s-6);
      position: sticky;
      top: calc(var(--header-h) + var(--s-6));
      max-height: calc(100vh - var(--header-h) - var(--s-7));
      overflow-y: auto;
      overscroll-behavior: contain;
      padding-block-end: var(--s-5);
    }

    .c-blog .blog-article .blog-toc-m,
    .c-blog .blog-article .blog-foot .blog-author,
    .c-blog .blog-article .blog-condividi-m {
      display: none;
    }
  }

  .c-blog .blog-side-label {
    font-size: var(--fs-label);
    font-weight: 700;
    letter-spacing: .09em;
    text-transform: uppercase;
    color: var(--ink-3);
  }

  /* Indice: un filetto a sinistra, la voce in lettura ha l'ambra piena. */
  .c-blog .blog-toc ol {
    list-style: none;
    padding: 0;
    margin: var(--s-4) 0 0;
    border-inline-start: 1px solid var(--hair-l-2);
  }

  .c-blog .blog-toc a {
    display: block;
    padding: 6px 0 6px var(--s-4);
    margin-inline-start: -1px;
    border-inline-start: 2px solid transparent;
    font-size: var(--fs-caption);
    line-height: 1.4;
    color: var(--ink-3);
    text-decoration: none;
  }

  .c-blog .blog-toc a[aria-current="true"] {
    color: var(--ink-1);
    font-weight: 600;
    border-inline-start-color: var(--amber-deep);
  }

  @media (hover: hover) {
    .c-blog .blog-toc a:hover {
      color: var(--ink-1);
    }
  }

  .c-blog .blog-side-author {
    display: grid;
    grid-template-columns: 56px 1fr;
    column-gap: var(--s-3);
    row-gap: var(--s-2);
    align-items: center;
  }

  .c-blog .blog-side-author img {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    object-fit: cover;
  }

  .c-blog .blog-side-author a {
    grid-column: 2;
    justify-self: start;
  }

  .c-blog .blog-side-author p {
    display: grid;
    gap: 2px;
    font-size: var(--fs-body-s);
    line-height: 1.35;
    color: var(--ink-1);
  }

  .c-blog .blog-side-author span {
    color: var(--ink-3);
    font-size: var(--fs-caption);
  }

  .c-blog .blog-side-author a,
  .c-blog .blog-share a,
  .c-blog .blog-copy {
    color: var(--ink-2);
    font: inherit;
    font-size: var(--fs-caption);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: .22em;
    background: none;
    border: 0;
    padding: 0;
    cursor: pointer;
  }

  .c-blog .blog-share ul {
    list-style: none;
    padding: 0;
    margin: var(--s-3) 0 0;
    display: grid;
    gap: var(--s-2);
    justify-items: start;
  }

  /* Testata dell'articolo: categoria, titolo grande, descrizione, riga di metadati. */
  .c-blog .blog-article .blog-head {
    max-width: none;
    margin-block-end: clamp(32px, 4vw, 56px);
    gap: var(--s-5);
  }

  .c-blog .nw {
    white-space: nowrap;
  }

  .c-blog .blog-cat {
    font-size: var(--fs-body);
    font-weight: 600;
    color: var(--amber-text);
  }

  .c-blog .blog-article .blog-head h1 {
    font-size: clamp(2.25rem, 1.2rem + 3.4vw, 3.9rem);
    font-weight: 600;
    line-height: 1.04;
    letter-spacing: -.018em;
    max-width: 20ch;
  }

  .c-blog .blog-article .blog-lead {
    max-width: 52ch;
  }

  .c-blog .blog-article .blog-meta {
    gap: var(--s-1) var(--s-5);
    font-size: var(--fs-caption);
  }

  .c-blog .blog-meta a {
    color: inherit;
  }

  /* Indice apribile, solo sotto i 1024. */
  .c-blog .blog-toc-m {
    margin-block-end: var(--s-7);
    border-block: 1px solid var(--hair-l-2);
  }

  .c-blog .blog-toc-m summary {
    cursor: pointer;
    padding-block: var(--s-4);
    font-size: var(--fs-body-s);
    font-weight: 600;
    color: var(--ink-1);
    list-style-position: inside;
  }

  .c-blog .blog-toc-m ol {
    list-style: decimal;
    padding: 0 0 var(--s-4) 1.4em;
    display: grid;
    gap: var(--s-3);
    font-size: var(--fs-body-s);
  }

  .c-blog .blog-toc-m a {
    color: var(--ink-2);
    text-decoration: none;
  }

  /* Corpo piu' grande e titoli di sezione piu' decisi, con spazio per
     l'ancora sotto la testata fissa. */
  .c-blog .blog-article .blog-body {
    font-size: clamp(1.0625rem, .98rem + .4vw, 1.25rem);
    line-height: 1.62;
  }

  .c-blog .blog-article .blog-body > * {
    max-width: 66ch;
  }

  .c-blog .blog-article .blog-body h2 {
    font-weight: 600;
    line-height: 1.1;
    letter-spacing: -.015em;
    scroll-margin-top: calc(var(--header-h) + var(--s-5));
  }

  .c-blog .blog-article .blog-body h3 {
    scroll-margin-top: calc(var(--header-h) + var(--s-5));
  }

  .c-blog .blog-article .blog-foot {
    max-width: 66ch;
  }

  @media (prefers-reduced-motion: no-preference) {
    html:has(.c-blog .blog-article) {
      scroll-behavior: smooth;
    }
  }

  /* Sotto i 1024 la colonna a sinistra non c'e': condivisione e YouTube stanno in fondo. */
  .c-blog .blog-condividi-m {
    display: grid;
    gap: var(--s-6);
  }

  /* Icone di condivisione e canale YouTube: ambra profonda piatta, bersaglio
     da 44px. In hover o focus passano all'inchiostro. */
  .c-blog .blog-share .blog-share-icons {
    display: flex;
    flex-wrap: wrap;
    gap: var(--s-1);
    margin: var(--s-3) 0 0 calc(-1 * var(--s-2));
  }

  .c-blog .blog-share .blog-share-icons a,
  .c-blog .blog-share .blog-share-icons button,
  .c-blog .blog-yt a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--s-3);
    min-width: 44px;
    min-height: 44px;
    color: var(--amber-text);
    text-decoration: none;
    background: none;
    border: 0;
    padding: 0;
    cursor: pointer;
  }

  .c-blog .blog-ico {
    flex: none;
    width: 24px;
    height: 24px;
  }

  .c-blog .blog-yt {
    display: grid;
    gap: var(--s-2);
  }

  .c-blog .blog-yt a {
    justify-content: flex-start;
    font-size: var(--fs-body-s);
    font-weight: 600;
    color: var(--ink-1);
    margin-inline-start: calc(-1 * var(--s-1));
  }

  .c-blog .blog-yt a .blog-ico {
    color: var(--amber-text);
  }

  @media (hover: hover) {
    .c-blog .blog-share .blog-share-icons a:hover,
    .c-blog .blog-share .blog-share-icons button:hover {
      color: var(--ink-1);
    }
  }

  .c-blog .blog-share-msg {
    min-height: 1.4em;
    margin-block-start: var(--s-2);
    font-size: var(--fs-caption);
    color: var(--ink-3);
  }

  /* Bersagli toccabili da almeno 44px: link della testata e voci dell'indice
     apribile. */
  .c-blog .blog-nav a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
  }

  .c-blog .site-head .brand {
    min-height: 44px;
  }

  .c-blog .blog-toc-m a {
    display: flex;
    align-items: center;
    min-height: 44px;
  }

  .c-blog .blog-toc-m ol {
    gap: 0;
  }

  .c-blog .blog-nav a {
    padding-inline: var(--s-2);
  }

  .c-blog .blog-back a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
  }

  /* Sui telefoni la testata resta su una riga: link senza a capo e imbottitura
     ridotta, il bersaglio resta alto 44px. */
  .c-blog .blog-nav a,
  .c-blog .site-head .brand strong {
    white-space: nowrap;
  }

  @media (max-width: 479px) {
    .c-blog .blog-nav {
      gap: 0;
    }

    .c-blog .blog-nav a {
      padding-inline: 6px;
    }
  }

  /* Sotto i 360 (iPhone SE e simili) il ritratto tondo della testata lascia
     lo spazio ai due link, che altrimenti uscirebbero dallo schermo. */
  @media (max-width: 359px) {
    .c-blog .site-head .brand-mark {
      display: none;
    }
  }

  /* Copertina: immagine orizzontale 3:2 a tutta colonna, sotto la testata. */
  .c-blog .blog-cover {
    margin: 0 0 clamp(32px, 4vw, 56px);
  }

  .c-blog .blog-cover img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 3 / 2;
    object-fit: cover;
    border-radius: var(--radius-md);
    background: var(--ink-1);
  }

  /* Immagini dentro il testo (11/11/2026): orizzontali 3:2, a tutta colonna.
     La didascalia e' il paragrafo in corsivo subito sotto l'immagine. */
  .c-blog .blog-body img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 3 / 2;
    object-fit: cover;
    border-radius: var(--radius-md);
    background: var(--ink-1);
  }

  .c-blog .blog-body p:has(> img:only-child) {
    margin-block: clamp(28px, 3.5vw, 44px) 10px;
  }

  .c-blog .blog-body p:has(> img:only-child) + p:has(> em:only-child) {
    margin-top: 0;
    font-size: 0.9em;
    color: var(--ink-3);
  }

  .c-blog .blog-body p:has(> img:only-child) + p:has(> em:only-child) em {
    color: inherit;
  }

  /* Elenco: miniatura della copertina accanto al testo (11/11/2026). Sotto i 768 px sta sopra. */
  .c-blog .blog-item-text {
    display: grid;
    gap: var(--s-3);
  }

  .c-blog .blog-item-text > p:last-child {
    font-size: var(--fs-body);
    line-height: var(--lh-body);
    color: var(--ink-2);
    max-width: 62ch;
  }

  .c-blog .blog-item-cover {
    display: block;
    border-radius: var(--radius-md);
    overflow: hidden;
    background: var(--ink-1);
  }

  .c-blog .blog-item-cover img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 3 / 2;
    object-fit: cover;
  }

  @media (min-width: 768px) {
    .c-blog .blog-item:has(.blog-item-cover) {
      grid-template-columns: 320px 1fr;
      align-items: start;
      column-gap: clamp(24px, 3vw, 40px);
    }
  }
}
