/*
 * Centro legal: documentos generados por inc/legal.php.
 * Usa los mismos tokens, tipografías y piezas que el resto del sitio (style.css).
 */

.isalud-legal-wrap { box-sizing: border-box; width: 100%; max-width: 72rem; margin-inline: auto; padding-inline: var(--wp--preset--spacing--40); }

/* Encabezado */
.isalud-legal-hero {
	padding-block: var(--wp--preset--spacing--70) var(--wp--preset--spacing--60);
	background:
		radial-gradient(50rem 26rem at 95% -10%, rgba(33, 115, 208, 0.16), transparent 70%),
		radial-gradient(30rem 20rem at 0% 100%, rgba(20, 184, 166, 0.08), transparent 70%),
		linear-gradient(180deg, #fff, var(--paper));
	border-bottom: 1px solid var(--line);
}
.isalud-legal-hero__grid { display: grid; gap: var(--wp--preset--spacing--50); align-items: center; }
@media (min-width: 900px) { .isalud-legal-hero__grid { grid-template-columns: 1fr 21rem; gap: var(--wp--preset--spacing--70); } }
.isalud-legal-hero__text > * { margin: 0; }
.isalud-legal-hero__text > * + * { margin-top: 1rem; }
.isalud-legal-hero .isalud-crumb a { text-decoration: none; }
.isalud-legal-title { font-size: clamp(2rem, 1.4rem + 2.4vw, 3.2rem); font-weight: 800; line-height: 1.08; letter-spacing: -0.025em; max-width: 20ch; }
.isalud-legal-hero .isalud-lead { max-width: 44rem; }

.isalud-legal-meta { position: relative; display: grid; gap: 1rem; padding: 1.5rem; background: #fff; border: 1px solid var(--line); border-radius: var(--radius-l); box-shadow: var(--lift); }
.isalud-legal-meta__ico { --ico: 1.4rem; display: grid; place-items: center; width: 3rem; height: 3rem; border-radius: 0.9rem; color: #fff; background: linear-gradient(140deg, var(--wp--preset--color--sky), var(--primary) 55%, var(--wp--preset--color--primary-dark)); box-shadow: 0 10px 22px -12px rgba(26, 95, 191, 0.9); }
.isalud-legal-meta dl { margin: 0; display: grid; gap: 0.65rem; }
.isalud-legal-meta dl > div { display: grid; grid-template-columns: 7.5rem 1fr; gap: 0.75rem; padding-bottom: 0.65rem; border-bottom: 1px dashed var(--line); }
.isalud-legal-meta dl > div:last-child { border-bottom: 0; padding-bottom: 0; }
.isalud-legal-meta dt { font-size: 0.82rem; color: var(--muted); }
.isalud-legal-meta dd { margin: 0; font-weight: 600; font-size: 0.92rem; }
.isalud-legal-meta__help { margin: 0; font-size: 0.88rem; color: var(--muted); }

/* Cuerpo: índice lateral y documento */
.isalud-legal-body { padding-block: var(--wp--preset--spacing--60) var(--wp--preset--spacing--70); }
.isalud-legal-layout { display: grid; gap: var(--wp--preset--spacing--50); }
@media (min-width: 1024px) { .isalud-legal-layout.has-toc { grid-template-columns: 16rem minmax(0, 1fr); gap: var(--wp--preset--spacing--70); align-items: start; } }

.isalud-legal-toc { padding: 1.1rem 1.25rem; background: #fff; border: 1px solid var(--line); border-radius: var(--radius-m); }
@media (min-width: 1024px) { .isalud-legal-toc { position: sticky; top: 6.5rem; max-height: calc(100vh - 8rem); overflow: auto; } }
.isalud-legal-toc__title { margin: 0 0 0.6rem; font: 700 0.95rem/1.3 var(--wp--preset--font-family--display); }
.isalud-legal-toc ol { margin: 0; padding: 0; list-style: none; counter-reset: toc; display: grid; gap: 0.15rem; }
.isalud-legal-toc li { counter-increment: toc; margin: 0; }
.isalud-legal-toc a { display: grid; grid-template-columns: 1.6rem 1fr; gap: 0.35rem; padding: 0.4rem 0.5rem; border-radius: var(--radius-s); font-size: 0.88rem; line-height: 1.35; color: var(--ink); text-decoration: none; }
.isalud-legal-toc a::before { content: counter(toc); font-weight: 700; color: var(--primary); font-variant-numeric: tabular-nums; }
.isalud-legal-toc a:hover { background: var(--wash); color: var(--primary); }
@media (max-width: 1023px) { .isalud-legal-toc ol { grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr)); } }

.isalud-legal-article { max-width: 48rem; font-size: 1.02rem; line-height: 1.75; }
.isalud-legal-article > * { margin: 0; }
.isalud-legal-article > * + * { margin-top: var(--wp--preset--spacing--60); }
.isalud-legal-layout:not(.has-toc) .isalud-legal-article { max-width: none; }

.isalud-legal-summary { padding: 1.25rem 1.5rem; border-radius: var(--radius-m); background: linear-gradient(160deg, #e9f8f4, #eef5ff); border: 1px solid #c8ebe2; }
.isalud-legal-summary p { margin: 0; }
.isalud-legal-summary__title { margin-bottom: 0.4rem !important; font: 700 0.95rem/1.3 var(--wp--preset--font-family--display); color: var(--mint-ink); }

.isalud-legal-sec { scroll-margin-top: 6.5rem; }
.isalud-legal-sec > * { margin: 0; }
.isalud-legal-sec > * + * { margin-top: 0.9rem; }
.isalud-legal-sec h2 { display: flex; align-items: center; gap: 0.75rem; font-size: clamp(1.3rem, 1.1rem + 0.8vw, 1.65rem); font-weight: 800; line-height: 1.2; }
.isalud-legal-num { flex: none; display: grid; place-items: center; width: 2.2rem; height: 2.2rem; border-radius: 0.7rem; background: var(--wash); color: var(--primary); font: 800 0.95rem/1 var(--wp--preset--font-family--display); }
.isalud-legal-sec h3 { font-size: 1.1rem; margin-top: 1.4rem; }
.isalud-legal-sec ul, .isalud-legal-sec ol { padding-left: 1.25rem; display: grid; gap: 0.4rem; }
.isalud-legal-sec li { margin: 0; }
.isalud-legal-sec a { color: var(--primary); }
.isalud-legal-sec + .isalud-legal-sec { padding-top: var(--wp--preset--spacing--50); border-top: 1px solid var(--line); }

/* Tablas */
.isalud-legal-table { width: 100%; border-collapse: separate; border-spacing: 0; overflow: hidden; background: #fff; border: 1px solid var(--line); border-radius: var(--radius-m); font-size: 0.93rem; line-height: 1.5; }
.isalud-legal-table th, .isalud-legal-table td { padding: 0.8rem 1rem; text-align: left; vertical-align: top; border-top: 1px solid var(--line); }
.isalud-legal-table thead th { border-top: 0; background: #f3f7fd; font: 700 0.85rem/1.3 var(--wp--preset--font-family--display); color: var(--muted); }
.isalud-legal-table tbody td:first-child { font-weight: 600; color: var(--ink); }
@media (max-width: 720px) {
	.isalud-legal-table { table-layout: fixed; font-size: 0.86rem; }
	.isalud-legal-table th, .isalud-legal-table td { padding: 0.6rem; overflow-wrap: anywhere; }
}

/* Centro legal: tarjetas de documentos */
.isalud-legal-doc-grid { display: grid; gap: 0.9rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 19rem), 1fr)); }
.isalud-legal-doc-card { display: grid; grid-template-columns: 2.75rem 1fr; column-gap: 0.9rem; row-gap: 0.25rem; padding: 1.15rem 1.25rem; background: #fff; border: 1px solid var(--line); border-radius: var(--radius-m); text-decoration: none; color: var(--ink) !important; transition: transform 0.2s, box-shadow 0.2s, border-color 0.2s; }
.isalud-legal-doc-card:hover { transform: translateY(-3px); border-color: var(--primary); box-shadow: var(--lift); }
.isalud-legal-doc-card__ico { --ico: 1.25rem; grid-row: span 2; display: grid; place-items: center; width: 2.75rem; height: 2.75rem; border-radius: 0.8rem; background: var(--wash); color: var(--primary); }
.isalud-legal-doc-card:nth-child(4n+2) .isalud-legal-doc-card__ico { background: var(--mint); color: var(--mint-ink); }
.isalud-legal-doc-card:nth-child(4n+3) .isalud-legal-doc-card__ico { background: #ecebff; color: #4338ca; }
.isalud-legal-doc-card:nth-child(4n+4) .isalud-legal-doc-card__ico { background: #fff1e2; color: #9a4a06; }
.isalud-legal-doc-card strong { font: 700 1.02rem/1.3 var(--wp--preset--font-family--display); }
.isalud-legal-doc-card span:last-child { font-size: 0.9rem; line-height: 1.5; color: var(--muted); }

/* Datos del responsable dentro de los documentos */
.isalud-legal-sec ul:has(> li > strong:first-child) { list-style: none; padding: 1rem 1.25rem; gap: 0.5rem; background: #fff; border: 1px solid var(--line); border-radius: var(--radius-m); }

/* Otros documentos */
.isalud-legal-related { padding-block: var(--wp--preset--spacing--60); background: var(--wash); border-top: 1px solid var(--line); }
.isalud-legal-related h2 { margin: 0 0 1.25rem; font-size: var(--wp--preset--font-size--subtitle); font-weight: 800; }
.isalud-legal-related .isalud-lead { margin: 0; }
.isalud-legal-cards { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.75rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 13rem), 1fr)); }
.isalud-legal-cards li { margin: 0; }
.isalud-legal-cards a { display: flex; align-items: center; gap: 0.75rem; height: 100%; box-sizing: border-box; padding: 0.85rem 1rem; background: #fff; border: 1px solid var(--line); border-radius: var(--radius-m); color: var(--ink); text-decoration: none; font-family: var(--wp--preset--font-family--display); transition: border-color 0.2s, transform 0.2s; }
.isalud-legal-cards a:hover { border-color: var(--primary); transform: translateY(-2px); }
.isalud-legal-cards__ico { --ico: 1.1rem; flex: none; display: grid; place-items: center; width: 2.25rem; height: 2.25rem; border-radius: 0.65rem; background: var(--wash); color: var(--primary); }
.isalud-legal-cards strong { font-size: 0.95rem; line-height: 1.3; }

@media print {
	.isalud-legal-toc, .isalud-legal-related, .isalud-header-wrap, .isalud-footer, .isalud-whatsapp, .isalud-cookies { display: none !important; }
	.isalud-legal-layout.has-toc { grid-template-columns: 1fr; }
}
