/* ============================================================
   matteonieberle.com — pagine contenuto (blog, guide, casi studio)
   Si carica DOPO css/styles.css e ne usa i token (:root).
   Regole: niente GSAP/canvas, niente effetti desktop-only portati su
   mobile, prefers-reduced-motion rispettato. Template: articolo "B ·
   Indice laterale" (scelto da Matteo il 5 nov 2026).
   Cache: Aruba tiene i CSS 1 anno → a ogni modifica alza ?v= nel <link>.
   ============================================================ */

/* ---------- impaginazione generale ---------- */
/* .page ha overflow:hidden, che rompe position:sticky dell'indice: qui clip (non crea un contenitore di scroll) */
.post{padding-top:120px;overflow:visible;overflow:clip;}
.post .container{max-width:1120px;}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}

/* breadcrumb visibile (Home › Blog › Titolo) */
.crumbs ol{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;list-style:none;font-family:var(--font-mono);font-size:12px;letter-spacing:.02em;color:var(--muted);}
.crumbs li{display:inline-flex;align-items:center;gap:8px;min-width:0;}
.crumbs li+li::before{content:'›';color:var(--muted);opacity:.6;}
.crumbs a{transition:color var(--dur-fast);}
.crumbs a:hover{color:var(--primario);}
.crumbs [aria-current]{color:var(--text);opacity:.85;max-width:42ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}

/* testata: tema, H1, firma */
.post-head{max-width:860px;margin:26px 0 44px;}
.post-head .eyebrow{margin-bottom:14px;}
.post-head .eyebrow a{border-bottom:1px solid rgba(255,138,30,.4);transition:border-color var(--dur-fast);}
.post-head .eyebrow a:hover{border-color:var(--primario);}
.post-head .page-h1{font-size:clamp(2rem,4.4vw,3.05rem);line-height:1.08;}
.byline{display:flex;align-items:center;gap:14px;margin-top:24px;font-size:.95rem;line-height:1.4;color:var(--muted);}
.byline img{width:44px;height:44px;border-radius:50%;object-fit:cover;border:1px solid var(--line);flex:none;}
.byline a{display:block;color:var(--text);font-weight:600;transition:color var(--dur-fast);}
.byline a:hover{color:var(--primario);}
.byline .by-meta{display:block;font-size:.9rem;}
.byline .sep{opacity:.5;}

/* griglia: testo a sinistra, indice sticky a destra */
.post-grid{display:grid;grid-template-columns:minmax(0,1fr) 248px;gap:72px;align-items:start;}
.post-main{grid-column:1;grid-row:1;min-width:0;max-width:720px;}
.post-aside{grid-column:2;grid-row:1;position:sticky;top:96px;}

/* ---------- indice (TOC) ---------- */
.toc summary{list-style:none;font-family:var(--font-mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:14px;}
.toc summary::-webkit-details-marker{display:none;}
.toc-cur,.toc-ic,.toc-sm{display:none;}
.toc ol{list-style:none;border-left:1px solid var(--line);}
.toc a{display:block;margin-left:-1px;padding:7px 0 7px 16px;border-left:2px solid transparent;color:var(--muted);font-size:.92rem;line-height:1.35;
  transition:color var(--dur-fast),border-color var(--dur-fast);}
.toc a:hover{color:var(--text);}
.toc a.is-active{color:var(--text);border-left-color:var(--primario);}
@media(min-width:961px){.toc summary{pointer-events:none;}}

.aside-card{display:block;margin-top:26px;padding:16px 18px;border:1px solid var(--line);border-radius:14px;background:var(--surface);
  transition:border-color var(--dur-fast),background var(--dur-fast);}
.aside-card:hover{border-color:rgba(255,138,30,.45);background:var(--tint);}
.aside-card .k{display:block;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--primario);margin-bottom:6px;}
.aside-card .t{display:block;font-family:var(--font-display);font-weight:600;font-size:.98rem;line-height:1.3;color:var(--text);}

