/* ==========================================================================
   Talvenor Taller — hoja de estilos principal
   builtbytodd.com · prefijo de clases: tvn_
   ========================================================================== */

:root {
  --tvn-ink: #241E1A;
  --tvn-nogal: #6E4326;
  --tvn-nogal-dark: #533221;
  --tvn-ambar: #B4601A;
  --tvn-pino: #35604E;
  --tvn-crema: #F6F0E7;
  --tvn-crema-2: #EFE5D6;
  --tvn-papel: #FFFFFF;
  --tvn-humo: #5E534B;
  --tvn-linea: #E2D6C6;
  --tvn-sombra: 0 2px 0 0 #E2D6C6;
  --tvn-sombra-alta: 0 14px 34px -18px rgba(36, 30, 26, .45);
  --tvn-radio: 4px;
  --tvn-paso: 24px;
}

html {
  box-sizing: border-box;
  -webkit-text-size-adjust: 100%;
}

*,
*::before,
*::after {
  box-sizing: inherit;
}

body {
  margin: 0;
  background: var(--tvn-papel);
  color: var(--tvn-ink);
  font-family: 'Karla', 'Segoe UI', Arial, sans-serif;
  font-size: 17px;
  line-height: 1.75;
  -webkit-font-smoothing: antialiased;
}

h1,
h2,
h3,
h4 {
  font-family: 'Bitter', Georgia, 'Times New Roman', serif;
  color: var(--tvn-ink);
  line-height: 1.25;
  margin: 0 0 14px;
  font-weight: 700;
  letter-spacing: -.01em;
}

p {
  margin: 0 0 18px;
}

a {
  color: var(--tvn-nogal);
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: color .2s ease-in-out;
}

a:hover {
  color: var(--tvn-ambar);
}

img,
svg {
  max-width: 100%;
}

:focus-visible {
  outline: 3px solid var(--tvn-ambar);
  outline-offset: 2px;
}

::selection {
  background: var(--tvn-nogal);
  color: #fff;
}

.tvn_wrap {
  width: 100%;
  max-width: 1140px;
  margin: 0 auto;
  padding: 0 24px;
}

.tvn_skip {
  position: absolute;
  left: -9999px;
  top: 0;
  background: var(--tvn-ink);
  color: #fff;
  padding: 10px 18px;
  z-index: 60;
}

.tvn_skip:focus {
  left: 8px;
  top: 8px;
}

/* ---------- Cabecera ---------- */

.tvn_utilbar {
  background: var(--tvn-ink);
  color: #D9CFC3;
  font-size: 14.5px;
}

.tvn_utilbar_in {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-height: 42px;
  flex-wrap: wrap;
  padding-top: 6px;
  padding-bottom: 6px;
}

.tvn_util_place {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #D9CFC3;
}

.tvn_util_links {
  display: flex;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
}

.tvn_util_links a {
  color: #F2E9DC;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 7px;
}

.tvn_util_links a:hover {
  color: #F0B267;
  text-decoration: underline;
}

.tvn_head {
  background: var(--tvn-papel);
  border-bottom: 1px solid var(--tvn-linea);
  position: relative;
  z-index: 30;
}

.tvn_head_in {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding-top: 16px;
  padding-bottom: 16px;
}

.tvn_brand {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  text-decoration: none;
  flex-shrink: 0;
}

.tvn_brand_mark {
  width: 46px;
  height: 46px;
  flex-shrink: 0;
}

.tvn_brand_txt {
  display: flex;
  flex-direction: column;
  line-height: 1.15;
}

.tvn_brand_name {
  font-family: 'Bitter', Georgia, serif;
  font-weight: 700;
  font-size: 21px;
  color: var(--tvn-ink);
  letter-spacing: -.015em;
}

.tvn_brand_sub {
  font-size: 12.5px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--tvn-humo);
}

.tvn_nav_toggle {
  display: none;
  background: transparent;
  border: 1px solid var(--tvn-linea);
  border-radius: var(--tvn-radio);
  color: var(--tvn-ink);
  font-family: inherit;
  font-size: 15px;
  padding: 9px 14px;
  min-height: 44px;
  align-items: center;
  gap: 8px;
  cursor: pointer;
}

