html {
    scroll-behavior: smooth;
  }
  
  body{
    /* background: #feca30; */
    background-color:#000;
    background-image: url('../v2/bg-cdmx.jpg');
    background-position: center;
    background-size: cover;
    background-attachment: fixed;
  }
  selecciones{
      display: flex;
      justify-content: space-evenly;
      width: 100%;
      height: 12.5%;
      align-items: center;
  }
  #selecciones .form-select{
      width: 20%;
  }
  #containerExperiencias{
      width: 100%;
      top: 12.5%;
      height: 87.5%;
      display: flex;
      justify-content: space-evenly;
  
  }
  
  #sucursales{
      width: 100%;
      top: 5%;
      height: 95%;
      display: flreservasPublicoex;
      /* flex-wrap: wrap; */
      overflow-y: auto;
  }
  .sucursal{
      width: calc(100%/6);
      text-align: center;
  }
  
  .encabezadoSucursal{
      height: 30%;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
  }
  
  .horarioSucursal{
      display: flex;
      flex-direction: column;
      align-items: center;
      overflow-y: auto;
      height: 70%;
  }
  .btnHorario{
      width: 50%;
      border-radius: 20px;
      background-color: transparent;
      color: white;
      margin-top: 1%;
      margin-bottom: 1%;
      border-color: #e60073;
  }
  
  .btnHorario:hover{
    animation: glow 1s ease-in-out infinite alternate;
  }
  
  @-webkit-keyframes glow {
    from {
      text-shadow: 0 0 10px #fff, 0 0 20px #fff, 0 0 30px #e60073, 0 0 40px #e60073, 0 0 50px #e60073, 0 0 60px #e60073, 0 0 70px #e60073;
    }
  
    to {
      text-shadow: 0 0 20px #fff, 0 0 30px #ff4da6, 0 0 40px #ff4da6, 0 0 50px #ff4da6, 0 0 60px #ff4da6, 0 0 70px #ff4da6, 0 0 80px #ff4da6;
    }
  }
  
  
  /*Opciones para cambiar el texto del botón on hover*/
  /* .btnHorario:before,
  .btnHorario:after {
      content: '';
      width: 100%;
      position: absolute;
      opacity: 0;
      -webkit-transition: .4s,opacity .6s;
      -moz-transition: .4s,opacity .6s;
      -o-transition: .4s,opacity .6s;
      transition: .4s,opacity .6s;
  } */
  
  /* :before */
  
  /* .btnHorario:before {
      content: attr(data-hover);
      -webkit-transform: translate(-150%,0);
      -moz-transform: translate(-150%,0);
      -ms-transform: translate(-150%,0);
      -o-transform: translate(-150%,0);
      transform: translate(-150%,0);
  } */
  
  /* :after */
  
  /* .btnHorario:after {
      content: attr(data-active);
      -webkit-transform: translate(150%,0);
      -moz-transform: translate(150%,0);
      -ms-transform: translate(150%,0);
      -o-transform: translate(150%,0);
      transform: translate(150%,0);
  } */
  
  /* Span on :hover and :active */
  
  /* .btnHorario:hover span,
  .btnHorario:active span {
      opacity: 0;
      -webkit-transform: scale(0.3);
      -moz-transform: scale(0.3);
      -ms-transform: scale(0.3);
      -o-transform: scale(0.3);
      transform: scale(0.3);
  } */
  
  /*
      We show :before pseudo-element on :hover
      and :after pseudo-element on :active
  */
  
  /* .btnHorario:hover:before,
  .btnHorario:active:after {
      opacity: 1;
      -webkit-transform: translate(0,0);
      -moz-transform: translate(0,0);
      -ms-transform: translate(0,0);
      -o-transform: translate(0,0);
      transform: translate(0,0);
      -webkit-transition-delay: .4s;
      -moz-transition-delay: .4s;
      -o-transition-delay: .4s;
      transition-delay: .4s;
  } */
  
  /*
    We hide :before pseudo-element on :active
  */
  
  /* .btnHorario:active:before {
      -webkit-transform: translate(-150%,0);
      -moz-transform: translate(-150%,0);
      -ms-transform: translate(-150%,0);
      -o-transform: translate(-150%,0);
      transform: translate(-150%,0);
      -webkit-transition-delay: 0s;
      -moz-transition-delay: 0s;
      -o-transition-delay: 0s;
      transition-delay: 0s;
  } */
  
  #prices {
      /*background-image: url(../assets/images/bg-large.jpg);*/
      background-image: url(img/bg-cdmx.jpg);
      background-position: center;
      background-size: cover;
      background-attachment: fixed;
      /* padding-top: 6rem; */
      /* padding-bottom: 6rem; */
  }
  #prices h2 {
      color: #000;
  }
  h1 {
      color: #000;
  }
  #prices p {
      color: #000;
      /* margin: 2rem 0 0; */
  }
  #prices .box {
      /* padding-top: 2rem; */
      /* padding-bottom: 1rem; */
      border: 2px solid #FFC600;
  }
  #prices .box h4 {
      color: #FFC600;
      /* font-size: 2.5rem; */
  }
  #prices .box h3 {
      font-family: 'Montserrat', sans-serif;
      font-weight: 300;
      /* font-size: 1rem; */
      /* margin-top: 1rem; */
      color: #000;
  }
  #prices .box .label {
      font-family: 'Yanone Kaffeesatz', sans-serif;
      background-color: transparent;
      /* font-size: 2rem; */
      font-weight: 800;
      /* padding: 0.5rem 1.5rem; */
  }
  #prices .box .label small {
      font-size: 70%;
      font-weight: 300;
  }
  
  #prices .icons img{
    width:75%;
  }
  
  
  
  .datepicker-native-button {
      position: relative;
  }
  .datepicker-native-button-input {
      position: absolute;
      overflow: hidden;
      width: 100%;
      height: 100%;
      right: 0;
      top: 0;
      opacity: 0;
  }
  .datepicker-native-button-input::-webkit-calendar-picker-indicator {
      position: absolute;
      right: 0;
      width: 100%;
      height: 100%;
      margin: 0;
      padding: 0;
      opacity: 0;
      cursor: pointer;
  }
  
  .logo{
    text-align: initial;
  }
  
  .center{
    text-align: center;
  }
  
  .inlineRow{
    display:inline-block;
  }
  
  .displayDate{
    color:#feca30;
    padding-top:5%;
    display:inline-block;
    padding-left:2.5%;
    padding-right:2.5%;
  }
  
  .headerSelector{
    /* display:inline-block; */
    color:white;
    padding-bottom:2.5%;
  }
  
  .displayCity{
    color:#feca30;
    display:block;
    padding-left: 2.5%;
    padding-right: 2.5%;
    white-space: nowrap;
  
  }
  .displayOpt{
    display:inline-block;
  }
  .selectOptions{
    width:50%;
    height: 70%;
    background-color: black;
    border-color:#feca30;
    color:#feca30;
    border-radius: 15px;
    font-family: 'Yanone Kaffeesatz', sans-serif;
    text-transform: uppercase;
  }
  
  .selectOptions select:focus, select option:checked, select option:hover select option:active{
      border-color: #feca30 !important;
      background-color: black !important;
  }
  
  .selectOptions option:hover, option:checked, option:active{
    border-color: #feca30 !important;
    background-color: black !important;
  }
  
  .selectOptions:hover, .selectOptions:active{
    border-color: #feca30 !important;
    background-color: black !important;
  
  }
  
  .headerButton{
    color:#feca30;
    font-size: 3rem;
    padding-left:2.5%;
    padding-right: 2.5%;
    background-color: transparent;
    border-color: transparent;
  }
  #reservations {
    width: 100%;
  }

  #reservations .reservationLine.row {
    display: grid !important;
    grid-template-columns: minmax(110px, 13%) minmax(100px, 14%) 1fr;
    column-gap: 0.75rem;
    align-items: center;
    width: 100%;
    margin-left: 0 !important;
    margin-right: 0 !important;
    border-bottom: 1px solid #feca30;
    margin-bottom: 0;
    padding: 1rem 0 1.35rem;
    overflow: visible;
  }

  #reservations .reservationLine.row:not(:has(.reserva-sucursal-col)) {
    grid-template-columns: minmax(110px, 13%) 1fr;
  }

  #reservations .reservationLine.row > .reserva-logo-col {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 64px;
    min-height: 64px;
    max-height: 64px;
    overflow: hidden;
  }

  #reservations .reservationLine.row > .reserva-sucursal-col {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 64px;
    padding: 0 0.15rem;
  }

  .reserva-sucursal-tag {
    display: inline-block;
    font-family: 'Yanone Kaffeesatz', sans-serif;
    font-size: 0.85rem;
    line-height: 1.15;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    text-align: center;
    color: #feca30;
    background: rgba(0, 0, 0, 0.55);
    border: 1px solid rgba(254, 202, 48, 0.45);
    border-radius: 999px;
    padding: 0.42rem 0.6rem;
    max-width: 100%;
    word-break: break-word;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.35);
  }

  #reservations .reservationLine.row > .reserva-horarios-col {
    display: flex;
    align-items: center;
    min-height: 64px;
  }

  #reservations .reservationLine.row > [class*="col-"] {
    width: 100% !important;
    max-width: 100% !important;
    flex: none !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    min-width: 0;
  }

  .centerdiv{
    display: flex;
    justify-content: center;
    align-items: center;
  }
  
  .buttonParts{
    display: flex;
    justify-content: center;
    align-items: center;
  }
  
  .modalText{
    color:black;
    font-weight: bold;
    font-family: 'Yanone Kaffeesatz', sans-serif;
    text-transform: uppercase;
    font-size: 1.25rem;
    text-align: center;
  }
  .modalWarning{
    color:red;
    font-weight: bold;
    font-family: 'Yanone Kaffeesatz', sans-serif;
    text-transform: uppercase;
    font-size: 1.25rem;
    text-align: center;
  }
  .Pricing{
    text-align: right;
  }
  .totalReservation{
    color:#feca30;
  }
  .titles{
    color: #feca30;
    padding-top: 5%;
    /* display: inline-block; */
    /* padding-left: 2.5%; */
    display: flex;
    justify-content: center;
    font-size: 3.5rem;
  }
  
  .horariosLine{
     border-bottom: 1px solid #feca30;
     margin-bottom: 1.5%;
  }
  
  horariosLine:after { /* this is the border */
      content:"";
      display:block;
      width: 6em;
      max-width:70%;
      border-bottom: 0.3em solid red;
      margin: 2em auto 0;
  }
  
  reservationLine:after { /* this is the border */
      content:"";
      display:block;
      width: 6em;
      max-width:70%;
      border-bottom: 0.3em solid red;
      margin: 2em auto 0;
  }
  
  .timetable{
    font-family: 'Yanone Kaffeesatz', sans-serif;
    text-transform: uppercase;
    color:white;
    width:100%;
  }
  .imgExp{
    display: block;
    width: auto;
    max-width: 100%;
    max-height: 58px;
    height: auto;
    object-fit: contain;
    margin: 0 auto;
    transform: none;
  }
  
  .hidden{
    display: none;
  }

  #reservations .reservationLine.row.hidden {
    display: none !important;
  }
  /* .button */
  
  .button {
      display: inline-flex;
      position: relative;
      margin: 0;
      padding: 0.05em;
      border: 2px solid #feca30;
      overflow: hidden;
      width: auto;
      min-width: 4.1rem;
      height: 1.9rem;
      flex: 0 0 auto;
      text-decoration: none;
      font-size: 1.15em;
      outline: none;
      color: white;
      background: transparent;
      border-radius: 20px;
      align-items: center;
      justify-content: center;
  }
  
  .button.disabled, .button[disabled] {
      opacity: .75;
      cursor: not-allowed;
      background-color: #fe0102 !important;
      color:white !important;
      display: flex;
      justify-content: center;
      align-items: end;
  }
  
  .button2 {
      display: inline-block;
      position: relative;
      margin: .15em;
      padding: 0.05em;
      border: 2px solid #feca30;
      overflow: hidden;
      width:8.5%;
      /* height:3%; */
      text-decoration: none;
      font-size: 1.15em;
      outline: none;
      color: white;
      background: transparent;
      /* font-family: 'raleway', sans-serif; */
      border-radius: 20px;
  }
  
  .button span {
      -webkit-transition: 0.6s;
      -moz-transition: 0.6s;
      -o-transition: 0.6s;
      transition: 0.6s;
      -webkit-transition-delay: 0.2s;
      -moz-transition-delay: 0.2s;
      -o-transition-delay: 0.2s;
      transition-delay: 0.2s;
  }
  
  .button:before,
  .button:after {
      content: '';
      position: absolute;
      top: 0.05em;
      left: 0;
      width: 100%;
      text-align: center;
      opacity: 0;
      -webkit-transition: .4s,opacity .6s;
      -moz-transition: .4s,opacity .6s;
      -o-transition: .4s,opacity .6s;
      transition: .4s,opacity .6s;
  }
  
  /* :before */
  
  .button:before {
      content: attr(data-hover);
      -webkit-transform: translate(-150%,0);
      -moz-transform: translate(-150%,0);
      -ms-transform: translate(-150%,0);
      -o-transform: translate(-150%,0);
      transform: translate(-150%,0);
  }
  
  /* :after */
  
  .button:after {
      content: attr(data-active);
      -webkit-transform: translate(150%,0);
      -moz-transform: translate(150%,0);
      -ms-transform: translate(150%,0);
      -o-transform: translate(150%,0);
      transform: translate(150%,0);
  }
  
  /* Span on :hover and :active */
  
  .button:hover span,
  .button:active span {
      opacity: 0;
      -webkit-transform: scale(0.3);
      -moz-transform: scale(0.3);
      -ms-transform: scale(0.3);
      -o-transform: scale(0.3);
      transform: scale(0.3);
  }
  
  /*
      We show :before pseudo-element on :hover
      and :after pseudo-element on :active
  */
  
  .button:hover:before,
  .button:active:after {
      opacity: 1;
      -webkit-transform: translate(0,0);
      -moz-transform: translate(0,0);
      -ms-transform: translate(0,0);
      -o-transform: translate(0,0);
      transform: translate(0,0);
      -webkit-transition-delay: .4s;
      -moz-transition-delay: .4s;
      -o-transition-delay: .4s;
      transition-delay: .4s;
      background-color: #feca30fA;
  }
  
  .button:focus, .button:hover {
    background-color: #feca30fA;
  
  }
  /*
    We hide :before pseudo-element on :active
  */
  
  .button:active:before {
      -webkit-transform: translate(-150%,0);
      -moz-transform: translate(-150%,0);
      -ms-transform: translate(-150%,0);
      -o-transform: translate(-150%,0);
      transform: translate(-150%,0);
      -webkit-transition-delay: 0s;
      -moz-transition-delay: 0s;
      -o-transition-delay: 0s;
      transition-delay: 0s;
  }
  
  .line{
    width:90vw;
    /* white-space: nowrap; */
  }
  .experiencia{
    position:absolute;
    width:20%;
    margin-left:5%;
  }
  
  .horarios{
    width: 100%;
    margin-left: 0;
    transform: none;
    white-space: normal;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.45rem 0.55rem;
    padding: 0.35rem 0;
    min-height: 2rem;
    box-sizing: border-box;
  }
  
  /* .horarios::-webkit-scrollbar-track{
      -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
       border-radius: 10px;
       background-color: #F5F5F500;
   } */
  
  /* .horarios::-webkit-scrollbar{
       width: 12px;
       background-color: #F5F5F500;
  } */
  
  /* .horarios::-webkit-scrollbar-thumb{
      border-radius: 10px;
      -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,.3);
       background-color: #eaa708;
  } */
  
  
  .reservado{
    background-color:#fc0200;
    color:#fff;
    /* font-size:.75em; */
    border-color:#fc0200;
    height:80%;
  }
  
  .reservado:active:before {
  }
  .reservado:active:before {
  }
  
  .button:hover:before,
  .button:active:after {
    background-color: #FF000000;
  }
  
  .button:hover span,
  .button:active span {
    background-color: #00000000;
  }
  
  .button:focus:before,
  .button:active:after {
    background-color: #00000000;
  }
  
  .button:focus span,
  .button:active span {
    background-color: #00000000;
  }
  .sections{
    color:white;
  }
  
  .parts{
    width:15%;
  }
  
  .unitaryExp{
    display:inline-block;
  }
  .deletebtn{
    font-size: 2rem;
  }
  .totalExp{
    color:#feca30;
    display:inline-block;
  }
  
  .modders{
    width:95%;
    height:8%;
    border-radius: 5px;
  }
  
  .footerParts{
    text-align: center;
    margin-top:20%;
  }
  
  .reservar{
    background-color: red;
    border-color:red;
    border-radius: 5px;
    width:75%;
    height:8%;
  }
  
  .personalData{
    color:#feca30;
    font-family: 'Yanone Kaffeesatz', sans-serif;
    text-transform: uppercase;
    padding-left: 30px;
  }
  .centerData{
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
  }
  
  .confirmationDisclaimer{
        font-size: 1.5rem;
        display: block;
        top: 5%;
        margin-top: 5%;
        border: 2px solid #feca30;
        padding: 15px;
        border-radius: 15px;
        text-align: center;
        line-height: 1.35;
  }
  
  .personalDataTitles{
    padding-left:15px;
  }

  .como-se-entero-select-row{
    margin-bottom: 1.5rem;
  }

  .datos-bancarios-title{
    margin-top: 0.5rem;
  }
  
  
  /* Create a custom checkbox */
  .checkboxConfirmation{
    height: 1.5rem;
    width: 1.5rem;
    background-color: black;
  }
  
  /* On mouse-over, add a grey background color */
  .container:hover input ~ .checkboxConfirmation {
    background-color: #ccc;
  }
  
  /* When the checkbox is checked, add a blue background */
  .container input:checked ~ .checkboxConfirmation {
    background-color: #feca30;
  }
  
  /* Create the checkmark/indicator (hidden when not checked) */
  .checkboxConfirmation:after {
    content: "";
    position: absolute;
    display: none;
  }
  
  [type=checkbox]{
    magin:0px;
  }
  /* Show the checkmark when checked */
  .container input:checked ~ .checkboxConfirmation:after {
    display: block;
  }
  
  /* Style the checkmark/indicator */
  .container .checkboxConfirmation:after {
    left: 9px;
    top: 5px;
    width: 5px;
    height: 10px;
    border: solid white;
    border-width: 0 3px 3px 0;
    -webkit-transform: rotate(45deg);
    -ms-transform: rotate(45deg);
    transform: rotate(45deg);
  }
  .terms{
    color:white;
    font-family: 'Yanone Kaffeesatz', sans-serif;
    text-transform: uppercase;
  }
  #confirmationdiv{
    border-right: 3px solid white;
  }
  
  .inputReserva{
    background-color: transparent;
    color:white;
    border-radius: 15px;
    font-family: 'Yanone Kaffeesatz', sans-serif;
    text-transform: uppercase;
  }
  
  .confirmationPrice{
    color:#feca30;
    font-family: 'Yanone Kaffeesatz', sans-serif;
    text-transform: uppercase;
  }
  
  .reservationDate{
    color:white;
    font-family: 'Yanone Kaffeesatz', sans-serif;
    text-transform: uppercase;
  }
  .inputReserva:focus{
    color:#3d3d3b !important;
  }
  
  input:-webkit-autofill,
  input:-webkit-autofill:hover,
  input:-webkit-autofill:focus,
  textarea:-webkit-autofill,
  textarea:-webkit-autofill:hover,
  textarea:-webkit-autofill:focus,
  select:-webkit-autofill,
  select:-webkit-autofill:hover,
  select:-webkit-autofill:focus {
    /* border: 1px solid green; */
    -webkit-text-fill-color: white !important;
    -webkit-box-shadow: 0 0 0px 1000px black inset !important;
    transition: background-color 5000s ease-in-out 0s !important;
  }
  
  .inputReserva:active{
    color:#3d3d3b;
  }
  /* Orden de Participantes */
  .imgResLine{order:1;}
  .datetimeResLine{order:2;}
  .priceResLine{order:4;}
  .partsResLine{order:3;}
  .trashResLine{order:5;}
  
  .active{
    background-color: #feca30;
    color:white;
    font-weight: 900;
  }
  
  .buttonParts2 {
    display: flex;
    justify-content: center;
    align-items: center;
  
  }
  
  @media (min-width: 768px) {
        .modal-xl {
          width: 90%;
         max-width:1200px;
        }
      }
  
  @media screen and (orientation:portrait) {
    .headerButton, .displayDate{
        font-size:1.5rem;
    }
    section.nice {
      min-height: 135vh;
    }
  
    .displayCity{
      color:white;
    }
  
    .displayOpt{
      font-size:1.5rem;
    }
  
    .selectOptions{
      width:100%;
    }
  
    .horarios{
      display: flex;
      flex-wrap: wrap;
      transform: none;
      height: auto;
      justify-content: center;
    }

    #reservations .reservationLine.row {
      grid-template-columns: minmax(88px, 22%) minmax(72px, 22%) 1fr;
      column-gap: 0.65rem;
      padding: 0.85rem 0 1.1rem;
    }

    #reservations .reservationLine.row:not(:has(.reserva-sucursal-col)) {
      grid-template-columns: minmax(96px, 26%) 1fr;
    }

    #reservations .reservationLine.row > .reserva-logo-col {
      height: 52px;
      min-height: 52px;
      max-height: 52px;
    }

    #reservations .reservationLine.row > .reserva-sucursal-col {
      min-height: 52px;
    }

    .reserva-sucursal-tag {
      font-size: 0.72rem;
      padding: 0.34rem 0.48rem;
      letter-spacing: 0.04em;
    }

    #reservations .reservationLine.row .imgExp {
      max-height: 48px;
    }
  
    .button{
      align-items: center;
      width:auto;
      padding:revert;
    }
    .button[disabled]{
      align-items: center;
    }
    .imgResLine{order:1;}
    .datetimeResLine{order:2;}
    .priceResLine{order:3;}
    .partsResLine{order:4;    margin-left: 5%;}
    .trashResLine{order:5;}
    .imageResLine{
      margin-left:20%;
    }
    .reservationDate{
      font-size: 1rem;
    }
    h4.reservationDate{
      font-size: 1rem;
    }
    h2.confirmationPrice{
      font-size: 1rem;
    }
    h1.confirmationPrice{
      font-size: 2rem;
    }
    #confirmationdiv{
      border-right: 0px solid white;
      border-bottom: 2px solid #feca30;
      margin-bottom: 10%;
    }
    .personalDataTitles{
      font-size:1.5rem;
    }
    .confirmationDisclaimer{
      font-size:.75rem;
    }
    .openpay-trust-logo {
      max-width: 130px;
    }
    .openpay-trust-cards img {
      height: 22px;
    }
    .titles{
      font-size: 2.5rem;
    }
    .custom-checkbox{
      font-size: .75rem;
    }
    .buttonParts2 {
      margin-bottom: 35%;
      margin-top: 15%;
    }
  }

