/*Art2Fly IBE PARKS  | www.art2fly.com | Copyright 2026  --*/

/* --Breakpoints:
   sm: 576px | md: 768px | lg: 992px | xl: 1200px
   ------ */

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

/* --Layout principal (body)-- */
html {
  font-size: 16px;
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
  font-family: "Lato", sans-serif;
  font-size: 16px;
  font-weight: 300;
  color: #111;
  line-height: 1.5;
}

.layout-main-frame h1, 
.layout-main-frame h2 {
  font-family: "Oswald", sans-serif;
  font-weight: 100;
}

.layout-main-frame h3,
.layout-main-frame h4,
.layout-main-frame h5,
.layout-main-frame h6 {
  font-family: 'Oswald', sans-serif;
}

.layout-main-frame h1 {
  width: min(100%,450px);
  font-size: 2rem;
  line-height: 1.2;
  text-transform: uppercase;
  text-align: center;
  border: 1px solid white;
  margin: 2rem auto;
  padding: 2rem;
  text-wrap-style: balance;
  color: white;
  background: radial-gradient(#00000063, transparent);
}

.layout-main-frame .parque1 h1, .layout-main-frame .parque3 h1, .layout-main-frame .parque4 h1 {
  background:transparent;
  color:initial;
  border-color:grey;
}
.layout-main-frame h2 {
  text-wrap-style: pretty;
  font-size: 1.8rem;
  margin: 1rem 0;
  line-height: 1.25;
}

.layout-main-frame h3 {
  font-size: 1rem;
  margin: 0.5rem 0;
  line-height: 1.25;
}

.layout-main-frame a:not(.button) {
  color: initial;
  text-decoration: none;
  overflow: visible;
  height: 50px;
  z-index: 9;
}

.layout-main-frame a:not(.button):hover {
  color: #009999;
}

strong{
  font-weight: bold;
}
.parque3 section, .parque4 section {
    padding: 1rem 0 3rem 0;
    border-bottom: 1px dashed grey;
}
.layout-main-frame .carro-resumen + section {
  border-top:1px dashed grey;
}
label.paso3-check {
    margin-bottom: 3rem;
    display: block;
    text-wrap-style: pretty;
    width: min(100%, 700px);
}
section.paso3-bloques input[type="checkbox"] {
    margin-left: 0;
}

.paso3-acciones {
    padding: 0rem 0 3rem;
}
.paso3-acciones:empty {
    padding: 0;
}
.paso3-bloque {
   margin-bottom: 2.5rem;
}

h2.paso3-bloque__titulo {
    font-size: 1rem;
    background: grey;
    color: white;
    padding: .5rem 1rem;
    font-family: 'Lato';
    margin-top: 2rem;
}
.layout-main-frame h3 {
  font-size: 1rem;
  font-weight: normal;
  margin: .5rem 0 0.3rem 0;
  font-family: 'Lato';
  text-decoration: underline;
}
.layout-main-frame button.button.paso3-acciones__btn {
    min-width: 180px;
}
.condiciones h1 {
    font-size: 1.25em;
    border: none;
    width: 100%;
    text-align: left;
    padding: 0;
    font-weight: 500;
    margin-bottom: 0;
}
.condiciones h2 {
    margin: 1rem 0;
    font-size: 1.5em;
    border-bottom: 1px solid grey;
}
.condiciones h3 {
    font-family: 'Lato';
    font-size: 1em;
    margin: 0.5rem 0;
}
.condiciones p {
    margin: 0 0 1em 0;
    line-height: 1.5;
    text-align: justify;
}

.condiciones {
    font-size: 0.9rem;
}
.paso3-bloque ul {
    margin: 0 0 2rem 0;
    list-style-position: outside;
    padding: 0 1.25rem;
}

.paso3-bloque ul li {
    margin-left: 0;
    padding-left: 0;
}

.paso3-bloque b {
    font-weight: normal;
}

/* --- Acordeones: bloques legales (parque3-ES.tpl) --- */
.paso3-bloques__accordion {
  margin-top: 1rem;
}

.paso3-bloque--accordion {
  margin-bottom: 0;
  border: 1px solid #bfbfbf;
  border-radius: 4px;
  overflow: hidden;
}

.paso3-bloque--accordion + .paso3-bloque--accordion {
  margin-top: .75rem;
}

.paso3-bloque--accordion .paso3-bloque__titulo {
  margin: 0;
  padding: 0;
  background: transparent;
  position: relative;
  z-index: 2;
}

.paso3-bloque--accordion .paso3-bloque__trigger {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: .75rem;
  width: 100%;
  min-height: 3rem;
  margin: 0;
  padding: .85rem 1rem;
  border: 0;
  background: grey;
  color: white;
  font-family: 'Lato', sans-serif;
  font-size: 1rem;
  font-weight: normal;
  line-height: 1.3;
  text-align: left;
  cursor: pointer;
  box-sizing: border-box;
}

.paso3-bloque--accordion .paso3-bloque__trigger-text {
  flex: 1 1 auto;
  min-width: 0;
}

.paso3-bloque--accordion .paso3-bloque__icon {
  flex: 0 0 auto;
  width: .55rem;
  height: .55rem;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg);
  transition: transform .75s cubic-bezier(0.22, 1, 0.36, 1);
  margin-top: -.15rem;
}

.paso3-bloque--accordion:not(.is-open) .paso3-bloque__icon {
  transform: rotate(-45deg);
  margin-top: 0;
}

.paso3-bloque--accordion.is-complete .paso3-bloque__trigger {
  background: #02a7a5;
}

.paso3-bloque--accordion .paso3-bloque__contenido {
  margin: 0;
  padding: 0;
  border-top: 1px solid #dadada;
  background: #fff;
}

.paso3-bloque--accordion:not(.is-open) .paso3-bloque__contenido {
  margin-top: 0;
  border-top: none;
}

.paso3-bloque--accordion .paso3-bloque__contenido-inner {
  margin: 0;
  padding: 0;
  min-height: 0;
  overflow: hidden;
}

.paso3-bloque--accordion .paso3-bloque__contenido-body {
  margin: 0;
  padding: 2rem;
}

.paso3-bloque--accordion:not(.is-animated) .paso3-bloque__contenido {
  display: none;
}

.paso3-bloque--accordion:not(.is-animated).is-open .paso3-bloque__contenido {
  display: block;
}

.paso3-bloque--accordion.is-animated .paso3-bloque__contenido {
  display: grid;
  grid-template-rows: 0fr;
  border-top-color: transparent;
  background: transparent;
  transition:
    grid-template-rows 1.15s cubic-bezier(0.22, 1, 0.36, 1),
    border-color .8s cubic-bezier(0.22, 1, 0.36, 1);
}

.paso3-bloque--accordion.is-animated.is-open .paso3-bloque__contenido {
  grid-template-rows: 1fr;
  border-top-color: #dadada;
  background: #fff;
}

.paso3-bloque--accordion .paso3-bloque__contenido-body .paso3-check {
  margin-bottom: 0;
}

@media (max-width: 576px) {
  .layout-main-frame button.button.paso3-acciones__btn {
    width: min(300px,100%);
    font-size: 1rem;
    margin: 0 auto;
    display: block;
}
}


/* ------------------------------------------
   Main frame --> Botones .button
   --------------------- */
.layout-main-frame .button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.5rem 1rem;
  background-color: #02a7a5;
  color: #fff;
  text-decoration: none;
  text-transform: uppercase;
  border: none;
  border-radius: 2px;
  font-family: inherit;
  font-size: .85rem;
  font-weight: 400;
  cursor: pointer;
  line-height: 1.2;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  text-align: center;
  text-wrap-style: balance;
}

.layout-main-frame .button:hover {
  background-color: #b3e5e4;
  color: #01a7a5;
  border-color: #01a7a5;
}

.layout-main-frame .button:active {
  background-color: #02a7a5;
  color: #fff;
}

.layout-main-frame .button:focus {
  outline: 2px solid #02a7a5;
  outline-offset: 2px;
}

.layout-main-frame .button:disabled {
  background-color: #ccc;
  color: #888;
  cursor: not-allowed;
}
.layout-main-frame  a.button.arrepentimiento {
    margin: 2rem auto 0 auto;
    display: block;
    width: min(300px,100%);
    font-size: .9rem;
    font-weight: 400;
    background: #f2f2f2;
    color: #111;
    border:1px solid grey;
    border-radius: 2px;
    padding: 1rem;
}
.layout-main-frame  a.button.arrepentimiento:hover {
    background: #e6e6e6;
    color: #666;
}
/* ------------------------------------------
   Slider fullscreen 
   --------------------- */
.slider-wrap {
  position: relative;
  width: 100%;
  height: 100vh;
  overflow: hidden;
}
.slider-track {
  position: relative;
  width: 100%;
  height: 100%;
}
.slider-wrap .slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 0.8s ease;
}
.slider-wrap .slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.slider-wrap .slide.is-active {
  opacity: 1;
}
.overlay-rect {
  position: absolute;
  left: 0;
  right: 0;
  height: 15%;
  pointer-events: none;
  background: white;
  width: 400px;;
}
.overlay-rect--top {
  top: 100px;
  bottom: 0;
  background: #ffc0cb78;
  height:90px;
}
.overlay-rect--bottom {
  top: 200px;
  bottom: 0;
  background: #00800087;
  height:400px;
}
.slider-dots {
  position: absolute;
  bottom: 1rem;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 0.5rem;
}
.slider-dots button {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  border: 1px solid #fff;
  background: transparent;
  cursor: pointer;
  padding: 0;
}
.slider-dots button.active {
  background: #fff;
}
@media (min-width: 768px) {
  .overlay-rect {left: calc(50% - 200px);}
}

/* ------------------------------------------
   Header y breadcrumbs (referencia: header oscuro, barra breadcrumbs teal)
   --------------------- */
.layout-main-frame .header {
  background-color: #4e4e4e;
}

.layout-main-frame .header__inner {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: none;
}

.layout-main-frame .header__logo {
  padding: 0.75rem 1.5rem;
}

.layout-main-frame .header__logo img {
  display: block;
  max-height: 140px;
  width: clamp(100px, 14vw, 140px);
}

.layout-main-frame .breadcrumbs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0 0.5rem;
  padding: 0.75rem 1.5rem;
  background-color: #02a7a5;
  font-size: 0.9rem;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.75);
}

.layout-main-frame .breadcrumbs__step {
  color: rgba(255, 255, 255, 0.75);
  text-align: center;
  line-height: 1.2;
  font-weight: 200;
}
.layout-main-frame .breadcrumbs__step span {
  font-size: .7em;
  letter-spacing: 0.2px;
  display: flow;
  text-align: center;
  align-content: flex-start;
  align-items: flex-start;
  flex-wrap: nowrap;
}

.layout-main-frame .breadcrumbs__step--current {
  font-weight: 400;
  color: #fff;
}

.layout-main-frame .breadcrumbs__sep {
  margin: 0px 0.75rem;
  color: rgba(255, 255, 255, 0.6);
  font-weight: 400;
}

@media (max-width: 767px) {
  .layout-main-frame .breadcrumbs__step:not(.breadcrumbs__step--current),
  .layout-main-frame .breadcrumbs__sep {
    display: none;
  }
  .layout-main-frame .breadcrumbs {
    justify-content: center;
  }
}

@media (max-width: 480px) {
  .layout-main-frame .breadcrumbs {
    justify-content: flex-end;
  }
}

/* ------------------------------------------
   Carro resumen (resumen de alojamientos reservados)
   --------------------- */
.layout-main-frame .carro-resumen {
  border: 2px solid #aaaaaa;
  background-color: #fff;
  margin: 2rem 0;
  padding: 2rem;
  border-radius: 4px;
  box-shadow: 0px 0px 10px #c1c1c1;
  font-family: 'Lato';
}

.layout-main-frame .carro-resumen p {
  font-size: 1.5rem;
    text-align: center;
    margin: 0 0 1rem 0;
}
.layout-main-frame .carro-resumen__inner {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 0;
  align-items: center;
}

