/*
Theme Name: I Buoi Comunisti
Theme URI: https://noselfie.zone
Author: Cristian
Description: Tema personalizzato per I Buoi Comunisti — blog di politica e società
Version: 1.1
*/

@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;0,900;1,400&family=Source+Serif+4:ital,wght@0,300;0,400;1,300;1,400&family=Anton&display=swap');

* { margin: 0; padding: 0; box-sizing: border-box; }

body {
  background: #F7F5EF;
  font-family: 'Source Serif 4', Georgia, serif;
  color: #1a1a18;
}

/* ─── TOP BAR ─── */
.ibc-topbar {
  padding: 8px 40px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: #1C3A14;
}
.ibc-topbar .date { font-size: 11px; letter-spacing: 1.5px; color: #8aab82; text-transform: uppercase; }
.ibc-topbar .social { display: flex; gap: 16px; }
.ibc-topbar .social a { font-size: 11px; letter-spacing: 1.5px; color: #8aab82; text-decoration: none; text-transform: uppercase; transition: color .2s; }
.ibc-topbar .social a:hover { color: #fff; }

/* ─── IDENTITY ─── */
.ibc-identity { padding: 28px 40px 24px; display: flex; align-items: center; gap: 24px; background: #F7F5EF; width: 100%; }
.ibc-divv { width: 1px; height: 72px; background: #d4d0c4; flex-shrink: 0; }
.ibc-name { font-family: 'Playfair Display', Georgia, serif; font-size: 36px; font-weight: 900; letter-spacing: 2px; color: #1a1a18; line-height: 1; text-transform: uppercase; text-decoration: none; display: block; }
.ibc-name span { color: #C41A1A; }
.ibc-motto { font-family: 'Playfair Display', Georgia, serif; font-size: 13px; font-weight: 400; font-style: italic; letter-spacing: 0.5px; color: #2D7A1F; margin-top: 6px; line-height: 1.4; }
.ibc-identity-fill { margin-left: auto; display: flex; align-items: center; gap: 10px; padding-left: 32px; border-left: 1px solid #d4d0c4; }
.ibc-identity-date { font-family: 'Playfair Display', Georgia, serif; font-size: 13px; font-weight: 700; color: #C41A1A; letter-spacing: 1px; }
.ibc-identity-sep { color: #ccc; font-size: 14px; }
.ibc-identity-label { font-size: 11px; font-weight: 300; letter-spacing: 2.5px; text-transform: uppercase; color: #999; }

/* ─── NAV ─── */
.ibc-nav { border-top: 0.5px solid #d4d0c4; border-bottom: 2px solid #1C3A14; padding: 0 40px; display: flex; align-items: center; background: #F7F5EF; }
.ibc-nav a { font-family: 'Playfair Display', Georgia, serif; font-size: 12px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: #1a1a18; text-decoration: none; padding: 13px 18px; border-bottom: 2px solid transparent; margin-bottom: -2px; transition: all .2s; display: inline-block; }
.ibc-nav a:first-child { padding-left: 0; }
.ibc-nav a:hover { color: #1C3A14; border-bottom-color: #1C3A14; }
.ibc-nav a.current-menu-item, .ibc-nav a.active { color: #C41A1A; border-bottom-color: #C41A1A; }
.ibc-nav-search { margin-left: auto !important; font-size: 11px !important; color: #888 !important; border-bottom: none !important; }
.ibc-nav-search:hover { color: #1C3A14 !important; }

/* ─── HERO (homepage) ─── */
.ibc-hero { background: #C41A1A; }
.ibc-hero-inner { display: grid; grid-template-columns: 1fr 0.5px 300px; max-width: 1100px; margin: 0 auto; }
.ibc-hero-divider { background: rgba(255,255,255,0.2); }
.ibc-hero-main { display: flex; flex-direction: column; }

.ibc-hero-img { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; opacity: 0.88; }
.ibc-hero-img-placeholder { width: 100%; aspect-ratio: 16/9; background: #a81515; display: flex; align-items: center; justify-content: center; }
.ibc-hero-img-placeholder svg { opacity: 0.12; width: 100px; }

.ibc-hero-text { padding: 28px 36px 36px 40px; flex: 1; }
.ibc-hero-text .cat { font-family: 'Playfair Display', Georgia, serif; font-size: 11px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: rgba(255,255,255,0.6); margin-bottom: 12px; }
.ibc-hero-text h1 { font-family: 'Playfair Display', Georgia, serif; font-size: 30px; font-weight: 900; line-height: 1.15; color: #fff; margin-bottom: 14px; }
.ibc-hero-text h1 a { color: #fff; text-decoration: none; }
.ibc-hero-text h1 a:hover { text-decoration: underline; }
.ibc-hero-text .occhiello { font-size: 14px; font-weight: 300; font-style: italic; color: rgba(255,255,255,0.82); line-height: 1.65; margin-bottom: 16px; }
.ibc-hero-text .meta { font-size: 11px; letter-spacing: 1px; color: rgba(255,255,255,0.5); text-transform: uppercase; }

.ibc-hero-side { padding: 40px 40px 40px 36px; display: flex; flex-direction: column; gap: 28px; }
.ibc-side-article { border-bottom: 0.5px solid rgba(255,255,255,0.2); padding-bottom: 24px; }
.ibc-side-article:last-child { border-bottom: none; padding-bottom: 0; }
.ibc-side-article .cat { font-family: 'Playfair Display', Georgia, serif; font-size: 10px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: rgba(255,255,255,0.5); margin-bottom: 8px; }
.ibc-side-article h3 { font-family: 'Playfair Display', Georgia, serif; font-size: 17px; font-weight: 700; line-height: 1.25; color: #fff; margin-bottom: 8px; }
.ibc-side-article h3 a { color: #fff; text-decoration: none; }
.ibc-side-article h3 a:hover { text-decoration: underline; }
.ibc-side-article p { font-size: 13px; font-weight: 300; font-style: italic; color: rgba(255,255,255,0.7); line-height: 1.55; }

/* ─── STRISCIA VERDE ─── */
.ibc-verde-strip { background: #1C3A14; padding: 20px 40px; display: flex; align-items: center; gap: 32px; }
.ibc-verde-strip .label { font-family: 'Playfair Display', Georgia, serif; font-size: 10px; font-weight: 700; letter-spacing: 3px; text-transform: uppercase; color: #4e8a42; white-space: nowrap; }
.ibc-verde-strip .tickers { display: flex; gap: 40px; flex-wrap: wrap; }
.ibc-verde-strip .ticker-item { display: flex; flex-direction: column; gap: 2px; }
.ibc-verde-strip .ticker-item .t-cat { font-size: 10px; letter-spacing: 1.5px; text-transform: uppercase; color: #4e8a42; }
.ibc-verde-strip .ticker-item .t-title { font-family: 'Playfair Display', Georgia, serif; font-size: 13px; color: #c8dfc4; line-height: 1.3; text-decoration: none; }
.ibc-verde-strip .ticker-item .t-title:hover { color: #fff; }

/* ─── GRIGLIA HOME ─── */
.ibc-body { max-width: 1100px; margin: 0 auto; padding: 48px 40px; }
.ibc-section-header { display: flex; align-items: center; gap: 12px; margin-bottom: 28px; }
.ibc-section-header .pill { background: #2D7A1F; color: #fff; font-family: 'Playfair Display', Georgia, serif; font-size: 10px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; padding: 5px 12px; }
.ibc-section-header::after { content: ''; flex: 1; height: 1px; background: #d4d0c4; }

.ibc-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; }
.ibc-article { border-top: 2px solid #2D7A1F; padding-top: 20px; }
.ibc-article .thumb { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin-bottom: 14px; }
.ibc-article .thumb-placeholder { width: 100%; aspect-ratio: 16/9; background: #e0ddd5; margin-bottom: 14px; }
.ibc-article .cat { font-family: 'Playfair Display', Georgia, serif; font-size: 10px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: #2D7A1F; margin-bottom: 8px; }
.ibc-article h2 { font-family: 'Playfair Display', Georgia, serif; font-size: 20px; font-weight: 700; line-height: 1.25; color: #1a1a18; margin-bottom: 10px; }
.ibc-article h2 a { color: #1a1a18; text-decoration: none; }
.ibc-article h2 a:hover { color: #C41A1A; }
.ibc-article p { font-size: 13px; font-weight: 300; font-style: italic; color: #5F5E5A; line-height: 1.6; margin-bottom: 10px; }
.ibc-article .meta { font-size: 11px; letter-spacing: 1px; color: #aaa; text-transform: uppercase; }

/* ─── SINGOLO ARTICOLO ─── */
.ibc-single-wrap { max-width: 1100px; margin: 0 auto; padding: 48px 40px; display: grid; grid-template-columns: 1fr 260px; gap: 56px; align-items: start; }

.ibc-single-cover { width: 100%; aspect-ratio: 16/7; object-fit: cover; display: block; margin-bottom: 36px; }
.ibc-single-cover-placeholder { width: 100%; aspect-ratio: 16/7; background: #e0ddd5; margin-bottom: 36px; }

.ibc-single-main .cat { font-family: 'Playfair Display', Georgia, serif; font-size: 11px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: #2D7A1F; margin-bottom: 14px; }
.ibc-single-main h1 { font-family: 'Playfair Display', Georgia, serif; font-size: 38px; font-weight: 900; line-height: 1.12; color: #1a1a18; margin-bottom: 16px; }
.ibc-single-main .meta { font-size: 11px; letter-spacing: 1px; color: #aaa; text-transform: uppercase; margin-bottom: 32px; padding-bottom: 32px; border-bottom: 1px solid #d4d0c4; }
.ibc-single-main .content { font-size: 17px; line-height: 1.85; color: #2a2a28; }
.ibc-single-main .content p { margin-bottom: 1.5em; }
.ibc-single-main .content h2 { font-family: 'Playfair Display', Georgia, serif; font-size: 24px; font-weight: 700; color: #1a1a18; margin: 2em 0 0.75em; }
.ibc-single-main .content blockquote { border-left: 4px solid #2D7A1F; padding-left: 20px; margin: 1.5em 0; font-style: italic; color: #1C3A14; }
.ibc-single-main .content img { max-width: 100%; height: auto; display: block; margin: 1.5em 0; }

/* sidebar correlati */
.ibc-single-sidebar { position: sticky; top: 24px; }
.ibc-sidebar-label { font-family: 'Playfair Display', Georgia, serif; font-size: 10px; font-weight: 700; letter-spacing: 3px; text-transform: uppercase; color: #2D7A1F; border-top: 2px solid #2D7A1F; padding-top: 8px; margin-bottom: 16px; }

.ibc-related-item { display: flex; gap: 12px; align-items: flex-start; padding: 14px 0; border-bottom: 0.5px solid #d4d0c4; text-decoration: none; }
.ibc-related-item:first-of-type { padding-top: 0; }
.ibc-related-item:last-child { border-bottom: none; }
.ibc-related-thumb { width: 72px; height: 52px; object-fit: cover; flex-shrink: 0; }
.ibc-related-thumb-placeholder { width: 72px; height: 52px; background: #e0ddd5; flex-shrink: 0; }
.ibc-related-text .r-cat { font-family: 'Playfair Display', Georgia, serif; font-size: 9px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: #2D7A1F; margin-bottom: 4px; }
.ibc-related-text .r-title { font-family: 'Playfair Display', Georgia, serif; font-size: 13px; font-weight: 700; line-height: 1.3; color: #1a1a18; }
.ibc-related-item:hover .r-title { color: #C41A1A; }

/* ─── FOOTER ─── */
.ibc-footer { background: #1C3A14; padding: 40px; margin-top: 60px; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 16px; }
.ibc-footer .footer-name { font-family: 'Playfair Display', Georgia, serif; font-size: 18px; font-weight: 900; letter-spacing: 2px; text-transform: uppercase; color: #fff; }
.ibc-footer .footer-name span { color: #C41A1A; }
.ibc-footer .footer-copy { font-size: 11px; letter-spacing: 1px; color: #4e8a42; text-transform: uppercase; }

/* ─── RESPONSIVE ─── */
@media (max-width: 900px) {
  .ibc-single-wrap { grid-template-columns: 1fr; gap: 40px; }
  .ibc-single-sidebar { position: static; }
  .ibc-single-sidebar .ibc-related-item { display: inline-flex; width: calc(50% - 8px); vertical-align: top; }
}

@media (max-width: 768px) {
  .ibc-topbar { padding: 8px 20px; }
  .ibc-topbar .date { display: none; }
  .ibc-identity { padding: 20px 20px 16px; gap: 16px; }
  .ibc-identity svg { width: 52px; height: 52px; }
  .ibc-name { font-size: 24px; }
  .ibc-identity-fill { display: none; }
  .ibc-nav { padding: 0 20px; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .ibc-nav a { padding: 12px 12px; font-size: 11px; }

  .ibc-hero-inner { grid-template-columns: 1fr; }
  .ibc-hero-divider { display: none; }
  .ibc-hero-text { padding: 24px 20px 28px; }
  .ibc-hero-text h1 { font-size: 26px; }
  .ibc-hero-side { padding: 0 20px 28px; border-top: 0.5px solid rgba(255,255,255,0.2); }

  .ibc-verde-strip { padding: 16px 20px; flex-direction: column; gap: 12px; }
  .ibc-verde-strip .tickers { flex-direction: column; gap: 14px; }

  .ibc-body { padding: 32px 20px; }
  .ibc-grid { grid-template-columns: 1fr; gap: 24px; }

  .ibc-single-wrap { padding: 32px 20px; grid-template-columns: 1fr; }
  .ibc-single-main h1 { font-size: 26px; }
  .ibc-single-main .content { font-size: 16px; }
  .ibc-single-sidebar { position: static; }

  .ibc-footer { padding: 28px 20px; flex-direction: column; align-items: flex-start; }
}
