/* ═══════════════════════════════════════════════
   Ornix24 Carousel Article — CSS
   ═══════════════════════════════════════════════ */

.elementor-widget-ornix24_carousel_article { width: 100%; }

.ornix24-ca-wrapper {
    --ornix24-ca-slides : 3;
    --ornix24-ca-gap    : 16px;
    --ornix24-ca-aspect : 4/3;
    position   : relative;
    width      : 100%;
    box-sizing : border-box;
    user-select: none;
}

/* ── Layout sides (défaut) ── */
.ornix24-ca-wrapper[data-arrows-pos="sides"] {
    display               : grid;
    grid-template-columns : auto 1fr auto;
    align-items           : center;
    gap                   : 0 12px;
}
.ornix24-ca-wrapper[data-arrows-pos="sides"] .ornix24-ca-track-wrapper { grid-column: 2; }
.ornix24-ca-wrapper[data-arrows-pos="sides"] .ornix24-ca-prev          { grid-column: 1; }
.ornix24-ca-wrapper[data-arrows-pos="sides"] .ornix24-ca-next          { grid-column: 3; }
.ornix24-ca-wrapper[data-arrows-pos="sides"] .ornix24-ca-dots,
.ornix24-ca-wrapper[data-arrows-pos="sides"] .ornix24-ca-nav-bar       { grid-column: 1 / -1; }

/* ── Layout overlay ── */
.ornix24-ca-wrapper[data-arrows-pos="overlay"] .ornix24-ca-prev,
.ornix24-ca-wrapper[data-arrows-pos="overlay"] .ornix24-ca-next {
    position  : absolute;
    top       : 50%;
    transform : translateY(-50%);
    z-index   : 10;
}
.ornix24-ca-wrapper[data-arrows-pos="overlay"] .ornix24-ca-prev { left: 12px; }
.ornix24-ca-wrapper[data-arrows-pos="overlay"] .ornix24-ca-next { right: 12px; }

/* ── Track ── */
.ornix24-ca-track-wrapper { overflow: hidden; width: 100%; min-width: 0; }

.ornix24-ca-track {
    display    : flex;
    gap        : var(--ornix24-ca-gap);
    transition : transform 0.5s ease;
    will-change: transform;
    position   : relative;
    min-height : 120px;
}
.ornix24-ca-track.no-transition { transition: none; }

/* ── Loading ── */
.ornix24-ca-loading {
    position: absolute; inset: 0;
    display: flex; align-items: center; justify-content: center; min-height: 120px;
}
.ornix24-ca-loading span {
    width: 32px; height: 32px;
    border: 3px solid rgba(0,0,0,0.1); border-top-color: #333;
    border-radius: 50%;
    animation: ornix24-ca-spin .7s linear infinite;
}
@keyframes ornix24-ca-spin { to { transform: rotate(360deg); } }
.ornix24-ca-track.is-loaded .ornix24-ca-loading { display: none; }

/* ── Slide ── */
.ornix24-ca-slide {
    flex       : 0 0 calc( (100% - (var(--ornix24-ca-slides) - 1) * var(--ornix24-ca-gap)) / var(--ornix24-ca-slides) );
    min-width  : 0;
    box-sizing : border-box;
    position   : relative;
}
.ornix24-ca-slide--below { display: flex; flex-direction: column; }
.ornix24-ca-slide-link   { display: block; width: 100%; text-decoration: none; }

/* ── Tile inner ── */
.ornix24-ca-tile-inner {
    position     : relative;
    width        : 100%;
    aspect-ratio : var(--ornix24-ca-aspect, 4/3);
    overflow     : hidden;
    background   : transparent;
    display      : block;
}

/* ── Images ── */
.ornix24-ca-main-img,
.ornix24-ca-slide-img {
    position: absolute; inset: 0;
    width: 100%; height: 100% !important;
    object-fit: cover; object-position: center center;
    display: block;
    transform : scale(1.01);
    opacity   : 0;
    transition: transform 0.1s linear;
}
.ornix24-ca-main-img  { z-index: 1; }
.ornix24-ca-slide-img { z-index: 2; }

