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

html,
body {
  height: 100%;
}

body {
  font-family: "Inter", sans-serif;
  background-color: #043341;
  color: #fff;
}

/* Contenedor: ocupa todo el viewport */
.page {
  min-height: 100vh;
  display: flex;
  align-items: stretch;
  justify-content: stretch;
}

.hero {
  position: relative;
  flex: 1;
  display: flex;
  min-height: 100vh;
  overflow: hidden;
  border: none;
}

/* Tapa la línea en el borde izquierdo del hero (zona antes de la foto) */
.hero::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 8%;
  min-width: 50px;
  background-color: #043341;
  z-index: 2;
  pointer-events: none;
}

/* Fondo general */
.hero-background {
  position: absolute;
  inset: 0;
  background-color: #043341;
  background-image: url("./assets/1-fondo.png");
  background-size: cover;
  background-position: center;
  z-index: 1;
}

/* Columna izquierda: imagen se extiende detrás del contenido derecho (sin línea, unificado) */
.hero-photo-wrapper {
  position: absolute;
  left: 5%;
  top: 0;
  bottom: 0;
  width: 58%;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  overflow: hidden;
}

/* Oculta la línea vertical del borde izquierdo de la imagen (el lado derecho permanece igual) */
.hero-photo-wrapper::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 10px;
  background-color: #043341;
  z-index: 1;
  pointer-events: none;
}

.hero-photo {
  width: 110%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: left center;
  display: block;
  transform: translateX(-10%);
  border: none;
  outline: none;
}

/* Columna derecha: logo, texto e iconos (alineado al mockup). left: 50% para juntar con la imagen y que no se vea línea) */
.hero-logo {
  position: absolute;
  top: 17%;
  left: 57%;
  right: 5%;
  width: 90%;
  max-width: 400px;
  height: auto;
  z-index: 3;
}

.hero-content {
  position: absolute;
  left: 57%;
  right: 5%;
  top: 38%;
  max-width: 500px;
  z-index: 3;
}

.hero-title {
  font-size: 2rem;
  font-weight: 600;
  line-height: 1;
  margin-bottom: 0.5rem;
  color: #fff;
}

.hero-description {
  font-size: clamp(1rem, 1.4vw, 1.3rem);
  line-height: 1;
  margin-top: 2rem;
  margin-bottom: 0.35rem;
  color: rgba(255, 255, 255, 0.95);
}

.hero-description--highlight {
  margin-bottom: 0;
  margin-top: 2rem;
}

.hero-description--highlight strong {
  font-weight: 700;
}

.hero-description--last-line {
  margin-top: 0.20rem;
}

.social-links {
  position: absolute;
  left: 57%;
  right: 5%;
  bottom: 12%;
  display: flex;
  gap: 0.85rem;
  z-index: 3;
}

.social-link {
  display: block;
  text-decoration: none;
  transition: transform 0.25s ease, filter 0.25s ease;
}

.social-link:hover,
.social-link:focus-visible {
  transform: translateY(-6px) scale(1.08);
  filter: brightness(1.15);
  outline: none;
}

.social-link:active {
  transform: translateY(-3px) scale(1.02);
}

.social-icon {
  width: 87px;
  height: auto;
  object-fit: contain;
  transition: transform 0.25s ease;
}

.decor-circle,
.decor-bars {
  display: none;
}

/* ============================================
   RESPONSIVE
   - Mobile:  ≤ 576px
   - Tablet:  577px - 1024px
   - Desktop: ≥ 1025px (estilos por defecto arriba)
   ============================================ */

/* Tablet: 577px - 1024px */
@media (max-width: 1024px) and (min-width: 577px) {
  .hero-photo-wrapper {
    left: 3%;
    width: 52%;
  }

  .hero::before {
    width: 5%;
    min-width: 30px;
  }

  .hero-logo {
    left: 55%;
    top: 14%;
    max-width: 320px;
  }

  .hero-content {
    left: 55%;
    right: 4%;
    top: 34%;
    max-width: 420px;
  }

  .hero-title {
    font-size: 1.6rem;
  }

  .hero-description {
    font-size: clamp(0.95rem, 1.2vw, 1.15rem);
    margin-top: 1.5rem;
  }

  .hero-description--highlight {
    margin-top: 1.2rem;
  }

  .social-links {
    left: 55%;
    right: 4%;
    bottom: 10%;
    gap: 0.6rem;
  }

  .social-icon {
    width: 72px;
  }
}

