/* =========================================================
   Galatzó Trail · CSS general de la web
   Dónde va: Apariencia > Personalizar > CSS adicional.
   Se pega entero y SUSTITUYE al anterior (no se añade debajo).

   Solo afecta a filas y columnas que llevan clases que empiezan
   por gt- en "Clase CSS adicional". El resto de la web no cambia.
   Cada fila de un diseño nuevo lleva "gt-seccion" + la clase de
   su pieza (por ejemplo "gt-seccion gt-agenda").

   Colores de fondo, fotos de fondo y colores de botones se
   cambian desde las opciones de cada elemento, no desde aquí.

   Índice
   0. Colores y tipos de letra
   1. Base de todas las secciones
   2. Cabecera con foto ............ gt-cabecera
   3. Tarjetas de carreras .......... gt-carreras / gt-carrera
   4. Foto + texto + cifras ......... gt-entorno
   5. Agenda por días ............... gt-agenda / gt-dia
   6. Accesos con icono ............. gt-accesos / gt-acceso
   7. Opiniones ..................... gt-opiniones / gt-opinion
   8. Llamada final con foto ........ gt-llamada
   9. Texto + mapa .................. gt-llegar
   10. Patrocinadores ............... gt-patrocinadores
   11. Otras carreras ............... gt-otras / gt-otra
   12. Acordeón ..................... gt-practica
   13. Páginas de carrera ........... gt-franja, gt-precio, gt-punto,
                                      gt-perfil, gt-ruta, gt-descargas,
                                      gt-aviso, gt-puntos-km
       Páginas de información ....... gt-tarjeta, gt-estrecha, gt-check,
                                      gt-lista, gt-plazo, gt-categorias
   14. Hasta 960 px (lo que fuerza el tema)
   15. Tablet
   16. Móvil
   ========================================================= */


/* ---------- 0. Colores y tipos de letra ---------- */

:root {
  --gt-verde: #98bf17;
  --gt-naranja: #f49c04;
  --gt-morado: #7c247c;
  --gt-tinta: #161616;
  --gt-texto: #3d3d3d;
  --gt-linea: #e4e2d8;
  --gt-piedra: #f3f2ec;
  --gt-radio: 14px;
  --gt-titular: "Road Rage", Staatliches, Impact, sans-serif;
  --gt-rotulo: Staatliches, Impact, sans-serif;
  --gt-letra: Asap, system-ui, sans-serif;
}


/* ---------- 1. Base de todas las secciones ---------- */

.gt-seccion {
  padding-top: 96px;
  padding-bottom: 96px;
  background-color: #fff;
  font-family: var(--gt-letra);
}

/* Márgenes que el tema pone debajo de cada elemento: los controlamos aquí */
.gt-seccion .wpb_content_element {
  margin-bottom: 0;
}

/* Sin márgenes de serie en los párrafos (con :where para que
   cualquier regla de una pieza pueda poner los suyos) */
.gt-seccion :where(.wpb_text_column p) {
  margin: 0;
}

/* El tema añade 20 px bajo el último párrafo de cada bloque de texto
   con una regla muy fuerte (#wrapper). Por eso, en estas secciones,
   el espacio de debajo se pone en el bloque y no en el párrafo. */
#wrapper .gt-seccion .wpb_text_column p:last-child {
  margin-bottom: 0;
}

.gt-seccion a:focus-visible {
  outline: 3px solid var(--gt-verde);
  outline-offset: 3px;
}

/* Lo que va después de una fila de columnas empieza debajo, no al lado */
.gt-seccion .vc_inner + * {
  clear: both;
}

/* Títulos de sección */
.gt-seccion h2.vc_custom_heading {
  margin: 0 0 12px;
  color: var(--gt-tinta);
  font-family: var(--gt-titular);
  font-size: clamp(40px, 5vw, 64px);
  font-weight: 400;
  line-height: 1;
  text-transform: none;
}

/* Secciones sin texto de entrada: más aire bajo el título */
.gt-opiniones h2.vc_custom_heading,
.gt-patrocinadores h2.vc_custom_heading,
.gt-otras h2.vc_custom_heading {
  margin-bottom: 48px;
}

/* Texto de entrada bajo el título */
.gt-seccion .gt-intro {
  margin-bottom: 48px;
}

.gt-seccion .gt-intro p {
  max-width: 40em;
  margin-right: auto;
  margin-left: auto;
  color: var(--gt-texto);
  font-size: 19px;
  line-height: 1.5;
  text-align: center;
}

/* Etiqueta pequeña encima de un título */
.gt-seccion .gt-antetitulo {
  margin-bottom: 12px;
}

.gt-antetitulo p {
  color: var(--gt-tinta);
  font-family: var(--gt-rotulo);
  font-size: 20px;
  letter-spacing: 1.5px;
}

.gt-antetitulo p::before {
  content: "";
  display: inline-block;
  width: 28px;
  height: 4px;
  margin: 0 10px 5px 0;
  background: var(--gt-verde);
  vertical-align: middle;
}

/* Texto corrido */
.gt-texto p {
  color: var(--gt-texto);
  font-size: 18px;
  line-height: 1.6;
}

