/* =========================================================
   TARVOS · LEGAL MOBILE HARDENING · V22 · 2026-09-20
   Capa final para documentos legales propios y para el HTML dinámico
   ajustes de compatibilidad legal.
   ========================================================= */

body.tarvos-legal-request {
  overflow-x: hidden !important;
}

body.tarvos-legal-request :is(#main, .site-main, .content-area, .ct-container-full) {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  overflow-x: clip !important;
}

body.tarvos-legal-request :is(#main, .site-main, .content-area) :where(main, article, section, div, nav, aside, header) {
  min-width: 0;
}

body.tarvos-legal-request :is(#main, .site-main, .content-area) :where(img, svg, video, iframe) {
  max-width: 100%;
  height: auto;
}

body.tarvos-legal-request :is(#main, .site-main, .content-area) :where(h1, h2, h3, h4, p, li, dd, dt, address, th, td, a, code) {
  overflow-wrap: anywhere;
  word-break: normal;
}

/* Las anclas de encabezado de algunos generadores legales no deben competir
   visualmente con el título. */
body.tarvos-legal-request :is(#main, .site-main, .content-area) :is(h2, h3, h4) :is(
  .anchor-link,
  .heading-anchor,
  .header-anchor,
  [class*="heading-anchor"],
  [class*="header-anchor"]
) {
  display: none !important;
}

/* Cualquier inventario/tablas del plugin debe desplazarse dentro de sí mismo,
   nunca ensanchar el viewport completo. */
body.tarvos-legal-request :is(#main, .site-main, .content-area) :where(.legal-table-wrap, [class*="table-wrap"], [class*="table-scroll"]) {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  overflow-x: auto !important;
  overscroll-behavior-inline: contain;
  -webkit-overflow-scrolling: touch;
}

body.tarvos-legal-request :is(#main, .site-main, .content-area) table {
  max-width: 100% !important;
}

