/* ==========================================================================
   css/portada.css — portada de la tienda (tienda.php), 2026-10-29.

   Slider de banners (los del panel), cuatro escaparates, «Explora nuestra
   tienda» y «Cómo funciona». Colores de GECOTEL: tinta, ámbar y crema. Sin
   degradados: el texto del slider va sobre una caja de tinta translúcida.
   La tarjeta compacta `.gc-mini` es de aquí; la grande vive en tienda.css.
   ========================================================================== */
.page-portada {
  --pt-crema: #f5f4f0;
  --pt-tinta: var(--gc-ink, #171b26);
  --pt-tinta-2: var(--gc-ink-2, #1f2431);
  --pt-ambar: var(--gc-gold, #ffc107);
  --pt-ambar-hi: var(--gc-gold-hi, #e0a800);
  --pt-ocre: var(--gc-accent, #826111);
  --pt-texto: var(--gc-text, #2c3242);
  --pt-suave: var(--gc-muted, #5f6878);
  --pt-linea: var(--gc-line, #e9e7e2);
  --pt-radio: 18px;
  background: #fff;
}
.pt-contenedor {
  max-width: 1240px;
  margin: 0 auto;
  padding-inline: clamp(1rem, 4vw, 2rem);
}


/* -------------------------------------------------------------- Slider --- */
.pt-slider {
  position: relative;
  isolation: isolate;
  /* La proporción de los banners (1920 × 700): así no se recortan arriba y abajo. */
  height: clamp(340px, 36.46vw, 640px);
  overflow: hidden;
  background: var(--pt-tinta);
  color: #fff;
}
.pt-slider__pista { position: absolute; inset: 0; }
.pt-slide {
  position: absolute; inset: 0;
  opacity: 0; visibility: hidden;
  transition: opacity .9s cubic-bezier(.4, 0, .2, 1), visibility 0s linear .9s;
}
.pt-slide.is-activa { opacity: 1; visibility: visible; z-index: 1; transition: opacity .9s cubic-bezier(.4, 0, .2, 1); }
.pt-slide__img { position: absolute; inset: 0; overflow: hidden; }
.pt-slide__img img {
  width: 100%; height: 100%; object-fit: cover; object-position: center;
  transform: scale(1.08);
}
/* Zoom lento mientras la diapositiva está a la vista (efecto Ken Burns). */
.pt-slide.is-activa .pt-slide__img img { transform: scale(1); transition: transform 7.5s cubic-bezier(.2, .6, .2, 1); }
/* La foto de GECOTEL por defecto se oscurece un poco, sin degradado. */
.pt-slide--defecto .pt-slide__img::after {
  content: ""; position: absolute; inset: 0; background: rgba(23, 27, 38, .28);
}
.pt-slide__capa { position: relative; z-index: 2; height: 100%; display: flex; align-items: center; pointer-events: none; }
.pt-slide__texto {
  pointer-events: auto;
  max-width: 34rem;
  padding: clamp(1.25rem, 3vw, 2rem) clamp(1.25rem, 3vw, 2.25rem);
  border-radius: 22px;
  background: rgba(23, 27, 38, .9);
  -webkit-backdrop-filter: blur(10px) saturate(1.2);
          backdrop-filter: blur(10px) saturate(1.2);
  box-shadow: 0 30px 60px -30px rgba(0, 0, 0, .6);
  border: 1px solid rgba(255, 255, 255, .08);
}
/* Cada pieza del texto entra un poco después de la anterior. */
.pt-slide__texto > * { opacity: 0; transform: translateY(16px); }
.pt-slide.is-activa .pt-slide__texto > * {
  opacity: 1; transform: none;
  transition: opacity .6s ease, transform .6s cubic-bezier(.2, .7, .2, 1);
}
.pt-slide.is-activa .pt-slide__texto > :nth-child(1) { transition-delay: .25s; }
.pt-slide.is-activa .pt-slide__texto > :nth-child(2) { transition-delay: .35s; }
.pt-slide.is-activa .pt-slide__texto > :nth-child(3) { transition-delay: .45s; }
.pt-slide.is-activa .pt-slide__texto > :nth-child(4) { transition-delay: .55s; }
.pt-slide__etiqueta {
  display: inline-flex; align-items: center; gap: .45rem;
  padding: .3rem .8rem;
  border-radius: 999px;
  background: var(--pt-ambar); color: var(--gc-gold-ink, #1f2431);
  font-size: .74rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase;
}
.pt-slide__titulo {
  margin: .8rem 0 .55rem;
  font-family: 'Manrope', system-ui, sans-serif;
  font-size: clamp(1.7rem, 3.8vw, 2.9rem); font-weight: 800;
  line-height: 1.08; letter-spacing: -.025em;
  color: #fff;
}
.pt-slide__lead { margin: 0 0 1.3rem; max-width: 30rem; font-size: clamp(.95rem, 1.5vw, 1.06rem); line-height: 1.55; color: #dfe3ea; }
.pt-slide__enlace { position: absolute; inset: 0; z-index: 3; }
.pt-slide__enlace:focus-visible { outline: 3px solid var(--pt-ambar); outline-offset: -6px; }

.pt-boton {
  display: inline-flex; align-items: center; gap: .6rem;
  height: 48px; padding: 0 1.5rem;
  border-radius: 999px;
  background: var(--pt-ambar); color: var(--gc-gold-ink, #1f2431);
  font-family: 'Manrope', system-ui, sans-serif;
  font-size: .95rem; font-weight: 800; text-decoration: none;
  transition: background .2s ease, transform .2s ease;
}
.pt-boton:hover { background: var(--pt-ambar-hi); color: var(--gc-gold-ink, #1f2431); transform: translateY(-2px); }
.pt-boton:active { transform: translateY(0) scale(.98); }
.pt-boton i { transition: transform .25s ease; }
.pt-boton:hover i { transform: translateX(4px); }
.pt-boton--grande { height: 56px; padding: 0 2rem; font-size: 1.02rem; }

.pt-slider__flecha {
  position: absolute; top: 50%; z-index: 4;
  width: 46px; height: 46px; margin-top: -23px;
  border: 1px solid rgba(255, 255, 255, .25); border-radius: 50%;
  background: rgba(23, 27, 38, .55); color: #fff;
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
  display: inline-flex; align-items: center; justify-content: center;
  cursor: pointer;
  opacity: 0;
  transition: opacity .25s ease, background .2s ease, transform .2s ease;
}
.pt-slider:hover .pt-slider__flecha, .pt-slider__flecha:focus-visible { opacity: 1; }
.pt-slider__flecha:hover { background: var(--pt-ambar); color: var(--gc-gold-ink, #1f2431); border-color: var(--pt-ambar); }
.pt-slider__flecha--izq { left: clamp(.75rem, 2vw, 1.5rem); }
.pt-slider__flecha--der { right: clamp(.75rem, 2vw, 1.5rem); }
.pt-slider__mandos {
  position: absolute; left: 50%; bottom: 1.1rem; z-index: 4;
  transform: translateX(-50%);
  display: flex; align-items: center; gap: .6rem;
  padding: .4rem .55rem;
  border-radius: 999px;
  background: rgba(23, 27, 38, .55);
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
}
.pt-slider__puntos { display: flex; gap: .4rem; }
.pt-slider__punto {
  position: relative;
  width: 26px; height: 6px; padding: 0;
  border: 0; border-radius: 999px;
  background: rgba(255, 255, 255, .35);
  overflow: hidden; cursor: pointer;
  transition: width .35s ease, background .2s ease;
}
.pt-slider__punto.is-activo { width: 46px; }
/* La barra de progreso del punto activo cuenta el tiempo hasta la siguiente. */
.pt-slider__punto span { position: absolute; inset: 0; width: 0; background: var(--pt-ambar); border-radius: inherit; }
.pt-slider__punto.is-activo span { width: 100%; transition: width var(--pt-intervalo, 6500ms) linear; }
.pt-slider.is-pausado .pt-slider__punto.is-activo span { width: 100%; transition: none; }
.pt-slider__pausa {
  width: 26px; height: 26px; padding: 0;
  border: 0; border-radius: 50%;
  background: transparent; color: #fff; font-size: .7rem;
  cursor: pointer;
}
.pt-slider__pausa:hover { color: var(--pt-ambar); }
.pt-aviso { max-width: 1240px; margin: 1rem auto; padding: .9rem 1.1rem; border-radius: 12px; background: #fdf1f0; color: #a03024; }

/* ---------------------------------------------------------- Escaparates --- */
.pt-escaparates { padding: clamp(2.25rem, 5vw, 3.5rem) 0 clamp(1.5rem, 4vw, 2.5rem); background: var(--pt-crema); }
.pt-bloque { margin-bottom: clamp(2.25rem, 5vw, 3.25rem); }
.pt-bloque__cabeza { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; margin-bottom: 1.1rem; }
.pt-bloque__titulo {
  margin: .55rem 0 0;
  font-family: 'Manrope', system-ui, sans-serif;
  font-size: clamp(1.4rem, 2.8vw, 1.9rem); font-weight: 800; letter-spacing: -.015em; line-height: 1.15;
  color: var(--pt-tinta);
}
.pt-ver {
  flex: none;
  display: inline-flex; align-items: center; gap: .45rem;
  height: 40px; padding: 0 1.1rem;
  border: 1px solid #e0ddd4; border-radius: 999px;
  background: #fff; color: var(--pt-tinta);
  font-size: .88rem; font-weight: 700; text-decoration: none;
  transition: background .2s ease, border-color .2s ease, color .2s ease;
}
.pt-ver small { color: var(--pt-suave); font-weight: 600; }
.pt-ver i { font-size: .76rem; transition: transform .25s ease; }
.pt-ver:hover { background: var(--pt-tinta); border-color: var(--pt-tinta); color: #fff; }
.pt-ver:hover small { color: #c9cdd5; }
.pt-ver:hover i { transform: translateX(4px); }
.pt-bloque__fila { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1rem; }
.pt-bloque__fila > .gc-carril__item { display: flex; min-width: 0; }

/* -------------------------------------------------------------- Explora --- */
.pt-explora {
  display: flex; align-items: center; justify-content: space-between; gap: 1.5rem 2.5rem; flex-wrap: wrap;
  padding: clamp(1.75rem, 4vw, 2.75rem) clamp(1.5rem, 4vw, 3rem);
  border-radius: 24px;
  background: var(--pt-tinta); color: #fff;
}
.pt-explora h2 { margin: 0 0 .4rem; font-family: 'Manrope', system-ui, sans-serif; font-size: clamp(1.4rem, 2.8vw, 1.9rem); font-weight: 800; color: #fff; }
.pt-explora p { margin: 0; max-width: 38rem; color: #c9cdd5; line-height: 1.55; }
.pt-explora p b { color: var(--pt-ambar); }

/* ------------------------------------------------ Aparición al hacer scroll --- */
/* La pone portada.js; sin JS (o con «reducir movimiento») todo se ve desde el principio. */
.js-reveal [data-reveal]:not([data-reveal-hijos]),
.js-reveal [data-reveal-hijos] > * { opacity: 0; transform: translateY(22px); }
.js-reveal [data-reveal].is-visible:not([data-reveal-hijos]),
.js-reveal .is-visible[data-reveal-hijos] > *,
.js-reveal .is-visible [data-reveal-hijos] > * {
  opacity: 1; transform: none;
  transition: opacity .6s ease, transform .6s cubic-bezier(.2, .7, .2, 1);
  transition-delay: calc(var(--i, 0) * 70ms);
}

/* ---------------------------------------------------------- Secciones --- */
.pt-seccion { padding: clamp(2.5rem, 6vw, 4rem) 0; }
.pt-seccion--crema { background: var(--pt-crema); }
.pt-cabeza {
  display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem;
  margin-bottom: 1.25rem;
}
.pt-cabeza--centro { justify-content: center; text-align: center; }
.pt-cabeza__titulo {
  margin: .55rem 0 0;
  font-family: 'Manrope', system-ui, sans-serif;
  font-size: clamp(1.55rem, 3.2vw, 2.15rem); font-weight: 800;
  letter-spacing: -.015em; line-height: 1.15;
  color: var(--pt-tinta);
}
.pt-cabeza__titulo--sm { margin: 0; font-size: 1.12rem; }
.pt-cabeza__ver {
  flex: none;
  display: inline-flex; align-items: center; gap: .4rem;
  font-size: .9rem; font-weight: 700;
  color: var(--pt-ocre);
  text-decoration: none;
}
.pt-cabeza__ver:hover { color: var(--pt-tinta); }
.pt-cabeza__ver i { font-size: .78rem; transition: transform .2s ease; }
.pt-cabeza__ver:hover i { transform: translateX(3px); }
.pt-etiqueta {
  display: inline-flex; align-items: center; gap: .45rem;
  padding: .3rem .75rem;
  border-radius: 999px;
  background: rgba(255, 193, 7, .18);
  font-family: 'Manrope', system-ui, sans-serif;
  font-size: .72rem; font-weight: 800;
  letter-spacing: .08em; text-transform: uppercase;
  color: var(--pt-ocre);
}
.pt-etiqueta--oferta { background: rgba(229, 72, 77, .12); color: #b4232a; }
.pt-etiqueta--oscura { background: rgba(255, 193, 7, .14); color: var(--pt-ambar); }

/* ------------------------------------------------- Tarjeta compacta ----- */
.gc-mini {
  flex: 1;
  display: flex; flex-direction: column;
  border-radius: 16px;
  background: #fff;
  border: 1px solid #ecebe6;
  overflow: hidden;
  cursor: pointer;
  transition: box-shadow .25s ease, transform .25s ease, border-color .25s ease;
}
.gc-mini:hover { transform: translateY(-3px); border-color: transparent; box-shadow: 0 18px 36px -22px rgba(15, 23, 42, .5); }
.gc-mini__media {
  position: relative;
  aspect-ratio: 1 / .82;
  margin: 6px 6px 0;
  border-radius: 12px;
  background: #f4f3ef;
  overflow: hidden;
}
.gc-mini__img { width: 100%; height: 100%; object-fit: contain; padding: 10px; transition: transform .35s ease; }
.gc-mini:hover .gc-mini__img { transform: scale(1.05); }
.gc-mini__sinfoto { width: 100%; height: 100%; display: grid; place-items: center; color: #c9ccd3; font-size: 2.2rem; }
.gc-mini .fav-heart { top: 8px; left: 8px; right: auto; width: 32px; height: 32px; font-size: .85rem; }
.gc-mini__badge {
  position: absolute; top: 8px; right: 8px; z-index: 2;
  display: inline-flex; align-items: center; gap: .3rem;
  padding: .22rem .55rem;
  border-radius: 999px;
  font-size: .7rem; font-weight: 800;
  line-height: 1.2;
}
.gc-mini__badge--desc { background: #e5484d; color: #fff; }
.gc-mini__badge--vendidos { background: var(--pt-tinta); color: #fff; }
.gc-mini__badge--vendidos i { color: var(--pt-ambar); }
.gc-mini__badge--nuevo { background: var(--pt-ambar); color: var(--gc-gold-ink, #1f2431); }
.gc-mini__body { display: flex; flex-direction: column; gap: .3rem; flex: 1; padding: .75rem .85rem .85rem; }
.gc-mini__cat {
  font-size: .66rem; font-weight: 700;
  letter-spacing: .08em; text-transform: uppercase;
  color: #8a909c;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.gc-mini__title { margin: 0; font-family: 'Manrope', system-ui, sans-serif; font-size: .94rem; font-weight: 800; line-height: 1.25; }
.gc-mini__title a {
  color: var(--pt-tinta); text-decoration: none;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.gc-mini__title a:hover { color: var(--pt-ocre); }
.gc-mini__stock { font-size: .72rem; font-weight: 700; }
.gc-mini__valor { font-size: .76rem; font-weight: 700; color: var(--pt-tinta); }
.gc-mini__valor i { color: var(--pt-ambar-hi); font-size: .7rem; }
.gc-mini__valor small { color: #8a909c; font-weight: 600; }
.gc-mini__stock--pocas { color: #b45309; }
.gc-mini__stock--agotado { color: #b4232a; }
.gc-mini__pie { display: flex; align-items: flex-end; justify-content: space-between; gap: .5rem; margin-top: auto; padding-top: .45rem; }
.gc-mini__precio { display: flex; flex-direction: column; min-width: 0; line-height: 1.15; }
.gc-mini__precio s { font-size: .74rem; color: #8a909c; }
.gc-mini__precio b { font-family: 'Manrope', system-ui, sans-serif; font-size: 1.08rem; font-weight: 800; color: var(--pt-tinta); white-space: nowrap; }
.gc-mini__precio b.es-oferta { color: #c62f35; }
.gc-mini__precio small { font-size: .68rem; color: #8a909c; }
.gc-mini__add {
  flex: none;
  width: 40px; height: 40px; border-radius: 50%;
  border: 0;
  background: var(--pt-ambar); color: var(--gc-gold-ink, #1f2431);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: .95rem;
  cursor: pointer;
  transition: background .2s ease, transform .2s ease;
}
.gc-mini__add:hover:not(:disabled) { background: var(--pt-ambar-hi); transform: scale(1.08); }
.gc-mini__add:disabled { background: #e6e5e0; color: #9aa0aa; box-shadow: none; cursor: not-allowed; }
.gc-mini__add[data-loading="1"] { opacity: .6; }

/* ------------------------------------------------------ Cómo funciona --- */
.pt-pasos { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.pt-pasos li {
  position: relative;
  display: flex; flex-direction: column; gap: .5rem;
  padding: 1.5rem;
  border-radius: var(--pt-radio);
  background: #fff;
  border: 1px solid #ecebe6;
}
.pt-pasos__n {
  position: absolute; top: 1.2rem; right: 1.3rem;
  font-family: 'Manrope', system-ui, sans-serif; font-size: 2.4rem; font-weight: 800; line-height: 1;
  color: #efede6;
}
.pt-pasos li > i {
  width: 48px; height: 48px; border-radius: 14px;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--pt-tinta); color: var(--pt-ambar);
  font-size: 1.1rem;
  margin-bottom: .4rem;
}
.pt-pasos b { font-family: 'Manrope', system-ui, sans-serif; font-size: 1.05rem; font-weight: 800; color: var(--pt-tinta); }
.pt-pasos p { margin: 0; font-size: .9rem; line-height: 1.55; color: var(--pt-suave); }


/* ------------------------------------------------------------ Tamaños --- */
@media (max-width: 1199.98px) {
  .pt-bloque__fila { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .pt-bloque__fila > .gc-carril__item:nth-child(n+5) { display: none; }
}
@media (max-width: 991.98px) {
  .pt-slider__flecha { display: none; }
}
@media (max-width: 767.98px) {
  /* En móvil, imagen arriba y texto debajo: superpuestos, la caja tapaba el
     producto del banner. La caja solo monta un poco sobre el borde de la foto. */
  .pt-slider { height: 480px; }
  .pt-slide { background: var(--pt-tinta); }
  .pt-slide__img { bottom: auto; height: 230px; }
  .pt-slide--defecto .pt-slide__img { height: 100%; }
  .pt-slide__capa { align-items: flex-start; padding-top: 200px; padding-bottom: 3.5rem; }
  .pt-slide--defecto .pt-slide__capa { padding-top: 0; align-items: center; }
  .pt-slide__texto { max-width: none; width: 100%; padding: 1.1rem 1.2rem; }
  .pt-slide__titulo { margin: .55rem 0 .4rem; font-size: 1.55rem; }
  .pt-slide__lead { margin-bottom: .9rem; font-size: .92rem; }
  .pt-boton { height: 44px; padding: 0 1.2rem; font-size: .9rem; }
  /* Los banners llevan el producto a la derecha: en móvil, que es más alto que
     ancho, el recorte se desplaza hacia allí para que se vea. */
  .pt-slide:not(.pt-slide--defecto) .pt-slide__img img { object-position: 82% center; }
  .pt-pasos { grid-template-columns: 1fr; }
  .pt-cabeza { align-items: flex-start; flex-direction: column; gap: .5rem; }
  .pt-cabeza--centro { align-items: center; }
  /* Escaparates en móvil: fila deslizable que deja asomar la siguiente tarjeta. */
  .pt-bloque__fila {
    display: grid; grid-auto-flow: column; grid-template-columns: none; grid-auto-columns: 44%;
    overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none;
    margin-inline: calc(-1 * clamp(1rem, 4vw, 2rem)); padding: 4px clamp(1rem, 4vw, 2rem) 10px;
    gap: .75rem;
  }
  .pt-bloque__fila::-webkit-scrollbar { display: none; }
  .pt-bloque__fila > .gc-carril__item { scroll-snap-align: start; }
  .pt-bloque__fila > .gc-carril__item:nth-child(n+5) { display: flex; }
  .pt-bloque__cabeza { align-items: center; }
  .pt-ver { height: 36px; padding: 0 .85rem; font-size: .82rem; }
  .pt-ver small { display: none; }
}
@media (max-width: 575.98px) {
  .gc-mini__precio b { font-size: .98rem; }
  .gc-mini__add { width: 36px; height: 36px; }
  .pt-explora .pt-boton { width: 100%; justify-content: center; }
}
@media (prefers-reduced-motion: reduce) {
  .pt-slide, .pt-slide.is-activa, .pt-slide__img img, .pt-slide.is-activa .pt-slide__img img,
  .pt-slide__texto > *, .pt-slider__punto span { transition: none !important; transform: none !important; }
  .pt-slide__texto > * { opacity: 1; }
  .gc-mini, .gc-mini__img, .gc-mini__add { transition: none; }
  .gc-mini:hover, .gc-mini:hover .gc-mini__img { transform: none; }
}