.layout-main-frame .carro-resumen__titulo {
  margin: 0;
  width: 100%;
  max-width: 100%;
  font-size: 1.5rem;
  font-weight: 400;
  text-transform: uppercase;
  font-family: 'Oswald', sans-serif;
  color: #333;
  text-align: center;
  border: 1px solid #ccc;
  padding: 0.75rem 1rem;
  box-sizing: border-box;
}
.layout-main-frame p.carro-resumen__subtitulo, .layout-main-frame .modal-sheet__body .carro-resumen__subtitulo {
  margin: 0.25rem 0;
  width: 100%;
  font-size: 1.1rem;
  font-weight: 800;
  color: inherit;
  font-family: 'Lato';
  text-align: left;
}

.layout-main-frame .carro-resumen__subtitulo span {
   color: #02a7a5;
}

.layout-main-frame .carro-resumen__table-wrap {
  width: 100%;
  overflow-x: auto;
  margin-bottom: 0;
}

.layout-main-frame .carro-resumen__table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9rem;
  font-weight: normal;
  font-family: 'Lato', sans-serif;
}
.layout-main-frame .carro-resumen__table tr:last-child td {
  border-bottom: none;
}
.layout-main-frame .carro-resumen__table tr td {
  border-bottom: 1px solid #e0e0e0;
}

.layout-main-frame .carro-resumen__th {
  background-color: #555;
  color: #fff;
  text-transform: uppercase;
  font-weight: 600;
  text-align: left;
  padding: 0.35rem 0.5rem 0.25rem 0.5rem;
  border: none;
  font-size: .85em;
  letter-spacing: .02rem;
}
.layout-main-frame .carro-resumen__th:nth-child(4) {
  padding:0;
  text-align:center;
}
.layout-main-frame .carro-resumen__th--total {
  text-align: right;
}

.layout-main-frame .carro-resumen__td {
  background-color: #fff;
  color: #333;
  padding: 0.5rem;
  border: none;
  border-top: none;
}
.layout-main-frame .carro-resumen__td.noches {
    padding: 0 0.5rem;
    text-align: center;
}
.layout-main-frame .carro-resumen__td--remove {
    padding: 0;
    width: 1rem;
    text-align: center;
}
.layout-main-frame .carro-resumen__td--total {
  text-align: right;
}
/* ------------------------------------------
   CupÃƒÂ³n de descuento (parque3-ES.tpl: .paso3-cupon)
   Padding y border-top los heredan de .parque3 section y .carro-resumen + section.
   --------------------- */
.layout-main-frame .parque3 .paso3-cupon__form {
  display: flex;
  align-items: center;
  gap: .5rem;
}

.layout-main-frame .parque3 .paso3-cupon__input {
  width: min(100%, 200px);
  height: 36px;
  padding: 0 .6rem;
  border: 1px solid #bfbfbf;
  font-family: 'Lato', sans-serif;
  text-align: center;
}

.layout-main-frame .parque3 .paso3-cupon__btn {
  width: min(100%, 200px);
  height: 36px;
  padding: 0 .8rem;
  background: transparent;
  color: #555;
  border: 1px solid #999;
  border-radius: 2px;
  text-transform: uppercase;
  font-weight: 400;
  letter-spacing: .04em;
  cursor: pointer;
  transition: background .12s ease, color .12s ease, border-color .12s ease;
}

.layout-main-frame .parque3 .paso3-cupon__btn:hover {
  background: #f4f4f4;
  color: #333;
  border-color: #666;
}

.layout-main-frame .parque3 .paso3-cupon__btn:disabled {
  background: #f2f2f2;
  color: #aaa;
  border-color: #ccc;
  cursor: not-allowed;
}

.layout-main-frame .parque3 .paso3-cupon__mensaje {
  color: #02a7a5;
  margin-top: .3rem;
  font-weight: 400;
  text-wrap-style: balance;
}
/* carro-resumen-ES.tpl: cada linea del carrito como tarjeta (max-width: 576px) */
@media (max-width: 576px) {
  .layout-main-frame .carro-resumen__table-wrap {
    overflow-x: visible;
  }

  .layout-main-frame .carro-resumen__table:has(tbody td.noches) {
    display: block;
    width: 100%;
    min-width: 0;
    border-collapse: separate;
    border-spacing: 0;
    font-size: .85rem;
  }

  .layout-main-frame .carro-resumen__table:has(tbody td.noches) thead {
    display: none;
  }

  .layout-main-frame .carro-resumen__table:has(tbody td.noches) tbody,
  .layout-main-frame .carro-resumen__table:has(tbody td.noches) tbody tr {
    display: block;
    width: 100%;
  }

  .layout-main-frame .carro-resumen__table:has(tbody td.noches) tbody tr {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 0;
    margin: 0;
    padding: 0.5rem 0;
    border: none;
    border-top: 1px dashed grey;
    background: #fff;
  }

  .layout-main-frame .carro-resumen__table:has(tbody td.noches) tbody tr:last-child {
    margin-bottom: 0;
  }

  .layout-main-frame .carro-resumen__table:has(tbody td.noches) tbody tr td {
    display: block;
    padding: 0;
    margin: 0;
    border: none;
    background: #fff;
    color: #333;
    font-weight: 400;
    text-align: left;
    vertical-align: top;
    white-space: normal;
    box-shadow: none;
  }
  .layout-main-frame .carro-resumen__table td.carro-resumen__td.carro-resumen__td--total {
    font-weight:bold;
  }
  .layout-main-frame .carro-resumen__table:has(tbody td.noches) tbody tr td:last-child {
    position: absolute;
    top: 0;
    right: 0;
    z-index: 1;
    width: auto;
    max-width: 45%;
    text-align: right;
  }

  .layout-main-frame .carro-resumen__table:has(tbody td.noches) tbody tr td.circuito::before,
  .layout-main-frame .carro-resumen__table:has(tbody td.noches) tbody tr td.alojamiento::before,
  .layout-main-frame .carro-resumen__table:has(tbody td.noches) tbody tr td.fecha::before,
  .layout-main-frame .carro-resumen__table:has(tbody td.noches) tbody tr td.noches::before,
  .layout-main-frame .carro-resumen__table:has(tbody td.noches) tbody tr td.carro-resumen__td--total::before {
    color: inherit;
    font-weight: inherit;
    background: transparent;
  }

  .layout-main-frame .carro-resumen__table:has(tbody td.noches) tbody tr td.circuito::before {
    content: "Circuito: ";
  }

  .layout-main-frame .carro-resumen__table:has(tbody td.noches) tbody tr td.alojamiento::before {
    content: "Alojamiento: ";
  }

  .layout-main-frame .carro-resumen__table:has(tbody td.noches) tbody tr td.fecha::before {
    content: "Fecha: ";
  }

  .layout-main-frame .carro-resumen__table:has(tbody td.noches) tbody tr td.noches::before {
    content: "Noches: ";
  }

  .layout-main-frame .carro-resumen__table:has(tbody td.noches) tbody tr td.carro-resumen__td--total::before {
    content: "Total: ";
  }
  .layout-main-frame h2  {
    text-align:center;
    text-wrap-style: balance;
    margin-bottom:1rem;
  }

  /* --------- cupon --------------- */
  .layout-main-frame .parque3 .paso3-cupon__titulo {
    text-align: center;
  }

  .layout-main-frame .parque3 .paso3-cupon__form {
    flex-direction: column;
    align-items: stretch;
    gap: .35rem;
  }

  .layout-main-frame .parque3 .paso3-cupon__input,
  .layout-main-frame .parque3 .paso3-cupon__btn {
    width: 100%;
    max-width: 400px;
    margin: 0 auto;
  }

  .layout-main-frame .parque3 .paso3-cupon__mensaje {
    text-align: center;
  }
}

/* ojo -->480px: el total por item deja de flotar (se montaba sobre el texto);
   queda en el flujo al final de la tarjeta, alineado a la derecha */
@media (max-width: 480px) {
  .layout-main-frame .carro-resumen__table:has(tbody td.noches) tbody tr td:last-child {
    position: static;
    width: 100%;
    max-width: none;
    text-align: right;
    margin-top: 0.25rem;
  }
}

.layout-main-frame .carro-resumen__total-row {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  background-color: #ffc107;
  padding: 0.5rem;
  font-weight: 600;
  text-transform: uppercase;
  color: #333;
  font-size: .9rem;
}
.layout-main-frame .parque1 .carro-resumen__total-row .carro-resumen__total-value {
  padding-right: 1rem;
}
.layout-main-frame .carro-resumen__total-row.fee {
    background: #f0f0f0;
    border-top: 1px dashed grey;
    border-bottom: 1px dashed grey;
    font-weight: normal;
    text-transform: none;
}
.layout-main-frame .carro-resumen__total-row.ajuste {
    background: #d9d9d954;
    font-weight: normal;
    text-transform: none;
    border-top: 1px dashed grey;
    border-bottom: 1px dashed grey;
}
.layout-main-frame .carro-resumen__total-row.promo {
    color: #02a7a5;
    background: white;
    border-top: 2px dashed #02a7a5;
    font-weight: normal;
    border-bottom: 2px dashed #02a7a5;
    text-transform: none;
}
.parque2 .carro-resumen__total-row .carro-resumen__total-value {
    padding-right: 1rem;
}

.layout-main-frame .carro-resumen__acciones {
  width: 100%;
  display: flex;
  flex-wrap: nowrap;
  justify-content: right;
  gap: 0.5em;
  margin-top: 0.5rem;
}
.layout-main-frame .carro-resumen__mensaje {
  text-align: right;
  width: 100%;
  color: darkorange;
}
  .layout-main-frame .carro-resumen__mensaje:empty {
  display: none;
}
.layout-main-frame .carro-resumen__btn {
  width: auto;
  min-width: 8rem;
}

.layout-main-frame .carro-resumen__btn--mismo-circuito {
  background-color: #9f9f9f;
  color: #fff;
}

.layout-main-frame .carro-resumen__btn--mismo-circuito:hover {
  background-color: #404040;
  color: #fff;
}
.layout-main-frame .carro-resumen__btn--otro-circuito {
  background-color: #4f4f4f;
  color: #fff;
}

.layout-main-frame .carro-resumen__btn--otro-circuito:hover {
  background-color: #101010;
  color: #fff;
}

.layout-main-frame .carro-resumen__btn--pagar {
  /* background-color: #333; */
  color: #fff;
}

.layout-main-frame .carro-resumen__btn--pagar:hover {
  /* background-color: #111; */
  /* color: #fff; */
}

/* ------------------------------------------
   Main (.layout-main-frame .main): base comun (columna, ancho max., padding)
   parque1: .parque1 redefine display/padding en su capitulo.
   parque2: .parque2 + media queries (docs/LAYOUT-DIAGRAMA-parque2.md).
   parque3: .parque3 hereda columna; reglas especificas mas abajo.
   --------------------- */
.layout-main-frame .main {
  display: flex;
  flex-direction: column;
  min-height: 60vh;
  padding: 3rem;
  max-width: 1200px;
  margin: 0 auto;
}

.layout-main-frame .left,
.layout-main-frame .aside,
.layout-main-frame .main__right {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  overflow: auto;
}

/* ojo -->480px (solo parque2): columna .left + .main__right + .carro-resumen; sin scroll en mapa */
@media (max-width: 480px) {
  .layout-main-frame .main.parque2 {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: auto auto auto auto auto;
    row-gap: 1rem;
  }
  .layout-main-frame .main.parque2 .main__right {
    display: contents;
    background-image: none;
    min-height: 0;
  }
  .layout-main-frame .main.parque2 .main__right h1 {
    grid-column: 1;
    grid-row: 1;
    width: 100%;
    margin: 0 auto;
    color: initial;
    background: none;
    border-color: grey;
  }
  .layout-main-frame .main.parque2 .left,
  .layout-main-frame .main.parque2 .aside,
  .layout-main-frame .main.parque2 .main__right {
    overflow: visible;
  }
  .layout-main-frame .main.parque2 .left {
    grid-column: 1;
    grid-row: 2;
  }
  .layout-main-frame .main.parque2 .left .left__map-wrap {
    max-width: 100%;
    overflow: hidden;
    margin-bottom: 0;
  }
  .layout-main-frame .main.parque2 .left .left__map {
    max-width: 100%;
    height: auto;
    object-fit: contain;
  }
  .layout-main-frame .main.parque2 .aside {
    grid-column: 1;
    grid-row: 3;
    width: 100%;
    margin: 0 0 1.5rem;
    padding: 0;
  }
  .layout-main-frame .main.parque2 .left__sugerencias-btn {
    width: 100%;
    border: 1px solid grey;
    margin: 0.35rem 0;
    white-space: normal;
  }
  .layout-main-frame .main.parque2 .carro-resumen {
    grid-column: 1;
    grid-row: 4;
    width: 100%;
    margin: 1rem 0;
  }
  /* mismas reglas para el carro en pagina y en el modal (#modal-carro
     esta fuera de .main.parque2) */
  .layout-main-frame .main.parque2 .carro-resumen__acciones,
  .layout-main-frame #modal-carro .carro-resumen__acciones {
    flex-wrap: wrap;
    justify-content: center;
  }
  .layout-main-frame .main.parque2 .carro-resumen__btn,
  .layout-main-frame #modal-carro .carro-resumen__btn {
    min-width: 100%;
    padding: 0.75rem;
  }
  .layout-main-frame .main.parque2 #alojamientos {
    grid-column: 1;
    grid-row: 5;
    width: 100%;
    margin-top: 1rem;
    padding-top: 1.5rem;
  }
}

