/**
 * Zoo Animal Cards — RTL (Right-to-Left) Styles
 *
 * Loaded automatically by Plugin.php when is_rtl() returns true.
 * Overrides all directional CSS properties from frontend.css:
 *   left → right, right → left
 *   padding-left → padding-right, padding-right → padding-left
 *   margin-left → margin-right, margin-right → margin-left
 *   border-left → border-right, border-right → border-left
 *   text-align: left → right, background-position flipped
 *   flex-direction: row → row-reverse where needed
 *
 * The [dir="rtl"] selector matches what WordPress sets on <html> for RTL
 * languages. The body.rtl class is kept as a synonym for backward compatibility.
 *
 * @package ZooAnimalCards
 * @since   1.1.0
 */

/* =============================================================================
   GLOBAL DIRECTION
   ============================================================================= */

[dir="rtl"] .zoo-animal-archive,
[dir="rtl"] .zoo-related-animals,
[dir="rtl"] .zoo-identity-card-section,
[dir="rtl"] .zoo-did-you-know,
body.rtl .zoo-animal-archive,
body.rtl .zoo-related-animals,
body.rtl .zoo-identity-card-section,
body.rtl .zoo-did-you-know {
    direction: rtl;
}

/* =============================================================================
   ARCHIVE CLIPART — mirror absolute positions
   ============================================================================= */

[dir="rtl"] .zoo-archive-clipart--top-left,
body.rtl .zoo-archive-clipart--top-left {
    left: auto;
    right: 69px;
}

[dir="rtl"] .zoo-archive-clipart--top-right,
body.rtl .zoo-archive-clipart--top-right {
    right: auto;
    left: 111px;
}

[dir="rtl"] .zoo-archive-clipart--bottom-right,
body.rtl .zoo-archive-clipart--bottom-right {
    right: auto;
    left: 31px;
}

[dir="rtl"] .zoo-archive-clipart--bottom-left,
body.rtl .zoo-archive-clipart--bottom-left {
    left: auto;
    right: 149px;
}

@media (max-width: 768px) {

    [dir="rtl"] .zoo-archive-clipart--top-left,
    body.rtl .zoo-archive-clipart--top-left {
        left: auto;
        right: 25px;
    }

    [dir="rtl"] .zoo-archive-clipart--top-right,
    body.rtl .zoo-archive-clipart--top-right {
        right: auto;
        left: 40px;
    }

    [dir="rtl"] .zoo-archive-clipart--bottom-right,
    body.rtl .zoo-archive-clipart--bottom-right {
        right: auto;
        left: 20px;
    }

    [dir="rtl"] .zoo-archive-clipart--bottom-left,
    body.rtl .zoo-archive-clipart--bottom-left {
        left: auto;
        right: 40px;
    }
}

@media (max-width: 480px) {

    [dir="rtl"] .zoo-archive-clipart--top-left,
    body.rtl .zoo-archive-clipart--top-left {
        left: auto;
        right: 15px;
    }

    [dir="rtl"] .zoo-archive-clipart--top-right,
    body.rtl .zoo-archive-clipart--top-right {
        right: auto;
        left: 15px;
    }

    [dir="rtl"] .zoo-archive-clipart--bottom-right,
    body.rtl .zoo-archive-clipart--bottom-right {
        right: auto;
        left: 10px;
    }

    [dir="rtl"] .zoo-archive-clipart--bottom-left,
    body.rtl .zoo-archive-clipart--bottom-left {
        left: auto;
        right: 0;
    }
}

/* =============================================================================
   IDENTITY CARD SECTION
   ============================================================================= */

/* Background decoration — mirror from right to left */
[dir="rtl"] .zoo-identity-bg-decoration,
body.rtl .zoo-identity-bg-decoration {
    right: auto;
    left: 0;
    transform: scaleX(-1);
    /* عكس الصورة أفقياً */
}

/* Card container — swap padding-left/right and mirror background image */
[dir="rtl"] .zoo-identity-card-container,
body.rtl .zoo-identity-card-container {
    padding: 30px 30px 30px 8px;
    background-image: none !important;
    /* Remove original non-flipped background */
}

[dir="rtl"] .zoo-identity-card-container::before,
body.rtl .zoo-identity-card-container::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: url(../images/bg-carte-container.svg);
    background-position: bottom left;
    background-repeat: no-repeat;
    background-size: cover;
    transform: scaleX(-1);
    z-index: -1;
    pointer-events: none;
}

/* Identity details — align start to right in RTL */
[dir="rtl"] .zoo-identity-details,
body.rtl .zoo-identity-details {
    text-align: start;
}

/* Identity row — direction + flex reverse */
[dir="rtl"] .zoo-identity-row,
body.rtl .zoo-identity-row {
    direction: rtl;
}

[dir="rtl"] .zoo-identity-row-content,
body.rtl .zoo-identity-row-content {
    flex-direction: row-reverse;
}

