@font-face {
  font-family: "Montserrat";
  font-weight: 400;
  src: url("./assets/fonts/Montserrat-Regular.otf");
  font-display: swap;
}

@font-face {
  font-family: "Montserrat";
  font-weight: 700;
  src: url("./assets/fonts/Montserrat-Bold.otf");
  font-display: swap;
}

/* ---------- Paleta (tomada de la pieza del hero) ---------- */
:root {
  --lipton-amarillo: #ffdd03;   /* círculo */
  --lipton-azul: #41bdf1;       /* cielo */
  --lipton-morado: #3c4294;     /* sombra del titular */
  --lipton-naranja: #f2921d;    /* bisel del titular */
  --lipton-oscuro: #040300;     /* texto fecha / lugar */
  --lipton-texto: #040300;
  --lipton-texto-suave: rgba(4, 3, 0, 0.6);
  --lipton-borde: #040300;
}

* {
  box-sizing: border-box;
  padding: 0;
  margin: 0;
}

body {
  font-family: "Montserrat", sans-serif;
  background: var(--lipton-amarillo);
  color: var(--lipton-texto);
  /* las capas del hero sangran fuera del banner: se recorta solo en el eje X */
  overflow-x: hidden;
  overflow-x: clip;
}

html {
  overflow-x: hidden;
  overflow-x: clip;
}

/* ---------- Header / Hero por capas ---------- */
/* Banner 16:9 (4:5 en móvil). Recorta las capas cuando el paralaje las empuja hacia abajo */
.hero {
  position: relative;
  width: 100%;
  aspect-ratio: 1920 / 1080;
  background: var(--lipton-amarillo);
  z-index: 1;
  overflow: hidden;
}

.hero__bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Cada capa lleva la posición y el desplazamiento de paralaje (JS, main.js);
   la imagen interior lleva la animación de entrada, así no chocan los transform. */
.hero__capa {
  position: absolute;
  height: auto;
  will-change: transform;
}

.hero__capa img {
  display: block;
  width: 100%;
  height: auto;
}

/* Círculo amarillo con logo del festival y fecha: izquierda, centrado vertical */
.hero__capa--circulo {
  top: 14%;
  left: 3.9%;
  width: 37.8%;
  z-index: 1;
}

.hero__circulo {
  animation: circulo-entra 800ms cubic-bezier(0.16, 1, 0.3, 1) 150ms both;
}

/* Llamado "Refréscate con Lipton Ice Tea": sobre el círculo, sangra un poco a la izquierda */
.hero__capa--llamado {
  top: 31%;
  left: 4.4%;
  width: 36.5%;
  z-index: 2;
}

.hero__llamado {
  animation: llamado-entra 900ms cubic-bezier(0.16, 1, 0.3, 1) 450ms both;
}

@keyframes circulo-entra {
  from {
    opacity: 0;
    transform: scale(0.85);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}

@keyframes llamado-entra {
  from {
    opacity: 0;
    transform: translateX(-12%);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

/* Respeta la preferencia de menos movimiento del sistema */
@media (prefers-reduced-motion: reduce) {
  .hero__circulo,
  .hero__llamado {
    animation: none !important;
  }
}

/* el formulario queda siempre por encima del sangrado del hero */
main {
  position: relative;
  z-index: 2;
  min-height: 100dvh;
}

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

.content {
  position: relative;
  max-width: 600px;
  margin: 0 auto;
  padding-bottom: 12rem;
}

/* ---------- Formulario TrustArc ---------- */
/* Solo selectores estables (ta-upm-*): las clases hasheadas cambian en cada
   build del form de TrustArc. */

#form-container {
  max-width: 600px;
  margin: 0 auto;
  padding: 25px 0 0;
  color: var(--lipton-texto);
}

#trusarchform {
  width: 100%;
}

/* TrustArc dibuja su propia tarjeta blanca: la fundimos con el fondo */
#trusarchform .ta-upm-modal-content,
#trusarchform .ta-upm-modal-header,
#trusarchform .ta-upm-modal-body,
#trusarchform .ta-upm-modal-footer,
#trusarchform .ta-upm-form {
  background: transparent !important;
  box-shadow: none !important;
  border: 0 !important;
  color: var(--lipton-texto) !important;
}

/* El logo ya está en el banner: se oculta el que inyecta TrustArc */
#trusarchform .ta-form-logo {
  display: none !important;
}