.gt-texto p + p {
  margin-top: 14px;
}

.gt-texto strong {
  color: var(--gt-tinta);
}

.gt-texto a {
  color: var(--gt-tinta);
  font-weight: 600;
  text-decoration: underline;
  text-decoration-color: var(--gt-verde);
  text-decoration-thickness: 2px;
  text-underline-offset: 4px;
}

/* Botones de WPBakery dentro de las secciones */
.gt-seccion .vc_btn3 {
  font-family: var(--gt-rotulo);
  letter-spacing: 1px;
}

.gt-seccion .vc_btn3.vc_btn3-size-md {
  padding: 13px 26px;
  font-size: 19px;
  line-height: 1.2;
}

.gt-seccion .vc_btn3.vc_btn3-size-lg {
  padding: 15px 30px;
  border-width: 2px;
  font-size: 21px;
  line-height: 1.2;
}

.gt-seccion .vc_btn3-style-custom:hover {
  filter: brightness(.9);
}

/* Tarjeta blanca (carreras, agenda, accesos, opiniones, otras carreras) */
.gt-carrera > .vc_column-inner > .wpb_wrapper,
.gt-dia > .vc_column-inner > .wpb_wrapper,
.gt-acceso > .vc_column-inner > .wpb_wrapper,
.gt-opinion > .vc_column-inner > .wpb_wrapper,
.gt-otra > .vc_column-inner > .wpb_wrapper {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  position: relative;
  border-radius: var(--gt-radio);
  background: #fff;
  box-shadow: 0 1px 2px rgba(0, 0, 0, .06), 0 14px 34px -14px rgba(0, 0, 0, .2);
}


/* ---------- 2. Cabecera con foto ---------- */

.gt-seccion.gt-cabecera {
  position: relative;
  padding-top: 240px;
  padding-bottom: 130px;
}

/* Capa oscura sobre la foto para que el texto se lea */
.gt-cabecera::before,
.gt-llamada::before {
  content: "";
  display: block;
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.gt-cabecera::before {
  background: linear-gradient(90deg, rgba(12, 16, 8, .82) 0%, rgba(12, 16, 8, .55) 50%, rgba(12, 16, 8, .15) 100%);
}

.gt-cabecera > .wpb_column,
.gt-llamada > .wpb_column {
  position: relative;
  z-index: 1;
}

.gt-seccion .gt-cabecera__fecha {
  margin-bottom: 20px;
}

.gt-cabecera__fecha p {
  display: inline-block;
  padding: 6px 12px 4px;
  background: var(--gt-verde);
  color: var(--gt-tinta);
  font-family: var(--gt-rotulo);
  font-size: 20px;
  line-height: 1.2;
  letter-spacing: 1px;
}

.gt-cabecera h1.vc_custom_heading {
  margin: 0 0 20px;
  color: #fff;
  font-family: var(--gt-titular);
  font-size: clamp(56px, 8vw, 116px);
  font-weight: 400;
  line-height: .95;
  letter-spacing: 0;
  text-transform: none;
}

.gt-seccion .gt-cabecera__texto {
  margin-bottom: 32px;
}

.gt-cabecera__texto p {
  max-width: 32em;
  color: #fff;
  font-size: clamp(18px, 1.6vw, 21px);
  line-height: 1.5;
}

.gt-cabecera .vc_btn3-container {
  margin: 0 12px 12px 0;
}


/* ---------- 3. Tarjetas de carreras ---------- */

/* Color de cada carrera, el mismo que en el logo */
.gt-carrera--43 { --gt-color: var(--gt-verde);   --gt-color-texto: var(--gt-tinta); }
.gt-carrera--23 { --gt-color: var(--gt-naranja); --gt-color-texto: var(--gt-tinta); }
.gt-carrera--12 { --gt-color: var(--gt-morado);  --gt-color-texto: #fff; }

.gt-carrera,
.gt-otra {
  --gt-pad: 28px;
}

.gt-carrera > .vc_column-inner > .wpb_wrapper,
.gt-otra > .vc_column-inner > .wpb_wrapper {
  overflow: hidden;
  padding: 0 var(--gt-pad) 24px;
}

.gt-carrera > .vc_column-inner > .wpb_wrapper {
  border-top: 6px solid var(--gt-color);
}

/* La foto ocupa todo el ancho de la tarjeta */
.gt-carrera .wpb_single_image,
.gt-otra .wpb_single_image {
  margin: 0 calc(var(--gt-pad) * -1);
}

.gt-carrera .wpb_single_image .vc_figure,
.gt-carrera .wpb_single_image .vc_single_image-wrapper,
.gt-otra .wpb_single_image .vc_figure,
.gt-otra .wpb_single_image .vc_single_image-wrapper {
  display: block;
  width: 100%;
  margin: 0;
}

.gt-carrera .wpb_single_image img,
.gt-otra .wpb_single_image img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: cover;
}

.gt-otra .wpb_single_image img {
  aspect-ratio: 16 / 9;
}

.gt-carrera__etiqueta {
  position: relative;
  margin-top: -22px;
}

.gt-carrera__etiqueta p {
  display: inline-block;
  padding: 6px 14px 4px;
  border-radius: 6px;
  background: var(--gt-color);
  color: var(--gt-color-texto);
  font-family: var(--gt-rotulo);
  font-size: 26px;
  line-height: 1.1;
  letter-spacing: 1px;
}

.gt-carrera h3.vc_custom_heading,
.gt-otra h3.vc_custom_heading {
  margin: 14px 0 12px;
  color: var(--gt-tinta);
  font-family: var(--gt-rotulo);
  font-size: 34px;
  font-weight: 400;
  line-height: 1.05;
  letter-spacing: .5px;
  text-transform: none;
}

.gt-otra h3.vc_custom_heading {
  margin-top: 24px;
  margin-bottom: 4px;
}

.gt-seccion .gt-carrera__datos ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.gt-seccion .gt-carrera__datos ul > li {
  margin: 0;
  padding: 10px 0;
  border-bottom: 1px solid var(--gt-linea);
  color: var(--gt-texto);
  font-size: 16px;
  line-height: 1.4;
}

/* El tema pone un icono delante de cada punto de lista: aquí no */
.gt-seccion .gt-carrera__datos ul > li::before,
.gt-seccion .gt-dia ul > li::before {
  display: none;
}

.gt-carrera__datos strong {
  margin-right: 4px;
  color: var(--gt-tinta);
  font-family: var(--gt-rotulo);
  font-size: 22px;
  font-weight: 400;
  letter-spacing: .5px;
}

.gt-seccion .gt-carrera__precio {
  margin: 18px 0 24px;
}

.gt-carrera__precio p {
  color: var(--gt-texto);
  font-size: 16px;
  line-height: 1.4;
}

/* El botón baja al final para que las tarjetas queden alineadas */
.gt-carrera .vc_btn3-container,
.gt-otra .vc_btn3-container {
  margin-top: auto;
  margin-bottom: 0;
}

.gt-carrera .vc_btn3 {
  display: block;
  width: 100%;
  text-align: center;
}

.gt-seccion .gt-carrera__mas {
  margin-top: 14px;
}

.gt-carrera__mas p {
  text-align: center;
}

.gt-carrera__mas a {
  color: var(--gt-tinta);
  font-size: 16px;
  font-weight: 600;
  text-decoration: underline;
  text-decoration-color: var(--gt-color);
  text-decoration-thickness: 2px;
  text-underline-offset: 4px;
}

/* Línea común bajo las tarjetas */
.gt-seccion .gt-incluye {
  margin-top: 40px;
}

.gt-seccion .gt-incluye p {
  max-width: 46em;
  margin-right: auto;
  margin-left: auto;
  color: var(--gt-texto);
  font-size: 17px;
  line-height: 1.5;
  text-align: center;
}

.gt-incluye strong {
  color: var(--gt-tinta);
}


/* ---------- 4. Foto + texto + cifras ---------- */

.gt-entorno__foto img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  border-radius: var(--gt-radio);
  object-fit: cover;
}

