/* NAGALISKO — couche d'effets de l'accueil (octobre 2026).
   Reprend la DA du site (vert nuit, or, ivoire, Cormorant + DM Sans) et ne
   fait que l'enrichir. Les états animés passent par des attributs data-fx-*. */

:root{
  --fx-gold-1:#B08D4F;--fx-gold-2:#E6D19C;--fx-gold-3:#FFF4D8;
  --fx-glass:rgba(19,39,28,.52);--fx-glass-line:rgba(198,168,103,.28);
}

/* ------------------------------------------------ 1. hero vidéo + titre */

.cover video.cbg{background:#13271C}
.cover .cveil{background:linear-gradient(180deg,rgba(11,22,16,.58) 0%,rgba(11,22,16,.16) 30%,rgba(11,22,16,.34) 62%,rgba(11,22,16,.92) 100%)}

.fx-title{filter:drop-shadow(0 6px 28px rgba(0,0,0,.35))}
.fx-title>span{display:inline-block;white-space:nowrap}
.fx-title>span>*{
  display:inline-block;font-style:normal;color:transparent;
  background:linear-gradient(105deg,var(--fx-gold-1) 0%,var(--fx-gold-2) 38%,var(--fx-gold-3) 50%,var(--fx-gold-2) 62%,var(--fx-gold-1) 100%);
  background-size:320% 100%;background-position:0% 0;
  -webkit-background-clip:text;background-clip:text;
}
.fx-title>span>em{font-style:italic}

html[data-fx="motion"] .fx-title>span>*{opacity:0;transform:translateY(.32em);filter:blur(10px);background-position:100% 0}
html[data-fx="motion"][data-fx-hero] .fx-title>span>*{
  animation:fxLetter 1.1s cubic-bezier(.16,1,.3,1) forwards,fxSheen 1.9s cubic-bezier(.45,.05,.3,1) forwards;
  animation-delay:calc(var(--i) * 75ms),calc(var(--i) * 75ms + 380ms);
}
@keyframes fxLetter{to{opacity:1;transform:none;filter:blur(0)}}
@keyframes fxSheen{to{background-position:0% 0}}

html[data-fx="motion"] .cover .proofs,
html[data-fx="motion"] .cover .sub,
html[data-fx="motion"] .cover .cta-row{opacity:0;transform:translateY(18px)}
html[data-fx="motion"][data-fx-hero] .cover .proofs,
html[data-fx="motion"][data-fx-hero] .cover .sub,
html[data-fx="motion"][data-fx-hero] .cover .cta-row{animation:fxUp 1s cubic-bezier(.16,1,.3,1) forwards}
html[data-fx="motion"][data-fx-hero] .cover .proofs{animation-delay:.05s}
html[data-fx="motion"][data-fx-hero] .cover .sub{animation-delay:.85s}
html[data-fx="motion"][data-fx-hero] .cover .cta-row{animation-delay:1s}
@keyframes fxUp{to{opacity:1;transform:none}}

/* pause / lecture de la vidéo (WCAG 2.2.2) */
.fx-vid-toggle{position:absolute;z-index:3;right:clamp(16px,3vw,34px);bottom:clamp(16px,3vw,30px);width:42px;height:42px;border-radius:50%;
  display:grid;place-items:center;cursor:pointer;color:var(--ivoire);
  background:rgba(19,39,28,.35);border:1px solid rgba(246,241,231,.28);
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:background .3s,border-color .3s}
.fx-vid-toggle:hover{background:rgba(19,39,28,.6);border-color:var(--or)}
.fx-vid-toggle svg{width:14px;height:14px;fill:currentColor}
.fx-vid-toggle .play{display:none}
.fx-vid-toggle[aria-pressed="true"] .play{display:block}
.fx-vid-toggle[aria-pressed="true"] .pause{display:none}
@media(max-width:760px){.fx-vid-toggle{bottom:auto;top:96px;width:36px;height:36px}}

/* ------------------------------------------------------ 2. menu en verre */

.header{transition:background .5s var(--ease-out),padding .5s var(--ease-out),border-color .5s var(--ease-out),transform .5s var(--ease-out)}
.header .nav{transition:max-width .6s var(--ease-out),padding .6s var(--ease-out),background .5s var(--ease-out),border-color .5s var(--ease-out),box-shadow .5s var(--ease-out),border-radius .6s var(--ease-out)}
.header.compact{background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;border-bottom-color:transparent;padding-block:12px}
.header.compact .nav{
  max-width:min(1180px,calc(100% - 24px));padding:8px 8px 8px 18px;border-radius:100px;
  background:linear-gradient(180deg,rgba(30,69,48,.8),rgba(19,39,28,.84));
  border:1px solid var(--fx-glass-line);
  -webkit-backdrop-filter:blur(18px) saturate(1.5);backdrop-filter:blur(18px) saturate(1.5);
  box-shadow:inset 0 1px 0 rgba(246,241,231,.12),0 18px 40px -22px rgba(0,0,0,.55);
}
.header .nav{border:1px solid transparent}
.header.compact .brand .word{font-size:1.25rem}
.header.compact .nav-links{gap:22px}
@media(max-width:1080px){.header.compact .nav{padding:6px 6px 6px 14px}}

/* ----------------------------------------------- 3. rendez-vous vivants */

.fx-when{position:absolute;top:14px;right:14px;z-index:2;display:inline-flex;align-items:baseline;
  font-size:.74rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ivoire);
  padding:7px 13px;border-radius:100px;background:rgba(19,39,28,.58);border:1px solid rgba(198,168,103,.45);
  -webkit-backdrop-filter:blur(10px) saturate(1.3);backdrop-filter:blur(10px) saturate(1.3)}