/* Loader overlay (requerido por reservasCliente.js — mockup Reservas/reservaciones.html) */
#loading {
  position: fixed;
  inset: 0;
  z-index: 999990;
  display: none;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, 0.42);
  backdrop-filter: blur(3px);
  -webkit-backdrop-filter: blur(3px);
}
#loading-center {
  padding: 2rem 2.75rem;
  border-radius: 14px;
  background: rgba(10, 10, 10, 0.55);
  box-shadow:
    0 18px 48px rgba(0, 0, 0, 0.55),
    0 4px 16px rgba(0, 0, 0, 0.35),
    inset 0 1px 0 rgba(255, 255, 255, 0.06);
}
#loading-center .loading-logo {
  display: block;
  width: min(240px, 72vw);
  height: auto;
  margin: 0 auto;
  animation: reserva-loader-pulse 2.2s ease-in-out infinite;
  filter: drop-shadow(0 0 14px rgba(202, 32, 46, 0.22));
}
@keyframes reserva-loader-pulse {
  0%,
  100% {
    opacity: 0.82;
    transform: scale(1);
  }
  50% {
    opacity: 1;
    transform: scale(1.04);
  }
}

/* Modal de avisos — reserva pública (SweetAlert) — mismo look que #loading-center */
.swal-overlay.enigma-reserva-swal-overlay {
  background: rgba(0, 0, 0, 0.42) !important;
  backdrop-filter: blur(3px);
  -webkit-backdrop-filter: blur(3px);
  z-index: 1000000 !important;
}