/* Seccion a todo ancho (ej. parque2-ES.tpl) */
.layout-main-frame #alojamientos {
  width: 100%;
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 1rem;
  padding-right: 1rem;
  padding-bottom: 2rem;
  box-sizing: border-box;
}

/* parque2: #alojamientos vive dentro de .main, evita doble contenedor/padding */
.layout-main-frame .main.parque2 #alojamientos {
  max-width: none;
  margin-left: 0;
  margin-right: 0;
  padding-left: 0;
  padding-right: 0;
}

@media (min-width: 783px) {
  .layout-main-frame #alojamientos {
    padding-left: 3rem;
    padding-right: 3rem;
  }
}

/* ojo -->782px: mismo ancho y alineacion que .main para que .main y #alojamientos coincidan */
@media (max-width: 782px) {
  .layout-main-frame #alojamientos {
    padding-left: 1rem;
    padding-right: 1rem;
  }
}

.layout-main-frame #alojamientos .estacion {
  border-bottom: 1px dashed #8e8e8e;
  margin: 0;
  padding: .5rem 0;
}

.layout-main-frame #alojamientos .estacion:last-child {
  /* border-top: none; */
}

.layout-main-frame #alojamientos .estacion:first-child {
  border-top: 1px dashed #8e8e8e;
}

/* Contenedor por estacion: 5 secciones en fila (desktop), apiladas (movil) */
.layout-main-frame .estacion__secciones {
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  gap: 1rem;
  padding: 1rem 0;
}

.layout-main-frame .estacion__seccion {
  flex: 1 1 auto;
  min-width: 0;
}

/* Seccion 1: imagen siempre visible y proporcionada al espacio */
.layout-main-frame .estacion__seccion--imagen {
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  min-height: 120px;
  background: grey;
}

.layout-main-frame .estacion__img {
  width: 100%;
  height: 100%;
  min-height: 120px;
  object-fit: cover;
  display: block;
}

/* Seccion 2: texto con titulos proporcionales al diseno */
.layout-main-frame .estacion__seccion--texto {
  font-size: 0.95rem;
}

.layout-main-frame .estacion__titulo {
  margin: 0 0 0.5rem 0;
  font-size: 1.5rem;
  font-weight: normal;
  line-height: 1.25;
  font-family: 'Lato';
}

.layout-main-frame .estacion__subtitulo {
  margin: 0 0 0.1rem 0;
  font-size: 0.9em;
  font-weight: bold;
  font-family: 'Lato';
  text-transform: none;
}

.layout-main-frame .estacion__lista {
  margin: 0;
  padding: 0;
  list-style: none;
  line-height: 1.2;
  font-size: .9em;
  max-width: 90%;
  text-wrap-style: pretty;
}

.layout-main-frame .estacion__lista li {
  margin-bottom: 0.25rem;
}

.layout-main-frame .estacion__lista li span {
  color: #999;
  font-size: .9em;
  display: block;
  margin: .1em 0;
}

/* Seccion alojamiento (secciones 3, 4, 5): tipo, capacidad, accion */
.layout-main-frame .estacion__seccion--alojamiento.alojamiento {
  display: flex;
  flex-direction: column;
  font-size: 0.95rem;
  padding: 0.5rem 0;
}

.layout-main-frame .alojamiento__titulo {
  margin: 0;
  font-size: 1em;
  font-weight: 600;
  line-height: 1.25;
  font-family: 'Lato';
}

.layout-main-frame .alojamiento__capacidad {
  margin: 0 0 0.25rem 0;
  font-size: 0.9em;
  line-height: 1.4;
  color: #555;
}

.layout-main-frame .alojamiento__regla {
  margin: 0 0 0.4rem 0;
  font-size: 0.8em;
  color: #999;
}

.layout-main-frame .alojamiento__precio {
  display: inline-block;
  margin: 0 0 0.5rem 0;
  padding: 0.18rem 0.5rem;
  background: linear-gradient(45deg, #c2bfbf, #bdb9b9);
  color: #888;
  font-size: 0.75rem;
  line-height: 1.1;
  font-weight: normal;
  white-space: normal;
  text-wrap-style: balance;
  width: 100%;
  max-width: 200px;
  border-left: 5px solid #888;
}

.layout-main-frame .alojamiento__precio span {
  display: block;
  font-size: .9em;
  color: white;
}

.layout-main-frame .alojamiento__fecha {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  margin-bottom: 0.5rem;
  border: 1px solid #ccc;
  border-radius: 2px;
}

.layout-main-frame .alojamiento__fecha, .layout-main-frame .alojamiento__accion, .layout-main-frame .alojamiento__noches {
    max-width: 200px;
    width: 100%;
}

.layout-main-frame .alojamiento__input {
  flex: 1;
  min-width: 0;
  padding: .7rem;
  font-size: 0.9em;
  border: none;
  background: #fff;
  color: #666;
}

.layout-main-frame .alojamiento__input::placeholder {
  color: #888;
}

.layout-main-frame .alojamiento__cal-icon {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  opacity: 0.8;
  cursor: pointer;
  margin-right: 0.5em;
}

.layout-main-frame .alojamiento__cal-icon svg {
  display: block;
  width: 18px;
  height: 18px;
}

.layout-main-frame .alojamiento__noches {
  margin-bottom: 0.5rem;
}

.layout-main-frame .alojamiento__select-noches {
  width: 100%;
  max-width: 200px;
  padding: 0.5rem 0.6rem;
  padding-right: 2em;
  font-size: 0.9em;
  font-family: inherit;
  border: 1px solid #ccc;
  border-radius: 2px;
  background-color: #fff;
  color: #666;
  cursor: pointer;
}

.layout-main-frame .alojamiento__accion {
  /* margin-top: auto; */
}

.layout-main-frame .alojamiento__btn {
  width: 100%;
  max-width: 100%;
  text-transform: uppercase;
  line-height: 1.5;
  color: #02a7a5;
  background: #ddeeee;
}

.layout-main-frame .alojamiento__btn.is-reservado {
  color: #ffffff;
  background: #a5a5a5;
  cursor: auto;
}

.layout-main-frame .alojamiento__btn.is-reservado:focus {
  outline: none;
}

.layout-main-frame .alojamiento--reservado .alojamiento__input:disabled,
.layout-main-frame .alojamiento--reservado .alojamiento__select-noches:disabled {
  background-color: #f0f0f0;
  color: #888;
  cursor: not-allowed;
  opacity: 0.85;
}

.layout-main-frame .alojamiento--reservado .alojamiento__cal-icon {
  opacity: 0.45;
  cursor: not-allowed;
}

/* ojo -->768px: estacion como tarjeta; imagen+texto 50/50 arriba, tres alojamientos 1/3 abajo */
@media (max-width: 768px) {
  .layout-main-frame #alojamientos .estacion, 
    .layout-main-frame #alojamientos .estacion:first-child {
    border: 1px solid #ccc;
    border-radius: 2px;
    box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.3);
    margin-bottom: 2rem;
    padding: 1rem 2rem;
  }
  .layout-main-frame #alojamientos .estacion:last-child {
    margin-bottom: 0;
  }
  .layout-main-frame .estacion__secciones {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
  }
  .layout-main-frame .estacion__seccion {
    flex: unset;
    min-width: 0;
  }
  .layout-main-frame .estacion__seccion--imagen {
    grid-column: span 3;
  }
  .layout-main-frame .estacion__seccion--texto {
    grid-column: span 3;
  }
  .layout-main-frame .estacion__seccion--alojamiento {
    grid-column: span 2;
  }
}

/* ojo -->576px: las 3 secciones de alojamiento a todo lo ancho en columna; contenido centrado */
@media (max-width: 576px) {
  .layout-main-frame .estacion__seccion--texto {
    text-align: left;
  }
  .layout-main-frame .estacion__seccion--texto .estacion__lista {
    text-align: left;
  }
  .layout-main-frame .estacion__seccion--alojamiento.alojamiento {
    grid-column: span 6;
    max-width: 100%;
    align-items: center;
    text-align: center;
    border-top: 1px dashed #ccc;
    padding-top: 1rem;
  }
  .layout-main-frame .alojamiento__precio {
    margin-left: auto;
    margin-right: auto;
    max-width: 200px;
  }
}

/* ojo -->480px: foto arriba a todo lo ancho y texto debajo */
@media (max-width: 480px) {
  .layout-main-frame .estacion__seccion--imagen {
    grid-column: span 6;
  }
  .layout-main-frame .estacion__seccion--texto {
    grid-column: span 6;
  }
  .layout-main-frame .estacion__img {
    max-height: 200px;
  }
}

/* >768px: todas las secciones en una fila, 20% cada una (5 huecos de gap descontados) */
@media (min-width: 769px) {
  .layout-main-frame .estacion__secciones {
    flex-direction: row;
    flex-wrap: nowrap;
  }
  .layout-main-frame .estacion__seccion {
    flex: 0 0 calc((100% - 4 * 1rem) / 5);
    width: calc((100% - 4 * 1rem) / 5);
    min-width: 0;
    box-sizing: border-box;
  }
  .layout-main-frame .estacion__seccion--imagen {
    min-height: 140px;
  }
  .layout-main-frame .estacion__img {
    min-height: 140px;
  }
}

/* ------------------------------------------
   Aside parque2: parte estatica (titulo + texto informativo)
   El h1 del paso va en .main__title dentro de .main__right.
   --------------------- */
.layout-main-frame .aside__static {
  margin-bottom: 0.5rem;
  padding-bottom: 1rem;
  border-bottom: 1px dashed #8e8e8e;
}

.layout-main-frame .aside__static h1,
.layout-main-frame .main__title {
  line-height: 1.3;
  padding: 0.5em 0.75rem;
  box-sizing: border-box;
}

