/* ==============================
   Configuración general
   ============================== */

* {
  box-sizing: border-box;
}

html,
body {
  width: 100%;
  min-height: 100%;
  margin: 0;
  padding: 0;
}

html {
  background-color: #0874f5;
}

body {
  min-height: 100vh;
  overflow-x: hidden;

  background-color: #0874f5;
  background-image: url("../img/bg_desktop4.png");
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
}

/* ==============================
   Contenedor principal
   ============================== */

.landing {
  width: 100%;
  min-height: 100vh;

  display: flex;
  justify-content: center;
  align-items: flex-start;

  padding: 6.5vh 2vw 4vh;
}

/* ==============================
   Bloque central
   ============================== */

.ticket-section {
  width: 100%;

  display: flex;
  flex-direction: column;
  align-items: center;

  text-align: center;
}

/* ==============================
   Logo
   ============================== */

.event-logo {
  display: block;

  width: 27vw;
  max-width: 27vw;
  height: auto;

  margin: 0 auto 1.5vh;

  user-select: none;
  -webkit-user-drag: none;
}

/* ==============================
   Texto
   ============================== */

.ticket-title {
  margin: 0 0 1.5vh;

  color: #ffffff;

  font-family: "Open Sans", Arial, sans-serif;
  font-size: 2vw;
  font-weight: 700;
  line-height: 1.1;

  text-align: center;

  text-shadow: 0 0.2vh 0.4vh rgba(0, 0, 0, 0.22);
}

/* ==============================
   Grupo de botones
   ============================== */

.ticket-options {
  width: 100%;

  display: flex;
  flex-direction: column;
  align-items: center;

  gap: 2.8vh;
}

.button-row {
  width: 100%;

  display: flex;
  justify-content: center;
  align-items: center;
}

/* Hilera de cuatro botones */

.button-row--days {
  gap: 1vw;
}

.button-row--days .image-button {
  width: 18.2vw;
}

/* Botón de promoción */

.button-row--promo .image-button {
  width: 23.2vw;
}

/* ==============================
   Botones de imagen
   ============================== */

.image-button {
  display: block;
  flex: 0 0 auto;

  border: 0;
  outline: none;
  text-decoration: none;

  transform: scale(1);
  transform-origin: center;

  transition:
    transform 180ms ease,
    filter 180ms ease;

  -webkit-tap-highlight-color: transparent;
}

.image-button img {
  display: block;

  width: 100%;
  height: auto;

  user-select: none;
  -webkit-user-drag: none;
}

.image-button:hover {
  transform: scale(0.95);
  filter: brightness(1.06);
}

.image-button:active {
  transform: scale(0.91);
}

.image-button:focus-visible {
  border-radius: 0.3vw;
  outline: 0.2vw solid #ffffff;
  outline-offset: 0.3vw;
}

/* ==============================
   Tablets y pantallas estrechas
   ============================== */

@media (max-width: 1024px) and (min-width: 768px) {
  .landing {
    padding-top: 8vh;
  }

  .event-logo {
    width: 34vw;
    max-width: 34vw;
  }

  .ticket-title {
    margin-bottom: 1.8vh;
    font-size: 2.6vw;
  }

  .button-row--days {
    gap: 1vw;
  }

  .button-row--days .image-button {
    width: 21vw;
  }

  .button-row--promo .image-button {
    width: 28vw;
  }
}

/* ==============================
   Versión mobile
   ============================== */

@media (max-width: 767px) {
  body {
    background-image: url("../img/bg_mobile2.png");
    background-position: center top;
    background-size: 100vw auto;
  }

  .landing {
    min-height: 217.41vw;

    padding:
      6vh
      4vw
      5vh;
  }

  .event-logo {
    width: 66vw;
    max-width: 66vw;

    margin-bottom: 2vh;
  }

  .ticket-title {
    margin-bottom: 2vh;

    font-size: 5.5vw;
    line-height: 1.15;
  }

  .ticket-options {
    gap: 2.2vh;
  }

  .button-row {
    flex-direction: column;
  }

  .button-row--days {
    gap: 1.4vh;
  }

  .button-row--days .image-button {
    width: 82vw;
  }

  .button-row--promo .image-button {
    width: 82vw;
  }
}

/* ==============================
   Celulares pequeños
   ============================== */

@media (max-width: 480px) {
  .landing {
    padding-top: 5.5vh;
  }

  .event-logo {
    width: 70vw;
    max-width: 70vw;

    margin-bottom: 1.5vh;
  }

  .ticket-title {
    margin-bottom: 1.8vh;
    font-size: 5.8vw;
  }

  .ticket-options {
    gap: 1.8vh;
  }

  .button-row--days {
    gap: 1.2vh;
  }

  .button-row--days .image-button,
  .button-row--promo .image-button {
    width: 84vw;
  }
}

/* ==============================
   Movimiento reducido
   ============================== */

@media (prefers-reduced-motion: reduce) {
  .image-button {
    transition: none;
  }
}