.swal-overlay.enigma-reserva-swal-overlay .swal-modal {
  z-index: 1000001 !important;
}

.swal-modal.enigma-reserva-swal {
  background: rgba(10, 10, 10, 0.55) !important;
  border: 1px solid rgba(254, 202, 48, 0.35);
  border-radius: 14px;
  box-shadow:
    0 18px 48px rgba(0, 0, 0, 0.55),
    0 4px 16px rgba(0, 0, 0, 0.35),
    0 0 40px rgba(254, 202, 48, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.06) !important;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  max-width: 520px;
  width: calc(100% - 32px);
  padding-bottom: 8px;
}

.swal-overlay--show-modal .swal-modal.enigma-reserva-swal {
  box-shadow:
    0 18px 48px rgba(0, 0, 0, 0.55),
    0 4px 16px rgba(0, 0, 0, 0.35),
    0 0 40px rgba(254, 202, 48, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.06) !important;
}

.swal-modal.enigma-reserva-swal .swal-title {
  color: #feca30 !important;
  font-family: "Yanone Kaffeesatz", sans-serif;
  font-size: 1.65rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin-top: 18px;
}

.swal-modal.enigma-reserva-swal .swal-text {
  color: #f5f5f5 !important;
  text-align: center;
  font-size: 1.05rem;
  line-height: 1.55;
  max-width: 100%;
  padding: 0 24px 8px;
}