.gt-entorno__foto .vc_figure,
.gt-entorno__foto .vc_single_image-wrapper {
  display: block;
  width: 100%;
}

.gt-entorno h2.vc_custom_heading {
  margin-bottom: 20px;
}

.gt-cifras {
  margin-top: 28px;
}

.gt-cifra p {
  padding-top: 12px;
  border-top: 4px solid var(--gt-verde);
  color: var(--gt-texto);
  font-size: 16px;
  line-height: 1.4;
}

.gt-cifra strong {
  display: block;
  margin-bottom: 4px;
  color: var(--gt-tinta);
  font-family: var(--gt-rotulo);
  font-size: 44px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: .5px;
}


/* ---------- 5. Agenda por días ---------- */

.gt-dia > .vc_column-inner > .wpb_wrapper {
  padding: 32px;
}

.gt-dia h3.vc_custom_heading {
  margin: 0 0 8px;
  padding-bottom: 14px;
  border-bottom: 4px solid var(--gt-verde);
  color: var(--gt-tinta);
  font-family: var(--gt-rotulo);
  font-size: 30px;
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: .5px;
  text-transform: none;
}

.gt-seccion .gt-dia ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.gt-seccion .gt-dia ul > li {
  display: grid;
  grid-template-columns: 5.5em 1fr;
  column-gap: 16px;
  margin: 0;
  padding: 12px 0;
  border-bottom: 1px solid var(--gt-linea);
  color: var(--gt-texto);
  font-size: 16px;
  line-height: 1.45;
}

.gt-dia li strong {
  color: var(--gt-tinta);
  font-family: var(--gt-rotulo);
  font-size: 21px;
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: .5px;
}

.gt-dia ul + p {
  margin-top: 16px;
  color: var(--gt-texto);
  font-size: 15px;
  line-height: 1.5;
}

.gt-agenda .gt-dia + .vc_btn3-container,
.gt-agenda .vc_inner + .vc_btn3-container {
  margin-top: 40px;
}


/* ---------- 6. Accesos con icono ---------- */

.gt-acceso > .vc_column-inner > .wpb_wrapper {
  padding: 28px;
  border: 1px solid var(--gt-linea);
  box-shadow: none;
  transition: border-color .2s, transform .2s;
}

