/*
 * Autos Valls · Theme v2 — Legal (aviso legal, privacidad, cookies)
 * Epica EP-17 (AUTOVA-208) · Tarea AV-T-201.
 *
 * Carga DESPUES de theme-v2-home.css, que hace de base en todas las paginas v2.
 *
 * 🔴 TODA REGLA QUE TOQUE UN .av-wrap VA PREFIJADA CON .av-v2, o la seccion sale
 * a 1240 px y la pagina queda con dos ejes distintos. Leccion de EP-13.
 *
 * 🔴 DOS COLORES DEL PROTOTIPO NO SE COPIAN, y no es una opinion:
 *
 *   - El boton «Escribenos» de la banda de cierre es, en el prototipo,
 *     fondo --av-cielo con texto --av-blanco. Blanco sobre ese cian da ~2,3:1.
 *     theme-v2-tokens.css lo dice literalmente: «Nunca bajo texto blanco».
 *     Aqui el boton es BLANCO sobre la banda marino (12,9:1).
 *   - El prototipo pone `a { color: cielo }` como color de enlace de cuerpo.
 *     Cian sobre blanco da 2,78:1, por debajo del minimo AA de 4,5:1. Aqui los
 *     enlaces van en --av-enlace. Para eso existe ese token.
 *
 * El cian queda para lo que confirma o esta activo: el borde inferior de la
 * pestana activa y el anillo de foco. Ahi si, y es donde el prototipo lo usa
 * bien.
 */

/* --- Pestanas de seccion ---------------------------------------------- */

.av-v2 .av-legal-tabs {
	background: var(--av-blanco);
	border-bottom: 1px solid var(--av-borde);
	position: sticky;
	top: 0;
	z-index: 10;
}

.av-v2 .av-legal-tabs__in {
	display: flex;
	gap: 4px;
	/* A 390 px las tres etiquetas no caben: hacen scroll dentro de su
	   contenedor, nunca empujando el <body>. */
	overflow-x: auto;
	scrollbar-width: none;
}

.av-v2 .av-legal-tabs__in::-webkit-scrollbar { display: none; }

.av-v2 .av-legal-tabs__tab {
	font-family: var(--av-fuente-titulo);
	font-weight: 700;
	font-size: var(--av-t-nav);
	padding: 16px 14px;
	color: var(--av-texto-3);
	border-bottom: 2px solid transparent;
	white-space: nowrap;
	text-decoration: none;
}

.av-v2 .av-legal-tabs__tab:hover {
	color: var(--av-marino);
}

/* El cian SI va aqui: marca lo activo y no lleva texto encima. */
.av-v2 .av-legal-tabs__tab.is-actual {
	color: var(--av-marino);
	border-bottom-color: var(--av-cielo);
}

/* --- Cabecera del documento ------------------------------------------- */

.av-v2-legal .av-legal-cab {
	display: flex;
	flex-direction: column;
	gap: 6px;
	border-bottom: 1px solid var(--av-borde);
	padding-bottom: 20px;
	margin-bottom: 28px;
}

.av-v2-legal .av-legal-cab__h1 {
	font-family: var(--av-fuente-titulo);
	font-weight: 800;
	font-size: var(--av-t-h1-pagina);
	line-height: 1.1;
	margin: 0;
	color: var(--av-marino);
}

.av-v2-legal .av-legal-cab__fecha {
	font-size: var(--av-t-xs);
	color: var(--av-texto-3);
	margin: 0;
}

/* --- Rejilla de la seccion -------------------------------------------- */

.av-v2 .av-legal__grid {
	display: grid;
	grid-template-columns: 220px 1fr;
	gap: 44px;
	align-items: start;
	padding-block: 16px 80px;
}

