/**
 * Tablas bloque Gutenberg (.wp-block-table)
 *
 * Estilo "Comparativa": cabecera gris, bordes #666, cebra.
 * Estilo "Tramo / ruta": clase en el bloque → Avanzado → clases CSS adicionales:
 *   guru-table-tramo   (recomendado) o guru-table-ruta (alias)
 *
 * Gutenberg suele usar solo <tbody>; la cabecera es el primer <tr> con <td> o <th>.
 */

.wp-block-table {
	position: relative;
	max-width: 100%;
	margin-bottom: 1.5rem;
	overflow-x: auto;
	overflow-y: visible;
	-webkit-overflow-scrolling: touch;
	scrollbar-gutter: stable;
}

.wp-block-table figcaption {
	margin-bottom: 0.75rem;
	font-size: clamp(1.125rem, 2.5vw, 1.35rem);
	font-weight: 700;
	color: #333;
	text-align: center;
}

/* Comparativa: excluye tablas tramo/ruta */
.wp-block-table:not(:is(.guru-table-ruta, .guru-table-tramo)) table {
	width: 100%;
	min-width: 52rem;
	margin: 0;
	border-collapse: collapse;
	table-layout: auto;
	font-size: clamp(0.8125rem, 1.4vw, 0.95rem);
	color: #333;
	font-family: inherit;
}

.wp-block-table:not(:is(.guru-table-ruta, .guru-table-tramo)) table th,
.wp-block-table:not(:is(.guru-table-ruta, .guru-table-tramo)) table td {
	padding: clamp(0.75rem, 2vw, 1.125rem);
	line-height: 1.45;
	vertical-align: middle;
	text-align: center;
	border: 1px solid #666;
}

.wp-block-table:not(:is(.guru-table-ruta, .guru-table-tramo)) table thead th,
.wp-block-table:not(:is(.guru-table-ruta, .guru-table-tramo)) table thead td {
	background-color: #f2f2f2 !important;
	font-weight: 700;
	color: #333;
}

.wp-block-table:not(:is(.guru-table-ruta, .guru-table-tramo)) table > tbody:first-child > tr:first-child > td {
	background-color: #f2f2f2 !important;
	font-weight: 700;
	color: #333;
}

.wp-block-table:not(:is(.guru-table-ruta, .guru-table-tramo)) table thead ~ tbody > tr > td:first-child {
	font-weight: 700;
	color: #333;
}

.wp-block-table:not(:is(.guru-table-ruta, .guru-table-tramo)) table > tbody:first-child > tr:not(:first-child) > td:first-child {
	font-weight: 700;
	color: #333;
}

.wp-block-table:not(:is(.guru-table-ruta, .guru-table-tramo)) table thead ~ tbody > tr:nth-child(4n + 1) > td {
	background-color: #fff !important;
}

.wp-block-table:not(:is(.guru-table-ruta, .guru-table-tramo)) table thead ~ tbody > tr:nth-child(4n + 2) > td {
	background-color: #f9f9f9 !important;
}

.wp-block-table:not(:is(.guru-table-ruta, .guru-table-tramo)) table thead ~ tbody > tr:nth-child(4n + 3) > td {
	background-color: #fff !important;
}

.wp-block-table:not(:is(.guru-table-ruta, .guru-table-tramo)) table thead ~ tbody > tr:nth-child(4n + 4) > td {
	background-color: #f2f2f2 !important;
}

.wp-block-table:not(:is(.guru-table-ruta, .guru-table-tramo)) table > tbody:first-child > tr:nth-child(4n + 2) > td {
	background-color: #fff !important;
}

.wp-block-table:not(:is(.guru-table-ruta, .guru-table-tramo)) table > tbody:first-child > tr:nth-child(4n + 3) > td {
	background-color: #f9f9f9 !important;
}

.wp-block-table:not(:is(.guru-table-ruta, .guru-table-tramo)) table > tbody:first-child > tr:nth-child(4n + 4) > td {
	background-color: #fff !important;
}

.wp-block-table:not(:is(.guru-table-ruta, .guru-table-tramo)) table > tbody:first-child > tr:nth-child(4n + 5) > td {
	background-color: #f2f2f2 !important;
}

