/* Listing news e hub categoria (IT/EN) — estratto da news/index.php (prima era <style> inline in ogni pagina) */
.news-page { padding-top: var(--header-height); }
.page-header { padding: 6rem 0 3rem; text-align: center; }
.page-title { font-size: clamp(2.3rem, 5vw, 3.75rem); font-weight: 700; letter-spacing: -0.03em; line-height: 1.08; margin-top: 0.75rem; }
.news-search { position: relative; max-width: 480px; margin: 1.5rem auto 3rem; }
.search-icon { position: absolute; left: 1rem; top: 50%; transform: translateY(-50%); color: var(--white-dim); opacity: 0.4; pointer-events: none; }
.search-input { width: 100%; padding: 0.75rem 1rem 0.75rem 2.75rem; background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.08); border-radius: var(--radius-full); color: var(--white); font-size: 0.9375rem; font-family: var(--font-body); outline: none; transition: border-color 0.3s var(--ease-smooth); }
.search-input::placeholder { color: var(--white-dim); opacity: 0.4; }
.search-input:focus { border-color: rgba(0, 212, 255, 0.3); box-shadow: 0 0 0 3px rgba(0, 212, 255, 0.06); }
.search-help-inline { position: absolute; right: 0.5rem; top: 50%; transform: translateY(-50%); width: 2rem; height: 2rem; background: none; border: 1px solid rgba(255,255,255,0.12); border-radius: 50%; color: var(--white-dim); cursor: pointer; display: flex; align-items: center; justify-content: center; transition: all 0.2s var(--ease-smooth); }
@media (hover: hover) { .search-help-inline:hover { color: var(--brand); border-color: rgba(0, 212, 255, 0.3); background: rgba(0, 212, 255, 0.04); } }
.search-reset-inline { position: absolute; right: 3rem; top: 50%; transform: translateY(-50%); width: 2rem; height: 2rem; background: none; border: none; color: var(--white-dim); cursor: pointer; display: none; align-items: center; justify-content: center; border-radius: 50%; transition: all 0.2s var(--ease-smooth); }
.search-reset-inline.visible { display: flex; }
@media (hover: hover) { .search-reset-inline:hover { color: var(--white); background: rgba(255,255,255,0.08); } }
.news-search .search-input { padding-right: 5.5rem; }
.news-cats {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.375rem;
  margin: -1.75rem 0 2.5rem;
}
.cat-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  padding: 0.35em 0.75em;
  border-radius: var(--radius-full);
  border: 1px solid rgba(255,255,255,0.1);
  background: rgba(255,255,255,0.03);
  color: var(--white-dim);
  font-size: 0.8125rem;
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
  transition: all 0.2s var(--ease-smooth);
}
@media (hover: hover) { .cat-pill:hover { color: var(--white); border-color: rgba(0, 212, 255, 0.3); background: rgba(0, 212, 255, 0.04); } }
.cat-pill.is-active { color: var(--black); background: var(--brand); border-color: var(--brand); }
.cat-count { font-size: 0.8em; font-weight: 500; opacity: 0.65; }
.cat-pill.is-active .cat-count { opacity: 0.85; }
.news-disclosure {
  margin-top: 2.5rem;
  font-size: 0.75rem;
  color: var(--white-dim);
  opacity: 0.35;
}
.news-disclosure-summary {
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  list-style: none;
  user-select: none;
  transition: opacity 0.2s;
}
.news-disclosure-summary::-webkit-details-marker {
  display: none;
}
@media (hover: hover) { .news-disclosure-summary:hover {
  opacity: 0.7;
} }
.news-disclosure[open] .news-disclosure-summary {
  opacity: 0.7;
}
.news-disclosure-body {
  margin: 0.5rem 0 0;
  line-height: 1.6;
  max-width: 640px;
}
.page-listing { padding: 4rem 0; }
.card-image-link { display: block; text-decoration: none; }
.card-news { }
/* Mantiene uniforme l'altezza delle card News: il curator mira a 130 caratteri,
   mentre gli abstract storici più lunghi restano protetti dal clamp globale. */