.layout-main-frame .main__right {
  display: flex;
  flex-direction: column;
  min-width: 0;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.layout-main-frame .main__right.lacteo {
background-image: url(https://cielo.generic.art2fly.com/parks/static/images/perito/circuitos/lacteoXL.jpg);
}
.layout-main-frame .main__right.belgrano {
background-image: url(https://cielo.generic.art2fly.com/parks/static/images/perito/circuitos/belgranoXL.jpg);
}
.layout-main-frame .main__right.azara {
background-image: url(https://cielo.generic.art2fly.com/parks/static/images/perito/circuitos/azaraXL.jpg);
}
.layout-main-frame .main__right.burmeister {
background-image: url(https://cielo.generic.art2fly.com/parks/static/images/perito/circuitos/burmeisterXL.jpg);
}

.layout-main-frame .aside__text ul {
  margin-top: 0;
}

.layout-main-frame .aside__text p {
  margin: 0 0 0.75rem 0;
  text-wrap-style: pretty;
}

.layout-main-frame .aside__text p:last-child {
  margin-bottom: 0;
}

.layout-main-frame .aside__note {
  margin: 0.5rem 0 0 0;
  color: #555;
}

/* ------------------------------------------
   Tarjeta .circuito (imagen, barra de datos, texto, formulario)
   Usada en parque1 (.parque1__circuitos) y donde aplique el mismo bloque.
   --------------------- */
.layout-main-frame .circuito {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: none;
  border-radius: 0;
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}

.layout-main-frame .circuito__imagen-wrap {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 10;
  overflow: hidden;
}

.layout-main-frame .circuito__imagen {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.layout-main-frame .circuito__bar {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  display: flex;
  align-items: stretch;
  justify-content: space-around;
  background: rgba(0, 0, 0, 0.7);
  color: #fff;
  font-size: 0.75rem;
  padding: 0.4rem 0.5rem;
  font-weight: 400;
}

.layout-main-frame .circuito__stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex: 1;
  border-right: 1px solid rgba(255, 255, 255, 0.4);
}

.layout-main-frame .circuito__stat:last-child {
  border-right: none;
}

/* parque1: 4 tarjetas por fila (769-992px): barra estrecha, stats en columna; desde 993px (breakpoint existente cercano a 990px) estilo original */
@media (min-width: 769px) and (max-width: 992px) {
  .layout-main-frame .parque1__circuitos .circuito__imagen-wrap {
    display: flex;
    flex-direction: column;
    aspect-ratio: auto;
    overflow: visible;
  }

  .layout-main-frame .parque1__circuitos .circuito__imagen {
    flex: 0 0 auto;
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 10;
    object-fit: cover;
  }

  .layout-main-frame .parque1__circuitos .circuito__bar {
    position: static;
    flex-shrink: 0;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    gap: 0;
    padding: 0.35rem 0.45rem;
  }

  .layout-main-frame .parque1__circuitos .circuito__stat {
    flex: none;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: flex-start;
    gap: 0.35rem;
    width: 100%;
    border-right: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.28);
    padding: 0.2rem 0.1rem;
    font-size: .75rem;
  }

  .layout-main-frame .parque1__circuitos .circuito__stat:last-child {
    border-bottom: none;
  }

  .layout-main-frame .parque1__circuitos .circuito__stat-num {
    display: inline-block;
    flex-shrink: 0;
    position: absolute;
    width: 50%;
    text-align: center;
    left: 35%;
  }
}

.layout-main-frame .circuito__stat-num {
  display: block;
}

.layout-main-frame .circuito__body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 1rem;
  border: 1px solid #ccc;
}

.layout-main-frame .circuito__titulo {
  margin: 0 0 0.35rem 0;
  font-weight: 400;
  line-height: 1.2;
  font-family: 'Oswald';
  text-decoration: none;
  font-size: 1.5rem;
}

.layout-main-frame .circuito__titulo span {
    font-size: .5em;
    display: block;
    text-transform: uppercase;
    font-family: 'Lato';
    letter-spacing: 2px;
    line-height: 1.7;
}

.layout-main-frame .circuito__detalles {
  font-size: 0.85rem;
  color: #555;
  margin: 0 0 0.5rem 0;
}

.layout-main-frame .circuito__descripcion {
  text-wrap-style: pretty;
  font-size: 0.9rem;
  margin: 0 0 1rem 0;
  line-height: 1.4;
}

.layout-main-frame .circuito__body form {
  margin-top: auto;
}

.layout-main-frame .circuito__btn {
  display: block;
  text-align: center;
  margin-top: 0;
}

/* ------------------------------------------
   Mapa en columna: .left__map-wrap / .left__map (parque2 .left; parque1 .parque1__top-left)
   Tarifas en modal (.tarifas / .tarifas__table), no en columna fija.
   --------------------- */
.layout-main-frame .left__map-wrap {
  background-color: #e0e0e0;
  padding: 1vw;
  text-align: center;
}

.layout-main-frame .left__map {
  display: block;
  width: 100%;
  height: 100%;
  cursor: pointer;
}

.layout-main-frame .left__map-wrap[data-modal] {
  cursor: pointer;
}

.layout-main-frame .left__sugerencias-btn {
  display: inline-block;
  width: min(80%, 400px);
  max-width: 100%;
  margin: .5rem auto;
  background-color: #ffffff;
  color: initial;
  font-weight: normal;
  border: 1px solid #bbb;
  white-space: nowrap;
  line-height: 2;
  display: block;
  /* color: white; */
  border: none;
}
.layout-main-frame .parque1 .left__sugerencias-btn {
    border:1px solid grey;
    background: #e5e5e5;
}
.layout-main-frame .parque1 .left__sugerencias-btn:hover {
    border-color: #02a7a5;
}

.layout-main-frame .left__sugerencias-btn.con_borde {
  /* border: 1px solid #ccc; */
  text-wrap-mode: wrap;
  text-wrap-style: balance;
}

@media (max-width: 480px) {
  .layout-main-frame .left__sugerencias-btn {
    white-space: normal;
  }
}

.layout-main-frame .left__sugerencias-btn:focus {
  outline: 2px solid #01a7a5;
  outline-offset: 2px;
}

.layout-main-frame .main.parque2 .main__right {
  justify-content: space-between;
}

.layout-main-frame .main.parque2 .aside {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  margin-top: auto;
  padding: 0 1rem 1rem;
}

.layout-main-frame .tarifas {
  padding: 0;
  min-width: 0;
}

.layout-main-frame .tarifas__table-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  max-width: 100%;
  margin-bottom: 1.5rem;
}

.layout-main-frame .tarifas__table-wrap .tarifas__table {
  margin-bottom: 0;
  min-width: 36rem;
}

.layout-main-frame .tarifas__mobile {
  display: none;
}

.layout-main-frame .tarifas__season--mobile {
  display: none;
}

.layout-main-frame .tarifas__title {
  margin: 0 0 1rem 0;
  font-size: 1.5rem;
}

.layout-main-frame .tarifas__subtitle {
  font-size: 0.9em;
  font-weight: 400;
}

.layout-main-frame .tarifas__table {
  width: 100%;
  min-width: 0;
  border-collapse: collapse;
  margin-bottom: 1.5rem;
  /* font-size: 0.79rem; */
  text-align: center;
  border-left: 1px solid #808080;
  border-right: 1px solid #9c9c9c;
}

.layout-main-frame .tarifas__table th,
.layout-main-frame .tarifas__table td {
  border: 1px solid #9c9c9c;
  padding: 0.75rem 0.25rem;
  text-align: center;
  line-height: normal;
}

.layout-main-frame .tarifas__table th {
  background: #f5f5f5;
  font-weight: 600;
  text-align: center;
  line-height: 1;
  background: #e0e0e0;
  border: none;
  border-bottom: 1px solid grey;
  width: auto;
  width: 20%;
  padding: 0.75rem 0.2rem;
}

.layout-main-frame .tarifas__table span{
  font-size: .75em;
  font-weight:lighter;
  line-height: 1;
  display: block;
  margin: 0.25rem 0;
}

.layout-main-frame .tarifas__table span.super{
  display:inline;
  font-size: .85em;
  color: #01a7a5;
  font-weight: 600;
  letter-spacing: .5px;
}
p.descuentos-info__notas span {
  color: #01a7a5;
  font-weight: 400;
}
.layout-main-frame .tarifas__caption {
  font-weight: normal;
  margin-bottom: 0;
  text-align: center;
  font-size: 1rem;
  text-wrap-style: balance;
  line-height: 1;
  background: #555555;
  color: white;
  padding: .5rem;
}
.layout-main-frame .tarifas__table td[data-label="Categoria"] {
    width: fit-content;
    text-wrap-mode: nowrap;
    border-bottom: 1px solid grey;
}
 .tarifas__table tr.categoria th {font-size: .9em;}

/* Tarifas modal — cards mobile (parque1) */
.layout-main-frame .tarifas__table--card {
  width: 100%;
  min-width: 0;
  margin-bottom: 0.85rem;
  border: 1px solid #9c9c9c;
  border-collapse: collapse;
  text-align: left;
}

.layout-main-frame .tarifas__caption--card {
  font-size: 0.95rem;
  font-weight: 600;
  line-height: 1.25;
  background: #e0e0e0;
  color: #333;
  border-bottom: 1px solid #9c9c9c;
}

.layout-main-frame .tarifas__caption--card span {
  display: inline;
  font-size: 0.85em;
  font-weight: normal;
}

.layout-main-frame .tarifas__caption--card span.super {
  display: inline;
  color: #01a7a5;
  font-weight: 600;
}


/* Bloque contrastante de descuentos disponibles (parque1) */
.layout-main-frame .descuentos-info {
  margin: 0 0 1rem 0;
  padding: 2rem;
  border-left: 4px solid #01a7a5;
  background: #f2f9f9;
  color: #2b2b2b;
  line-height: 1.5;
}

.layout-main-frame .descuentos-info__title {
  margin: 0 0 0.45rem 0;
  font-family: "Oswald", sans-serif;
  font-size: 1.15rem;
  font-weight: 400;
  text-transform: uppercase;
}

.layout-main-frame .descuentos-info__intro {
  margin: 0 0 0.6rem 0;
  /* font-size: 0.92rem; */
}

.layout-main-frame .descuentos-info__list {
  margin: 0;
  padding-left: 1.2rem;
}

.layout-main-frame .descuentos-info__list li {
  margin: 0.25rem 0;
  /* font-size: 0.92rem; */
}
.layout-main-frame .descuentos-info__list li span.descuento {
    color: #02a7a5;
    font-weight: normal;
}

.layout-main-frame .modal-sheet__body.arrepentimiento {
    font-size: 1rem;
    font-weight: 300;
    padding-bottom: 4rem;
    /* el mail largo (reservas@parquesnacionales.gob.ar) no debe desbordar */
    overflow-wrap: anywhere;
}
.layout-main-frame .modal-sheet__body.arrepentimiento p {
    margin-bottom: 2rem;
}
.layout-main-frame .modal-sheet__body.arrepentimiento b {
    color: #02a7a5;
}

/* ------------------------------------------
   Footer
   --------------------- */
.layout-main-frame .footer {
  margin-top: auto;
  display: flex;
  flex-direction: column;
  font-size: 0.85rem;
  color: #666;
}

.layout-main-frame .footer__top {
  border-top: 1px solid #e5e5e5;
  background-color: #f2f2f2;
  padding: 1.5rem 1rem;
  text-align: center;
}

.layout-main-frame .footer__partners {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-evenly;
  align-items: center;
  gap: 2rem;
  max-width: 960px;
  margin: 0 auto 1.25rem auto;
  min-height: 56px;
}

.layout-main-frame .footer__partners img {
  max-height: 40px;
  width: auto;
  height: auto;
  display: block;
  object-fit: contain;
  filter: grayscale(100%);
  opacity: 0.85;
}

.layout-main-frame .footer__partners img:hover {
  opacity: 1;
  filter: grayscale(80%);
}

.layout-main-frame .footer__copy {
  margin: 0;
  font-size: 0.9rem;
  color: #555;
  line-height: 1.5;
}

.layout-main-frame .footer__copy a {
  color: #02a7a5;
  text-decoration: none;
}

.layout-main-frame .footer__copy a:hover {
  text-decoration: underline;
}

/* Franja oscura: powered by ART2FLY */
.layout-main-frame .footer__powered {
  background-color: #333;
  padding: 0.85rem 1rem;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
}

.layout-main-frame .footer__powered img {
  max-height: 28px;
  width: auto;
  height: auto;
  display: block;
  vertical-align: middle;
}

@media (min-width: 768px) {
  .layout-main-frame .footer__top {
    padding: 2rem 1.5rem;
  }
  .layout-main-frame .footer__partners {
    gap: 2.5rem;
    margin-bottom: 1.5rem;
  }
  .layout-main-frame .footer__partners img {
    max-height: 100px;
    max-width: 150px;
  }
  .layout-main-frame .footer__powered {
    padding: 1rem 1rem;
  }
  .layout-main-frame .footer__powered img {
    max-height: 12px;
  }
}

/* 481-->782px (solo parque2): h1 ancho completo; debajo .left | .aside; luego .carro */
@media (min-width: 481px) and (max-width: 782px) {
  .layout-main-frame .main.parque2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto auto auto auto;
    gap: 1.5rem 2rem;
    padding: 1.5rem 1rem;
    overflow-x: hidden;
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
    box-sizing: border-box;
  }
  .layout-main-frame .main.parque2 .main__right {
    display: contents;
  }
  .layout-main-frame .main.parque2 .main__right h1,
  .layout-main-frame .main.parque2 .main__title {
    grid-column: 1 / -1;
    grid-row: 1;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    margin-bottom: 0;
    color: initial;
    background: none;
    border-color: grey;
  }
  .layout-main-frame .main.parque2 .left {
    grid-column: 1;
    grid-row: 2;
    align-self: flex-start;
    overflow: visible;
  }
  .layout-main-frame .main.parque2 .aside {
    grid-column: 2;
    grid-row: 2;
    min-width: 0;
    padding: 0;
  }
  .layout-main-frame .main.parque2 .left__sugerencias-btn {
    width: 100%;
    border: 1px solid grey;
  }
  .layout-main-frame .main.parque2 .left .left__map-wrap {
    max-height: 45vh;
    max-width: 100%;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 0;
  }
  .layout-main-frame .main.parque2 .left .left__map {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
  }
  .layout-main-frame .main.parque2 .carro-resumen {
    grid-column: 1 / -1;
    grid-row: 3;
    width: 100%;
  }
  .layout-main-frame .main.parque2 #alojamientos {
    grid-column: 1 / -1;
    grid-row: 4;
    margin-top: 1rem;
    padding-top: 1.5rem;
  }
}

