/* Signature française : trois volets CSS, aucun média ni moteur 3D supplémentaire. */
.loader-france{--progress:0;--loader-blue:#203b59;--loader-red:#a3473f;--loader-paper:#f3eee7;isolation:isolate;overflow:hidden;padding:40px 24px 75px;background:transparent;color:#5c4030;transition:visibility 0s .95s}
.loader-curtains{position:absolute;inset:0;z-index:-1;display:grid;grid-template-columns:28% 44% 28%;pointer-events:none}
.loader-panel{height:100%;position:relative;transition:transform .85s cubic-bezier(.76,0,.24,1);will-change:transform}
.loader-panel::after{content:'';position:absolute;inset:0;background:linear-gradient(135deg,#ffffff08,transparent 55%,#00000008)}
.loader-panel-blue{background:var(--loader-blue);transform-origin:left}
.loader-panel-white{background:var(--loader-paper);transition-delay:.08s}
.loader-panel-red{background:var(--loader-red);transform-origin:right}
.loader-france .loader-composition{width:min(40vw,530px);display:flex;flex-direction:column;align-items:center;transition:opacity .22s,transform .35s;position:relative}
.loader-signature{margin:0 0 35px;font-size:10px;font-weight:600;line-height:1.5;letter-spacing:.23em;text-transform:uppercase;color:#745c4c;animation:ft-france-reveal .7s .1s both}
/* Miniature de fenêtre aluminium d'esprit K•LINE : profils fins, joints sombres,
   vitrage discret et poignée inox. Dimensions et cadence du chargeur inchangées. */
.loader-flag{
 position:relative;display:flex;width:105px;aspect-ratio:4/3;box-sizing:border-box;
 border:4px solid #394347;background:linear-gradient(180deg,#d8e2e0,#b9cdcc);
 overflow:visible;margin-bottom:30px;perspective:340px;transform-style:preserve-3d;
 box-shadow:inset 0 0 0 1px #d6dfdc,0 0 0 1px #27323542,1px 10px 18px #30271e20;
}
.loader-flag::before{
 content:"";position:absolute;inset:2px;border:1px solid #273135;
 box-shadow:inset 0 0 0 1px #f4f5ee80;pointer-events:none;z-index:1;
}
.loader-flag::after{
 content:"";position:absolute;left:-6px;right:-6px;bottom:-7px;height:3px;
 border:1px solid #525e60;background:linear-gradient(180deg,#a6b1b2,#556165);
 box-shadow:0 2px 4px #2a252018;pointer-events:none;
}
.loader-flag>.ft-loader-vitrage-fond{
 position:absolute;inset:4px;display:block;
 background:
  linear-gradient(120deg,#ffffff52 0 14%,transparent 15% 48%,#ffffff30 49% 55%,transparent 56%),
  linear-gradient(165deg,#dce8e7 0%,#d2dfdd 46%,#b2c7c5 100%);
 box-shadow:inset 0 0 0 1px #70858955;
}
.loader-flag>.loader-window-left,.loader-flag>.loader-window-right{
 position:relative;z-index:2;display:block;flex:0 0 50%;height:100%;box-sizing:border-box;
 border:3px solid #465255;outline:1px solid #2a3538;
 background:linear-gradient(145deg,#697578 0%,#384347 25%,#465156 75%,#293236 100%);
 box-shadow:inset 1px 1px 0 #d7dfdc55,inset -1px -1px 0 #1a252870;
 transform-style:preserve-3d;backface-visibility:visible;
 animation:ft-window-left 3.6s cubic-bezier(.45,0,.2,1) infinite;
}
.loader-flag>.loader-window-left{transform-origin:left center}
.loader-flag>.loader-window-right{transform-origin:right center;animation-name:ft-window-right}
.loader-flag .ft-loader-vitrage{
 position:absolute;inset:2px;display:block;border:1px solid #27343888;
 background:
  linear-gradient(118deg,#ffffff55 0 10%,transparent 11% 54%,#ffffff20 55% 61%,transparent 62%),
  linear-gradient(160deg,#e0ebe99c 0%,#cadbdc8a 44%,#9fb9b86a 100%);
 box-shadow:inset 0 0 0 1px #e3ece870,inset -1px -1px 2px #40555434;
 pointer-events:none;
}
.loader-flag .ft-loader-vitrage::before{
 content:"";position:absolute;inset:2px;border:1px solid #edf4f02f;
}
.loader-flag .ft-loader-paumelle{
 position:absolute;z-index:3;width:3px;height:9px;display:block;border-radius:1px;
 background:linear-gradient(90deg,#384346,#dfe6e4 50%,#677377);
 box-shadow:1px 0 1px #17202335;pointer-events:none;
}
.loader-flag .loader-window-left>.ft-loader-paumelle{left:-5px}
.loader-flag .loader-window-right>.ft-loader-paumelle{right:-5px}
.loader-flag .ft-loader-paumelle-haute{top:16%}
.loader-flag .ft-loader-paumelle-basse{bottom:16%}
/* Fixation de la poignée sur le vantail droit : le support ne bouge pas. */
.loader-flag .ft-loader-poignee-inox{
 position:absolute;z-index:4;left:-2px;top:47%;width:4px;height:15px;display:block;
 transform:translateY(-50%);border-radius:2px;
 background:linear-gradient(90deg,#657174,#f2f5f2 50%,#737f82);
 box-shadow:1px 1px 2px #17212430;pointer-events:none;
}
/* Le bras inox pivote vers le bas juste avant l'ouverture des deux vantaux,
   reste abaissé à l'ouverture et revient horizontal à la fermeture. */
.loader-flag .ft-loader-poignee-inox::after{
 content:"";position:absolute;top:4px;left:2px;width:10px;height:3px;
 border-radius:2px;background:linear-gradient(180deg,#f7faf7,#7b878b);
 transform-origin:left center;transform:rotate(-12deg);
 box-shadow:0 1px 1px #2c383a45;
 animation:ft-poignee-kline 3.6s cubic-bezier(.45,0,.2,1) infinite;
}
.loader-france.is-done .loader-flag>.loader-window-left,
.loader-france.is-done .loader-flag>.loader-window-right,
.loader-france.is-done .loader-flag .ft-loader-poignee-inox::after{
 animation-play-state:paused;
}
@keyframes ft-poignee-kline{
 0%,12%,100%{transform:rotate(-12deg)}
 36%,72%{transform:rotate(78deg)}
 94%{transform:rotate(-12deg)}
}
@keyframes ft-window-left{0%,12%,100%{transform:rotateY(0)}42%,72%{transform:rotateY(-68deg)}}
@keyframes ft-window-right{0%,12%,100%{transform:rotateY(0)}42%,72%{transform:rotateY(68deg)}}
.loader-france .loader-brand{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:clamp(40px,4.6vw,68px);font-weight:400;line-height:1.02;letter-spacing:-.055em;margin:0 0 25px;animation:ft-france-reveal .75s .15s both}
.loader-france .loader-brand em{font-family:var(--serif,Georgia,serif);font-weight:400;color:#5c4030;letter-spacing:-.065em}
.loader-france .made{margin:0;font-size:9px;line-height:1.6;letter-spacing:.17em;text-transform:uppercase;color:#745c4c;animation:ft-france-reveal .75s .25s both}
.loader-progress{width:min(220px,80%);height:3px;background:#d8cbbf;margin-top:38px;overflow:hidden}
.loader-progress>span{display:block;width:100%;height:100%;background:linear-gradient(90deg,#243f80 0 33.333%,#fff 33.333% 66.666%,#c44348 66.666%);transform:translateX(-100%);animation:ft-france-progress 2s ease-in-out infinite}
.loader-france .loader-status{font-size:10px;line-height:1.5;letter-spacing:.015em;color:#745c4c;margin:13px 0 0}
.loader-france .text-button{font-size:10px;line-height:1.4;color:#5c4030;border:0;background:transparent;min-height:44px;margin-top:20px;padding:10px 8px;text-decoration:underline;text-decoration-color:#b5a393;text-underline-offset:6px}
.loader-france .text-button>span{display:inline-block;margin-left:12px;text-decoration:none}
.loader-france .text-button:focus-visible{outline:2px solid #5c4030;outline-offset:4px}
.loader-france .loader-credit{bottom:max(26px,env(safe-area-inset-bottom));font-size:15px;color:#745c4c;transition:opacity .2s}
.loader-france.is-done{opacity:1;visibility:hidden;pointer-events:none}
.loader-france.is-done .loader-panel-blue{transform:translateX(-101%)}
.loader-france.is-done .loader-panel-white{transform:translateY(-101%)}
.loader-france.is-done .loader-panel-red{transform:translateX(101%)}
.loader-france.is-done .loader-composition{opacity:0;transform:translateY(-12px)}
.loader-france.is-done .loader-credit{opacity:0}
.loader-france.is-done .loader-progress>span{animation:none;transform:none}
@keyframes ft-france-progress{0%{transform:translateX(-100%)}50%{transform:translateX(0)}100%{transform:translateX(100%)}}
@keyframes ft-france-reveal{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:700px){.loader-curtains{grid-template-columns:12% 76% 12%}.loader-france .loader-composition{width:70vw}.loader-signature{font-size:8px;letter-spacing:.18em;margin-bottom:28px}.loader-flag{width:84px;margin-bottom:26px}.loader-france .loader-brand{font-size:clamp(39px,8vw,56px);margin-bottom:23px}.loader-france .made{font-size:8px;letter-spacing:.11em}.loader-progress{margin-top:30px;width:175px}.loader-france .loader-status{font-size:9px}.loader-france .loader-credit{font-size:14px}}
@media(max-height:580px){.loader-france{padding-top:20px;padding-bottom:45px}.loader-signature{margin-bottom:13px}.loader-flag{width:57px;margin-bottom:15px}.loader-france .loader-brand{font-size:36px;margin-bottom:14px}.loader-progress{margin-top:18px}.loader-france .text-button{margin-top:7px}.loader-france .loader-credit{bottom:12px;font-size:12px}}
@media(prefers-reduced-motion:reduce){.loader-france,.loader-france *{animation:none!important;transition:none!important}.loader-panel{will-change:auto}.loader-progress>span{transform:none}}
