/* Lex Total: azul tinta y latón sobre papel. */
:root { --tinta:#14263f; --tinta-2:#2b4366; --laton:#b8893b; --laton-claro:#d9b36a; --papel:#f5f2ec; --blanco:#fff; --gris:#5b6474; --linea:#e2ddd2; --rojo:#a3352b; --verde:#2c6e49; }
* { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; }
body { margin:0; font-family:"Segoe UI",system-ui,-apple-system,Arial,sans-serif; font-size:17px; line-height:1.6; color:var(--tinta); background:var(--papel); }
a { color:var(--tinta-2); text-underline-offset:3px; }
a:hover { color:var(--laton); }
h1 { font-size:1.7rem; line-height:1.25; margin:.2em 0 .5em; }
h2 { font-size:1.15rem; margin:1.8em 0 .6em; }
main { max-width:900px; margin:0 auto; padding:0 16px 40px; }

.cab { display:flex; flex-wrap:wrap; align-items:center; gap:12px 24px; padding:12px 16px; background:var(--tinta); }
.marca { display:flex; align-items:center; gap:10px; color:#fff; text-decoration:none; font-size:1.35rem; }
.marca img { border-radius:9px; border:1px solid rgba(255,255,255,.25); }
.marca b { font-weight:700; } .marca span { font-weight:300; color:var(--laton-claro); } .marca span b { color:#fff; }
.buscador { display:flex; flex:1 1 320px; max-width:620px; }
.buscador input { flex:1; min-width:0; font:inherit; padding:9px 12px; border:1px solid var(--linea); border-right:0; border-radius:8px 0 0 8px; background:#fff; color:var(--tinta); }
.buscador button { font:inherit; font-weight:600; padding:9px 18px; border:0; border-radius:0 8px 8px 0; background:var(--laton); color:#fff; cursor:pointer; }
.buscador button:hover { background:#a1762f; }
.buscador input:focus, .buscador button:focus-visible, a:focus-visible { outline:3px solid var(--laton-claro); outline-offset:1px; }

.heroe { padding:56px 0 24px; text-align:center; }
.heroe h1 { font-size:2.2rem; }
.heroe p { color:var(--gris); max-width:640px; margin:0 auto 22px; }
.buscador.grande { margin:0 auto; max-width:640px; }
.buscador.grande input { padding:14px 16px; font-size:1.05rem; }
.buscador.grande button { padding:14px 26px; }
.ejemplos { font-size:.92rem; margin-top:14px !important; }

.bloque { padding-top:26px; }
.cifras { text-align:center; color:var(--gris); }
.migas { font-size:.9rem; color:var(--gris); margin:0 0 6px; }
.ficha { color:var(--gris); font-size:.95rem; }
.dato { display:block; color:var(--gris); font-size:.88rem; }
.etiqueta { display:inline-block; font-size:.78rem; font-weight:600; padding:1px 9px; border-radius:20px; background:#e3efe7; color:var(--verde); margin-right:6px; }
.etiqueta.roja { background:#f6e3e0; color:var(--rojo); }
.vacio, .aviso { background:#fff; border:1px solid var(--linea); border-left:4px solid var(--laton); border-radius:8px; padding:12px 16px; }

.lista { list-style:none; padding:0; margin:0; }
.lista li { background:#fff; border:1px solid var(--linea); border-radius:10px; padding:12px 16px; margin-bottom:8px; }
.lista li > a { font-weight:600; text-decoration:none; }
.tarjeta { background:#fff; border:1px solid var(--linea); border-radius:10px; padding:14px 16px; margin-bottom:10px; }
.tarjeta.destacada { border-color:var(--laton); border-width:2px; }
.tarjeta .titulo { font-weight:600; text-decoration:none; font-size:1.05rem; }
.tarjeta p { margin:.5em 0 0; }
mark { background:#f5e3b8; color:inherit; padding:0 2px; border-radius:3px; }
.filtros { display:flex; flex-wrap:wrap; gap:8px; }
.filtros a { font-size:.88rem; text-decoration:none; padding:4px 12px; border:1px solid var(--linea); border-radius:20px; background:#fff; }
.filtros a.activo { background:var(--tinta); color:#fff; border-color:var(--tinta); }
.paginas, .vecinos { display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; margin-top:26px; }

.indice { list-style:none; padding:0; margin:0; background:#fff; border:1px solid var(--linea); border-radius:10px; }
.indice li { padding:8px 16px; border-bottom:1px solid var(--linea); }
.indice li:last-child { border-bottom:0; }
.indice li a { text-decoration:none; }
.indice li.encabezado { background:#faf8f3; font-weight:700; }

.texto { background:#fff; border:1px solid var(--linea); border-radius:10px; padding:20px 24px; overflow-x:auto; }
.texto p { margin:0 0 .8em; }
.texto p.articulo { font-weight:700; font-size:1.08rem; }
.texto p.parrafo_2, .texto p.sangrado, .texto p.sangrado_2, .texto p.sangrado_articulo { margin-left:1.4em; }
.texto p.titulo_num, .texto p.titulo_tit, .texto p.capitulo_num, .texto p.capitulo_tit, .texto p.subseccion, .texto p.firma_rey, .texto p.firma_ministro { text-align:center; font-weight:600; }
.texto blockquote { margin:1em 0 0; padding:10px 14px; border-left:4px solid var(--laton-claro); background:#faf8f3; font-size:.9rem; color:var(--gris); }
.texto blockquote p { margin:0 0 .3em; }
.texto table { border-collapse:collapse; margin:1em 0; font-size:.92rem; }
.texto th, .texto td { border:1px solid var(--linea); padding:5px 9px; vertical-align:top; }
.texto th { background:#faf8f3; }
.texto td p, .texto th p { margin:0; }
.comparado del { background:#f6e3e0; color:var(--rojo); }
.comparado ins { background:#e3efe7; color:var(--verde); text-decoration:underline; }
.aviso del { color:var(--rojo); } .aviso ins { color:var(--verde); }

.redacciones { width:100%; border-collapse:collapse; background:#fff; border:1px solid var(--linea); font-size:.95rem; }
.redacciones th, .redacciones td { text-align:left; padding:8px 12px; border-bottom:1px solid var(--linea); }
.redacciones tr.vigente td { background:#faf8f3; }

.pie { max-width:900px; margin:0 auto; padding:20px 16px 40px; border-top:1px solid var(--linea); color:var(--gris); font-size:.86rem; }

@media (max-width:600px) {
  body { font-size:16px; }
  .heroe { padding-top:32px; } .heroe h1 { font-size:1.7rem; }
  .texto { padding:14px 14px; }
  .redacciones th:nth-child(2), .redacciones td:nth-child(2) { display:none; }
}
@media print { .cab, .pie, .vecinos, .redacciones, .buscador { display:none; } body { background:#fff; } .texto { border:0; padding:0; } }

/* ---- Despacho ---- */
.enlaces { display:flex; gap:16px; margin-left:auto; }
.enlaces a { color:#fff; text-decoration:none; font-size:.95rem; }
.enlaces a:hover { color:var(--laton-claro); }
.menu { display:flex; flex-wrap:wrap; align-items:center; gap:4px; padding:6px 12px; background:#fff; border-bottom:1px solid var(--linea); }
.menu a, .menu button { font:inherit; font-size:.95rem; padding:6px 12px; border-radius:8px; text-decoration:none; color:var(--tinta); background:none; border:0; cursor:pointer; }
.menu a:hover, .menu button:hover { background:var(--papel); }
.menu a.activo { background:var(--tinta); color:#fff; }
.menu form { margin-left:auto; }
.estrecho { max-width:620px; margin:0 auto; }
.aviso { margin:16px 0 0; }
.aviso.error { border-left-color:var(--rojo); }
.rojo { color:var(--rojo) !important; }
.cifras.izquierda { text-align:left; }
.notas { white-space:pre-line; }
.pista { color:var(--gris); font-size:.88rem; }
.boton { display:inline-block; font:inherit; font-weight:600; padding:9px 18px; border:0; border-radius:8px; background:var(--laton); color:#fff; cursor:pointer; text-decoration:none; }
.boton:hover { background:#a1762f; color:#fff; }
.boton.gris { background:#fff; color:var(--tinta); border:1px solid var(--linea); }
.boton.gris:hover { background:var(--papel); color:var(--tinta); }
button.enlace { font:inherit; background:none; border:0; padding:0; color:var(--tinta-2); text-decoration:underline; cursor:pointer; }
.ficha-form { display:grid; gap:12px; }
.ficha-form label { display:grid; gap:4px; font-size:.92rem; font-weight:600; }
.ficha-form input, .ficha-form select, .ficha-form textarea { font:inherit; font-weight:400; padding:9px 11px; border:1px solid #c9c2b3; border-radius:8px; background:#fff; color:var(--tinta); width:100%; }
.ficha-form input:focus, .ficha-form select:focus, .ficha-form textarea:focus { outline:3px solid var(--laton-claro); outline-offset:1px; }
.ficha-form .casilla { display:flex; align-items:center; gap:8px; font-weight:400; }
.ficha-form .casilla input { width:auto; }
.ficha-form .boton { justify-self:start; }
.ficha-form h3 { margin:0; font-size:1rem; }
.dos { display:grid; grid-template-columns:1fr 1fr; gap:12px; align-items:end; }
.caja { background:#fff; border:1px solid var(--linea); border-radius:10px; padding:16px; margin-top:14px; }
.columnas { display:grid; grid-template-columns:1fr 1fr; gap:14px; align-items:start; }
.barra { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:12px; }
.barra input[type=search] { flex:1 1 220px; font:inherit; padding:9px 12px; border:1px solid #c9c2b3; border-radius:8px; }
.en-linea { display:inline; }
.agenda { list-style:none; padding:0; margin:0; background:#fff; border:1px solid var(--linea); border-radius:10px; }
.agenda li { display:flex; flex-wrap:wrap; align-items:center; gap:8px 12px; padding:9px 14px; border-bottom:1px solid var(--linea); }
.agenda li:last-child { border-bottom:0; }
.agenda li.vencido { border-left:4px solid var(--rojo); }
.agenda li.vencido .cuando { color:var(--rojo); font-weight:700; }
.agenda li.es-hoy { border-left:4px solid var(--laton); }
.agenda li.hecho .que { text-decoration:line-through; color:var(--gris); }
.agenda li.calculo { display:block; white-space:pre-line; font-size:.85rem; color:var(--gris); background:#faf8f3; }
.agenda .cuando { min-width:96px; font-variant-numeric:tabular-nums; }
.agenda .que { flex:1 1 240px; }
.dato-enlace { font-size:.86rem; margin-left:6px; }
.marca-hecho { width:30px; height:30px; border-radius:50%; border:2px solid #c9c2b3; background:#fff; color:var(--verde); font-size:1rem; cursor:pointer; line-height:1; }
.marca-hecho:hover { border-color:var(--verde); background:#e3efe7; }
.etiqueta.t-plazo { background:#f6e3e0; color:var(--rojo); }
.etiqueta.t-vista { background:#e4e9f2; color:var(--tinta-2); }
.etiqueta.t-cita, .etiqueta.t-tarea { background:#f1ece0; color:#7a5a1f; }
.cronologia { list-style:none; padding:0; margin:14px 0 0; border-left:3px solid var(--linea); }
.cronologia li { padding:6px 0 10px 16px; }
.lista.compacta li { padding:8px 14px; }
.resultado { background:#fff; border:2px solid var(--laton); border-radius:10px; padding:16px 20px; margin-top:18px; }
.resultado .vence { font-size:1.25rem; margin:0 0 .4em; }
@media (max-width:700px) { .columnas, .dos { grid-template-columns:1fr; } .enlaces { margin-left:0; } .menu form { margin-left:0; } }

/* ---- Archivo documental y escritos ---- */
.soltar { background:#fff; border:2px dashed #c9c2b3; border-radius:10px; padding:16px; margin-bottom:12px; }
.soltar.encima { border-color:var(--laton); background:#faf8f3; }
.soltar .estado { margin:8px 0 0; min-height:1.2em; }
.boton.peligro { background:var(--rojo); }
.boton.peligro:hover { background:#872a22; }
.estrecho-izq { max-width:620px; }
textarea.escrito { font-family:Georgia,"Times New Roman",serif; font-size:1rem; line-height:1.6; }
.lista.compacta li .boton { margin-top:6px; padding:5px 12px; font-size:.88rem; }
h3 { font-size:1rem; margin:1.4em 0 .5em; }

/* ---- Selector de idioma ---- */
.idiomas { position:relative; }
.idiomas summary { list-style:none; cursor:pointer; color:#fff; font-size:.85rem; font-weight:700; border:1px solid rgba(255,255,255,.4); border-radius:6px; padding:2px 8px; }
.idiomas summary::-webkit-details-marker { display:none; }
.idiomas ul { position:absolute; right:0; top:calc(100% + 8px); z-index:50; list-style:none; margin:0; padding:6px; background:#fff; border:1px solid var(--linea); border-radius:10px; box-shadow:0 12px 30px rgba(20,38,63,.2); min-width:150px; }
.idiomas li a { display:block; padding:6px 10px; border-radius:6px; color:var(--tinta); text-decoration:none; font-size:.95rem; }
.idiomas li a:hover { background:var(--papel); color:var(--tinta); }
.idiomas li a[aria-current] { font-weight:700; background:var(--papel); }
.enlaces { align-items:center; }

/* ---- Condiciones ---- */
.condiciones-resumen { background:#fff; border:1px solid var(--linea); border-left:4px solid var(--laton); border-radius:8px; padding:12px 16px; font-size:.92rem; font-weight:400; }
.condiciones-resumen ul { margin:0 0 8px; padding-left:20px; }
.condiciones-resumen li { margin-bottom:4px; }
.condiciones-resumen p { margin:0 0 6px; }
.legal h2 { font-size:1.05rem; }
.legal ul { padding-left:22px; }
.legal li { margin-bottom:.4em; }

/* ---- Notificaciones, compartir y cuenta ---- */
.opciones-subida { display:flex; flex-wrap:wrap; gap:6px 22px; margin:12px 0 0; font-size:.92rem; }
.opciones-subida .casilla { display:flex; align-items:center; gap:8px; }
.opciones-subida input[type=date] { font:inherit; padding:3px 6px; border:1px solid #c9c2b3; border-radius:6px; }
.enlace-copiar { display:block; width:100%; margin-top:8px; font:inherit; font-size:.9rem; padding:8px 10px; border:1px solid var(--laton); border-radius:8px; background:#faf8f3; }
.lista li.hecho { color:var(--gris); }
.lista li .etiqueta { margin-top:4px; }
td.num, th.num { text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; }
.en-linea-dato { display:inline; margin-left:6px; }
.cronologia .notas { display:block; }

/* ---- Minutas y arancel ---- */
fieldset.sin-borde { border:0; padding:0; margin:0; display:grid; gap:12px; min-width:0; }
table.lineas td { padding:4px 6px; }
table.lineas input, table.lineas select { width:100%; font:inherit; padding:7px 9px; border:1px solid #c9c2b3; border-radius:6px; background:#fff; }
table.lineas input.num { text-align:right; min-width:110px; }
table.lineas td:first-child { width:55%; }
table.totales { max-width:440px; margin-left:auto; }
.barra .en-linea { display:inline-flex; }

code { font-family:ui-monospace,Consolas,monospace; font-size:.88em; background:#f1ece0; padding:1px 5px; border-radius:4px; }

/* ---- Web corporativa: menú, pie, formularios de cuenta, captcha y comparativa ---- */
.cab-interruptor { display:none; }
.cab-boton { display:none; flex-direction:column; justify-content:center; gap:5px; width:42px; height:38px; margin-left:auto; padding:0 9px; border:1px solid rgba(255,255,255,.4); border-radius:8px; cursor:pointer; }
.cab-boton span { display:block; height:2px; background:#fff; border-radius:2px; }
.desplegable { position:relative; }
.desplegable summary { list-style:none; cursor:pointer; color:#fff; font-size:.95rem; }
.desplegable summary::-webkit-details-marker { display:none; }
.desplegable summary::after { content:" \25BE"; color:var(--laton-claro); }
.desplegable summary:hover { color:var(--laton-claro); }
.desplegable ul { position:absolute; left:0; top:calc(100% + 10px); z-index:60; list-style:none; margin:0; padding:6px; background:#fff; border:1px solid var(--linea); border-radius:10px; box-shadow:0 12px 30px rgba(20,38,63,.2); min-width:220px; }
.desplegable li a { display:block; padding:7px 12px; border-radius:6px; color:var(--tinta) !important; text-decoration:none; }
.desplegable li a:hover { background:var(--papel); }
.enlaces .cab-prueba { color:#fff; padding:7px 14px; }
.enlaces .cab-prueba:hover { color:#fff; }
@media (max-width:980px) {
  .cab-boton { display:flex; }
  .cab .enlaces { display:none; flex-basis:100%; flex-direction:column; align-items:flex-start; gap:12px; margin:4px 0 6px; }
  .cab-interruptor:checked ~ .enlaces { display:flex; }
  .desplegable ul, .idiomas ul { position:static; box-shadow:none; margin-top:8px; }
  .cab .buscador { order:3; flex-basis:100%; max-width:none; }
}
.pie { max-width:1080px; padding:34px 20px 40px; }
.pie-cols { display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:24px; margin-bottom:22px; }
.pie-cols h2 { font-size:.95rem; color:var(--tinta); margin:4px 0 10px; }
.pie-cols ul { list-style:none; margin:0; padding:0; }
.pie-cols li { margin-bottom:6px; }
.pie-cols a { color:var(--gris); text-decoration:none; }
.pie-cols a:hover { color:var(--tinta); text-decoration:underline; }
.pie-cols .boton { color:#fff; text-decoration:none; }
.pie-marca .marca { font-size:1.2rem; }
.pie-marca .marca span { color:var(--laton); } .pie-marca .marca span b { color:var(--tinta); }
.pie-copy { margin-top:18px; }
@media (max-width:760px) { .pie-cols { grid-template-columns:1fr 1fr; } .pie-marca { grid-column:1 / -1; } }
.aviso-demo { margin:0; padding:8px 16px; background:#fdf6e6; border-bottom:1px solid #ecd9a8; font-size:.92rem; text-align:center; }
.boton.grande { padding:12px 24px; font-size:1.05rem; }
.boton.claro { background:transparent; color:#fff; border:2px solid rgba(255,255,255,.7); }
.boton.claro:hover { background:rgba(255,255,255,.12); color:#fff; }
.alta { max-width:1080px; margin:0 auto; padding-bottom:30px; }
.alta-dos { display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:start; }
.alta-texto h1 { font-family:Georgia, serif; font-size:2.1rem; line-height:1.2; margin:0 0 14px; }
.sobre { text-transform:uppercase; letter-spacing:.12em; font-size:.8rem; font-weight:700; color:var(--laton); margin:0 0 8px; }
.entrada { font-size:1.08rem; color:var(--tinta-2); }
.lista-ok { list-style:none; padding:0; margin:18px 0; }
.lista-ok li { position:relative; padding:5px 0 5px 30px; }
.lista-ok li::before { content:"\2713"; position:absolute; left:0; top:4px; width:20px; height:20px; border-radius:50%; background:var(--verde); color:#fff; font-size:.75rem; display:flex; align-items:center; justify-content:center; }
.caja-form { background:#fff; border:1px solid var(--linea); border-radius:14px; padding:22px; box-shadow:0 10px 30px rgba(20,38,63,.06); }
.ficha-form .casilla { align-items:flex-start; }
.ficha-form .casilla input { margin-top:4px; }
.dos-campos { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.captcha label { display:block; font-size:.92rem; font-weight:600; margin-bottom:6px; }
.captcha-fila { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.captcha-img { line-height:0; }
.captcha-otra { font:inherit; font-size:1.1rem; padding:6px 11px; border:1px solid var(--linea); border-radius:8px; background:#fff; cursor:pointer; }
.ficha-form .captcha-fila input { width:110px; font-size:1.1rem; letter-spacing:.2em; }
.ficha-form input.codigo { font-size:1.6rem; letter-spacing:.35em; text-align:center; max-width:220px; }
.reenviar { margin-top:14px; }
.enlace { font:inherit; color:var(--tinta-2); background:none; border:0; padding:0; text-decoration:underline; cursor:pointer; }
.oculto { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.tabla-comparativa { overflow-x:auto; border:1px solid var(--linea); border-radius:14px; background:#fff; }
.tabla-comparativa table { width:100%; border-collapse:collapse; min-width:720px; }
.tabla-comparativa th, .tabla-comparativa td { padding:12px 14px; border-bottom:1px solid var(--linea); text-align:center; vertical-align:middle; font-size:.93rem; }
.tabla-comparativa thead th { background:var(--tinta); color:#fff; font-size:.9rem; }
.tabla-comparativa thead th.c-lex { background:var(--laton); }
.tabla-comparativa tbody th { text-align:left; font-weight:600; color:var(--tinta); }
.tabla-comparativa td.c-lex { background:#fbf6ea; }
.tabla-comparativa tr:last-child th, .tabla-comparativa tr:last-child td { border-bottom:0; }
.c-si { display:inline-flex; width:28px; height:28px; border-radius:50%; background:var(--verde); color:#fff; font-weight:700; align-items:center; justify-content:center; }
.c-no { color:#a8a297; font-size:1.2rem; }
.c-texto { color:var(--gris); font-size:.86rem; }
@media (max-width:760px) { .alta-dos, .dos-campos { grid-template-columns:1fr; } .alta-texto h1 { font-size:1.7rem; } }
