/* ============================================================
   PÁGINA LEGAL — templates/page-legal.php
   Aviso legal / Política de privacidad / Política de cookies.
   Prefijo: .lg-   ·   Fuente: Space Grotesk (igual que .post-content)

   Reutiliza tokens y recetas ya existentes del tema en lugar del
   juego «--os-*» del handoff de Claude Design:
     · etiqueta superior  -> misma receta que .central-eyebrow / .pr-badge
     · tarjeta            -> sombra de .block-card / .post-content
     · bloque azul + CTA  -> misma receta que blocks/cta-franja
   ============================================================ */

body.opensalud-legal {
    /* Fondo gris de documento — como .pr-page / .arc-page, pero desde body
       para que cubra también las columnas laterales del grid del tema. */
    background: var(--bg);
}

.lg-page {
    background: var(--color-white-04);
    color: var(--color-text);
    font-family: var(--font-serif);
    font-size: var(--font-size-medium);
    line-height: var(--line-height-medium);
    font-weight: var(--font-weight-400);
    min-height: 100vh;
    /* Fondo a sangre, pero el contenido limitado al ancho del header: el
       gutter crece lo necesario para que la rejilla no pase de 1600px. */
    padding: 118px max(var(--wp--custom--section--x), (100% - var(--wp--custom--layout--content-size)) / 2) var(--wp--custom--section--y-compact);
    display: grid;
    grid-template-columns: 30% 1fr;
    grid-template-rows: auto;
    gap: 0 2rem;

}

/* ── Hero ─────────────────────────────────────────────────
   Sección independiente tras get_header(), igual que .pr-hero /
   .arc-hero en el resto de plantillas PHP. Mismos estilos que
   .arc-hero (assets/css/single.css): imagen "principal" + degradado
   blanco, texto centrado, alto mínimo. <main> es grid-column: 1 / -1
   en el tema, así que ocupa todo el ancho sin necesidad de .alignfull. */
.lg-hero,
.lg-content {
    text-align: start;
    display: flex;
    /* align: arriba (un hero corto no se estira al alto del contenido).
       justify: stretch para que .lg-content llene su columna 1fr; con
       flex-start tomaba su ancho max-content y se desbordaba de la rejilla
       (y del <body>, que recorta con overflow-x: hidden). */
    align-self: flex-start;
    justify-self: stretch;
    flex-direction: column;
    font-family: var(--font-serif);
    font-size: var(--font-size-medium);
    line-height: var(--line-height-medium);
    color: var(--color-text);
    min-width: 0;
    background: var(--color-white);
    box-shadow: var(--shadow-card);
    padding: var(--pad-element);
    border-radius: var(--standard-border-radius);

}

/* single.css trae una regla global anidada ":root section { margin: auto
   !important }". Se neutraliza en los <section> propios de la plantilla para
   que .lg-hero llene su columna de la rejilla y las tarjetas no se centren. */
.lg-page section {
    margin: 0 !important;
}

