body {
    font-family: 'Plus Jakarta Sans', sans-serif;
    background-color: #fbfbfb;
    color: #111111;
}

.premium-font {
    font-family: 'Plus Jakarta Sans', sans-serif !important;
}

.glow-effect {
    position: relative;
}

.glow-effect::after {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 50% 50%, rgba(59, 130, 246, 0.05), transparent 60%);
    pointer-events: none;
}

@keyframes marquee {
    0% { transform: translateX(0%); }
    100% { transform: translateX(-50%); }
}

.animate-marquee-smooth {
    display: flex;
    width: max-content;
    animation: marquee 40s linear infinite;
}

.animate-marquee-smooth:hover {
    animation-play-state: paused;
}

/* Header con sombra al hacer scroll (activado por js/main.js) */
#site-header.header-scrolled {
    box-shadow: 0 4px 20px rgba(17, 17, 17, 0.06);
}

/* Fondo animado (textura poligonal en movimiento) — sección "El Proceso de Fábrica" */
.proceso-anim-bg {
    position: absolute;
    inset: 0;
    background: #2980b9 url('../img/proceso-bg.png') repeat 0 0;
    background-size: 500px 500px;
    animation: proceso-scroll 14s linear infinite;
}

@keyframes proceso-scroll {
    from { background-position: 0 0; }
    to   { background-position: 500px 0; }
}

@media (prefers-reduced-motion: reduce) {
    .proceso-anim-bg { animation: none; }
}

/* Mensajes de estado del formulario (éxito / error) */
.form-status {
    margin-top: 0.25rem;
    padding: 0.75rem 1rem;
    border-radius: 0.75rem;
    font-size: 0.8rem;
    line-height: 1.4;
    font-weight: 500;
    border: 1px solid transparent;
}

.form-status--success {
    background-color: #ecfdf5;
    color: #047857;
    border-color: #a7f3d0;
}

.form-status--error {
    background-color: #fef2f2;
    color: #b91c1c;
    border-color: #fecaca;
}

/* Wave animada de transición del Hero (inspirada en 03-app-landing-page-wave-animation) */
.waves {
    position: relative;
    min-height: 60px;
}

.wave-parallax > use {
    animation: wave-move-forever 25s cubic-bezier(.55, .5, .45, .5) infinite;
}

.wave-parallax > use:nth-child(1) {
    animation-delay: -2s;
    animation-duration: 9s;
}

.wave-parallax > use:nth-child(2) {
    animation-delay: -3s;
    animation-duration: 12s;
}

.wave-parallax > use:nth-child(3) {
    animation-delay: -4s;
    animation-duration: 16s;
}

.wave-parallax > use:nth-child(4) {
    animation-delay: -5s;
    animation-duration: 22s;
}

@keyframes wave-move-forever {
    0%   { transform: translate3d(-90px, 0, 0); }
    100% { transform: translate3d(85px, 0, 0); }
}

/* Flotación suave para mockups/imágenes destacadas */
.float-anim {
    animation: float-object 6s ease-in-out infinite;
}

@keyframes float-object {
    0%, 100% { transform: translateY(0); }
    50%      { transform: translateY(-16px); }
}

/* Botón volver arriba visible (clase agregada por js/main.js al hacer scroll) */
#back-to-top.is-visible {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
    .animate-marquee-smooth,
    .wave-parallax > use,
    .float-anim {
        animation: none !important;
    }
}