.gt-acceso > .vc_column-inner > .wpb_wrapper:hover {
  border-color: var(--gt-verde);
  transform: translateY(-2px);
}

.gt-acceso .vc_icon_element {
  margin-bottom: 18px;
}

.gt-acceso .vc_icon_element .vc_icon_element-inner {
  width: 56px;
  height: 56px;
}

.gt-acceso .vc_icon_element .vc_icon_element-icon {
  font-size: 22px;
}

.gt-acceso h3.vc_custom_heading {
  margin: 0 0 6px;
  font-family: var(--gt-rotulo);
  font-size: 26px;
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: .5px;
  text-transform: none;
}

.gt-acceso h3.vc_custom_heading a {
  color: var(--gt-tinta);
  text-decoration: none;
}

/* Toda la tarjeta es clicable, no solo el título */
.gt-acceso h3.vc_custom_heading a::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: var(--gt-radio);
}

.gt-acceso .wpb_text_column p {
  color: var(--gt-texto);
  font-size: 16px;
  line-height: 1.45;
}


/* ---------- 7. Opiniones ---------- */

.gt-opinion > .vc_column-inner > .wpb_wrapper {
  padding: 32px;
}

/* Cinco estrellas de adorno */
.gt-opinion > .vc_column-inner > .wpb_wrapper::before {
  content: "★★★★★";
  margin-bottom: 14px;
  color: var(--gt-naranja);
  font-size: 18px;
  letter-spacing: 3px;
}

.gt-opinion .wpb_text_column p {
  color: var(--gt-tinta);
  font-size: 18px;
  line-height: 1.55;
}

.gt-opinion .wpb_text_column p + p {
  margin-top: 18px;
}

.gt-opinion strong {
  font-family: var(--gt-rotulo);
  font-size: 20px;
  font-weight: 400;
  letter-spacing: .5px;
}


/* ---------- 8. Llamada final con foto ---------- */

.gt-seccion.gt-llamada {
  position: relative;
  padding-top: 150px;
  padding-bottom: 150px;
}

.gt-llamada::before {
  background: rgba(12, 16, 8, .55);
}

.gt-llamada h2.vc_custom_heading {
  color: #fff;
  font-size: clamp(52px, 7vw, 96px);
}

.gt-seccion .gt-llamada__texto {
  margin: 8px 0 32px;
}

.gt-seccion .gt-llamada__texto p {
  max-width: 30em;
  margin-right: auto;
  margin-left: auto;
  color: #fff;
  font-size: 20px;
  line-height: 1.5;
  text-align: center;
}


/* ---------- 9. Texto + mapa ---------- */

.gt-llegar h2.vc_custom_heading {
  margin-bottom: 20px;
}

.gt-mapa .wpb_map_wraper {
  overflow: hidden;
  border-radius: var(--gt-radio);
}

.gt-mapa iframe {
  display: block;
  width: 100%;
}


/* ---------- 10. Patrocinadores ---------- */

.gt-seccion.gt-patrocinadores {
  padding-top: 80px;
  padding-bottom: 80px;
}

.gt-patrocinadores h2.vc_custom_heading {
  font-size: clamp(34px, 4vw, 48px);
}

.gt-logos .wpb_single_image {
  padding: 12px 0;
}

/* Los logos son losetas de 396 x 312: todas al mismo tamaño */
.gt-logos .wpb_single_image .vc_single_image-wrapper {
  display: inline-block;
  width: 100%;
  max-width: 220px;
}

.gt-logos .wpb_single_image img {
  width: 100%;
  height: auto;
  aspect-ratio: 396 / 312;
  object-fit: contain;
}

.gt-its {
  margin-top: 40px;
  padding-top: 40px;
  border-top: 1px solid var(--gt-linea);
}

.gt-its .wpb_single_image img {
  width: 100%;
  max-width: 460px;
  height: auto;
}

.gt-its .wpb_text_column p {
  color: var(--gt-texto);
  font-size: 16px;
  line-height: 1.5;
}

.gt-its .wpb_text_column p + p {
  margin-top: 8px;
}

.gt-its .wpb_text_column a {
  color: var(--gt-tinta);
  font-weight: 600;
  text-decoration: underline;
  text-decoration-color: var(--gt-verde);
  text-decoration-thickness: 2px;
  text-underline-offset: 4px;
}


/* ---------- 11. Otras carreras ---------- */

.gt-seccion .gt-otra .wpb_text_column {
  margin-bottom: 20px;
}

.gt-otra .wpb_text_column p {
  color: var(--gt-texto);
  font-size: 17px;
}

.gt-otra .vc_btn3-container {
  margin-bottom: 4px;
}


/* ---------- 12. Acordeón ---------- */

.gt-seccion.gt-practica .vc_tta.vc_tta-accordion .vc_tta-panel {
  border-bottom: 1px solid var(--gt-linea);
}

.gt-seccion.gt-practica .vc_tta.vc_tta-accordion .vc_tta-panel:first-child {
  border-top: 1px solid var(--gt-linea);
}

.gt-seccion.gt-practica .vc_tta.vc_tta-accordion .vc_tta-panel .vc_tta-panel-heading,
.gt-seccion.gt-practica .vc_tta.vc_tta-accordion .vc_tta-panel .vc_tta-panel-body {
  border: 0;
  background: #fff;
}