/* Mobile vertical (≤ 576px): Logo → Imagen → Texto (izq) → Iconos (centrados), como en mockup */
@media (max-width: 576px) {
  .page {
    align-items: flex-start;
  }

  .hero {
    display: flex;
    flex-direction: column;
    min-height: auto;
    padding-bottom: 2.5rem;
    align-items: center;
    width: 100%;
  }

  .hero::before {
    width: 0;
    min-width: 0;
    display: none;
  }

  /* 1. Logo centrado arriba */
  .hero-logo {
    order: 1;
    position: relative;
    left: 0;
    right: 0;
    top: 0;
    /*margin: 1.25rem 1rem 0;*/
    max-width: 260px;
    width: auto;
    display: block;
    margin-top: 2rem;
    margin-right: auto;
    margin-bottom: 0;
    margin-left: auto;
  }

  /* 2. Imagen de la chica más grande, centrada */
  .hero-photo-wrapper {
    order: 2;
    position: relative;
    left: 0;
    width: 600px;
    height: 340px;
    padding: 0 2rem 0 2rem;
    box-sizing: border-box;
  }

  .hero-photo-wrapper::before {
    display: none;
  }

  .hero-photo {
    width: 100%;
    height: auto;
    max-height: 58vh;
    min-height: 280px;
    object-fit: contain;
    object-position: center top;
    transform: none;
    display: block;
  }

  /* 3. Contenido justificado, centrado debajo de la imagen, texto más pequeño */
  .hero-content {
    order: 3;
    position: relative;
    left: 0;
    right: 0;
    top: 0;
    margin: 1.25rem auto 0;
    max-width: 100%;
    padding: 0 4rem 0 4rem;
    text-align: justify;
    width: 100%;
    box-sizing: border-box;
  }

  .hero-title {
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.3;
    margin-bottom: 0.6rem;
    color: #fff;
    text-align: justify;
    justify-content: center;
  }

  .hero-description {
    font-size: 0.7rem;
    line-height: 1;
    margin-top: 0;
    margin-bottom: 0.45rem;
    color: rgba(255, 255, 255, 0.95);
  }

  .hero-description--highlight {
    margin-top: 0.75rem;
    margin-bottom: 0.10rem;
  }

  .hero-description--highlight strong {
    font-weight: 700;
  }

  .hero-description--last-line {
    margin-top: 0;
    margin-bottom: 0;
  }

  /* 4. Iconos sociales centrados (la interacción hover/active viene del CSS base y se mantiene en todos los dispositivos) */
  .social-links {
    order: 4;
    position: relative;
    left: 0;
    right: 0;
    bottom: 0;
    margin: 1.75rem 0 0;
    padding: 0 2.5rem 0 2rem;
    justify-content: center;
    flex-wrap: wrap;
    gap: 0.65rem;
  }

  .social-icon {
    width: 42px;
    height: auto;
    object-fit: contain;
  }
}