/* Map column — swap padding-right to padding-left */
[dir="rtl"] .zoo-identity-map-column,
body.rtl .zoo-identity-map-column {
    padding-right: 0;
    padding-left: 1px;
}

/* "Présent" badge — swap border-right/left and icon position */
[dir="rtl"] .zoo-identity-present-image,
body.rtl .zoo-identity-present-image {
    border-right: 0.4px solid #b6b0aa !important;
    border-left: none !important;
}

[dir="rtl"] .zoo-present-badge-icon,
body.rtl .zoo-present-badge-icon {
    left: auto;
    right: 0;
    box-shadow: 3px 3px 0px rgba(0, 0, 0, 0.2);
    transform: matrix(1, 0, 0, 1, 0, 0);
}

/* UICN box — swap border sides */
[dir="rtl"] .zoo-uicn-box,
body.rtl .zoo-uicn-box {
    border-left: none;
    border-right: 6px solid;
}

/* Physical Details Section — RTL */
[dir="rtl"] .zoo-physical-grid,
body.rtl .zoo-physical-grid {
    text-align: start;
}

[dir="rtl"] .zoo-physical-item,
body.rtl .zoo-physical-item {
    text-align: start;
}

@media (max-width: 480px) {

    [dir="rtl"] .zoo-physical-item,
    body.rtl .zoo-physical-item {
        text-align: center;
    }
}

[dir="rtl"] .zoo-uicn-content,
body.rtl .zoo-uicn-content {
    flex-direction: row-reverse;
}

/* =============================================================================
   DID YOU KNOW SECTION
   ============================================================================= */

/* Title container — align to right (start) in RTL */
[dir="rtl"] .zoo-dyk-title-container,
body.rtl .zoo-dyk-title-container {
    justify-content: flex-start;
}

/* "Le saviez-vous?" rotated title — mirror rotation and background only */
[dir="rtl"] .zoo-dyk-title,
body.rtl .zoo-dyk-title {
    transform: rotate(7.63deg);
    background-image: none !important;
    /* Remove original non-flipped backdrop */
}

[dir="rtl"] .zoo-dyk-title::before,
body.rtl .zoo-dyk-title::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: url(../images/bg-title-saviez-vous.svg);
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
    transform: scaleX(-1);
    z-index: -1;
    pointer-events: none;
}

/* Animal image at bottom — mirror to right side */
[dir="rtl"] .zoo-dyk-animal-image-bottom img,
body.rtl .zoo-dyk-animal-image-bottom img {
    margin-right: 0;
    margin-left: 0;
}

/* =============================================================================
   RELATED ANIMALS CAROUSEL
   ============================================================================= */

/* Clipart — mirror positions */
[dir="rtl"] .zoo-related-clipart--top-left,
body.rtl .zoo-related-clipart--top-left {
    left: auto;
    right: clamp(16px, 9.6vw, 166px);
}

[dir="rtl"] .zoo-related-clipart--bottom-right,
body.rtl .zoo-related-clipart--bottom-right {
    right: auto;
    left: clamp(15px, 2.5vw, 35px);
}

/* Swiper navigation — swap left/right */
[dir="rtl"] .zoo-related-animals-carousel .swiper-button-next,
body.rtl .zoo-related-animals-carousel .swiper-button-next,
[dir="rtl"] .zoo-animals-carousel .swiper-button-next,
body.rtl .zoo-animals-carousel .swiper-button-next {
    left: 10px;
    right: auto;
}

[dir="rtl"] .zoo-related-animals-carousel .swiper-button-prev,
body.rtl .zoo-related-animals-carousel .swiper-button-prev,
[dir="rtl"] .zoo-animals-carousel .swiper-button-prev,
body.rtl .zoo-animals-carousel .swiper-button-prev {
    right: 10px;
    left: auto;
}

/* View all button: margin-left → margin-right */
[dir="rtl"] .zoo-view-all-text,
body.rtl .zoo-view-all-text {
    margin-left: 0;
    margin-right: auto;
}

/* =============================================================================
   ANIMAL CARDS (Archive Grid)
   ============================================================================= */

/* Card link — absolute inner element */
[dir="rtl"] .zoo-animal-card-link,
body.rtl .zoo-animal-card-link {
    left: auto;
    right: 0;
}

/* Card image absolute */
[dir="rtl"] .zoo-animal-card-image,
body.rtl .zoo-animal-card-image {
    left: auto;
    right: 0;
}

/* Card overlay */
[dir="rtl"] .zoo-related-animal-overlay,
body.rtl .zoo-related-animal-overlay {
    left: auto;
    right: 0;
}

/* Card content — swap left positioning */
[dir="rtl"] .zoo-related-animal-content,
body.rtl .zoo-related-animal-content {
    left: auto;
    right: 0;
}

/* Card meta row alignment */
[dir="rtl"] .zoo-animal-card-meta,
body.rtl .zoo-animal-card-meta {
    flex-direction: row-reverse;
}

/* Continent badge inside card */
[dir="rtl"] .zoo-animal-card-continent,
body.rtl .zoo-animal-card-continent {
    flex-direction: row-reverse;
    margin-right: 0;
    margin-left: 15px;
}