/* >=783px (solo parque2): mapa contenido y proporcionado */
@media (min-width: 783px) {
  .layout-main-frame .main.parque2 .left {
    display: flex;
    align-self: stretch;
    height: clamp(280px, 32vw, 340px);
  }
  .layout-main-frame .main.parque2 .main__right {
    height: clamp(280px, 32vw, 340px);
    min-height: 0;
  }
  .layout-main-frame .main.parque2 .left .left__map-wrap {
    flex: 1 1 auto;
    height: 100%;
    min-height: 0;
    max-height: none;
    max-width: 100%;
    overflow: visible;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 0;
  }
  .layout-main-frame .main.parque2 .left .left__map {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
  }
}

/* 783-->992px (solo parque2): .left | .main__right; .carro-resumen 100% debajo */
@media (min-width: 783px) and (max-width: 992px) {
  .layout-main-frame .main.parque2 {
    display: grid;
    grid-template-columns: minmax(260px, 34%) minmax(0, 1fr);
    grid-template-rows: auto auto auto;
    gap: 2rem;
    padding: 1.5rem 3rem;
  }
  .layout-main-frame .main.parque2 .left {
    grid-column: 1;
    grid-row: 1;
    min-width: 0;
    width: 100%;
    align-self: stretch;
    overflow: visible;
  }
  .layout-main-frame .main.parque2 .main__right {
    grid-column: 2;
    grid-row: 1;
    min-width: 0;
  }
  .layout-main-frame .main.parque2 .carro-resumen {
    grid-column: 1 / -1;
    grid-row: 2;
    width: 100%;
    margin-top: 0;
  }
  .layout-main-frame .main.parque2 #alojamientos {
    grid-column: 1 / -1;
    grid-row: 3;
  }
}

/* >=993px (solo parque2): .left flexible; .main__right resto; .carro 100% */
@media (min-width: 993px) {
  .layout-main-frame .main.parque2 {
    display: grid;
    grid-template-columns: minmax(320px, 38%) minmax(520px, 1fr);
    grid-template-rows: auto auto auto;
    gap: 2rem;
    padding: 3rem;
  }
  .layout-main-frame .main.parque2 .left {
    grid-column: 1;
    grid-row: 1;
    min-width: 0;
    width: 100%;
    align-self: stretch;
    overflow: visible;
  }
  .layout-main-frame .main.parque2 .main__right {
    grid-column: 2;
    grid-row: 1;
    min-width: 0;
  }
  .layout-main-frame .main.parque2 .carro-resumen {
    grid-column: 1 / -1;
    grid-row: 2;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }
  .layout-main-frame .main.parque2 #alojamientos {
    grid-column: 1 / -1;
    grid-row: 3;
  }
}

/* ------------------------------------------
   Parque 1 .parque1 (mapa + texto + grid de circuitos)
   templates/parque/parque1-ES.tpl
   --------------------- */
.layout-main-frame .main.parque1 {
  display: block;
  padding: 1rem;
  max-width: 1200px;
  margin: 0 auto;
}

.layout-main-frame .parque1__top {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
  margin-bottom: 1rem;
}

.layout-main-frame .parque1__top-left,
.layout-main-frame .parque1__top-right {
  min-width: 0;
}
.layout-main-frame .parque1__top-left .small {
    display: block;
    text-align: center;
    font-size: .75rem;
    line-height: 1.25;
    margin: .25rem;
}

.layout-main-frame .parque1__text p {
  margin: 0 auto 0.75rem auto;
  width: min(100%,500px);
}

.layout-main-frame .parque1__text p:last-child {
  margin-bottom: 2rem;
}

.layout-main-frame .parque1__top-right .left__map-wrap {
  margin-bottom: 0;
}
.layout-main-frame .parque1__text ul {
    padding-left: 0;
    width: min(100%,500px);
    margin: 1rem auto;
}
.layout-main-frame .parque1__text ul li {
    margin-left: 1rem;
}
.layout-main-frame .parque1__bottom {
  width: 100%;
  margin: 2rem auto;
  padding: 1rem 0;
}

.layout-main-frame .parque1__circuitos {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
}

@media (min-width: 600px) {
  .layout-main-frame .parque1__circuitos {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 783px) {
  .layout-main-frame .parque1__top {
    grid-template-columns: minmax(260px, 34%) minmax(0, 1fr);
    gap: 2rem;
    align-items: start;
  }

  .layout-main-frame .parque1__top-left .left__map-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: visible;
    margin-top: 2rem;
  }

  .layout-main-frame .parque1__top-left .left__map {
    width: 100%;
    max-width: 100%;
    max-height: 100%;
    height: auto;
    object-fit: contain;
  }
}

@media (min-width: 769px) {
  .layout-main-frame .parque1__circuitos {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (min-width: 993px) {
  .layout-main-frame .main.parque1 {
    padding: 2rem 3rem;
  }

  .layout-main-frame .parque1__top {
    grid-template-columns: minmax(400px, 40%) minmax(0, 1fr);
  }
}

/* ------------------------------------------
   Modales (sugerencias, tarifas, mapa): parque1-ES.tpl, parque2-ES.tpl
   --------------------- */
.layout-main-frame .modal-overlay {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  visibility: hidden;
  opacity: 0;
  transition: visibility 0.25s, opacity 0.25s;
  overflow-y: auto;
}

.layout-main-frame .modal-overlay:has(.modal-sheet--mapa) {
  align-items: flex-start;
}

.layout-main-frame .modal-overlay.is-open {
  visibility: visible;
  opacity: 1;
}

.layout-main-frame .modal-overlay__backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
  cursor: pointer;
}

.layout-main-frame .modal-sheet {
  position: relative;
  z-index: 1;
  width: 90%;
  max-width: 1000px;
  max-height: 85vh;
  display: flex;
  flex-direction: column;
  background: #fff;
  border-radius: 8px;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
  overflow: hidden;
}

@media (max-width: 767px) {
  .layout-main-frame .modal-overlay {
    padding: 0.5rem;
  }
  .layout-main-frame .modal-sheet {
    width: 96%;
    max-width: none;
    max-height: 94vh;
  }

  .layout-main-frame .modal-sheet--tarifas {
    width: 100%;
    max-height: 92vh;
  }

  .layout-main-frame .modal-sheet--tarifas .modal-sheet__header {
    padding: 0.85rem 1rem;
  }

  .layout-main-frame .modal-sheet--tarifas .modal-sheet__title {
    font-size: 1.25rem;
    line-height: 1.25;
    padding-right: 0.35rem;
  }

  .layout-main-frame .modal-sheet--tarifas .modal-sheet__body {
    padding: 1rem 0.75rem 1.25rem;
    overflow-x: hidden;
  }

  .layout-main-frame .modal-sheet--tarifas .tarifas__desktop {
    display: none;
  }

  .layout-main-frame .modal-sheet--tarifas .tarifas__mobile {
    display: block;
  }

  .layout-main-frame .modal-sheet--tarifas .tarifas__season--mobile {
    display: block;
    margin: 0 0 0.85rem;
    padding: 0.45rem 0.5rem;
    text-align: center;
    font-size: 0.88rem;
    line-height: 1.2;
    background: #555555;
    color: #fff;
  }

  .layout-main-frame .modal-sheet--tarifas .tarifas__table--card {
    display: block;
    width: 100%;
    min-width: 0;
    border-left: 1px solid #808080;
    border-right: 1px solid #9c9c9c;
  }

  .layout-main-frame .modal-sheet--tarifas .tarifas__table--card caption {
    display: block;
    width: 100%;
    box-sizing: border-box;
  }

  .layout-main-frame .modal-sheet--tarifas .tarifas__table--card tbody,
  .layout-main-frame .modal-sheet--tarifas .tarifas__table--card tr {
    display: block;
    width: 100%;
  }

  .layout-main-frame .modal-sheet--tarifas .tarifas__table--card tr {
    border-top: 1px solid #d8d8d8;
  }

  .layout-main-frame .modal-sheet--tarifas .tarifas__table--card tr:first-child {
    border-top: none;
  }

  .layout-main-frame .modal-sheet--tarifas .tarifas__table--card td {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    width: 100%;
    box-sizing: border-box;
    padding: 0.65rem 0.75rem;
    border: none;
    text-align: right;
    line-height: 1.3;
  }

  .layout-main-frame .modal-sheet--tarifas .tarifas__table--card td::before {
    content: attr(data-label);
    flex: 1 1 auto;
    text-align: left;
    font-weight: 600;
    color: #333;
    line-height: 1.25;
  }

  .layout-main-frame .modal-sheet--tarifas .descuentos-info {
    padding: 0.85rem 0.9rem;
    margin-bottom: 0;
  }

  .layout-main-frame .modal-sheet--tarifas .descuentos-info__title {
    font-size: 1rem;
  }
}

.layout-main-frame .modal-sheet__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.25rem;
  border-bottom: 1px solid #e0e0e0;
  background: #f8f8f8;
  flex-shrink: 0;
}

.layout-main-frame .modal-sheet__title {
  margin: 0;
  font-size: 2rem;
  font-weight: 300;
  line-height: 1.2;
}

.layout-main-frame .modal-sheet__close {
  width: 2rem;
  height: 2rem;
  padding: 0;
  border: none;
  background: transparent;
  font-size: 1.5rem;
  line-height: 1;
  color: #666;
  cursor: pointer;
  border-radius: 4px;
}

.layout-main-frame .modal-sheet__close:hover {
  background: #eee;
  color: #333;
}

.layout-main-frame .modal-sheet__body {
  padding: 2rem 5rem;
  overflow-y: auto;
  overflow-x: hidden;
  flex: 1 1 auto;
  min-height: 0;
  font-size: 0.9rem;
  line-height: 1.6;
  color: #333;
}

.modal-sheet__body {
  padding: 0rem 2rem 5rem 2rem;
}

/* Modal mapa: imagen a maximo ancho, modal tan alto como haga falta (scroll en overlay) */
.layout-main-frame .modal-sheet--mapa {
  position: relative;
  max-height: none;
}
.layout-main-frame .modal-sheet--mapa .modal-sheet__close {
  position: absolute;
  top: 0.75rem;
  right: 0.75rem;
  z-index: 2;
}
.layout-main-frame .modal-sheet--mapa .modal-sheet__body--mapa {
  display: block;
  padding: 1.5rem;
  min-height: 0;
}
.layout-main-frame .modal-mapa__img {
  display: block;
  max-width: 100%;
  width: auto;
  height: auto;
  vertical-align: top;
}

.layout-main-frame .main.parque2 .estacion__seccion--imagen.js-estacion-galeria-trigger {
  cursor: pointer;
}

.layout-main-frame .main.parque2 .estacion__seccion--imagen.js-estacion-galeria-trigger:focus {
  outline: 2px solid #01a7a5;
  outline-offset: 2px;
}

.layout-main-frame .modal-sheet--galeria-estacion {
  width: 90%;
  max-width: none;
  height: 90vh;
  max-height: 90vh;
  border-radius: 8px;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
  border: 1px solid #fff;
  box-sizing: border-box;
  padding: 6px 6px 1.25rem 6px;
}

