/* Lego primitives — átomos compartidos en todo el tema CCO */

/* Grilla de posts (archivo, búsqueda, categorías) */
.cco-post-grid {
  display: grid;
  gap: 1.25rem;
  grid-template-columns: 1fr;
}

@media (min-width: 640px) {
  .cco-post-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 992px) {
  .cco-post-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

/* Imagen de card: recorte desde arriba (portada, archivo, sidebar) */
:is(.cco-card-media, .cco-news-card__media, .cco-news-featured__media, .cco-news-featured__thumb, .cco-sidebar-post-thumb) img,
.cco-lego-cover {
  object-fit: cover;
  object-position: top center;
  transform-origin: top center;
}

:is(.cco-card, .cco-news-card):hover :is(.cco-card-media, .cco-news-card__media) img {
  transform: scale(1.05);
}

/* Cabecera de sección */
.cco-sec-head {
  margin-bottom: clamp(1.5rem, 3vw, 2.25rem);
}

.cco-sec-head__kicker {
  margin: 0 0 8px;
  font-family: var(--cco-font-ui);
  font-size: var(--cco-type-sm);
  font-weight: 700;
  letter-spacing: var(--cco-track-label);
  text-transform: uppercase;
  color: var(--cco-gold-dk);
}

.cco-sec-head--dark .cco-sec-head__kicker {
  color: var(--cco-gold-lt);
}

.cco-sec-head__title {
  margin: 0;
  font-family: var(--cco-font-title);
  font-size: clamp(1.75rem, 3.5vw, 2.35rem);
  font-weight: 700;
  line-height: 1.12;
  letter-spacing: 0.02em;
  color: var(--cco-charcoal);
}

.cco-sec-head--dark .cco-sec-head__title {
  color: var(--cco-white);
}

.cco-sec-head__accent {
  color: var(--cco-vino);
}

.cco-sec-head--dark .cco-sec-head__accent {
  color: var(--cco-gold-lt);
}

.cco-sec-head__lead {
  margin: 12px 0 0;
  max-width: 58ch;
  font-family: var(--cco-font-article);
  font-size: var(--cco-type-lg);
  line-height: 1.55;
  color: var(--cco-text-muted);
}

.cco-sec-head--dark .cco-sec-head__lead {
  color: rgba(255, 255, 255, 0.72);
}

.cco-sec-head__line {
  width: 54px;
  height: 3px;
  margin-top: 16px;
  border-radius: 2px;
  background: linear-gradient(90deg, var(--cco-gold-lt), var(--cco-gold));
}

.cco-sec-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 18px;
  border-radius: var(--cco-radius);
  border: 1px solid rgba(136, 20, 51, 0.18);
  background: var(--cco-white);
  color: var(--cco-vino) !important;
  font-family: var(--cco-font-ui);
  font-size: var(--cco-type-sm);
  font-weight: 700;
  letter-spacing: var(--cco-track-label);
  text-transform: uppercase;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.06);
  transition: background var(--cco-ease), color var(--cco-ease), transform var(--cco-ease), box-shadow var(--cco-ease);
  flex-shrink: 0;
}

.cco-sec-btn svg {
  width: 14px;
  height: 14px;
}

.cco-sec-btn:hover {
  background: var(--cco-vino);
  color: var(--cco-white) !important;
  transform: translateY(-2px);
  box-shadow: 0 8px 22px rgba(136, 20, 51, 0.22);
}