/* ---------- corpo del testo ---------- */
.prose{font-size:18px;line-height:1.75;color:#CFCBC4;}
.prose>*+*{margin-top:1.15em;}
.prose h2{font-family:var(--font-display);font-weight:700;font-size:clamp(1.45rem,2.5vw,1.8rem);letter-spacing:-.02em;line-height:1.2;color:var(--text);
  margin-top:2.4em;scroll-margin-top:100px;text-wrap:balance;}
.prose h3{font-family:var(--font-display);font-weight:700;font-size:1.18rem;letter-spacing:-.01em;line-height:1.3;color:var(--text);margin-top:2em;scroll-margin-top:100px;}
.prose h2+*,.prose h3+*{margin-top:.6em;}
.prose strong{color:var(--text);font-weight:600;}
.prose a{color:var(--text);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-color:rgba(255,138,30,.6);transition:color var(--dur-fast);}
.prose a:hover{color:var(--primario);}
.prose ul,.prose ol{padding-left:1.25em;}
.prose li+li{margin-top:.5em;}
.prose li::marker{color:var(--primario);}
.prose ol li::marker{font-family:var(--font-mono);font-size:.85em;}
.prose code{font-family:var(--font-mono);font-size:.86em;color:var(--text);background:var(--tint);border-radius:5px;padding:2px 6px;}

/* box "In breve" (GEO: risposta e dati chiave in cima) */
.callout{background:rgba(255,138,30,.06);border:1px solid rgba(255,138,30,.32);border-radius:16px;padding:22px 24px;font-size:1rem;line-height:1.6;}
.callout-t{font-family:var(--font-mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--primario);margin-bottom:12px;}
.callout ul{list-style:none;padding:0;}
.callout li{position:relative;padding-left:20px;}
.callout li+li{margin-top:.6em;}
.callout li::before{content:'';position:absolute;left:2px;top:.62em;width:6px;height:6px;border-radius:50%;background:var(--primario);}

/* box evidenziato (tabelle a 2 colonne: scheda progetto, costi) */
.box{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:20px 24px;}
.box-t{font-family:var(--font-mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--primario);margin-bottom:6px;}
.box table{width:100%;border-collapse:collapse;font-size:.97rem;line-height:1.55;}
.box thead th{font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);text-align:left;padding:4px 0 10px;border-bottom:1px solid var(--line);}
.box tbody th{width:36%;text-align:left;vertical-align:top;font-family:var(--font-display);font-weight:600;color:var(--text);padding:12px 18px 12px 0;}
.box tbody td{vertical-align:top;padding:12px 0;color:#CFCBC4;}
.box tbody tr+tr th,.box tbody tr+tr td{border-top:1px solid var(--line);}

/* tabella di confronto (3+ colonne). Su mobile diventa a schede: data-label */
.prose .table-wrap{margin-top:1.4em;}
.ctable{width:100%;border-collapse:collapse;font-size:.95rem;line-height:1.5;}
.ctable th,.ctable td{text-align:left;vertical-align:top;padding:13px 16px;border-bottom:1px solid var(--line);}
.ctable thead th{font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--primario);background:var(--surface);}
.ctable tbody th{font-family:var(--font-display);font-weight:600;color:var(--text);width:26%;}
.ctable td{color:#CFCBC4;}
.ctable tbody tr:last-child th,.ctable tbody tr:last-child td{border-bottom:0;}

/* immagini */
.prose figure{margin-top:2em;margin-bottom:.6em;}
.prose figure img{width:100%;height:auto;border-radius:12px;border:1px solid var(--line);background:var(--surface);}
.prose figure.tall{max-width:540px;margin-inline:auto;}
.prose figcaption{font-size:.88rem;line-height:1.45;color:var(--muted);margin-top:10px;}

/* FAQ (FAQPage): domande come H3 separate da una linea */
.faq h3{border-top:1px solid var(--line);padding-top:1.1em;margin-top:1.3em;}
.faq h2+h3{margin-top:1em;}

/* ---------- chiusura: autore, passo successivo, correlati ---------- */
.post-foot{margin-top:64px;display:grid;gap:18px;}
.author{display:flex;gap:18px;align-items:flex-start;padding:22px 24px;border:1px solid var(--line);border-radius:16px;background:var(--surface);}
.author img{width:72px;height:72px;border-radius:50%;object-fit:cover;border:1px solid var(--line);flex:none;}
.author-k{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);}
.author-n{font-family:var(--font-display);font-weight:700;font-size:1.15rem;margin-top:2px;}
.author-n a:hover{color:var(--primario);}
.author-r{font-size:.92rem;color:var(--primario);}
.author-d{font-size:.95rem;line-height:1.6;color:#CFCBC4;margin-top:8px;}
.author-l{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:10px;font-size:.92rem;}
.author-l a{color:var(--text);text-decoration:underline;text-underline-offset:3px;text-decoration-color:rgba(255,138,30,.6);}
.author-l a:hover{color:var(--primario);}
.author-pub{font-family:var(--font-mono);font-size:11px;color:var(--muted);margin-top:10px;letter-spacing:.04em;}

.next{position:relative;overflow:hidden;padding:28px 26px;border:1px solid rgba(255,138,30,.32);border-radius:16px;
  background:radial-gradient(90% 140% at 0% 0%,rgba(255,138,30,.12),transparent 60%),var(--surface);}
.next-t{font-family:var(--font-display);font-weight:700;font-size:1.35rem;letter-spacing:-.01em;}
.next p{color:#CFCBC4;margin-top:6px;max-width:52ch;}
.next-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px;}

.related{margin-top:72px;padding-top:40px;border-top:1px solid var(--line);}
.related-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-top:18px;}
.rel-card{display:flex;flex-direction:column;gap:8px;padding:20px 22px;border:1px solid var(--line);border-radius:16px;background:var(--surface);
  transition:border-color var(--dur-fast),background var(--dur-fast),transform var(--dur-fast);}