.news-page #news-grid .card-desc {
  min-height: calc(1.7em * 3);
  max-height: calc(1.7em * 3);
  overflow-wrap: anywhere;
}
.search-results { margin-top: 1rem; }
.search-result-card { margin-bottom: 1.5rem; }
#search-pagination { display: none; justify-content: space-between; align-items: center; padding: 1rem 0; gap: 1rem; }
#search-pagination.visible { display: flex; }
#search-pagination .btn:disabled { opacity: 0.3; cursor: default; }
.search-pag-info { font-size: 0.875rem; color: var(--white-dim); opacity: 0.6; }
.page-ellipsis { padding: 0 0.5rem; color: var(--white-dim); opacity: 0.4; font-size: 0.9375rem; }
.empty-state { text-align: center; padding: 4rem 0; color: var(--white-dim); opacity: 0.6; font-size: 1.15rem; }
.pagination { display: flex; align-items: center; justify-content: center; gap: 1rem; margin-top: 4rem; flex-wrap: wrap; }
.page-numbers { display: flex; align-items: center; gap: 0.25rem; flex-wrap: wrap; justify-content: center; }
.page-num { display: flex; align-items: center; justify-content: center; width: 2.5rem; height: 2.5rem; border-radius: var(--radius-sm); font-size: 0.9375rem; font-weight: 600; color: var(--white-dim); transition: all 0.2s var(--ease-smooth); }
@media (hover: hover) { .page-num:hover { color: var(--white); background: rgba(255,255,255,0.06); } }
.page-num.active { color: var(--white); background: var(--brand); }
@media (max-width: 768px) {
  .page-header { padding: 4rem 0 2rem; }
  .page-listing { padding: 2.5rem 0; }
  .news-cats { justify-content: flex-start; flex-wrap: nowrap; overflow-x: auto; padding-bottom: 0.5rem; scrollbar-width: none; }
  .news-cats::-webkit-scrollbar { display: none; }
  .pagination { gap: 0.25rem; }
  .page-numbers { gap: 0.15rem; }
  .page-num { width: 2rem; height: 2rem; font-size: 0.875rem; }
}

/* ── Riga argomenti (link alle pagine argomento) ── */
.news-topics {
  display: flex; flex-wrap: wrap; justify-content: center; align-items: baseline;
  gap: 0.35rem 1rem;
  margin: -1.5rem auto 2.5rem;
  max-width: 60rem;
  font-size: 0.875rem;
}
.news-topics-label {
  color: var(--white-dim); opacity: 0.7;
  font-size: 0.75rem; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase;
}
.news-topics a { color: var(--white-dim); text-decoration: none; }
.news-topics a::before { content: '#'; color: var(--brand); opacity: 0.7; margin-right: 0.1em; }
@media (hover: hover) { .news-topics a:hover { color: var(--brand); } }
@media (max-width: 768px) {
  .news-topics { justify-content: flex-start; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin-top: -1.75rem; }
  .news-topics::-webkit-scrollbar { display: none; }
  .news-topics a, .news-topics-label { white-space: nowrap; }
}

/* ── Pagina argomento: "In breve" + timeline 60 giorni ── */
.topic-brief { max-width: 42rem; margin: 1.4rem auto 0; padding: 1rem 1.25rem; text-align: left; border-left: 3px solid var(--brand); background: rgba(0,212,255,0.04); border-radius: 0 var(--radius-md) var(--radius-md) 0; }
.topic-brief-kicker { font-family: var(--font-mono); font-size: 0.68rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--brand); }
.topic-brief p { margin: 0.4rem 0 0; color: var(--white-dim); line-height: 1.6; }
.topic-timeline { max-width: 42rem; margin: 1.4rem auto 0; }
.topic-timeline-svg { display: block; width: 100%; height: 48px; }
.topic-timeline-svg rect.on { fill: var(--brand); opacity: 0.85; }
.topic-timeline-svg rect.off { fill: rgba(255,255,255,0.08); }
@media (hover: hover) { .topic-timeline-svg rect:hover { opacity: 1; fill: #fff; } }
.topic-timeline figcaption { display: flex; justify-content: space-between; margin-top: 0.35rem; font-family: var(--font-mono); font-size: 0.66rem; color: var(--white-dim); opacity: 0.8; }