/*
 * 🔴 SIN INDICE, UNA SOLA COLUMNA. Con `220px 1fr` y un unico hijo el navegador
 * mete ese hijo en la PRIMERA pista: el documento entero se pintaba en 220 px,
 * con el titular partido en cuatro lineas. Pasaba en la privacidad —la unica sin
 * <h2>, y la que hoy se publica— y no lo veia ninguna medida numerica:
 * desbordaBody daba false y el HTML era correcto. Solo se vio en la captura.
 *
 * La clase la pone la plantilla con av_v2_legal_tiene_indice(). Se hace en PHP y
 * no con :has() para no depender del soporte del navegador en una pagina legal.
 *
 * El ancho se limita para que el texto no llegue a 1425 px de linea: por encima
 * de ~75 caracteres se lee peor, y un documento legal ya cuesta bastante.
 *
 * ⚠️ Y SE ALINEA A LA IZQUIERDA, NO SE CENTRA. Con `justify-content: center` la
 * columna quedaba a 360 px del borde mientras las migas seguian a 0: dos ejes
 * distintos en la misma pagina, visible de un vistazo en la captura de 1440.
 */
.av-v2 .av-legal__grid--solo {
	grid-template-columns: minmax(0, 78ch);
}

.av-v2-legal .av-legal__doc {
	color: var(--av-texto-2);
	font-family: var(--av-fuente-texto);
	font-size: var(--av-t-md);
	line-height: 1.7;
	/*
	 * 🔴 Sin esto, la tabla de servicios que genera Complianz —la mas ancha de
	 * las tres paginas, y no la controlamos— estira la columna de la rejilla y
	 * empuja el <body>. `min-width:0` deja que el hijo haga su propio scroll.
	 */
	min-width: 0;
}

.av-v2-legal .av-legal__doc a {
	color: var(--av-enlace);
}

.av-v2-legal .av-legal__doc a:hover {
	color: var(--av-marino);
}

/* Los anclajes del indice no pueden quedar tapados por la barra de pestanas. */
.av-v2-legal .av-legal__doc h2 {
	scroll-margin-top: 88px;
}

/* --- Indice lateral --------------------------------------------------- */

.av-v2 .av-legal-indice {
	position: sticky;
	/* La barra de pestanas mide 50 px; 76 deja aire y coincide con el diseno. */
	top: 76px;
	display: flex;
	flex-direction: column;
	gap: 2px;
	/* Alinea la primera entrada con el <h1>, no con el borde de la cabecera. */
	margin-top: 41px;
}

.av-v2 .av-legal-indice__titulo {
	font-family: var(--av-fuente-titulo);
	font-weight: 700;
	font-size: 10px;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--av-texto-3);
	margin-bottom: 8px;
}

.av-v2 .av-legal-indice__enlace {
	font-size: var(--av-t-meta);
	color: var(--av-texto-2);
	padding: 6px 0 6px 10px;
	line-height: 1.4;
	border-left: 2px solid transparent;
	text-decoration: none;
}

.av-v2 .av-legal-indice__enlace:hover,
.av-v2 .av-legal-indice__enlace:focus-visible {
	color: var(--av-enlace);
	border-left-color: var(--av-cielo);
}

@media (max-width: 1023px) {
	.av-v2 .av-legal-indice {
		position: static;
		margin-top: 0;
		/* Encajonado, para que no se lea como parte del documento. */
		border: 1px solid var(--av-borde);
		border-radius: var(--av-r-tarjeta);
		padding: 16px var(--av-e-7b);
		background: var(--av-fondo-suave);
	}
}

/* --- Tabla-resumen de categorias -------------------------------------- */

.av-v2-legal .av-legal-cats {
	width: 100%;
	border-collapse: collapse;
	border: 1px solid var(--av-borde);
	border-radius: var(--av-r-tarjeta);
	overflow: hidden;
	margin: 0 0 30px;
	font-size: var(--av-t-sm);
	text-align: left;
}