.fx-when b{font-weight:700;color:#E6D19C}
.ecard .status.st-open{display:inline-flex;align-items:center;gap:8px}
.ecard .status.st-open::before{content:"";width:7px;height:7px;border-radius:50%;background:#2F9A5A;box-shadow:0 0 0 0 rgba(47,154,90,.5);animation:fxPulse 2s infinite}
@keyframes fxPulse{70%{box-shadow:0 0 0 7px rgba(47,154,90,0)}100%{box-shadow:0 0 0 0 rgba(47,154,90,0)}}
.ecard.fx-open{border-color:rgba(47,102,66,.35);box-shadow:0 0 0 1px rgba(47,102,66,.12)}

.fx-cal{position:relative;margin-left:auto}
.fx-cal>button{display:inline-flex;align-items:center;gap:8px;font:600 .8rem var(--ff-body);color:var(--vert);background:none;border:0;
  padding:10px 2px;cursor:pointer;letter-spacing:.01em}
.fx-cal>button svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.6}
.fx-cal>button:hover{color:var(--orange)}
.fx-cal-menu{position:absolute;right:0;bottom:calc(100% + 6px);z-index:5;min-width:220px;padding:6px;border-radius:14px;white-space:nowrap;
  background:rgba(246,241,231,.86);border:1px solid rgba(47,102,66,.18);
  -webkit-backdrop-filter:blur(16px) saturate(1.4);backdrop-filter:blur(16px) saturate(1.4);
  box-shadow:0 22px 44px -22px rgba(19,39,28,.55);opacity:0;transform:translateY(6px);pointer-events:none;transition:.25s var(--ease-out)}
.fx-cal[data-open] .fx-cal-menu{opacity:1;transform:none;pointer-events:auto}
.fx-cal-menu a,.fx-cal-menu button{display:block;width:100%;text-align:left;padding:11px 14px;border-radius:9px;border:0;background:none;
  font:500 .86rem var(--ff-body);color:var(--encre);cursor:pointer}
.fx-cal-menu a:hover,.fx-cal-menu button:hover{background:rgba(47,102,66,.1)}
.fx-empty{grid-column:1/-1;text-align:center;color:var(--gris);padding:30px 0}

/* -------------------------------------------------- 4. carrousel du cercle */

.mbr-photo{position:relative}
.mbr-cap{position:absolute;left:12px;right:12px;bottom:12px;padding:14px 16px 13px;border-radius:12px;
  background:rgba(19,39,28,.34);border:1px solid rgba(246,241,231,.22);
  -webkit-backdrop-filter:blur(14px) saturate(1.3);backdrop-filter:blur(14px) saturate(1.3);
  box-shadow:inset 0 1px 0 rgba(246,241,231,.14)}
.mbr-cap h3{margin:0;font-size:clamp(1.45rem,2.2vw,1.85rem)}
.mbr-cap .mbr-role{margin-top:6px;font-size:.68rem;opacity:.95}
.mbr-card .mbr-bio{margin-top:18px}
.mbr-track{cursor:grab}
.mbr-track[data-fx-drag]{cursor:grabbing;scroll-snap-type:none;scroll-behavior:auto;user-select:none}
.mbr-track[data-fx-drag] img{pointer-events:none}
@media(hover:hover) and (pointer:fine){
  .mbr-photo img{filter:grayscale(1) contrast(1.06);transition:filter .7s var(--ease-out),transform .8s var(--ease-out)}
  .mbr-card:hover .mbr-photo img,.mbr-card:focus-within .mbr-photo img{filter:none}
}

/* ---------------------------------------- 5. château : parallaxe + galerie */

.fx-gallery figure{position:absolute;inset:0;margin:0;opacity:0;transition:opacity 1.4s var(--ease-out)}
.fx-gallery figure[data-on]{opacity:1}
.fx-gallery figure img{position:absolute;left:0;width:100%;top:-9%;height:118%;object-fit:cover;
  transform:translate3d(0,var(--fx-par,0px),0) scale(1.02);will-change:transform}
.fx-gallery figure[data-on] img{animation:fxKen 7s linear both}
@keyframes fxKen{from{scale:1.06}to{scale:1}}
.fx-gallery figcaption{position:absolute;left:16px;bottom:16px;z-index:2;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ivoire);
  padding:7px 13px;border-radius:100px;background:rgba(19,39,28,.4);border:1px solid rgba(246,241,231,.24);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.fx-gal-dots{position:absolute;right:16px;bottom:16px;z-index:3;display:flex;gap:6px;padding:12px 13px;border-radius:100px;
  background:rgba(19,39,28,.4);border:1px solid rgba(246,241,231,.24);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.fx-gal-dots button{width:22px;height:3px;border:0;border-radius:3px;padding:0;cursor:pointer;background:rgba(246,241,231,.4);position:relative;overflow:hidden}
.fx-gal-dots button::after{content:"";position:absolute;inset:0;background:var(--or);transform:scaleX(0);transform-origin:left}
.fx-gal-dots button[aria-current="true"]::after{animation:fxDot var(--fx-gal-dur,5.5s) linear forwards}
.fx-gallery[data-paused] .fx-gal-dots button[aria-current="true"]::after{animation:none;transform:scaleX(1)}
@keyframes fxDot{to{transform:scaleX(1)}}
.fx-gal-dots button::before{content:"";position:absolute;inset:-10px -2px}

/* ------------------------------------------- 6. comment ça marche : la ligne */

.steps{position:relative}
.fx-steps-line{position:absolute;z-index:1;pointer-events:none;background:rgba(47,102,66,.16);border-radius:2px}
.fx-steps-line span{position:absolute;inset:0;background:linear-gradient(90deg,var(--or-soft),var(--or));border-radius:2px;transform-origin:left center;transform:scaleX(var(--fx-p,0))}
.step .num{z-index:2}
.step .num{position:relative;transition:background .5s var(--ease-out),color .5s var(--ease-out),box-shadow .5s var(--ease-out)}
.step[data-lit] .num{background:var(--or);color:var(--vert-night);box-shadow:0 0 0 6px rgba(198,168,103,.18)}
.fx-price{margin-top:10px;font-size:.84rem!important;color:var(--vert)!important;font-weight:600;line-height:1.45}
.fx-price small{display:block;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--or-soft);margin-bottom:2px}
@media(max-width:860px){
  .steps{grid-template-columns:1fr;gap:12px}
  .step{display:grid;grid-template-columns:38px 1fr;column-gap:18px;align-items:center;padding:18px 20px}
  .step .num{margin:0;grid-row:span 2}
  .step h4{margin:0}
  .fx-price{grid-column:2}
  .fx-steps-line span{transform-origin:center top;transform:scaleY(var(--fx-p,0));background:linear-gradient(180deg,var(--or-soft),var(--or))}
}

/* ------------------------------------------- 7. barre « Candidater » mobile */

.fx-applybar{display:none}
@media(max-width:760px){
  .fx-applybar{position:fixed;z-index:990;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));
    display:flex;align-items:center;gap:8px;padding:7px;border-radius:100px;
    background:linear-gradient(180deg,rgba(30,69,48,.8),rgba(19,39,28,.86));border:1px solid var(--fx-glass-line);
    -webkit-backdrop-filter:blur(18px) saturate(1.5);backdrop-filter:blur(18px) saturate(1.5);
    box-shadow:inset 0 1px 0 rgba(246,241,231,.12),0 18px 40px -18px rgba(0,0,0,.6);
    transform:translateY(calc(100% + 30px));transition:transform .5s var(--ease-out)}
  .fx-applybar[data-on]{transform:none}
  .fx-applybar .btn{flex:1;padding:13px 18px}
  .fx-applybar .fx-sec{flex:0 0 auto;padding:13px 16px;color:var(--ivoire);font-size:.85rem;font-weight:600;opacity:.9}
}

@media(prefers-reduced-motion:reduce){
  .fx-gallery figure[data-on] img{animation:none}
  .ecard .status.st-open::before{animation:none}
}