/* Card link text */
[dir="rtl"] .zoo-animal-card-link-text,
body.rtl .zoo-animal-card-link-text {
    flex-direction: row-reverse;
}

/* Animals grid title: text-align start (right in RTL) */
[dir="rtl"] .zoo-animals-grid-title,
body.rtl .zoo-animals-grid-title {
    text-align: start;
}



/* =============================================================================
   SEARCH FIELD
   ============================================================================= */

/* Swap border from left to right */
[dir="rtl"] .zoo-search-input,
body.rtl .zoo-search-input {
    text-align: right;
    border-left: none !important;
    border-right: 2px solid #d9d9d9 !important;
    direction: rtl;
    border: 0px;
}

[dir="rtl"] .zoo-search-input::placeholder,
body.rtl .zoo-search-input::placeholder {
    text-align: right;
}

[dir="rtl"] .zoo-search-input:not(:placeholder-shown),
body.rtl .zoo-search-input:not(:placeholder-shown) {
    text-align: right;
}

/* On mobile the border is removed — ensure RTL consistency */
@media (max-width: 768px) {

    [dir="rtl"] .zoo-search-input,
    body.rtl .zoo-search-input {
        text-align: right;
        padding: 0 0 0 15px;
        border-right: none !important;
    }

    [dir="rtl"] .zoo-search-input::placeholder,
    body.rtl .zoo-search-input::placeholder {
        text-align: right;
    }

    /* Filter arrow — mirror to left side on mobile */
    [dir="rtl"] .zoo-filter-select,
    body.rtl .zoo-filter-select {
        background-position: left 20px center;
        padding: 0 20px 0 50px;
        direction: rtl;
    }
}

/* =============================================================================
   FILTER SELECT (DESKTOP)
   ============================================================================= */

[dir="rtl"] .zoo-filter-select,
body.rtl .zoo-filter-select {
    /* Flip padding: was 0 80px 0 20px */
    padding: 0 20px 0 80px;
    /* Mirror separator line and arrow positions */
    background-position: calc(0% + 56px) center, calc(0% + 28px) center;
    direction: rtl;
}

/* Select2 arrow — flip border from left to right */
[dir="rtl"] .zoo-filter-wrapper .select2-selection__arrow,
body.rtl .zoo-filter-wrapper .select2-selection__arrow {
    margin-left: 0;
    margin-right: auto;
    border-left: none;
    border-right: 2px solid #d9d9d9;
}

/* Select2 single — swap padding-left to padding-right */
[dir="rtl"] .zoo-filter-wrapper .select2-container--default .select2-selection--single,
body.rtl .zoo-filter-wrapper .select2-container--default .select2-selection--single {
    padding-left: 0;
    padding-right: 20px;
}

/* Select2 checkmark — flip from right to left */
[dir="rtl"] .select2-container--default .select2-results__option[aria-selected=true]::after,
body.rtl .select2-container--default .select2-results__option[aria-selected=true]::after {
    right: auto;
    left: 20px;
}

/* =============================================================================
   CATEGORY NAVIGATION
   ============================================================================= */

/* Cat image always on the start side — in RTL it starts from the right */
[dir="rtl"] .zoo-category-nav-btn,
body.rtl .zoo-category-nav-btn {
    flex-direction: row-reverse;
}

/* Absolute background layer */
[dir="rtl"] .zoo-cat-nav-bg,
body.rtl .zoo-cat-nav-bg,
[dir="rtl"] .zoo-cat-img-overlay,
body.rtl .zoo-cat-img-overlay {
    left: auto;
    right: 0;
}

/* =============================================================================
   HABITAT ICON
   ============================================================================= */

[dir="rtl"] .zoo-habitat-icon,
body.rtl .zoo-habitat-icon {
    right: auto;
    left: 1rem;
}

/* =============================================================================
   PAGINATION
   ============================================================================= */

[dir="rtl"] .pagination,
body.rtl .pagination {
    flex-direction: row-reverse;
}

/* =============================================================================
   UTILITY CLASS OVERRIDES
   ============================================================================= */

/* Reverse text-left/right utilities for RTL */
[dir="rtl"] .text-left,
body.rtl .text-left {
    text-align: right;
}

[dir="rtl"] .text-right,
body.rtl .text-right {
    text-align: left;
}

/* =============================================================================
   "WILD PULSE" PREMIUM SCROLL — RTL Overrides
   ============================================================================= */

[dir="rtl"] .zoo-skeleton-animate::after,
body.rtl .zoo-skeleton-animate::after {
    transform: translateX(100%);
    animation: zoo-shimmer-rtl 2s infinite;
}

[dir="rtl"] .zoo-load-more-text,
body.rtl .zoo-load-more-text {
    letter-spacing: 0;
    font-size: 15px;
}

@keyframes zoo-shimmer-rtl {
    0% {
        transform: translateX(100%);
    }

    100% {
        transform: translateX(-100%);
    }
}