.wp-block-table:not(:is(.guru-table-ruta, .guru-table-tramo)) table thead ~ tbody > tr:nth-child(4n + 1):hover > td,
.wp-block-table:not(:is(.guru-table-ruta, .guru-table-tramo)) table > tbody:first-child > tr:nth-child(4n + 2):hover > td {
	background-color: #fff !important;
}

.wp-block-table:not(:is(.guru-table-ruta, .guru-table-tramo)) table thead ~ tbody > tr:nth-child(4n + 2):hover > td,
.wp-block-table:not(:is(.guru-table-ruta, .guru-table-tramo)) table > tbody:first-child > tr:nth-child(4n + 3):hover > td {
	background-color: #f9f9f9 !important;
}

.wp-block-table:not(:is(.guru-table-ruta, .guru-table-tramo)) table thead ~ tbody > tr:nth-child(4n + 3):hover > td,
.wp-block-table:not(:is(.guru-table-ruta, .guru-table-tramo)) table > tbody:first-child > tr:nth-child(4n + 4):hover > td {
	background-color: #fff !important;
}

.wp-block-table:not(:is(.guru-table-ruta, .guru-table-tramo)) table thead ~ tbody > tr:nth-child(4n + 4):hover > td,
.wp-block-table:not(:is(.guru-table-ruta, .guru-table-tramo)) table > tbody:first-child > tr:nth-child(4n + 5):hover > td {
	background-color: #f2f2f2 !important;
}

.wp-block-table:not(:is(.guru-table-ruta, .guru-table-tramo)) table thead th:hover,
.wp-block-table:not(:is(.guru-table-ruta, .guru-table-tramo)) table thead td:hover,
.wp-block-table:not(:is(.guru-table-ruta, .guru-table-tramo)) table > tbody:first-child > tr:first-child > td:hover {
	background-color: #f2f2f2 !important;
}

/* =============================================================================
   Tramo / ruta — cabecera naranja, 1ª columna oscura, celdas #e0e0e0
   Requiere clase guru-table-tramo o guru-table-ruta en el <figure>.
   ============================================================================= */

.wp-block-table:is(.guru-table-ruta, .guru-table-tramo) table {
	width: 100%;
	min-width: 32rem;
	margin: 0;
	border-collapse: separate;
	border-spacing: 0;
	border: 2px solid #fff;
	border-radius: 20px;
	overflow: hidden;
	font-size: clamp(0.8125rem, 1.4vw, 0.95rem);
	color: #333;
	font-family: inherit;
}

.wp-block-table:is(.guru-table-ruta, .guru-table-tramo) table th,
.wp-block-table:is(.guru-table-ruta, .guru-table-tramo) table td {
	padding: clamp(0.65rem, 2vw, 1rem);
	line-height: 1.45;
	vertical-align: middle;
	text-align: center;
	border: 1px solid #fff;
}

/*
 * Cabecera naranja: <thead>, o primera fila del <tbody> (th/td).
 * Los temas/Elementor suelen poner color en <strong>; por eso repetimos en *.
 */
.wp-block-table:is(.guru-table-ruta, .guru-table-tramo) table thead th,
.wp-block-table:is(.guru-table-ruta, .guru-table-tramo) table thead td,
.wp-block-table:is(.guru-table-ruta, .guru-table-tramo) table > tbody:first-child > tr:first-child > th,
.wp-block-table:is(.guru-table-ruta, .guru-table-tramo) table > tbody:first-child > tr:first-child > td {
	background-color: #f2994a !important;
	color: #fff !important;
	font-weight: 700;
	text-transform: uppercase;
	font-size: 0.8125rem;
	letter-spacing: 0.04em;
}

.wp-block-table:is(.guru-table-ruta, .guru-table-tramo) table thead th *,
.wp-block-table:is(.guru-table-ruta, .guru-table-tramo) table thead td *,
.wp-block-table:is(.guru-table-ruta, .guru-table-tramo) table > tbody:first-child > tr:first-child > th *,
.wp-block-table:is(.guru-table-ruta, .guru-table-tramo) table > tbody:first-child > tr:first-child > td * {
	color: #fff !important;
}

.wp-block-table:is(.guru-table-ruta, .guru-table-tramo) table thead ~ tbody > tr > td:not(:first-child),
.wp-block-table:is(.guru-table-ruta, .guru-table-tramo) table thead ~ tbody > tr > th:not(:first-child) {
	background-color: #e0e0e0 !important;
	color: #333 !important;
	font-weight: 400;
}

