/*
Theme Name: Bcons.net Blog (Twenty Twenty-Three Child)
Theme URI: https://www.bconsnet.it/
Description: Child theme di Twenty Twenty-Three allineato al design system della landing bcons.net: navy #333366, ambra, Baloo 2 (wordmark), Manrope (titoli), IBM Plex Sans/Mono. Header e footer replicano quelli della landing.
Author: bcons.net
Template: twentytwentythree
Version: 1.1.0
Text Domain: bconsnet-blog
*/

/* I font sono self-hosted nella ROOT del dominio (stessi file della landing, nessuna duplicazione):
   https://www.bconsnet.it/fonts/*.woff2 — caricati da functions.php via @font-face con URL assoluti */

:root {
  --bcn-graphite: #333366;
  --bcn-graphite-soft: #3E3E72;
  --bcn-paper: #F6F4EF;
  --bcn-paper-dim: #EDE6D8;
  --bcn-rust: #8A5C1E;
  --bcn-rust-hover: #6E4816;
  --bcn-rust-bright: #DDB65E;
  --bcn-ink: #2A2A52;
  --bcn-mist: #A8A8C4;
}

/* ===== base ===== */
body {
  background: var(--bcn-paper) !important;
  color: var(--bcn-ink) !important;
  font-family: 'IBM Plex Sans', sans-serif !important;
}

a { color: var(--bcn-rust); }
a:hover { color: var(--bcn-graphite); }

h1, h2, h3, h4, h5, h6,
.wp-block-post-title,
.wp-block-heading {
  font-family: 'Manrope', sans-serif !important;
  font-weight: 700 !important;
  letter-spacing: -0.01em;
  color: var(--bcn-graphite);
}

.wp-block-post-title a {
  text-decoration: none;
  color: var(--bcn-graphite);
}
.wp-block-post-title a:hover { color: var(--bcn-rust); }

/* ===== sidebar categorie ===== */
.bcn-content-layout {
  max-width: 1480px; /* più largo della landing (1160px): qui la colonna articoli deve
                         condividere lo spazio con la sidebar senza restare schiacciata */
  margin: 0 auto;
  padding: 0 32px;
  display: flex;
  align-items: flex-start;
  gap: 44px;
}
/* il main del tema porta già i suoi vincoli di larghezza/padding: li azzeriamo
   perché ora è il nostro wrapper a gestire max-width e centraggio */
.bcn-content-layout > main {
  flex: 1;
  min-width: 0;
  max-width: none !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}
.bcn-sidebar {
  flex: 0 0 260px;
  background: #fff;
  border: 1px solid rgba(36,40,43,.12);
  border-radius: 6px;
  padding: 24px;
  margin: 60px 0;
  position: sticky;
  top: 100px;
}
.bcn-sidebar-title {
  font-family: 'Manrope', sans-serif;
  font-weight: 700;
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--bcn-graphite);
  margin: 0 0 16px;
}
.bcn-sidebar-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.bcn-sidebar-list a {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  padding: 10px 10px;
  border-radius: 4px;
  color: var(--bcn-ink) !important;
  text-decoration: none !important;
  font-size: 14.5px;
  font-weight: 600;
  transition: background .2s ease, color .2s ease;
}
.bcn-sidebar-list a:hover { background: var(--bcn-paper-dim); color: var(--bcn-rust) !important; }
.bcn-sidebar-count {
  font-family: 'IBM Plex Mono', Consolas, monospace;
  font-size: 11.5px;
  color: var(--bcn-mist);
  background: var(--bcn-paper-dim);
  padding: 2px 8px;
  border-radius: 10px;
  flex-shrink: 0;
}
@media (max-width: 900px) {
  .bcn-content-layout { flex-direction: column; padding: 0 20px; gap: 24px; }
  .bcn-sidebar { flex: 1 1 auto; width: 100%; margin: 24px 0 0; position: static; order: 2; }
}

/* il tema usa meccanismi diversi per l'elenco articoli a seconda della pagina:
   griglia CSS sulla home, flex con classe "columns-N" sugli archivi di categoria.
   Forziamo entrambi allo stesso comportamento (flex a 2 colonne), così il
   risultato è identico ovunque indipendentemente da come il tema imposta
   il singolo template. */
.bcn-content-layout .wp-block-post-template {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 22px !important;
}
.bcn-content-layout .wp-block-post-template > * {
  box-sizing: border-box !important; /* le card usano content-box: senza questo, padding
                                         interno si somma al 50% e la seconda va a capo */
  flex: 1 1 calc(50% - 11px) !important;
  max-width: calc(50% - 11px) !important;
  width: calc(50% - 11px) !important;
}
@media (max-width: 900px) {
  .bcn-content-layout .wp-block-post-template > * {
    flex: 1 1 100% !important;
    max-width: 100% !important;
    width: 100% !important;
  }
}

