/* =====================================================
   ZKR REAL ESTATE — HERO INTERNATIONAL
===================================================== */

.zkr-hero {
    --ivory: #e8e6e0;
    --white: #f5f3ed;
    --black: #0a0a0a;

    width: 100%;

    height: 100vh;
    height: 100svh;

    min-height: 680px;

    position: relative;

    overflow: hidden;

    background: #111;

    color: var(--white);
}


/* =====================================================
   BACKGROUND
===================================================== */

.zkr-hero__background {
    position: absolute;

    inset: 0;

    overflow: hidden;
}


.zkr-hero__slide {
    position: absolute;

    inset: -4%;

    background-position: center;
    background-size: cover;

    opacity: 0;

    transform: scale(1.06);

    transition:
        opacity 1.5s cubic-bezier(.4,0,.2,1),
        transform 8s cubic-bezier(.2,.7,.2,1);
}


.zkr-hero__slide.active {
    opacity: 1;

    transform: scale(1);
}


/* =====================================================
   GRAIN
===================================================== */

.zkr-hero__grain {
    pointer-events: none;

    position: absolute;

    inset: 0;

    z-index: 2;

    opacity: .07;

    background-image:
        url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(https://zkr-realestate.com/wp-content/themes/zkr-realestate/assets/css/%23noise)' opacity='.7'/%3E%3C/svg%3E");
}


/* =====================================================
   CONTENT
===================================================== */

.zkr-hero__content {
    position: absolute;

    left: clamp(25px, 7vw, 135px);

    top: 50%;

    transform: translateY(-48%);

    z-index: 5;

    max-width: 950px;
}


.zkr-eyebrow {
    display: flex;

    align-items: center;

    gap: 14px;

    margin-bottom: 25px;

    text-transform: uppercase;

    letter-spacing: 2.5px;

    font-family:
        Inter,
        Arial,
        sans-serif;

    font-size: 10px;

    font-weight: 500;

    animation: zkrFadeUp .9s .2s both;
}


.zkr-eyebrow__line {
    display: block;

    width: 40px;
    height: 1px;

    background: currentColor;
}


.zkr-title {
    padding: 0;
    margin: 0;

    font-family:
        Didot,
        "Bodoni MT",
        Georgia,
        "Times New Roman",
        serif;

    font-size: clamp(62px, 7.3vw, 140px);

    line-height: .82;

    letter-spacing: -6px;

    font-weight: 400;

    animation: zkrFadeUp 1.1s .35s both;
}


.zkr-title em {
    font-weight: 400;

    font-style: italic;
}


.zkr-description {
    margin-top: clamp(30px, 4vh, 55px);

    width: min(500px, 90vw);

    line-height: 1.6;

    font-family:
        Inter,
        Arial,
        sans-serif;

    font-size: clamp(13px, .95vw, 16px);

    opacity: .92;

    animation: zkrFadeUp 1s .55s both;
}


/* =====================================================
   ACTIONS
===================================================== */

.zkr-actions {
    display: flex;

    align-items: center;

    gap: 12px;

    margin-top: 30px;

    animation: zkrFadeUp 1s .7s both;
}


.zkr-btn {
    min-height: 52px;

    padding: 0 23px;

    display: inline-flex;

    align-items: center;

    justify-content: center;

    gap: 35px;

    border-radius: 999px;

    text-decoration: none;

    text-transform: uppercase;

    letter-spacing: 1.3px;

    font-family:
        Inter,
        Arial,
        sans-serif;

    font-size: 10px;

    transition: 180ms ease;
}


.zkr-btn--light {
    background: var(--ivory);

    color: #111;
}


.zkr-btn--light:hover {
    background: #fff;

    transform: translateY(-2px);
}


.zkr-btn--transparent {
    color: #fff;

    border: 1px solid rgba(255,255,255,.4);
}


.zkr-btn--transparent:hover {
    background: rgba(255,255,255,.12);
}


.zkr-btn-arrow {
    font-size: 17px;
}


/* =====================================================
   LOCATION
===================================================== */

.zkr-location {
    position: absolute;

    right: clamp(25px, 5vw, 90px);

    top: 50%;

    transform: translateY(-50%);

    z-index: 6;

    display: flex;

    align-items: center;

    gap: 18px;
}


.zkr-location__number {
    font-family:
        Didot,
        Georgia,
        serif;

    font-size: 13px;

    opacity: .65;
}


.zkr-location__divider {
    width: 45px;
    height: 1px;

    background: rgba(255,255,255,.7);
}


.zkr-location__city {
    font-family:
        Didot,
        Georgia,
        serif;

    font-size: 31px;

    font-style: italic;

    white-space: nowrap;
}


.zkr-location__country {
    margin-top: 4px;

    font-family:
        Inter,
        Arial,
        sans-serif;

    font-size: 9px;

    letter-spacing: 2.3px;

    text-transform: uppercase;

    opacity: .72;
}


/* =====================================================
   PROGRESS
===================================================== */

.zkr-progress {
    position: absolute;

    right: clamp(25px, 5vw, 90px);

    bottom: 105px;

    z-index: 6;

    display: flex;

    gap: 10px;
}


.zkr-progress__item {
    appearance: none;

    cursor: pointer;

    border: none;

    padding: 10px 0;

    width: 40px;

    background: none;
}


.zkr-progress__item > span {
    display: block;

    height: 1px;

    width: 100%;

    background: rgba(255,255,255,.35);

    position: relative;

    overflow: hidden;
}


.zkr-progress__item > span::after {
    content: "";

    position: absolute;

    left: 0;
    top: 0;

    width: 0;
    height: 100%;

    background: #fff;
}


.zkr-progress__item.active > span::after {
    animation: zkrProgress 6s linear forwards;
}


@keyframes zkrProgress {

    from {
        width: 0;
    }

    to {
        width: 100%;
    }

}


/* =====================================================
   DESTINATIONS
===================================================== */

.zkr-destinations {
    height: 55px;

    position: absolute;

    left: 0;
    bottom: 0;

    z-index: 10;

    width: 100%;

    display: flex;

    align-items: center;

    border-top: 1px solid rgba(255,255,255,.3);

    background: rgba(12,12,12,.18);

    backdrop-filter: blur(5px);
}


.zkr-destinations__label {
    height: 100%;

    display: flex;

    align-items: center;

    padding: 0 clamp(25px, 4vw, 70px);

    border-right: 1px solid rgba(255,255,255,.3);

    font-family:
        Inter,
        Arial,
        sans-serif;

    font-size: 8px;

    letter-spacing: 3px;

    flex-shrink: 0;
}


.zkr-destinations__marquee {
    overflow: hidden;

    width: 100%;
}


.zkr-marquee-track {
    display: flex;

    align-items: center;

    width: max-content;

    gap: 28px;

    padding-left: 28px;

    animation: zkrMarquee 35s linear infinite;
}


.zkr-marquee-track span {
    font-family:
        Didot,
        Georgia,
        serif;

    font-size: 14px;

    letter-spacing: .5px;

    white-space: nowrap;
}


.zkr-marquee-track i {
    font-style: normal;

    opacity: .45;

    font-size: 8px;
}


@keyframes zkrMarquee {

    0% {
        transform: translateX(0);
    }

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

}


/* =====================================================
   SCROLL
===================================================== */

.zkr-scroll {
    position: absolute;

    left: clamp(25px, 4vw, 75px);

    bottom: 86px;

    z-index: 6;

    display: flex;

    align-items: center;

    gap: 12px;

    font-family:
        Inter,
        Arial,
        sans-serif;

    font-size: 8px;

    letter-spacing: 2px;
}


.zkr-scroll__line {
    height: 1px;

    width: 60px;

    overflow: hidden;

    background: rgba(255,255,255,.3);
}


.zkr-scroll__line div {
    height: 100%;

    width: 50%;

    background: #fff;

    animation: zkrScroll 1.8s ease-in-out infinite;
}


@keyframes zkrScroll {

    from {
        transform: translateX(-120%);
    }

    to {
        transform: translateX(230%);
    }

}


/* =====================================================
   ENTRANCE
===================================================== */

@keyframes zkrFadeUp {

    from {
        opacity: 0;

        transform: translateY(20px);
    }

    to {
        opacity: 1;

        transform: translateY(0);
    }

}


/* =====================================================
   TABLETTE — V3
===================================================== */

@media (min-width: 768px) and (max-width: 1180px) {

    .zkr-hero {
        height: 100dvh;
        min-height: 700px;
    }


    /* CONTENT */

    .zkr-hero__content {
        left: 48px;
        right: 48px;

        top: 47%;

        max-width: 700px;

        transform: translateY(-50%);
    }


    /* EYEBROW */

    .zkr-eyebrow {
        margin-bottom: 20px;

        font-size: 9px;

        letter-spacing: 2px;
    }


    .zkr-eyebrow__line {
        width: 32px;
    }


    /* TITLE */

    .zkr-title {
        font-size: clamp(
            56px,
            7vw,
            68px
        );

        line-height: .92;

        letter-spacing: -3px;
    }


    /* DESCRIPTION */

    .zkr-description {
        width: 470px;
        max-width: 70%;

        margin-top: 30px;

        font-size: 16px;
        line-height: 1.5;
    }


    /* ACTIONS */

    .zkr-actions {
        margin-top: 28px;
    }


    .zkr-btn {
        min-height: 50px;

        padding: 0 22px;
    }


    /* LOCATION */

    .zkr-location {
        top: auto;

        right: 40px;
        bottom: 105px;

        transform: none;
    }


    .zkr-location__city {
        font-size: 26px;
    }


    /* PROGRESS */

    .zkr-progress {
        right: 40px;

        bottom: 72px;
    }


    /* DESTINATION MARQUEE */

    .zkr-destinations {
        height: 52px;
    }


    .zkr-destinations__label {
        padding: 0 30px;
    }


    /* SCROLL */

    .zkr-scroll {
        left: 40px;

        bottom: 78px;
    }

}

/* =====================================================
   MOBILE — V3
===================================================== */

@media (max-width: 767px) {

    .zkr-hero {
        height: 100dvh;
        min-height: 100dvh;
    }


    /* CONTENT */

    .zkr-hero__content {
        left: 20px;
        right: 20px;

        top: 43%;

        width: auto;
        max-width: none;

        transform: translateY(-50%);
    }


    /* EYEBROW */

    .zkr-eyebrow {
        max-width: 92%;

        margin-bottom: 16px;

        font-size: 9px;
        line-height: 1.4;

        letter-spacing: 1.5px;
    }


    .zkr-eyebrow__line {
        width: 25px;

        flex-shrink: 0;
    }


    /* TITLE */

    .zkr-title {
        font-size: clamp(
            44px,
            13vw,
            52px
        );

        line-height: .92;

        letter-spacing: -2.5px;
    }


    /* DESCRIPTION */

    .zkr-description {
        width: 100%;
        max-width: 335px;

        margin-top: 24px;

        font-size: 16px;
        line-height: 1.45;
    }


    /* BUTTON */

    .zkr-actions {
        margin-top: 24px;
    }


    .zkr-btn {
        min-height: 48px;

        padding: 0 20px;

        gap: 20px;

        font-size: 10px;
    }


    /* On garde un seul CTA principal
       sur le Hero mobile */

    .zkr-btn--transparent {
        display: none;
    }


    /* LOCATION */

    .zkr-location {
        left: 20px;
        right: auto;

        top: auto;

        bottom: 76px;

        transform: none;

        gap: 11px;
    }


    .zkr-location__number {
        font-size: 11px;
    }


    .zkr-location__divider {
        width: 25px;
    }


    .zkr-location__city {
        font-size: 22px;
    }


    .zkr-location__country {
        margin-top: 3px;

        font-size: 8px;

        letter-spacing: 1.6px;
    }


    /* SLIDER PROGRESS */

    .zkr-progress {
        right: 20px;

        bottom: 78px;

        gap: 5px;
    }


    .zkr-progress__item {
        width: 22px;

        padding: 8px 0;
    }


    /* SCROLL DESKTOP */

    .zkr-scroll {
        display: none;
    }


    /*
     * Sur téléphone, on enlève le bandeau
     * défilant des destinations.
     *
     * La V3 privilégie une composition
     * beaucoup plus directe sur mobile.
     */

    .zkr-destinations {
        display: none;
    }

}

/* =====================================================
   ACCESSIBILITY
===================================================== */

@media (prefers-reduced-motion: reduce) {

    .zkr-hero *,
    .zkr-hero *::before,
    .zkr-hero *::after {
        animation-duration: .01ms !important;

        animation-iteration-count: 1 !important;

        transition-duration: .01ms !important;
    }

}

/* ==========================================================
   ZKR REAL ESTATE — ACCESSIBILITÉ / PERFORMANCE
   PREFERS REDUCED MOTION
   ========================================================== */

@media (prefers-reduced-motion: reduce) {

    #zkrHero .zkr-hero__slide {
        transition: none !important;
        animation: none !important;
    }

    #zkrHero .zkr-marquee-track {
        animation: none !important;
        transition: none !important;
    }

    #zkrHero .zkr-progress__item,
    #zkrHero .zkr-progress__item span {
        animation: none !important;
        transition: none !important;
    }

    #zkrHero .zkr-scroll__line,
    #zkrHero .zkr-scroll__line div {
        animation: none !important;
        transition: none !important;
    }

    #zkrHero .zkr-btn,
    #zkrHero .zkr-btn-arrow {
        transition: none !important;
        animation: none !important;
    }

}