.swal-modal.enigma-reserva-swal .swal-footer {
  text-align: center;
  border-top: 1px solid rgba(254, 202, 48, 0.28);
  margin-top: 8px;
  padding-top: 16px;
}

.swal-modal.enigma-reserva-swal .swal-button--confirm {
  background: #feca30 !important;
  color: #111 !important;
  border-radius: 999px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  min-width: 180px;
  padding: 12px 28px;
  box-shadow:
    0 8px 22px rgba(0, 0, 0, 0.35),
    0 4px 12px rgba(254, 202, 48, 0.22);
}

.swal-modal.enigma-reserva-swal .swal-button--confirm:not([disabled]):hover {
  background: #ffd95a !important;
}

.swal-modal.enigma-reserva-swal .swal-icon--error {
  border-color: #ff6b6b;
}

.swal-modal.enigma-reserva-swal .swal-icon--success {
  border-color: #feca30;
}

.swal-modal.enigma-reserva-swal .swal-icon--warning {
  border-color: #feca30;
}

.swal-modal.enigma-reserva-swal .swal-icon--success:after,
.swal-modal.enigma-reserva-swal .swal-icon--success:before,
.swal-modal.enigma-reserva-swal .swal-icon--success__hide-corners {
  background: rgba(10, 10, 10, 0.55) !important;
}