/* Etiquetas */
#trusarchform .ta-upm-label {
  color: var(--lipton-texto) !important;
  font-family: "Montserrat", sans-serif !important;
  font-weight: 700 !important;
  font-size: 0.95rem !important;
  text-transform: uppercase !important;
}

#trusarchform .ta-upm-required {
  color: var(--lipton-texto) !important;
}

/* Campos de texto, email y fecha */
#trusarchform .ta-upm-input,
#trusarchform .ta-upm-date-picker-input-container,
#trusarchform .react-datepicker__input-container input {
  background: transparent !important;
  color: var(--lipton-texto) !important;
  border: 2px solid var(--lipton-borde) !important;
  border-radius: 24px !important;
  box-shadow: none !important;
}

#trusarchform .ta-upm-input:focus,
#trusarchform .react-datepicker__input-container input:focus,
#trusarchform .ta-upm-select__control--is-focused {
  border-color: var(--lipton-morado) !important;
  outline: none !important;
}

#trusarchform .react-datepicker__input-container {
  background: transparent !important;
}

#trusarchform .ta-upm-input::placeholder,
#trusarchform .ta-upm-date-picker-input-container::placeholder {
  color: var(--lipton-texto-suave) !important;
}

/* Selects */
#trusarchform .ta-upm-select__control {
  background: transparent !important;
  border: 2px solid var(--lipton-borde) !important;
  border-radius: 24px !important;
  box-shadow: none !important;
}

#trusarchform .ta-upm-select__single-value,
#trusarchform .ta-upm-select__placeholder,
#trusarchform .ta-upm-select__input,
#trusarchform .ta-upm-select__indicator {
  color: var(--lipton-texto) !important;
}

#trusarchform .ta-upm-select__indicator-separator {
  background-color: var(--lipton-texto-suave) !important;
}

/* El desplegable y el calendario sí van en blanco, para que se lean */
#trusarchform .ta-upm-select__menu,
.ta-upm-select__menu,
.react-datepicker {
  background: #fff !important;
  color: #1e293b !important;
  border-radius: 16px !important;
  overflow: hidden;
}

#trusarchform .ta-upm-select__option,
.ta-upm-select__option {
  color: #1e293b !important;
}

/* Checkboxes y textos legales */
#trusarchform .ta-upm-checkbox-container,
#trusarchform .ta-upm-checkbox-message,
#trusarchform .ta-upm-static-text-container,
#trusarchform .ta-upm-static-text-details,
#trusarchform .ta-upm-error-message {
  color: var(--lipton-texto) !important;
}

#trusarchform .ta-upm-checkbox-styled {
  border-color: var(--lipton-borde) !important;
}

#trusarchform a {
  color: var(--lipton-texto) !important;
  text-decoration: underline !important;
}

/* Los enlaces legales vienen con azul inline desde el editor de TrustArc */
#trusarchform a span,
#trusarchform .ta-upm-static-text-details span[style],
#trusarchform .ta-upm-checkbox-message span[style] {
  color: var(--lipton-texto) !important;
}

/* Campos ocultos por configuración del form (ej. Jurisdiction) */
#trusarchform .ta-upm-field-hidden {
  display: none !important;
}

/* Botones */
#trusarchform .ta-upm-button {
  font-family: "Montserrat", sans-serif !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  border-radius: 50px !important;
  padding: 10px 45px !important;
}

#trusarchform .ta-upm-button__primary {
  background: var(--lipton-morado) !important;
  color: #fff !important;
  border: 2px solid var(--lipton-morado) !important;
}

#trusarchform .ta-upm-button__secondary {
  background: transparent !important;
  color: var(--lipton-morado) !important;
  border: 2px solid var(--lipton-morado) !important;
}

/* ---------- Footer ---------- */
footer {
  background-color: var(--lipton-morado);
  color: #fff;
  text-align: center;
  padding: 1.5rem 1rem;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  position: relative;
  z-index: 2;
  height: 230px;
  margin: -161px 0 0 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

@media (max-width: 768px) {
  /* Hero vertical: la foto se recorta al centro (la botella) */
  .hero {
    aspect-ratio: 4 / 5;
  }

  .hero__capa--circulo {
    top: 5%;
    left: 8%;
    width: 84%;
  }

  .hero__capa--llamado {
    top: 22%;
    left: 8.5%;
    width: 82%;
  }

  #form-container {
    width: 95%;
  }

  footer {
    margin: -80px 0 0 0;
    height: auto;
    min-height: 140px;
    padding-top: 2.5rem;
  }
}
