:root{
    --ease-out:cubic-bezier(.2,.75,.25,1);
    --ease-spring:cubic-bezier(.18,.89,.32,1.28)
}
body{opacity:1;transition:opacity .45s ease}
    header{
        transition:height .3s ease,box-shadow .3s ease,background .3s ease
    }
    header.scrolled{
        height:70px;
        box-shadow:0 8px 30px #071a3312;
        background:rgba(255,255,255,.985)
    }
    header nav a{
        position:relative;transition:color .25s ease
    }
    header nav a:after{
        content:'';
        position:absolute;
        left:0;
        right:100%;
        bottom:-9px;
        height:2px;
        background:var(--orange);
        transition:right .3s var(--ease-out)
    }
    header nav a:hover{
        color:var(--orange)
    }
    header nav a:hover:after,header nav a.active:after{
        right:0
    }
    .mark{
        animation:logoFloat 4s ease-in-out infinite
    }
    .hero,.page-hero,.client-hero{
        background-attachment:fixed;position:relative;overflow:hidden}.hero:after,.page-hero:after,.client-hero:after{content:'';position:absolute;width:360px;height:360px;border:1px solid #ffffff1a;border-radius:50%;right:-100px;top:-120px;box-shadow:0 0 0 65px #ffffff07,0 0 0 130px #ffffff05;animation:orbPulse 7s ease-in-out infinite;pointer-events:none}.hero-content,.page-hero>div,.client-hero>div{position:relative;z-index:2;animation:heroReveal .9s var(--ease-out) both}.hero-card,.journey{position:relative;z-index:2;animation:cardEnter 1s .2s var(--ease-spring) both}.hero h1 em,.page-hero h1 em,.client-hero h1 em{display:inline-block;background:linear-gradient(90deg,#ff6600,#ffae72,#ff6600);background-size:200% auto;background-clip:text;-webkit-background-clip:text;color:transparent;animation:shimmer 4s linear infinite}.reveal{opacity:0;transform:translateY(34px);transition:opacity .75s var(--ease-out),transform .75s var(--ease-out)}.reveal.reveal-left{transform:translateX(-40px)}.reveal.reveal-right{transform:translateX(40px)}.reveal.is-visible{opacity:1;transform:none}.stagger>*{opacity:0;transform:translateY(25px);transition:opacity .6s var(--ease-out),transform .6s var(--ease-out)}.stagger.is-visible>*{opacity:1;transform:none}.stagger.is-visible>*:nth-child(2){transition-delay:.08s}.stagger.is-visible>*:nth-child(3){transition-delay:.16s}.stagger.is-visible>*:nth-child(4){transition-delay:.24s}.stagger.is-visible>*:nth-child(5){transition-delay:.32s}.stagger.is-visible>*:nth-child(6){transition-delay:.4s}.cards article,.booking-grid>a,.country-grid article,.feature-list article,.tag-grid article,.article-grid article,.value-grid article{position:relative;overflow:hidden}.cards article:after,.booking-grid>a:after,.country-grid article:after,.feature-list article:after,.tag-grid article:after,.article-grid article:after,.value-grid article:after{content:'';position:absolute;inset:auto -30% -70% auto;width:150px;height:150px;border-radius:50%;background:#ff66000b;transition:transform .5s var(--ease-out)}.cards article:hover:after,.booking-grid>a:hover:after,.country-grid article:hover:after,.feature-list article:hover:after,.tag-grid article:hover:after,.article-grid article:hover:after,.value-grid article:hover:after{transform:scale(2.5)}.destination-grid article,.tour-grid article{transition:transform .5s var(--ease-out),box-shadow .5s ease}.destination-grid article:hover,.tour-grid article:hover{transform:translateY(-8px) scale(1.015);box-shadow:0 25px 55px #06132655}.destination-grid article:before{transition:background .4s ease}.destination-grid article:hover:before{background:linear-gradient(transparent 25%,#06162ef2)}.btn{position:relative;overflow:hidden}.btn:after{content:'';position:absolute;top:-50%;left:-80%;width:45%;height:200%;background:linear-gradient(90deg,transparent,#ffffff60,transparent);transform:rotate(18deg);transition:left .65s ease}.btn:hover:after{left:140%}.whatsapp{animation:whatsappPulse 2.2s infinite}.top{opacity:0;transform:translateY(15px);pointer-events:none;transition:.3s ease}.top.visible{opacity:1;transform:none;pointer-events:auto}.progress-bar{position:fixed;left:0;top:0;height:3px;background:linear-gradient(90deg,var(--orange),#ffae72);z-index:100;width:0;box-shadow:0 1px 8px #ff660088}.floating-plane{position:fixed;left:-60px;top:28%;z-index:12;color:var(--orange);font-size:24px;pointer-events:none;filter:drop-shadow(0 5px 5px #071a3333);transition:transform .1s linear}.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus,.tracking input:focus{outline:0;border-color:var(--blue);box-shadow:0 0 0 4px #1686c914;transform:translateY(-1px)}input,select,textarea{transition:border-color .25s,box-shadow .25s,transform .25s}.service-tabs button{transition:transform .25s,background .25s,color .25s}.service-tabs button:hover{transform:translateY(-2px)}details summary span{transition:transform .3s ease}details[open] summary span{transform:rotate(45deg)}
@keyframes heroReveal{from{opacity:0;transform:translateY(35px)}to{opacity:1;transform:none}}@keyframes cardEnter{from{opacity:0;transform:translateX(45px) rotate(2deg)}to{opacity:1;transform:none}}@keyframes logoFloat{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-3px) rotate(3deg)}}@keyframes orbPulse{0%,100%{transform:scale(.9);opacity:.6}50%{transform:scale(1.08);opacity:1}}@keyframes shimmer{to{background-position:200% center}}@keyframes whatsappPulse{0%,100%{box-shadow:0 0 0 0 #20bf6766}50%{box-shadow:0 0 0 13px #20bf6700}}
@media(max-width:900px){.hero,.page-hero,.client-hero{background-attachment:scroll}.floating-plane{display:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.reveal,.stagger>*{opacity:1!important;transform:none!important}.hero,.page-hero,.client-hero{background-attachment:scroll}}


/* Stabilisation du défilement : aucune animation ne modifie la géométrie de la page */
header{transition:box-shadow .3s ease,background-color .3s ease!important}
header.scrolled{height:82px!important}
.hero,.page-hero,.client-hero{background-attachment:scroll!important}
.floating-plane{transition:none;will-change:transform}
.reveal,.stagger>*{will-change:opacity,transform;backface-visibility:hidden;transform-style:flat}
.reveal.is-visible,.stagger.is-visible>*{will-change:auto}
.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus,.tracking input:focus{transform:none}
