/* ================================================================
   VocesNews – Estilos Editoriales
   ================================================================ */

:root {
  --vn-accent:    #e8b000;
  --vn-dark:      #111111;
  --vn-text:      #ffffff;
  --vn-text-muted: rgba(255,255,255,0.65);
  --vn-radius:    10px;
  --vn-gap:       12px;
  --vn-font-head: 'Georgia', 'Times New Roman', serif;
  --vn-font-body: system-ui, -apple-system, sans-serif;
}

/* ----------------------------------------------------------------
   Grid container
---------------------------------------------------------------- */
.vn-grid {
  display: grid;
  gap: var(--vn-gap);
  width: 100%;
}

/* ---- Layout: Magazine (1 grande centro + 2 izq + 2 der) ---- */
.vn-layout-magazine {
  grid-template-columns: 1fr 2fr 1fr;
  grid-template-rows: auto auto;
}

.vn-layout-magazine .vn-card:nth-child(1) { grid-column: 1; grid-row: 1; }
.vn-layout-magazine .vn-card:nth-child(2) { grid-column: 1; grid-row: 2; }
.vn-layout-magazine .vn-card--featured    { grid-column: 2; grid-row: 1 / 3; }
.vn-layout-magazine .vn-card:nth-child(4) { grid-column: 3; grid-row: 1; }
.vn-layout-magazine .vn-card:nth-child(5) { grid-column: 3; grid-row: 2; }

/* ---- Layout: Three columns ---- */
.vn-layout-three_col {
  grid-template-columns: repeat(3, 1fr);
}

/* ---- Layout: List ---- */
.vn-layout-list {
  grid-template-columns: 1fr;
}
.vn-layout-list .vn-card {
  display: grid;
  grid-template-columns: 200px 1fr;
  height: 130px;
}
.vn-layout-list .vn-card__link {
  display: contents;
}
.vn-layout-list .vn-card__thumb {
  height: 130px !important;
  border-radius: var(--vn-radius) 0 0 var(--vn-radius);
}
.vn-layout-list .vn-card__body {
  position: static;
  padding: 16px;
  background: #1e1e1e;
  border-radius: 0 var(--vn-radius) var(--vn-radius) 0;
}
.vn-layout-list .vn-card__title { font-size: 1rem; margin-bottom: 6px; }
.vn-layout-list .vn-card__overlay { display: none; }

/* ----------------------------------------------------------------
   Card base
---------------------------------------------------------------- */
.vn-card {
  position: relative;
  overflow: hidden;
  border-radius: var(--vn-radius);
  background: #1a1a1a;
  cursor: pointer;
}

.vn-card__link {
  display: block;
  height: 100%;
  text-decoration: none;
  color: inherit;
}

/* ----------------------------------------------------------------
   Thumbnail
---------------------------------------------------------------- */
.vn-card__thumb {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  background-color: #2a2a2a;
  transition: transform 0.5s ease;
}

.vn-card:hover .vn-card__thumb { transform: scale(1.05); }

/* ---- Fixed heights ---- */
.vn-layout-magazine .vn-card { min-height: 220px; }
.vn-layout-magazine .vn-card--featured { min-height: 456px; }
.vn-layout-three_col .vn-card { min-height: 260px; }

/* ----------------------------------------------------------------
   Gradient overlay
---------------------------------------------------------------- */
.vn-card__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to top,
    rgba(0,0,0,0.92) 0%,
    rgba(0,0,0,0.55) 50%,
    rgba(0,0,0,0.10) 100%
  );
  opacity: 0.75;
}

