/* =============================================
   GRUPO SALVADOR — CSS VIAJA CON NOSOTROS
   Etapa 8P (refinamiento visual): página editorial de viaje. Blanco dominante,
   rojo corporativo como acento, navy y dorado discretos. Fotografía de los
   flyers del tour (hero y postales) y foto real de Giovanna Salvador; en vez de
   tarjetas, franjas, columnas ligeras y separadores finos. La hoja blanca curva
   monta sobre el hero y cierra contra el footer rojo, como el resto del sitio.
   ============================================= */

.gs-via {
  --gs-sheet-radius: 40px;
  --gs-via-col: 1120px;
  --gs-via-ink: var(--gs-navy, #14182d);
  --gs-via-linea: #e7e4e0;
  --gs-via-suave: #f6f5f3;
}
.gs-via-col { max-width: calc(var(--gs-via-col) + 48px); }

/* Íconos de trazo (sprite al inicio de la plantilla). */
.gs-via-ico {
  width: 24px;
  height: 24px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
  flex-shrink: 0;
}
.gs-via-ico--fill { fill: currentColor; stroke: none; }
.gs-via-sr {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

/* Títulos: primera línea regular, segunda en negrita (Etapa 8), en navy. */
.gs-via-title {
  margin-bottom: 18px;
  font-size: clamp(30px, 3.3vw, 46px);
  font-weight: 700;
  line-height: 1.06;
  letter-spacing: -.005em;
  text-transform: uppercase;
  color: var(--gs-via-ink);
}
.gs-via-title span { display: block; font-weight: 400; }
.gs-via-eyebrow {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--gs-red, #a61916);
}
.gs-via-eyebrow::before { content: ''; width: 28px; height: 2px; background: currentColor; }
.gs-via-eyebrow--oro { color: var(--gs-gold-text, #8a6b0a); }
.gs-via-lead { max-width: 620px; font-size: 17px; line-height: 1.7; color: #4a4a4a; }
.gs-via-sub {
  margin: 36px 0 14px;
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--gs-via-ink);
}
.gs-via-sub--primero { margin-top: 0; }

/* Botones */
.gs-via-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 52px;
  padding: 12px 28px;
  border: 2px solid transparent;
  border-radius: 14px;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: .03em;
  text-transform: uppercase;
  transition: background .2s, color .2s, border-color .2s;
}
.gs-via-btn .gs-via-ico { width: 20px; height: 20px; }
.gs-via-btn--rojo { background: var(--gs-red, #a61916); color: var(--gs-white); }
.gs-via-btn--rojo:hover { background: var(--gs-red-hover, #8a1412); }
.gs-via-btn--ghost { border-color: rgba(255, 255, 255, .8); color: var(--gs-white); }
.gs-via-btn--ghost:hover { background: rgba(255, 255, 255, .12); border-color: var(--gs-white); }
.gs-via-btn--borde { border-color: var(--gs-red, #a61916); color: var(--gs-red, #a61916); }
.gs-via-btn--borde:hover { background: var(--gs-red-soft, #fbeeed); }
.gs-via a:focus-visible { outline: 3px solid var(--gs-red, #a61916); outline-offset: 3px; }
.gs-via-hero a:focus-visible { outline-color: var(--gs-white); }

.gs-via-section { padding-top: 104px; }

/* ── HERO: foto de las murallas de Jerusalén (flyer «Israel») a sangre ── */
.gs-via-hero {
  position: relative;
  isolation: isolate;
  display: flex;
  align-items: center;
  min-height: clamp(560px, 72vh, 660px);
  padding: 72px 0 calc(var(--gs-sheet-radius) + 112px);
  overflow: hidden;
  background: var(--gs-navy-dark, #0d0f1f);
  color: var(--gs-white);
}
.gs-via-hero__img {
  position: absolute;
  inset: 0;
  z-index: -2;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 62% 50%;
}
/* Velo navy: denso a la izquierda (texto), abierto a la derecha (foto). */
.gs-via-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    linear-gradient(90deg, rgba(13, 15, 31, .92) 0%, rgba(13, 15, 31, .74) 34%, rgba(13, 15, 31, .22) 68%, rgba(13, 15, 31, .08) 100%),
    linear-gradient(0deg, rgba(13, 15, 31, .5) 0%, rgba(13, 15, 31, 0) 42%);
}
.gs-via-hero__inner { position: relative; width: 100%; }
.gs-via-hero__tag {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 22px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--gs-gold, #c9980e);
}
.gs-via-hero__tag b { font-weight: 400; color: rgba(255, 255, 255, .8); }
.gs-via-hero__ruta { width: 110px; height: auto; color: rgba(255, 255, 255, .6); }
.gs-via-hero__title {
  max-width: 760px;
  margin-bottom: 22px;
  font-size: clamp(46px, 6.4vw, 92px);
  font-weight: 700;
  line-height: .95;
  letter-spacing: -.01em;
  text-transform: uppercase;
}
.gs-via-hero__title span { display: block; margin-bottom: 6px; font-size: .46em; font-weight: 400; letter-spacing: .03em; }
.gs-via-hero__sub {
  max-width: 540px;
  margin-bottom: 34px;
  font-size: 18px;
  line-height: 1.65;
  color: rgba(255, 255, 255, .92);
}
.gs-via-hero__ctas { display: flex; flex-wrap: wrap; gap: 14px; }

/* ── HOJA BLANCA ── */
.gs-via-sheet-wrap {
  position: relative;
  z-index: 1;
  margin-top: calc(-1 * var(--gs-sheet-radius));
  background: linear-gradient(to bottom,
    transparent calc(100% - var(--gs-sheet-radius)),
    var(--gs-red, #a61916) 0);
}
.gs-via-sheet {
  display: flow-root;
  padding-bottom: 112px;
  border-radius: var(--gs-sheet-radius);
  background: var(--gs-white);
}

/* ── RESUMEN: franja horizontal que monta sobre el borde del hero ── */
.gs-via-resumen { position: relative; z-index: 2; margin-top: -76px; }
.gs-via-resumen__strip {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  padding: 26px 6px;
  border-radius: 22px;
  background: var(--gs-white);
  box-shadow: 0 22px 54px rgba(13, 15, 31, .13);
}
.gs-via-resumen__item {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 4px 22px;
  border-left: 1px solid var(--gs-via-linea);
}
.gs-via-resumen__item:first-child { border-left: 0; }
.gs-via-resumen__item .gs-via-ico { margin-top: 2px; color: var(--gs-red, #a61916); }
.gs-via-resumen__item dt {
  margin-bottom: 4px;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--gs-text-muted, #666);
}
.gs-via-resumen__item dd { font-size: 16.5px; font-weight: 700; line-height: 1.3; color: var(--gs-via-ink); }
.gs-via-resumen__item dd span { display: block; }
.gs-via-resumen__item dd small { display: block; margin-top: 2px; font-size: 13.5px; font-weight: 400; color: var(--gs-text-muted, #666); }

/* ── EL VIAJE + PRÓXIMA SALIDA ── */
.gs-via-intro__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr);
  gap: 72px;
  align-items: center;
}
.gs-via-noches { margin-top: 34px; padding-top: 22px; border-top: 1px solid var(--gs-via-linea); }
.gs-via-noches__label {
  margin-bottom: 12px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--gs-text-muted, #666);
}
.gs-via-noches ul { display: flex; flex-wrap: wrap; list-style: none; }
.gs-via-noches li { padding: 0 28px; border-left: 1px solid var(--gs-via-linea); font-size: 14.5px; color: var(--gs-text-muted, #666); }
.gs-via-noches li:first-child { padding-left: 0; border-left: 0; }
.gs-via-noches b { display: block; font-size: 19px; color: var(--gs-via-ink); }

/* Módulo compacto del contador: navy con detalles dorados. */
.gs-via-count {
  padding: 30px 32px 26px;
  border-radius: 24px;
  background: var(--gs-navy, #14182d);
  color: var(--gs-white);
}
.gs-via-count__label {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--gs-gold, #c9980e);
}
.gs-via-count__label .gs-via-ico { width: 20px; height: 20px; }
.gs-via-count__date { font-size: clamp(24px, 2.3vw, 30px); font-weight: 700; line-height: 1.15; }
.gs-via-count__estado { margin-top: 6px; font-size: 14.5px; color: rgba(255, 255, 255, .74); }
.gs-via-count__digits {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 22px 0 18px;
  padding: 16px 0;
  border-top: 1px solid rgba(255, 255, 255, .14);
  border-bottom: 1px solid rgba(255, 255, 255, .14);
}
.gs-via-count__unit { display: flex; flex-direction: column; align-items: center; border-left: 1px solid rgba(255, 255, 255, .14); }
.gs-via-count__unit:first-child { border-left: 0; }
.gs-via-count__num { font-size: clamp(32px, 3.2vw, 42px); font-weight: 700; line-height: 1; font-variant-numeric: tabular-nums; }
.gs-via-count__unit-label { margin-top: 6px; font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: rgba(255, 255, 255, .62); }
.gs-via-count__expired { display: none; margin: 18px 0; font-size: 18px; font-weight: 700; color: var(--gs-gold, #c9980e); }
.gs-via-count__pie { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 18px; }
.gs-via-count__hora { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 600; color: rgba(255, 255, 255, .88); }
.gs-via-count__hora .gs-via-ico { width: 18px; height: 18px; color: var(--gs-gold, #c9980e); }
.gs-via-count__next { font-size: 13.5px; color: rgba(255, 255, 255, .68); }
.gs-via-count__next strong { color: var(--gs-white); }

/* ── ITINERARIO ── */
.gs-via-itinerario__head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, .9fr);
  gap: 64px;
  align-items: end;
  margin-bottom: 56px;
}
/* Postales del flyer «Gran Tour», escalonadas como en la pieza. */
.gs-via-postales { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; list-style: none; }
.gs-via-postales img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 294 / 406;
  object-fit: cover;
  border-radius: 18px;
}
.gs-via-postales li:nth-child(2) { transform: translateY(-26px); }

/* Ruta de etapas: puntos numerados unidos por una línea punteada. */
.gs-via-ruta { margin-bottom: 8px; }
.gs-via-ruta ol { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); list-style: none; }
.gs-via-ruta li { position: relative; }
.gs-via-ruta li:not(:last-child)::after {
  content: '';
  position: absolute;
  top: 19px;
  left: 50px;
  right: 14px;
  border-top: 2px dashed rgba(166, 25, 22, .32);
}
.gs-via-ruta a { display: flex; flex-direction: column; gap: 12px; padding: 0 16px 26px 0; }
.gs-via-ruta__num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border: 2px solid var(--gs-red, #a61916);
  border-radius: 50%;
  background: var(--gs-white);
  font-size: 15px;
  font-weight: 700;
  color: var(--gs-red, #a61916);
  transition: background .2s, color .2s;
}
.gs-via-ruta a:hover .gs-via-ruta__num { background: var(--gs-red, #a61916); color: var(--gs-white); }
.gs-via-ruta__txt strong { display: block; font-size: 16px; line-height: 1.3; color: var(--gs-via-ink); }
.gs-via-ruta__txt small { display: block; margin-top: 2px; font-size: 13.5px; color: var(--gs-text-muted, #666); }

/* Etapa: datos fijos a la izquierda, días a la derecha. */
.gs-via-etapa {
  display: grid;
  grid-template-columns: 290px minmax(0, 1fr);
  gap: 56px;
  padding: 34px 0 30px;
  border-top: 1px solid var(--gs-via-linea);
}
.gs-via-etapa__meta { position: sticky; top: calc(var(--gs-header-total-height, 74px) + 28px); align-self: start; }
.gs-via-etapa__num { display: block; margin-bottom: 8px; font-size: 12.5px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--gs-gold-text, #8a6b0a); }
.gs-via-etapa__title { font-size: 24px; font-weight: 700; line-height: 1.2; color: var(--gs-via-ink); }
.gs-via-etapa__dias { margin-top: 8px; font-size: 14px; font-weight: 700; color: var(--gs-red, #a61916); }
.gs-via-etapa__lugares { margin-top: 6px; font-size: 14.5px; line-height: 1.55; color: var(--gs-text-muted, #666); }

/* Días: filas con separador fino (acordeón, gs-accordion.js). */
.gs-via-dias { list-style: none; }
.gs-via-dia + .gs-via-dia { border-top: 1px solid var(--gs-via-linea); }
.gs-via-dia__h { margin: 0; }
.gs-via-dia__toggle {
  display: grid;
  grid-template-columns: 64px minmax(0, 1fr) 38px;
  gap: 16px;
  align-items: start;
  width: 100%;
  padding: 18px 0;
  border: 0;
  background: none;
  font: inherit;
  text-align: left;
  color: inherit;
  cursor: pointer;
}
.gs-via-etapa .gs-via-dia:first-child .gs-via-dia__toggle { padding-top: 4px; }
.gs-via-dia__toggle:focus-visible { outline: 3px solid var(--gs-red, #a61916); outline-offset: 4px; border-radius: 6px; }
.gs-via-dia__num { padding-top: 3px; font-size: 12.5px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--gs-red, #a61916); }
.gs-via-dia__title { display: block; font-size: 17.5px; font-weight: 700; line-height: 1.35; color: var(--gs-via-ink); transition: color .2s; }
.gs-via-dia__toggle:hover .gs-via-dia__title,
.gs-via-dia__toggle[aria-expanded="true"] .gs-via-dia__title { color: var(--gs-red, #a61916); }
.gs-via-dia__resumen { display: block; margin-top: 3px; font-size: 15px; font-weight: 400; line-height: 1.5; color: var(--gs-text-muted, #666); }
.gs-via-dia__mas {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border: 1px solid var(--gs-via-linea);
  border-radius: 50%;
  color: var(--gs-red, #a61916);
  transition: transform .2s, background .2s, border-color .2s;
}
.gs-via-dia__mas .gs-via-ico { width: 18px; height: 18px; }
.gs-via-dia__toggle[aria-expanded="true"] .gs-via-dia__mas { transform: rotate(180deg); border-color: var(--gs-red-soft, #fbeeed); background: var(--gs-red-soft, #fbeeed); }
.gs-via-dia__detalle { padding: 0 54px 22px 80px; }
.gs-via-dia__detalle p { font-size: 15.5px; line-height: 1.75; color: #444; }

/* ── QUÉ INCLUYE: columnas ligeras ── */
.gs-via-incluye__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 56px;
  margin-top: 40px;
}
.gs-via-grupo__title {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 18px;
  padding-bottom: 14px;
  border-bottom: 2px solid var(--gs-red, #a61916);
  font-size: 18px;
  font-weight: 700;
  color: var(--gs-via-ink);
}
.gs-via-grupo__title .gs-via-ico { color: var(--gs-red, #a61916); }
.gs-via-lista { list-style: none; display: grid; gap: 13px; }
.gs-via-lista li {
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr);
  gap: 12px;
  font-size: 15.5px;
  line-height: 1.5;
  color: #333;
}
.gs-via-lista .gs-via-ico { width: 18px; height: 18px; margin-top: 2px; stroke-width: 2.4; color: var(--gs-red, #a61916); }
.gs-via-lista small { display: block; font-size: 14px; color: var(--gs-text-muted, #666); }
.gs-via-incluye__extra {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 56px;
  margin-top: 56px;
  padding-top: 40px;
  border-top: 1px solid var(--gs-via-linea);
}
.gs-via-grupo--suave .gs-via-grupo__title { border-bottom: 1px solid var(--gs-via-linea); }
.gs-via-grupo--suave .gs-via-grupo__title .gs-via-ico { color: var(--gs-text-muted, #666); }
.gs-via-lista--no .gs-via-ico { color: #8a8a8a; }
.gs-via-lista--punto li { grid-template-columns: 20px minmax(0, 1fr); }
.gs-via-lista--punto li::before {
  content: '';
  width: 7px;
  height: 7px;
  margin: .6em 0 0 6px;
  border-radius: 50%;
  background: var(--gs-gold, #c9980e);
}

/* ── EXPERIENCIA REAL: franja editorial; la foto sobresale de la franja ── */
.gs-via-experiencia { margin-top: 192px; background: var(--gs-via-suave); }
.gs-via-experiencia__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 96px;
  align-items: center;
}
.gs-via-experiencia__foto { margin: -88px 0; }
.gs-via-experiencia__foto img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  object-position: 50% 18%;
  border-radius: 28px;
  box-shadow: 0 26px 56px rgba(13, 15, 31, .18);
}
.gs-via-experiencia__foto figcaption {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 16px;
  font-size: 13.5px;
  color: var(--gs-text-muted, #666);
}
.gs-via-experiencia__foto figcaption::before { content: ''; width: 22px; height: 2px; background: var(--gs-gold, #c9980e); }
.gs-via-experiencia__texto { padding: 112px 0; }
.gs-via-experiencia__texto .gs-via-title { font-size: clamp(34px, 4vw, 56px); }
.gs-via-experiencia__texto .gs-via-lead { font-size: 18.5px; }

/* ── ALIANZA: logos y texto, sin tarjetas ── */
.gs-via-alianza { padding-top: 200px; }
.gs-via-alianza__grid {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  gap: 80px;
  align-items: center;
}
.gs-via-logos {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 36px;
  padding: 48px 0;
  border-top: 1px solid var(--gs-via-linea);
  border-bottom: 1px solid var(--gs-via-linea);
}
.gs-via-logos img { width: auto; max-width: 42%; max-height: 104px; }
/* multiply: el fondo blanco del logo de Vision Tours (extraído del PDF) se funde con la página. */
.gs-via-logos img:last-child { mix-blend-mode: multiply; }
.gs-via-logos__x { font-size: 42px; font-weight: 300; line-height: 1; color: var(--gs-red, #a61916); }
.gs-via-roles > div { padding: 18px 0; border-top: 1px solid var(--gs-via-linea); }
.gs-via-roles > div:last-child { border-bottom: 1px solid var(--gs-via-linea); }
.gs-via-roles dt { margin-bottom: 6px; font-size: 12.5px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--gs-red, #a61916); }
.gs-via-roles dd { font-size: 16px; line-height: 1.6; color: #333; }

/* ── FLYERS: galería informativa ── */
.gs-via-flyers { margin-top: 112px; padding: 96px 0 104px; background: var(--gs-via-suave); }
.gs-via-flyers__head { max-width: 640px; margin: 0 auto 48px; text-align: center; }
.gs-via-flyers__head .gs-via-eyebrow { justify-content: center; }
.gs-via-flyers__head .gs-via-lead { margin: 0 auto; }
/* Columnas proporcionales al formato de cada flyer: misma altura, sin recortar. */
.gs-via-flyers__grid {
  display: grid;
  grid-template-columns: minmax(0, 668fr) minmax(0, 750fr);
  gap: 40px;
  max-width: 940px;
  margin: 0 auto;
}
.gs-via-flyer { margin: 0; }
.gs-via-flyer img { display: block; width: 100%; height: auto; border-radius: 14px; box-shadow: 0 24px 50px rgba(13, 15, 31, .16); }
.gs-via-flyer figcaption { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 16px; margin-top: 18px; }
.gs-via-flyer strong { font-size: 15.5px; color: var(--gs-via-ink); }
.gs-via-flyer a { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 700; color: var(--gs-red, #a61916); }
.gs-via-flyer a:hover { text-decoration: underline; }
.gs-via-flyer a .gs-via-ico { width: 16px; height: 16px; }

/* ── PRECIOS Y RESERVAS ── */
.gs-via-precios__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 80px;
  margin-top: 36px;
}
.gs-via-tarifas { list-style: none; border-top: 2px solid var(--gs-via-ink); }
.gs-via-tarifas li {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  padding: 22px 0;
  border-bottom: 1px solid var(--gs-via-linea);
}
.gs-via-tarifas__quien { font-size: 18px; font-weight: 700; color: var(--gs-via-ink); }
.gs-via-tarifas__quien small { display: block; margin-top: 2px; font-size: 14px; font-weight: 400; color: var(--gs-text-muted, #666); }
.gs-via-tarifas__valor { font-size: clamp(30px, 3vw, 38px); font-weight: 700; line-height: 1; white-space: nowrap; color: var(--gs-red, #a61916); }
.gs-via-tarifas__valor small { font-size: .45em; font-weight: 700; letter-spacing: .06em; vertical-align: .55em; }
.gs-via-pagos { list-style: none; display: grid; gap: 14px; }
.gs-via-pagos li { display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: 12px; font-size: 15.5px; line-height: 1.55; color: #333; }
.gs-via-pagos .gs-via-ico { width: 22px; height: 22px; color: var(--gs-red, #a61916); }
.gs-via-pagos b { color: var(--gs-via-ink); }
.gs-via-salidas { list-style: none; border-top: 2px solid var(--gs-via-ink); }
.gs-via-salidas li {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 4px 16px;
  align-items: center;
  padding: 18px 0;
  border-bottom: 1px solid var(--gs-via-linea);
}
.gs-via-salidas__fecha { font-size: 18px; font-weight: 700; color: var(--gs-via-ink); }
.gs-via-salidas__plazo { grid-column: 1; font-size: 14px; color: var(--gs-text-muted, #666); }
.gs-via-estado {
  grid-column: 2;
  grid-row: 1 / span 2;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  font-weight: 700;
  color: var(--gs-via-ink);
}
.gs-via-estado::before { content: ''; width: 8px; height: 8px; border-radius: 50%; background: var(--gs-gold, #c9980e); }
.gs-via-estado--cerrada { color: #777; }
/* Estado provisional, sin JS o antes de evaluar las fechas. */
.gs-via-estado--consulta { color: var(--gs-text-muted, #666); }
.gs-via-estado--consulta::before { box-sizing: border-box; border: 1.5px solid currentColor; background: none; }
.gs-via-estado--cerrada::before { background: #b5b5b5; }
.gs-via-plazos { list-style: none; display: grid; gap: 10px; }
.gs-via-plazos li { position: relative; padding-left: 20px; font-size: 15.5px; line-height: 1.55; color: #333; }
.gs-via-plazos li::before { content: ''; position: absolute; left: 2px; top: .62em; width: 7px; height: 7px; border-radius: 50%; background: var(--gs-red, #a61916); }
.gs-via-precios__cta { margin-top: 30px; }
.gs-via-aviso {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-top: 56px;
  padding-top: 24px;
  border-top: 1px solid var(--gs-via-linea);
  font-size: 15.5px;
  font-weight: 600;
  line-height: 1.55;
  color: var(--gs-via-ink);
}
.gs-via-aviso .gs-via-ico { margin-top: 1px; color: var(--gs-red, #a61916); }

/* ── CIERRE ── */
.gs-via-cierre { padding-top: 128px; text-align: center; }
.gs-via-cierre__ruta { display: block; width: 220px; height: auto; margin: 0 auto 24px; color: rgba(166, 25, 22, .5); }
.gs-via-cierre__title {
  margin-bottom: 16px;
  font-size: clamp(34px, 4.2vw, 58px);
  font-weight: 700;
  line-height: 1.04;
  text-transform: uppercase;
  color: var(--gs-via-ink);
}
.gs-via-cierre__text { max-width: 620px; margin: 0 auto 32px; font-size: 17px; line-height: 1.7; color: #4a4a4a; }
.gs-via-cierre__btns { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; }

/* ── RESPONSIVE ── */
@media (max-width: 1100px) {
  .gs-via-resumen__strip { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 22px; }
  .gs-via-resumen__item:nth-child(4) { border-left: 0; }
  .gs-via-etapa { grid-template-columns: 240px minmax(0, 1fr); gap: 40px; }
}
@media (max-width: 900px) {
  .gs-via { --gs-sheet-radius: 28px; }
  .gs-via-section { padding-top: 80px; }
  .gs-via-hero { align-items: flex-end; min-height: 600px; padding-top: 56px; }
  .gs-via-hero::before {
    background: linear-gradient(0deg, rgba(13, 15, 31, .94) 0%, rgba(13, 15, 31, .78) 48%, rgba(13, 15, 31, .25) 100%);
  }
  .gs-via-intro__grid,
  .gs-via-itinerario__head,
  .gs-via-alianza__grid,
  .gs-via-precios__grid { grid-template-columns: 1fr; gap: 40px; }
  .gs-via-itinerario__head { margin-bottom: 40px; }
  .gs-via-postales li:nth-child(2) { transform: translateY(-14px); }
  .gs-via-ruta ol { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 16px; }
  .gs-via-ruta li::after { display: none; }
  .gs-via-ruta a { flex-direction: row; align-items: center; padding: 0; }
  .gs-via-ruta { margin-bottom: 32px; }
  .gs-via-etapa { grid-template-columns: 1fr; gap: 18px; padding: 30px 0 18px; }
  .gs-via-etapa__meta { position: static; }
  .gs-via-incluye__grid { grid-template-columns: 1fr; gap: 36px; }
  .gs-via-incluye__extra { grid-template-columns: 1fr; gap: 36px; }
  .gs-via-experiencia { margin-top: 120px; }
  .gs-via-experiencia__grid { grid-template-columns: 1fr; gap: 0; }
  .gs-via-experiencia__foto { width: min(100%, 420px); margin: -64px auto 0; }
  .gs-via-experiencia__texto { padding: 40px 0 64px; }
  .gs-via-alianza { padding-top: 80px; }
  .gs-via-flyers { margin-top: 80px; padding: 72px 0 80px; }
}
@media (max-width: 600px) {
  .gs-via-section { padding-top: 64px; }
  .gs-via-sheet { padding-bottom: 80px; }
  .gs-via-hero { min-height: 620px; padding-bottom: calc(var(--gs-sheet-radius) + 56px); }
  .gs-via-hero__tag { font-size: 11.5px; letter-spacing: .12em; }
  .gs-via-hero__ruta { display: none; }
  .gs-via-hero__img { object-position: 64% 50%; }
  .gs-via-hero__title { font-size: 46px; }
  .gs-via-hero__sub { font-size: 16.5px; margin-bottom: 28px; }
  .gs-via-hero__ctas .gs-via-btn { flex: 1 1 100%; }
  .gs-via-resumen { margin-top: 0; padding-top: 28px; }
  .gs-via-resumen__strip { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 0; padding: 22px 4px; border-radius: 20px; }
  .gs-via-resumen__item { padding: 2px 14px; }
  .gs-via-resumen__item:nth-child(odd) { border-left: 0; }
  .gs-via-resumen__item:nth-child(4) { border-left: 1px solid var(--gs-via-linea); }
  .gs-via-resumen__item:last-child { grid-column: 1 / -1; }
  .gs-via-resumen__item .gs-via-ico { display: none; }
  .gs-via-resumen__item dd { font-size: 15px; }
  .gs-via-noches li { padding: 0 16px; }
  .gs-via-count { padding: 26px 20px 22px; border-radius: 22px; }
  .gs-via-count__num { font-size: 30px; }
  .gs-via-count__unit-label { font-size: 10px; letter-spacing: .06em; }
  .gs-via-postales { gap: 8px; }
  .gs-via-postales img { border-radius: 12px; }
  .gs-via-ruta ol { grid-template-columns: 1fr; gap: 12px; }
  .gs-via-ruta__num { width: 34px; height: 34px; font-size: 14px; }
  .gs-via-dia__toggle { grid-template-columns: minmax(0, 1fr) 34px; gap: 4px 12px; padding: 16px 0; }
  .gs-via-dia__num { grid-column: 1 / -1; padding-top: 0; }
  .gs-via-dia__mas { grid-column: 2; grid-row: 2; width: 34px; height: 34px; }
  .gs-via-dia__detalle { padding: 0 0 20px; }
  .gs-via-dia__detalle p { font-size: 15px; }
  .gs-via-experiencia__foto { width: min(100%, 320px); }
  .gs-via-experiencia__texto .gs-via-lead { font-size: 17px; }
  .gs-via-logos { gap: 18px; padding: 28px 0; }
  .gs-via-logos img { max-height: 70px; }
  .gs-via-flyers__grid { grid-template-columns: 1fr; gap: 40px; max-width: 360px; }
  .gs-via-tarifas__valor { font-size: 28px; }
  .gs-via-tarifas__quien { font-size: 16.5px; }
  .gs-via-salidas li { grid-template-columns: 1fr; }
  .gs-via-estado { grid-column: 1; grid-row: auto; margin-top: 4px; }
  .gs-via-precios__cta { width: 100%; }
  .gs-via-cierre { padding-top: 96px; }
  .gs-via-cierre__btns .gs-via-btn { flex: 1 1 100%; }
}
