/* ============================================================
   italosannino.com — articolo.css
   Layout e tipografia per le pagine articolo
   ============================================================ */

/* ------------------------------------------------------------
   BREADCRUMB
   ------------------------------------------------------------ */

.breadcrumb {
  padding-top: 80px;
  opacity: 0;
  animation: fade-up 400ms cubic-bezier(0.16, 1, 0.3, 1) 0ms forwards;
}

.breadcrumb-link {
  font-family: var(--font-family-mono);
  font-size: var(--font-size-mono-default);
  letter-spacing: var(--font-tracking-mono);
  color: var(--color-text-tertiary);
  text-decoration: none;
  transition: color 150ms ease;
}

.breadcrumb-link:hover {
  color: var(--color-text-primary);
}

/* ------------------------------------------------------------
   ARTICOLO — struttura
   ------------------------------------------------------------ */

.articolo {
  margin-top: var(--spacing-xl);
  padding-bottom: var(--spacing-2xl);
  width: var(--content-width);
}

/* ------------------------------------------------------------
   TESTATA
   ------------------------------------------------------------ */

.articolo-header {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-sm);
  margin-bottom: var(--spacing-xl);
  opacity: 0;
  animation: fade-up 500ms cubic-bezier(0.16, 1, 0.3, 1) 100ms forwards;
}

.articolo-titolo {
  font-family: var(--font-family-display);
  font-size: 22px;
  font-weight: 600;
  color: var(--color-text-primary);
  line-height: 1.3;
}

.articolo-meta {
  font-family: var(--font-family-mono);
  font-size: var(--font-size-mono-small);
  letter-spacing: var(--font-tracking-mono);
  color: var(--color-text-tertiary);
}

.articolo-reading {
  color: var(--color-text-tertiary);
}

/* ------------------------------------------------------------
   CORPO — tipografia di lettura
   ------------------------------------------------------------ */

.articolo-corpo {
  opacity: 0;
  animation: fade-up 500ms cubic-bezier(0.16, 1, 0.3, 1) 200ms forwards;
}

.articolo-corpo p {
  font-family: var(--font-family-body);
  font-size: var(--font-size-body);
  font-weight: 400;
  color: var(--color-text-secondary);
  line-height: var(--font-lineheight-double);
  margin-bottom: var(--spacing-md);
}

.articolo-corpo p:last-child {
  margin-bottom: 0;
}

.articolo-corpo h2 {
  font-family: var(--font-family-display);
  font-size: var(--font-size-body);
  font-weight: 600;
  color: var(--color-text-primary);
  line-height: normal;
  margin-top: var(--spacing-lg);
  margin-bottom: var(--spacing-md);
}

.articolo-corpo em {
  font-style: italic;
}

.articolo-corpo strong {
  font-weight: 600;
  color: var(--color-text-primary);
}

.articolo-corpo a {
  color: var(--color-text-secondary);
}

.articolo-corpo blockquote {
  border-left: 2px solid var(--color-border-default);
  padding-left: var(--spacing-md);
  margin: var(--spacing-lg) 0;
}

.articolo-corpo blockquote p {
  color: var(--color-text-tertiary);
  font-style: italic;
}

/* ------------------------------------------------------------
   FOOTER ARTICOLO
   ------------------------------------------------------------ */

.articolo-footer {
  margin-top: var(--spacing-2xl);
  padding-top: var(--spacing-lg);
  border-top: 1px solid var(--color-border-default);
  opacity: 0;
  animation: fade-up 400ms cubic-bezier(0.16, 1, 0.3, 1) 300ms forwards;
}

/* ------------------------------------------------------------
   RESPONSIVE — 1024px
   ------------------------------------------------------------ */

@media (max-width: 1024px) {
  .articolo {
    width: 100%;
    max-width: 640px;
  }
}

/* ------------------------------------------------------------
   RESPONSIVE — 480px
   ------------------------------------------------------------ */

@media (max-width: 480px) {
  .breadcrumb {
    padding-top: 48px;
  }

  .articolo {
    width: 100%;
    margin-top: var(--spacing-lg);
  }

  .articolo-titolo {
    font-size: 18px;
  }
}