.av-v2-legal .av-legal-cats__cap {
	font-family: var(--av-fuente-titulo);
	font-weight: 700;
	font-size: var(--av-t-xs);
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--av-texto-3);
	text-align: left;
	padding-bottom: 10px;
}

.av-v2-legal .av-legal-cats th,
.av-v2-legal .av-legal-cats td {
	padding: 13px var(--av-e-7b);
	border-top: 1px solid var(--av-borde);
	vertical-align: top;
}

.av-v2-legal .av-legal-cats thead th {
	background: var(--av-fondo-suave);
	border-top: 0;
	font-family: var(--av-fuente-titulo);
	font-weight: 700;
	font-size: var(--av-t-micro);
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--av-texto-3);
}

.av-v2-legal .av-legal-cats tbody th {
	color: var(--av-marino);
	font-family: var(--av-fuente-titulo);
	font-size: var(--av-t-cap);
	white-space: nowrap;
}

/* La tabla de categorias de datos de la privacidad son dos columnas, no tres. */
.av-v2-legal .av-legal-cats--datos tbody th { width: 34%; }

/* --- Caja de resumen en lenguaje claro -------------------------------- */

.av-v2-legal .av-legal-resumen {
	background: var(--av-fondo-suave);
	border-radius: var(--av-r-bloque);
	padding: 20px 22px;
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin-bottom: 30px;
}

.av-v2-legal .av-legal-resumen__rotulo {
	font-family: var(--av-fuente-titulo);
	font-weight: 700;
	font-size: var(--av-t-xs);
	letter-spacing: .08em;
	text-transform: uppercase;
	/* El cian NO va aqui: sobre --av-fondo-suave no llega al minimo AA. */
	color: var(--av-enlace);
}

.av-v2-legal .av-legal-resumen__texto {
	margin: 0;
	color: var(--av-marino);
}

/* --- Pildoras de derechos --------------------------------------------- */

.av-v2-legal .av-legal-pildoras {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 30px;
	padding: 0;
	list-style: none;
}

.av-v2-legal .av-legal-pildoras__item {
	background: var(--av-fondo-suave);
	color: var(--av-marino); /* 11,4:1 sobre --av-fondo-suave */
	border-radius: var(--av-r-pill);
	padding: 6px 13px;
	font-size: var(--av-t-cap);
}

/* --- Banda de cierre -------------------------------------------------- */

.av-v2-legal .av-legal-cta {
	margin-top: 40px;
	background: var(--av-marino);
	border-radius: var(--av-r-tarjeta);
	padding: 22px 24px;
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	align-items: center;
	justify-content: space-between;
}

.av-v2-legal .av-legal-cta__texto {
	margin: 0;
	color: var(--av-sobre-marino);
	font-size: var(--av-t-nav);
	max-width: 52ch;
}

/*
 * 🔴 BLANCO SOBRE MARINO (12,9:1), NO CIAN CON TEXTO BLANCO (~2,3:1).
 * El prototipo pone --av-cielo con blanco; el archivo de tokens lo prohibe
 * expresamente. Sobre la banda marino, un boton blanco destaca mas y cumple.
 */
/*
 * ⚠️ `a.av-legal-cta__boton`, con el selector de elemento, y no por gusto: la
 * regla `.av-v2-legal .av-legal__doc a` de mas arriba tiene especificidad
 * (0,2,1) y le ganaba a `.av-v2-legal .av-legal-cta__boton` (0,2,0). El boton
 * salia en --av-enlace en vez de marino. Lo dijo el medidor de contraste al
 * leer el color COMPUTADO: en la hoja parecia correcto.
 */
.av-v2-legal a.av-legal-cta__boton {
	background: var(--av-blanco);
	color: var(--av-marino);
	font-family: var(--av-fuente-titulo);
	font-weight: 700;
	font-size: var(--av-t-meta);
	padding: 11px var(--av-e-7b);
	border-radius: var(--av-r-boton);
	white-space: nowrap;
	text-decoration: none;
}