/* ===== paginazione articoli ===== */
.bcn-pagination {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 14px;
  margin: 8px 0 60px;
  padding-top: 24px;
  border-top: 1px solid rgba(36,40,43,.12);
}
.bcn-pagination .page-numbers {
  font-family: 'IBM Plex Sans', sans-serif;
  font-weight: 600;
  font-size: 14px;
  color: var(--bcn-rust) !important;
  text-decoration: none !important;
  padding: 8px 14px;
  border-radius: 4px;
  transition: background .2s ease, color .2s ease;
}
.bcn-pagination a.page-numbers:hover { background: var(--bcn-paper-dim); }
.bcn-pagination .page-numbers.current {
  background: var(--bcn-graphite);
  color: var(--bcn-paper) !important;
}
.bcn-pagination .page-numbers.dots {
  color: var(--bcn-mist) !important;
  padding: 8px 4px;
}
.bcn-pagination .prev,
.bcn-pagination .next {
  font-family: 'IBM Plex Mono', Consolas, monospace;
  font-size: 12.5px;
  letter-spacing: .02em;
}
.bcn-pagination .prev { margin-right: auto; }
.bcn-pagination .next { margin-left: auto; }

/* ===== header bcons.net (replica della landing) ===== */
.bcn-header {
  background: var(--bcn-graphite);
  padding: 18px 0;
  position: sticky;
  top: 0;
  z-index: 50;
  box-shadow: 0 4px 20px rgba(0,0,0,.15);
  font-size: 16px; /* il tema imposta una base diversa (~15.5px), questo evita accumuli di sub-pixel su gap/altezze */
}
.bcn-header-wrap {
  max-width: 1160px;
  margin: 0 auto;
  padding: 0 32px;
  display: flex;
  align-items: center;
  gap: 28px;
}
.bcn-brandmark {
  font-family: 'Baloo 2', sans-serif !important;
  font-weight: 800;
  font-size: 27px;
  color: var(--bcn-paper) !important;
  text-decoration: none !important;
  letter-spacing: -0.01em;
}
.bcn-nav {
  display: flex;
  gap: 26px;
  margin-right: auto;
  font-size: 14.5px;
  font-weight: 600;
}
.bcn-nav a {
  color: var(--bcn-paper) !important;
  text-decoration: none !important;
  opacity: .82;
  transition: opacity .2s ease, color .2s ease;
}
.bcn-nav a:hover { opacity: 1; color: var(--bcn-rust-bright) !important; }
.bcn-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: var(--bcn-rust);
  color: var(--bcn-paper) !important;
  font-weight: 600;
  font-size: 14px;
  padding: 10px 20px;
  border-radius: 2px;
  text-decoration: none !important;
  transition: background .22s ease, transform .22s ease;
  box-shadow: 0 8px 20px rgba(138,92,30,.28);
}
.bcn-btn:hover { background: var(--bcn-rust-hover); transform: translateY(-2px); }
.bcn-nav-toggle {
  display: none;
  background: none;
  border: none;
  color: var(--bcn-paper);
  cursor: pointer;
  padding: 6px;
  margin-left: 6px;
  align-items: center;
  justify-content: center;
}
.bcn-mobile-nav {
  display: none;
  flex-direction: column;
  background: var(--bcn-graphite);
  border-top: 1px solid rgba(246,244,239,.12);
}
.bcn-mobile-nav.is-open { display: flex; }
.bcn-mobile-nav a {
  padding: 15px 32px;
  color: var(--bcn-paper) !important;
  text-decoration: none !important;
  font-size: 15px;
  font-weight: 600;
  border-bottom: 1px solid rgba(246,244,239,.08);
}
.bcn-mobile-nav a:hover { color: var(--bcn-rust-bright) !important; }

@media (max-width: 640px) {
  .bcn-nav { display: none; }
  .bcn-nav-toggle { display: flex; }
  .bcn-header-wrap { padding: 0 20px; justify-content: space-between; }
}

/* nasconde l'header originale del tema (template part header) */
header.wp-block-template-part:not(.bcn-keep) { display: none; }