.swal-modal.enigma-reserva-swal .swal-icon--success__line {
  background-color: #feca30 !important;
}

.button.reservar.is-processing {
  opacity: 0.72;
  cursor: wait;
  pointer-events: none;
}

.openpay-checkout-warning {
  color: #ffb4b4;
  border: 1px solid rgba(255, 107, 107, 0.45);
  background: rgba(255, 107, 107, 0.08);
  padding: 12px 14px;
  margin: 12px 0;
  border-radius: 8px;
  font-size: 0.95rem;
}

.openpay-checkout-note {
  color: #d8d8d8;
  font-size: 0.92rem;
  line-height: 1.45;
  margin-bottom: 12px;
}

.openpay-metodo-pago-selector {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 16px;
}

.openpay-metodo-option {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  color: #f0f0f0;
  font-size: 0.95rem;
  cursor: pointer;
  padding: 10px 12px;
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 8px;
  background: rgba(0, 0, 0, 0.2);
}

.openpay-metodo-option input {
  margin-top: 3px;
}

.openpay-metodo-option:has(input:checked) {
  border-color: rgba(255, 193, 7, 0.65);
  background: rgba(255, 193, 7, 0.08);
}

.openpay-store-receipt {
  text-align: center;
  margin-top: 12px;
}

.openpay-store-receipt img {
  max-width: 100%;
  height: auto;
  background: #fff;
  padding: 8px;
  border-radius: 6px;
}

