/*
 * Portada de Leyes ([forulege_leyes_portada], src/Front/LeyesPortada.php).
 * Colores y tipografías del tema (variables de Impreza): granate = --color-content-primary,
 * rosa = --color-content-bg-alt, títulos = --h1-font-family.
 */

.flp { --flp-suave: var(--color-content-faded-text, #5f5656); --flp-linea: #e2d4d4; --flp-rosa-suave: #f7f1f1; }
.flp h2 { font-family: var(--h1-font-family); font-size: 1.4rem; font-weight: 700; margin: 0; padding: 0; }
.flp h3 { font-family: var(--h1-font-family); font-size: 1rem; font-weight: 700; margin: 0; padding: 0; line-height: 1.3; }
.flp ul, .flp ol { list-style: none; margin: 0; padding: 0; }
.flp li { margin: 0; }
.flp li::before { content: none; }
.flp button::before, .flp button::after { display: none !important; }
.flp-etiqueta { font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: var(--flp-suave); margin: 0; }

/* Presentación y buscador */
.flp-entrada { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 2.5rem; align-items: start; }
.flp-entrada p { margin: 0 0 0.6rem; max-width: 62ch; }
.flp-buscador { background: var(--color-content-bg-alt); padding: 1.25rem 1.4rem; display: grid; gap: 0.75rem; margin: 0; }
.flp-campo { display: flex; align-items: center; gap: 0.6rem; background: #fff; border-radius: 24px; padding: 0.35rem 0.5rem 0.35rem 1.1rem; }
.flp-campo input[type="search"] { flex: 1; min-width: 0; border: 0 !important; background: transparent !important; box-shadow: none !important; padding: 0.35rem 0 !important; min-height: 0 !important; height: auto !important; font-size: 0.95rem; }
.flp .flp-lupa { border: 0 !important; background: var(--color-content-primary) !important; color: #fff !important; border-radius: 50% !important; width: 36px; height: 36px; min-width: 0 !important; padding: 0 !important; display: grid !important; place-items: center; cursor: pointer; box-shadow: none !important; line-height: 1 !important; }
.flp .flp-lupa svg circle { fill: none !important; stroke: #fff !important; }
.flp .flp-lupa svg path { stroke: #fff !important; }
.flp-chips { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.flp-chips a { border: 1px solid var(--flp-linea); background: #fff; color: var(--color-content-text); padding: 0.15rem 0.6rem; font-size: 0.8rem; font-weight: 600; text-decoration: none; }
.flp-chips a:hover { border-color: var(--color-content-primary); }
.flp-chips a b { color: var(--color-content-primary); margin-left: 0.3rem; font-variant-numeric: tabular-nums; }
.flp-buscador small { font-size: 0.8rem; color: var(--flp-suave); }

/* Ley destacada */
.flp-destacada { margin-top: 2.2rem; border: 1px solid var(--flp-linea); display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); }
.flp-izq { background: var(--color-content-primary); color: #fff; padding: 1.6rem 1.75rem; display: grid; gap: 0.9rem; align-content: start; }
.flp-izq .flp-etiqueta { color: #f3c9cb; }
.flp-izq h2 { font-size: 1.6rem; line-height: 1.25; }
.flp-izq h2 a { color: #fff; }
.flp-izq p { margin: 0; color: #f6e6e6; font-size: 0.95rem; }
.flp-acciones { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.flp-acciones a { border: 1px solid #f3c9cb; color: #fff; padding: 0.35rem 0.75rem; font-weight: 700; font-size: 0.875rem; text-decoration: none; }
.flp-acciones a:hover { background: rgba(255, 255, 255, 0.12); color: #fff; }
.flp-acciones a.prim { background: #fff; color: var(--color-content-primary); border-color: #fff; }
.flp-ir { display: flex; flex-wrap: nowrap; gap: 0.5rem; align-items: center; font-size: 0.875rem; color: #f6e6e6; margin: 0; }
.flp-ir label { display: inline; margin: 0; color: inherit; white-space: nowrap; }
.flp .flp-ir input { flex: 0 0 5rem; width: 5rem !important; background: #fff !important; color: var(--color-content-text) !important; border: 0 !important; padding: 0.35rem 0.5rem !important; font-weight: 600; min-height: 0 !important; height: auto !important; border-radius: 0 !important; box-shadow: none !important; }
.flp form.flp-ir button[type="submit"] { -webkit-text-fill-color: #fff; }
.flp .flp-ir button { border: 1px solid #f3c9cb !important; background: transparent !important; color: #fff !important; font-size: 0.8rem !important; font-weight: 700; padding: 0.35rem 0.6rem !important; min-height: 0 !important; line-height: 1.3 !important; border-radius: 0 !important; box-shadow: none !important; cursor: pointer; }
.flp-der { padding: 1.4rem 1.6rem; display: grid; gap: 0.6rem; align-content: start; }
.flp-estructura a { display: grid; grid-template-columns: 7.5em minmax(0, 1fr) auto; gap: 0.6rem; padding: 0.6rem 0.5rem; border-bottom: 1px solid var(--flp-linea); color: var(--color-content-text); align-items: baseline; text-decoration: none; }
.flp-estructura a:hover { background: var(--flp-rosa-suave); }
.flp-estructura b { font-family: var(--h1-font-family); color: var(--color-content-primary); }
.flp-estructura em { font-style: normal; font-size: 0.8rem; color: var(--flp-suave); font-variant-numeric: tabular-nums; white-space: nowrap; }

/* Grupos */
.flp-bloque { padding-top: 3rem; }
.flp-cab { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 0.4rem 1rem; margin-bottom: 1rem; }
.flp-cab p { margin: 0; color: var(--flp-suave); font-size: 0.875rem; }
.flp-grupos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.75rem 2.25rem; align-items: start; }
.flp-grupo { display: grid; gap: 0.6rem; min-width: 0; scroll-margin-top: calc(var(--header-sticky-height, 0px) + 1rem); }
.flp-grupo h3 { padding-bottom: 0.5rem; border-bottom: 2px solid var(--color-content-primary); }
.flp-lista li { display: grid; grid-template-columns: 3.2em minmax(0, 1fr); gap: 0.6rem; padding: 0.55rem 0; border-bottom: 1px solid var(--flp-linea); }
.flp-anio { font-family: var(--h1-font-family); font-weight: 700; font-size: 0.875rem; color: var(--color-content-primary); font-variant-numeric: tabular-nums; padding-top: 1px; }
.flp-anio.sin { color: var(--flp-linea); }
.flp-lista a { color: var(--color-content-text); font-weight: 600; font-size: 0.95rem; line-height: 1.4; }
.flp-lista a:hover { color: var(--color-content-primary); }
.flp-marcas { display: flex; flex-wrap: wrap; gap: 0.3rem; margin-top: 0.3rem; }
.flp .m { font-size: 0.72rem; font-weight: 700; border: 1px solid var(--flp-linea); color: var(--flp-suave); padding: 0 0.4rem; line-height: 1.5; text-decoration: none; }
.flp a.m:hover { border-color: var(--color-content-primary); color: var(--color-content-primary); }
.flp .m-texto { border-color: var(--color-content-primary); color: var(--color-content-primary); }

/* Línea de tiempo (banda de lado a lado: sombra, sin márgenes negativos) */
.flp-historia { background: var(--flp-rosa-suave); box-shadow: 0 0 0 100vmax var(--flp-rosa-suave); clip-path: inset(0 -100vmax); margin-top: 3.2rem; padding-block: 2.5rem 2.8rem; scroll-margin-top: calc(var(--header-sticky-height, 0px) + 1rem); }
.flp-tiempo { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(150px, 1fr); overflow-x: auto; padding-bottom: 0.6rem; scrollbar-width: thin; }
.flp-tiempo li { position: relative; padding: 2.1rem 0.9rem 0 0; display: grid; gap: 0.35rem; align-content: start; min-width: 0; }
.flp-tiempo li::before { content: ""; position: absolute; left: 0; right: 0; top: 13px; height: 2px; background: var(--flp-linea); }
.flp-tiempo li::after { content: ""; position: absolute; left: 0; top: 7px; width: 14px; height: 14px; border-radius: 50%; background: #fff; border: 2px solid var(--color-content-primary); }
.flp-tiempo li.flp-hito::after { background: var(--color-content-primary); }
.flp-y { font-family: var(--h1-font-family); font-weight: 700; font-size: 1.1rem; color: var(--color-content-primary); font-variant-numeric: tabular-nums; }
.flp-tiempo a { color: var(--color-content-text); font-size: 0.875rem; line-height: 1.35; font-weight: 600; }
.flp-leyenda { font-size: 0.8rem; color: var(--flp-suave); margin: 0.6rem 0 0; display: flex; gap: 1rem; flex-wrap: wrap; align-items: center; }
.flp-leyenda i { display: inline-block; width: 12px; height: 12px; border-radius: 50%; border: 2px solid var(--color-content-primary); vertical-align: -1px; margin-right: 0.4rem; }
.flp-leyenda i.lleno { background: var(--color-content-primary); }

@media (max-width: 900px) {
	.flp-entrada, .flp-destacada, .flp-grupos { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
	.flp-destacada { gap: 0; }
}
@media (max-width: 520px) {
	.flp-estructura a { grid-template-columns: minmax(0, 1fr) auto; }
	.flp-estructura a span { grid-column: 1 / -1; grid-row: 2; }
}