.rel-card:hover{border-color:rgba(255,138,30,.45);background:var(--tint);transform:translateY(-2px);}
.rel-k{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--primario);}
.rel-t{font-family:var(--font-display);font-weight:700;font-size:1.05rem;line-height:1.3;}
.rel-d{font-size:.92rem;color:var(--muted);}

/* ---------- tablet e mobile: l'indice diventa una barra "Indice ▾" sticky ---------- */
@media(max-width:960px){
  .post-grid{grid-template-columns:minmax(0,1fr);gap:0;}
  .post-main,.post-aside{grid-column:1;grid-row:auto;}
  .post-main{max-width:none;}
  .post-aside{position:static;margin:0 0 28px;}
  .aside-card{display:none;}
  .toc{border:1px solid var(--line);border-radius:12px;background:var(--surface);}
  .toc summary{pointer-events:auto;cursor:pointer;display:flex;align-items:center;gap:10px;margin:0;padding:13px 16px;min-height:48px;}
  .toc-lg{display:none;}
  .toc-sm{display:inline;}
  .toc-cur{display:block;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-body);font-size:.92rem;letter-spacing:0;text-transform:none;color:var(--text);}
  .toc-ic{display:block;margin-left:auto;width:9px;height:9px;border-right:1.5px solid var(--muted);border-bottom:1.5px solid var(--muted);transform:translateY(-2px) rotate(45deg);transition:transform var(--dur-base) var(--ease-out);}
  .toc[open] .toc-ic{transform:translateY(2px) rotate(-135deg);}
  .toc ol{border-left:0;border-top:1px solid var(--line);padding:6px 0;max-height:60vh;overflow-y:auto;}
  .toc a{padding:10px 16px;border-left:0;margin-left:0;}
  .toc a.is-active{color:var(--primario);}
  /* sticky solo con JS attivo (altrimenti l'elenco aperto coprirebbe il testo) */
  .post-aside.toc-ready{position:sticky;top:62px;z-index:20;}
  .post-aside.toc-ready .toc{background:rgba(21,21,24,.97);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 14px 30px -18px rgba(0,0,0,.9);}
  .prose h2,.prose h3{scroll-margin-top:136px;}
}
@media(max-width:640px){
  .post{padding-top:100px;}
  .post-head{margin:20px 0 32px;}
  .crumbs [aria-current]{max-width:20ch;}
  .prose{font-size:17px;line-height:1.7;}
  .callout,.box{padding:18px;}
  .box tbody th,.box tbody td{display:block;width:auto;padding:0;}
  .box tbody th{padding-top:12px;}
  .box tbody td{padding:2px 0 12px;}
  .box tbody tr+tr td{border-top:0;}
  .box thead{display:none;}
  .box tbody td[data-label]::before{content:attr(data-label) ' · ';font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);}
  /* confronto a schede */
  .prose .table-wrap{border:0;border-radius:0;overflow:visible;}
  .ctable thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);}
  .ctable,.ctable tbody,.ctable tr,.ctable th,.ctable td{display:block;width:auto;}
  .ctable tr{border:1px solid var(--line);border-radius:14px;background:var(--surface);padding:6px 0;}
  .ctable tr+tr{margin-top:10px;}
  .ctable tbody th{width:auto;padding:10px 16px 4px;border:0;}
  .ctable td{padding:6px 16px;border:0;}
  .ctable td[data-label]::before{content:attr(data-label);display:block;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--primario);margin-bottom:1px;}
  .author{flex-direction:column;gap:12px;padding:20px;}
  .author img{width:60px;height:60px;}
  .next{padding:22px 20px;}
  .next-cta .btn{flex:1 1 100%;justify-content:center;}
}