/* ===== footer bcons.net (replica della landing) ===== */
.bcn-footer {
  background: var(--bcn-paper-dim);
  color: var(--bcn-ink);
  padding: 52px 0 32px;
  margin-top: 60px;
  font-size: 16px; /* stessa normalizzazione dell'header */
}
.bcn-footer-wrap {
  max-width: 1160px;
  margin: 0 auto;
  padding: 0 32px;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 30px;
}
.bcn-footer .bcn-brandmark { color: var(--bcn-graphite) !important; font-size: 20px; }
.bcn-footer-tag { font-size: 13px; margin-top: 8px; max-width: 34ch; opacity: .75; }
.bcn-footer-contact {
  list-style: none;
  margin: 0; padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
  font-size: 13.5px;
  font-family: 'IBM Plex Mono', Consolas, sans-serif;
}
.bcn-footer-contact a { text-decoration: none; color: inherit; }
.bcn-footer-contact a:hover { color: var(--bcn-rust); }
.bcn-footer-bottom {
  max-width: 1160px;
  margin: 40px auto 0;
  padding: 22px 32px 0;
  border-top: 1px solid rgba(36,40,43,.12);
  font-size: 12px;
  opacity: .6;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px;
}
.bcn-footer-bottom a { color: inherit; }

/* nasconde il footer originale del tema */
footer.wp-block-template-part:not(.bcn-keep) { display: none; }

/* ===== elenco articoli (query loop) ===== */
.wp-block-query .wp-block-post {
  background: #fff;
  border: 1px solid rgba(36,40,43,.12);
  border-radius: 6px;
  padding: 28px 30px;
  margin-bottom: 22px;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.wp-block-query .wp-block-post:hover {
  transform: translateY(-3px);
  box-shadow: 0 14px 28px rgba(20,20,40,.1);
  border-color: var(--bcn-rust);
}
.wp-block-query .wp-block-post-title { font-size: 1.35rem; margin-bottom: 6px; }

/* data e categorie in stile mono della landing */
.wp-block-post-date,
.wp-block-post-date a {
  font-family: 'IBM Plex Mono', Consolas, monospace !important;
  font-size: 12px;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--bcn-mist) !important;
  text-decoration: none;
}
.wp-block-post-terms,
.wp-block-post-terms a {
  font-family: 'IBM Plex Mono', Consolas, monospace !important;
  font-size: 11.5px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--bcn-rust) !important;
  text-decoration: none;
}
.wp-block-post-terms a:hover { text-decoration: underline; }

.wp-block-post-excerpt { font-size: 15px; opacity: .85; }
.wp-block-post-excerpt__more-link {
  color: var(--bcn-rust) !important;
  font-weight: 600;
  text-decoration: none;
}
.wp-block-post-excerpt__more-link:hover { text-decoration: underline; }

/* paginazione */
.wp-block-query-pagination a,
.wp-block-query-pagination-numbers .page-numbers {
  color: var(--bcn-rust) !important;
  font-weight: 600;
  text-decoration: none;
}
.wp-block-query-pagination-numbers .current { color: var(--bcn-ink) !important; }

/* ===== articolo singolo ===== */
.single .wp-block-post-title { font-size: clamp(1.7rem, 4vw, 2.3rem); }
.single .entry-content {
  font-size: 16.5px;
  line-height: 1.75;
}
.single .entry-content a { text-decoration: underline; }
.single .entry-content h2 { font-size: 1.45rem; margin-top: 2em; }
.single .entry-content h3 { font-size: 1.15rem; margin-top: 1.6em; }
.single .entry-content blockquote {
  border-left: 3px solid var(--bcn-rust-bright);
  background: var(--bcn-paper-dim);
  padding: 16px 22px;
  border-radius: 0 4px 4px 0;
  font-style: normal;
}

/* pulsanti generici del tema in stile landing */
.wp-block-button__link,
button[type="submit"],
input[type="submit"] {
  background: var(--bcn-rust) !important;
  color: var(--bcn-paper) !important;
  border-radius: 2px !important;
  font-family: 'IBM Plex Sans', sans-serif !important;
  font-weight: 600 !important;
  border: none !important;
}
.wp-block-button__link:hover,
button[type="submit"]:hover,
input[type="submit"]:hover { background: var(--bcn-rust-hover) !important; }

/* selezione testo coerente con la landing */
::selection { background: var(--bcn-rust); color: var(--bcn-paper); }

/* commenti disattivati: nasconde comunque il blocco a livello visivo,
   anche se il tema dovesse renderlo vuoto per qualche articolo */
.wp-block-comments,
.wp-block-post-comments-form,
.comments-area,
#comments {
  display: none !important;
}

/* autore del post nascosto (mostrava lo username "admin" pubblicamente) */
.wp-block-post-author,
.wp-block-post-author-name,
.wp-block-post-author-biography {
  display: none !important;
}

/* AI Disclaimer — trasparenza AI Act art. 50 */
.bcn-ai-disclaimer {
  background: var(--bcn-paper-dim);
  border-top: 1px solid var(--bcn-mist);
  padding: 1.5rem;
  margin-top: 3rem;
  text-align: center;
}

.bcn-ai-disclaimer p {
  font-size: 0.875rem;
  line-height: 1.6;
  color: var(--bcn-ink);
  font-style: italic;
  margin: 0;
}