.av-v2-legal a.av-legal-cta__boton:hover,
.av-v2-legal a.av-legal-cta__boton:focus-visible {
	background: var(--av-sobre-marino);
	color: var(--av-marino-900);
}

/* --- El documento que genera Complianz -------------------------------- */

/*
 * 🔴 SOLO TIPOGRAFIA Y COLOR. Nada de display, position ni overflow sobre
 * .cmplz-dropdown, .cmplz-service-header ni la tabla de servicios: el plugin los
 * usa para abrir y cerrar los desplegables, y romperlos deja la lista de
 * servicios inaccesible SIN DAR NINGUN ERROR.
 */

.av-v2-legal .av-legal-cmplz {
	font-family: var(--av-fuente-texto);
	color: var(--av-texto-2);
}

.av-v2-legal .av-legal-cmplz h2 {
	font-family: var(--av-fuente-titulo);
	font-weight: 700;
	font-size: var(--av-t-bloque);
	color: var(--av-marino);
	margin: 30px 0 10px;
}

.av-v2-legal .av-legal-cmplz h3 {
	font-family: var(--av-fuente-titulo);
	font-weight: 700;
	font-size: var(--av-t-base);
	color: var(--av-marino);
	margin: 20px 0 8px;
}

.av-v2-legal .av-legal-cmplz a {
	color: var(--av-enlace);
}

/*
 * Las tablas de servicio son lo mas ancho de las tres paginas y no las
 * controlamos: hacen scroll en su propio contenedor, nunca empujando el <body>.
 * Por eso .av-legal__doc lleva min-width:0.
 */
.av-v2-legal .av-legal-cmplz table {
	display: block;
	max-width: 100%;
	overflow-x: auto;
	font-size: var(--av-t-nav);
}

@media (max-width: 1023px) {
	.av-v2 .av-legal__grid {
		grid-template-columns: 1fr;
		gap: 24px;
	}
}

/* ====================================================================
 * 99. Rescate del post_content de las condiciones de alquiler
 *
 * Estas dos entradas son del CPT del plugin y su contenido viene montado con
 * WPBakery, que trae SU tipografia dentro de `.wpb_text_column`. Medido con CDP
 * al ponerles la piel v2: 410 elementos en Arial, 19 en Raleway y 381 en #333,
 * mientras el <body> ya estaba en Manrope y --av-marino. Es decir, el chrome era
 * de la marca y el documento no.
 *
 * NO se toca el post_content: son las condiciones que el cliente acepta antes de
 * pagar. Se corrige al pintar, que es la regla de las paginas legales v2.
 *
 * La especificidad va por `.av-v2 .av-legal-cuerpo` y hace falta entera: las
 * reglas del padre que pierden aqui son de `.wpb_text_column`, mas especificas
 * que un simple descendiente. Mismo patron que la seccion 99 de
 * theme-v2-ficha-coche.css.
 * ==================================================================== */

.av-v2 .av-legal-cuerpo,
.av-v2 .av-legal-cuerpo p,
.av-v2 .av-legal-cuerpo li,
.av-v2 .av-legal-cuerpo td,
.av-v2 .av-legal-cuerpo th,
.av-v2 .av-legal-cuerpo .wpb_text_column,
.av-v2 .av-legal-cuerpo .wpb_wrapper {
    font-family: var(--av-fuente-texto);
    color: var(--av-texto-2);
}

.av-v2 .av-legal-cuerpo h1,
.av-v2 .av-legal-cuerpo h2,
.av-v2 .av-legal-cuerpo h3,
.av-v2 .av-legal-cuerpo h4 {
    font-family: var(--av-fuente-titulo);
    font-weight: 700;
    color: var(--av-marino);
    letter-spacing: -0.01em;
}