/* Tablet vertical (577px–1025px portrait): iPad mini, iPad, iPad Pro (768×1024, 820×1180, 1024×1366 en portrait) */
@media (min-width: 577px) and (max-width: 1025px) and (orientation: portrait) {
  .page {
    align-items: flex-start;
  }

  .hero {
    display: flex;
    flex-direction: column;
    min-height: auto;
    padding-bottom: 2.5rem;
    align-items: center;
    width: 100%;
  }

  .hero::before {
    width: 0;
    min-width: 0;
    display: none;
  }

  /* 1. Logo centrado arriba */
  .hero-logo {
    order: 1;
    position: relative;
    left: 0;
    right: 0;
    top: 0;
    max-width: 340px;
    width: auto;
    display: block;
    margin-top: 2rem;
    margin-right: auto;
    margin-bottom: 0;
    margin-left: auto;
  }

  /* 2. Imagen grande y centrada con padding */
  .hero-photo-wrapper {
    order: 2;
    position: relative;
    left: 0;
    width: 800px;
    height: 480px;
    min-height: 0;
    padding: 0 2rem 0 2rem;
    box-sizing: border-box;
  }

  .hero-photo-wrapper::before {
    display: none;
  }

  .hero-photo {
    width: 100%;
    height: auto;
    max-height: 52vh;
    min-height: 320px;
    object-fit: contain;
    object-position: center top;
    transform: none;
    display: block;
  }

  /* 3. Bloque de texto centrado en la página, contenido alineado a la izquierda, buen padding */
  .hero-content {
    order: 3;
    position: relative;
    left: 0;
    right: 0;
    top: 0;
    margin: 1.5rem auto 0;
    max-width: 100%;
    padding: 0 12rem 0 12rem;
    text-align: justify;
    width: 100%;
    box-sizing: border-box;
  }

  .hero-title {
    font-size: 1.5rem;
    font-weight: 600;
    line-height: 1.3;
    margin-bottom: 0.75rem;
    color: #fff;
    text-align: justify;
    justify-content: center;
  }

  .hero-description {
    font-size: 0.95rem;
    line-height: 1;
    margin-top: 0;
    margin-bottom: 0.5rem;
    color: rgba(255, 255, 255, 0.95);
  }

  .hero-description--highlight {
    margin-top: 1rem;
    margin-bottom: 0.10rem;
  }

  .hero-description--highlight strong {
    font-weight: 700;
  }

  .hero-description--last-line {
    margin-top: 0;
    margin-bottom: 0;
  }

  /* 4. Iconos sociales centrados abajo */
  .social-links {
    order: 4;
    position: relative;
    left: 0;
    right: 0;
    bottom: 0;
    margin: 1.75rem 0 0;
    padding: 0 2.5rem 0 2rem;
    justify-content: center;
    flex-wrap: wrap;
    gap: 0.75rem;
  }

  .social-icon {
    width: 64px;
    height: auto;
    object-fit: contain;
  }
}

/* Tablet grande vertical (iPad Pro 1024×1366 y similares): ajustes para que el contenido no se estire y use mejor el espacio */
@media (min-width: 1000px) and (max-width: 1025px) and (orientation: portrait) {
  .hero {
    min-height: 100vh;
    justify-content: flex-start;
    padding-bottom: 3rem;
  }

  .hero-photo-wrapper {
    max-width: 90%;
    margin-left: auto;
    margin-right: auto;
  }

  .hero-content {
    max-width: 720px;
    margin-left: auto;
    margin-right: auto;
    padding: 0 10rem 0 10rem;
  }

  .hero-title {
    font-size: 1.6rem;
  }

  .hero-description {
    font-size: 1rem;
    line-height: 1;
  }

  .social-links {
    margin-top: 2rem;
    margin-bottom: 0;
    padding-left: 2rem;
    padding-right: 2rem;
  }

  .social-icon {
    width: 72px;
  }
}

/* ========== Horizontal: mobile y tablet (2 columnas como desktop, sin pisar breakpoints) ========== */
/* Mobile horizontal: hasta 896px en landscape (incluye móviles reales; tablet horizontal empieza en 897px) */
@media (orientation: landscape) and (max-width: 896px) {
  .page {
    align-items: stretch;
  }

  .hero {
    display: flex;
    min-height: 100vh;
    padding-bottom: 0;
    align-items: stretch;
  }

  .hero::before {
    width: 4%;
    min-width: 20px;
    display: block;
  }

  /* Columna izquierda: imagen grande, contenida para que NO se corte por la columna derecha */
  .hero-photo-wrapper {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 100%;
    z-index: 2;
    display: flex;
    padding: 0 17rem 0 0;
    align-items: center;
    justify-content: flex-start;
    overflow: hidden;
  }

  .hero-photo-wrapper::before {
    display: block;
    width: 8px;
  }

  .hero-photo {
    width: auto;
    height: 100%;
    max-width: 100%;
    object-fit: contain;
    object-position: left center;
    transform: none;
    display: block;
  }

  /* Columna derecha: misma estructura que desktop, tamaños adaptados */
  .hero-logo {
    position: absolute;
    left: 55%;
    right: 5%;
    top: 10%;
    margin: 0;
    width: 250px;
    height: auto;
    display: block;
    z-index: 3;
  }

  .hero-content {
    position: absolute;
    left: 55%;
    right: 5%;
    top: 26%;
    margin: 0;
    max-width: none;
    padding: 0;
    text-align: left;
    z-index: 3;
  }

  .hero-title {
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.25;
    margin-top: 2rem;
    margin-bottom: 0.4rem;
  }

  .hero-description {
    font-size: clamp(0.75rem, 1.8vw, 0.9rem);
    line-height: 1;
    margin-top: 0.6rem;
    margin-bottom: 0.25rem;
  }

  .hero-description--highlight {
    margin-bottom: 0;
    margin-top: 0.6rem;
  }

  .hero-description--last-line {
    margin-top: 0.2rem;
  }

  .social-links {
    position: absolute;
    top: 80%;
    left: 52%;
    right: 5%;
    margin: 0;
    padding: 0 1rem 0 1.2rem;
    justify-content: flex-start;
    gap: 0.4rem;
    z-index: 3;
  }

  .social-icon {
    width: 45px;
    height: auto;
    object-fit: contain;
  }
}