.vn-card__thumb--no-img { background-color: #2a2a2a; }

/* ----------------------------------------------------------------
   Card body (text overlay)
---------------------------------------------------------------- */
.vn-card__body {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 16px;
  z-index: 2;
}

.vn-card--featured .vn-card__body { padding: 24px; }

/* ----------------------------------------------------------------
   Badge / category pill
---------------------------------------------------------------- */
.vn-badge {
  display: inline-block;
  background: var(--vn-accent);
  color: #000;
  font-family: var(--vn-font-body);
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 3px 8px;
  border-radius: 3px;
  margin-bottom: 8px;
}

/* ----------------------------------------------------------------
   Title
---------------------------------------------------------------- */
.vn-card__title {
  font-family: var(--vn-font-head);
  font-size: 0.95rem;
  font-weight: 700;
  line-height: 1.3;
  color: var(--vn-text);
  margin: 0 0 8px;
}

.vn-card--featured .vn-card__title { font-size: 1.5rem; }

.vn-card__title a {
  color: inherit;
  text-decoration: none;
  transition: color 0.2s;
}
.vn-card__title a:hover { color: var(--vn-accent); }

/* ----------------------------------------------------------------
   Excerpt
---------------------------------------------------------------- */
.vn-card__excerpt {
  font-family: var(--vn-font-body);
  font-size: 0.82rem;
  color: var(--vn-text-muted);
  margin: 0 0 8px;
  line-height: 1.5;
}

/* ----------------------------------------------------------------
   Meta (author · time)
---------------------------------------------------------------- */
.vn-card__meta {
  font-family: var(--vn-font-body);
  font-size: 0.72rem;
  color: var(--vn-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  display: flex;
  align-items: center;
  gap: 5px;
}
.vn-card__sep { opacity: 0.5; }

/* ----------------------------------------------------------------
   No posts message
---------------------------------------------------------------- */
.vn-no-posts {
  text-align: center;
  padding: 40px;
  color: #666;
  font-style: italic;
}

/* ----------------------------------------------------------------
   Hero widget
---------------------------------------------------------------- */
.vn-hero {
  position: relative;
  height: 500px;
  background-size: cover;
  background-position: center;
  background-color: #1a1a1a;
  border-radius: var(--vn-radius);
  overflow: hidden;
  display: flex;
  align-items: flex-end;
}

.vn-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to top,
    rgba(0,0,0,0.95) 0%,
    rgba(0,0,0,0.50) 55%,
    rgba(0,0,0,0.15) 100%
  );
}

.vn-hero__content {
  position: relative;
  z-index: 2;
  padding: 40px;
  max-width: 760px;
}

.vn-hero__title {
  font-family: var(--vn-font-head);
  font-size: clamp(1.5rem, 3vw, 2.4rem);
  font-weight: 700;
  line-height: 1.2;
  color: #fff;
  margin: 12px 0;
}
.vn-hero__title a { color: inherit; text-decoration: none; }
.vn-hero__title a:hover { color: var(--vn-accent); }

.vn-hero__excerpt {
  font-size: 0.95rem;
  color: rgba(255,255,255,0.75);
  line-height: 1.6;
  margin-bottom: 16px;
}

/* ----------------------------------------------------------------
   Ticker widget
---------------------------------------------------------------- */
.vn-ticker {
  display: flex;
  align-items: center;
  background: var(--vn-dark);
  overflow: hidden;
  height: 42px;
  border-radius: 4px;
}

.vn-ticker__label {
  flex-shrink: 0;
  background: var(--vn-accent);
  color: #000;
  font-family: var(--vn-font-body);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 0 14px;
  height: 100%;
  display: flex;
  align-items: center;
  white-space: nowrap;
}

.vn-ticker__track {
  flex: 1;
  overflow: hidden;
  position: relative;
  height: 100%;
}

.vn-ticker__inner {
  display: flex;
  align-items: center;
  height: 100%;
  white-space: nowrap;
  animation: vn-ticker-scroll var(--vn-ticker-speed, 30s) linear infinite;
}

.vn-ticker__item {
  color: #fff;
  text-decoration: none;
  font-size: 0.82rem;
  font-family: var(--vn-font-body);
  padding: 0 8px;
  white-space: nowrap;
  transition: color 0.2s;
}
.vn-ticker__item:hover { color: var(--vn-accent); }

