/* ==========================================================================
   SIDI « site vivant » — sobre & pro (accueil)
   Présence : lumière, respiration, micro-mouvements. Pas de gadget.
   ========================================================================== */

/* 1) Photos hero qui respirent (sur l’img, pour ne pas casser le fade des slides) */
.site-vivant .hero-slide.is-active img{
    animation:sidiBreatheImg 14s ease-in-out infinite;
    will-change:transform;
}
@keyframes sidiBreatheImg{
    0%,100%{ transform:scale(1) translate3d(0,0,0); }
    50%{ transform:scale(1.04) translate3d(0,-1%,0); }
}

/* 2) Poussière de lumière discrète */
.hero-dust{
    position:absolute;
    inset:0;
    pointer-events:none;
    opacity:0.35;
    background-image:
        radial-gradient(1.5px 1.5px at 12% 22%, rgba(240,215,140,0.55), transparent),
        radial-gradient(1px 1px at 28% 68%, rgba(255,255,255,0.35), transparent),
        radial-gradient(1.5px 1.5px at 62% 18%, rgba(240,215,140,0.4), transparent),
        radial-gradient(1px 1px at 78% 54%, rgba(255,255,255,0.28), transparent),
        radial-gradient(1.2px 1.2px at 88% 78%, rgba(212,175,55,0.4), transparent),
        radial-gradient(1px 1px at 44% 42%, rgba(255,255,255,0.22), transparent);
    animation:sidiDust 18s linear infinite;
}
@keyframes sidiDust{
    0%{ transform:translate3d(0,0,0); opacity:0.2; }
    40%{ opacity:0.4; }
    100%{ transform:translate3d(0,-18px,0); opacity:0.2; }
}

/* Voile or très léger qui “respire” sur l’overlay */
.site-vivant .hero-overlay::after{
    content:"";
    position:absolute;
    inset:0;
    pointer-events:none;
    background:radial-gradient(ellipse 60% 45% at 50% 30%, rgba(212,175,55,0.12), transparent 70%);
    animation:sidiSunPulse 10s ease-in-out infinite;
}
@keyframes sidiSunPulse{
    0%,100%{ opacity:0.35; }
    50%{ opacity:0.75; }
}

/* 3) Bandeau preuve — ligne or qui passe doucement */
.sidi-proof-strip{
    position:relative;
    overflow:hidden;
}
.sidi-proof-strip::after{
    content:"";
    position:absolute;
    top:0;
    left:-40%;
    width:35%;
    height:100%;
    background:linear-gradient(90deg, transparent, rgba(240,215,140,0.14), transparent);
    animation:sidiProofShine 7s ease-in-out infinite;
    pointer-events:none;
}
@keyframes sidiProofShine{
    0%{ transform:translateX(0); opacity:0; }
    20%{ opacity:1; }
    100%{ transform:translateX(320%); opacity:0; }
}

/* 4) Portails “Votre projet” — présence au repos (pas seulement au hover) */
.sidi-explore .explore-portal{
    position:relative;
}
.sidi-explore .explore-go{
    display:inline-block;
    transition:transform .35s var(--ease, ease), color .25s ease;
}
.sidi-explore .explore-portal:hover .explore-go{
    transform:translateX(4px);
}
.sidi-explore .explore-portal::after{
    content:"";
    position:absolute;
    inset:0;
    border-radius:inherit;
    box-shadow:inset 0 0 0 1px rgba(212,175,55,0);
    transition:box-shadow .4s ease;
    pointer-events:none;
}
.sidi-explore .explore-portal:hover::after{
    box-shadow:inset 0 0 0 1px rgba(212,175,55,0.35);
}

/* Guide villa — carte qui “vit” un peu */
.sidi-guide-card{
    position:relative;
}
.sidi-guide-card::before{
    content:"";
    position:absolute;
    inset:-1px;
    border-radius:inherit;
    background:linear-gradient(120deg, transparent 30%, rgba(240,215,140,0.18), transparent 70%);
    background-size:200% 100%;
    opacity:0.55;
    animation:sidiGuideGlow 8s ease-in-out infinite;
    pointer-events:none;
    z-index:0;
    mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    padding:1px;
}
.sidi-guide-card > *{ position:relative; z-index:1; }
@keyframes sidiGuideGlow{
    0%,100%{ background-position:0% 50%; opacity:0.25; }
    50%{ background-position:100% 50%; opacity:0.55; }
}

/* Mobile : alléger (perf) */
@media(max-width:768px){
    .hero-orb{ opacity:0.18; filter:blur(48px); }
    .hero-dust{ opacity:0.18; }
    .site-vivant .hero-slide.is-active img{
        animation-duration:18s;
    }
}

@media (prefers-reduced-motion: reduce){
    .site-vivant .hero-slide.is-active img,
    .hero-dust,
    .site-vivant .hero-overlay::after,
    .sidi-proof-strip::after,
    .sidi-guide-card::before{
        animation:none !important;
    }
    .site-vivant .hero-slide.is-active img{
        transform:none !important;
    }
}