.ornix24-ca-main-img.is-active,
.ornix24-ca-slide-img.is-active {
    transform  : scale(1);
    opacity    : 1;
    transition : transform 0s linear;
}
.ornix24-ca-wrapper[data-dezoom="yes"] .ornix24-ca-slide:hover .ornix24-ca-main-img.is-active,
.ornix24-ca-wrapper[data-dezoom="yes"] .ornix24-ca-slide:hover .ornix24-ca-slide-img.is-active {
    transition: transform 0.7s linear;
}

.elementor-editor-active .ornix24-ca-main-img {
    opacity: 1 !important; transform: scale(1) !important; transition: none !important;
}

@media (prefers-reduced-motion: reduce) {
    .ornix24-ca-main-img, .ornix24-ca-slide-img       { transition: transform 0.1s linear !important; }
    .ornix24-ca-main-img.is-active,
    .ornix24-ca-slide-img.is-active                   { transition: transform 0s linear !important; }
    .ornix24-ca-wrapper[data-dezoom="yes"] .ornix24-ca-slide:hover .ornix24-ca-main-img.is-active,
    .ornix24-ca-wrapper[data-dezoom="yes"] .ornix24-ca-slide:hover .ornix24-ca-slide-img.is-active {
        transition: transform 0.7s linear !important;
    }
}

/* ── Overlay ── */
.ornix24-ca-overlay {
    position: absolute; inset: 0;
    background: transparent; transition: background .3s ease;
    z-index: 3; pointer-events: none;
}

/* ── Caption overlay ── */
.ornix24-ca-caption--overlay {
    position: absolute; left: 0; right: 0; bottom: 0;
    z-index: 4; display: flex; flex-direction: column;
    pointer-events: none; padding: 8px 14px;
    background: linear-gradient(transparent, rgba(0,0,0,.6));
    opacity: 0; transform: translateY(6px);
    transition: opacity .3s ease, transform .3s ease;
    box-sizing: border-box;
}
.ornix24-ca-slide:hover .ornix24-ca-caption--overlay { opacity: 1; transform: translateY(0); }
.ornix24-ca-wrapper[data-caption-pos="top"] .ornix24-ca-caption--overlay {
    bottom: auto; top: 0;
    background: linear-gradient(rgba(0,0,0,.55), transparent);
    transform: translateY(-6px);
}

/* ── Caption below ── */
.ornix24-ca-caption--below {
    display: flex; flex-direction: column;
    width: 100%; box-sizing: border-box;
    padding: 8px 4px 0; background: none; pointer-events: none;
}

/* ── Légende & sous-titre ── */
.ornix24-ca-legend  { display: block; font-weight: 600; font-size: 0.95rem; color: #fff; line-height: 1.3; }
.ornix24-ca-subtitle{ display: block; font-size: 0.8rem; color: rgba(255,255,255,.75); margin-top: 3px; }

/* ── Flèches ── */
.ornix24-ca-arrow {
    display: inline-flex; align-items: center; justify-content: center;
    width: 44px; height: 44px; flex-shrink: 0;
    border: none; border-radius: 50%;
    background: rgba(0,0,0,0.5); color: #fff;
    cursor: pointer; font-size: 20px;
    transition: background .2s; z-index: 5;
}
.ornix24-ca-arrow:hover    { background: rgba(0,0,0,0.8); }
.ornix24-ca-arrow:disabled { opacity: .35; cursor: not-allowed; }

/* ── Nav bar (position bottom) ── */
.ornix24-ca-nav-bar {
    display: flex; align-items: center; justify-content: center;
    gap: 12px; margin-top: 16px;
}
.ornix24-ca-nav-bar .ornix24-ca-dots { margin-top: 0; }

/* ── Points ── */
.ornix24-ca-dots {
    display: flex; align-items: center; justify-content: center;
    gap: 6px; margin-top: 16px; flex-wrap: wrap;
}
.ornix24-ca-dot {
    width: 8px; height: 8px; border-radius: 50%;
    background: rgba(0,0,0,0.25);
    cursor: pointer; border: none; padding: 0;
    transition: background .2s, width .2s, height .2s;
    flex-shrink: 0;
}
.ornix24-ca-dot.is-active { background: #333; width: 10px; height: 10px; }

/* ── No thumb ── */
.ornix24-ca-no-thumb { position: absolute; inset: 0; background: #1e1e1e; }