.wp-block-table:is(.guru-table-ruta, .guru-table-tramo) table thead ~ tbody > tr > td:not(:first-child) *,
.wp-block-table:is(.guru-table-ruta, .guru-table-tramo) table thead ~ tbody > tr > th:not(:first-child) * {
	color: #333 !important;
}

.wp-block-table:is(.guru-table-ruta, .guru-table-tramo) table > tbody:first-child > tr:not(:first-child) > td:not(:first-child),
.wp-block-table:is(.guru-table-ruta, .guru-table-tramo) table > tbody:first-child > tr:not(:first-child) > th:not(:first-child) {
	background-color: #e0e0e0 !important;
	color: #333 !important;
	font-weight: 400;
}

.wp-block-table:is(.guru-table-ruta, .guru-table-tramo) table > tbody:first-child > tr:not(:first-child) > td:not(:first-child) *,
.wp-block-table:is(.guru-table-ruta, .guru-table-tramo) table > tbody:first-child > tr:not(:first-child) > th:not(:first-child) * {
	color: #333 !important;
}

/* Primera columna (solo filas de datos) */
.wp-block-table:is(.guru-table-ruta, .guru-table-tramo) table thead ~ tbody > tr > td:first-child,
.wp-block-table:is(.guru-table-ruta, .guru-table-tramo) table thead ~ tbody > tr > th:first-child {
	background-color: #4a4a4a !important;
	color: #fff !important;
	font-weight: 700;
	text-transform: none;
}

.wp-block-table:is(.guru-table-ruta, .guru-table-tramo) table thead ~ tbody > tr > td:first-child *,
.wp-block-table:is(.guru-table-ruta, .guru-table-tramo) table thead ~ tbody > tr > th:first-child * {
	color: #fff !important;
}

.wp-block-table:is(.guru-table-ruta, .guru-table-tramo) table > tbody:first-child > tr:not(:first-child) > td:first-child,
.wp-block-table:is(.guru-table-ruta, .guru-table-tramo) table > tbody:first-child > tr:not(:first-child) > th:first-child {
	background-color: #4a4a4a !important;
	color: #fff !important;
	font-weight: 700;
	text-transform: none;
}

.wp-block-table:is(.guru-table-ruta, .guru-table-tramo) table > tbody:first-child > tr:not(:first-child) > td:first-child *,
.wp-block-table:is(.guru-table-ruta, .guru-table-tramo) table > tbody:first-child > tr:not(:first-child) > th:first-child * {
	color: #fff !important;
}

.wp-block-table:is(.guru-table-ruta, .guru-table-tramo) table thead tr:first-child th:first-child,
.wp-block-table:is(.guru-table-ruta, .guru-table-tramo) table thead tr:first-child td:first-child {
	border-top-left-radius: 18px;
}

.wp-block-table:is(.guru-table-ruta, .guru-table-tramo) table thead tr:first-child th:last-child,
.wp-block-table:is(.guru-table-ruta, .guru-table-tramo) table thead tr:first-child td:last-child {
	border-top-right-radius: 18px;
}

.wp-block-table:is(.guru-table-ruta, .guru-table-tramo) table > tbody:first-child > tr:first-child > th:first-child,
.wp-block-table:is(.guru-table-ruta, .guru-table-tramo) table > tbody:first-child > tr:first-child > td:first-child {
	border-top-left-radius: 18px;
}

.wp-block-table:is(.guru-table-ruta, .guru-table-tramo) table > tbody:first-child > tr:first-child > th:last-child,
.wp-block-table:is(.guru-table-ruta, .guru-table-tramo) table > tbody:first-child > tr:first-child > td:last-child {
	border-top-right-radius: 18px;
}

.wp-block-table:is(.guru-table-ruta, .guru-table-tramo) table tbody > tr:last-child > td:first-child,
.wp-block-table:is(.guru-table-ruta, .guru-table-tramo) table tbody > tr:last-child > th:first-child {
	border-bottom-left-radius: 18px;
}

.wp-block-table:is(.guru-table-ruta, .guru-table-tramo) table tbody > tr:last-child > td:last-child,
.wp-block-table:is(.guru-table-ruta, .guru-table-tramo) table tbody > tr:last-child > th:last-child {
	border-bottom-right-radius: 18px;
}

.block-editor-block-list__block .wp-block-table {
	overflow-x: auto;
}