.tvn_nav {
  display: flex;
}

.tvn_nav ul {
  display: flex;
  align-items: center;
  gap: 26px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.tvn_nav a {
  text-decoration: none;
  color: var(--tvn-ink);
  font-size: 16px;
  font-weight: 500;
  padding: 6px 0;
  border-bottom: 2px solid transparent;
  display: inline-block;
}

.tvn_nav a:hover,
.tvn_nav a[data-vigente="si"] {
  color: var(--tvn-nogal);
  border-bottom-color: var(--tvn-ambar);
}

/* ---------- Portada ---------- */

.tvn_hero {
  background: linear-gradient(180deg, var(--tvn-crema) 0%, #FBF7F1 100%);
  border-bottom: 1px solid var(--tvn-linea);
  padding: 56px 0 60px;
}

.tvn_hero_grid {
  display: grid;
  grid-template-columns: 0.95fr 1.05fr;
  gap: 46px;
  align-items: center;
}

.tvn_hero_art {
  position: relative;
}

.tvn_hero_art img {
  width: 100%;
  height: auto;
  display: block;
  border: 1px solid var(--tvn-linea);
  border-radius: var(--tvn-radio);
  background: #fff;
}

.tvn_hero_tag {
  position: absolute;
  left: -14px;
  bottom: 22px;
  background: var(--tvn-ink);
  color: #F6F0E7;
  padding: 12px 18px;
  border-left: 4px solid var(--tvn-ambar);
  font-size: 15px;
  max-width: 230px;
  line-height: 1.45;
  box-shadow: var(--tvn-sombra-alta);
}

.tvn_over {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 13px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--tvn-nogal);
  font-weight: 700;
  margin-bottom: 14px;
}

.tvn_over::before {
  content: "";
  width: 26px;
  height: 3px;
  background: var(--tvn-ambar);
  display: inline-block;
}

.tvn_h1 {
  font-size: 43px;
  margin-bottom: 18px;
}

.tvn_lead {
  font-size: 19px;
  color: #3B322C;
  margin-bottom: 26px;
}

.tvn_marca_texto {
  box-shadow: inset 0 -.42em 0 rgba(180, 96, 26, .22);
}

.tvn_cta_fila {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  align-items: center;
}

.tvn_btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-height: 48px;
  padding: 12px 24px;
  background: var(--tvn-nogal);
  color: #fff;
  font-family: inherit;
  font-size: 16.5px;
  font-weight: 700;
  border: 2px solid var(--tvn-nogal);
  border-radius: var(--tvn-radio);
  text-decoration: none;
  cursor: pointer;
  transition: background-color .2s ease-in-out, border-color .2s ease-in-out, color .2s ease-in-out;
}

.tvn_btn:hover {
  background: var(--tvn-nogal-dark);
  border-color: var(--tvn-nogal-dark);
  color: #fff;
}

.tvn_btn_lin {
  background: transparent;
  color: var(--tvn-nogal);
  border-color: var(--tvn-nogal);
}

.tvn_btn_lin:hover {
  background: var(--tvn-nogal);
  color: #fff;
}

.tvn_hero_datos {
  display: flex;
  gap: 26px;
  flex-wrap: wrap;
  margin-top: 30px;
  padding-top: 22px;
  border-top: 1px solid var(--tvn-linea);
}

.tvn_hero_dato b {
  display: block;
  font-family: 'Bitter', Georgia, serif;
  font-size: 27px;
  color: var(--tvn-nogal);
  line-height: 1.1;
}

.tvn_hero_dato span {
  font-size: 14.5px;
  color: var(--tvn-humo);
}

/* ---------- Secciones ---------- */

.tvn_sec {
  padding: 62px 0;
}

.tvn_sec_crema {
  background: var(--tvn-crema);
  border-top: 1px solid var(--tvn-linea);
  border-bottom: 1px solid var(--tvn-linea);
}

.tvn_sec_cab {
  max-width: 760px;
  margin-bottom: 38px;
}

.tvn_h2 {
  font-size: 32px;
}

.tvn_h3 {
  font-size: 21px;
}

.tvn_sub {
  color: var(--tvn-humo);
  font-size: 17.5px;
  margin: 0;
}

