/*
Theme Name: NTV Música Blog — versión final
Theme URI: https://ntvmusica.com/blog/
Author: NTV Música
Description: Tema editorial responsive para el blog de NTV Música.
Version: 4.5.0
Text Domain: ntv-musica
*/

:root {
  --ink: #171717;
  --paper: #f2efe7;
  --paper-2: #e9e4da;
  --purple: #6d4aff;
  --lime: #c8ff2e;
  --coral: #ff6f61;
  --line: rgba(23, 23, 23, .18);
  --max: 1240px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: Arial, Helvetica, sans-serif;
  font-size: 17px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
a:focus-visible { outline: 3px solid var(--coral); outline-offset: 4px; }

.ntv-shell { width: min(calc(100% - 48px), var(--max)); margin-inline: auto; }
.ntv-header { position: sticky; top: 0; z-index: 50; background: var(--ink); color: #fff; }
.ntv-header__inner { min-height: 78px; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.ntv-brand { display: inline-flex; align-items: center; gap: 14px; font-weight: 800; letter-spacing: -.02em; }
.ntv-brand img { width: 54px; height: 54px; object-fit: cover; }
.ntv-nav { display: flex; align-items: center; gap: 30px; font-size: 14px; font-weight: 700; }
.ntv-nav a { opacity: .86; }
.ntv-nav a:hover { opacity: 1; color: var(--lime); }
.ntv-nav .ntv-button { background: var(--purple); opacity: 1; padding: 13px 18px; }

.ntv-hero { padding: 62px 0 48px; border-bottom: 1px solid var(--line); overflow: hidden; }
.ntv-eyebrow { margin: 0 0 24px; text-transform: uppercase; letter-spacing: .17em; font-size: 12px; font-weight: 800; }
.ntv-eyebrow::before { content: ""; display: inline-block; width: 8px; height: 8px; margin-right: 10px; border-radius: 50%; background: var(--coral); }
.ntv-hero h1 { max-width: 1040px; margin: 0; font-size: clamp(48px, 6.4vw, 88px); line-height: .94; letter-spacing: -.06em; font-weight: 500; }
.ntv-accent { color: var(--purple); font-family: Georgia, 'Times New Roman', serif; font-style: italic; letter-spacing: -.055em; }
.ntv-hero__bottom { margin-top: 28px; }
.ntv-hero__intro { max-width: 760px; font-size: clamp(18px, 1.6vw, 22px); line-height: 1.45; letter-spacing: -.02em; }
.ntv-hero__intro p { margin: 0; }
.ntv-back { display: inline-flex; align-items: center; gap: 10px; margin-top: 26px; font-size: 14px; font-weight: 800; border-bottom: 1px solid currentColor; }

.ntv-ticker { overflow: hidden; background: var(--lime); border-bottom: 1px solid var(--ink); }
.ntv-ticker__text { padding: 9px 0; white-space: nowrap; font-size: 12px; font-weight: 900; letter-spacing: .16em; text-transform: uppercase; }

.ntv-section { padding: 58px 0 90px; }
.ntv-section__head { display: flex; justify-content: space-between; align-items: end; gap: 24px; margin-bottom: 34px; }
.ntv-section__head h2 { margin: 0; font-size: clamp(36px, 4vw, 58px); line-height: .98; letter-spacing: -.05em; font-weight: 500; }
.ntv-section__count { font-size: 13px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }

.ntv-featured { display: grid; grid-template-columns: 1.15fr .85fr; min-height: 520px; border: 1px solid var(--ink); background: var(--ink); color: #fff; }
.ntv-featured__media { position: relative; display: block; min-height: 390px; background: var(--purple); overflow: hidden; }
.ntv-featured__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.ntv-featured:hover .ntv-featured__media img { transform: scale(1.025); }
.ntv-featured__fallback { width: 100%; height: 100%; min-height: 390px; background: radial-gradient(circle at 65% 40%, transparent 0 18%, rgba(255,255,255,.22) 18.5% 19%, transparent 19.5% 28%, rgba(255,255,255,.18) 28.5% 29%, transparent 29.5%), var(--purple); }
.ntv-featured__body { display: flex; flex-direction: column; justify-content: space-between; padding: clamp(30px, 4vw, 58px); }
.ntv-meta { display: flex; flex-wrap: wrap; gap: 12px; font-size: 11px; line-height: 1.3; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.ntv-featured h2 { margin: 26px 0 20px; font-size: clamp(34px, 4vw, 62px); line-height: .98; letter-spacing: -.05em; font-weight: 500; }
.ntv-featured p { margin: 0; color: rgba(255,255,255,.72); line-height: 1.5; }
.ntv-read { display: inline-flex; margin-top: 32px; font-size: 13px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; color: var(--lime); }

.ntv-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: stretch; gap: 24px; margin-top: 28px; }
.ntv-card { display: flex; min-width: 0; flex-direction: column; border: 1px solid var(--ink); background: var(--paper); transition: transform .2s ease, box-shadow .2s ease; }
.ntv-card:hover { transform: translateY(-4px); box-shadow: 8px 8px 0 var(--purple); }
.ntv-card__media { position: relative; display: block; width: 100%; aspect-ratio: 16/10; overflow: hidden; border-bottom: 1px solid var(--ink); background: var(--purple); }
.ntv-card__media img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: center 20%; transition: transform .4s ease; }
.ntv-card:hover .ntv-card__media img { transform: scale(1.03); }
.ntv-card__fallback { width: 100%; height: 100%; background: linear-gradient(135deg, var(--purple) 0 68%, var(--lime) 68%); }
.ntv-card__body { display: flex; flex: 1; flex-direction: column; padding: 22px; }
.ntv-card h3 { margin: 15px 0 12px; font-size: clamp(24px, 2.1vw, 31px); line-height: 1.08; letter-spacing: -.035em; font-weight: 500; }
.ntv-card p { margin: 0; color: rgba(23,23,23,.7); }
.ntv-card .ntv-read { margin-top: auto; padding-top: 22px; color: var(--purple); }
.ntv-pagination { margin-top: 54px; font-weight: 800; }
.ntv-pagination .nav-links { display: flex; gap: 8px; }
.ntv-pagination a, .ntv-pagination span { border: 1px solid var(--ink); padding: 9px 14px; }
.ntv-pagination .current { background: var(--ink); color: #fff; }

.ntv-article__hero { padding: 72px 0 48px; border-bottom: 1px solid var(--line); }
.ntv-article__hero h1 { max-width: 1100px; margin: 22px 0 30px; font-size: clamp(45px, 7vw, 96px); line-height: .94; letter-spacing: -.06em; font-weight: 500; }
.ntv-article__deck { max-width: 780px; margin: 0; font-size: clamp(19px, 2vw, 25px); line-height: 1.45; }
.ntv-article__image { display: block; width: min(calc(100% - 48px), 980px); height: clamp(320px, 42vw, 520px); margin: 42px auto 0; object-fit: cover; object-position: center 20%; }
.ntv-content { width: min(calc(100% - 48px), 790px); margin: 0 auto; padding: 70px 0 100px; font-size: 19px; }
.ntv-content > *:first-child { margin-top: 0; }
.ntv-content h2, .ntv-content h3 { line-height: 1.08; letter-spacing: -.035em; margin-top: 2.2em; }
.ntv-content h2 { font-size: 42px; }
.ntv-content h3 { font-size: 31px; }
.ntv-content a { color: var(--purple); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.ntv-content blockquote { margin: 2.4em 0; padding: 0 0 0 24px; border-left: 5px solid var(--purple); font: italic 30px/1.25 Georgia, serif; }
.ntv-content iframe, .ntv-content video { width: 100%; max-width: 100%; aspect-ratio: 16/9; height: auto; border: 0; }
.ntv-content .wp-block-embed__wrapper { position: relative; }
.ntv-postnav { width: min(calc(100% - 48px), var(--max)); margin: 0 auto 90px; display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--ink); }
.ntv-postnav a { padding: 28px 0; font-weight: 800; }
.ntv-postnav .nav-next { text-align: right; }

.ntv-empty { padding: 100px 0; }
.ntv-empty h1 { font-size: clamp(48px, 8vw, 100px); line-height: .9; letter-spacing: -.06em; font-weight: 500; }

.ntv-footer { background: var(--ink); color: #fff; padding: 64px 0 28px; }
.ntv-footer__grid { display: grid; grid-template-columns: 1.2fr .8fr; gap: 50px; }
.ntv-footer h2 { margin: 0 0 30px; font-size: clamp(44px, 6vw, 80px); line-height: .95; letter-spacing: -.055em; font-weight: 500; }
.ntv-footer__links { display: grid; align-content: start; gap: 10px; font-weight: 800; }
.ntv-footer__links a:hover { color: var(--lime); }
.ntv-footer__bottom { display: flex; justify-content: space-between; gap: 20px; margin-top: 64px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.2); font-size: 12px; letter-spacing: .1em; text-transform: uppercase; }

@media (max-width: 840px) {
  .ntv-shell { width: min(calc(100% - 30px), var(--max)); }
  .ntv-header__inner { min-height: 68px; }
  .ntv-brand span { display: none; }
  .ntv-brand img { width: 48px; height: 48px; }
  .ntv-nav { gap: 16px; font-size: 12px; }
  .ntv-nav a:nth-child(2) { display: none; }
  .ntv-nav .ntv-button { padding: 10px 12px; }
  .ntv-hero { padding: 60px 0 44px; }
  .ntv-hero h1 { font-size: clamp(48px, 12vw, 72px); }
  .ntv-hero__bottom { margin-top: 24px; }
  .ntv-section { padding: 54px 0 72px; }
  .ntv-featured { grid-template-columns: 1fr; }
  .ntv-featured__media { min-height: 280px; }
  .ntv-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
  .ntv-card:hover { box-shadow: 5px 5px 0 var(--purple); }
  .ntv-article__hero { padding: 52px 0 34px; }
  .ntv-article__image, .ntv-content, .ntv-postnav { width: calc(100% - 30px); }
  .ntv-article__image { height: clamp(240px, 68vw, 400px); }
  .ntv-content { padding: 46px 0 70px; font-size: 18px; }
  .ntv-postnav { grid-template-columns: 1fr; }
  .ntv-postnav .nav-next { text-align: left; border-top: 1px solid var(--line); }
  .ntv-footer__grid { grid-template-columns: 1fr; }
  .ntv-footer__bottom { flex-direction: column; }
}

@media (max-width: 520px) {
  .ntv-nav > a:not(.ntv-button) { display: none; }
  .ntv-nav .ntv-button { font-size: 11px; }
  .ntv-hero h1 { font-size: clamp(48px, 15vw, 72px); }
  .ntv-section__head { align-items: flex-start; flex-direction: column; }
  .ntv-grid { grid-template-columns: 1fr; }
  .ntv-featured { min-height: 0; }
  .ntv-featured__media { min-height: 0; aspect-ratio: 4/3; }
  .ntv-featured h2 { font-size: 34px; }
  .ntv-card__body { padding: 22px; }
  .ntv-card h3 { font-size: 30px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}

/* Dirección visual NTV Música: edición negra */
body { background: #12130f; color: #fff; }
.ntv-header { border-bottom: 1px solid rgba(255,255,255,.12); }
.ntv-nav .ntv-button { border-radius: 999px; }

.ntv-hero {
  padding: 72px 0 34px;
  background: #12130f;
  border-bottom: 0;
}
.ntv-hero .ntv-eyebrow { color: rgba(255,255,255,.62); }
.ntv-hero h1 {
  max-width: none;
  color: var(--lime);
  font-size: clamp(54px, 7vw, 104px);
  line-height: .96;
  letter-spacing: -.065em;
}
.ntv-hero__bottom {
  grid-template-columns: 1fr 1fr;
  margin-top: 34px;
}
.ntv-hero__intro {
  color: rgba(255,255,255,.76);
  font-size: clamp(18px, 1.6vw, 22px);
}

.ntv-section { padding: 34px 0 96px; background: #12130f; }
.ntv-section__head { margin-bottom: 24px; color: #fff; }
.ntv-section__label,
.ntv-section__count {
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.ntv-section__label::before { content: ""; display: inline-block; width: 30px; height: 3px; margin: 0 10px 3px 0; background: var(--purple); }
.ntv-section__count { color: rgba(255,255,255,.55); }

.ntv-grid { align-items: start; gap: 28px; margin-top: 0; }
.ntv-card {
  overflow: hidden;
  border: 0;
  border-radius: 9px;
  background: var(--paper);
  color: var(--ink);
  box-shadow: none;
}
.ntv-card:hover { transform: translateY(-6px); box-shadow: 9px 9px 0 var(--purple); }
.ntv-card__media {
  width: auto;
  margin: 18px 18px 0;
  border: 0;
  border-radius: 5px;
  background: var(--ink);
}
.ntv-card__body { padding: 22px 22px 26px; }
.ntv-card h3 {
  margin: 14px 0 12px;
  font-size: clamp(25px, 2.15vw, 33px);
  line-height: 1.08;
  letter-spacing: -.035em;
  font-weight: 800;
}
.ntv-card p {
  display: -webkit-box;
  overflow: hidden;
  color: rgba(23,23,23,.76);
  line-height: 1.5;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}
.ntv-card .ntv-meta { color: var(--purple); }
.ntv-card .ntv-read {
  align-self: flex-start;
  margin-top: 24px;
  padding: 10px 18px;
  border-radius: 999px;
  background: var(--ink);
  color: var(--lime);
  line-height: 1.2;
  letter-spacing: .02em;
  text-transform: none;
}
.ntv-card .ntv-read:hover { background: var(--purple); color: #fff; }

.ntv-pagination { color: #fff; }
.ntv-pagination a,
.ntv-pagination span { border-color: rgba(255,255,255,.45); }
.ntv-pagination .current { background: var(--lime); color: var(--ink); }

.ntv-article__hero { background: #12130f; color: #fff; border-bottom-color: rgba(255,255,255,.15); }
.ntv-article__hero .ntv-meta { color: var(--lime); }
.ntv-article__deck { color: rgba(255,255,255,.74); }
.ntv-content {
  width: min(calc(100% - 48px), 880px);
  margin: 48px auto 80px;
  padding: 58px 64px 70px;
  border-radius: 9px;
  background: var(--paper);
  color: var(--ink);
}
.ntv-postnav { color: #fff; border-top-color: rgba(255,255,255,.35); }
.ntv-empty { color: #fff; }

.ntv-footer { border-top: 1px solid rgba(255,255,255,.12); }

@media (max-width: 840px) {
  .ntv-hero { padding: 56px 0 28px; }
  .ntv-hero h1 { font-size: clamp(50px, 13vw, 78px); }
  .ntv-hero__bottom { grid-template-columns: 1fr; margin-top: 26px; }
  .ntv-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ntv-content { width: calc(100% - 30px); padding: 42px 38px 54px; }
}

@media (max-width: 600px) {
  .ntv-grid { grid-template-columns: 1fr; }
  .ntv-section__head { flex-direction: row; align-items: center; }
  .ntv-card__media { margin: 14px 14px 0; }
  .ntv-card__body { padding: 20px 20px 24px; }
  .ntv-content { margin-top: 30px; padding: 34px 24px 44px; }
}

/* Tarjetas uniformes y compactas en cada fila */
@media (min-width: 601px) {
  .ntv-grid { align-items: stretch; }

  .ntv-card { height: 100%; }

  .ntv-card__body {
    display: flex;
    flex: 1;
    flex-direction: column;
  }

  .ntv-card .ntv-meta {
    display: block;
    min-width: 0;
    height: 1.3em;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .ntv-card .ntv-meta span { margin-right: 9px; }

  .ntv-card h3 {
    display: -webkit-box;
    height: 3.15em;
    max-height: 3.15em;
    flex: 0 0 3.15em;
    margin: 13px 0 10px;
    overflow: hidden;
    font-size: clamp(23px, 1.75vw, 28px);
    line-height: 1.05;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
  }

  .ntv-card p {
    height: 3em;
    max-height: 3em;
    flex: 0 0 3em;
    line-height: 1.5;
    -webkit-line-clamp: 2;
  }

  .ntv-card .ntv-read {
    align-self: end;
    margin-top: 24px;
    padding: 9px 16px;
  }
}
