/* =========================================================================
   Portada pública de donalupita.com  (se publica como /inicio.css)
   -------------------------------------------------------------------------
   Hoja de estilo de UNA sola página: la raíz del sitio. Está aparte de
   `area-de-miembros/css/estilos.css` a propósito —el portal y la portada no
   comparten ni un componente— y aparte de `paginas-de-venta/_comun/css/`
   porque aquella hoja está pensada para páginas largas de venta con scroll,
   y esto es una pantalla única.

   Se publica en la RAÍZ (`/inicio.css`) y no en `/css/`, que es el espacio de
   la cáscara del portal: ese prefijo está en `Disallow` dentro de robots.txt,
   y un buscador que no puede leer la hoja de estilo de la portada la juzga
   como si no tuviera diseño. La portada sí se indexa.

   Tokens de marca: curso/guia-de-marca.md.
   ========================================================================= */

:root {
  --vino:        #7B2233;   /* el delantal */
  --vino-oscuro: #5A1626;
  --vino-hondo:  #431019;
  --caramelo:    #C98A3F;   /* el dulce de leche */
  --miel:        #E8B673;
  --crema:       #F7F1E7;
  --espresso:    #2E2320;

  --serif: "Playfair Display", Georgia, "Times New Roman", serif;
  --sans:  "Nunito", "Segoe UI", system-ui, -apple-system, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  min-height: 100vh;
  min-height: 100svh;
  font-family: var(--sans);
  color: var(--crema);
  background-color: var(--vino-oscuro);
  background-image:
    radial-gradient(115% 85% at 76% 12%, rgba(201, 138, 63, .34), rgba(201, 138, 63, 0) 60%),
    linear-gradient(158deg, var(--vino) 0%, var(--vino-oscuro) 55%, var(--vino-hondo) 100%);
  background-repeat: no-repeat;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

img { display: block; max-width: 100%; }

/* ------------------------------------------------------------------ el botón

   Único elemento interactivo de la página. Fijo en la esquina superior
   izquierda: se ve siempre, no compite con el retrato y no se lee como un
   botón de compra. */

.acceso-esquina {
  position: fixed;
  top:  clamp(1rem, 2.4vw, 1.7rem);
  left: clamp(1rem, 2.4vw, 1.7rem);
  z-index: 20;

  display: inline-flex;
  align-items: center;
  gap: .58rem;
  padding: .72rem 1.3rem .74rem 1.15rem;

  font: 700 .95rem/1 var(--sans);
  letter-spacing: .02em;
  color: var(--crema);
  text-decoration: none;

  border: 1px solid rgba(232, 182, 115, .55);
  border-radius: 999px;
  background: rgba(67, 16, 25, .46);
  -webkit-backdrop-filter: blur(9px) saturate(1.15);
  backdrop-filter: blur(9px) saturate(1.15);
  box-shadow: 0 8px 26px rgba(30, 8, 14, .28);

  transition: background .22s ease, border-color .22s ease,
              color .22s ease, transform .22s ease, box-shadow .22s ease;
}

.acceso-esquina svg { width: 18px; height: 18px; flex: none; }

.acceso-esquina:hover,
.acceso-esquina:focus-visible {
  background: var(--miel);
  border-color: var(--miel);
  color: var(--espresso);
  transform: translateY(-1px);
  box-shadow: 0 12px 30px rgba(30, 8, 14, .42);
}

.acceso-esquina:focus-visible {
  outline: 3px solid var(--crema);
  outline-offset: 3px;
}

.acceso-esquina:active { transform: translateY(0); }

/* ------------------------------------------------------------------ la escena

   Rejilla de dos columnas en pantalla ancha: palabra a la izquierda, retrato
   pegado al borde derecho. El retrato se posiciona en absoluto (y no como
   celda de la rejilla) para que llegue de arriba abajo sin dejar franjas. */

.escena {
  position: relative;
  min-height: 100vh;
  min-height: 100svh;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-content: center;
  padding: clamp(6rem, 13vh, 8.5rem) clamp(1.4rem, 5vw, 5rem) clamp(2.5rem, 7vh, 4.5rem);
}

.palabra {
  position: relative;
  z-index: 2;
  max-width: 34rem;
}

.antetitulo {
  margin: 0 0 1.4rem;
  display: inline-flex;
  align-items: center;
  gap: .8rem;
  font-size: .74rem;
  font-weight: 700;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--miel);
}

.antetitulo::before {
  content: "";
  width: 2.4rem;
  height: 1px;
  background: rgba(232, 182, 115, .7);
}

h1 {
  margin: 0 0 1.5rem;
  font-family: var(--serif);
  font-weight: 700;
  font-size: clamp(3.1rem, 8.2vw, 5.6rem);
  line-height: .96;
  letter-spacing: -.015em;
  color: var(--crema);
  text-shadow: 0 2px 18px rgba(40, 10, 18, .45);
}

h1 span {
  display: block;
  margin-top: 1.05rem;
  font-family: var(--sans);
  font-size: clamp(.72rem, 1.5vw, .88rem);
  font-weight: 700;
  letter-spacing: .34em;
  text-transform: uppercase;
  color: var(--miel);
  text-shadow: none;
}