/* El tema centra los títulos del acordeón: aquí van a la izquierda */
.gt-seccion.gt-practica .vc_tta.vc_tta-accordion .vc_tta-panel-title {
  text-align: left;
}

.gt-seccion.gt-practica .vc_tta.vc_tta-accordion .vc_tta-panel-title > a {
  display: block;
  padding: 22px 56px 22px 24px;
  color: var(--gt-tinta);
  font-family: var(--gt-rotulo);
  font-size: 24px;
  line-height: 1.2;
  letter-spacing: .5px;
  text-align: left;
}

.gt-seccion.gt-practica .vc_tta.vc_tta-accordion .vc_tta-controls-icon {
  right: 24px;
}

.gt-seccion.gt-practica .vc_tta.vc_tta-accordion .vc_tta-controls-icon::before,
.gt-seccion.gt-practica .vc_tta.vc_tta-accordion .vc_tta-controls-icon::after {
  border-color: var(--gt-tinta);
}

.gt-seccion.gt-practica .vc_tta.vc_tta-accordion .vc_tta-panel-body {
  padding: 0 24px 24px;
  color: var(--gt-texto);
  font-size: 17px;
  line-height: 1.6;
}

.gt-seccion.gt-practica .gt-intro {
  margin-bottom: 24px;
}

.gt-seccion.gt-practica .gt-intro p {
  margin-left: 0;
  text-align: left;
}

.gt-practica .vc_tta-panel-body p + p,
.gt-practica .vc_tta-panel-body p + ul {
  margin-top: 10px;
}

.gt-practica .vc_tta-panel-body a {
  color: var(--gt-tinta);
  font-weight: 600;
  text-decoration: underline;
  text-decoration-color: var(--gt-verde);
  text-decoration-thickness: 2px;
  text-underline-offset: 4px;
}


/* ---------- 13. Páginas de carrera ---------- */

/* Fila de dos columnas con aire entre ellas (clase gt-separadas en la fila) */
@media (min-width: 960px) {
  .gt-separadas > .wpb_column:first-child > .vc_column-inner {
    padding-right: 40px;
  }

  .gt-separadas > .wpb_column:last-child > .vc_column-inner {
    padding-left: 40px;
  }
}

/* Espacio debajo de un bloque de texto */
.gt-seccion .gt-espacio {
  margin-bottom: 24px;
}

/* Franja de cifras clave */
.gt-seccion.gt-franja {
  padding-top: 56px;
  padding-bottom: 56px;
}

.gt-franja .gt-cifra strong {
  font-size: 48px;
}

/* Tarjeta de precio por cupos */
.gt-precio > .vc_column-inner > .wpb_wrapper,
.gt-tarjeta > .vc_column-inner > .wpb_wrapper {
  flex: 1 1 auto;
  padding: 32px;
  border-top: 6px solid var(--gt-verde);
  border-radius: var(--gt-radio);
  background: #fff;
  box-shadow: 0 1px 2px rgba(0, 0, 0, .06), 0 14px 34px -14px rgba(0, 0, 0, .2);
}

.gt-precio h3.vc_custom_heading,
.gt-tarjeta h3.vc_custom_heading {
  margin: 0 0 8px;
  color: var(--gt-tinta);
  font-family: var(--gt-rotulo);
  font-size: 30px;
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: .5px;
  text-transform: none;
}

.gt-seccion .gt-precio__tramos ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.gt-seccion .gt-precio__tramos ul > li {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin: 0;
  padding: 12px 0;
  border-bottom: 1px solid var(--gt-linea);
  color: var(--gt-texto);
  font-size: 16px;
  line-height: 1.3;
}

.gt-seccion .gt-precio__tramos ul > li::before,
.gt-seccion .gt-puntos-km ul > li::before {
  display: none;
}

.gt-precio__tramos strong {
  color: var(--gt-tinta);
  font-family: var(--gt-rotulo);
  font-size: 28px;
  font-weight: 400;
}

.gt-seccion .gt-precio__incluye {
  margin: 18px 0 24px;
}

.gt-precio__incluye p {
  color: var(--gt-texto);
  font-size: 15px;
  line-height: 1.5;
}

.gt-precio .vc_btn3 {
  display: block;
  width: 100%;
  text-align: center;
}

/* Puntos numerados */
.gt-punto > .vc_column-inner > .wpb_wrapper {
  flex: 1 1 auto;
  padding: 28px;
  border-radius: var(--gt-radio);
  background: var(--gt-piedra);
}

.gt-punto p {
  color: var(--gt-tinta);
  font-size: 18px;
  line-height: 1.45;
}

.gt-punto strong {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  margin-bottom: 14px;
  border-radius: 50%;
  background: var(--gt-verde);
  color: var(--gt-tinta);
  font-family: var(--gt-rotulo);
  font-size: 24px;
  font-weight: 400;
}

/* Frase suelta centrada bajo un bloque */
.gt-seccion .gt-nota {
  margin-top: 32px;
}