@media (max-width: 760px) {
  /* La franja de migas termina y el documento legal empieza de inmediato. */
  body.tarvos-legal-request .tarvos-page-context {
    margin-bottom: 0 !important;
  }

  /* Neutraliza min-heights/paddings de distintas generaciones del sistema legal
     y del HTML dinámico del plugin. */
  body.tarvos-legal-request :is(#main, .site-main, .content-area) :is(
    .tarvos-institutional-hero,
    .tarvos-legal-hero,
    [class*="legal-hero"],
    [class*="tvp-legal"][class*="hero"]
  ) {
    width: min(100% - 1.5rem, 44rem) !important;
    min-height: 0 !important;
    margin: 0 auto !important;
    padding: 2rem 0 2.35rem !important;
  }

  body.tarvos-legal-request :is(#main, .site-main, .content-area) :is(
    .tarvos-institutional-hero h1,
    .tarvos-legal-hero h1,
    [class*="legal-hero"] h1,
    [class*="tvp-legal"][class*="hero"] h1
  ) {
    max-width: 12ch !important;
    margin-inline: auto !important;
    font-size: clamp(2.65rem, 13vw, 3.65rem) !important;
    line-height: .96 !important;
    letter-spacing: -.055em !important;
    text-wrap: balance;
  }

  body.tarvos-legal-request :is(#main, .site-main, .content-area) :is(
    .tarvos-legal-meta,
    [class*="legal-meta"],
    [class*="tvp-legal"][class*="meta"]
  ) {
    margin: 0 !important;
    padding: 0 0 1.4rem !important;
  }

  /* Navegación entre documentos: compacta, sin cinco botones gigantes apilados. */
  body.tarvos-legal-request :is(#main, .site-main, .content-area) :is(
    .legal-related,
    [class*="legal-related"],
    nav[aria-label*="legal" i]:not(.tarvos-legal-list)
  ) {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: .55rem !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
  }

  body.tarvos-legal-request :is(#main, .site-main, .content-area) :is(
    .legal-related,
    [class*="legal-related"],
    nav[aria-label*="legal" i]:not(.tarvos-legal-list)
  ) a {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 46px !important;
    padding: .7rem .75rem !important;
    text-align: center !important;
    line-height: 1.15 !important;
  }

  /* El índice deja de ser sticky y nunca reserva altura fantasma. */
  body.tarvos-legal-request :is(#main, .site-main, .content-area) :is(
    .legal-layout,
    [class*="legal-layout"],
    [class*="tvp-legal"][class*="layout"]
  ) {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 1.25rem !important;
    width: min(100% - 1.5rem, 44rem) !important;
    max-width: 100% !important;
    margin: 0 auto !important;
    padding: 0 0 3.5rem !important;
  }

  body.tarvos-legal-request :is(#main, .site-main, .content-area) :is(
    .legal-index,
    .legal-toc,
    [class*="legal-index"],
    [class*="legal-toc"],
    [class*="tvp-legal"][class*="toc"],
    nav[aria-label*="Índice" i]
  ) {
    position: static !important;
    inset: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 0 !important;
    max-height: none !important;
    height: auto !important;
    margin: 0 !important;
    padding: 1rem !important;
    overflow: visible !important;
  }

  body.tarvos-legal-request :is(#main, .site-main, .content-area) :is(
    .legal-index,
    .legal-toc,
    [class*="legal-index"],
    [class*="legal-toc"],
    [class*="tvp-legal"][class*="toc"],
    nav[aria-label*="Índice" i]
  ) :is(ol, ul) {
    columns: 1 !important;
    width: 100% !important;
    margin: 0 !important;
  }

  /* Documento: ancho real del móvil, sin columnas invisibles ni márgenes heredados. */
  body.tarvos-legal-request :is(#main, .site-main, .content-area) :is(
    .legal-document,
    [class*="legal-document"],
    [class*="tvp-legal"][class*="document"],
    article
  ) {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 1.15rem !important;
    overflow: visible !important;
  }

  body.tarvos-legal-request :is(#main, .site-main, .content-area) article section,
  body.tarvos-legal-request :is(#main, .site-main, .content-area) .legal-document section {
    min-height: 0 !important;
    margin-top: 2rem !important;
    padding-top: 1.65rem !important;
  }

  body.tarvos-legal-request :is(#main, .site-main, .content-area) article section:first-child,
  body.tarvos-legal-request :is(#main, .site-main, .content-area) .legal-document section:first-child {
    margin-top: 0 !important;
    padding-top: 0 !important;
  }

  body.tarvos-legal-request :is(#main, .site-main, .content-area) :is(article, .legal-document) h2 {
    max-width: 100% !important;
    margin-bottom: .8rem !important;
    font-size: clamp(1.7rem, 8.5vw, 2.15rem) !important;
    line-height: 1.03 !important;
    letter-spacing: -.045em !important;
    text-wrap: pretty !important;
  }

  body.tarvos-legal-request :is(#main, .site-main, .content-area) :is(article, .legal-document) h3 {
    font-size: 1.18rem !important;
    line-height: 1.18 !important;
  }

  body.tarvos-legal-request :is(#main, .site-main, .content-area) :is(article, .legal-document) :where(p, li, dd, dt, address) {
    max-width: 100% !important;
    font-size: 1rem !important;
    line-height: 1.67 !important;
  }

  body.tarvos-legal-request :is(#main, .site-main, .content-area) code {
    max-width: 100% !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
  }

  /* Si el plugin genera tablas sin wrapper, la propia tabla se convierte en
     contenedor horizontal en vez de forzar el ancho del body. */
  body.tarvos-legal-request :is(#main, .site-main, .content-area) table {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
    -webkit-overflow-scrolling: touch;
  }

  body.tarvos-legal-request :is(#main, .site-main, .content-area) table :is(th, td) {
    min-width: 9.5rem;
    padding: .8rem .75rem !important;
    font-size: .92rem !important;
    line-height: 1.5 !important;
    vertical-align: top !important;
    overflow-wrap: anywhere !important;
  }

  body.tarvos-legal-request :is(#main, .site-main, .content-area) table :is(th, td):first-child {
    min-width: 8rem;
  }
}

@media (max-width: 390px) {
  body.tarvos-legal-request :is(#main, .site-main, .content-area) :is(
    .legal-related,
    [class*="legal-related"],
    nav[aria-label*="legal" i]:not(.tarvos-legal-list)
  ) {
    grid-template-columns: 1fr !important;
  }
}


/* =========================================================
   CENTRO LEGAL · PORTADA MÓVIL V22
   El listado de documentos es contenido principal, no una navegación de pills.
   ========================================================= */
@media (max-width: 760px) {
  body.tarvos-legal-request .tarvos-legal-page--centro-legal .tarvos-legal-documents {
    padding: 1rem 0 3.75rem !important;
  }

  body.tarvos-legal-request .tarvos-legal-page--centro-legal .tarvos-institutional-shell {
    width: min(100% - 2rem, 44rem) !important;
    max-width: 100% !important;
    margin-inline: auto !important;
  }

  body.tarvos-legal-request .tarvos-legal-page--centro-legal .tarvos-institutional-heading {
    max-width: 100% !important;
    margin: 0 0 1.65rem !important;
    text-align: left !important;
  }

  body.tarvos-legal-request .tarvos-legal-page--centro-legal .tarvos-institutional-heading .tarvos-institutional-kicker {
    margin-bottom: .65rem !important;
    font-size: .78rem !important;
    line-height: 1.25 !important;
  }

  body.tarvos-legal-request .tarvos-legal-page--centro-legal .tarvos-institutional-heading h2 {
    max-width: 10.5ch !important;
    margin: 0 !important;
    font-size: clamp(2.55rem, 12.5vw, 3.55rem) !important;
    line-height: .98 !important;
    letter-spacing: -.055em !important;
    text-wrap: balance !important;
  }

  body.tarvos-legal-request .tarvos-legal-page--centro-legal .tarvos-institutional-heading > p:last-child {
    max-width: 32rem !important;
    margin: 1.15rem 0 0 !important;
    font-size: 1.04rem !important;
    line-height: 1.62 !important;
  }

  body.tarvos-legal-request .tarvos-legal-page--centro-legal .tarvos-legal-list {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    border-top: 1px solid #dfe4ed !important;
    overflow: visible !important;
  }

  body.tarvos-legal-request .tarvos-legal-page--centro-legal .tarvos-legal-list > a {
    display: grid !important;
    grid-template-columns: 2.4rem minmax(0, 1fr) 1.75rem !important;
    grid-template-rows: auto !important;
    column-gap: .8rem !important;
    row-gap: 0 !important;
    align-items: center !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 1.25rem .15rem !important;
    border: 0 !important;
    border-bottom: 1px solid #e3e7ef !important;
    border-radius: 0 !important;
    background: #fff !important;
    box-shadow: none !important;
    text-align: left !important;
    overflow: visible !important;
  }

  body.tarvos-legal-request .tarvos-legal-page--centro-legal .tarvos-legal-list > a > span {
    grid-column: 1 !important;
    grid-row: 1 !important;
    align-self: start !important;
    padding-top: .15rem !important;
    color: #7247f5 !important;
    font-size: .76rem !important;
    font-weight: 900 !important;
    line-height: 1.2 !important;
    letter-spacing: .08em !important;
    white-space: nowrap !important;
  }

  body.tarvos-legal-request .tarvos-legal-page--centro-legal .tarvos-legal-list > a > div {
    display: block !important;
    grid-column: 2 !important;
    grid-row: 1 !important;
    min-width: 0 !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  body.tarvos-legal-request .tarvos-legal-page--centro-legal .tarvos-legal-list > a strong {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    color: #11162a !important;
    font-size: 1.08rem !important;
    font-weight: 850 !important;
    line-height: 1.22 !important;
    letter-spacing: -.02em !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    hyphens: none !important;
  }

  body.tarvos-legal-request .tarvos-legal-page--centro-legal .tarvos-legal-list > a small {
    display: block !important;
    width: 100% !important;
    margin: .42rem 0 0 !important;
    color: #647086 !important;
    font-size: .92rem !important;
    line-height: 1.48 !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
  }

  body.tarvos-legal-request .tarvos-legal-page--centro-legal .tarvos-legal-list > a > b {
    display: block !important;
    grid-column: 3 !important;
    grid-row: 1 !important;
    align-self: center !important;
    justify-self: end !important;
    margin: 0 !important;
    color: #7247f5 !important;
    font-size: 1.35rem !important;
    line-height: 1 !important;
  }

  body.tarvos-legal-request .tarvos-legal-page--centro-legal .tarvos-legal-company {
    padding-block: 3.25rem 4rem !important;
  }

  body.tarvos-legal-request .tarvos-legal-page--centro-legal .tarvos-legal-company__grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 1.5rem !important;
  }
}

@media (max-width: 380px) {
  body.tarvos-legal-request .tarvos-legal-page--centro-legal .tarvos-institutional-shell {
    width: min(100% - 1.35rem, 44rem) !important;
  }

  body.tarvos-legal-request .tarvos-legal-page--centro-legal .tarvos-legal-list > a {
    grid-template-columns: 2rem minmax(0, 1fr) 1.4rem !important;
    column-gap: .65rem !important;
  }

  body.tarvos-legal-request .tarvos-legal-page--centro-legal .tarvos-legal-list > a strong {
    font-size: 1.02rem !important;
  }
}