.vn-ticker__dot {
  color: var(--vn-accent);
  padding: 0 4px;
  flex-shrink: 0;
}

@keyframes vn-ticker-scroll {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

/* ----------------------------------------------------------------
   Responsive
---------------------------------------------------------------- */
@media (max-width: 1024px) {
  .vn-layout-magazine {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto;
  }
  .vn-layout-magazine .vn-card { grid-column: auto !important; grid-row: auto !important; }
  .vn-layout-magazine .vn-card--featured { grid-column: 1 / -1 !important; }
}

@media (max-width: 768px) {
  .vn-layout-magazine,
  .vn-layout-three_col {
    grid-template-columns: 1fr;
  }
  .vn-layout-magazine .vn-card--featured { min-height: 320px; }
  .vn-layout-list .vn-card { grid-template-columns: 120px 1fr; }
  .vn-layout-list .vn-card__thumb { height: 130px !important; }
  .vn-hero { height: 320px; }
  .vn-hero__content { padding: 24px; }
}

/* ----------------------------------------------------------------
   Layout: Hero + Lista lateral (featured_list)
---------------------------------------------------------------- */
.vn-layout-featured_list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--vn-gap);
  align-items: stretch;
}

/* Primera tarjeta: ocupa toda la columna izquierda */
.vn-layout-featured_list .vn-card:first-child {
  grid-column: 1;
  grid-row: 1 / 4;
  min-height: 380px;
}

/* Tarjetas laterales: columna derecha, layout horizontal */
.vn-layout-featured_list .vn-card:not(:first-child) {
  grid-column: 2;
  display: grid;
  grid-template-columns: 140px 1fr;
  min-height: 110px;
  background: transparent;
}

.vn-layout-featured_list .vn-card:not(:first-child) .vn-card__link {
  display: contents;
}

/* Miniatura lateral */
.vn-layout-featured_list .vn-card:not(:first-child) .vn-card__thumb {
  position: relative;
  height: auto;
  min-height: 110px;
  border-radius: var(--vn-radius) 0 0 var(--vn-radius);
  flex-shrink: 0;
}

/* Body lateral: texto sobre fondo claro/transparente */
.vn-layout-featured_list .vn-card:not(:first-child) .vn-card__overlay {
  display: none;
}

.vn-layout-featured_list .vn-card:not(:first-child) .vn-card__body {
  position: static;
  padding: 12px 14px;
  background: var(--vn-side-bg, #ffffff);
  border-radius: 0 var(--vn-radius) var(--vn-radius) 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 4px;
}

.vn-layout-featured_list .vn-card:not(:first-child) .vn-card__title {
  font-size: 0.88rem;
  color: var(--vn-side-text, #111111);
  font-family: var(--vn-font-body);
  font-weight: 600;
  line-height: 1.4;
  margin: 0;
}

.vn-layout-featured_list .vn-card:not(:first-child) .vn-card__title a {
  color: inherit;
}
.vn-layout-featured_list .vn-card:not(:first-child) .vn-card__title a:hover {
  color: var(--vn-accent);
}

.vn-layout-featured_list .vn-card:not(:first-child) .vn-card__meta {
  color: var(--vn-side-meta, #777777);
  font-size: 0.72rem;
}

.vn-layout-featured_list .vn-card:not(:first-child) .vn-badge {
  font-size: 0.62rem;
  padding: 2px 7px;
}

/* Responsive */
@media (max-width: 768px) {
  .vn-layout-featured_list {
    grid-template-columns: 1fr;
  }
  .vn-layout-featured_list .vn-card:first-child {
    grid-column: 1;
    grid-row: auto;
    min-height: 260px;
  }
  .vn-layout-featured_list .vn-card:not(:first-child) {
    grid-column: 1;
  }
}