.layout-main-frame .modal-sheet--galeria-estacion .modal-sheet__close {
  position: absolute;
  top: 0.75rem;
  right: 0.75rem;
  z-index: 5;
  color: #555;
}

.layout-main-frame .modal-sheet--galeria-estacion .modal-sheet__close:hover {
  background: #eee;
  color: #333;
}

.layout-main-frame .modal-sheet__body--galeria-estacion {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  padding: 0;
  overflow: hidden;
}

.layout-main-frame .estacion-galeria__figure {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  margin: 0;
  width: 100%;
}

.layout-main-frame .estacion-galeria__viewport {
  position: relative;
  flex: 1 1 auto;
  min-height: 0;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 6px;
}

.layout-main-frame .estacion-galeria__img {
  display: block;
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
}

.layout-main-frame .estacion-galeria__caption {
  flex-shrink: 0;
  margin: 0;
  padding: 0.65rem 0.35rem 0;
  text-align: center;
  font-size: 1rem;
  line-height: 1.4;
  color: #333;
}

.layout-main-frame .estacion-galeria__counter {
  position: absolute;
  bottom: 0.65rem;
  left: 0;
  right: 0;
  z-index: 2;
  text-align: center;
  font-size: 0.9rem;
  font-weight: 600;
  color: #fff;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.75);
  pointer-events: none;
}

.layout-main-frame .estacion-galeria__nav {
  position: absolute;
  top: 50%;
  z-index: 2;
  transform: translateY(-50%);
  width: 2.5rem;
  height: 2.5rem;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, 0.55);
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.25);
  color: #fff;
  font-size: 1.8rem;
  line-height: 1;
  cursor: pointer;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.5);
}

.layout-main-frame .estacion-galeria__nav--prev {
  left: 0.5rem;
}

.layout-main-frame .estacion-galeria__nav--next {
  right: 0.5rem;
}

.layout-main-frame .estacion-galeria__nav[disabled] {
  opacity: 0.35;
  cursor: default;
}

.layout-main-frame .modal-sheet__body p {
  font-size: 1rem;
  text-align: left;
  margin: 0 0 1rem 0;
}

.layout-main-frame .modal-sheet__body p:last-child {
  margin-bottom: 0;
}
.layout-main-frame .modal-sheet__body .carro-resumen__repricing .carro-resumen__subtitulo {
    font-weight: 300;

}
.layout-main-frame .modal-sheet__body h3,
.layout-main-frame .modal-sheet__body h4 {
  margin: 0 0 1rem 0;
  font-weight: normal;
  font-family: 'Lato';
}

.layout-main-frame .modal-sheet__body ul,
.layout-main-frame .modal-sheet__body ol {
  margin: 0 0 0.75rem 0;
  padding-left: 1.25rem;
}

/* -------------------------------------------------------------------
   Contenido modal itinerarios (itinerarios-modal1-ES.tpl) --> colores y fuentes del sitio
   ---------------------------- */
.layout-main-frame .modal-sheet__body .itinerarios-modal {
  font-family: "Lato", sans-serif;
  color: #333;
  line-height: 1.55;
}

/* El contenido (BD) trae class="... main": anula el padding 3rem y el
   min-height 60vh que .layout-main-frame .main aplica fuera del modal */
.layout-main-frame .modal-sheet__body .itinerarios-modal .main {
  padding: 0.75rem;
  min-height: 0;
}