.tvn_rejilla_3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
}

/* Los hijos de una rejilla no deben crecer por su contenido:
   sin esto una tabla ancha empuja el ancho de toda la página. */
.tvn_rejilla_3>*,
.tvn_rejilla_2>*,
.tvn_hero_grid>*,
.tvn_art_grid>*,
.tvn_contacto_grid>*,
.tvn_campo_fila>*,
.tvn_pie_grid>* {
  min-width: 0;
}

.tvn_rejilla_2 {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 22px;
}

.tvn_ficha {
  background: var(--tvn-papel);
  border: 1px solid var(--tvn-linea);
  border-left: 3px solid var(--tvn-ambar);
  border-radius: var(--tvn-radio);
  padding: 24px;
}

.tvn_ficha h3 {
  font-size: 19.5px;
  margin-bottom: 10px;
}

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

.tvn_ficha_ico {
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--tvn-crema);
  border-radius: var(--tvn-radio);
  margin-bottom: 14px;
  color: var(--tvn-nogal);
  font-size: 20px;
}

/* Pasos verticales */

.tvn_pasos {
  counter-reset: tvnpaso;
  border-left: 2px solid var(--tvn-linea);
  margin-left: 16px;
  padding-left: 0;
  list-style: none;
}

.tvn_pasos li {
  position: relative;
  padding: 0 0 30px 32px;
  counter-increment: tvnpaso;
}

.tvn_pasos li:last-child {
  padding-bottom: 0;
}

.tvn_pasos li::before {
  content: counter(tvnpaso);
  position: absolute;
  left: -17px;
  top: 0;
  width: 32px;
  height: 32px;
  background: var(--tvn-nogal);
  color: #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Bitter', Georgia, serif;
  font-size: 15px;
  font-weight: 700;
}

.tvn_pasos h3 {
  font-size: 19px;
  margin-bottom: 6px;
}

.tvn_pasos p {
  margin-bottom: 0;
  color: var(--tvn-humo);
}

/* Tabla comparativa */

.tvn_tabla_env {
  overflow-x: auto;
  border: 1px solid var(--tvn-linea);
  border-radius: var(--tvn-radio);
  background: #fff;
}

.tvn_tabla {
  width: 100%;
  border-collapse: collapse;
  font-size: 16px;
  min-width: 520px;
}

/* Rejilla de dos columnas con la primera más ancha (tablas junto a una nota) */
.tvn_rejilla_2.tvn_rej_ancha {
  grid-template-columns: 1.38fr 1fr;
  gap: 44px;
  align-items: start;
}

.tvn_tabla th,
.tvn_tabla td {
  padding: 13px 16px;
  text-align: left;
  border-bottom: 1px solid var(--tvn-linea);
  vertical-align: top;
}

.tvn_tabla th {
  background: var(--tvn-crema);
  font-family: 'Bitter', Georgia, serif;
  font-size: 15.5px;
}

.tvn_tabla tr:last-child td {
  border-bottom: 0;
}

/* Listas marcadas */

.tvn_lista {
  list-style: none;
  padding: 0;
  margin: 0 0 18px;
}

.tvn_lista li {
  position: relative;
  padding-left: 26px;
  margin-bottom: 10px;
}

.tvn_lista li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 11px;
  width: 10px;
  height: 10px;
  background: var(--tvn-pino);
  transform: rotate(45deg);
}

.tvn_lista_pto li::before {
  background: var(--tvn-ambar);
  border-radius: 50%;
  transform: none;
  width: 8px;
  height: 8px;
  top: 12px;
  left: 2px;
}

/* Cita / testimonio */

.tvn_cita {
  background: var(--tvn-papel);
  border: 1px solid var(--tvn-linea);
  border-top: 4px solid var(--tvn-pino);
  border-radius: var(--tvn-radio);
  padding: 28px;
}

.tvn_cita blockquote {
  margin: 0 0 16px;
  font-size: 19px;
  font-family: 'Bitter', Georgia, serif;
  line-height: 1.6;
}

.tvn_cita_pie {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 15px;
  color: var(--tvn-humo);
}

