/* Mouvement premium Bensalemways (voir assets/js/motion.js) */
:root {
    --bw-spring: cubic-bezier(0.16, 1, 0.3, 1);
}

/* Barre de progression de lecture */
.bw-progress {
    position: fixed;
    inset: 0 0 auto 0;
    height: 3px;
    z-index: 100000;
    background: linear-gradient(90deg, var(--bw-gold), color-mix(in srgb, var(--bw-gold) 60%, #fff));
    transform: scaleX(0);
    transform-origin: 0 50%;
    pointer-events: none;
}

/* En-tête en verre dépoli après défilement */
#header.site-header {
    transition: background-color 0.4s var(--bw-spring), box-shadow 0.4s var(--bw-spring), backdrop-filter 0.4s;
}
html.bw-scrolled #header.site-header {
    background-color: color-mix(in srgb, #fff 78%, transparent) !important;
    -webkit-backdrop-filter: saturate(1.6) blur(14px);
    backdrop-filter: saturate(1.6) blur(14px);
    box-shadow: 0 1px 0 color-mix(in srgb, var(--bw-black) 8%, transparent), 0 10px 30px -18px color-mix(in srgb, var(--bw-black) 40%, transparent);
}

/* Bandeau d'accueil : fond en parallaxe, contenu qui s'efface en remontant */
.bw-hero {
    background-position-y: calc(50% + var(--bw-hero-y, 0px)) !important;
    overflow: hidden;
}
.bw-hero > .e-con-inner,
.bw-hero.e-con-full > .elementor-element {
    opacity: var(--bw-hero-fade, 1);
    transform: translate3d(0, var(--bw-hero-lift, 0), 0);
    will-change: transform, opacity;
}

/* Titre du bandeau révélé mot à mot */
.bw-word {
    display: inline-block;
    overflow: hidden;
    vertical-align: bottom;
    padding-bottom: 0.08em;
}
.bw-word > span {
    display: inline-block;
    transform: translate3d(0, 105%, 0) rotate(4deg);
    opacity: 0;
    transition: transform 1.1s var(--bw-spring), opacity 0.8s ease;
    transition-delay: calc(0.15s + var(--i) * 0.07s);
}
.bw-words-in .bw-word > span {
    transform: none;
    opacity: 1;
}

/* Apparitions : courbe « ressort » et léger flou, plus douces que l'original */
html.bw-anim .bw-reveal {
    transition-timing-function: var(--bw-spring), var(--bw-spring) !important;
    transition-duration: 0.9s, 1s !important;
}
html.bw-anim .bw-reveal:not(.bw-in) {
    filter: blur(6px);
}
html.bw-anim .bw-reveal.bw-in {
    filter: none;
    transition-property: opacity, transform, filter !important;
}

/* Images de section : profondeur au défilement (l'image déborde légèrement de son cadre) */
.bw-depth {
    translate: 0 var(--bw-depth, 0px);
    scale: 1.08;
    will-change: translate;
}
.elementor-widget-image .elementor-widget-container:has(.bw-depth) {
    overflow: hidden;
    border-radius: inherit;
}

/* Cartes : relief au survol */
.type-trip,
.togo-destination-grid-item,
.togo-activity-grid-item {
    transition: transform 0.6s var(--bw-spring), box-shadow 0.6s var(--bw-spring);
    transform-style: preserve-3d;
}
.bw-tilt:hover {
    transform: perspective(900px) rotateX(var(--bw-rx, 0)) rotateY(var(--bw-ry, 0)) translateY(-6px);
    box-shadow: 0 24px 48px -24px color-mix(in srgb, var(--bw-black) 45%, transparent);
}

/* Boutons : brillance dorée au survol */
.elementor-button,
.togo-button,
.bw-btn {
    position: relative;
    overflow: hidden;
    isolation: isolate;
}
.elementor-button::after,
.togo-button::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(110deg, transparent 30%, color-mix(in srgb, var(--bw-gold) 55%, transparent) 50%, transparent 70%);
    transform: translateX(-120%);
    transition: transform 0.9s var(--bw-spring);
}
.elementor-button:hover::after,
.togo-button:hover::after {
    transform: translateX(120%);
}

@media (prefers-reduced-motion: reduce) {
    .bw-progress, .bw-word > span, .bw-depth, .type-trip, .togo-destination-grid-item, .togo-activity-grid-item {
        transition: none !important;
        transform: none !important;
        translate: none !important;
        scale: none !important;
        opacity: 1 !important;
    }
}
