/* ==========================================================================
   loader.css — Pantalla de carga: ícono (círculo + ondas) y luego el
   wordmark "Refrigia" cayendo debajo. Lo oculta js/loader.js al terminar.
   ========================================================================== */
.loader {
  position: fixed; inset: 0; z-index: 999;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px;
  background: var(--navy);
  transition: opacity .6s var(--ease), visibility .6s var(--ease);
  /* Red de seguridad sin JS: si loader.js no corre (o falla otro script), el loader
     se retira solo. js/loader.js lo saca antes cuando todo funciona. */
  animation: loader-fallback .6s var(--ease) 6s forwards;
}
@keyframes loader-fallback { to { opacity: 0; visibility: hidden; pointer-events: none; } }
.loader.is-done { opacity: 0; visibility: hidden; pointer-events: none; }

.loader__mark { width: 68px; height: 68px; }
.loader__mark svg { width: 100%; height: 100%; overflow: visible; }

.loader__ring { stroke-dasharray: 220; stroke-dashoffset: 220; animation: loader-ring 900ms var(--ease) forwards; }
.loader__dot { opacity: 0; transform-origin: 60px 60px; animation: loader-pop 500ms var(--ease) 650ms forwards; }
.loader__wave { opacity: 0; transform-origin: 60px 60px; animation: loader-pop 500ms var(--ease) forwards; }
.loader__wave--1 { animation-delay: 780ms; }
.loader__wave--2 { animation-delay: 880ms; }
.loader__wave--3 { animation-delay: 980ms; }
@keyframes loader-ring { to { stroke-dashoffset: 0; } }
@keyframes loader-pop { from { opacity: 0; transform: scale(.6); } to { opacity: 1; transform: scale(1); } }

/* Ventana que recorta la caída de la palabra */
.loader__word { overflow: hidden; height: 40px; }
.loader__word span {
  display: block; padding-bottom: 6px; line-height: 1.25; font-size: 26px; font-weight: 800; letter-spacing: -.03em; color: var(--white);
  opacity: 0; transform: translateY(-115%);
  animation: loader-drop 650ms var(--ease-io) 1200ms forwards;
}
@keyframes loader-drop { to { opacity: 1; transform: translateY(0); } }

@media (prefers-reduced-motion: reduce) {
  .loader__ring, .loader__dot, .loader__wave, .loader__word span { animation-duration: 1ms; animation-delay: 0ms; }
}