/* 🔴 EL UNICO !important DE ESTA HOJA, Y ESTA GANADO.
 *
 * Los enlaces de este documento llevan `style="color: #009cdc"` ESCRITO A MANO en
 * el post_content, un azul parecido al de marca pero que no es ningun token. Un
 * estilo en linea no se gana con especificidad: o !important, o nada.
 *
 * La norma de este proyecto es no pelear con el contenido publicado, y se
 * mantiene — para lo cosmetico. Esto no lo es: medido con contraste.mjs, esos
 * enlaces dan 3,09:1 sobre blanco y 2,88:1 dentro de las cajas destacadas, contra
 * un minimo de 4,5. FALLAN TODOS, y entre ellos el indice completo del documento
 * que el cliente tiene que leer antes de pagar.
 *
 * --av-enlace (#00789f) da 5,02:1 sobre blanco. Se corrige AL PINTAR, que es
 * justo la regla de las paginas legales v2: el post_content no se toca nunca.
 *
 * Solo el color. El resto de estilos en linea del documento —fondos, bordes,
 * margenes— se respetan. */
.av-v2 .av-legal-cuerpo a,
/*
 * Y no solo los <a>: el mismo azul en linea aparece tambien en algun <strong>
 * («Asistencia por llaves:», 3,09:1). Se ataca por el atributo EXACTO
 * `color: #009cdc` y no por `[style*="009cdc"]` a secas, porque ese color se usa
 * ademas como `border-left` de las cajas destacadas — y ahi recolorear el texto
 * de la caja entera seria romper algo que funciona.
 */
.av-v2 .av-legal-cuerpo [style*="color: #009cdc"],
.av-v2 .av-legal-cuerpo [style*="color:#009cdc"] {
    color: var(--av-enlace) !important;
}

/* ====================================================================
 * 100. Las tablas del post_content no pueden ensanchar la pagina
 *
 * Medido a 390px antes de tocar nada:
 *   /alquiler/requisitos-de-alquiler/   el documento entero medía 782px en una
 *                                       ventana de 390: scroll horizontal de toda
 *                                       la pagina, que es de los peores defectos
 *                                       que puede tener una web en el movil.
 *   /alquiler/terminos-y-condiciones/   la tabla desbordaba 431px pero el documento
 *                                       se quedaba en 390: el texto no se cortaba,
 *                                       se PERDIA. «Antigüedad permiso conducir» y
 *                                       «Fianza requerida» eran inalcanzables.
 *
 * `display: block` en un <table> es lo que le permite desbordar DENTRO de si mismo
 * en vez de empujar al documento. Es el arreglo clasico de tabla responsive y no
 * necesita tocar el contenido, que aqui es texto legal.
 *
 * El ancho minimo evita el otro extremo: sin el, las celdas se comprimen tanto que
 * cada palabra cae en una linea y la tabla se vuelve ilegible.
 * ==================================================================== */

.av-v2 .av-legal-cuerpo table {
    display: block;
    /* 🔴 EL !important ES POR UN ESTILO EN LINEA DEL CONTENIDO.
     *
     * La tabla de requisitos trae `style="width: 80%"` escrito en el post_content,
     * de cuando vivia en un contenedor mas ancho. En la columna legal v2 (761px)
     * ese 80% la deja en 609 —medido, y cuadra al pixel— y entonces sus 761px de
     * contenido NO CABEN: se desplazaba incluso a 1440, teniendo sitio de sobra.
     *
     * Con `display: block` ademas encoge hasta su contenido en vez de ocupar el
     * hueco, asi que el ancho hay que darselo explicito.
     *
     * Se pisa SOLO el ancho. El resto de estilos en linea de la tabla —alineaciones,
     * bordes, `white-space` de las celdas— se respetan, y el post_content no se
     * toca: es texto legal. */
    width: 100% !important;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.av-v2 .av-legal-cuerpo table tbody,
.av-v2 .av-legal-cuerpo table thead {
    display: table;
    width: 100%;
    min-width: 30rem;
}