.tvn_cita_ini {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: var(--tvn-crema-2);
  color: var(--tvn-nogal);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Bitter', Georgia, serif;
  font-weight: 700;
}

/* Banda de llamada */

.tvn_banda {
  background: var(--tvn-ink);
  color: #F1E8DC;
  padding: 48px 0;
}

.tvn_banda h2 {
  color: #fff;
}

.tvn_banda p {
  color: #D9CFC3;
}

.tvn_banda_in {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
  flex-wrap: wrap;
}

.tvn_banda_txt {
  max-width: 620px;
}

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

.tvn_btn_ambar {
  background: var(--tvn-ambar);
  border-color: var(--tvn-ambar);
}

.tvn_btn_ambar:hover {
  background: #964E12;
  border-color: #964E12;
}

/* ---------- Páginas internas ---------- */

.tvn_pagcab {
  background: var(--tvn-crema);
  border-bottom: 1px solid var(--tvn-linea);
  padding: 42px 0 40px;
}

.tvn_migas {
  font-size: 14.5px;
  color: var(--tvn-humo);
  margin-bottom: 12px;
}

.tvn_migas a {
  color: var(--tvn-humo);
}

.tvn_art {
  padding: 50px 0 60px;
}

.tvn_art_grid {
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: 46px;
  align-items: start;
}

.tvn_cuerpo h2 {
  font-size: 27px;
  margin-top: 38px;
}

.tvn_cuerpo h3 {
  font-size: 20px;
  margin-top: 28px;
}

.tvn_cuerpo figure {
  margin: 26px 0;
}

.tvn_cuerpo figure img {
  width: 100%;
  border: 1px solid var(--tvn-linea);
  border-radius: var(--tvn-radio);
  display: block;
}

.tvn_cuerpo figcaption {
  font-size: 14.5px;
  color: var(--tvn-humo);
  margin-top: 8px;
}

.tvn_dato_lat {
  background: var(--tvn-crema);
  border: 1px solid var(--tvn-linea);
  border-radius: var(--tvn-radio);
  padding: 22px;
  margin-bottom: 22px;
}

.tvn_dato_lat h3 {
  font-size: 17px;
  margin-bottom: 10px;
}

.tvn_dato_lat ul {
  margin-bottom: 0;
}

.tvn_lat_lista {
  list-style: none;
  margin: 0;
  padding: 0;
  font-size: 15.5px;
}

.tvn_lat_lista li {
  border-bottom: 1px dashed var(--tvn-linea);
  padding: 9px 0;
}

.tvn_lat_lista li:last-child {
  border-bottom: 0;
}

.tvn_nota {
  background: #FBF4E9;
  border-left: 3px solid var(--tvn-ambar);
  padding: 18px 20px;
  border-radius: var(--tvn-radio);
  margin: 26px 0;
}

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

/* ---------- Rutas / catálogo ---------- */

.tvn_ruta {
  background: #fff;
  border: 1px solid var(--tvn-linea);
  border-radius: var(--tvn-radio);
  padding: 26px;
  display: flex;
  flex-direction: column;
  height: 100%;
}

.tvn_ruta_top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}

.tvn_etq {
  display: inline-block;
  font-size: 12.5px;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-weight: 700;
  padding: 5px 10px;
  border-radius: 2px;
  background: var(--tvn-crema-2);
  color: var(--tvn-nogal);
}

.tvn_etq_pino {
  background: #E1EDE7;
  color: #2A5240;
}

.tvn_ruta_meta {
  font-size: 14.5px;
  color: var(--tvn-humo);
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  margin: 0 0 14px;
  padding: 12px 0;
  border-top: 1px dashed var(--tvn-linea);
  border-bottom: 1px dashed var(--tvn-linea);
}

.tvn_ruta .tvn_btn {
  margin-top: auto;
  align-self: flex-start;
}

/* ---------- Autoevaluación ---------- */

.tvn_quiz {
  background: #fff;
  border: 1px solid var(--tvn-linea);
  border-radius: var(--tvn-radio);
  padding: 26px;
}

.tvn_quiz_item {
  padding: 18px 0;
  border-bottom: 1px dashed var(--tvn-linea);
}

.tvn_quiz_item:first-of-type {
  padding-top: 0;
}

