

:root {
      --zt-azul: #159ad7;
      --zt-azul-hover: #087db6;
      --zt-azul-claro: #eaf6fc;
      --zt-azul-muy-claro: #f4fbfe;

      --zt-marino: #17324d;
      --zt-marino-oscuro: #10283c;

      --zt-texto: #263746;
      --zt-texto-secundario: #5e6e7b;

      --zt-blanco: #ffffff;
      --zt-negro: #000000;
      --zt-fondo: #f5f8fb;
      --zt-fondo-oscuro: #edf3f7;

      --zt-borde: #dce6ed;
      --zt-borde-oscuro: #cbd9e2;

      --zt-verde: #1fa463;
      --zt-verde-hover: #168553;

      --zt-amarillo: #f2bd33;
      --zt-rojo: #cf3d3d;

      --zt-sombra-pequena:
        0 6px 18px rgba(22, 50, 77, 0.07);

      --zt-sombra-media:
        0 12px 30px rgba(22, 50, 77, 0.11);

      --zt-sombra-grande:
        0 22px 55px rgba(22, 50, 77, 0.16);

      --zt-radio-pequeno: 10px;
      --zt-radio: 16px;
      --zt-radio-grande: 24px;

      --zt-ancho: 1180px;
      --zt-transicion: 0.2s ease;
    }

    *,
    *::before,
    *::after {
      box-sizing: border-box;
    }

    html {
      scroll-behavior: smooth;
      scroll-padding-top: 100px;
    }

    body {
      margin: 0;
      color: var(--zt-texto);
      background: var(--zt-blanco);
      font-family:
        Arial,
        Helvetica,
        sans-serif;
      font-size: 17px;
      line-height: 1.68;
      -webkit-font-smoothing: antialiased;
      text-rendering: optimizeLegibility;
    }

    body,
    button,
    input,
    select,
    textarea {
      font-family:
        Arial,
        Helvetica,
        sans-serif;
    }

    img {
      display: block;
      max-width: 100%;
      height: auto;
    }

    a {
      color: var(--zt-azul-hover);
      text-decoration: none;
    }

    a:hover {
      text-decoration: underline;
    }

    button,
    input,
    select,
    textarea {
      font: inherit;
    }

    button {
      border: 0;
    }

    h1,
    h2,
    h3,
    h4 {
      color: var(--zt-marino);
      line-height: 1.18;
      text-wrap: balance;
    }

    /* ---------------------------------------------------------
       H1 CORREGIDO: negro, ancho completo, tamaño grande.
       Se fuerza con !important porque muchas plantillas de CRM
       o WordPress imponen su propio color/ancho al h1.
       --------------------------------------------------------- */
    h1 {
      display: block !important;
      width: 100% !important;
      max-width: 980px !important;
      margin: 16px 0 22px !important;
      color: var(--zt-blanco) !important;
      -webkit-text-fill-color: var(--zt-blanco) !important;
      background: transparent !important;
      font-size: clamp(38px, 5vw, 68px) !important;
      font-weight: 800 !important;
      letter-spacing: -0.038em !important;
      line-height: 1.12 !important;
      text-shadow: none !important;
      white-space: normal !important;
    }

    /* ---------------------------------------------------------
       Título de portada: es un H2 (no un H1) a propósito, para
       no duplicar el H1 real que ya pone la página/CRM. Recibe
       el mismo tratamiento visual grande y en negro que antes
       tenía el H1.
       --------------------------------------------------------- */
    .zt-titulo-portada {
      display: block !important;
      width: 100% !important;
      max-width: 980px !important;
      margin: 16px 0 22px !important;
      color: var(--zt-negro) !important;
      -webkit-text-fill-color: var(--zt-negro) !important;
      background: transparent !important;
      font-size: clamp(36px, 4.6vw, 60px) !important;
      font-weight: 800 !important;
      letter-spacing: -0.03em !important;
      line-height: 1.14 !important;
      text-shadow: none !important;
      white-space: normal !important;
    }

    h2 {
      margin: 0 0 18px;
      font-size: clamp(30px, 3.6vw, 46px);
      letter-spacing: -0.026em;
    }

    h3 {
      margin: 0 0 13px;
      font-size: 23px;
      letter-spacing: -0.012em;
    }

    h4 {
      margin: 0 0 10px;
      font-size: 19px;
    }

    p {
      margin-top: 0;
    }

    strong {
      color: var(--zt-marino);
    }

    ul,
    ol {
      margin-top: 0;
    }

    .zt-contenedor {
      width: min(
        calc(100% - 32px),
        var(--zt-ancho)
      );
      margin-inline: auto;
    }

    .zt-saltar {
      position: absolute;
      left: -9999px;
      top: 0;
      width: 1px;
      height: 1px;
      overflow: hidden;
    }

    .zt-saltar:focus {
      left: 18px;
      top: 18px;
      z-index: 99999;
      width: auto;
      height: auto;
      padding: 11px 16px;
      border-radius: 9px;
      color: #000000;
      background: var(--zt-blanco);
      box-shadow: var(--zt-sombra-media);
    }

    .zt-solo-lectores {
      position: absolute;
      width: 1px;
      height: 1px;
      padding: 0;
      margin: -1px;
      overflow: hidden;
      clip: rect(0, 0, 0, 0);
      white-space: nowrap;
      border: 0;
    }

    .zt-barra-superior {
      color: var(--zt-blanco);
      background: var(--zt-marino-oscuro);
      font-size: 14px;
    }

    .zt-barra-interior {
      min-height: 42px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 20px;
    }

    .zt-barra-superior a {
      color: var(--zt-blanco);
      font-weight: 700;
    }

    .zt-cabecera {
      position: sticky;
      top: 0;
      z-index: 1000;
      border-bottom: 1px solid var(--zt-borde);
      background: rgba(255, 255, 255, 0.97);
      backdrop-filter: blur(12px);
    }

    .zt-cabecera-interior {
      min-height: 82px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 25px;
    }

    .zt-marca {
      display: inline-flex;
      align-items: center;
      gap: 12px;
      color: var(--zt-marino);
      font-size: 21px;
      font-weight: 900;
      letter-spacing: 0.04em;
    }

    .zt-marca:hover {
      text-decoration: none;
    }

    .zt-marca-icono {
      width: 46px;
      height: 46px;
      display: grid;
      place-items: center;
      border: 3px solid var(--zt-azul);
      border-radius: 50%;
      color: var(--zt-azul);
      font-size: 25px;
      line-height: 1;
    }

    .zt-menu {
      display: flex;
      align-items: center;
      gap: 20px;
      font-size: 15px;
      font-weight: 800;
    }

    .zt-menu a {
      position: relative;
      color: var(--zt-texto);
    }

    .zt-menu a::after {
      content: "";
      position: absolute;
      left: 0;
      bottom: -6px;
      width: 0;
      height: 2px;
      background: var(--zt-azul);
      transition: width var(--zt-transicion);
    }

    .zt-menu a:hover {
      color: var(--zt-azul-hover);
      text-decoration: none;
    }

    .zt-menu a:hover::after,
    .zt-menu a[aria-current="page"]::after {
      width: 100%;
    }

    .zt-boton {
      min-height: 48px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      padding: 11px 19px;
      border: 1px solid transparent;
      border-radius: 12px;
      cursor: pointer;
      text-align: center;
      font-weight: 900;
      line-height: 1.25;
      transition:
        transform var(--zt-transicion),
        background var(--zt-transicion),
        border-color var(--zt-transicion),
        color var(--zt-transicion),
        box-shadow var(--zt-transicion);
    }

    .zt-boton:hover {
      transform: translateY(-1px);
      text-decoration: none;
    }

    .zt-boton:focus-visible {
      outline: 3px solid rgba(21, 154, 215, 0.35);
      outline-offset: 3px;
    }

    .zt-boton-principal {
      color: var(--zt-blanco);
      background: var(--zt-azul);
      box-shadow:
        0 8px 20px rgba(21, 154, 215, 0.26);
    }

    .zt-boton-principal:hover {
      color: var(--zt-blanco);
      background: var(--zt-azul-hover);
    }

    .zt-boton-secundario {
      color: var(--zt-marino);
      background: var(--zt-blanco);
      border-color: var(--zt-borde);
    }

    .zt-boton-secundario:hover {
      color: var(--zt-azul-hover);
      border-color: var(--zt-azul);
    }

    .zt-boton-whatsapp {
      color: var(--zt-blanco);
      background: var(--zt-verde);
      box-shadow:
        0 8px 20px rgba(31, 164, 99, 0.23);
    }

    .zt-boton-whatsapp:hover {
      color: var(--zt-blanco);
      background: var(--zt-verde-hover);
    }

    .zt-boton-enlace {
      min-height: auto;
      padding: 0;
      color: var(--zt-azul-hover);
      background: transparent;
      border: 0;
    }

    /* ---------------------------------------------------------
       PORTADA CORREGIDA: fondo claro (en vez de imagen con capa
       oscura) para que el H1 y el texto en color oscuro/negro
       se lean con buen contraste.
       --------------------------------------------------------- */
    .zt-portada {
      position: relative;
      overflow: hidden;
      padding: 60px 0 68px;
      color: var(--zt-texto);
      background:
        linear-gradient(
          135deg,
          #ffffff 0%,
          #f5fbfe 55%,
          #e9f7fc 100%
        );
    }

    .zt-portada::before {
      content: "";
      position: absolute;
      left: -180px;
      top: -180px;
      width: 430px;
      height: 430px;
      border-radius: 50%;
      background: rgba(21, 154, 215, 0.13);
      pointer-events: none;
    }

    .zt-portada::after {
      content: "";
      position: absolute;
      right: -130px;
      bottom: -220px;
      width: 520px;
      height: 520px;
      border-radius: 50%;
      background: rgba(21, 154, 215, 0.10);
      pointer-events: none;
    }

    .zt-portada .zt-contenedor {
      position: relative;
      z-index: 2;
    }

    .zt-migas {
      margin-bottom: 23px;
      color: var(--zt-texto-secundario);
      font-size: 14px;
    }

    .zt-migas ol {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      padding: 0;
      margin: 0;
      list-style: none;
    }

    .zt-migas li {
      display: flex;
      align-items: center;
      gap: 8px;
    }

    .zt-migas li:not(:last-child)::after {
      content: "/";
      color: var(--zt-borde-oscuro);
    }

    .zt-migas a {
      color: var(--zt-texto-secundario);
    }

    .zt-portada-grid {
      display: grid;
      grid-template-columns:
        minmax(0, 1.2fr)
        minmax(330px, 0.8fr);
      gap: 42px;
      align-items: start;
    }

    .zt-etiqueta-superior {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      padding: 7px 12px;
      border: 1px solid rgba(21, 154, 215, 0.35);
      border-radius: 999px;
      color: var(--zt-azul-hover);
      background: rgba(21, 154, 215, 0.08);
      font-size: 14px;
      font-weight: 900;
      letter-spacing: 0.035em;
      text-transform: uppercase;
    }

    .zt-portada-texto {
      max-width: 800px;
      margin-bottom: 25px;
      color: var(--zt-texto-secundario);
      font-size: 20px;
      line-height: 1.6;
    }

    .zt-portada-acciones {
      display: flex;
      flex-wrap: wrap;
      gap: 12px;
      margin-top: 28px;
    }

    .zt-confianza {
      display: flex;
      flex-wrap: wrap;
      gap: 10px 20px;
      margin-top: 25px;
      color: var(--zt-texto);
      font-size: 15px;
    }

    .zt-confianza span {
      display: inline-flex;
      align-items: center;
    }

    .zt-confianza span::before {
      content: "✓";
      margin-right: 7px;
      color: var(--zt-verde);
      font-weight: 900;
    }

    /* ---------------------------------------------------------
       Tarjeta de contacto (sustituye al formulario de
       presupuesto que se ha eliminado a petición del cliente).
       Mantiene el id "solicitar-presupuesto" para que todos los
       enlaces internos de la página sigan funcionando.
       --------------------------------------------------------- */
    .zt-formulario {
      position: relative;
      z-index: 3;
      padding: 28px;
      border-radius: var(--zt-radio-grande);
      color: var(--zt-texto);
      background: var(--zt-blanco);
      box-shadow: var(--zt-sombra-grande);
      border: 1px solid var(--zt-borde);
    }

    .zt-formulario h2 {
      margin-bottom: 9px;
      font-size: 26px;
    }

    .zt-formulario-introduccion {
      margin-bottom: 22px;
      color: var(--zt-texto-secundario);
      font-size: 15px;
    }

    .zt-formulario-contacto {
      display: grid;
      gap: 12px;
      margin-bottom: 20px;
    }

    .zt-formulario-contacto a {
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 13px 15px;
      border: 1px solid var(--zt-borde);
      border-radius: 12px;
      color: var(--zt-marino);
      font-weight: 800;
      text-decoration: none;
    }

    .zt-formulario-contacto a:hover {
      border-color: var(--zt-azul);
      color: var(--zt-azul-hover);
    }

    .zt-formulario .zt-boton {
      width: 100%;
    }

    .zt-formulario-pie {
      margin: 16px 0 0;
      color: var(--zt-texto-secundario);
      font-size: 12px;
      line-height: 1.5;
    }

    .zt-franja-datos {
      position: relative;
      z-index: 5;
      margin-top: -29px;
    }

    .zt-datos {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 14px;
    }

    .zt-dato {
      min-height: 110px;
      display: flex;
      flex-direction: column;
      justify-content: center;
      padding: 19px;
      border: 1px solid var(--zt-borde);
      border-radius: 15px;
      text-align: center;
      background: var(--zt-blanco);
      box-shadow: var(--zt-sombra-pequena);
    }

    .zt-dato strong {
      display: block;
      margin-bottom: 3px;
      color: var(--zt-marino);
      font-size: 18px;
      line-height: 1.3;
    }

    .zt-dato span {
      color: var(--zt-texto-secundario);
      font-size: 14px;
    }

    .zt-seccion {
      padding: 80px 0;
    }

    .zt-seccion-compacta {
      padding: 58px 0;
    }

    .zt-seccion-suave {
      background: var(--zt-fondo);
    }

    .zt-seccion-azul-claro {
      background: var(--zt-azul-muy-claro);
    }

    .zt-seccion-oscura {
      color: #d9e8f1;
      background: var(--zt-marino-oscuro);
    }

    .zt-seccion-oscura h2,
    .zt-seccion-oscura h3 {
      color: var(--zt-blanco);
    }

    .zt-encabezado-seccion {
      max-width: 880px;
      margin-bottom: 36px;
    }

    .zt-encabezado-seccion.zt-centrado {
      margin-right: auto;
      margin-left: auto;
      text-align: center;
    }

    .zt-encabezado-seccion p {
      margin: 0;
      color: var(--zt-texto-secundario);
      font-size: 18px;
    }

    .zt-seccion-oscura .zt-encabezado-seccion p {
      color: #c6d8e3;
    }

    .zt-subtitulo {
      display: inline-block;
      margin-bottom: 9px;
      color: var(--zt-azul-hover);
      font-size: 14px;
      font-weight: 900;
      letter-spacing: 0.045em;
      text-transform: uppercase;
    }

    .zt-dos-columnas {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 42px;
      align-items: start;
    }

    .zt-dos-columnas-amplias {
      grid-template-columns:
        minmax(0, 1.15fr)
        minmax(0, 0.85fr);
    }

    .zt-grid-2 {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 22px;
    }

    .zt-grid-3 {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 22px;
    }

    .zt-grid-4 {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 18px;
    }

    .zt-lista {
      display: grid;
      gap: 13px;
      padding: 0;
      margin: 0;
      list-style: none;
    }

    .zt-lista li {
      position: relative;
      padding-left: 31px;
    }

    .zt-lista li::before {
      content: "✓";
      position: absolute;
      left: 0;
      top: 2px;
      width: 22px;
      height: 22px;
      display: grid;
      place-items: center;
      border-radius: 50%;
      color: var(--zt-azul-hover);
      background: var(--zt-azul-claro);
      font-size: 13px;
      font-weight: 900;
    }

    .zt-lista-cruz li::before {
      content: "×";
      color: var(--zt-rojo);
      background: #fdecec;
    }

    .zt-caja {
      padding: 25px;
      border: 1px solid var(--zt-borde);
      border-radius: var(--zt-radio);
      background: var(--zt-blanco);
      box-shadow: var(--zt-sombra-pequena);
    }

    .zt-caja-destacada {
      border-color: rgba(21, 154, 215, 0.28);
      background: var(--zt-azul-muy-claro);
    }

    .zt-caja-aviso {
      border-left: 5px solid var(--zt-azul);
      background: var(--zt-azul-muy-claro);
    }

    .zt-tarjeta {
      height: 100%;
      display: flex;
      flex-direction: column;
      overflow: hidden;
      border: 1px solid var(--zt-borde);
      border-radius: var(--zt-radio-grande);
      background: var(--zt-blanco);
      box-shadow: var(--zt-sombra-pequena);
      transition:
        transform var(--zt-transicion),
        box-shadow var(--zt-transicion),
        border-color var(--zt-transicion);
    }

    .zt-tarjeta:hover {
      transform: translateY(-3px);
      border-color: rgba(21, 154, 215, 0.45);
      box-shadow: var(--zt-sombra-media);
    }

    .zt-tarjeta-imagen {
      position: relative;
      overflow: hidden;
      aspect-ratio: 16 / 10;
      background: #dceaf2;
    }

    .zt-tarjeta-imagen img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      transition: transform 0.35s ease;
    }

    .zt-tarjeta:hover .zt-tarjeta-imagen img {
      transform: scale(1.035);
    }

    .zt-tarjeta-distintivo {
      position: absolute;
      left: 14px;
      top: 14px;
      z-index: 2;
      padding: 6px 10px;
      border-radius: 999px;
      color: var(--zt-blanco);
      background: rgba(16, 40, 60, 0.9);
      font-size: 12px;
      font-weight: 900;
    }

    .zt-tarjeta-cuerpo {
      flex: 1;
      display: flex;
      flex-direction: column;
      padding: 22px;
    }

    .zt-tarjeta-cuerpo > p {
      color: var(--zt-texto-secundario);
    }

    .zt-etiquetas {
      display: flex;
      flex-wrap: wrap;
      gap: 7px;
      margin-bottom: 13px;
    }

    .zt-mini-etiqueta {
      display: inline-flex;
      padding: 5px 9px;
      border-radius: 999px;
      color: var(--zt-azul-hover);
      background: var(--zt-azul-claro);
      font-size: 12px;
      font-weight: 900;
    }

    .zt-meta {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 9px;
      margin: 9px 0 19px;
      padding-top: 15px;
      border-top: 1px solid var(--zt-borde);
      color: var(--zt-texto-secundario);
      font-size: 14px;
    }

    .zt-meta strong {
      display: block;
      color: var(--zt-marino);
      font-size: 13px;
    }

    .zt-tarjeta-acciones {
      display: flex;
      flex-wrap: wrap;
      gap: 9px;
      margin-top: auto;
    }

    .zt-tarjeta-acciones .zt-boton {
      min-height: 43px;
      padding: 8px 13px;
      font-size: 14px;
    }

    /* ---------------------------------------------------------
       Tarjetas de tours privados (rejilla de las 10 rutas)
       --------------------------------------------------------- */
    .zt-grid-tours {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 22px;
    }

    .zt-tour-tarjeta {
      display: flex;
      flex-direction: column;
      overflow: hidden;
      border: 1px solid var(--zt-borde);
      border-radius: var(--zt-radio-grande);
      background: var(--zt-blanco);
      box-shadow: var(--zt-sombra-pequena);
      transition:
        transform var(--zt-transicion),
        box-shadow var(--zt-transicion),
        border-color var(--zt-transicion);
    }

    .zt-tour-tarjeta:hover {
      transform: translateY(-3px);
      border-color: rgba(21, 154, 215, 0.45);
      box-shadow: var(--zt-sombra-media);
    }

    .zt-tour-imagen {
      position: relative;
      overflow: hidden;
      aspect-ratio: 16 / 10;
      background: #dceaf2;
    }

    .zt-tour-imagen img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      transition: transform 0.35s ease;
    }

    .zt-tour-tarjeta:hover .zt-tour-imagen img {
      transform: scale(1.035);
    }

    .zt-tour-distintivo {
      position: absolute;
      left: 14px;
      top: 14px;
      z-index: 2;
      padding: 6px 10px;
      border-radius: 999px;
      color: var(--zt-blanco);
      background: rgba(16, 40, 60, 0.9);
      font-size: 12px;
      font-weight: 900;
    }

    .zt-tour-cuerpo {
      flex: 1;
      display: flex;
      flex-direction: column;
      padding: 20px;
    }

    .zt-tour-cuerpo h3 {
      margin-bottom: 7px;
      font-size: 19px;
    }

    .zt-tour-cuerpo p {
      margin: 0 0 14px;
      color: var(--zt-texto-secundario);
      font-size: 15px;
    }

    .zt-tour-meta {
      display: flex;
      flex-wrap: wrap;
      gap: 8px 16px;
      margin: 0 0 16px;
      padding-top: 13px;
      border-top: 1px solid var(--zt-borde);
      color: var(--zt-marino);
      font-size: 14px;
      font-weight: 800;
    }

    .zt-tour-cuerpo .zt-boton {
      margin-top: auto;
      width: 100%;
    }

    @media (max-width: 1050px) {
      .zt-grid-tours {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }
    }

    @media (max-width: 680px) {
      .zt-grid-tours {
        grid-template-columns: 1fr;
      }
    }

    /* ---------------------------------------------------------
       Reseñas de clientes
       --------------------------------------------------------- */
    .zt-grid-resenas {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 22px;
    }

    .zt-resena {
      display: flex;
      flex-direction: column;
      padding: 24px;
      border: 1px solid var(--zt-borde);
      border-radius: var(--zt-radio);
      background: var(--zt-blanco);
      box-shadow: var(--zt-sombra-pequena);
    }

    .zt-resena-cabecera {
      display: flex;
      align-items: center;
      gap: 12px;
      margin-bottom: 12px;
    }

    .zt-resena-avatar {
      width: 46px;
      height: 46px;
      flex-shrink: 0;
      display: grid;
      place-items: center;
      border-radius: 50%;
      color: var(--zt-blanco);
      background: var(--zt-azul);
      font-weight: 900;
      font-size: 16px;
    }

    .zt-resena-nombre {
      color: var(--zt-marino);
      font-weight: 900;
      font-size: 15px;
      line-height: 1.3;
    }

    .zt-resena-fecha {
      color: var(--zt-texto-secundario);
      font-size: 13px;
    }

    .zt-resena-estrellas {
      margin-bottom: 10px;
      color: var(--zt-amarillo);
      font-size: 15px;
      letter-spacing: 2px;
    }

    .zt-resena p {
      margin: 0;
      color: var(--zt-texto);
      font-size: 15px;
      line-height: 1.6;
    }

    .zt-resena-origen {
      margin-top: 14px;
      padding-top: 12px;
      border-top: 1px solid var(--zt-borde);
      color: var(--zt-texto-secundario);
      font-size: 12px;
      font-weight: 700;
    }

    .zt-resumen-valoracion {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 18px;
      margin-bottom: 30px;
      padding: 20px 24px;
      border: 1px solid var(--zt-borde);
      border-radius: var(--zt-radio);
      background: var(--zt-azul-muy-claro);
    }

    .zt-resumen-valoracion strong {
      color: var(--zt-marino);
      font-size: 34px;
      line-height: 1;
    }

    .zt-resumen-valoracion .zt-resena-estrellas {
      margin: 0;
      font-size: 20px;
    }

    .zt-resumen-valoracion span {
      color: var(--zt-texto-secundario);
      font-size: 14px;
    }

    @media (max-width: 1050px) {
      .zt-grid-resenas {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }
    }

    @media (max-width: 680px) {
      .zt-grid-resenas {
        grid-template-columns: 1fr;
      }

      .zt-resumen-valoracion {
        flex-direction: column;
        align-items: flex-start;
      }
    }

    .zt-llamada {
      display: grid;
      grid-template-columns:
        minmax(0, 1fr)
        auto;
      gap: 26px;
      align-items: center;
      padding: 34px;
      border-radius: 22px;
      color: var(--zt-blanco);
      background:
        linear-gradient(
          120deg,
          var(--zt-marino),
          var(--zt-marino-oscuro)
        );
      box-shadow: var(--zt-sombra-media);
    }

    .zt-llamada h2 {
      margin-bottom: 8px;
      color: var(--zt-blanco);
      font-size: 32px;
    }

    .zt-llamada p {
      margin: 0;
      color: #eaf5fb;
    }

    .zt-llamada-acciones {
      display: flex;
      flex-wrap: wrap;
      gap: 10px;
    }

    .zt-tabla-contenedor {
      overflow-x: auto;
      border: 1px solid var(--zt-borde);
      border-radius: var(--zt-radio);
      background: var(--zt-blanco);
      box-shadow: var(--zt-sombra-pequena);
    }

    .zt-tabla {
      width: 100%;
      min-width: 820px;
      border-collapse: collapse;
    }

    .zt-tabla th,
    .zt-tabla td {
      padding: 15px 17px;
      border-bottom: 1px solid var(--zt-borde);
      text-align: left;
      vertical-align: top;
    }

    .zt-tabla th {
      color: var(--zt-blanco);
      background: var(--zt-marino);
      font-size: 14px;
      line-height: 1.4;
    }

    .zt-tabla tbody tr:nth-child(even) {
      background: #f9fbfc;
    }

    .zt-tabla tbody tr:hover {
      background: var(--zt-azul-muy-claro);
    }

    .zt-tabla tr:last-child td {
      border-bottom: 0;
    }

    .zt-tabla td:first-child {
      color: var(--zt-marino);
      font-weight: 900;
    }

    .zt-nota {
      color: var(--zt-texto-secundario);
      font-size: 13px;
      line-height: 1.55;
    }

    .zt-duraciones {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 16px;
    }

    .zt-duracion {
      padding: 22px;
      border: 1px solid var(--zt-borde);
      border-radius: var(--zt-radio);
      background: var(--zt-blanco);
      box-shadow: var(--zt-sombra-pequena);
    }

    .zt-duracion strong {
      display: block;
      margin-bottom: 7px;
      color: var(--zt-azul-hover);
      font-size: 26px;
    }

    .zt-duracion p {
      margin: 0;
      color: var(--zt-texto-secundario);
    }

    .zt-pasos {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 17px;
      counter-reset: pasos;
    }

    .zt-paso {
      counter-increment: pasos;
      padding: 22px;
      border: 1px solid var(--zt-borde);
      border-radius: var(--zt-radio);
      background: var(--zt-blanco);
      box-shadow: var(--zt-sombra-pequena);
    }

    .zt-paso::before {
      content: counter(pasos);
      width: 39px;
      height: 39px;
      display: grid;
      place-items: center;
      margin-bottom: 14px;
      border-radius: 50%;
      color: var(--zt-blanco);
      background: var(--zt-azul);
      font-weight: 900;
    }

    .zt-paso h3 {
      margin-bottom: 8px;
      font-size: 19px;
    }

    .zt-paso p {
      margin: 0;
      color: var(--zt-texto-secundario);
      font-size: 15px;
    }

    .zt-flota {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 18px;
    }

    .zt-vehiculo {
      padding: 21px;
      border: 1px solid var(--zt-borde);
      border-radius: var(--zt-radio);
      background: var(--zt-blanco);
      box-shadow: var(--zt-sombra-pequena);
    }

    .zt-vehiculo-icono {
      display: block;
      margin-bottom: 8px;
      font-size: 34px;
    }

    .zt-vehiculo p {
      margin: 0;
      color: var(--zt-texto-secundario);
    }

    .zt-zonas {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 18px;
    }

    .zt-zona {
      padding: 22px;
      border: 1px solid var(--zt-borde);
      border-radius: var(--zt-radio);
      background: var(--zt-blanco);
    }

    .zt-zona h3 {
      font-size: 21px;
    }

    .zt-zona p {
      margin-bottom: 13px;
      color: var(--zt-texto-secundario);
    }

    .zt-destinos-lista {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 12px;
    }

    .zt-destino {
      min-height: 72px;
      display: flex;
      align-items: center;
      padding: 15px;
      border: 1px solid var(--zt-borde);
      border-radius: 13px;
      color: var(--zt-marino);
      background: var(--zt-blanco);
      font-weight: 800;
      transition:
        border-color var(--zt-transicion),
        transform var(--zt-transicion),
        color var(--zt-transicion);
    }

    .zt-destino:hover {
      transform: translateY(-2px);
      border-color: var(--zt-azul);
      color: var(--zt-azul-hover);
      text-decoration: none;
    }

    .zt-faq {
      display: grid;
      gap: 12px;
    }

    .zt-faq details {
      padding: 0 18px;
      border: 1px solid var(--zt-borde);
      border-radius: 13px;
      background: var(--zt-blanco);
    }

    .zt-faq details[open] {
      border-color: rgba(21, 154, 215, 0.45);
      box-shadow: var(--zt-sombra-pequena);
    }

    .zt-faq summary {
      position: relative;
      cursor: pointer;
      list-style: none;
      padding: 18px 34px 18px 0;
      color: var(--zt-marino);
      font-weight: 900;
    }

    .zt-faq summary::-webkit-details-marker {
      display: none;
    }

    .zt-faq summary::after {
      content: "+";
      position: absolute;
      right: 0;
      top: 13px;
      color: var(--zt-azul);
      font-size: 26px;
      line-height: 1;
    }

    .zt-faq details[open] summary::after {
      content: "−";
    }

    .zt-faq details p {
      margin: 0 0 18px;
      color: var(--zt-texto-secundario);
    }

    .zt-enlaces {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 16px;
    }

    .zt-enlace {
      min-height: 78px;
      display: flex;
      align-items: center;
      padding: 18px;
      border: 1px solid var(--zt-borde);
      border-radius: 14px;
      color: var(--zt-marino);
      background: var(--zt-blanco);
      font-weight: 900;
      transition:
        border-color var(--zt-transicion),
        color var(--zt-transicion),
        transform var(--zt-transicion);
    }

    .zt-enlace:hover {
      transform: translateY(-2px);
      border-color: var(--zt-azul);
      color: var(--zt-azul-hover);
      text-decoration: none;
    }

    .zt-indice {
      padding: 24px;
      border: 1px solid var(--zt-borde);
      border-radius: var(--zt-radio);
      background: var(--zt-fondo);
    }

    .zt-indice h2 {
      font-size: 24px;
    }

    .zt-indice ul {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 9px 24px;
      padding-left: 20px;
      margin-bottom: 0;
    }

    .zt-indice a {
      font-weight: 700;
    }

    .zt-resumen-directo {
      padding: 28px;
      border-radius: var(--zt-radio);
      background: var(--zt-azul-muy-claro);
      border: 1px solid rgba(21, 154, 215, 0.23);
    }

    .zt-resumen-directo h2 {
      font-size: 28px;
    }

    .zt-resumen-directo p:last-child {
      margin-bottom: 0;
    }

    .zt-pie {
      padding: 48px 0 22px;
      color: #d7e7f1;
      background: var(--zt-marino-oscuro);
    }

    .zt-pie-grid {
      display: grid;
      grid-template-columns:
        minmax(0, 1.25fr)
        minmax(0, 0.75fr)
        minmax(0, 0.75fr);
      gap: 36px;
    }

    .zt-pie h2,
    .zt-pie h3 {
      color: var(--zt-blanco);
    }

    .zt-pie h2 {
      font-size: 27px;
    }

    .zt-pie h3 {
      font-size: 19px;
    }

    .zt-pie a {
      color: #d7e7f1;
    }

    .zt-pie-final {
      margin-top: 30px;
      padding-top: 19px;
      border-top: 1px solid rgba(255, 255, 255, 0.14);
      font-size: 14px;
    }

    .zt-acciones-movil {
      display: none;
      position: fixed;
      left: 10px;
      right: 10px;
      bottom: 10px;
      z-index: 1002;
      grid-template-columns: 1fr 1fr;
      gap: 8px;
      padding: 8px;
      border: 1px solid var(--zt-borde);
      border-radius: 15px;
      background: rgba(255, 255, 255, 0.97);
      box-shadow: var(--zt-sombra-grande);
      backdrop-filter: blur(10px);
    }

    @media (max-width: 1050px) {
      .zt-menu {
        gap: 14px;
        font-size: 14px;
      }

      .zt-portada-grid {
        grid-template-columns: 1fr;
      }

      .zt-formulario {
        max-width: 760px;
      }

      .zt-grid-4,
      .zt-destinos-lista {
        grid-template-columns: repeat(3, 1fr);
      }

      .zt-pasos,
      .zt-duraciones,
      .zt-flota {
        grid-template-columns: repeat(2, 1fr);
      }
    }

    @media (max-width: 900px) {
      .zt-menu {
        display: none;
      }

      .zt-datos {
        grid-template-columns: repeat(2, 1fr);
      }

      .zt-grid-3,
      .zt-zonas {
        grid-template-columns: repeat(2, 1fr);
      }

      .zt-grid-4,
      .zt-destinos-lista {
        grid-template-columns: repeat(2, 1fr);
      }

      .zt-dos-columnas,
      .zt-dos-columnas-amplias {
        grid-template-columns: 1fr;
      }

      .zt-llamada {
        grid-template-columns: 1fr;
      }

      .zt-pie-grid {
        grid-template-columns: 1fr 1fr;
      }
    }

    @media (max-width: 680px) {
      body {
        padding-bottom: 77px;
        font-size: 16px;
      }

      html {
        scroll-padding-top: 78px;
      }

      .zt-contenedor {
        width: min(
          calc(100% - 24px),
          var(--zt-ancho)
        );
      }

      .zt-barra-interior {
        justify-content: center;
        text-align: center;
      }

      .zt-barra-interior span:last-child {
        display: none;
      }

      .zt-cabecera-interior {
        min-height: 68px;
      }

      .zt-marca {
        font-size: 17px;
      }

      .zt-marca-icono {
        width: 39px;
        height: 39px;
        font-size: 21px;
      }

      .zt-cabecera .zt-boton {
        display: none;
      }

      .zt-portada {
        padding: 38px 0 43px;
      }

      h1,
      .zt-titulo-portada {
        font-size: 34px !important;
      }

      h2 {
        font-size: 30px;
      }

      .zt-portada-texto {
        font-size: 18px;
      }

      .zt-portada-acciones .zt-boton {
        width: 100%;
      }

      .zt-formulario {
        padding: 20px;
      }

      .zt-datos,
      .zt-grid-2,
      .zt-grid-3,
      .zt-grid-4,
      .zt-zonas,
      .zt-destinos-lista,
      .zt-pasos,
      .zt-duraciones,
      .zt-flota,
      .zt-enlaces {
        grid-template-columns: 1fr;
      }

      .zt-franja-datos {
        margin-top: 18px;
      }

      .zt-seccion {
        padding: 57px 0;
      }

      .zt-seccion-compacta {
        padding: 45px 0;
      }

      .zt-llamada {
        padding: 25px;
      }

      .zt-llamada h2 {
        font-size: 28px;
      }

      .zt-llamada-acciones .zt-boton {
        width: 100%;
      }

      .zt-tarjeta-acciones .zt-boton {
        width: 100%;
      }

      .zt-indice ul {
        grid-template-columns: 1fr;
      }

      .zt-pie-grid {
        grid-template-columns: 1fr;
      }

      .zt-acciones-movil {
        display: grid;
      }
    }

    @media (prefers-reduced-motion: reduce) {
      html {
        scroll-behavior: auto;
      }

      *,
      *::before,
      *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
      }
    }

    @media print {
      .zt-barra-superior,
      .zt-cabecera,
      .zt-formulario,
      .zt-portada-acciones,
      .zt-acciones-movil,
      .zt-boton {
        display: none !important;
      }

      body {
        padding: 0;
        color: #000000;
        background: #ffffff;
      }

      .zt-portada {
        padding: 30px 0;
        color: #000000;
        background: #ffffff;
      }

      .zt-portada h1,
      .zt-portada p {
        color: #000000;
      }

      .zt-seccion {
        padding: 30px 0;
      }

      .zt-tarjeta,
      .zt-caja,
      .zt-dato {
        box-shadow: none;
      }
    }