.stripe-card-element {
  padding: 12px 14px;
  margin: 8px 0 16px;
  border-radius: 8px;
  border: 1px solid rgba(255, 255, 255, 0.2);
  background: rgba(0, 0, 0, 0.35);
}

#stripe-checkout-form .inputReserva.inputBank,
#openpay-checkout-form .inputReserva.inputBank {
  background-color: transparent;
  color: #fff;
  border: 1px solid #fff;
  border-radius: 15px;
  height: 2.5rem;
  margin-bottom: 0.75rem;
  box-shadow: none;
}

#stripe-checkout-form .inputReserva.inputBank::placeholder {
  color: #fff;
  opacity: 1;
  text-transform: uppercase;
}

.stripe-element-shell {
  background-color: transparent;
  color: #fff;
  border: 1px solid #fff;
  border-radius: 15px;
  min-height: 2.5rem;
  height: 2.5rem;
  padding: 0.45rem 0.75rem;
  margin-bottom: 0.75rem;
  box-sizing: border-box;
}

.stripe-element-shell.StripeElement--focus {
  outline: none;
  box-shadow: 0 0 0 1px #feca30;
}

.stripe-element-shell.StripeElement--invalid {
  border-color: #ff6b6b;
}

.stripe-trust-logo {
  max-width: 168px;
  background: #fff;
  border-radius: 6px;
}

