.legal { padding: var(--s-7) 0 var(--s-8); }
.legal-in { max-width: 780px; display: grid; gap: var(--s-5); }
.legal-head { display: grid; gap: var(--s-2); }
.legal-head h1 { font-size: clamp(28px, 4vw, 40px); font-weight: 750; letter-spacing: -0.01em; }
.legal-meta { color: var(--muted); font-size: var(--t-sm); }
.legal-aviso { display: flex; gap: var(--s-3); align-items: flex-start; padding: var(--s-3) var(--s-4); border-radius: var(--r); border: 1px solid color-mix(in srgb, var(--warn) 40%, transparent); background: color-mix(in srgb, var(--warn) 9%, transparent); color: var(--text); font-size: var(--t-sm); font-weight: 600; }
.legal-aviso svg { width: 18px; height: 18px; flex: none; margin-top: 1px; color: var(--warn); }
.legal-texto { display: grid; gap: var(--s-6); }
.legal-texto section { display: grid; gap: var(--s-3); scroll-margin-top: 88px; }
.legal-texto h2 { font-size: var(--t-xl); font-weight: 700; }
.legal-texto h3 { font-size: var(--t-md); font-weight: 650; }
.legal-texto p, .legal-texto li { color: var(--text-2); line-height: 1.65; }
.legal-texto ul, .legal-texto ol { margin: 0; padding-left: 22px; display: grid; gap: 6px; }
.legal-texto strong { color: var(--text); }
.legal-tabla { width: 100%; border-collapse: collapse; font-size: var(--t-sm); }
.legal-tabla th, .legal-tabla td { text-align: left; vertical-align: top; padding: 10px 12px; border-top: 1px solid var(--border); }
.legal-tabla thead th { border-top: 0; color: var(--muted); font-size: var(--t-xs); text-transform: uppercase; letter-spacing: 0.08em; }
.legal-tabla-wrap { overflow-x: auto; padding: var(--s-2) var(--s-2); }

.libro { padding: var(--s-5); display: grid; gap: var(--s-5); }
.libro-proveedor { display: grid; gap: 4px; padding: var(--s-3) var(--s-4); border-radius: var(--r); background: var(--surface-2); font-size: var(--t-sm); color: var(--text-2); }
.libro-proveedor b { color: var(--text); }
.libro fieldset { border: 0; margin: 0; padding: 0; display: grid; gap: var(--s-4); grid-template-columns: 1fr; }
.libro legend { padding: 0; margin-bottom: var(--s-3); font-size: var(--t-lg); font-weight: 700; display: flex; align-items: center; gap: var(--s-2); }
.libro legend span { width: 26px; height: 26px; border-radius: 50%; display: inline-grid; place-items: center; background: var(--brand-soft); color: var(--brand-text); font-size: var(--t-xs); }
.libro .wide { grid-column: 1 / -1; }
.libro textarea { font: inherit; color: inherit; }
.libro textarea.input { height: auto; min-height: 120px; padding: 12px 14px; resize: vertical; line-height: 1.5; }
.libro select.input { appearance: auto; }
.libro small { color: var(--muted); font-size: var(--t-xs); }
.opciones { display: grid; gap: var(--s-3); grid-template-columns: 1fr; }
.opcion { display: flex; gap: var(--s-3); align-items: flex-start; padding: var(--s-3) var(--s-4); border: 1px solid var(--border); border-radius: var(--r); background: var(--bg-elev); cursor: pointer; transition: border-color var(--d-fast), box-shadow var(--d-fast); }
.opcion:has(input:checked) { border-color: var(--brand); box-shadow: 0 0 0 3px var(--brand-soft); }
.opcion input { margin-top: 3px; accent-color: var(--brand); width: 17px; height: 17px; flex: none; }
.opcion b { display: block; color: var(--text); }
.opcion small { display: block; margin-top: 2px; line-height: 1.45; }
.casilla { display: flex; gap: var(--s-3); align-items: flex-start; font-size: var(--t-sm); color: var(--text-2); line-height: 1.5; cursor: pointer; }
.casilla input { margin-top: 2px; accent-color: var(--brand); width: 18px; height: 18px; flex: none; }
.libro-acciones { display: grid; gap: var(--s-3); }
.libro-err { color: var(--danger); font-size: var(--t-sm); min-height: 1em; }

.constancia { scroll-margin-top: 88px; padding: var(--s-6) var(--s-5); display: grid; gap: var(--s-4); text-align: center; justify-items: center; }
.constancia-ok { width: 56px; height: 56px; border-radius: 50%; display: grid; place-items: center; background: var(--accent-soft); color: var(--accent); }
.constancia-ok svg { width: 28px; height: 28px; }
.constancia-num { font-family: var(--mono); font-size: clamp(24px, 6vw, 34px); font-weight: 700; color: var(--brand-text); letter-spacing: 0.02em; }
.constancia dl { margin: 0; display: grid; gap: var(--s-2); width: 100%; max-width: 460px; text-align: left; }
.constancia dl div { display: flex; justify-content: space-between; gap: var(--s-4); padding: var(--s-2) 0; border-top: 1px solid var(--border); font-size: var(--t-sm); }
.constancia dt { color: var(--muted); }
.constancia dd { margin: 0; font-weight: 600; color: var(--text); text-align: right; overflow-wrap: anywhere; }
.constancia .btn { margin-top: var(--s-2); }

@media (min-width: 640px) {
  .libro fieldset { grid-template-columns: 1fr 1fr; }
  .opciones { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px) {
  .libro { padding: var(--s-4); }
}
@media print {
  .nav, .footer, .constancia .btn { display: none !important; }
}
.legal .small { font-size: var(--t-sm); }
.footer-links a[aria-current="page"] { color: var(--text); font-weight: 600; }