/* Tablet horizontal: 897px - 1023px + landscape (no se solapa con tablet grande 1024+) */
@media (orientation: landscape) and (min-width: 897px) and (max-width: 1023px) {
  .hero::before {
    width: 4%;
    min-width: 24px;
  }

  .hero-photo-wrapper {
    left: 0;
    width: 100%;
    display: flex;
    padding: 0 17rem 0 0;
    align-items: center;
    justify-content: flex-start;
    overflow: hidden;
  }

  .hero-photo {
    width: 110%;
    height: 100%;
    object-fit: cover;
    object-position: left center;
    transform: translateX(-8%);
  }

  .hero-logo {
    left: 55%;
    right: 5%;
    top: 12%;
    max-width: 280px;
  }

  .hero-content {
    left: 55%;
    right: 5%;
    top: 30%;
    max-width: 420px;
  }

  .hero-title {
    font-size: 1rem;
    margin-top: 2rem;
    margin-bottom: 0.4rem;
  }

  .hero-description {
    font-size: 0.9rem;
    line-height: 1;
    margin-top: 1rem;
    margin-bottom: 1rem;
  }

  .hero-description--highlight {
    margin-bottom: 0;
    margin-top: 0.6rem;
  }

  .hero-description--last-line {
    margin-top: 0.20rem;
    margin-bottom: 0.25rem;
  }  

  .social-links {
    top: 80%;
    left: 55%;
    right: 5%;
    gap: 0.55rem;
    padding: 0 1rem 0 1rem;
  }

  .social-icon {
    width: 60px;
  }
}

/* Tablet grande horizontal: 1024–1366px + landscape (iPad/mini 1024×768, iPad Air 1180×820, iPad Pro 1366×1024) */
@media (orientation: landscape) and (min-width: 1024px) and (max-width: 1368px) {
  /* Imagen grande pero SIN cortarse por la columna derecha */
  .hero-photo-wrapper {
    left: 0;
    width: 85%;
    padding: 0 15rem 0 0;
    overflow: hidden;
  }

  .hero-photo {
    width: auto;
    height: 100%;
    max-width: 100%;
    object-fit: contain;
    object-position: left center;
    transform: none;
  }

  /* Columna derecha (mismo layout desktop, escalado a tablet grande) */
  .hero-logo {
    left: 58%;
    right: 5%;
    top: 20%;
    width: 400px;
  }

  .hero-content {
    left: 57%;
    right: 5%;
    top: 34%;
    max-width: 520px;
  }

  .hero-title {
    font-size: 1.7rem;
    line-height: 1.25;
    margin-top: 2.7rem;
  }

  .hero-description {
    font-size: 1.2rem;
    line-height: 1;
    margin-top: 2rem;
    margin-bottom: 2.5rem;
  }

  .hero-description--highlight {
    margin-bottom: 0;
    margin-top: 0.6rem;
  }

  .hero-description--last-line {
    margin-top: 0.2rem;
  }

  .social-links {
    left: 55%;
    right: 5%;
    top: 80%;
    padding: 0 1rem 0 0rem;
    gap: 0.65rem;
  }

  .social-icon {
    width: 80px;
  }
}