.swal-modal.enigma-reserva-swal .swal-content {
  color: #f5f5f5;
  text-align: center;
  font-size: 1rem;
  line-height: 1.5;
  padding: 0 20px 8px;
}

.swal-modal.enigma-reserva-swal .openpay-pago-tienda-modal {
  text-align: left;
}

.swal-modal.enigma-reserva-swal .openpay-pago-intro {
  color: #f0f0f0;
  text-align: center;
  margin: 0 0 14px;
  line-height: 1.5;
}

.swal-modal.enigma-reserva-swal .openpay-pago-meta {
  color: #e8e8e8;
  margin: 8px 0 0;
  font-size: 0.95rem;
}

.openpay-copy-block {
  flex: 1;
  min-width: 0;
  text-align: left;
}

.openpay-copy-label {
  display: block;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #b8b8b8;
  margin-bottom: 4px;
}

.openpay-spei-clabe-row {
  border: 1px solid rgba(96, 165, 250, 0.45);
  background: rgba(59, 130, 246, 0.12);
}

.openpay-spei-clabe {
  font-family: monospace;
  font-size: 1.15rem;
  letter-spacing: 0.06em;
  color: #93c5fd;
  word-break: break-all;
}

.openpay-reserva-code-row,
.openpay-grupo-code-row,
.openpay-reference-row,
.openpay-spei-clabe-row {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 10px 0;
  padding: 10px 12px;
  border-radius: 8px;
  background: rgba(0, 0, 0, 0.25);
}

