/* ============================================================
   ACERINA AMADOR — Slider / carousel component
   Crossfade, accessible (carousel semantics), reduced-motion safe.
   Variants: .slider--hero (full-bleed cover) · .slider--work (framed)
   ============================================================ */

.slider {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}
.slider__viewport { position: absolute; inset: 0; z-index: 0; }

.slide {
  position: absolute;
  inset: 0;
  margin: 0;
  opacity: 0;
  visibility: hidden;
  transition: opacity var(--dur-slow) var(--ease-out-quint), visibility var(--dur-slow);
}
.slide.is-active { opacity: 1; visibility: visible; }
.slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 40%;
}

/* Gentle ken-burns on the active slide (motion-safe: killed by reduce query) */
.slider[data-kenburns] .slide.is-active img {
  animation: kenburns 9s var(--ease-out-quint) forwards;
}
@keyframes kenburns {
  from { transform: scale(1.04); }
  to   { transform: scale(1.12); }
}

/* ---------------- Controls ---------------- */
.slider__ui {
  position: absolute;
  z-index: 3;
  inset: auto 0 0 0;
  display: flex;
  align-items: center;
  gap: var(--space-md);
  pointer-events: none;           /* only children catch events */
}
.slider__ui > * { pointer-events: auto; }

.slider__arrow {
  display: grid;
  place-items: center;
  width: 3rem; height: 3rem;
  border-radius: var(--r-pill);
  border: 1px solid var(--hairline);
  background: oklch(0.105 0.015 25 / 0.55);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  color: var(--bone);
  transition: background var(--dur-ui) var(--ease-out-quint),
              border-color var(--dur-ui) var(--ease-out-quint),
              color var(--dur-ui) var(--ease-out-quint),
              transform var(--dur-ui) var(--ease-out-quint);
}
.slider__arrow:hover {
  background: var(--vermelho);
  border-color: var(--vermelho);
  color: var(--vermelho-ink);
  transform: translateY(-2px);
}
.slider__arrow svg { width: 1.05rem; height: 1.05rem; }
.slider__arrow[disabled] { opacity: 0.35; cursor: not-allowed; }

.slider__dots { display: flex; align-items: center; gap: 0.55rem; }
.slider__dot {
  width: 9px; height: 9px;
  border-radius: var(--r-pill);
  background: oklch(1 0 0 / 0.32);
  transition: background var(--dur-ui) var(--ease-out-quint),
              width var(--dur-ui) var(--ease-out-quint);
}
.slider__dot:hover { background: oklch(1 0 0 / 0.6); }
.slider__dot[aria-selected="true"] { background: var(--vermelho); width: 24px; }

.slider__counter {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.05rem;
  letter-spacing: 0.02em;
  color: var(--bone-dim);
  font-variant-numeric: tabular-nums;
}
.slider__counter .cur { color: var(--vermelho-bright); }

/* ============================================================
   Variant: HERO — full-bleed, dark treatment for text legibility,
   discreet dot rail bottom-left. No arrows (autoplay + dots).
   ============================================================ */
.slider--hero {
  position: absolute;
  inset: 0;
  /* isolation:auto deja que la UI (z3) participe del contexto del héroe y
     se pinte por encima del texto (z2); la imagen (z0) sigue debajo. */
  isolation: auto;
}
.slider--hero .slide img {
  object-position: 50% 38%;
  filter: grayscale(0.28) contrast(1.06) brightness(0.72) saturate(0.92);
}
/* Discreet vertical dot rail on the right edge, centred — clear of the
   name / tagline (bottom-left) and the scroll cue (bottom-right). */
.slider--hero .slider__ui {
  flex-direction: column;
  justify-content: center;
  inset: 0 clamp(1rem, 2.4vw, 2.1rem) 0 auto;
  width: auto;
}
.slider--hero .slider__dots { flex-direction: column; gap: 0.7rem; }
.slider--hero .slider__dot[aria-selected="true"] { width: 9px; height: 24px; }
/* En móvil se mantiene el raíl vertical derecho (centrado): es la única zona
   siempre libre — la fila horizontal inferior chocaba con la cita del héroe. */
@media (max-width: 620px) {
  .slider--hero .slider__ui { inset: 0 0.8rem 0 auto; }
}

/* ============================================================
   Variant: WORK — framed inside a work block; arrows + counter + dots
   Honors her real color (near full colour, slight lift).
   ============================================================ */
.slider--work { width: 100%; height: 100%; }
.slider--work .slide img {
  object-position: 50% 42%;
  filter: contrast(1.05) saturate(1.03) brightness(0.97);
  transition: filter var(--dur-slow) var(--ease-out-quint);
}
.slider--work .slider__ui {
  justify-content: space-between;
  padding: clamp(0.7rem, 1.5vw, 1.1rem);
  background: linear-gradient(0deg, oklch(0.105 0.015 25 / 0.6) 0%, transparent 100%);
}
.slider--work .slider__nav { display: flex; align-items: center; gap: 0.6rem; }
.slider--work .slider__meta {
  display: flex; align-items: center; gap: var(--space-md);
  margin-left: auto;
}

/* Focus ring lives on the interactive controls, not the frame */
.slider:focus { outline: none; }

@media (max-width: 620px) {
  .slider__arrow { width: 2.6rem; height: 2.6rem; }
}