.lema {
  margin: 0 0 1.9rem;
  max-width: 30ch;
  font-size: clamp(1.04rem, 1.35vw, 1.24rem);
  line-height: 1.62;
  color: rgba(247, 241, 231, .93);
  text-shadow: 0 1px 12px rgba(40, 10, 18, .45);
}

/* Las 4 P: el método propio de la marca, en cuatro fichas sobrias. */
.cuatro-p {
  margin: 0 0 2.1rem;
  padding: 0;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
}

.cuatro-p li {
  padding: .42rem .95rem;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: rgba(247, 241, 231, .92);
  border: 1px solid rgba(232, 182, 115, .38);
  border-radius: 999px;
  background: rgba(67, 16, 25, .3);
}

.firma {
  margin: 0;
  font-family: var(--serif);
  font-style: italic;
  font-size: clamp(1rem, 1.3vw, 1.15rem);
  color: var(--miel);
}

/* ----------------------------------------------------------------- retrato

   Móvil primero: la foto ocupa la pantalla entera por detrás del texto, y un
   velo de vino de abajo hacia arriba garantiza el contraste de lectura.
   El texto va abajo, sobre la parte más oscura del velo. */

.retrato {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
}

.retrato img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 62% 8%;
}

.retrato::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(to top,
      var(--vino-hondo) 0%,
      rgba(67, 16, 25, .96) 30%,
      rgba(90, 22, 38, .74) 50%,
      rgba(123, 34, 51, .30) 74%,
      rgba(123, 34, 51, .10) 100%);
}

@media (max-width: 899px) {
  .escena {
    align-content: end;
    padding-bottom: clamp(2.5rem, 8vh, 4rem);
  }
  .lema { max-width: 34ch; }
}

/* En un móvil estrecho el antetítulo no cabe en una línea con el interletraje
   ancho: se aprieta un poco antes que partirlo en dos y dejar la rayita
   colgando junto a la primera mitad. */
@media (max-width: 480px) {
  .antetitulo {
    font-size: .62rem;
    letter-spacing: .11em;
    gap: .6rem;
  }
  .antetitulo::before { width: 1.7rem; }
}

/* ------------------------------------------------- pantalla ancha (dos lados) */

@media (min-width: 900px) {
  /* La escena ocupa el ancho entero de la ventana —el retrato tiene que llegar
     al borde derecho de la pantalla, no al de una caja centrada— y el texto se
     centra con un relleno calculado en vez de con `max-width` + `margin auto`. */
  .escena {
    grid-template-columns: minmax(0, 1fr);
    padding-left: max(clamp(1.4rem, 5vw, 5rem), calc((100vw - 1360px) / 2));
    padding-right: 0;
  }

  .palabra { max-width: 32rem; }

  .retrato {
    inset: 0 0 0 auto;
    width: min(60%, 860px);
  }

  .retrato img {
    object-position: 56% 12%;
  }

  /* La foto se desvanece hacia la izquierda para fundirse con el fondo vino
     en vez de terminar en un borde recto: así la pantalla se lee como una
     sola escena y no como «texto | foto». */
  .retrato {
    -webkit-mask-image: linear-gradient(100deg,
      rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, .28) 16%, rgba(0, 0, 0, .85) 34%, #000 50%);
    mask-image: linear-gradient(100deg,
      rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, .28) 16%, rgba(0, 0, 0, .85) 34%, #000 50%);
  }

  /* En pantalla ancha el texto no se apoya sobre la foto, así que el velo sólo
     tiene que asentar la base de la imagen en el fondo vino: mucho más suave
     que en móvil, para que la cara de Doña Lupita se vea como es. */
  .retrato::after {
    background:
      linear-gradient(to top,
        rgba(67, 16, 25, .85) 0%,
        rgba(90, 22, 38, .30) 26%,
        rgba(123, 34, 51, .06) 58%,
        rgba(123, 34, 51, 0) 100%);
  }
}

@media (min-width: 1500px) {
  .retrato { width: min(56%, 940px); }
}

/* --------------------------------------------------------------- entrada

   Un fundido corto, sin movimiento brusco. Quien pide menos animación no ve
   nada de esto: el contenido aparece ya colocado. */

@media (prefers-reduced-motion: no-preference) {
  .palabra > * {
    animation: asomar .7s cubic-bezier(.22, .7, .3, 1) both;
  }
  .antetitulo { animation-delay: .04s; }
  h1          { animation-delay: .10s; }
  .lema       { animation-delay: .18s; }
  .cuatro-p   { animation-delay: .26s; }
  .firma      { animation-delay: .34s; }
  .acceso-esquina { animation: asomar .7s .42s cubic-bezier(.22, .7, .3, 1) both; }

  @keyframes asomar {
    from { opacity: 0; transform: translateY(12px); }
    to   { opacity: 1; transform: none; }
  }
}

/* Pantallas muy bajas (móvil en horizontal): que nada quede cortado. */
@media (max-height: 520px) {
  .escena { padding-top: 5rem; }
  h1 { font-size: clamp(2.2rem, 6vw, 3rem); }
  .lema { margin-bottom: 1.2rem; }
  .cuatro-p { margin-bottom: 1.2rem; }
}