.lg-hero-wrapper {
    max-width: 780px;
    margin: 0 auto 2em;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.lg-badge {
    display: inline-flex;
    align-items: center;
    column-gap: 8px;
    margin: 18px 0;
    padding: 8px 16px;
    border: 1px solid var(--wp--preset--color--transparent--blue);
    border-radius: var(--wp--custom--radius--full);
    background-color: var(--wp--preset--color--transparent--blue);
    color: var(--wp--preset--color--main-blue);
    font-size: var(--wp--preset--font-size--small);
    font-weight: var(--wp--custom--weight-700);
    text-transform: uppercase;
    letter-spacing: 0.02em;
    text-decoration: none;
}

/* Título = siempre el título de la página, en negro (sin resalte azul de
   <span>: el texto viene de get_the_title() escapado, no lleva markup). */
.lg-hero h1 {
    font-family: 'Space Grotesk', sans-serif;
    margin: 0;
    font-size: var(--wp--preset--font-size-h2);
    line-height: var(--wp--preset--line-height-h2);
    font-weight: var(--wp--custom--weight-500);
    color: var(--wp--preset--color--black);
    text-wrap: balance;
}

.lg-hero-intro {
    margin: 1em 0;
    max-width: 62ch;
    font-size: var(--wp--preset--font-size--medium);
    font-weight: var(--wp--custom--weight-400);
    line-height: var(--wp--preset--line-height--medium);
    color: var(--wp--preset--color--black);
    text-wrap: balance;
}

/* ── Layout de dos columnas ───────────────────────────────
   Mismos estilos que .post-body-wrapper (single.css), con las
   columnas invertidas: <aside> (índice) en el track fijo a la
   izquierda y <article> (secciones) en 1fr a la derecha.
   --max-width / --pad-h de single.css equivalen a estos tokens. */

/* Sin índice (fallback al editor de bloques sin <h2>): una sola columna. */
.lg-page.lg-layout--no-toc {
    grid-template-columns: 1fr;
}

.lg-toc-col {
    font-family: var(--font-serif);
    font-size: var(--font-size-medium);
    line-height: var(--line-height-medium);
    color: var(--color-text);
    min-width: 0;
    background: var(--color-white);
    position: sticky;
    top: 120px;
    border-radius: var(--standard-border-radius);
    width: 100%;
    margin-inline-start: unset;
    border: unset;
    padding: 0;
}

/* ── Índice lateral ───────────────────────────────────────── */
.lg-toc {
    padding: 0;
    border: none;
    background: unset;
    border-radius: 0;
    margin-bottom: 0;
}

.lg-toc-summary {
    list-style: none;
    display: block;
    margin: 0;
    padding: 0;
    text-transform: uppercase;
    color: var(--wp--preset--color--black);
    font-size: var(--wp--preset--font-size--small);
    font-weight: var(--wp--custom--weight-500);
    line-height: var(--wp--preset--line-height--small);
}

.lg-toc-summary::-webkit-details-marker {
    display: none;
}

.lg-toc-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.lg-toc-link {
    display: block;
    padding: 9px 14px;
    font-size: var(--wp--preset--font-size--small);
    line-height: var(--wp--preset--line-height--small);
    font-weight: var(--wp--custom--weight-400);
    color: var(--wp--preset--color--black);
    text-decoration: none;
    transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease;
}

.lg-toc-link:hover {
    text-decoration: underline;
}

.lg-toc-link.is-active {
    color: var(--wp--preset--color--main-blue);
    font-weight: var(--wp--custom--weight-500);
}

.lg-toc-link:focus-visible {
    outline: 2px solid var(--wp--preset--color--main-blue);
    outline-offset: 2px;
}

/* ── Contenido ────────────────────────────────────────────── */
.lg-content article {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 60px;
}

/* El ancla no queda bajo el menú al saltar a una sección. */
.lg-content article [id] {
    scroll-margin-top: 120px;
}

.lg-card {
    background: var(--wp--preset--color--white);
    border-radius: var(--wp--custom--radius--lg);
    box-shadow: var(--shadow-card);
}

.lg-section-head {
    display: flex;
    align-items: baseline;
    gap: 18px;
    margin-bottom: 20px;
}

.lg-section-title,
.lg-section-number {
    margin: 0;
    font-size: var(--wp--preset--font-size-h3);
    line-height: var(--wp--preset--line-height-h3);
    font-weight: var(--wp--custom--weight-700);
    letter-spacing: -0.01em;
    color: var(--wp--preset--color--black);
}

/* ── Prosa ────────────────────────────────────────────────── */
.lg-prose {
    display: flex;
    flex-direction: column;
    gap: 20px;
    max-width: 92ch;
    font-size: var(--wp--preset--font-size--medium);
    line-height: 1.75;
    color: var(--wp--preset--color--black);
    text-wrap: pretty;
}

.lg-prose>* {
    margin: 0;
}

.lg-prose h2,
.lg-prose h3 {
    font-size: var(--wp--preset--font-size-h5);
    line-height: var(--wp--preset--line-height-h5);
    font-weight: var(--wp--custom--weight-700);
    margin-top: 8px;
}

.lg-prose h4 {
    font-size: var(--wp--preset--font-size-h6);
    line-height: var(--wp--preset--line-height-h6);
    font-weight: var(--wp--custom--weight-700);
}

.lg-prose ul,
.lg-prose ol {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding-inline-start: 1.25em;
}

.lg-prose li::marker {
    color: var(--wp--preset--color--black);
    font-weight: var(--wp--custom--weight-700);
}

.lg-prose a {
    color: var(--wp--preset--color--main-blue);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.lg-prose a:hover {
    color: var(--wp--preset--color--hover-blue);
}

.lg-prose strong {
    font-weight: var(--wp--custom--weight-700);
}

/* ── Tablas y listas de definición ───────────────────────────
   Un único estilo para todos los datos tabulados de la plantilla, sea cual
   sea el marcado — <table> (campo «Tabla» o editor) o <dl> (editor /
   contenido pegado): recuadro con esquinas var(--wp--custom--radius--sm),
   líneas de rejilla var(--color-border), columna de etiquetas / cabecera
   sombreada (white-02) y sin zebra. */
.lg-table-wrap,
.lg-prose figure.wp-block-table {
    margin: 0;
    overflow-x: auto;
    overflow-y: hidden;
}

/* Recuadro. */
.lg-table,
.lg-prose table,
.lg-prose dl {
    width: 100%;
    margin: 0;
    border: 1px solid var(--color-border);
    border-radius: var(--wp--custom--radius--sm);
    overflow: hidden;
    background-color: var(--color-white);
    font-size: var(--font-size-small);
    line-height: var(--line-height-small);
}

.lg-table,
.lg-prose table {
    border-collapse: separate;
    border-spacing: 0;
}

/* <dl> = rejilla de 2 columnas (etiqueta / valor); el «gap» de 1px sobre
   fondo var(--color-border) dibuja las líneas de rejilla. La 1ª columna se
   ajusta a su contenido pero nunca pasa del 35 % (etiquetas largas envuelven). */
.lg-prose dl {
    display: grid;
    grid-template-columns: fit-content(35%) 1fr;
    gap: 1px;
    background-color: var(--color-border);
}

/* Separación cuando hay texto encima. */
.lg-prose+.lg-table-wrap {
    margin-top: var(--wp--preset--spacing--30);
}

/* Celdas: <th>/<td> y <dt>/<dd>. */
.lg-table th,
.lg-table td,
.lg-prose th,
.lg-prose td,
.lg-prose dt,
.lg-prose dd {
    margin: 0;
    padding: var(--wp--preset--spacing--30);
    text-align: left;
    vertical-align: top;
    color: var(--color-text);
    font-weight: var(--font-weight-400);
    background-color: var(--color-white);
    overflow-wrap: break-word;
}

/* Líneas de rejilla de la <table> (el <dl> las hace con el gap). */
.lg-table th,
.lg-table td,
.lg-prose table th,
.lg-prose table td {
    border-top: 1px solid var(--color-border);
    border-left: 1px solid var(--color-border);
}

.lg-table tr> :first-child,
.lg-prose table tr> :first-child {
    border-left: 0;
}

.lg-table--pares tbody tr:first-child>*,
.lg-table thead tr:first-child>*,
.lg-prose table tr:first-child>* {
    border-top: 0;
}

/* Columna de etiquetas / fila de cabecera, sombreada. */
.lg-table--pares th[scope="row"],
.lg-table thead th,
.lg-prose table thead th,
.lg-prose table tr:first-child th,
.lg-prose dt {
    background-color: var(--color-white-02);
    font-weight: var(--font-weight-700);
    color: var(--color-text);
}

/* Enlaces. */
.lg-table a,
.lg-prose table a,
.lg-prose dl a {
    color: var(--color-main-blue);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.lg-table a:hover,
.lg-prose table a:hover,
.lg-prose dl a:hover {
    color: var(--color-text);
}

/* ── Responsive ───────────────────────────────────────────── */

@media (min-width: 1231px) {

    /* Dos columnas: el índice va siempre desplegado y su cabecera no
       se puede plegar. */
    .lg-toc-summary {
        pointer-events: none;
    }
}

/* Colapso a una columna (mismo punto que .post-body-wrapper): el hero y el
   contenido ocupan todo el ancho, y el índice pasa a acordeón (<details>)
   sobre el contenido. */
@media (max-width: 1230px) {

    article {
        padding: 0;
    }

    .lg-page {
        grid-template-columns: 1fr;
        gap: 2.5rem 0;
    }

    .lg-hero,
    .lg-content {
        place-self: stretch;
        width: 100%;
    }

    .lg-toc-col {
        position: static;
    }

    .lg-toc {
        border: 1px solid var(--wp--preset--color--grey-05);
        border-radius: var(--wp--custom--radius--sm);
        background: var(--wp--preset--color--white);
        padding: 2px 6px;
    }

    .lg-toc-summary {
        margin: 0;
        padding: 12px 10px;
        cursor: pointer;
    }

    .lg-toc[open] .lg-toc-summary {
        margin-bottom: 6px;
    }

    .lg-toc-list {
        padding: 0 4px 8px;
    }
}

@media (max-width: 920px) {

    /* Igual que .arc-hero en móvil: se libera el alto fijo. */
    .lg-hero,
    .lg-content {
        padding: var(--wp--custom--section--y-compact-mobile) var(--wp--custom--section--x-mobile);
        min-height: auto;
    }

    .lg-hero h1 {
        font-size: var(--wp--preset--font-size-h2);
    }

    .lg-page {
        padding-left: var(--wp--custom--section--x-mobile);
        /* 20px (= --pad-h móvil) */
        padding-right: var(--wp--custom--section--x-mobile);
        padding-top: 70px;
    }

    .lg-card {
        padding: 0px
    }
}

@media (max-width: 768px) {
    .lg-badge {
        text-wrap: balance;
    }

    .lg-hero h1 {
        font-size: var(--wp--preset--font-size-h4);
    }
}

@media (max-width: 600px) {

    /* Celdas más compactas. */
    .lg-table th,
    .lg-table td,
    .lg-prose th,
    .lg-prose td,
    .lg-prose dt,
    .lg-prose dd {
        padding: var(--wp--preset--spacing--20);
    }

    /* Tabla pegada a mano sin envoltorio: que pueda hacer scroll horizontal. */
    .lg-prose>table {
        display: block;
        overflow-x: auto;
    }

    .lg-section-head {
        gap: 10px;
    }
}

/* ── Impresión ────────────────────────────────────────────── */
@media print {
    body.opensalud-legal {
        background: #fff;
    }

    .top-bar,
    #site-header,
    .header-general,
    footer,
    .lg-toc-col {
        display: none !important;
    }

    .lg-hero {
        display: block;
        min-height: 0;
        padding: 0 0 16px;
        border-bottom: 1px solid #000;
        background: none;
        text-align: left;
    }

    .lg-page {
        display: block;
        max-width: none;
        padding: 0;
    }

    .lg-card {
        box-shadow: none;
        border: 1px solid #ccc;
        border-radius: 0;
        padding: 16px 0;
        break-inside: avoid;
    }

    .lg-prose,
    .lg-table th,
    .lg-table td {
        font-size: 12pt;
    }

    .lg-content article [id] {
        scroll-margin-top: 0;
    }
}