.gt-seccion .gt-nota p {
  max-width: 46em;
  margin-right: auto;
  margin-left: auto;
  color: var(--gt-texto);
  font-size: 17px;
  line-height: 1.5;
  text-align: center;
}

/* Perfil de la carrera: imagen a todo el ancho */
.gt-seccion .gt-perfil {
  margin-bottom: 56px;
}

.gt-perfil .vc_figure,
.gt-perfil .vc_single_image-wrapper {
  display: block;
  width: 100%;
}

.gt-perfil img {
  display: block;
  width: 100%;
  max-width: 1040px;
  margin: 0 auto;
  height: auto;
  border-radius: var(--gt-radio);
  cursor: zoom-in;
}

.gt-recorrido__abajo h3.vc_custom_heading,
.gt-seccion > .wpb_column > .vc_column-inner > .wpb_wrapper > h3.vc_custom_heading {
  margin: 0 0 16px;
  color: var(--gt-tinta);
  font-family: var(--gt-rotulo);
  font-size: 28px;
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: .5px;
  text-transform: none;
}

/* Lista de lugares del recorrido, numerada y en dos columnas */
.gt-seccion .gt-ruta ol {
  margin: 0;
  padding: 0;
  list-style: none;
  counter-reset: gt-ruta;
  columns: 2;
  column-gap: 32px;
}

.gt-seccion .gt-ruta ol > li {
  display: grid;
  grid-template-columns: 2.2em 1fr;
  margin: 0;
  padding: 6px 0;
  break-inside: avoid;
  counter-increment: gt-ruta;
  color: var(--gt-texto);
  font-size: 16px;
  line-height: 1.4;
}

.gt-seccion .gt-ruta ol > li::before {
  content: counter(gt-ruta);
  position: static;
  width: auto;
  height: auto;
  margin: 0;
  background: none;
  color: #5f7a0b;
  font-family: var(--gt-rotulo);
  font-size: 18px;
  font-weight: 400;
  line-height: 1.3;
}

.gt-ruta strong {
  color: var(--gt-tinta);
}

/* Botones de descarga, uno debajo de otro */
.gt-seccion .gt-descargas .wpb_text_column {
  margin-bottom: 18px;
}

.gt-descargas .wpb_text_column p {
  color: var(--gt-texto);
  font-size: 16px;
  line-height: 1.5;
}

.gt-descargas .vc_btn3-container {
  display: block;
  margin: 0 0 10px;
}

.gt-descargas .vc_btn3 {
  display: block;
  width: 100%;
  border-width: 2px;
  text-align: center;
}

/* Aviso importante */
.gt-seccion .gt-aviso {
  margin: 8px 0 24px;
}

.gt-aviso p {
  padding: 16px 20px;
  border-left: 6px solid var(--gt-naranja);
  border-radius: 0 10px 10px 0;
  background: #fff6e5;
  color: var(--gt-tinta);
  font-size: 17px;
  line-height: 1.5;
}