.tvn_quiz_preg {
  font-family: 'Bitter', Georgia, serif;
  font-weight: 700;
  font-size: 18px;
  margin-bottom: 12px;
}

.tvn_quiz_ops {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.tvn_quiz_op {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 10px 12px;
  border: 1px solid var(--tvn-linea);
  border-radius: var(--tvn-radio);
  cursor: pointer;
  background: #FDFBF8;
  min-height: 44px;
}

.tvn_quiz_op:hover {
  border-color: var(--tvn-nogal);
}

.tvn_quiz_op input {
  margin-top: 5px;
  accent-color: var(--tvn-nogal);
}

.tvn_quiz_ok {
  border-color: var(--tvn-pino);
  background: #EDF5F1;
}

.tvn_quiz_mal {
  border-color: #A8402A;
  background: #FBEEEB;
}

.tvn_quiz_exp {
  margin: 12px 0 0;
  font-size: 15.5px;
  color: var(--tvn-humo);
  display: none;
}

.tvn_quiz_exp.tvn_visible {
  display: block;
}

.tvn_quiz_res {
  margin-top: 20px;
  font-family: 'Bitter', Georgia, serif;
  font-size: 18px;
}

/* ---------- Formulario ---------- */

.tvn_form {
  background: #fff;
  border: 1px solid var(--tvn-linea);
  border-radius: var(--tvn-radio);
  padding: 28px;
}

.tvn_campo_fila {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}

.tvn_campo {
  margin-bottom: 18px;
  display: flex;
  flex-direction: column;
}

.tvn_campo label {
  font-size: 15px;
  font-weight: 700;
  margin-bottom: 6px;
}

.tvn_campo input,
.tvn_campo select,
.tvn_campo textarea {
  font-family: inherit;
  font-size: 16px;
  color: var(--tvn-ink);
  background: #FDFBF8;
  border: 1px solid var(--tvn-linea);
  border-radius: var(--tvn-radio);
  padding: 11px 13px;
  min-height: 46px;
  width: 100%;
}

.tvn_campo textarea {
  min-height: 140px;
  resize: vertical;
}

.tvn_campo input:focus,
.tvn_campo select:focus,
.tvn_campo textarea:focus {
  border-color: var(--tvn-nogal);
  background: #fff;
}

.tvn_pista {
  font-size: 14px;
  color: var(--tvn-humo);
  margin-top: 5px;
}

.tvn_check {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 15px;
  margin: 6px 0 20px;
}

.tvn_check input {
  margin-top: 5px;
  width: 18px;
  height: 18px;
  accent-color: var(--tvn-nogal);
  flex-shrink: 0;
}

/* Bloque de contacto */

.tvn_contacto_grid {
  display: grid;
  grid-template-columns: 1.35fr 1fr;
  gap: 34px;
  align-items: start;
}

.tvn_contacto_dato {
  display: flex;
  gap: 14px;
  padding: 16px 0;
  border-bottom: 1px solid var(--tvn-linea);
}

.tvn_contacto_dato:last-child {
  border-bottom: 0;
}

.tvn_contacto_dato .tvn_ficha_ico {
  margin-bottom: 0;
  flex-shrink: 0;
}

.tvn_contacto_dato b {
  display: block;
  font-size: 15px;
}

.tvn_contacto_dato span,
.tvn_contacto_dato a {
  font-size: 16px;
  color: var(--tvn-humo);
}

/* Gracias */

.tvn_gracias {
  text-align: center;
  max-width: 640px;
  margin: 0 auto;
  padding: 70px 0;
}

.tvn_gracias_ico {
  width: 74px;
  height: 74px;
  margin: 0 auto 22px;
  border-radius: 50%;
  background: #E1EDE7;
  color: var(--tvn-pino);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 34px;
}

/* ---------- Legales ---------- */

.tvn_legal {
  max-width: 820px;
}

.tvn_legal h2 {
  font-size: 24px;
  margin-top: 34px;
}

.tvn_legal h3 {
  font-size: 18.5px;
  margin-top: 24px;
}

.tvn_legal ul,
.tvn_legal ol,
.tvn_cuerpo ul,
.tvn_cuerpo ol,
.tvn_nota ul {
  margin: 0 0 18px;
  padding-left: 22px;
  list-style-position: outside;
}

.tvn_legal ul,
.tvn_cuerpo ul,
.tvn_nota ul {
  list-style-type: disc;
}

.tvn_legal ol,
.tvn_cuerpo ol {
  list-style-type: decimal;
}

.tvn_legal li,
.tvn_cuerpo li {
  margin-bottom: 8px;
}

.tvn_cuerpo .tvn_lista,
.tvn_legal .tvn_lista {
  list-style: none;
  padding-left: 0;
}

.tvn_fecha {
  font-size: 15px;
  color: var(--tvn-humo);
}

/* ---------- Pie ---------- */

.tvn_pie {
  background: var(--tvn-ink);
  color: #CFC4B7;
  padding: 52px 0 26px;
  font-size: 15.5px;
}

.tvn_pie_grid {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 1.2fr;
  gap: 32px;
}

.tvn_pie h4 {
  color: #fff;
  font-size: 16px;
  letter-spacing: .04em;
  margin-bottom: 14px;
}

.tvn_pie ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.tvn_pie li {
  margin-bottom: 9px;
}

.tvn_pie a {
  color: #CFC4B7;
  text-decoration: none;
}

.tvn_pie a:hover {
  color: #F0B267;
  text-decoration: underline;
}

.tvn_pie_marca {
  display: flex;
  align-items: center;
  gap: 11px;
  margin-bottom: 14px;
}

.tvn_pie_marca span {
  font-family: 'Bitter', Georgia, serif;
  font-size: 19px;
  color: #fff;
  font-weight: 700;
}

.tvn_pie_bajo {
  margin-top: 34px;
  padding-top: 18px;
  border-top: 1px solid #3B322C;
  display: flex;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  font-size: 14.5px;
  color: #A2968A;
}

/* ---------- Adaptación ---------- */

@media (max-width: 900px) {

  .tvn_hero_grid,
  .tvn_art_grid,
  .tvn_contacto_grid,
  .tvn_rejilla_2.tvn_rej_ancha {
    grid-template-columns: 1fr;
  }

  .tvn_hero_art {
    order: 2;
  }

  .tvn_hero_tag {
    left: 12px;
  }

  .tvn_rejilla_3 {
    grid-template-columns: repeat(2, 1fr);
  }

  .tvn_pie_grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .tvn_h1 {
    font-size: 34px;
  }

  .tvn_h2 {
    font-size: 27px;
  }
}

@media (max-width: 720px) {
  .tvn_nav_toggle {
    display: inline-flex;
  }

  .tvn_nav {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: #fff;
    border-bottom: 1px solid var(--tvn-linea);
    box-shadow: var(--tvn-sombra-alta);
    padding: 10px 24px 18px;
  }

  .tvn_nav.tvn_abierto {
    display: block;
  }

  .tvn_nav ul {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
  }

  .tvn_nav li {
    border-bottom: 1px solid var(--tvn-linea);
  }

  .tvn_nav li:last-child {
    border-bottom: 0;
  }

  .tvn_nav a {
    padding: 13px 0;
    display: block;
    border-bottom: 0;
  }

  .tvn_nav a:hover,
  .tvn_nav a[data-vigente="si"] {
    border-bottom: 0;
  }

  .tvn_utilbar_in {
    justify-content: center;
    text-align: center;
  }

  .tvn_util_place {
    display: none;
  }
}

@media (max-width: 620px) {

  .tvn_rejilla_3,
  .tvn_rejilla_2,
  .tvn_campo_fila,
  .tvn_pie_grid {
    grid-template-columns: 1fr;
  }

  body {
    font-size: 16.5px;
  }

  .tvn_h1 {
    font-size: 29px;
  }

  .tvn_sec {
    padding: 44px 0;
  }

  .tvn_hero {
    padding: 38px 0 44px;
  }

  .tvn_hero_tag {
    position: static;
    max-width: none;
    margin-top: 12px;
  }
}

@media print {

  .tvn_utilbar,
  .tvn_nav,
  .tvn_nav_toggle,
  .tvn_banda {
    display: none;
  }
}