.layout-main-frame .modal-sheet__body .itinerarios-modal__hero {
  background: linear-gradient(135deg, #01a7a5 0%, #2a9d8f 100%);
  color: #fff;
  border-radius: 12px;
  padding: 1.25rem 1.5rem;
  margin-bottom: 1.5rem;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
}

.layout-main-frame .modal-sheet__body .itinerarios-modal__hero-title {
  margin: 1.5rem 0;
  font-family: "Oswald", sans-serif;
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: lighter;
  line-height: 1.15;
}

.layout-main-frame .modal-sheet__body .itinerarios-modal__hero-desc {
  margin: 0;
  font-size: 0.95rem;
  opacity: 0.95;
}

.layout-main-frame .modal-sheet__body .itinerarios-modal__grid {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

/* Parque2 / BD: fila superior = imagen | (Sugerencias + ul); debajo, bloques h3+p a ancho 100% */
.layout-main-frame .modal-sheet__body .itinerarios-modal__grid:has(> .modal-mapa__img) {
  display: grid;
  grid-template-columns: minmax(0, 34%) minmax(0, 1fr);
  column-gap: 1.75rem;
  row-gap: 0.25rem;
  align-items: start;
}

.layout-main-frame
  .modal-sheet__body
  .itinerarios-modal__grid:has(> .modal-mapa__img)
  > .modal-mapa__img {
  grid-column: 1;
  grid-row: 1 / 3;
  width: 100%;
  max-width: 100%;
  height: auto;
  display: block;
  object-fit: contain;
  align-self: start;
}

.layout-main-frame
  .modal-sheet__body
  .itinerarios-modal__grid:has(> .modal-mapa__img)
  > .itinerarios-modal__card-h4 {
  grid-column: 2;
  grid-row: 1;
  margin: 0 0 0.35rem 0;
  align-self: end;
  min-width: 0;
}

.layout-main-frame
  .modal-sheet__body
  .itinerarios-modal__grid:has(> .modal-mapa__img)
  > ul {
  grid-column: 2;
  grid-row: 2;
  margin: 0;
  padding-left: 1.25rem;
  align-self: start;
  min-width: 0;
}

.layout-main-frame
  .modal-sheet__body
  .itinerarios-modal__grid:has(> .modal-mapa__img)
  > .itinerarios-modal__card-title,
.layout-main-frame
  .modal-sheet__body
  .itinerarios-modal__grid:has(> .modal-mapa__img)
  > .itinerarios-modal__subtle {
  grid-column: 1 / -1;
  width: 100%;
  max-width: none;
  min-width: 0;
  box-sizing: border-box;
}

.layout-main-frame
  .modal-sheet__body
  .itinerarios-modal__grid:has(> .modal-mapa__img)
  > .itinerarios-modal__card-title {
  margin: 0.85rem 0 0.2rem 0;
  padding: 0.45rem 0.75rem 0.5rem;
  line-height: 1.3;
}

.layout-main-frame
  .modal-sheet__body
  .itinerarios-modal__grid:has(> .modal-mapa__img)
  > ul
  + .itinerarios-modal__card-title {
  margin-top: 1.35rem;
}

.layout-main-frame
  .modal-sheet__body
  .itinerarios-modal__grid:has(> .modal-mapa__img)
  > .itinerarios-modal__subtle {
  margin: 0 0 1rem 0;
  text-wrap-style: pretty;
}

.layout-main-frame
  .modal-sheet__body
  .itinerarios-modal__grid:has(> .modal-mapa__img)
  > .itinerarios-modal__subtle
  + .itinerarios-modal__card-title {
  margin-top: 0.85rem;
}

.layout-main-frame
  .modal-sheet__body h2 {
  min-width: 300px;
  text-align:left;
}

@media (max-width: 640px) {
  .layout-main-frame .modal-sheet__body .itinerarios-modal__grid:has(> .modal-mapa__img) {
    grid-template-columns: 1fr;
    row-gap: 0.65rem;
  }

  .layout-main-frame
    .modal-sheet__body
    .itinerarios-modal__grid:has(> .modal-mapa__img)
    > .modal-mapa__img {
    grid-column: 1;
    grid-row: auto;
    max-width: 260px;
    margin: 0 auto;
  }

  .layout-main-frame
    .modal-sheet__body
    .itinerarios-modal__grid:has(> .modal-mapa__img)
    > .itinerarios-modal__card-h4 {
    grid-column: 1;
    grid-row: auto;
  }

  .layout-main-frame
    .modal-sheet__body
    .itinerarios-modal__grid:has(> .modal-mapa__img)
    > ul {
    grid-column: 1;
    grid-row: auto;
  }
}

.layout-main-frame .modal-sheet__body .itinerarios-modal__card {
  background: #fff;
  border: none;
  border-radius: 10px;
  padding: 1.25rem 1.5rem;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.4);
  margin-bottom: 2rem;
}


.layout-main-frame .modal-sheet__body .itinerarios-modal__simple-title {
  margin: 0;
  font-family: "Oswald", sans-serif;
  font-size: 1.25rem;
  font-weight: normal;
  line-height: 1.2;
  width: 100%;
  text-decoration: none;
  display: block;
  grid-column: 1 / -1;
  width: 100%;
  max-width: none;
  min-width: 0;
  box-sizing: border-box;
}
.layout-main-frame .modal-sheet__body .itinerarios-modal__simple-title span {
  color: #01a7a5;
}
.layout-main-frame .modal-sheet__body .itinerarios-modal__card-title {
  margin: 0;
  font-family: "Oswald", sans-serif;
  font-size: 1.25rem;
  font-weight: normal;
  line-height: 1.2;
  width: 100%; 
  text-decoration: none;
  display: block;
  grid-column: 1 / -1;
  width: 100%;
  max-width: none;
  min-width: 0;
  box-sizing: border-box;
  background-color: #e0e0e0;
  padding: 0.25rem 1rem;
}
.layout-main-frame .modal-sheet__body .itinerarios-modal__card-title span {
  background: #01a7a5;
  padding: 0px 6px;
  color: white;
  text-wrap-mode: nowrap;
  line-height: 2;
}

.layout-main-frame .modal-sheet__body .itinerarios-modal__pills {
  margin-bottom: 1rem;
}

.layout-main-frame .modal-sheet__body .itinerarios-modal__pill {
  display: inline-block;
  padding: 0.35rem 0.65rem;
  border-radius: 999px;
  background: #e8f5f5;
  color: #02a7a5;
  font-size: 0.85rem;
  margin: 0.5rem 0 0 0;
  border: 1px solid #b3e5e4;
}

.layout-main-frame .modal-sheet__body .itinerarios-modal__card-h4 {
  margin: 1.25rem 0 0.5rem 0;
  font-family: "Lato", sans-serif;
  font-size: 1.05rem;
  font-weight: 700;
  color: #02a7a5;
}

.layout-main-frame .modal-sheet__body .itinerarios-modal__two-col {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2rem;
  margin-top: 0;
  margin-bottom: 2rem;
}

@media (max-width: 640px) {
  .layout-main-frame .modal-sheet__body .itinerarios-modal__two-col {
    grid-template-columns: 1fr;
  }
}

.layout-main-frame .modal-sheet__body .itinerarios-modal__it-box {
  background: #f8f8f8;
  border: 1px solid #e0e0e0;
  border-radius: 8px;
  padding: 1rem;
  margin-top: 0.5rem;
}

.layout-main-frame .modal-sheet__body .itinerarios-modal__it-box strong {
  color: inherit;
}

.layout-main-frame .modal-sheet__body .itinerarios-modal__it-box ul {
  margin: 0.5rem 0 0 1rem;
  padding: 0;
}

.layout-main-frame .modal-sheet__body .itinerarios-modal__it-box li {
  margin: 0.35rem 0;
}

.layout-main-frame .modal-sheet__body .itinerarios-modal__it-box li span {
  color: #009688;
  display: block;
  font-weight: bold;
}

.layout-main-frame .modal-sheet__body .itinerarios-modal__subtle {
  color: #666;
  font-size: 1rem;
  margin: 0 0 0.75rem 0;
  line-height: 1.4;
}

.layout-main-frame .modal-sheet__body .itinerarios-modal__diagram {
  background: #fafafa;
  border: 1px dashed #ccc;
  border-radius: 8px;
  padding: 1rem;
  overflow-x: auto;
  font-family: "Courier New", Consolas, monospace;
  font-size: 0.8rem;
  line-height: 1.5;
  white-space: pre-wrap;
  color: #555;
}

.layout-main-frame .modal-sheet__body .itinerarios-modal__table-wrap {
  /* overflow-y hidden + overflow-x auto: scroll horizontal cuando la tabla
     no cabe (mobile); el shorthand overflow:hidden anulaba el scroll */
  overflow-x: auto;
  overflow-y: hidden;
  margin-top: 0.75rem;
  border: none;
  border-radius: 8px;
  max-width: 100%;
  -webkit-overflow-scrolling: touch;
}

.layout-main-frame .modal-sheet__body .itinerarios-modal__table {
  background: white;
  width: 100%;
  border-collapse: collapse;
  font-size: 0.78rem;
  border: none;
}

.layout-main-frame .modal-sheet__body .itinerarios-modal__table th,
.layout-main-frame .modal-sheet__body .itinerarios-modal__table td {
  border: 1px solid #ddd;
  padding: 0.4rem 0.5rem;
  text-align: left;
  vertical-align: middle;
  text-wrap-style: pretty;
}

.layout-main-frame .modal-sheet__body .itinerarios-modal__table th {
  background: #e8f5f5;
  font-weight: 700;
  color: #02a7a5;
  line-height:1.2;
}

.layout-main-frame .modal-sheet__body .itinerarios-modal__table th:nth-child(2), 
.layout-main-frame .modal-sheet__body .itinerarios-modal__table td:nth-child(2) {
  text-align:center;
}

.layout-main-frame .modal-sheet__body .itinerarios-modal__quote {
  font-size: 0.95rem;
  color: #444;
  background: linear-gradient(180deg, #f8f8f8 0%, #f0f0f0 100%);
  border-left: 4px solid #01a7a5;
  padding: 1rem 1.25rem;
  border-radius: 8px;
  margin-top: 0.75rem;
  line-height: 1.6;
}

.layout-main-frame .modal-sheet__body .itinerarios-modal__footer {
  margin-top: 1.5rem;
  color: #666;
  font-size: 0.85rem;
}

@media (max-width: 767px) {
  .layout-main-frame .modal-sheet__body {
    overflow-x: hidden;
    min-width: 0;
    padding: 0.85rem 0.75rem 1.25rem;
  }

  /* Header y titulo mas compactos (el general; --tarifas ya tiene el suyo) */
  .layout-main-frame .modal-sheet__header {
    padding: 0.85rem 1rem;
  }

  .layout-main-frame .modal-sheet__title {
    font-size: 1.35rem;
    line-height: 1.25;
    padding-right: 0.35rem;
  }

  /* Contenido itinerarios: menos aire entre bloques */
  .layout-main-frame .modal-sheet__body .itinerarios-modal__hero {
    padding: 0.9rem 1rem;
    margin-bottom: 1rem;
  }

  .layout-main-frame .modal-sheet__body .itinerarios-modal__hero-title {
    margin: 0.5rem 0;
  }

  .layout-main-frame .modal-sheet__body .itinerarios-modal__card {
    padding: 0.85rem 0.9rem;
    margin-bottom: 1rem;
  }

  .layout-main-frame .modal-sheet__body .itinerarios-modal__two-col {
    gap: 1rem;
    margin-bottom: 1rem;
  }

  /* Tabla: ancho minimo real + scroll horizontal en el wrapper, en vez de
     columnas angostas que cortan el contenido */
  .layout-main-frame .modal-sheet__body .itinerarios-modal__table {
    min-width: 34rem;
    font-size: 0.7rem;
  }
  .layout-main-frame .modal-sheet__body .itinerarios-modal__table th,
  .layout-main-frame .modal-sheet__body .itinerarios-modal__table td {
    padding: 0.3rem 0.35rem;
  }
}

/* ------------------------------------------
   Parque 3 (parque3-ES.tpl)
   Registro de visitantes, cupon, tabla visitantes, medios de pago
   --------------------- */

/* --- Inputs y datepicker por fila --- */
.layout-main-frame .parque3 .visitantes__input {
  width: 100%;
  height: 2rem;
  padding: 4px 6px;
  font-size: inherit;
  border: none;
  box-sizing: border-box;
  background: #fff;
}

.layout-main-frame .parque3 .visitantes__input.input-error,
.layout-main-frame .parque3 select.visitantes__input.input-error {
  background: #01acd726 !important;
}

.layout-main-frame .parque3 .visitantes__fecha-wrap {
  position: relative;
}

.layout-main-frame .parque3 .visitantes__fecha-wrap .visitantes__input {
  padding-right: 30px;
}

.layout-main-frame .parque3 .visitantes__cal-icon {
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  pointer-events: auto;
}

.layout-main-frame .parque3 .input-error:focus {
  outline: none;
  box-shadow: 0 0 0 1px #FFC107;
}

/* --- Residencia (ciudad / provincia-localidad): stacks y labels --- */
.layout-main-frame .parque3 .visitantes__ubicacion-stack {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.layout-main-frame .parque3 .visitantes__ubicacion-stack .visitantes__input {
  width: 100%;
}

.layout-main-frame .parque3 .visitantes__ubicacion-label {
  display: block;
  font-size: 12px;
  font-weight: 700;
  color: #555;
  margin-bottom: 4px;
}

/* --- Utilidad JS (solo dentro de paso 3) --- */
.layout-main-frame .parque3 .js-hide {
  display: none;
}

/* --- Tabla visitantes: scroll horizontal + auto layout (residencia crece con AR) --- */
.layout-main-frame .parque3 .carro-resumen--visitantes .carro-resumen__table-wrap {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
}

.layout-main-frame .parque3 .carro-resumen__table--visitantes {
  width: 100%;
  min-width: 900px;
  table-layout: auto;
  margin-bottom: 3rem;
}
.layout-main-frame .parque3 .carro-resumen__table--visitantes th {
  line-height: 1;
  font-size: .9rem;
  color: white;
  background: grey;
  font-weight: normal;
  padding: .25rem;
  height: 2.5rem;
}

.layout-main-frame .parque3 .carro-resumen__table--visitantes td {
  font-size: .8rem;
  line-height: 1;
  padding: .25rem;
  border: 1px solid #bfbfbf;
  height: fit-content;
}

.layout-main-frame .parque3 .col-nombre        { width: 10%; }
.layout-main-frame .parque3 .col-apellido      { width: 10%; }
.layout-main-frame .parque3 .col-doc           { width: 11%; }
.layout-main-frame .parque3 .col-nac           { width: 10%; }
.layout-main-frame .parque3 .col-ubicacion     { width: 15%; }
.layout-main-frame .parque3 .col-ocupacion     { width: 10%; }
.layout-main-frame .parque3 .col-fecha         { width: 11%; }

/* --- Datos de contacto del grupo (fieldset, no tabla) --- */
.layout-main-frame .parque3 .paso3-contacto {
  width: min(100%, 700px);
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

.layout-main-frame .parque3 .paso3-contacto__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .2rem;
}

.layout-main-frame .parque3 .paso3-contacto__field {
  min-width: 0;
}

.layout-main-frame .parque3 .paso3-contacto__label {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  line-height: 1;
  font-size: 1rem;
  color: white;
  background: grey;
  font-weight: normal;
  padding: .25rem;
  height: 2.5rem;
  box-sizing: border-box;
  margin-bottom: .25rem;
}

.layout-main-frame .parque3 .paso3-contacto__input-wrap {
  font-size: .8rem;
  line-height: 1;
  padding: .25rem;
  border: 1px solid #bfbfbf;
  height: fit-content;
}

.layout-main-frame .parque3 th.col-ubicacion,
.layout-main-frame .parque3 td.visitantes__td--ubicacion {
  min-width: 8rem;
}

.layout-main-frame .parque3 .carro-resumen__table--visitantes.carro-resumen__table--ubicacion-argentina th.col-ubicacion,
.layout-main-frame .parque3 .carro-resumen__table--visitantes.carro-resumen__table--ubicacion-argentina td.visitantes__td--ubicacion {
  min-width: 17rem;
}

.layout-main-frame .parque3 td.visitantes__td--ubicacion {
  vertical-align: top;
}

/* Residencia Argentina: provincia + localidad en fila cuando hay ancho (celda ancha) */
.layout-main-frame .parque3 tr.visitantes__fila--argentina-residencia .js-ubicacion-argentina {
  flex-direction: row;
  align-items: center;
  gap: 0px 5px;
}

.layout-main-frame .parque3 tr.visitantes__fila--argentina-residencia .js-ubicacion-argentina > div {
  flex: 1 1 9rem;
  min-width: 0;
}

.layout-main-frame .parque3 tr.visitantes__fila--argentina-residencia .js-ubicacion-argentina select.visitantes__input.js-localidad {
  border-left: 1px solid grey;
}

.layout-main-frame .parque3 .visitantes__td--visitante {
  line-height: 1.2;
  white-space: normal;
}

.layout-main-frame .parque3 .visitantes__numero {
  font-weight: 700;
  margin-bottom: 4px;
}

.layout-main-frame .parque3 .visitantes__tipo {
  color: #666;
}

.layout-main-frame .parque3 .carro-resumen__mensaje--visitantes {
  margin-top: 12px;
  text-align: left;
}

.layout-main-frame .parque3 .paso3-check.input-error {
  border: 2px dashed #02a7a5;
  background: #deeff56b;
  padding: 8px 10px;
  display: block;
}
.layout-main-frame .parque3 .paso3-check span {
  font-weight: 400;
}
.layout-main-frame .parque3 .paso3-check input:checked ~ span {
  color: #02a7a5;
  font-weight: normal;
}
.layout-main-frame .parque3 .paso3-editar-datos {
  margin: 1rem 0;
  padding: 0;
  border: 0;
}

.layout-main-frame .parque3 .paso3-editar-datos__inner {
  text-align: left;
}

/* --- Medios de pago --- */
.layout-main-frame .parque3 .paso3-pago {
  border-bottom: none;
  padding-bottom: 3rem;
}

.layout-main-frame .parque3 .paso3-pago__opciones {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.layout-main-frame .parque3 .medio-de-pago {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px 10px 0;
  cursor: pointer;
  flex-direction: row;
  flex-wrap: wrap;
}

.layout-main-frame .parque3 .medio-de-pago input {
  margin: 0;
}

.layout-main-frame .parque3 .medio-de-pago label {
  margin: 0;
  cursor: pointer;
}

.layout-main-frame .parque3 .logo-medio-de-pago {
  height: 2rem;
}

.layout-main-frame .parque3 .medio-de-pago.input-error {
  border: 1px solid #d9534f;
  background: #fff5f5;
}

/* --- Tabla visitantes + formulario: layout apilado (max-width 991px) --- */
@media (max-width: 991px) {
  .layout-main-frame .parque3 .carro-resumen__table--visitantes,
  .layout-main-frame .parque3 .carro-resumen__table--visitantes thead,
  .layout-main-frame .parque3 .carro-resumen__table--visitantes tbody,
  .layout-main-frame .parque3 .carro-resumen__table--visitantes th,
  .layout-main-frame .parque3 .carro-resumen__table--visitantes td,
  .layout-main-frame .parque3 .carro-resumen__table--visitantes tr {
    display: block;
    width: 100%;
    min-width: 0;
  }

  .layout-main-frame .parque3 .carro-resumen__table--visitantes thead {
    display: none;
  }

  .layout-main-frame .parque3 .carro-resumen__table--visitantes tr {
    margin: 0 0 2rem 0;
    border: 1px solid #dadada;
    border-radius: 4px;
    padding: 1rem;
    background: #fafafa;
    box-sizing: border-box;
    column-count: 2;
    column-gap: 1rem;
  }
  .layout-main-frame .parque3 .carro-resumen__table--visitantes tr:last-of-type {
    margin: 0;
  }

  .layout-main-frame .parque3 .carro-resumen__table--visitantes td {
    border: 0;
    padding: 0;
    margin-bottom: 12px;
    break-inside: avoid;
  }

  .layout-main-frame .parque3 .carro-resumen__table--visitantes td:last-child {
    margin-bottom: 0;
  }

  .layout-main-frame .parque3 .carro-resumen__table--visitantes td::before {
    content: attr(data-label);
    display: inline-block;
    margin-bottom: 6px;
    font-weight: normal;
    font-size: 14px;
    line-height: 1.2;
    width: auto;
  }

  .layout-main-frame .parque3 tr.visitantes__fila--argentina-residencia .js-ubicacion-argentina select.visitantes__input.js-localidad::before {
        content: attr(data-label);
        display: block;
        margin-bottom: 6px;
        font-weight: normal;
  }
  .layout-main-frame .parque3 .visitantes__td--visitante {
    background: #f8f8f8;
    padding: 10px !important;
    border-radius: 4px;
    margin-bottom: 14px !important;
  }

  .layout-main-frame .parque3 .visitantes__td--visitante::before {
    margin-bottom: 8px;
  }

  .layout-main-frame .parque3 .visitantes__input {
    height: 38px;
    font-size: 14px;
    border: 1px  solid #bfbfbf;
  }
   .layout-main-frame .parque3 .paso3-contacto__grid .visitantes__input {
     border:none;}
  
  .layout-main-frame .parque3 .visitantes__fecha-wrap .visitantes__input {
    padding-right: 34px;
  }

  .layout-main-frame .parque3 .paso3-pago__opciones {
    flex-direction: column;
  }

  .layout-main-frame .parque3 .medio-de-pago {
    width: 100%;
  }

  .layout-main-frame .parque3 .cal-disabled {
    pointer-events: none;
    opacity: 0.5;
  }

  /* En layout apilado no aplican los min-width de la vista tabla (8rem/17rem):
     con especificidad menor, ganaban y sacaban los selects del recuadro */
  .layout-main-frame .parque3 .carro-resumen__table--visitantes th.col-ubicacion,
  .layout-main-frame .parque3 .carro-resumen__table--visitantes td.visitantes__td--ubicacion,
  .layout-main-frame .parque3 .carro-resumen__table--visitantes.carro-resumen__table--ubicacion-argentina th.col-ubicacion,
  .layout-main-frame .parque3 .carro-resumen__table--visitantes.carro-resumen__table--ubicacion-argentina td.visitantes__td--ubicacion {
    min-width: 0;
  }

  /* En movil, residencia Argentina: selects apilados a ancho completo */
  .layout-main-frame .parque3 tr.visitantes__fila--argentina-residencia .js-ubicacion-argentina {
    flex-direction: column;
    align-items: stretch;
  }

  .layout-main-frame .parque3 tr.visitantes__fila--argentina-residencia .js-ubicacion-argentina > div {
    flex: 1 1 auto;
  }

  .layout-main-frame .parque3 tr.visitantes__fila--argentina-residencia .js-ubicacion-argentina > div:nth-child(2) {
    margin-top: .5rem;
    margin-bottom: 1.5rem;
  }
}

/* --- Contacto del grupo: tablet mantiene grid 3 cols a ancho completo --- */
@media (min-width: 577px) and (max-width: 991px) {
  .layout-main-frame .parque3 .paso3-contacto {
    width: 100%;
  }
}

/* --- Contacto del grupo: tarjeta apilada como visitantes (max-width 576px) --- */
@media (max-width: 576px) {
  .layout-main-frame .parque3 .paso3-contacto {
    width: 100%;
    border: 1px solid #dadada;
    border-radius: 4px;
    padding: 1rem;
    background: #fafafa;
    box-sizing: border-box;
  }

  .layout-main-frame .parque3 .paso3-contacto__grid {
    grid-template-columns: 1fr;
    gap: 0;
  }

  .layout-main-frame .parque3 .paso3-contacto__field {
    margin-bottom: 12px;
  }

  .layout-main-frame .parque3 .paso3-contacto__field:last-child {
    margin-bottom: 0;
  }

  .layout-main-frame .parque3 .paso3-contacto__label {
    display: inline-block;
    text-align: left;
    color: inherit;
    background: transparent;
    height: auto;
    padding: 0;
    margin-bottom: 6px;
    font-size: 14px;
    line-height: 1.2;
    font-weight: normal;
  }

  .layout-main-frame .parque3 .paso3-contacto__input-wrap {
    padding: 0;
    border: 0;
  }

  .layout-main-frame .parque3 .paso3-contacto__input-wrap .visitantes__input {
    width: 100%;
    box-sizing: border-box;
    border: 1px  solid #bfbfbf;
  }
}

@media (max-width: 700px) {
  .layout-main-frame .parque3 .carro-resumen__table--visitantes tr {
    column-count: 1;
  }
  .layout-main-frame .parque3 tr.visitantes__fila--argentina-residencia .js-ubicacion-argentina > div:nth-child(2) {
    margin-top: 1rem;
    margin-bottom: .5rem;
  }

}

/* ------------------------------------------
   Parque 4 (parque4-ES.tpl)
   Confirmacion de reserva
   --------------------- */
.layout-main-frame .parque4 table.carro-resumen__table--visitantes  {width: 100%;font-weight: normal;border-collapse: collapse;}
.layout-main-frame .parque4 .carro-resumen__table--visitantes th {line-height: 1;font-size: .9rem;color: white;background: grey;font-weight: normal;padding: .25rem .75rem;height: 2rem;text-align: left;}
.layout-main-frame .parque4 .carro-resumen__table--visitantes td {font-size: .9rem;color: initial;font-weight: 300;padding: 0 .75rem;border-bottom: 1px solid grey;height: fit-content;line-height: 1.3;height: 3rem;text-align: left;}


.layout-main-frame .parque4-visitante-item {
  padding: 8px 0;
  border-bottom: 1px solid #ddd;
}

/* ojo -->480px: visitantes como fichas; la tabla desbordaba el viewport
   (y de paso empujaba el ancho de toda la pagina, cortando el modal) */
@media (max-width: 480px) {
  .layout-main-frame .parque4 table.carro-resumen__table--visitantes,
  .layout-main-frame .parque4 .carro-resumen__table--visitantes tbody,
  .layout-main-frame .parque4 .carro-resumen__table--visitantes tr,
  .layout-main-frame .parque4 .carro-resumen__table--visitantes td {
    display: block;
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
  }

  .layout-main-frame .parque4 .carro-resumen__table--visitantes th {
    display: none;
  }

  .layout-main-frame .parque4 .carro-resumen__table--visitantes tr.visitante-item {
    margin: 0 0 1rem;
    padding: 0.75rem 1rem;
    border: 1px solid #dadada;
    border-radius: 4px;
    background: #fafafa;
  }

  .layout-main-frame .parque4 .carro-resumen__table--visitantes td {
    height: auto;
    padding: 0.15rem 0;
    border-bottom: none;
  }

  .layout-main-frame .parque4 .carro-resumen__table--visitantes td::before {
    content: attr(data-label) ": ";
    color: #555;
  }
}

.layout-main-frame .parque4-comprobante-wrapper {
  overflow-x: auto;
}

/* ------------------------------------------
   jQuery UI Datepicker (parque2): Lato, celdas cuadradas, gap, sin borde, hover invertido
   --------------------- */
.ui-datepicker,
.ui-datepicker * {
  font-family: 'Lato', sans-serif;
}

.datepicker-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.2s ease, visibility 0.2s ease;
  z-index: 999;
  pointer-events: none;
}

.datepicker-backdrop.is-open {
  opacity: 1;
  visibility: visible;
}

#ui-datepicker-div {
  z-index: 1000 !important;
}

.ui-datepicker .ui-datepicker-header {
  position: relative;
  padding: 0;
  margin: 0;
  min-height: 2.5em;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
}

.ui-datepicker .ui-datepicker-prev,
.ui-datepicker .ui-datepicker-next {
  position: absolute;
  top: 0;
  bottom: 0;
  margin: auto 0;
  height: 2em;
  border: none !important;
  padding: 0 !important;
  margin-left: 0;
  margin-right: 0;
  background: none !important;
  background-color: transparent !important;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
}

.ui-datepicker .ui-datepicker-prev span,
.ui-datepicker .ui-datepicker-next span {
  border: none !important;
  padding: 0 !important;
  top: 1em !important;
  /* background: none !important; */
  /* background-color: transparent !important; */
}

.ui-datepicker .ui-datepicker-prev {
  left: 0;
}

.ui-datepicker .ui-datepicker-next, .ui-datepicker .ui-datepicker-prev {
  height: auto !important;
}

.ui-datepicker .ui-datepicker-calendar {
  border-collapse: separate;
  border-spacing: 0.35em;
}

.ui-datepicker .ui-datepicker-calendar td {
  width: 2.2em;
  height: 2.2em;
  padding: 0;
  text-align: center;
  vertical-align: middle;
  border: none;
}
.ui-datepicker .ui-datepicker-calendar td.ui-datepicker-unselectable.ui-datepicker-en-carro {
  background: #01686d !important;
  font-weight: bold;
}
.ui-datepicker .ui-datepicker-calendar td.ui-datepicker-unselectable.ui-datepicker-en-carro span {color: white !important;}
.ui-datepicker .ui-datepicker-calendar td.ui-datepicker-unselectable.ui-datepicker-no-disponible {
  background: #e3e3e3 !important;
}
.ui-datepicker .ui-datepicker-calendar td.ui-datepicker-unselectable.ui-datepicker-no-disponible span {
  color: #8a8a8a !important;
}
.ui-datepicker .ui-datepicker-calendar td.ui-datepicker-unselectable.ui-datepicker-restringida {
  background: #f6d6b8 !important;
}
.ui-datepicker .ui-datepicker-calendar td.ui-datepicker-unselectable.ui-datepicker-restringida span {
  color: #8a4b10 !important;
}
.ui-datepicker .ui-datepicker-calendar td a,
.ui-datepicker .ui-datepicker-calendar td span {
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.2em;
  height: 2.2em;
  line-height: 1;
  box-sizing: border-box;
  border: none;
  background: transparent;
}

.ui-datepicker .ui-datepicker-calendar td a:hover,
.ui-datepicker .ui-datepicker-calendar td.ui-state-hover a {
  background: #333;
  color: #fff;
}

/* Dia de hoy: mismos colores que el boton Reservar (fondo y texto) */
.ui-datepicker .ui-datepicker-calendar td.ui-datepicker-today a,
.ui-datepicker .ui-datepicker-calendar td.ui-datepicker-current-day a {
  background-color: #ddeeee;
  color: #02a7a5;
}

/* Fechas pasadas (deshabilitadas): texto #999 (clase anadida por beforeShowDay) */
.ui-datepicker .ui-datepicker-calendar td.ui-datepicker-past a,
.ui-datepicker .ui-datepicker-calendar td.ui-datepicker-past span,
.ui-datepicker .ui-datepicker-calendar td.ui-datepicker-unselectable span,
.ui-datepicker .ui-datepicker-calendar td.ui-datepicker-unselectable a {
  color: #999 !important;
  cursor: default;
  background: transparent !important;
}

/* Botones del panel del datepicker (Hoy / Cerrar) */
.ui-datepicker button.ui-datepicker-current {
  border: none;
  background: #01a7a5;
  color: white;
  border-radius: 2px;
  font-size: 0.9em;
  font-weight: normal;
  font-family: 'Lato', sans-serif;
  line-height: 1.5;
  padding: 0.5em 1em;
}

.ui-datepicker button.ui-datepicker-close {
  border: none;
  background: #ccc;
  color: #666;
  border-radius: 2px;
  font-size: 0.9em;
  font-weight: normal;
  font-family: 'Lato', sans-serif;
  line-height: 1.5;
  padding: 0.5em 1em;
}

/* Contenedor de alertas dentro del datepicker (entre meses y buttonpane) */
.ui-datepicker .ui-datepicker-alert {
  margin: 0;
  padding: 1rem 0 0.25rem 0;
  background: #b8ced0cf;
  font-size: .8rem;
}

.ui-datepicker .ui-datepicker-alert.is-empty,
.ui-datepicker .ui-datepicker-alert[hidden] {
  display: none !important;
}

.ui-datepicker .ui-datepicker-alert__text {
  margin: 0;
  font-size: 1rem;
  line-height: 1.3;
  color: inherit;
}

.ui-datepicker .ui-datepicker-alert__reservas {
  margin: 0 0.75rem 0.75rem 0.75rem;
  font-size: .7rem;
  padding: 0 0.5rem;
  font-weight: normal;
}

.ui-datepicker .ui-datepicker-alert__title {
  margin: 0 0 0.25rem 0;
  font-size: .85rem;
  font-weight: normal;
  color: inherit;
  text-transform: uppercase;
}

.ui-datepicker .ui-datepicker-alert__list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.ui-datepicker .ui-datepicker-alert__list li {
  margin: 0;
  font-size: .85rem;
  line-height: 1.45;
  color: inherit;
}

.ui-datepicker .ui-datepicker-alert__notice {
  margin-top: 0.35rem;
  text-align: center;
  padding: 1rem;
  font-weight: bold;
  background: #eee0d4;
}

.ui-datepicker .ui-datepicker-alert__notice::before {
  content: "\26A0 ";
  display: inline-block;
  margin-right:3px;
}
