@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/Inter-Regular.woff2') format('woff2');
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/Inter-Medium.woff2') format('woff2');
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('../fonts/Inter-SemiBold.woff2') format('woff2');
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('../fonts/Inter-Bold.woff2') format('woff2');
}

:root,
[data-bs-theme="dark"] {
  --bs-primary: #fd0000;
  --bs-primary-rgb: 253, 0, 0;
  --bs-secondary: #1a1a1a;
  --bs-secondary-rgb: 26, 26, 26;

  --bs-body-bg: #121212;
  --bs-body-color: #e5e5e5;
  --bs-body-font-family: 'Inter', system-ui, sans-serif;
  --bs-body-line-height: 1.6;

  /* testo secondario (date, autore, excerpt) leggibile su sfondo scuro */
  --bs-secondary-color: rgba(229, 229, 229, .65);
  --bs-tertiary-color: rgba(229, 229, 229, .5);

  --bs-link-color: #fd0000;
  --bs-link-color-rgb: 253, 0, 0;
  --bs-link-hover-color: #ff3b3b;
  --bs-link-hover-color-rgb: 255, 59, 59;
}

body {
  font-family: var(--bs-body-font-family);
  background: var(--bs-body-bg);
  color: var(--bs-body-color);
  line-height: var(--bs-body-line-height);
}

.topbar { background: var(--bs-primary); }

.site-header { background: #000; }

.navbar.bg-dark-subtle { background-color: #1f1f1f !important; }

.section-header .badge { letter-spacing: .04em; }

.featured-main img { object-fit: cover; }
.featured-overlay {
  background: linear-gradient(to top, rgba(0,0,0,.85), transparent 70%);
}

.card.rounded-0 img { display: block; }

/* Thumbnail card: rapporto fisso 3:2, ritaglio (cover), mai stiramento */
.card-thumb { aspect-ratio: 3 / 2; overflow: hidden; }
.card-thumb-img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* Placeholder quando manca la foto: img/placeholder-news.svg mostrata cover */

/* Immagine articolo nel dettaglio: proporzioni reali, mai upscaling */
.post-feature img { max-width: 100%; height: auto; }

.sidebar section .badge { width: 100%; text-align: left; display: block; }

.social-icon {
  display: inline-flex; align-items: center; justify-content: center;
  width: 34px; height: 34px; border-radius: 50%;
  color: #fff; text-decoration: none; font-size: 1rem;
}
.social-icon:hover { opacity: .85; color: #fff; }

.posts-strip { background-color: #2a2a2a; color: #e5e5e5; }

.site-footer { background: #000; }
.site-footer .copyright { background: #000; }

.visually-hidden-focusable:focus,
.visually-hidden-focusable:focus-within {
  position: fixed; top: .5rem; left: .5rem;
  background: var(--bs-primary); color: #fff;
  padding: .5rem 1rem; z-index: 1080; text-decoration: none;
}

:focus-visible { outline: 2px solid var(--bs-primary); outline-offset: 2px; }

/* ============================================================
   Componenti layout (step 3)
   ============================================================ */

/* Banner statico nell'header */
.banner-header {
  background: var(--bs-primary);
  color: #fff;
  padding: 1rem 2rem;
  font-size: 1.25rem;
  letter-spacing: .05em;
  min-width: 220px;
}

/* Navbar link */
.navbar .nav-link { color: #e5e5e5; }
.navbar .nav-link:hover,
.navbar .nav-link:focus,
.navbar .nav-link.active { color: #fff; }

/* Featured side card */
.featured-side { overflow: hidden; min-height: 130px; }
.featured-side img { object-fit: cover; height: 100%; }

/* Carousel main: riempie l'altezza della colonna (pareggiata a quella laterale),
   immagini sempre in cover -> niente spazio vuoto sotto se i formati differiscono */
.featured-main,
.featured-main .carousel-inner,
.featured-main .carousel-item,
.featured-main .carousel-item > a { height: 100%; }
.featured-main .carousel-item img { width: 100%; height: 100%; object-fit: cover; }

/* Corpo articolo / pagina statica */
.post-body img,
.page-body img { max-width: 100%; height: auto; }
.post-body { line-height: 1.7; }
.post-body a,
.page-body a { color: var(--bs-primary); }

/* Breadcrumb su sfondo scuro */
.breadcrumb-item + .breadcrumb-item::before { color: #777; }
.breadcrumb a { color: #e5e5e5; }

/* Link generici nel main su sfondo scuro */
main a { color: var(--bs-primary); }
main a:hover { color: var(--bs-link-hover-color); }
.section-header .badge { color: #fff; }

/* Bottoni primari = bianco/argento (Bootstrap forza il blu sul btn-primary).
   Titoli rossi, azioni chiare: palette rossonera classica. */
.btn-primary {
  --bs-btn-color: #111;
  --bs-btn-bg: #f2f2f2;
  --bs-btn-border-color: #f2f2f2;
  --bs-btn-hover-color: #111;
  --bs-btn-hover-bg: #ffffff;
  --bs-btn-hover-border-color: #ffffff;
  --bs-btn-active-color: #111;
  --bs-btn-active-bg: #e2e2e2;
  --bs-btn-active-border-color: #e2e2e2;
  --bs-btn-focus-shadow-rgb: 255, 255, 255;
  --bs-btn-disabled-color: #111;
  --bs-btn-disabled-bg: #cccccc;
  --bs-btn-disabled-border-color: #cccccc;
}