/* Puntos kilométricos en fichas */
.gt-seccion .gt-puntos-km ul {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.gt-seccion .gt-puntos-km ul > li {
  margin: 0;
  padding: 12px 14px;
  border-radius: 10px;
  background: #fff;
  color: var(--gt-tinta);
  font-size: 16px;
  line-height: 1.3;
}


/* Un título de apartado después de otro bloque lleva aire encima */
.gt-seccion > .wpb_column > .vc_column-inner > .wpb_wrapper > * + h3.vc_custom_heading {
  margin-top: 48px;
}

/* Lo que va justo debajo de una fila de tarjetas */
.gt-seccion .vc_inner + .vc_btn3-container,
.gt-seccion .vc_inner + .gt-aviso {
  margin-top: 28px;
}

/* Tarjetas de carrera sin foto (precios) */
.gt-carrera--sin-foto .gt-carrera__etiqueta {
  margin-top: 28px;
}

.gt-seccion .gt-carrera .gt-precio__tramos {
  margin-bottom: 24px;
}

/* Fila de lectura: el contenido no pasa de 1000 px (clase gt-estrecha en la fila) */
.gt-estrecha > .wpb_column > .vc_column-inner {
  max-width: 1000px;
  margin-right: auto;
  margin-left: auto;
}

/* Bloque centrado y estrecho */
.gt-seccion .gt-centrado {
  max-width: 760px;
  margin-right: auto;
  margin-left: auto;
}

.gt-seccion .gt-aviso.gt-centrado {
  margin-top: 40px;
  margin-bottom: 0;
}

/* Aire encima de un bloque */
.gt-seccion .gt-arriba {
  margin-top: 32px;
}

/* Lista con marca verde, en columnas */
.gt-seccion .gt-check ul {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0;
  list-style: none;
  columns: 3;
  column-gap: 40px;
}

.gt-seccion .gt-check ul > li {
  position: relative;
  margin: 0;
  padding: 10px 0 10px 36px;
  break-inside: avoid;
  color: var(--gt-tinta);
  font-size: 17px;
  line-height: 1.4;
}

.gt-seccion .gt-check ul > li::before {
  content: "";
  display: block;
  position: absolute;
  top: 10px;
  left: 0;
  width: 24px;
  height: 24px;
  margin: 0;
  border-radius: 50%;
  background: var(--gt-verde);
  font-size: 0;
}

.gt-seccion .gt-check ul > li::after {
  content: "";
  display: block;
  position: absolute;
  top: 15px;
  left: 9px;
  width: 6px;
  height: 11px;
  border: solid var(--gt-tinta);
  border-width: 0 2.5px 2.5px 0;
  transform: rotate(45deg);
}

/* Lista sencilla con cuadradito verde */
.gt-seccion .gt-lista ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.gt-seccion .gt-lista ul > li {
  position: relative;
  margin: 0;
  padding: 7px 0 7px 22px;
  color: var(--gt-texto);
  font-size: 17px;
  line-height: 1.5;
}

.gt-seccion .gt-lista ul > li::before {
  content: "";
  display: block;
  position: absolute;
  top: 17px;
  left: 0;
  width: 8px;
  height: 8px;
  margin: 0;
  border-radius: 2px;
  background: var(--gt-verde);
}

.gt-lista strong {
  color: var(--gt-tinta);
}

/* Plazos con porcentaje grande */
.gt-plazo > .vc_column-inner > .wpb_wrapper {
  flex: 1 1 auto;
  padding: 24px;
  border-top: 6px solid var(--gt-verde);
  border-radius: var(--gt-radio);
  background: var(--gt-piedra);
}

.gt-plazo--fin > .vc_column-inner > .wpb_wrapper {
  border-top-color: #b9b6a8;
}

.gt-plazo p {
  color: var(--gt-texto);
  font-size: 15px;
  line-height: 1.4;
}

.gt-plazo strong {
  display: block;
  margin-bottom: 6px;
  color: var(--gt-tinta);
  font-family: var(--gt-rotulo);
  font-size: 52px;
  font-weight: 400;
  line-height: 1;
}

/* Puntos numerados sobre fondo piedra: tarjeta blanca */
.gt-punto--blanco > .vc_column-inner > .wpb_wrapper {
  background: #fff;
}


/* Lista de categorías dentro de una tarjeta de carrera */
.gt-seccion .gt-categorias ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.gt-seccion .gt-categorias ul > li {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
  margin: 0;
  padding: 11px 0;
  border-bottom: 1px solid var(--gt-linea);
  color: var(--gt-tinta);
  font-size: 16px;
  line-height: 1.35;
}

.gt-seccion .gt-categorias ul > li::before {
  display: none;
}

.gt-categorias small {
  display: block;
  color: #6b6b6b;
  font-size: 14px;
}

.gt-categorias strong {
  flex: none;
  color: var(--gt-tinta);
  font-size: 16px;
  font-weight: 700;
}

.gt-seccion .gt-carrera .gt-categorias {
  margin-bottom: 16px;
}

/* Tarjeta sin botón: el enlace final baja al fondo */
.gt-seccion .gt-carrera--sin-boton .gt-carrera__mas {
  margin-top: auto;
  padding-top: 14px;
}


/* ---------- 14. Hasta 960 px: lo que fuerza el tema ----------
   EKKO pone a 28 px TODOS los títulos de WPBakery por debajo de
   960 px y quita el espacio entre columnas. Lo hace con !important,
   así que aquí también hace falta, siempre dentro de las clases gt-. */

@media (max-width: 960px) {
  .gt-cabecera h1.vc_custom_heading {
    font-size: clamp(60px, 14vw, 88px) !important;
    line-height: .95 !important;
  }

  .gt-seccion h2.vc_custom_heading {
    font-size: clamp(38px, 7vw, 52px) !important;
    line-height: 1 !important;
  }

  .gt-llamada h2.vc_custom_heading {
    font-size: clamp(48px, 10vw, 72px) !important;
  }

  .gt-carrera h3.vc_custom_heading,
  .gt-otra h3.vc_custom_heading,
  .gt-dia h3.vc_custom_heading {
    font-size: 28px !important;
    line-height: 1.1 !important;
  }

  .gt-dia h3.vc_custom_heading {
    padding-bottom: 14px !important;
  }

  .gt-acceso h3.vc_custom_heading {
    font-size: 24px !important;
    line-height: 1.1 !important;
  }
}


/* ---------- 15. Tablet (768 a 1024 px) ---------- */

@media (min-width: 768px) and (max-width: 1024px) {
  .gt-seccion.gt-cabecera {
    padding-top: 170px;
    padding-bottom: 96px;
  }

  .gt-carrera,
  .gt-otra {
    --gt-pad: 20px;
  }

  .gt-carrera__datos strong {
    font-size: 19px;
  }

  .gt-seccion .gt-check ul {
    columns: 2;
  }

  .gt-plazo strong {
    font-size: 42px;
  }

  .gt-dia > .vc_column-inner > .wpb_wrapper,
  .gt-acceso > .vc_column-inner > .wpb_wrapper,
  .gt-opinion > .vc_column-inner > .wpb_wrapper {
    padding: 22px;
  }
}

/* Separación entre tarjetas, que el tema quita por debajo de 960 px */
@media (min-width: 768px) and (max-width: 959px) {
  .gt-seccion .vc_row.wpb_row.vc_inner .vc_column-inner {
    padding-right: 8px !important;
    padding-left: 8px !important;
  }
}

/* Espacio entre texto y foto en dos columnas */
@media (min-width: 960px) {
  .gt-entorno > .wpb_column:last-child > .vc_column-inner,
  .gt-llegar > .wpb_column:first-child > .vc_column-inner {
    padding-left: 48px;
    padding-right: 48px;
  }
}


/* ---------- 16. Móvil (hasta 767 px) ---------- */

@media (max-width: 767px) {
  .gt-seccion {
    padding-top: 64px;
    padding-bottom: 64px;
  }

  .gt-seccion.gt-cabecera {
    padding-top: 130px;
    padding-bottom: 56px;
  }

  /* En vertical, la capa se oscurece hacia abajo, donde está el texto */
  .gt-cabecera::before {
    background: linear-gradient(180deg, rgba(12, 16, 8, .35) 0%, rgba(12, 16, 8, .85) 70%);
  }

  .gt-cabecera__fecha p {
    font-size: 17px;
  }

  .gt-cabecera .vc_btn3-container,
  .gt-llamada .vc_btn3-container {
    display: block;
    margin-right: 0;
  }

  .gt-cabecera .vc_btn3.vc_btn3-size-lg,
  .gt-llamada .vc_btn3.vc_btn3-size-lg {
    display: block;
    width: 100%;
    text-align: center;
  }

  .gt-seccion .gt-intro {
    margin-bottom: 32px;
  }

  .gt-opiniones h2.vc_custom_heading,
  .gt-patrocinadores h2.vc_custom_heading,
  .gt-otras h2.vc_custom_heading {
    margin-bottom: 28px;
  }

  /* El tema separa mucho las tarjetas apiladas: lo reducimos */
  .gt-seccion .vc_row.wpb_row.vc_inner .vc_column-inner {
    padding-top: 8px !important;
    padding-bottom: 8px !important;
  }

  .gt-carrera .wpb_single_image img {
    aspect-ratio: 16 / 9;
  }

  .gt-entorno > .wpb_column:first-child {
    margin-bottom: 28px;
  }

  .gt-cifra strong {
    font-size: 36px;
  }

  .gt-cifras .wpb_column + .wpb_column {
    margin-top: 8px;
  }

  .gt-dia > .vc_column-inner > .wpb_wrapper {
    padding: 24px 20px;
  }

  /* Accesos: icono a la izquierda y texto a la derecha */
  .gt-acceso > .vc_column-inner > .wpb_wrapper {
    display: grid;
    grid-template-columns: 48px 1fr;
    column-gap: 16px;
    align-items: start;
    padding: 18px;
  }

  .gt-acceso .vc_icon_element {
    grid-row: span 2;
    margin-bottom: 0;
  }

  .gt-acceso .vc_icon_element .vc_icon_element-inner {
    width: 48px;
    height: 48px;
  }

  .gt-acceso .vc_icon_element .vc_icon_element-icon {
    font-size: 19px;
  }

  .gt-acceso h3.vc_custom_heading {
    font-size: 22px !important;
  }

  .gt-opinion > .vc_column-inner > .wpb_wrapper {
    padding: 24px;
  }

  .gt-seccion.gt-llamada {
    padding-top: 96px;
    padding-bottom: 96px;
  }

  .gt-llegar > .wpb_column:first-child {
    margin-bottom: 24px;
  }

  /* Patrocinadores: dos logos por fila */
  .gt-logos > .wpb_column {
    float: left;
    width: 50%;
  }


  .gt-its .wpb_column + .wpb_column {
    margin-top: 16px;
  }

  .gt-its .wpb_text_column p {
    text-align: center;
  }

  /* Páginas de carrera */
  .gt-separadas > .wpb_column + .wpb_column {
    margin-top: 32px;
  }

  .gt-franja > .wpb_column {
    float: left;
    width: 50%;
  }

  .gt-franja > .wpb_column:nth-child(n+3) {
    margin-top: 24px;
  }

  .gt-franja .gt-cifra {
    padding-right: 12px;
  }

  .gt-franja .gt-cifra strong {
    font-size: 34px;
  }

  .gt-precio > .vc_column-inner > .wpb_wrapper {
    padding: 24px;
  }

  .gt-punto > .vc_column-inner > .wpb_wrapper {
    padding: 22px;
  }

  .gt-seccion .gt-perfil {
    margin-bottom: 36px;
  }

  .gt-seccion .gt-ruta ol {
    columns: 1;
  }

  .gt-descargas {
    margin-top: 24px;
  }

  /* Páginas de información */

  .gt-seccion .gt-check ul {
    columns: 1;
  }

  .gt-seccion .vc_inner > .gt-plazo {
    float: left;
    width: 50%;
  }

  .gt-seccion .vc_row.wpb_row.vc_inner .gt-plazo > .vc_column-inner {
    padding-right: 4px !important;
    padding-left: 4px !important;
  }

  .gt-plazo > .vc_column-inner > .wpb_wrapper {
    padding: 18px 16px;
  }

  .gt-plazo strong {
    font-size: 40px;
  }

  .gt-tarjeta > .vc_column-inner > .wpb_wrapper {
    padding: 24px;
  }
}