.openpay-reserva-code-row {
  border: 1px solid rgba(34, 197, 94, 0.45);
  background: rgba(22, 163, 74, 0.12);
}

.openpay-grupo-code-row {
  border: 1px solid rgba(96, 165, 250, 0.4);
  background: rgba(59, 130, 246, 0.1);
}

.openpay-reference-row {
  border: 1px solid rgba(255, 216, 107, 0.35);
}

.openpay-reserva-code {
  font-family: "Yanone Kaffeesatz", sans-serif;
  font-size: 1.75rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: #4ade80;
  word-break: break-all;
}

.openpay-grupo-code {
  font-family: monospace;
  font-size: 1.1rem;
  letter-spacing: 0.06em;
  color: #93c5fd;
  word-break: break-all;
}

.openpay-store-reference {
  font-family: monospace;
  font-size: 1.05rem;
  letter-spacing: 0.04em;
  color: #ffd86b;
  word-break: break-all;
}

.openpay-copy-btn {
  flex-shrink: 0;
  border: none;
  border-radius: 6px;
  padding: 8px 12px;
  font-size: 0.85rem;
  font-weight: 600;
  cursor: pointer;
  color: #1a1a1a;
  background: #ffc107;
  transition: background 0.2s ease, transform 0.15s ease;
}

.openpay-copy-btn:hover {
  background: #ffcd38;
}

.openpay-copy-btn.is-copied {
  background: #7ddf9a;
  color: #0f2a18;
}

.openpay-store-instructions {
  font-size: 0.9rem;
  line-height: 1.45;
  color: #d0d0d0;
  margin: 10px 0 4px;
}

.openpay-trust-badges {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 14px;
  margin: 1.25rem auto 0.5rem;
  padding: 16px 12px;
  width: 100%;
  max-width: 420px;
}

.openpay-trust-logo {
  display: block;
  max-width: 160px;
  width: 100%;
  height: auto;
}

.openpay-trust-cards {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 14px 18px;
}

.openpay-trust-cards img {
  display: block;
  height: 28px;
  width: auto;
  max-width: 72px;
  object-fit: contain;
  opacity: 0.95;
}
