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

html, body {
  height: 100%;
  width: 100%;
  overflow: hidden;
  background: #ffffff;
}

body {
  font-family: sans-serif;
}

.page {
  height: 100dvh;
  width: 100vw;
  display: flex;
  flex-direction: column;
}

/* Franja de colores superior */
/* aspect-ratio = proporcion real de la imagen (1920x41): en pantallas angostas
   (celular) el alto se calcula a partir del ancho disponible, asi la linea
   nunca se recorta de los lados. max-height evita que en pantallas anchas
   (desktop) la franja se vea demasiado gruesa. */
.top-bar {
  flex: 0 0 auto;
  width: 100%;
  aspect-ratio: 1920 / 41;
  max-height: 20px;
  line-height: 0;
}

.top-bar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Logo centrado */
.content {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2vh 4vw;
}

.logo {
  max-width: min(70vw, 520px);
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
}

/* Patron inferior */
.bottom-bar {
  flex: 0 0 auto;
  width: 100%;
  height: clamp(50px, 16vh, 200px);
  line-height: 0;
}

.bottom-bar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  display: block;
}

/* Ajustes para pantallas muy bajas (landscape movil) */
@media (max-height: 420px) {
  .bottom-bar {
    height: clamp(30px, 12vh, 120px);
  }
}
