/* ============================================================
   Il Caffettino — oggi.css
   Pagina "Oggi" (Figma 819:2272 desktop · 906:1432 mobile).
   Mobile-first; il resto della pagina riusa le sezioni della home.
   ============================================================ */

/* ---------- Hero ---------- */
.o-hero {
  position: relative;
  padding: 48px var(--container-pad) 56px;
  background: var(--color-bg-inverse);
  overflow: hidden;
}
.o-hero__texture {
  position: absolute;
  inset: 0;
  background: url('../img/archivio-hero-texture.jpg') center / cover no-repeat;
  opacity: 0.43;
  pointer-events: none;
}
.o-hero__inner {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 14px;
  width: 100%;
  max-width: var(--container-max);
  margin-inline: auto;
}
.o-hero__eyebrow { color: var(--color-accent); }
.o-hero__title {
  font-size: 2.5rem;
  font-weight: 800;
  line-height: 1.04;
  letter-spacing: -0.02em;
  color: #fff;
}
.o-hero__sub {
  font-size: 1.375rem;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: -0.01em;
  color: #fff;
}
.o-hero__lead {
  max-width: 640px;
  font-size: 1rem;
  line-height: 1.6;
  color: #bdbfc7;
}
.o-hero__pills {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  padding-top: 4px;
}
/* Sono etichette, non bottoni: nessun hover che prometta un clic */
.o-hero__pill { cursor: default; }

/* ---------- La più importante ---------- */
.o-featured {
  position: relative;
  z-index: 2;
  padding: 20px var(--container-pad) 0;
  background: var(--color-bg-canvas);
}
.o-featured__card {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: var(--container-max);
  margin-inline: auto;
  /* Niente bordo: la metà sinistra della card è una foto a pieno taglio, e
     un bordo chiaro le correva sopra come una riga bianca fuori posto. La
     card gemella degli archivi (.a-oggi__card) non ce l'ha: stessa cosa qui. */
  border-radius: var(--radius-lg);
  background: var(--color-bg-canvas);
  overflow: hidden;
}
.o-featured__media {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 200px;
  background: linear-gradient(140deg, #1a1f2e 8%, #0d0d14 85%);
}
.o-featured__media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.o-featured__media-link {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.o-featured__cat { top: 16px; left: 16px; }
.o-featured__body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 14px;
  padding: 20px;
}
.o-featured__eyebrow {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
}
.o-featured__format { color: var(--color-text-secondary); }
.o-featured__title {
  font-size: 1.75rem;
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -0.015em;
  color: var(--color-text-primary);
}
.o-featured__title a:hover {
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
}
.o-featured__cta {
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--color-text-secondary);
}
.o-featured__cta:hover { color: var(--color-text-primary); }

/* ---------- Le altre notizie di oggi ---------- */
.o-notizie {
  padding: 32px var(--container-pad) 44px;
  background: var(--color-bg-canvas);
}
.o-notizie__inner {
  display: flex;
  flex-direction: column;
  gap: 32px;
  width: 100%;
  max-width: var(--container-max);
  margin-inline: auto;
}
.o-notizie__row {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
}
.o-card {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.o-card__media {
  position: relative;
  display: block;
  height: 197px;
  border-radius: var(--radius-md);
  background: var(--color-bg-muted);
  overflow: hidden;
}
.o-card__media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.o-card:hover .o-card__media img { transform: scale(1.03); }
.o-card__media img { transition: transform 400ms var(--ease-out); }
.o-card__format {
  position: absolute;
  top: 12px;
  left: 12px;
}
.o-card__durata {
  position: absolute;
  right: 12px;
  bottom: 12px;
  padding: 4px 8px;
  border-radius: 6px;
  background: rgba(23, 24, 29, 0.72);
  color: var(--color-text-on-inverse);
  font-size: 0.8125rem;
  font-weight: 500;
}
.o-card__title {
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.3;
  color: var(--color-text-primary);
}
.o-card__title a:hover {
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
}
.o-card__meta {
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--color-text-secondary);
}

/* ---------- Banner sponsor ---------- */
.o-banner {
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding: 24px;
  border-radius: var(--radius-lg);
  background: var(--color-bg-accent);
}
.o-banner__text {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.o-banner__eyebrow { color: var(--color-text-on-accent); opacity: 0.72; }
.o-banner__title {
  font-size: 1.5rem;
  font-weight: 800;
  line-height: 1.16;
  letter-spacing: -0.01em;
  color: var(--color-text-on-accent);
}
.o-banner__lead {
  font-size: 0.9375rem;
  line-height: 1.5;
  color: var(--color-text-on-accent);
}
.o-banner__cta { align-self: flex-start; }

/* ============================================================
   DESKTOP (≥1024) — frame 819:2272
   ============================================================ */
@media (min-width: 1024px) {
  .o-hero { padding: 210px var(--container-pad) 180px; }
  .o-hero__inner { gap: 18px; }
  .o-hero__title { font-size: 4.75rem; line-height: 1.02; }
  .o-hero__sub { font-size: 2rem; }
  .o-hero__lead { font-size: 1.125rem; }

  /* La card sconfina sull'hero come negli archivi */
  .o-featured {
    margin-top: -70px;
    padding: 0 var(--container-pad);
    background: none;
  }
  .o-featured__card { flex-direction: row; align-items: stretch; }
  .o-featured__media { width: 600px; height: auto; flex-shrink: 0; }
  .o-featured__cat { top: 24px; left: 24px; }
  .o-featured__body {
    flex: 1;
    min-width: 0;
    justify-content: center;
    gap: 16px;
    padding: 44px;
  }
  .o-featured__title { font-size: 2.5rem; }

  .o-notizie { padding: 56px var(--container-pad) 70px; }
  .o-notizie__inner { gap: 56px; }
  .o-notizie__row { grid-template-columns: repeat(3, 1fr); gap: 24px; }
  .o-card__media { height: 186px; }
  .o-card__title { font-size: 1.25rem; }

  .o-banner {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 32px;
    padding: 28px 20px 28px 36px;
  }
  .o-banner__title { font-size: 1.875rem; }
  .o-banner__cta { align-self: auto; flex-shrink: 0; }
}
