/* ============================================================
   CAROUSEL — public/css/carousel.css
   Incluir en el layout: <link rel="stylesheet" href="{{ asset('css/carousel.css') }}">
   ============================================================ */

:root { --crs-accent: #e8b84b; }

.crs-wrapper {
    position: relative;
    width: 100%;
    height: var(--crs-height, 520px);
    overflow: hidden;
    background: #111;
    user-select: none;
}
.crs-track { position: relative; width: 100%; height: 100%; }

/* Slide base */
.crs-slide {
    position: absolute; inset: 0;
    opacity: 0; pointer-events: none; z-index: 1;
    transition: opacity .75s ease, transform .75s ease, filter .75s ease;
    will-change: opacity, transform, filter;
}
.crs-slide.is-active { opacity: 1; pointer-events: auto; z-index: 2; }
.crs-slide.is-prev   { z-index: 1; }

.crs-bg {
    position: absolute; inset: 0;
    background-size: cover; background-position: center;
    transition: transform .75s ease;
}
.crs-overlay {
    position: absolute; inset: 0; z-index: 1;
    background: linear-gradient(to bottom, rgba(0,0,0,.05) 0%, rgba(0,0,0,.45) 55%, rgba(0,0,0,.72) 100%);
}

/* EFECTOS */
.crs-track[data-effect="fade"] .crs-slide           { opacity: 0; transform: none; filter: none; }
.crs-track[data-effect="fade"] .crs-slide.is-active { opacity: 1; }

.crs-track[data-effect="slide"] .crs-slide           { opacity: 1; transform: translateX(100%); }
.crs-track[data-effect="slide"] .crs-slide.is-active { transform: translateX(0); }
.crs-track[data-effect="slide"] .crs-slide.is-prev   { transform: translateX(-100%); opacity: 1; }

.crs-track[data-effect="zoom"] .crs-slide            { opacity: 0; transform: scale(1.12); }
.crs-track[data-effect="zoom"] .crs-slide.is-active  { opacity: 1; transform: scale(1); }
.crs-track[data-effect="zoom"] .crs-slide.is-prev    { opacity: 0; transform: scale(.9); }
.crs-track[data-effect="zoom"] .crs-slide.is-active .crs-bg { transform: scale(1.06); }

.crs-track[data-effect="flip"]                       { perspective: 1400px; }
.crs-track[data-effect="flip"] .crs-slide            { opacity: 0; transform: rotateY(80deg); transform-origin: center; }
.crs-track[data-effect="flip"] .crs-slide.is-active  { opacity: 1; transform: rotateY(0deg); }
.crs-track[data-effect="flip"] .crs-slide.is-prev    { opacity: 0; transform: rotateY(-80deg); }

.crs-track[data-effect="blur"] .crs-slide            { opacity: 0; filter: blur(20px); transform: scale(1.05); }
.crs-track[data-effect="blur"] .crs-slide.is-active  { opacity: 1; filter: blur(0); transform: scale(1); }
.crs-track[data-effect="blur"] .crs-slide.is-prev    { opacity: 0; filter: blur(20px); transform: scale(.97); }

/* Contenido */
.crs-content { position: absolute; z-index: 3; bottom: 14%; padding: 0 2.5rem; max-width: 700px; color: #fff; }
.pos-left    { left: 5%; text-align: left; }
.pos-center  { left: 50%; transform: translateX(-50%); text-align: center; }
.pos-right   { right: 5%; text-align: right; }

.crs-title {
    font-size: clamp(1.6rem, 4vw, 3rem); font-weight: 800; line-height: 1.15;
    margin: 0 0 .5rem; text-shadow: 0 2px 20px rgba(0,0,0,.55);
}
.crs-sub {
    font-size: clamp(.9rem, 1.8vw, 1.2rem); opacity: .9;
    margin: 0 0 1.4rem; text-shadow: 0 1px 8px rgba(0,0,0,.4);
}
.crs-btn {
    display: inline-block; padding: .6rem 2rem;
    background: var(--crs-accent); color: #111;
    font-weight: 700; border-radius: 50px; text-decoration: none;
    box-shadow: 0 4px 20px rgba(232,184,75,.4);
    transition: background .2s, transform .2s;
}
.crs-btn:hover { background: #fff; transform: translateY(-2px); }

/* Flechas */
.crs-arrow {
    position: absolute; top: 50%; transform: translateY(-50%); z-index: 10;
    width: 42px; height: 42px; display: flex; align-items: center; justify-content: center;
    background: rgba(255,255,255,.15); backdrop-filter: blur(8px);
    border: 1px solid rgba(255,255,255,.2); border-radius: 50%;
    color: #fff; cursor: pointer;
    transition: background .2s, transform .2s;
}
.crs-arrow:hover { background: rgba(255,255,255,.28); transform: translateY(-50%) scale(1.1); }
.crs-arrow--prev { left: 16px; }
.crs-arrow--next { right: 16px; }

/* Dots */
.crs-dots {
    position: absolute; bottom: 18px; left: 50%; transform: translateX(-50%);
    z-index: 10; display: flex; gap: 8px; align-items: center;
}
.crs-dot {
    width: 10px; height: 10px; border-radius: 50%;
    border: 2px solid rgba(255,255,255,.65); background: transparent;
    cursor: pointer; padding: 0;
    transition: background .25s, border-color .25s, width .3s, border-radius .3s;
}
.crs-dot.is-active {
    background: var(--crs-accent); border-color: var(--crs-accent);
    width: 28px; border-radius: 5px;
}

/* Progreso */
.crs-progress-bar  { position: absolute; bottom: 0; left: 0; right: 0; height: 3px; background: rgba(255,255,255,.18); z-index: 10; }
.crs-progress-fill { height: 100%; width: 0%; background: var(--crs-accent); transition: width linear; }
.crs-progress-fill.is-running { width: 100%; }

/* Badge */
.crs-badge {
    position: absolute; top: 12px; right: 14px; z-index: 10;
    font-size: .6rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
    color: rgba(255,255,255,.55); background: rgba(0,0,0,.28); backdrop-filter: blur(4px);
    padding: 3px 10px; border-radius: 20px; border: 1px solid rgba(255,255,255,.12);
}

@media(max-width: 600px) {
    .crs-arrow   { display: none; }
    .crs-content { bottom: 10%; padding: 0 1.5rem; }
}