/* testo solo per screen reader */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;}

/* ===================== BLOG INDEX (/blog/) — layout "A · In evidenza + griglia" ===================== */
.blog-head{max-width:760px;margin:26px 0 34px;}
.blog-head .page-h1{font-size:clamp(2.1rem,5vw,3.3rem);}
.blog-head .lead{font-size:1.08rem;margin-top:16px;max-width:60ch;}
.blog .filters{margin:0 0 22px;}
.blog .filters[hidden]{display:none;}
.blog .filter[aria-pressed="true"]{background:var(--primario);border-color:var(--primario);color:#160c02;font-weight:500;}

/* card con link "esteso": tutta la card è cliccabile, il link resta il titolo */
.feat,.pcard{position:relative;border:1px solid var(--line);background:var(--surface);
  transition:border-color var(--dur-fast),background var(--dur-fast),transform var(--dur-fast);}
.feat:hover,.pcard:hover{border-color:rgba(255,138,30,.45);background:var(--tint);}
.feat:focus-within,.pcard:focus-within{outline:2px solid var(--primario);outline-offset:3px;}
.feat a:focus-visible,.pcard a:focus-visible{outline:0;}
.feat h2 a::after,.pcard h3 a::after{content:'';position:absolute;inset:0;border-radius:inherit;z-index:1;}
.card-k{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--primario);}
.card-d{color:var(--muted);font-size:.97rem;line-height:1.55;}
.card-m{font-family:var(--font-mono);font-size:11px;letter-spacing:.04em;color:var(--muted);}
.card-go{font-family:var(--font-display);font-weight:600;font-size:.95rem;color:var(--primario);display:inline-flex;gap:6px;transition:gap var(--dur-fast);}
.feat:hover .card-go,.pcard:hover .card-go{gap:10px;}

.feat{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:36px;align-items:center;padding:30px;border-radius:20px;}
.feat-body{display:flex;flex-direction:column;gap:12px;}
.feat h2{font-family:var(--font-display);font-weight:700;font-size:clamp(1.45rem,2.6vw,2rem);letter-spacing:-.02em;line-height:1.15;text-wrap:balance;}
.feat .pf-shot img{transition:transform .6s var(--ease-out);}
.feat:hover .pf-shot img{transform:scale(1.03);}

.pcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-top:16px;}
.pcard{display:flex;flex-direction:column;gap:10px;padding:22px;border-radius:16px;}
.pcard:hover{transform:translateY(-2px);}
.pcard h3{font-family:var(--font-display);font-weight:700;font-size:1.12rem;line-height:1.3;}
.pcard .card-m{margin-top:auto;padding-top:6px;}
.feat[hidden],.pcard[hidden]{display:none;}

.temi{margin-top:80px;padding-top:40px;border-top:1px solid var(--line);}
.temi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-top:8px;}
.tema{display:flex;flex-direction:column;gap:8px;padding:20px;border:1px solid var(--line);border-radius:16px;}
a.tema{transition:border-color var(--dur-fast),background var(--dur-fast);}
a.tema:hover{border-color:rgba(255,138,30,.45);background:var(--surface);}
.tema-t{font-family:var(--font-display);font-weight:700;font-size:1.02rem;line-height:1.3;}
.tema-d{color:var(--muted);font-size:.92rem;line-height:1.5;}
.tema-n{font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;color:var(--muted);margin-top:auto;padding-top:4px;}
.tema-n.on{color:var(--accento);}
.blog-next{margin-top:56px;}

@media(max-width:760px){
  .feat{grid-template-columns:1fr;gap:18px;padding:20px;}
  .feat .pf-shot{order:-1;}
  .blog .filters{flex-wrap:nowrap;overflow-x:auto;margin-inline:-24px;padding:2px 24px 6px;scrollbar-width:none;}
  .blog .filters::-webkit-scrollbar{display:none;}
  .blog .filter{flex:none;}
  .temi{margin-top:56px;}
}
@media (prefers-reduced-motion:reduce){
  .feat .pf-shot img,.pcard,.card-go{transition:none;}
  .feat:hover .pf-shot img{transform:none;}
  .pcard:hover{transform:none;}
}
