/* ── Skip link accessibilité (WCAG 2.4.1 Level A) ───────────────────────── */
.skip-link{
  position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden;
  background:var(--r,#C0182A);color:#fff;padding:12px 20px;font-size:.9rem;font-weight:600;
  border-radius:0 0 4px 4px;z-index:9999;text-decoration:none;
}
.skip-link:focus{
  position:fixed;left:50%;transform:translateX(-50%);top:0;width:auto;height:auto;overflow:visible;
  outline:3px solid #fff;outline-offset:2px;
}

:root {

  --r:#C0182A; --r-d:#8B0E1C; --r-l:#D4293C;
  --r-g:rgba(192,24,42,.14); --r-g2:rgba(192,24,42,.22);
  --r-s:rgba(192,24,42,.07); --r-b:rgba(192,24,42,.22);
  --r-txt:#f47585;

  
  --bg:#08080d; --bg2:#0d0d14; --bg3:#12121a; --bg4:#1a1a24;
  --sf:rgba(255,255,255,.04); --sf2:rgba(255,255,255,.07); --sf3:rgba(255,255,255,.11);
  --bd:rgba(255,255,255,.08); --bd2:rgba(255,255,255,.14);
  --tx:#ecedf5; --tx2:#878aa2; --tx3:#44475c;
  --sh:0 4px 24px rgba(0,0,0,.5); --sh2:0 16px 56px rgba(0,0,0,.65);
  --gl:rgba(8,8,13,.8);

  
  --tar-r1:rgba(192,24,42,.22); --tar-r2:rgba(192,24,42,.12); --tar-r3:rgba(192,24,42,.08);
  --tar-dk:rgba(0,0,0,.35);     --tar-bd:rgba(139,14,28,.2);

  
  --f-d:'Cormorant Garamond',Georgia,serif;
  --f-b:'Outfit',system-ui,-apple-system,sans-serif;

  
  --r2:8px;--r3:12px;--r4:16px;--r5:24px;--r6:32px;--rp:9999px;
}

[data-theme="light"] {
  --bg:#faf9f7; --bg2:#f3f1ee; --bg3:#e9e6e1; --bg4:#dedad4;
  --sf:rgba(0,0,0,.025); --sf2:rgba(0,0,0,.045); --sf3:rgba(0,0,0,.07);
  --bd:rgba(0,0,0,.07); --bd2:rgba(0,0,0,.13);
  --tx:#0c0b0a; --tx2:#5a5650; --tx3:#a09d98;
  --sh:0 4px 24px rgba(0,0,0,.07); --sh2:0 16px 56px rgba(0,0,0,.1);
  --gl:rgba(250,249,247,.88);
  --tar-r1:rgba(192,24,42,.18); --tar-r2:rgba(192,24,42,.10); --tar-r3:rgba(192,24,42,.06);
  --tar-dk:rgba(80,20,25,.1); --tar-bd:rgba(139,14,28,.15);
}

.tartan {
  background-image:
    
    repeating-linear-gradient(0deg,
      transparent 0px,
      
      var(--tar-r1) 0px, var(--tar-r1) 8px,
      transparent 8px, transparent 12px,
      var(--tar-r2) 12px, var(--tar-r2) 20px,
      transparent 20px, transparent 24px,
      var(--tar-r1) 24px, var(--tar-r1) 32px,
      
      transparent 32px, transparent 34px,
      var(--tar-dk) 34px, var(--tar-dk) 36px,
      transparent 36px, transparent 48px,
      
      var(--tar-r2) 48px, var(--tar-r2) 52px,
      transparent 52px, transparent 60px,
      
      var(--tar-dk) 60px, var(--tar-dk) 62px,
      transparent 62px, transparent 68px,
      var(--tar-r1) 68px, var(--tar-r1) 76px,
      transparent 76px, transparent 80px,
      var(--tar-r2) 80px, var(--tar-r2) 88px,
      transparent 88px, transparent 96px,
      var(--tar-r1) 96px, var(--tar-r1) 104px,
      transparent 104px, transparent 112px
    ),
    
    repeating-linear-gradient(90deg,
      transparent 0px,
      var(--tar-r1) 0px, var(--tar-r1) 8px,
      transparent 8px, transparent 12px,
      var(--tar-r2) 12px, var(--tar-r2) 20px,
      transparent 20px, transparent 24px,
      var(--tar-r1) 24px, var(--tar-r1) 32px,
      transparent 32px, transparent 34px,
      var(--tar-dk) 34px, var(--tar-dk) 36px,
      transparent 36px, transparent 48px,
      var(--tar-r2) 48px, var(--tar-r2) 52px,
      transparent 52px, transparent 60px,
      var(--tar-dk) 60px, var(--tar-dk) 62px,
      transparent 62px, transparent 68px,
      var(--tar-r1) 68px, var(--tar-r1) 76px,
      transparent 76px, transparent 80px,
      var(--tar-r2) 80px, var(--tar-r2) 88px,
      transparent 88px, transparent 96px,
      var(--tar-r1) 96px, var(--tar-r1) 104px,
      transparent 104px, transparent 112px
    );
}

.tartan-light {
  background-image:
    repeating-linear-gradient(0deg,
      transparent 0px,
      var(--tar-r2) 0px, var(--tar-r2) 6px,
      transparent 6px, transparent 10px,
      var(--tar-r3) 10px, var(--tar-r3) 16px,
      transparent 16px, transparent 20px,
      var(--tar-r2) 20px, var(--tar-r2) 26px,
      transparent 26px, transparent 30px,
      var(--tar-bd) 30px, var(--tar-bd) 32px,
      transparent 32px, transparent 56px,
      var(--tar-r3) 56px, var(--tar-r3) 60px,
      transparent 60px, transparent 86px,
      var(--tar-bd) 86px, var(--tar-bd) 88px,
      transparent 88px, transparent 90px,
      var(--tar-r2) 90px, var(--tar-r2) 96px,
      transparent 96px, transparent 102px
    ),
    repeating-linear-gradient(90deg,
      transparent 0px,
      var(--tar-r2) 0px, var(--tar-r2) 6px,
      transparent 6px, transparent 10px,
      var(--tar-r3) 10px, var(--tar-r3) 16px,
      transparent 16px, transparent 20px,
      var(--tar-r2) 20px, var(--tar-r2) 26px,
      transparent 26px, transparent 30px,
      var(--tar-bd) 30px, var(--tar-bd) 32px,
      transparent 32px, transparent 56px,
      var(--tar-r3) 56px, var(--tar-r3) 60px,
      transparent 60px, transparent 86px,
      var(--tar-bd) 86px, var(--tar-bd) 88px,
      transparent 88px, transparent 90px,
      var(--tar-r2) 90px, var(--tar-r2) 96px,
      transparent 96px, transparent 102px
    );
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}

/* Scrollbar Royal Stewart */
*::-webkit-scrollbar{width:10px;height:10px}
*::-webkit-scrollbar-track{background:var(--bg2)}
*::-webkit-scrollbar-thumb{
  background:linear-gradient(180deg,var(--r) 0%,var(--rs-red-deep) 100%);
  border-radius:6px;border:2px solid var(--bg2);
}
*::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,var(--rs-gold) 0%,var(--r) 50%,var(--rs-red-deep) 100%)}
*{scrollbar-width:thin;scrollbar-color:var(--r) var(--bg2)}
body{
  font-family:var(--f-b);background:var(--bg);color:var(--tx);
  line-height:1.65;-webkit-font-smoothing:antialiased;
  overflow-x:hidden;transition:background .35s,color .35s;
}
a{text-decoration:none;color:inherit}
button{cursor:pointer;font-family:var(--f-b);border:none;background:none}
img{display:block;max-width:100%}
::selection{background:var(--r);color:#fff}
:focus-visible{outline:2px solid var(--r);outline-offset:3px;border-radius:4px}

.disp{
  font-family:var(--f-d);font-size:clamp(3rem,8vw,6.5rem);
  line-height:.96;font-weight:400;letter-spacing:-.5px;
}
.disp em{
  font-style:italic;color:var(--r);
  background:linear-gradient(180deg,transparent 86%,var(--rs-gold-soft) 86%,var(--rs-gold-soft) 92%,transparent 92%);
  padding:0 .04em;
}
.h1{font-family:var(--f-d);font-size:clamp(2.4rem,6vw,4.5rem);line-height:1.02;font-weight:400}
.h2{font-family:var(--f-d);font-size:clamp(2rem,4.5vw,3.2rem);line-height:1.06;font-weight:400}
.h3{font-family:var(--f-d);font-size:clamp(1.3rem,2.5vw,1.8rem);line-height:1.2;font-weight:400}
.body-l{font-size:clamp(1rem,1.8vw,1.1rem);color:var(--tx2);line-height:1.75}
.eye{
  display:inline-flex;align-items:center;gap:8px;
  font-size:.7rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  color:var(--r-txt);
}
.eye::before{
  content:'';width:36px;height:1.5px;flex-shrink:0;
  background:linear-gradient(90deg,
    var(--rs-gold) 0%, var(--rs-gold) 32%,
    var(--rs-onyx) 32%, var(--rs-onyx) 38%,
    var(--r) 38%, var(--r) 100%);
}

.w{max-width:1200px;margin:0 auto;padding:0 clamp(20px,4vw,56px)}
.w-xl{max-width:1440px;margin:0 auto;padding:0 clamp(20px,4vw,64px)}
section{padding:clamp(80px,10vw,140px) 0}

.btn{
  display:inline-flex;align-items:center;gap:9px;
  padding:14px 28px;border-radius:var(--rp);
  font-family:var(--f-b);font-weight:600;font-size:.88rem;letter-spacing:.015em;
  transition:all .2s cubic-bezier(.4,0,.2,1);
  position:relative;overflow:hidden;white-space:nowrap;
}
.btn-r{
  background:var(--r);color:#fff;
  box-shadow:0 2px 20px rgba(192,24,42,.35);
}
.btn-r::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.15) 0%,transparent 55%);pointer-events:none}
.btn-r:hover{
  background:var(--rs-red-deep);
  transform:translateY(-2px);
  box-shadow:
    0 10px 36px rgba(124,14,24,.55),
    0 0 0 1px var(--rs-gold-soft) inset,
    0 1px 0 rgba(255,235,210,.16) inset;
}
.btn-r:active{transform:none}
.btn-o{border:1px solid var(--bd2);color:var(--tx);background:var(--sf)}
.btn-o:hover{border-color:var(--r-b);color:var(--r);background:var(--r-s);transform:translateY(-2px)}
.btn-lg{padding:18px 36px;font-size:.95rem}
.btn-sm{padding:9px 18px;font-size:.8rem}

.card{
  background:var(--sf);border:1px solid var(--bd);border-radius:var(--r4);
  padding:28px;transition:all .24s cubic-bezier(.4,0,.2,1);
}
.card:hover{border-color:var(--bd2);transform:translateY(-4px);box-shadow:var(--sh)}
.card-r{border-left:3px solid var(--r)}
.card-r:hover{border-color:var(--r);box-shadow:0 0 40px var(--r-g),var(--sh)}

.badge{
  display:inline-flex;align-items:center;gap:6px;padding:5px 12px;
  border-radius:var(--rp);font-size:.72rem;font-weight:600;
  border:1px solid var(--bd);background:var(--sf);color:var(--tx2);
}
.badge-r{background:var(--r-s);border-color:var(--r-b);color:var(--r-txt)}
.live-dot{width:7px;height:7px;background:var(--r);border-radius:50%;animation:ld 1.8s infinite;flex-shrink:0}
@keyframes ld{0%,100%{opacity:1}50%{opacity:.3}}

#prog{position:fixed;top:0;left:0;height:2px;background:linear-gradient(90deg,var(--r-d),var(--r));z-index:2000;pointer-events:none;box-shadow:0 0 8px var(--r-g2)}

#nav{
  position:fixed;top:0;left:0;right:0;z-index:1000;height:80px;
  display:flex;align-items:center;transition:all .3s ease;
}
#nav.scrolled{
  background:var(--gl);
  backdrop-filter:blur(32px);-webkit-backdrop-filter:blur(32px);
  border-bottom:1px solid var(--bd);
  box-shadow:var(--sh);
}

#nav.scrolled::before{
  content:'';position:absolute;inset:0;pointer-events:none;
  opacity:.5;
}
#nav.scrolled::before{
  background-image:
    repeating-linear-gradient(90deg,var(--tar-r3) 0,var(--tar-r3) 2px,transparent 2px,transparent 36px),
    repeating-linear-gradient(0deg,var(--tar-r3) 0,var(--tar-r3) 2px,transparent 2px,transparent 68px);
}

.nav-i{display:flex;align-items:center;justify-content:space-between;gap:20px;width:100%}

.logo{display:flex;align-items:center;flex-shrink:0;position:relative;height:60px}

.brand-img{
  height:60px;width:auto;display:block;
  transition:opacity .4s ease, filter .3s ease, transform .3s ease;
  pointer-events:none;will-change:opacity;
}
.brand-dark{filter:drop-shadow(0 0 14px rgba(192,24,42,.38))}
.brand-light{position:absolute;left:0;top:0;opacity:0;filter:drop-shadow(0 2px 6px rgba(192,24,42,.22))}
[data-theme="light"] .brand-dark{opacity:0;position:absolute;left:0;top:0}
[data-theme="light"] .brand-light{opacity:1;position:relative}
.logo:hover .brand-img{transform:scale(1.03)}
.logo:hover .brand-dark{filter:drop-shadow(0 0 20px rgba(192,24,42,.6))}
[data-theme="light"] .logo:hover .brand-light{filter:drop-shadow(0 3px 10px rgba(192,24,42,.38))}


.logo-img{
  width:40px;height:40px;object-fit:contain;flex-shrink:0;
  filter:drop-shadow(0 0 10px rgba(192,24,42,.3));
  transition:filter .3s,transform .3s;
}
.logo:hover .logo-img{filter:drop-shadow(0 0 16px rgba(192,24,42,.5));transform:scale(1.04)}
[data-theme="light"] .logo-img{filter:drop-shadow(0 2px 8px rgba(192,24,42,.25))}
.logo-sq{
  width:40px;height:40px;border-radius:10px;overflow:hidden;
  position:relative;flex-shrink:0;background:var(--r);
}
.logo-sq::before{
  content:'';position:absolute;inset:0;
  
  background-image:
    repeating-linear-gradient(90deg,rgba(255,255,255,.12) 0,rgba(255,255,255,.12) 2px,transparent 2px,transparent 10px),
    repeating-linear-gradient(0deg,rgba(255,255,255,.12) 0,rgba(255,255,255,.12) 2px,transparent 2px,transparent 10px);
}
.logo-sq::after{
  content:'O';position:absolute;inset:0;
  display:flex;align-items:center;justify-content:center;
  font-family:var(--f-d);font-size:1.5rem;font-weight:500;color:#fff;line-height:1;
}
.logo-name{
  font-family:var(--f-d);font-size:1.35rem;font-weight:600;
  letter-spacing:-.3px;color:var(--tx);
}
.logo-name b{color:var(--r);font-weight:600}

.nav-links{display:flex;align-items:center;gap:2px}
.nav-a{padding:7px 13px;border-radius:var(--r2);font-size:.86rem;font-weight:500;color:var(--tx2);transition:all .18s}
.nav-a:hover{color:var(--tx);background:var(--sf2)}
.nav-r{display:flex;align-items:center;gap:10px;flex-shrink:0}

#thBtn{
  width:40px;height:40px;border-radius:var(--r2);border:1px solid var(--bd);
  background:var(--sf);color:var(--tx2);display:flex;align-items:center;justify-content:center;transition:all .2s;
}
#thBtn:hover{border-color:var(--bd2);color:var(--tx)}
#thBtn svg{width:16px;height:16px}

#mbBtn{
  display:none;width:40px;height:40px;border-radius:var(--r2);border:1px solid var(--bd);
  background:var(--sf);color:var(--tx);align-items:center;justify-content:center;
  flex-direction:column;gap:5px;transition:all .2s;
}
#mbBtn span{width:16px;height:1.5px;background:currentColor;display:block;transition:all .24s;transform-origin:center}
#mbBtn.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
#mbBtn.open span:nth-child(2){opacity:0}
#mbBtn.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}

#drw{
  position:fixed;inset:80px 0 0;background:var(--bg2);z-index:999;
  padding:24px 24px 120px;overflow-y:auto;
  transform:translateX(100%);transition:transform .3s cubic-bezier(.4,0,.2,1);
  border-top:1px solid var(--bd);
}
#drw.open{transform:none}
.drw-a{display:block;padding:16px 0;border-bottom:1px solid var(--bd);color:var(--tx);font-size:1rem;font-weight:500}
.drw-a:hover{color:var(--r)}

#hero{
  min-height:100vh;padding-top:80px;
  position:relative;overflow:hidden;display:flex;align-items:center;
}

.hero-logo-deco{
  position:absolute;right:6%;top:50%;transform:translateY(-50%);
  width:clamp(220px,28vw,400px);
  opacity:.13;pointer-events:none;z-index:1;
  filter:drop-shadow(0 0 40px rgba(192,24,42,.35));
  animation:heroDecoFloat 8s ease-in-out infinite;
}
@keyframes heroDecoFloat{
  0%,100%{transform:translateY(-50%)}
  50%{transform:translateY(-53%)}
}
@media(max-width:900px){.hero-logo-deco{display:none}}
.hero-tartan-panel{
  position:absolute;right:0;top:0;bottom:0;width:45%;
  overflow:hidden;pointer-events:none;
}
.hero-tartan-panel::before{
  content:'';position:absolute;inset:0;
  pointer-events:none;
}
.hero-tartan-inner{
  position:absolute;inset:0;pointer-events:none;
}
.hero-tartan-inner .tartan{position:absolute;inset:-10%;opacity:1;pointer-events:none}

.hero-tartan-panel::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(90deg,var(--bg) 0%,transparent 30%);
  pointer-events:none;z-index:1;
}

.hero-tartan-glow{
  position:absolute;inset:0;
  background:radial-gradient(ellipse 70% 60% at 60% 50%,rgba(192,24,42,.12) 0%,transparent 70%);
  z-index:2;pointer-events:none;
}

.hero-content{
  position:relative;z-index:10;width:100%;
  padding:clamp(48px,8vw,100px) 0;
}
.hero-tag{margin-bottom:28px}
.hero-h{margin-bottom:26px}
.hero-sub{max-width:520px;margin-bottom:42px}
.hero-ctas{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:64px}

.hero-creds{
  display:flex;flex-wrap:wrap;align-items:center;gap:0;
  background:var(--sf);border:1px solid var(--bd);
  border-radius:var(--r4);overflow:hidden;
  width:fit-content;
  backdrop-filter:blur(8px);
}
.hc-item{
  padding:16px 24px;border-right:1px solid var(--bd);
  display:flex;flex-direction:column;gap:3px;
}
.hc-item:last-child{border-right:none}
.hc-val{
  font-family:var(--f-d);font-size:1.95rem;font-weight:600;line-height:1;
  background:linear-gradient(135deg,var(--r) 0%,var(--rs-gold) 100%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
  letter-spacing:-.5px;
}
.hc-lbl{font-size:.7rem;color:var(--tx3);letter-spacing:.04em}

.ticker-wrap{
  overflow:hidden;padding:0;
  border-top:1px solid var(--bd);
  border-bottom:1px solid var(--bd);
  
  position:relative;
}
.ticker-wrap::before{
  content:'';position:absolute;inset:0;
  background-image:repeating-linear-gradient(90deg,var(--tar-r3) 0,var(--tar-r3) 1.5px,transparent 1.5px,transparent 28px);
  pointer-events:none;opacity:.6;
}
.ticker-track{
  display:flex;gap:0;animation:tick 40s linear infinite;
  width:max-content;position:relative;z-index:1;
}

.ti{
  display:flex;align-items:center;gap:14px;padding:14px 44px;
  font-size:.8rem;font-weight:500;color:var(--tx3);white-space:nowrap;
  transition:color .3s;
}
.ti:hover{color:var(--r)}
.ti::before{content:'';width:4px;height:4px;background:var(--r);border-radius:50%;flex-shrink:0}
@keyframes tick{from{transform:translateX(0)}to{transform:translateX(-50%)}}

.sit-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:12px;margin-top:48px}
.sit-card{
  border:1px solid var(--bd);border-radius:var(--r4);padding:22px;
  background:var(--sf);cursor:pointer;transition:all .22s;
  display:flex;align-items:flex-start;gap:14px;position:relative;overflow:hidden;
}
.sit-card::before{
  content:'';position:absolute;left:0;top:0;bottom:0;width:3px;
  background:var(--r);transform:scaleY(0);transition:transform .22s;transform-origin:bottom;
}
.sit-card:hover::before{transform:scaleY(1)}
.sit-card:hover{border-color:var(--r-b);background:var(--sf2);transform:translateX(5px)}
.sit-ic{
  width:42px;height:42px;border-radius:var(--r3);border:1px solid var(--bd);
  background:var(--sf);display:flex;align-items:center;justify-content:center;
  color:var(--r);flex-shrink:0;transition:all .22s;
}
.sit-card:hover .sit-ic{background:var(--r);color:#fff;border-color:var(--r)}
.sit-txt h3{font-size:.9rem;font-weight:600;color:var(--tx);margin-bottom:3px}
.sit-txt p{font-size:.78rem;color:var(--tx2);line-height:1.5}

.svc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;margin-top:48px}
.svc-card{
  background:var(--sf);border:1px solid var(--bd);border-radius:var(--r4);padding:26px;
  transition:all .24s;position:relative;overflow:hidden;
}
.svc-card::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(135deg,var(--r-s),transparent 50%);
  opacity:0;transition:opacity .24s;pointer-events:none;
}
.svc-card:hover::after{opacity:1}
.svc-card:hover{border-color:var(--r-b);transform:translateY(-5px);box-shadow:0 20px 48px rgba(0,0,0,.3),0 0 36px var(--r-g)}
.svc-ic{
  width:46px;height:46px;border-radius:var(--r3);
  background:var(--r-s);border:1px solid var(--r-b);
  display:flex;align-items:center;justify-content:center;
  color:var(--r);margin-bottom:18px;transition:all .22s;position:relative;z-index:1;
}
.svc-card:hover .svc-ic{background:var(--r);color:#fff;border-color:var(--r)}
.svc-t{font-family:var(--f-d);font-size:1.1rem;font-weight:500;color:var(--tx);margin-bottom:7px;position:relative;z-index:1}
.svc-d{font-size:.82rem;color:var(--tx2);line-height:1.6;position:relative;z-index:1}
.svc-tag{
  display:inline-block;margin-top:14px;padding:3px 10px;border-radius:var(--rp);
  font-size:.68rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;
  background:var(--sf3);color:var(--tx3);position:relative;z-index:1;
}

#ci{position:relative;overflow:hidden}

.ci-tartan-bg{position:absolute;inset:0;opacity:.55;pointer-events:none}
.ci-overlay{
  position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,var(--bg) 0%,transparent 15%,transparent 85%,var(--bg) 100%);
  z-index:1;
}
.ci-glow{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:800px;height:400px;
  background:radial-gradient(ellipse,rgba(192,24,42,.18) 0%,transparent 65%);
  border-radius:50%;pointer-events:none;z-index:1;
  animation:ciGlow 6s ease-in-out infinite;
}
@keyframes ciGlow{0%,100%{transform:translate(-50%,-50%) scale(1)}50%{transform:translate(-50%,-50%) scale(1.1)}}

.ci-content{position:relative;z-index:2}
.ci-card{
  max-width:840px;margin:0 auto;
  background:rgba(8,8,13,.75);
  border:1px solid var(--r-b);border-radius:var(--r6);
  padding:clamp(44px,6vw,80px);text-align:center;
  backdrop-filter:blur(24px);
  box-shadow:0 0 100px rgba(192,24,42,.12),var(--sh2);
  position:relative;overflow:hidden;
}

.ci-card::before{
  content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  opacity:.8;
}
.ci-card-tartan{position:absolute;inset:0;border-radius:inherit;overflow:hidden;pointer-events:none;z-index:0}
.ci-card-tartan .tartan-light{position:absolute;inset:0;opacity:.4}
.ci-card-mask{
  position:absolute;inset:0;border-radius:inherit;
  background:linear-gradient(135deg,rgba(8,8,13,.92) 0%,rgba(8,8,13,.78) 50%,rgba(8,8,13,.88) 100%);
  pointer-events:none;z-index:1;
}
[data-theme="light"] .ci-card{background:rgba(250,249,247,.88)}
[data-theme="light"] .ci-card-mask{background:linear-gradient(135deg,rgba(250,249,247,.92),rgba(250,249,247,.78),rgba(250,249,247,.88))}

.ci-card-inner{position:relative;z-index:2}

.ci-status{
  display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:var(--rp);
  background:rgba(16,185,129,.1);border:1px solid rgba(16,185,129,.25);margin-bottom:22px;
}
.ci-status-dot{width:7px;height:7px;background:#10b981;border-radius:50%;animation:ld 2s infinite}
.ci-status span{font-size:.74rem;font-weight:600;color:#10b981}

.ci-title{
  font-family:var(--f-d);
  font-size:clamp(2rem,5vw,3.5rem);
  line-height:1.05;font-weight:400;color:var(--tx);margin-bottom:16px;
}
.ci-sub{font-size:clamp(.9rem,1.8vw,1.05rem);color:var(--tx2);max-width:560px;margin:0 auto 32px;line-height:1.7}

.ci-btn{
  display:inline-flex;align-items:center;gap:14px;
  background:var(--r);color:#fff;
  padding:clamp(18px,3vw,24px) clamp(32px,5vw,56px);
  border-radius:var(--rp);
  font-size:clamp(1rem,2vw,1.15rem);font-weight:700;
  box-shadow:0 4px 40px rgba(192,24,42,.5),0 0 80px rgba(192,24,42,.15);
  transition:all .25s cubic-bezier(.4,0,.2,1);
  position:relative;overflow:hidden;
  animation:btnPulse 3.5s ease-in-out infinite;
}
.ci-btn::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.15) 0%,transparent 50%)}
.ci-btn:hover{background:var(--r-d);transform:translateY(-3px) scale(1.02);box-shadow:0 8px 52px rgba(192,24,42,.6);animation:none}
.ci-btn:active{transform:none}
@keyframes btnPulse{
  0%,100%{box-shadow:0 4px 40px rgba(192,24,42,.5),0 0 80px rgba(192,24,42,.15)}
  50%{box-shadow:0 4px 40px rgba(192,24,42,.6),0 0 100px rgba(192,24,42,.22)}
}

.ci-steps{
  display:grid;grid-template-columns:1fr auto 1fr auto 1fr;
  gap:8px;align-items:center;margin-top:52px;
}
.ci-step{text-align:center}
.ci-sn{
  width:48px;height:48px;border-radius:50%;border:1.5px solid var(--r-b);
  background:var(--r-s);display:flex;align-items:center;justify-content:center;
  font-family:var(--f-d);font-size:1.1rem;color:var(--r);margin:0 auto 12px;
}
.ci-st{font-family:var(--f-d);font-size:1rem;color:var(--tx);margin-bottom:4px}
.ci-sd{font-size:.78rem;color:var(--tx2);line-height:1.5}
.ci-arr{color:var(--r-b)}

.ci-secure{
  display:flex;gap:16px;justify-content:center;flex-wrap:wrap;
  margin-top:28px;padding-top:24px;border-top:1px solid var(--bd);
}
.ci-si{display:flex;align-items:center;gap:5px;font-size:.75rem;color:var(--tx3)}
.ci-si svg{color:var(--r);width:13px;height:13px;flex-shrink:0}

.ci-pricing{
  margin-top:20px;padding:14px 20px;border-radius:var(--r3);
  background:var(--sf2);border:1px solid var(--bd);font-size:.8rem;color:var(--tx2);line-height:1.75;
}

#stats{background:var(--bg2);border-top:1px solid var(--bd);border-bottom:1px solid var(--bd);padding:0}
.stats-row{display:grid;grid-template-columns:repeat(4,1fr)}
.stat{padding:clamp(32px,5vw,60px) clamp(20px,3vw,40px);text-align:center;border-right:1px solid var(--bd);position:relative}
.stat:last-child{border-right:none}

.stat::before{content:'';position:absolute;inset:0;
  background-image:repeating-linear-gradient(90deg,var(--tar-r3) 0,var(--tar-r3) 1px,transparent 1px,transparent 20px);
  opacity:0;transition:opacity .3s;pointer-events:none;
}
.stat:hover::before{opacity:1}
.stat-n{font-family:var(--f-d);font-size:clamp(2.2rem,5vw,3.8rem);color:var(--r);line-height:1;letter-spacing:-.5px}
.stat-l{font-size:.78rem;color:var(--tx2);margin-top:8px;line-height:1.4}

.trust-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:48px}
.trust-card{
  background:var(--sf);border:1px solid var(--bd);border-radius:var(--r4);
  padding:28px;transition:all .22s;
}
.trust-card:hover{border-color:var(--bd2);transform:translateY(-4px);box-shadow:var(--sh)}
.trust-em{font-size:2rem;margin-bottom:16px;display:block}
.trust-t{font-family:var(--f-d);font-size:1.15rem;color:var(--tx);margin-bottom:8px}
.trust-d{font-size:.83rem;color:var(--tx2);line-height:1.65}

.secteur-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:48px}
.secteur-card{
  background:var(--sf);border:1px solid var(--bd);border-radius:var(--r4);
  padding:clamp(26px,3.5vw,40px);transition:all .24s;cursor:pointer;
  position:relative;overflow:hidden;
}

.secteur-card::before{
  content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:
    radial-gradient(ellipse 80% 60% at 100% 100%, rgba(192,24,42,.06) 0%, transparent 55%),
    radial-gradient(ellipse 60% 80% at 0% 0%, rgba(30,50,102,.04) 0%, transparent 50%);
  opacity:0;transition:opacity .35s cubic-bezier(.4,0,.2,1);
}
.secteur-card:hover::before{opacity:1}

.secteur-card::after{
  content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:linear-gradient(
    135deg,
    rgba(255,255,255,.025) 0%,
    transparent 40%,
    transparent 60%,
    rgba(192,24,42,.04) 100%
  );
  opacity:0;transition:opacity .35s;
}
.secteur-card:hover::after{opacity:1}
.secteur-card:hover{border-color:var(--r-b);transform:translateY(-4px);box-shadow:var(--sh)}
.sec-ico{width:40px;height:40px;border-radius:var(--r2);background:rgba(192,24,42,.08);border:1px solid rgba(192,24,42,.15);display:flex;align-items:center;justify-content:center;color:var(--r);margin-bottom:16px;transition:all .24s;flex-shrink:0;}
.secteur-card:hover .sec-ico{background:var(--r);color:#fff;border-color:var(--r)}
.sec-t{font-family:var(--f-d);font-size:1.3rem;color:var(--tx);margin-bottom:8px}
.sec-d{font-size:.84rem;color:var(--tx2);line-height:1.65;margin-bottom:14px}
.sec-chips{display:flex;flex-wrap:wrap;gap:6px}
.sec-chip{padding:3px 10px;border:1px solid var(--bd);border-radius:var(--rp);font-size:.7rem;color:var(--tx3);background:var(--sf2)}

.trust-editorial{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
  margin-top:48px;
  align-items:start;
}
.te-col-left,.te-col-right{display:flex;flex-direction:column;gap:14px}

.te-card-large{
  background:var(--sf);border:1px solid var(--bd);border-radius:var(--r5);
  padding:36px 36px 32px;transition:all .25s;
  position:relative;overflow:hidden;
}
.te-card-large::before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(135deg,rgba(192,24,42,.06) 0%,transparent 55%);
  opacity:0;transition:opacity .25s;pointer-events:none;
}
.te-card-large:hover::before{opacity:1}
.te-card-large:hover{
  border-color:rgba(192,24,42,.25);
  transform:translateY(-4px);
  box-shadow:0 24px 64px rgba(0,0,0,.4);
}
.te-icon{
  width:44px;height:44px;border-radius:var(--r3);
  border:1px solid var(--bd);background:var(--sf2);
  display:flex;align-items:center;justify-content:center;
  color:var(--r);margin-bottom:22px;flex-shrink:0;
  transition:all .25s;
}
.te-card-large:hover .te-icon,
.te-card-sm:hover .te-icon{background:var(--r);color:#fff;border-color:var(--r)}
.te-big-num{display:flex;align-items:baseline;gap:0;margin-bottom:10px;line-height:1}
.te-num{
  font-family:var(--f-d);
  font-size:clamp(4rem,7vw,5.5rem);
  line-height:.95;color:var(--r);font-weight:400;letter-spacing:-2px;
}
.te-unit{
  font-family:var(--f-d);font-size:1.3rem;color:var(--tx3);
  font-weight:300;margin-left:6px;padding-bottom:4px;
}
.te-card-t{
  font-family:var(--f-d);font-size:1.15rem;color:var(--tx);
  margin-bottom:10px;font-weight:400;
}
.te-card-d{font-size:.84rem;color:var(--tx2);line-height:1.7}

.te-card-sm{
  background:var(--sf);border:1px solid var(--bd);border-radius:var(--r4);
  padding:26px;transition:all .25s;position:relative;overflow:hidden;
}
.te-card-sm::before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(135deg,rgba(192,24,42,.04),transparent);
  opacity:0;transition:opacity .25s;pointer-events:none;
}
.te-card-sm:hover::before{opacity:1}
.te-card-sm:hover{
  border-color:rgba(192,24,42,.22);
  transform:translateY(-3px);
  box-shadow:var(--sh);
}
.te-card-sm .te-icon{margin-bottom:16px}
.te-card-sm .te-card-t{
  font-family:var(--f-d);font-size:1.05rem;color:var(--tx);
  margin-bottom:8px;font-weight:400;
}
.te-card-sm .te-card-d{font-size:.82rem;color:var(--tx2);line-height:1.65}

.te-card-row{
  background:var(--sf);border:1px solid var(--bd);border-radius:var(--r4);
  padding:20px 24px;display:flex;align-items:center;gap:0;transition:all .25s;
}
.te-card-row:hover{border-color:rgba(192,24,42,.2);box-shadow:var(--sh)}
.te-row-item{flex:1;display:flex;align-items:flex-start;gap:12px;padding:4px 0}
.te-row-divider{width:1px;height:44px;background:var(--bd);flex-shrink:0;margin:0 20px}
.te-icon-sm{
  width:36px;height:36px;border-radius:var(--r2);border:1px solid var(--bd);
  background:var(--sf2);display:flex;align-items:center;justify-content:center;
  color:var(--r);flex-shrink:0;
}
.te-row-t{font-size:.88rem;font-weight:600;color:var(--tx);margin-bottom:3px}
.te-row-d{font-size:.75rem;color:var(--tx2);line-height:1.5}

@media(max-width:768px){
  .trust-editorial{grid-template-columns:1fr}
  .te-card-row{flex-direction:column;gap:16px;align-items:flex-start}
  .te-row-divider{width:100%;height:1px;margin:8px 0}
}

.testi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;margin-top:48px}
.testi-card{
  background:var(--sf);border:1px solid var(--bd);border-radius:var(--r4);
  padding:26px;transition:all .22s;
}
.testi-card:hover{border-color:var(--bd2);transform:translateY(-3px);box-shadow:var(--sh)}
.stars{color:var(--r);font-size:.95rem;letter-spacing:2px;margin-bottom:14px}
.testi-q{font-family:var(--f-d);font-style:italic;font-size:1.05rem;color:var(--tx);line-height:1.65;margin-bottom:18px}
.testi-by{display:flex;align-items:center;gap:10px}
.testi-av{
  width:38px;height:38px;border-radius:50%;flex-shrink:0;
  background:linear-gradient(135deg,var(--r-d),var(--r));
  display:flex;align-items:center;justify-content:center;
  font-family:var(--f-d);font-size:.95rem;color:#fff;
}
.testi-nm{font-size:.85rem;font-weight:600;color:var(--tx)}
.testi-rl{font-size:.74rem;color:var(--tx3)}
.testi-sr{font-size:.68rem;color:var(--r);font-weight:600;margin-top:1px}

.team-row{display:flex;gap:20px;flex-wrap:wrap;margin-top:48px}
.team-card{
  flex:1;min-width:280px;background:var(--sf);border:1px solid var(--bd);
  border-radius:var(--r4);padding:32px;
  display:flex;flex-direction:column;
  transition:border-color .24s,transform .24s,box-shadow .24s;
}
.team-card:hover{border-color:var(--r-b);transform:translateY(-4px);box-shadow:0 0 40px var(--r-g),var(--sh)}
.team-av{
  width:72px;height:72px;border-radius:50%;
  background:var(--bg4);border:2px solid var(--r-b);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--f-d);font-size:1.8rem;color:var(--r);
  margin-bottom:16px;position:relative;
}
.team-on{position:absolute;bottom:2px;right:2px;width:14px;height:14px;background:#10b981;border-radius:50%;border:2px solid var(--bg2)}
.team-nm{font-family:var(--f-d);font-size:1.4rem;color:var(--tx);margin-bottom:2px}
.team-rl{font-size:.78rem;color:var(--r);font-weight:600;letter-spacing:.04em;margin-bottom:14px}
.team-bio{font-size:.84rem;color:var(--tx2);line-height:1.65;margin-bottom:18px}
.team-btns{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto}
.team-btn{
  display:inline-flex;align-items:center;gap:6px;padding:8px 14px;
  border:1px solid var(--bd);border-radius:var(--rp);font-size:.77rem;font-weight:600;
  color:var(--tx2);background:var(--sf2);
  transition:border-color .18s,color .18s,background .18s;
  cursor:pointer;position:relative;z-index:2;text-decoration:none;
  pointer-events:auto !important;
}
.team-btn:hover{border-color:var(--r-b);color:var(--r);background:var(--r-s)}
.team-btn:focus-visible{outline:2px solid var(--r);outline-offset:3px;border-color:var(--r-b);color:var(--r);background:var(--r-s)}

.faq-wrap{max-width:820px;margin:48px auto 0}
.faq-item{border-bottom:1px solid var(--bd)}
.faq-q{
  display:flex;align-items:center;justify-content:space-between;
  gap:16px;padding:20px 0;cursor:pointer;user-select:none;
  -webkit-user-select:none;
}
.faq-q:hover .faq-qt{color:var(--r)}
.faq-qt{
  font-size:.95rem;font-weight:600;color:var(--tx);
  transition:color .2s;flex:1;
}
.faq-icon{
  width:28px;height:28px;border-radius:50%;
  border:1px solid var(--bd);
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;color:var(--tx3);
  transition:background .22s,border-color .22s,color .22s;
}
.faq-item.open .faq-icon{
  background:var(--r);border-color:var(--r);color:#fff;
}
.faq-icon svg{
  transition:transform .35s cubic-bezier(.4,0,.2,1);
  pointer-events:none;
}
.faq-item.open .faq-icon svg{transform:rotate(45deg)}
.faq-a{
  overflow:hidden;
  height:0;
  transition:height .38s cubic-bezier(.4,0,.2,1);
}
.faq-a-inner{
  padding-bottom:20px;
  font-size:.87rem;color:var(--tx2);line-height:1.75;
}

.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,56px);margin-top:48px;align-items:start}
.fg{margin-bottom:18px}
.fl{display:block;font-size:.78rem;font-weight:600;color:var(--tx);margin-bottom:7px}
.fi{
  width:100%;background:var(--bg3);border:1px solid var(--bd);border-radius:var(--r3);
  padding:13px 15px;color:var(--tx);font-family:var(--f-b);font-size:.88rem;transition:all .2s;
}
.fi:focus{outline:none;border-color:var(--r);box-shadow:0 0 0 3px var(--r-g)}
.fi::placeholder{color:var(--tx3)}
textarea.fi{resize:vertical;min-height:110px;line-height:1.6}
select.fi{appearance:none;cursor:pointer}
.fr{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.fcheck{display:flex;align-items:flex-start;gap:10px;font-size:.77rem;color:var(--tx2);margin-bottom:16px}
.fcheck input{accent-color:var(--r);margin-top:2px;flex-shrink:0}
.c-blocks{display:flex;flex-direction:column;gap:14px}
.cblk{background:var(--sf);border:1px solid var(--bd);border-radius:var(--r3);padding:20px;transition:border-color .2s}
.cblk:hover{border-color:var(--bd2)}
.c-lbl{font-size:.67rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--tx3);margin-bottom:6px}
.c-val{font-size:.95rem;font-weight:600;color:var(--tx)}
.c-lnk{color:var(--r);transition:opacity .18s}
.c-lnk:hover{opacity:.8}
.c-sub{font-size:.73rem;color:var(--tx3);margin-top:3px}
.c-map{height:160px;border-radius:var(--r3);border:1px solid var(--bd);overflow:hidden;background:var(--bg3);margin-top:10px}
.c-map iframe{width:100%;height:100%;border:none;filter:grayscale(.8) opacity(.65)}
.c-sos{background:var(--r-s);border:1px solid var(--r-b);border-radius:var(--r3);padding:18px}
.c-sos h4{font-family:var(--f-d);font-size:.95rem;color:var(--r);margin-bottom:6px}
.c-sos p{font-size:.8rem;color:var(--tx2);margin-bottom:12px}

footer{position:relative;overflow:hidden;border-top:1px solid var(--bd);padding:72px 0 32px}
.ft-tartan-bg{position:absolute;inset:0;pointer-events:none}
.ft-tartan-bg .tartan{position:absolute;inset:0;opacity:.35}
.ft-overlay{
  position:absolute;inset:0;pointer-events:none;
  background:var(--bg2);opacity:.82;
}
[data-theme="light"] .ft-overlay{background:var(--bg2);opacity:.88}
.ft-content{position:relative;z-index:1}
.ft-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:clamp(20px,4vw,48px);margin-bottom:48px}
.ft-brand .logo{margin-bottom:14px}
.ft-desc{font-size:.83rem;color:var(--tx2);line-height:1.7;max-width:260px;margin-bottom:18px}
.ft-soc{display:flex;gap:8px}
.fsoc{width:36px;height:36px;border-radius:var(--r2);border:1px solid var(--bd);background:var(--sf);display:flex;align-items:center;justify-content:center;color:var(--tx2);transition:all .18s}
.fsoc:hover{background:var(--r);border-color:var(--r);color:#fff}
.ft-col h4{font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--tx);margin-bottom:14px}
.ft-lnks{display:flex;flex-direction:column;gap:9px}
.ft-lnks a{font-size:.83rem;color:var(--tx2);transition:color .18s}
.ft-lnks a:hover{color:var(--r)}
.ft-cert{display:flex;flex-direction:column;gap:10px}
.ft-cert-badge{display:block;padding:10px 12px;border-radius:var(--r2);background:rgba(255,255,255,.04);border:1px solid var(--bd);transition:background .25s,border-color .25s,transform .35s,box-shadow .35s;max-width:230px}
.ft-cert-badge img{display:block;height:auto;width:100%;max-width:200px;filter:drop-shadow(0 2px 8px rgba(0,0,30,.3));transition:filter .35s}
.ft-cert-badge:hover{background:rgba(255,255,255,.07);border-color:var(--r-b);transform:translateY(-2px);box-shadow:0 12px 28px -10px rgba(192,24,42,.18)}
.ft-cert-sub{font-size:.72rem;color:var(--tx3);line-height:1.5;max-width:230px}
[data-theme="light"] .ft-cert-badge{background:rgba(255,255,255,.55);border-color:var(--bd2)}
[data-theme="light"] .ft-cert-badge:hover{background:#fff;border-color:var(--r-b)}
.ft-bottom{border-top:1px solid var(--bd);padding-top:24px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;font-size:.74rem;color:var(--tx3)}
.ft-bottom a{color:var(--tx3);transition:color .18s}
.ft-bottom a:hover{color:var(--tx2)}

#cb-wrap{position:fixed;bottom:92px;right:24px;z-index:800}

#cb-win{
  width:min(360px,calc(100vw - 48px));
  background:var(--bg2);border:1px solid var(--bd);border-radius:var(--r5);
  box-shadow:var(--sh2);overflow:hidden;display:flex;flex-direction:column;
  transform:scale(.85) translateY(18px);opacity:0;pointer-events:none;
  transition:all .28s cubic-bezier(.4,0,.2,1);transform-origin:bottom right;
}
#cb-win.open{transform:none;opacity:1;pointer-events:all}

.cb-head{position:relative;overflow:hidden;padding:14px 18px;display:flex;align-items:center;gap:12px}
.cb-head-tartan{position:absolute;inset:0;pointer-events:none}
.cb-head-tartan .tartan{position:absolute;inset:-5%;opacity:.8}
.cb-head-overlay{position:absolute;inset:0;background:linear-gradient(135deg,var(--r-d),var(--r));pointer-events:none}
.cb-head-content{position:relative;z-index:1;display:flex;align-items:center;gap:12px;width:100%}
.cb-av{width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.2);border:1.5px solid rgba(255,255,255,.3);display:flex;align-items:center;justify-content:center;font-size:1.1rem;flex-shrink:0;position:relative}
.cb-online-dot{position:absolute;bottom:0;right:0;width:11px;height:11px;background:#10b981;border-radius:50%;border:2px solid var(--r)}
.cb-info h4{font-size:.88rem;font-weight:700;color:#fff}
.cb-info p{font-size:.7rem;color:rgba(255,255,255,.65)}
.cb-close-btn{margin-left:auto;background:rgba(255,255,255,.15);border:none;color:#fff;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .18s;flex-shrink:0}
.cb-close-btn:hover{background:rgba(255,255,255,.28)}
.cb-api-note{background:var(--r-s);border:1px solid var(--r-b);border-radius:var(--r2);padding:9px 13px;margin:12px;font-size:.73rem;color:var(--r-txt);line-height:1.5;display:none}
.cb-msgs{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:10px;min-height:250px;max-height:340px;scroll-behavior:smooth}
.cb-msgs::-webkit-scrollbar{width:3px}
.cb-msgs::-webkit-scrollbar-thumb{background:var(--bd2);border-radius:2px}
.cb-m{max-width:88%;animation:mIn .26s ease}
@keyframes mIn{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
.cb-m.bot{align-self:flex-start}
.cb-m.user{align-self:flex-end}
.cb-bub{padding:9px 13px;border-radius:var(--r3);font-size:.82rem;line-height:1.5}
.cb-m.bot .cb-bub{background:var(--sf3);border:1px solid var(--bd);color:var(--tx);border-bottom-left-radius:4px}
.cb-m.user .cb-bub{background:var(--r);color:#fff;border-bottom-right-radius:4px}
.cb-ts{font-size:.64rem;color:var(--tx3);margin-top:3px;padding:0 3px}
.cb-m.user .cb-ts{text-align:right}
.cb-quick{padding:8px 14px;display:flex;flex-wrap:wrap;gap:5px;border-top:1px solid var(--bd)}
.cb-qb{padding:5px 11px;border:1px solid var(--bd);border-radius:var(--rp);font-size:.72rem;font-weight:600;color:var(--tx2);background:var(--sf);cursor:pointer;transition:all .18s}
.cb-qb:hover{border-color:var(--r-b);color:var(--r);background:var(--r-s)}
.cb-foot{padding:10px 14px;border-top:1px solid var(--bd);display:flex;gap:8px}
#cbInp{flex:1;background:var(--bg3);border:1px solid var(--bd);border-radius:var(--r2);padding:9px 13px;color:var(--tx);font-family:var(--f-b);font-size:.83rem;transition:border-color .18s}
#cbInp:focus{outline:none;border-color:var(--r-b)}
#cbSnd{width:36px;height:36px;background:var(--r);color:#fff;border-radius:var(--r2);display:flex;align-items:center;justify-content:center;transition:background .18s;flex-shrink:0}
#cbSnd:hover{background:var(--r-d)}
.tdot{width:6px;height:6px;background:var(--tx3);border-radius:50%;animation:tdB 1.1s ease-in-out infinite}
.tdot:nth-child(2){animation-delay:.15s}.tdot:nth-child(3){animation-delay:.3s}
@keyframes tdB{0%,80%,100%{transform:translateY(0)}40%{transform:translateY(-6px)}}

#pill{
  position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(120px);
  z-index:700;width:min(520px,calc(100vw - 32px));
  display:flex;align-items:center;gap:10px;
  border-radius:var(--rp);padding:8px 10px 8px 18px;
  opacity:0;transition:transform .45s cubic-bezier(.34,1.56,.64,1),opacity .3s;
  
  background:var(--gl);backdrop-filter:blur(32px);-webkit-backdrop-filter:blur(32px);
  border:1px solid var(--r-b);
  box-shadow:0 0 50px var(--r-g2),var(--sh2);
  overflow:hidden;
}

.pill-tartan{position:absolute;inset:0;pointer-events:none;z-index:0}
.pill-tartan .tartan-light{position:absolute;inset:0;opacity:.7}

.pill-stripe{position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--r),var(--r-l),var(--r),transparent);pointer-events:none;z-index:1}
#pill.show{transform:translateX(-50%) translateY(0);opacity:1}
.pill-txt{flex:1;min-width:0;position:relative;z-index:2}
.pill-txt strong{font-size:.82rem;font-weight:700;color:var(--tx);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pill-txt span{font-size:.72rem;color:var(--tx2)}
.pill-dl{
  display:flex;align-items:center;gap:8px;
  background:var(--r);color:#fff;padding:10px 20px;border-radius:var(--rp);
  font-size:.84rem;font-weight:700;white-space:nowrap;flex-shrink:0;
  box-shadow:0 2px 16px rgba(192,24,42,.4);
  transition:background .18s;position:relative;z-index:2;
}
.pill-dl:hover{background:var(--r-d)}
.pill-chat{
  width:38px;height:38px;border-radius:50%;border:1px solid var(--bd2);
  background:var(--sf2);display:flex;align-items:center;justify-content:center;
  color:var(--tx2);transition:all .18s;flex-shrink:0;position:relative;z-index:2;
}
.pill-chat:hover{border-color:var(--r-b);color:var(--r)}

.sr{opacity:0;transform:translateY(28px);transition:opacity .65s ease,transform .65s ease}
.sr.v{opacity:1;transform:none}
.d1{transition-delay:.1s}.d2{transition-delay:.2s}.d3{transition-delay:.3s}
.d4{transition-delay:.4s}.d5{transition-delay:.5s}.d6{transition-delay:.6s}.d7{transition-delay:.7s}

@media(max-width:900px){
  .nav-links{display:none}
  #mbBtn{display:flex}
  .hero-tartan-panel{width:100%;height:300px;position:static;margin-bottom:-60px}
  .hero-tartan-panel::after{background:linear-gradient(0deg,var(--bg) 0%,transparent 40%)}
  .hero-creds{width:100%}
  .stats-row{grid-template-columns:repeat(2,1fr)}
  .trust-grid{grid-template-columns:1fr}
  .contact-layout{grid-template-columns:1fr}
  .ft-grid{grid-template-columns:1fr 1fr}
  .ci-steps{grid-template-columns:1fr;gap:20px}
  .ci-arr{display:none}
  #pill{width:calc(100vw - 32px)}
  .pill-txt span{display:none}
  #nav{height:68px}
  #drw{inset:68px 0 0}
  .brand-img{height:48px}
  .logo{height:48px}
}
@media(max-width:640px){
  #hero{flex-direction:column;align-items:flex-start}
  .hero-tartan-panel{width:100%}
  .stats-row{grid-template-columns:1fr}
  .stat{border-right:none;border-bottom:1px solid var(--bd)}
  .stat:last-child{border-bottom:none}
  .secteur-grid{grid-template-columns:1fr}
  .fr{grid-template-columns:1fr}
  .ft-grid{grid-template-columns:1fr}
  .nav-r .btn{display:none}
}
@supports(padding-bottom:env(safe-area-inset-bottom)){
  #pill{bottom:calc(20px + env(safe-area-inset-bottom))}
  #cb-wrap{bottom:calc(96px + env(safe-area-inset-bottom))}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important}
}

@keyframes pageFadeIn{
  from{opacity:0;transform:scale(1.01)}
  to{opacity:1;transform:none}
}
body.page-entering{animation:pageFadeIn .6s cubic-bezier(.4,0,.2,1) both}
body.page-leaving{
  animation:none;
  transition:opacity .35s ease,transform .35s ease;
  opacity:0;transform:scale(.99);pointer-events:none;
}

.histoire-link{
  display:inline-flex;align-items:center;gap:6px;
  color:var(--tx);font-weight:600;
  border-bottom:1px solid rgba(192,24,42,.4);
  padding-bottom:1px;
  cursor:pointer;
  transition:all .22s cubic-bezier(.4,0,.2,1);
  text-decoration:none;
  position:relative;
}
.histoire-link::after{
  content:'';position:absolute;bottom:-1px;left:0;right:0;height:1px;
  background:var(--r);transform:scaleX(0);transform-origin:left;
  transition:transform .28s cubic-bezier(.4,0,.2,1);
}
.histoire-link:hover::after{transform:scaleX(1)}
.histoire-link:hover{color:var(--r)}
.histoire-link svg{
  width:13px;height:13px;flex-shrink:0;
  opacity:.6;transition:all .22s;
  transform:translateX(0);
}
.histoire-link:hover svg{opacity:1;transform:translateX(3px)}

@keyframes pageFadeIn{from{opacity:0;transform:scale(1.012)}to{opacity:1;transform:none}}
body.entering{animation:pageFadeIn .55s cubic-bezier(.4,0,.2,1) both}
body.leaving{transition:opacity .32s,transform .32s;opacity:0;transform:scale(.988);pointer-events:none}

.nav-active{color:var(--r)!important;font-weight:600!important}

#hero-histoire{
  min-height:100vh;padding-top:80px;
  position:relative;overflow:hidden;
  display:flex;align-items:center;justify-content:center;
  text-align:center;
}
.hh-bg{position:absolute;inset:0;overflow:hidden;pointer-events:none}

.hh-tartan{position:absolute;inset:-10%;opacity:.55;pointer-events:none}
.hh-veil{
  position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(ellipse 70% 65% at 50% 50%, rgba(8,8,13,.72) 0%, transparent 70%),
    linear-gradient(180deg,var(--bg) 0%,transparent 12%,transparent 85%,var(--bg) 100%);
}
.hh-orb-r{
  position:absolute;top:25%;right:12%;
  width:clamp(300px,40vw,580px);height:clamp(300px,40vw,580px);
  background:radial-gradient(ellipse,rgba(192,24,42,.18) 0%,transparent 65%);
  border-radius:50%;animation:orbFloat 7s ease-in-out infinite;pointer-events:none;
}
.hh-orb-n{
  position:absolute;bottom:20%;left:8%;
  width:clamp(200px,28vw,400px);height:clamp(200px,28vw,400px);
  background:radial-gradient(ellipse,var(--r-g) 0%,transparent 65%);
  border-radius:50%;animation:orbFloat 9s ease-in-out infinite reverse;pointer-events:none;
}
@keyframes orbFloat{0%,100%{transform:scale(1)}50%{transform:scale(1.1)}}

.hh-content{position:relative;z-index:10;padding:clamp(48px,8vw,100px) 24px;max-width:920px;margin:0 auto}

.hh-pill{
  display:inline-flex;align-items:center;gap:8px;
  padding:7px 18px;border-radius:var(--rp);
  border:1px solid var(--r-b);background:var(--r-s);
  font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  color:var(--r-txt);margin-bottom:28px;
}
.hh-pill::before{content:'';width:6px;height:6px;background:var(--r);border-radius:50%;animation:ld 2s infinite}

.hh-title{
  font-family:var(--f-d);
  font-size:clamp(3.5rem,9vw,8rem);
  line-height:.92;font-weight:400;color:var(--tx);
  letter-spacing:-2px;margin-bottom:24px;
}
.hh-title em{font-style:italic;color:var(--r)}
.hh-sub{
  font-size:clamp(1rem,2vw,1.15rem);color:var(--tx2);
  line-height:1.75;max-width:600px;margin:0 auto 52px;
}
.hh-scroll{
  display:flex;flex-direction:column;align-items:center;gap:8px;
  color:var(--tx3);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;
}
.hh-scroll-line{
  width:1px;height:48px;
  background:linear-gradient(180deg,var(--r),transparent);
  animation:scrollPulse 2.2s ease-in-out infinite;
}
@keyframes scrollPulse{0%,100%{opacity:.4;transform:scaleY(.7)}50%{opacity:1;transform:scaleY(1)}}

.chapter-header{
  display:flex;align-items:flex-end;gap:clamp(20px,4vw,48px);
  padding:clamp(80px,10vw,130px) 0 clamp(32px,4vw,48px);
  border-bottom:1px solid var(--bd);
  margin-bottom:clamp(40px,5vw,64px);
}
.ch-roman{
  font-family:var(--f-d);
  font-size:clamp(5rem,12vw,10rem);
  line-height:.88;font-weight:300;
  color:var(--r);opacity:.2;letter-spacing:-4px;flex-shrink:0;
}
.ch-text {}
.ch-eye{
  font-size:.7rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  color:var(--r);display:block;margin-bottom:10px;
  display:flex;align-items:center;gap:8px;
}
.ch-eye::before{content:'';width:22px;height:1.5px;background:var(--r);flex-shrink:0}
.ch-title{
  font-family:var(--f-d);
  font-size:clamp(2rem,5vw,3.8rem);
  line-height:1.05;font-weight:400;color:var(--tx);
}
.ch-title em{font-style:italic;color:var(--r-l)}

.video-wrap{
  border-radius:var(--r5);overflow:hidden;
  border:1px solid var(--bd);
  box-shadow:var(--sh2);
  position:relative;
  background:var(--bg2);
}

.video-wrap::before{
  content:'';position:absolute;top:0;left:0;right:0;height:3px;z-index:2;
  background:linear-gradient(90deg,
    var(--r-d) 0%,var(--r) 30%,
    var(--r-l) 50%,
    var(--r) 70%,var(--r-d) 100%
  );
}

.video-wrap::after{
  content:'';position:absolute;inset:0;pointer-events:none;z-index:1;
  background:
    radial-gradient(ellipse 80% 50% at 100% 100%,rgba(192,24,42,.06) 0%,transparent 55%),
    radial-gradient(ellipse 60% 70% at 0% 0%,var(--r-s) 0%,transparent 50%);
}
.video-ratio{position:relative;padding-bottom:56.25%;height:0;overflow:hidden}
.video-ratio iframe{
  position:absolute;inset:0;width:100%;height:100%;border:none;
}
.video-placeholder{
  position:absolute;inset:0;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;
  background:var(--bg3);color:var(--tx2);font-size:.88rem;text-align:center;padding:32px;
}
.video-placeholder svg{color:var(--r);opacity:.4;width:52px;height:52px}
.video-placeholder code{
  font-family:monospace;font-size:.78rem;background:var(--bg2);
  padding:7px 14px;border-radius:var(--r2);border:1px solid var(--bd);color:var(--tx3);
}

.video-meta{
  display:grid;grid-template-columns:1fr auto;gap:32px;align-items:start;
  padding:clamp(24px,3.5vw,40px) 0 clamp(60px,8vw,100px);
}
.vm-year{
  font-family:var(--f-d);
  font-size:clamp(3rem,7vw,5.5rem);
  color:var(--r);line-height:.9;font-weight:400;letter-spacing:-2px;
  margin-bottom:10px;
}
.vm-title{
  font-family:var(--f-d);
  font-size:clamp(1.3rem,2.5vw,1.8rem);
  color:var(--tx);line-height:1.15;font-weight:400;margin-bottom:10px;
}
.vm-desc{font-size:.87rem;color:var(--tx2);line-height:1.75;max-width:560px}
.vm-tags{display:flex;flex-direction:column;gap:8px;align-items:flex-end;padding-top:8px;flex-shrink:0}
.vm-tag{
  display:inline-flex;align-items:center;gap:7px;
  padding:6px 16px;border-radius:var(--rp);
  border:1px solid var(--bd);background:var(--sf);
  font-size:.74rem;font-weight:600;color:var(--tx2);white-space:nowrap;
}
.vm-tag.red{border-color:var(--r-b);background:var(--r-s);color:var(--r-txt)}
.vm-dot{width:5px;height:5px;background:var(--r);border-radius:50%;flex-shrink:0}

.ch-divider{
  display:flex;align-items:center;gap:20px;padding:clamp(20px,3vw,36px) 0;
}
.cdl{flex:1;height:1px;background:var(--bd)}
.cdi{
  width:40px;height:40px;border-radius:50%;border:1px solid var(--bd);
  background:var(--sf);display:flex;align-items:center;justify-content:center;
  color:var(--tx3);flex-shrink:0;
}
.cdt{font-family:var(--f-d);font-size:.88rem;color:var(--tx3);white-space:nowrap;letter-spacing:.03em}

.ch2-section{
  position:relative;overflow:hidden;
  background:var(--bg2);
  border-top:1px solid var(--bd);border-bottom:1px solid var(--bd);
}
.ch2-tartan{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.ch2-tartan .tartan{position:absolute;inset:-10%;opacity:.35}
.ch2-tartan::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(180deg,var(--bg2) 0%,transparent 18%,transparent 82%,var(--bg2) 100%);
}
.ch2-section .w{position:relative;z-index:2;padding-top:clamp(80px,10vw,130px);padding-bottom:clamp(80px,10vw,130px)}

.human-badge{
  display:inline-flex;align-items:center;gap:8px;margin-bottom:22px;
  padding:6px 16px;border-radius:var(--rp);
  border:1px solid var(--r-b);background:var(--r-s);
  font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--r-txt);
}
.human-badge::before{content:'';width:5px;height:5px;background:var(--r);border-radius:50%}

.ch3-section{position:relative;overflow:hidden}
.ch3-section .w{
  position:relative;z-index:2;
  padding-top:clamp(80px,10vw,130px);padding-bottom:clamp(80px,10vw,130px);
}
.nostalgie-tag{
  display:inline-flex;align-items:center;gap:8px;margin-bottom:20px;
  padding:5px 14px;border-radius:var(--rp);border:1px solid var(--bd);background:var(--sf);
  font-size:.7rem;font-weight:600;color:var(--tx3);letter-spacing:.08em;text-transform:uppercase;
}

.quote-block{
  border-left:3px solid var(--r);padding:clamp(20px,3vw,32px) clamp(20px,3vw,36px);
  margin:clamp(32px,4vw,48px) 0;background:var(--r-s);border-radius:0 var(--r3) var(--r3) 0;
}
.quote-text{
  font-family:var(--f-d);font-style:italic;
  font-size:clamp(1.2rem,2.5vw,1.7rem);
  color:var(--tx);line-height:1.45;font-weight:400;margin-bottom:14px;
}
.quote-author{font-size:.8rem;color:var(--tx3);letter-spacing:.05em}
.quote-author strong{color:var(--tx2)}

.metrics-row{
  display:flex;gap:0;border:1px solid var(--bd);border-radius:var(--r4);
  overflow:hidden;margin:clamp(24px,3.5vw,44px) 0;background:var(--sf);
}
.metric{flex:1;padding:clamp(20px,3vw,36px);border-right:1px solid var(--bd);text-align:center}
.metric:last-child{border-right:none}
.metric-val{
  font-family:var(--f-d);font-size:clamp(2rem,5vw,3.5rem);
  color:var(--r);line-height:1;font-weight:400;letter-spacing:-1px;
}
.metric-lbl{font-size:.75rem;color:var(--tx3);margin-top:6px;line-height:1.4}

.final-section{
  position:relative;overflow:hidden;text-align:center;
  padding:clamp(80px,10vw,140px) 0;
  border-top:1px solid var(--bd);
}
.fs-tartan{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.fs-tartan .tartan{position:absolute;inset:-10%;opacity:.4}
.fs-tartan::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(180deg,var(--bg) 0%,transparent 25%,transparent 75%,var(--bg) 100%);
}
.fs-content{position:relative;z-index:2}
.fs-eye{
  font-size:.7rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  color:var(--r);display:flex;align-items:center;justify-content:center;gap:8px;
  margin-bottom:16px;
}
.fs-eye::before,.fs-eye::after{content:'';width:22px;height:1.5px;background:var(--r)}
.fs-title{
  font-family:var(--f-d);
  font-size:clamp(2.2rem,5.5vw,4.5rem);
  line-height:1.05;font-weight:400;color:var(--tx);margin-bottom:18px;
}
.fs-title em{font-style:italic;color:var(--r)}
.fs-sub{font-size:.95rem;color:var(--tx2);max-width:500px;margin:0 auto 40px;line-height:1.75}
.fs-btns{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}


.sr{opacity:0;transform:translateY(26px);transition:opacity .65s ease,transform .65s ease}
.sr.v{opacity:1;transform:none}
.d1{transition-delay:.1s}.d2{transition-delay:.2s}.d3{transition-delay:.3s}.d4{transition-delay:.4s}.d5{transition-delay:.5s}.d6{transition-delay:.6s}.d7{transition-delay:.7s}

/* MOBILE: scroll-reveal — short slide-up (12px) + fast fade. Reliable taps. */
@media (max-width: 900px){
  .sr{
    transform: translateY(12px) !important;
    transition: opacity .45s ease, transform .45s ease !important;
  }
  .sr.v{transform: none !important}
  .sr.d1, .sr.d2, .sr.d3{transition-delay:.05s !important}
  .sr.d4, .sr.d5, .sr.d6, .sr.d7{transition-delay:.1s !important}
  body.leaving{ pointer-events: auto !important; }
}

@media(max-width:900px){
  .nav-links{display:none}
  #mbBtn{display:flex}
  .chapter-header{flex-direction:column;gap:12px;align-items:flex-start}
  .ch-roman{font-size:clamp(3rem,15vw,5rem);opacity:.18}
  .video-meta{grid-template-columns:1fr}
  .vm-tags{align-items:flex-start;flex-direction:row;flex-wrap:wrap}
  .metrics-row{flex-direction:column}
  .metric{border-right:none;border-bottom:1px solid var(--bd)}
  .metric:last-child{border-bottom:none}
}
@media(max-width:640px){
  .nav-r .btn-r{display:none}
  .video-meta{gap:20px}
}

#hero-histoire{background:var(--bg)}
.hh-tartan{opacity:.68}
[data-theme="light"] .hh-tartan{opacity:.42}
.hh-veil{
  background:
    radial-gradient(ellipse 80% 60% at 50% 50%,rgba(192,24,42,.10) 0%,transparent 60%),
    linear-gradient(
      180deg,
      var(--bg) 0%,
      rgba(8,8,13,.42) 24%,
      rgba(8,8,13,.42) 76%,
      var(--bg) 100%
    );
}
[data-theme="light"] .hh-veil{
  background:
    radial-gradient(ellipse 80% 60% at 50% 50%,rgba(192,24,42,.06) 0%,transparent 65%),
    linear-gradient(
      180deg,
      var(--bg) 0%,
      rgba(250,249,247,.58) 24%,
      rgba(250,249,247,.58) 76%,
      var(--bg) 100%
    );
}
.hh-orb-r{opacity:.85;mix-blend-mode:screen}
.hh-orb-n{opacity:.65;mix-blend-mode:screen}
[data-theme="light"] .hh-orb-r{opacity:.45;mix-blend-mode:multiply}
[data-theme="light"] .hh-orb-n{opacity:.25;mix-blend-mode:multiply}
.ch2-section,.ch3-section{background:var(--bg);border-top:1px solid var(--bd);border-bottom:1px solid var(--bd)}
.ch2-tartan .tartan{opacity:.45}
[data-theme="light"] .ch2-tartan .tartan{opacity:.32}
.ch2-tartan::after{
  background:linear-gradient(180deg,var(--bg) 0%,rgba(8,8,13,.48) 22%,rgba(8,8,13,.48) 78%,var(--bg) 100%);
}
[data-theme="light"] .ch2-tartan::after{
  background:linear-gradient(180deg,var(--bg) 0%,rgba(250,249,247,.58) 22%,rgba(250,249,247,.58) 78%,var(--bg) 100%);
}
.video-wrap{background:var(--bg2);border-color:var(--bd)}
.video-wrap::before{background:linear-gradient(90deg,var(--r-d),var(--r),var(--r-l),var(--r),var(--r-d))}
.video-wrap::after{
  background:
    radial-gradient(ellipse 80% 50% at 100% 100%,var(--r-s) 0%,transparent 55%),
    radial-gradient(ellipse 60% 70% at 0% 0%,var(--sf2) 0%,transparent 50%);
}
.metrics-row,.metric,.cdi,.vm-tag,.nostalgie-tag{background:var(--sf);border-color:var(--bd)}
.quote-block{background:var(--r-s);border-left-color:var(--r)}
.final-section{background:var(--bg2)}
.fs-tartan .tartan{opacity:.48}
[data-theme="light"] .fs-tartan .tartan{opacity:.34}
.fs-tartan::after{
  background:
    radial-gradient(ellipse 70% 55% at 50% 50%,rgba(192,24,42,.08) 0%,transparent 65%),
    linear-gradient(180deg,var(--bg2) 0%,rgba(13,13,20,.52) 25%,rgba(13,13,20,.52) 75%,var(--bg2) 100%);
}
[data-theme="light"] .fs-tartan::after{
  background:
    radial-gradient(ellipse 70% 55% at 50% 50%,rgba(192,24,42,.05) 0%,transparent 65%),
    linear-gradient(180deg,var(--bg2) 0%,rgba(243,241,238,.62) 25%,rgba(243,241,238,.62) 75%,var(--bg2) 100%);
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important}}

/* — Typography polish — secondary text legibility — */
:root{--tx2:#b3a3a3;--tx3:#7e6e74}
[data-theme="light"]{--tx2:#4a3c42;--tx3:#7a6c72}

.quote-author{font-size:.95rem;line-height:1.6}
.vm-desc{font-size:.95rem;line-height:1.72}
.vm-tag{font-size:.78rem}
.metric-lbl{font-size:.84rem;line-height:1.5}
.cdi{font-size:.92rem;line-height:1.7}
.nostalgie-tag{font-size:.78rem}
@media(max-width:640px){
  body{font-size:16.5px;line-height:1.62}
  .vm-desc,.cdi{font-size:.98rem;line-height:1.75}
  .metric-lbl{font-size:.88rem}
}

/* — Defensive: decorative overlays must NOT capture taps. — */
.tartan,
.tartan-light,
[class*="-tartan"],
[class*="-tartan"]::before,
[class*="-tartan"]::after,
[class*="-overlay"],
[class*="-overlay"]::before,
[class*="-overlay"]::after,
[class*="-glow"],
[class*="-glow"]::before,
[class*="-glow"]::after,
[class*="-mask"],
[class*="-mask"]::before,
[class*="-mask"]::after,
[class*="-veil"],
[class*="-veil"]::before,
[class*="-veil"]::after,
.hero-tartan-panel,
.hero-tartan-panel *,
.hero-tartan-panel::before,
.hero-tartan-panel::after,
.ft-tartan-bg,
.ft-tartan-bg *,
.hh-bg,
.hh-bg *,
.hh-orb-r,
.hh-orb-n,
#prog{
  pointer-events:none;
}

a,button,input,textarea,select,label,
[role="button"],[role="link"],[role="switch"],[role="dialog"]{
  pointer-events:auto;
}

/* — Mobile interactions hardening — */
a, button, input, textarea, select, label,
[role="button"], [role="link"], [role="switch"], [role="tab"],
.btn, .nav-a, .drw-a, .vm-card, .vm-tag,
.histoire-link, .team-btn, #mbBtn, #thBtn{
  touch-action: manipulation;
  -webkit-tap-highlight-color: rgba(192,24,42,.16);
}
@media (hover: none){
  .btn-r:hover{background:var(--r);transform:none}
  .btn-o:hover{border-color:var(--bd2);color:var(--tx);background:var(--sf);transform:none}
  .nav-a:hover{color:var(--tx2);background:transparent}
  .vm-card:hover{transform:none;box-shadow:none}
  .logo:hover .brand-img{transform:none}
  .histoire-link:hover{color:var(--tx)}
  .team-btn:hover{border-color:var(--bd);color:var(--tx2);background:var(--sf2)}
}
@media (max-width: 900px){
  .btn{min-height:48px}
  .btn-lg{min-height:52px}
  .nav-a, .drw-a{min-height:44px;display:flex;align-items:center}
  .team-btn{min-height:44px;padding:10px 14px}
  #mbBtn, #thBtn{min-width:44px;min-height:44px}
}
.btn:active, .histoire-link:active{transform:scale(.98);transition:transform .06s ease}

/* Mobile footer safety: links never in the unsafe bottom zone */
@media (max-width: 900px){
  footer{padding:60px 0 calc(80px + env(safe-area-inset-bottom)) !important}
}
/* — Signature "Fait avec ♥ en France" — */
.ft-made{
  display:inline-flex;align-items:center;gap:5px;
  font-size:.68rem;color:var(--tx3);letter-spacing:.06em;
  opacity:.6;white-space:nowrap;
}
.ft-heart{display:block;width:15px;height:15px;flex-shrink:0}
.ft-heart-l{display:none}
.ft-heart-d{animation:hbeat-d 5.5s ease-in-out infinite}
[data-theme="light"] .ft-heart-d{display:none}
[data-theme="light"] .ft-heart-l{display:block;animation:hbeat-l 5.5s ease-in-out infinite}
@keyframes hbeat-d{
  0%,100%{transform:scale(1);filter:drop-shadow(0 0 2px rgba(192,24,42,.2))}
  50%{transform:scale(1.1);filter:drop-shadow(0 0 6px rgba(192,24,42,.65))}
}
@keyframes hbeat-l{
  0%,100%{transform:scale(1);filter:drop-shadow(0 0 1.5px rgba(155,18,32,.18))}
  50%{transform:scale(1.1);filter:drop-shadow(0 0 4px rgba(155,18,32,.42))}
}
@media(min-width:641px){
  /* Footer bottom — groupe compact centré : copyright | ❤️ | SIRET */
  .ft-bottom{
    display:grid;
    grid-template-columns:auto auto auto;
    grid-template-rows:auto auto;
    justify-content:center;
    align-items:baseline;
    gap:0 clamp(20px,2.8vw,48px);
    border-top:none;
    padding-top:18px;
    margin-top:0;
  }
  .ft-made{
    grid-column:2;
    grid-row:1;
    width:auto;
    padding:0 0 14px;
    border-bottom:1px solid var(--bd);
    justify-content:center;
    opacity:.72;
  }
  .ft-bottom > span:first-child{
    grid-column:1;
    grid-row:2;
  }
  .ft-bottom > span:last-child{
    grid-column:3;
    grid-row:2;
    white-space:nowrap;
    font-size:.68rem;
    letter-spacing:-.01em;
    padding-top:0;
  }
}

/* ==========================================================================
   Royal Stewart direction art -- histoire page
   ========================================================================== */
:root{
  --r:#b91527;--r-d:#750814;--r-l:#df3044;--gold:#b99435;--navy:#08152d;--green:#113820;--ivory:#e9edf3;
  --bg:#05070d;--bg2:#090c14;--bg3:#10131d;--bg4:#171b27;
  --sf:rgba(235,239,247,.045);--sf2:rgba(235,239,247,.075);--sf3:rgba(235,239,247,.115);
  --bd:rgba(226,232,242,.09);--bd2:rgba(226,232,242,.16);
  --tx:#f2f5fb;--tx2:#a5acbc;--tx3:#687084;--gl:rgba(5,7,13,.78);
  --r-g:rgba(185,21,39,.16);--r-g2:rgba(185,21,39,.28);--r-s:rgba(185,21,39,.085);--r-b:rgba(185,21,39,.28);--r-txt:#ff7888;
  --sh:0 18px 54px rgba(0,0,0,.34);--sh2:0 28px 90px rgba(0,0,0,.52);

  /* Palette Royal Stewart — alignée avec index.css pour cohérence cross-page */
  --rs-red:#B81525;--rs-red-deep:#7C0E18;
  --rs-gold:#C49A24;--rs-gold-soft:rgba(196,154,36,.34);
  --rs-navy:#0E1E46;--rs-navy-soft:rgba(14,30,70,.44);
  --rs-green:#103820;--rs-green-soft:rgba(16,56,32,.40);
  --rs-ivory:#E8E0D4;--rs-onyx:#06040A;
}
[data-theme="light"]{
  --bg:#f6f8fb;--bg2:#eef2f7;--bg3:#e5eaf2;--bg4:#d8dfeb;
  --sf:rgba(6,12,25,.035);--sf2:rgba(6,12,25,.055);--sf3:rgba(6,12,25,.085);
  --bd:rgba(9,19,39,.085);--bd2:rgba(9,19,39,.15);
  --tx:#080b12;--tx2:#485165;--tx3:#7f889c;--gl:rgba(246,248,251,.88);
  --r-s:rgba(185,21,39,.07);--r-b:rgba(185,21,39,.22);--r-txt:#8f101d;
  --sh:0 18px 48px rgba(8,18,38,.10);--sh2:0 28px 90px rgba(8,18,38,.16);
  --rs-red:#C3192B;--rs-red-deep:#8B1019;
  --rs-gold:#B08A20;--rs-gold-soft:rgba(176,138,32,.30);
  --rs-navy:#142246;--rs-navy-soft:rgba(20,34,70,.36);
  --rs-green:#1A3D26;--rs-green-soft:rgba(26,61,38,.32);
  --rs-ivory:#F6F2EA;--rs-onyx:#08060E;
}
body{
  background:
    radial-gradient(ellipse 82% 48% at 72% -10%,rgba(185,21,39,.18),transparent 62%),
    radial-gradient(ellipse 58% 42% at 12% 8%,rgba(8,21,45,.55),transparent 64%),
    linear-gradient(180deg,var(--bg),var(--bg2) 48%,var(--bg));
}
[data-theme="light"] body{
  background:
    radial-gradient(ellipse 82% 44% at 76% -12%,rgba(185,21,39,.105),transparent 64%),
    radial-gradient(ellipse 58% 42% at 10% 8%,rgba(8,21,45,.08),transparent 66%),
    linear-gradient(180deg,var(--bg),var(--bg2) 48%,var(--bg));
}
body::before{
  content:'';position:fixed;inset:0;z-index:-2;pointer-events:none;
  background-image:
    linear-gradient(90deg,rgba(185,21,39,.12) 0 2px,transparent 2px 76px,rgba(5,7,13,.40) 76px 84px,rgba(185,148,53,.16) 84px 88px,rgba(232,237,245,.15) 88px 91px,rgba(8,21,45,.24) 91px 120px,rgba(17,56,32,.18) 120px 148px,rgba(5,7,13,.38) 148px 156px,transparent 156px 192px),
    linear-gradient(0deg,rgba(185,21,39,.10) 0 2px,transparent 2px 76px,rgba(5,7,13,.32) 76px 84px,rgba(185,148,53,.13) 84px 88px,rgba(232,237,245,.12) 88px 91px,rgba(8,21,45,.20) 91px 120px,rgba(17,56,32,.15) 120px 148px,rgba(5,7,13,.30) 148px 156px,transparent 156px 192px);
  background-size:192px 192px;opacity:.34;
  mask-image:linear-gradient(180deg,transparent 0%,#000 12%,#000 88%,transparent 100%);
}
[data-theme="light"] body::before{opacity:.20}
.btn-o,#thBtn,#mbBtn,.badge,.card,.svc-card,.sit-path,.sit-card,.trust-card,.secteur-card,.te-card-large,.te-card-sm,.te-card-row,.sw-card,.testi-card,.team-card,.faq-item,.cblk,.story-card,.timeline-card,.value-card{
  background:linear-gradient(135deg,rgba(255,255,255,.055),rgba(255,255,255,.018)),var(--sf);
  border-color:var(--bd);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.045);
}
[data-theme="light"] .btn-o,[data-theme="light"] #thBtn,[data-theme="light"] #mbBtn,[data-theme="light"] .badge,[data-theme="light"] .card,[data-theme="light"] .svc-card,[data-theme="light"] .sit-path,[data-theme="light"] .sit-card,[data-theme="light"] .trust-card,[data-theme="light"] .secteur-card,[data-theme="light"] .te-card-large,[data-theme="light"] .te-card-sm,[data-theme="light"] .te-card-row,[data-theme="light"] .sw-card,[data-theme="light"] .testi-card,[data-theme="light"] .team-card,[data-theme="light"] .faq-item,[data-theme="light"] .cblk,[data-theme="light"] .story-card,[data-theme="light"] .timeline-card,[data-theme="light"] .value-card{
  background:linear-gradient(135deg,rgba(255,255,255,.78),rgba(246,248,251,.52));
}
#nav.scrolled,#nav{background:var(--gl);border-bottom-color:rgba(185,21,39,.18);box-shadow:0 18px 60px rgba(0,0,0,.22);backdrop-filter:blur(26px)}
section{position:relative}
section::before{content:'';position:absolute;left:0;right:0;top:-1px;height:120px;pointer-events:none;background:linear-gradient(180deg,var(--bg),transparent);opacity:.72}
section::after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:120px;pointer-events:none;background:linear-gradient(0deg,var(--bg),transparent);opacity:.62}
section > *{position:relative;z-index:1}
#hero{
  min-height:100svh;
  background:radial-gradient(ellipse 70% 54% at 24% 45%,rgba(185,21,39,.13),transparent 66%),linear-gradient(100deg,var(--bg) 0%,rgba(5,7,13,.96) 42%,rgba(8,21,45,.50) 100%);
}
[data-theme="light"] #hero{
  background:
    radial-gradient(ellipse 70% 54% at 20% 42%,rgba(185,21,39,.095),transparent 66%),
    linear-gradient(100deg,#f6f8fb 0%,rgba(246,248,251,.96) 46%,rgba(216,223,235,.64) 100%);
}
.hero-tartan-panel{width:min(52%,760px);transform:skewX(-6deg) translateX(7%);transform-origin:center;opacity:.95}
.hero-tartan-inner{transform:skewX(6deg) scale(1.08)}
.hero-tartan-inner .tartan{opacity:.76;animation:tartanDrift 26s ease-in-out infinite alternate}
.hero-tartan-panel::after{background:linear-gradient(90deg,var(--bg) 0%,rgba(5,7,13,.72) 26%,transparent 58%),linear-gradient(180deg,var(--bg) 0%,transparent 24%,transparent 76%,var(--bg) 100%)}
[data-theme="light"] .hero-tartan-panel::after{
  background:
    linear-gradient(90deg,#f6f8fb 0%,rgba(246,248,251,.76) 26%,transparent 58%),
    linear-gradient(180deg,#f6f8fb 0%,transparent 24%,transparent 76%,#f6f8fb 100%);
}
@keyframes tartanDrift{from{transform:translate3d(-10px,-8px,0) scale(1)}to{transform:translate3d(18px,12px,0) scale(1.035)}}
footer{background:var(--bg2);border-top-color:rgba(185,21,39,.18)}
.ft-tartan-bg .tartan{opacity:.28;filter:saturate(.78) contrast(1.1)}
@media(max-width:900px){
  .hero-tartan-panel{width:100%;transform:none;opacity:.34}
  .hero-tartan-inner{transform:none}
}
@media(prefers-reduced-motion:reduce){
  .hero-tartan-inner .tartan,.ci-glow,.ci-btn,.ticker-track,.hero-logo-deco{animation:none}
}


/* ══════════════════════════════════════════════════════════════════════════
   DESIGN SYSTEM v3 — LUXE ÉCOSSAIS MODERNE · Royal Stewart Premium
   ════════════════════════════════════════════════════════════════════════ */
:root{
  --r:#B81525;--r-d:#7C0E18;--r-l:#CE2336;
  --r-g:rgba(184,21,37,.15);--r-g2:rgba(184,21,37,.26);
  --r-s:rgba(184,21,37,.08);--r-b:rgba(184,21,37,.26);--r-txt:#f07080;
  --gold:#C49A24;--gold-s:rgba(196,154,36,.26);--gold-b:rgba(196,154,36,.44);
  --navy:#0E1E46;--ivory:#E8DFD0;
  --bg:#050608;--bg2:#07090E;--bg3:#0D0F18;--bg4:#141622;
  --sf:rgba(238,236,255,.038);--sf2:rgba(238,236,255,.065);--sf3:rgba(238,236,255,.10);
  --bd:rgba(218,222,255,.08);--bd2:rgba(218,222,255,.14);
  --tx:#EEF0F8;--tx2:#8890AA;--tx3:#464C64;
  --sh:0 8px 32px rgba(0,0,0,.52),0 1px 0 rgba(255,255,255,.04) inset;
  --sh2:0 24px 80px rgba(0,0,0,.70),0 1px 0 rgba(255,255,255,.06) inset;
  --gl:rgba(5,6,8,.82);
}
[data-theme="light"]{
  --bg:#F6F2EA;--bg2:#EDE8DE;--bg3:#E3DDD1;--bg4:#D6CFBF;
  --sf:rgba(28,20,10,.028);--sf2:rgba(28,20,10,.048);--sf3:rgba(28,20,10,.078);
  --bd:rgba(40,28,16,.07);--bd2:rgba(40,28,16,.13);
  --tx:#1A1208;--tx2:#4C4438;--tx3:#88806E;
  --sh:0 8px 32px rgba(40,24,12,.09);--sh2:0 24px 80px rgba(40,24,12,.15);
  --gl:rgba(246,242,234,.93);
  --r-txt:#8F1020;--r-s:rgba(184,21,37,.07);--r-b:rgba(184,21,37,.22);
  --gold-s:rgba(196,154,36,.22);--gold-b:rgba(196,154,36,.38);
}
body{background:var(--bg)}
body::after{
  content:'';position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:
    radial-gradient(ellipse 82% 52% at 72% -10%,rgba(184,21,37,.18),transparent 64%),
    radial-gradient(ellipse 56% 46% at 10% 8%,rgba(14,30,70,.50),transparent 66%),
    linear-gradient(180deg,var(--bg),var(--bg2) 50%,var(--bg));
}
[data-theme="light"] body::after{
  background:
    radial-gradient(ellipse 82% 52% at 72% -10%,rgba(184,21,37,.09),transparent 64%),
    radial-gradient(ellipse 56% 46% at 10% 8%,rgba(14,30,70,.07),transparent 66%),
    linear-gradient(180deg,var(--bg),var(--bg2) 50%,var(--bg));
}
*::-webkit-scrollbar{width:8px;height:8px}
*::-webkit-scrollbar-track{background:var(--bg2)}
*::-webkit-scrollbar-thumb{
  background:linear-gradient(180deg,var(--gold) 0%,var(--r) 55%,var(--r-d) 100%);
  border-radius:4px;border:2px solid var(--bg2);
}
*{scrollbar-color:var(--r) var(--bg2)}
::selection{background:var(--r-d);color:var(--ivory)}
.eye{color:var(--gold)}
.eye::before{
  width:44px;height:1.5px;flex-shrink:0;
  background:linear-gradient(90deg,var(--gold) 0%,var(--gold) 40%,rgba(14,30,70,.55) 40%,rgba(14,30,70,.55) 44%,var(--r) 44%,var(--r) 100%);
}
[data-theme="light"] .eye{color:var(--r)}
#nav.scrolled{
  box-shadow:0 1px 0 rgba(196,154,36,.20),0 16px 56px rgba(0,0,0,.42);
}
[data-theme="light"] #nav.scrolled{
  box-shadow:0 1px 0 rgba(196,154,36,.24),0 8px 32px rgba(40,24,12,.08);
}
#nav.scrolled::before{
  opacity:.28;
  background-image:
    linear-gradient(90deg,transparent 0 74px,rgba(184,21,37,.20) 74px 76px,rgba(5,6,8,.30) 76px 82px,rgba(196,154,36,.18) 82px 85px,transparent 85px 192px),
    linear-gradient(0deg,transparent 0 36px,rgba(255,255,255,.06) 36px 37px,transparent 37px 192px);
  background-size:192px 192px;
}
.btn-r,.ci-btn,.fbtn{
  background:
    linear-gradient(160deg,rgba(255,255,255,.13) 0%,rgba(255,255,255,.04) 28%,transparent 58%),
    linear-gradient(180deg,var(--r-l) 0%,var(--r) 48%,var(--r-d) 100%);
  border:1px solid rgba(255,255,255,.15);
  box-shadow:0 8px 32px rgba(184,21,37,.28),0 1px 0 rgba(255,255,255,.16) inset;
  color:#fff;
}
.btn-r:hover,.ci-btn:hover,.fbtn:hover{
  box-shadow:0 14px 48px rgba(124,14,24,.52),0 0 0 1px rgba(196,154,36,.40) inset;
  transform:translateY(-2px);
}
.btn-o{
  background:linear-gradient(135deg,rgba(255,255,255,.06),rgba(255,255,255,.02));
  border:1px solid var(--bd2);color:var(--tx2);
}
.btn-o:hover{border-color:var(--gold-b);color:var(--gold);transform:translateY(-2px)}
.card,.te-card-large,.te-card-sm,.sw-card,.faq-item,.cblk,.testi-card,.team-card,.badge,.btn-o,#thBtn{
  background:linear-gradient(145deg,rgba(255,255,255,.055),rgba(255,255,255,.018)),var(--sf);
  border-color:var(--bd);
  box-shadow:0 2px 12px rgba(0,0,0,.32),0 1px 0 rgba(255,255,255,.04) inset;
}
[data-theme="light"] .card,[data-theme="light"] .te-card-large,[data-theme="light"] .te-card-sm,[data-theme="light"] .sw-card,[data-theme="light"] .faq-item,[data-theme="light"] .cblk,[data-theme="light"] .testi-card,[data-theme="light"] .team-card,[data-theme="light"] .badge,[data-theme="light"] .btn-o,[data-theme="light"] #thBtn{
  background:linear-gradient(145deg,rgba(255,255,255,.82),rgba(246,242,234,.60));
}
.card:hover,.te-card-large:hover,.te-card-sm:hover,.sw-card:hover{
  border-color:rgba(196,154,36,.28);
  box-shadow:0 16px 56px rgba(0,0,0,.46),0 0 0 1px rgba(196,154,36,.16) inset;
  transform:translateY(-4px);
}
.hc-val{
  background:linear-gradient(135deg,var(--r) 0%,var(--gold) 100%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
}
#prog{background:linear-gradient(90deg,var(--r-d),var(--r) 50%,var(--gold));box-shadow:0 0 12px rgba(184,21,37,.45)}
footer{border-top:1px solid rgba(196,154,36,.18)}
footer::before{
  content:'';position:absolute;top:0;left:0;right:0;height:1px;
  background:linear-gradient(90deg,transparent 0%,rgba(196,154,36,.55) 25%,rgba(196,154,36,.55) 75%,transparent 100%);
  pointer-events:none;z-index:2;
}
.fsoc:hover{background:var(--r-d);border-color:rgba(196,154,36,.32)}
.ft-lnks a:hover{color:var(--gold)}
.fi:focus,.fi:focus-visible{border-color:var(--gold-b);box-shadow:0 0 0 3px rgba(196,154,36,.12);outline:none}
.faq-q[aria-expanded="true"] .faq-icon,.faq-item.open .faq-icon{
  background:linear-gradient(135deg,var(--r),var(--r-d));
  border-color:rgba(196,154,36,.32);
  box-shadow:0 0 16px rgba(184,21,37,.26);
}
section::before{background:linear-gradient(180deg,var(--bg),transparent);opacity:.70}
section::after{background:linear-gradient(0deg,var(--bg),transparent);opacity:.60}


/* ══════════════════════════════════════════════════════════════════════════
   ROYAL STEWART TARTAN — Image officielle /assets/images/royal-stewart-tartan.jpg
   Source unique de vérité. Aucun gradient, aucune reconstruction.
   ════════════════════════════════════════════════════════════════════════ */

.tartan,
.tartan-light {
  background-image: url('/assets/images/royal-stewart-seamless.png');
  background-repeat: repeat;
  background-size: clamp(76px, 7vw, 108px) clamp(76px, 7vw, 108px);
  background-position: center center;
  background-attachment: scroll;
  background-color: transparent;
  filter: saturate(0.56) brightness(0.66) contrast(1.04);
}
.tartan-light {
  filter: saturate(0.45) brightness(0.76);
}
[data-theme="light"] .tartan {
  filter: saturate(0.70) brightness(0.84) contrast(1.02);
}
[data-theme="light"] .tartan-light {
  filter: saturate(0.52) brightness(0.90);
}

[data-theme="light"] .tartan,
[data-theme="light"] .tartan-light { opacity: 0.88; }
.tartan-light { opacity: 0.40; }
[data-theme="light"] .tartan-light { opacity: 0.22; }

/* Neutralise le body::before — pas de tartan sur viewport entier */
body::before{background-image:none!important;opacity:0!important;mask-image:none!important}

@supports (-webkit-touch-callout: none) {
  .tartan, .tartan-light {
    background-attachment: scroll;
    background-size: 88px 88px;
  }
}

.hero-tartan-inner{transform:none}
.hero-tartan-inner .tartan{
  animation:none !important;
  transform:none !important;
  background-size:clamp(82px, 7.5vw, 116px) clamp(82px, 7.5vw, 116px);
  background-position:center center;
}

.hero-tartan-panel{
  transform:translateX(4%) !important;
}
.hero-tartan-inner{
  transform:none !important;
}

/* ==========================================================================
   Optinove Royal Edition — histoire page polish
   Static CSS only, OVH/FileZilla friendly.
   ========================================================================== */
:root{
  --royal-red:#a90f1f;
  --royal-red-deep:#5d0810;
  --royal-navy:#071225;
  --royal-navy-2:#0c1b34;
  --royal-green:#123520;
  --royal-gold:#b68b2d;
  --royal-ivory:#f1eadf;
  --royal-parchment:#d8cbb8;
  --bg:#04070e;
  --bg2:#07101e;
  --bg3:#0d1829;
  --bg4:#142139;
  --sf:rgba(241,234,223,.045);
  --sf2:rgba(241,234,223,.07);
  --sf3:rgba(241,234,223,.105);
  --bd:rgba(216,203,184,.11);
  --bd2:rgba(216,203,184,.18);
  --tx:#f4efe7;
  --tx2:#b9afa1;
  --tx3:#817766;
  --r:#a90f1f;
  --r-d:#5d0810;
  --r-l:#c81f31;
  --r-txt:#e16d78;
  --r-s:rgba(169,15,31,.10);
  --r-b:rgba(169,15,31,.28);
}
[data-theme="light"]{
  --bg:#f2eadf;
  --bg2:#e9dfd1;
  --bg3:#ded1bf;
  --bg4:#cfc0ab;
  --sf:rgba(38,27,20,.035);
  --sf2:rgba(38,27,20,.055);
  --sf3:rgba(38,27,20,.085);
  --bd:rgba(58,39,28,.11);
  --bd2:rgba(58,39,28,.18);
  --tx:#160f0d;
  --tx2:#5b5046;
  --tx3:#8b7a68;
  --r:#9e1020;
  --r-d:#650b13;
  --r-l:#bf2433;
  --r-txt:#8f101d;
}
body{
  background:
    radial-gradient(ellipse 80% 50% at 78% -8%,rgba(169,15,31,.16),transparent 62%),
    radial-gradient(ellipse 70% 48% at 16% 4%,rgba(7,18,37,.72),transparent 66%),
    linear-gradient(180deg,var(--bg) 0%,var(--bg2) 46%,var(--bg) 100%);
}
[data-theme="light"] body{
  background:
    radial-gradient(ellipse 82% 42% at 74% -10%,rgba(169,15,31,.075),transparent 64%),
    linear-gradient(180deg,#f5eee5 0%,var(--bg) 46%,#eadfce 100%);
}
#nav.scrolled,#nav{
  background:linear-gradient(180deg,rgba(7,18,37,.82),rgba(4,7,14,.68));
  border-bottom:1px solid rgba(216,203,184,.12);
  box-shadow:0 18px 60px rgba(0,0,0,.28);
}
[data-theme="light"] #nav.scrolled,
[data-theme="light"] #nav{
  background:linear-gradient(180deg,rgba(242,234,223,.92),rgba(242,234,223,.78));
}
.nav-a:hover{color:var(--royal-gold);background:rgba(182,139,45,.08)}
.disp{text-shadow:0 24px 70px rgba(0,0,0,.38)}
.disp em{color:var(--r);text-shadow:0 10px 34px rgba(169,15,31,.22)}
.eye{color:var(--royal-gold)}
#hero,#hero-histoire{
  background:
    radial-gradient(ellipse 58% 52% at 20% 40%,rgba(169,15,31,.10),transparent 66%),
    radial-gradient(ellipse 64% 60% at 82% 42%,rgba(7,18,37,.74),transparent 70%),
    linear-gradient(100deg,var(--bg) 0%,rgba(4,7,14,.97) 42%,rgba(7,18,37,.72) 100%);
}
[data-theme="light"] #hero,[data-theme="light"] #hero-histoire{
  background:
    radial-gradient(ellipse 58% 52% at 18% 40%,rgba(169,15,31,.055),transparent 66%),
    linear-gradient(100deg,#f5eee5 0%,rgba(245,238,229,.94) 42%,rgba(225,212,195,.70) 100%);
}
.hero-creds,.card,.team-card,.vm-card,.site-era-card,.timeline-card,.value-card,.te-card-large,.te-card-sm,.faq-item,.cblk{
  background:linear-gradient(145deg,rgba(241,234,223,.060),rgba(241,234,223,.018)),rgba(7,18,37,.46);
  border-color:rgba(216,203,184,.12);
  box-shadow:inset 0 1px 0 rgba(241,234,223,.055);
}
[data-theme="light"] .hero-creds,[data-theme="light"] .card,[data-theme="light"] .team-card,[data-theme="light"] .vm-card,[data-theme="light"] .site-era-card,[data-theme="light"] .timeline-card,[data-theme="light"] .value-card,[data-theme="light"] .te-card-large,[data-theme="light"] .te-card-sm,[data-theme="light"] .faq-item,[data-theme="light"] .cblk{
  background:linear-gradient(145deg,rgba(255,250,241,.72),rgba(233,223,209,.44));
}
.btn-r,.ci-btn{
  background:linear-gradient(135deg,var(--royal-red-deep),var(--royal-red) 54%,#7d0c17);
  border:1px solid rgba(216,203,184,.18);
  box-shadow:0 16px 46px rgba(73,6,14,.34),inset 0 1px 0 rgba(241,234,223,.18);
}
.btn-r:hover,.ci-btn:hover{
  background:linear-gradient(135deg,#6a0a14,var(--royal-red) 54%,#57070f);
  box-shadow:0 20px 60px rgba(73,6,14,.42),0 0 0 1px rgba(182,139,45,.20) inset;
}
.tartan,.tartan-light{filter:saturate(.46) brightness(.58) contrast(1.02)}
[data-theme="light"] .tartan{filter:saturate(.58) brightness(.90) contrast(.98)}

/* ══ DS5 — Balance Colorimétrique Royale (histoire page) ══════════════════ */
/* Recalibration du fond — navy réduit à 22% max, rouge dominant */
body{
  background:
    radial-gradient(ellipse 80% 50% at 78% -8%, rgba(169,15,31,.17),   transparent 62%),
    radial-gradient(ellipse 48% 42% at 8%   8%, rgba(31,47,107,.22),   transparent 62%),
    radial-gradient(ellipse 44% 38% at 92%  88%,rgba(31,74,54,.14),    transparent 60%),
    linear-gradient(180deg,var(--bg) 0%,var(--bg2) 46%,var(--bg) 100%);
}
[data-theme="light"] body{
  background:
    radial-gradient(ellipse 82% 42% at 74% -10%,rgba(169,15,31,.09),  transparent 64%),
    radial-gradient(ellipse 48% 38% at 8%    8%, rgba(31,47,107,.07), transparent 58%),
    linear-gradient(180deg,#f5eee5 0%,var(--bg) 46%,#eadfce 100%);
}
/* Nav — neutre, jamais navy dominant */
#nav.scrolled,#nav{
  background:linear-gradient(180deg,rgba(5,5,9,.86),rgba(4,5,10,.72));
}

/* ══ DS6 — Purge Définitive du Voile Bleu (histoire page) ════════════════ */

/* Variables de fond — chauds, profonds, sans teinte navy */
:root{
  --bg:  #070706;
  --bg2: #0B0A09;
  --bg3: #100E0C;
  --bg4: #181412;
  --gl:  rgba(7,7,6,.86);
}

/* Corps — rouge dominant, bleu retiré */
body{
  background:
    radial-gradient(ellipse 82% 50% at 78% -8%,  rgba(169,15,31,.16), transparent 62%),
    radial-gradient(ellipse 50% 42% at 94%  96%,  rgba(31,74,54,.10),  transparent 60%),
    linear-gradient(180deg,var(--bg) 0%,var(--bg2) 46%,var(--bg) 100%);
  color:var(--tx);
}
[data-theme="light"] body{
  background:
    radial-gradient(ellipse 82% 42% at 74% -10%,rgba(169,15,31,.08),transparent 64%),
    linear-gradient(180deg,#f5eee5 0%,var(--bg) 46%,#eadfce 100%);
}

/* Ghost grid — rouge + or uniquement */
body::before{
  content:'';position:fixed;inset:0;z-index:-2;pointer-events:none;
  background-image:
    linear-gradient(90deg,
      transparent 0 46px,rgba(184,21,37,.08) 46px 48px,
      transparent 48px 158px,rgba(196,154,36,.05) 158px 160px,
      transparent 160px 192px),
    linear-gradient(0deg,
      transparent 0 46px,rgba(184,21,37,.06) 46px 48px,
      transparent 48px 158px,rgba(196,154,36,.04) 158px 160px,
      transparent 160px 192px);
  background-size:192px 192px;
  opacity:.26;
  mask-image:linear-gradient(180deg,transparent 0%,#000 10%,#000 90%,transparent 100%);
  -webkit-mask-image:linear-gradient(180deg,transparent 0%,#000 10%,#000 90%,transparent 100%);
}
[data-theme="light"] body::before{opacity:.10}

/* Nav — fond neutre warm */
#nav.scrolled,#nav{
  background:linear-gradient(180deg,rgba(5,5,7,.88),rgba(4,4,6,.72));
  border-bottom:1px solid rgba(216,203,184,.12);
}
[data-theme="light"] #nav.scrolled,[data-theme="light"] #nav{
  background:linear-gradient(180deg,rgba(242,234,223,.92),rgba(242,234,223,.78));
}

/* Héro — vert noble en contre-champ, sans navy */
#hero-histoire{
  background:
    radial-gradient(ellipse 58% 52% at 18% 40%,rgba(169,15,31,.10),transparent 66%),
    radial-gradient(ellipse 64% 60% at 82% 42%,rgba(31,74,54,.11), transparent 70%),
    linear-gradient(100deg,var(--bg) 0%,rgba(4,4,6,.97) 42%,rgba(5,6,8,.90) 100%);
}

/* Cartes — fond warm neutre */
.card,.team-card,.vm-card,.site-era-card,.timeline-card,.value-card,.te-card-large,.te-card-sm,.faq-item,.cblk,.hero-creds{
  background:
    linear-gradient(145deg,rgba(241,234,223,.058),rgba(241,234,223,.016)),
    rgba(8,7,6,.42);
  border-color:rgba(216,203,184,.12);
  box-shadow:inset 0 1px 0 rgba(241,234,223,.055);
}

/* Tartan — filtre final */
.tartan,.tartan-light{filter:saturate(.52) brightness(.64) contrast(1.03)}
.tartan-light{filter:saturate(.42) brightness(.74)}
[data-theme="light"] .tartan{filter:saturate(.68) brightness(.86) contrast(1.01)}
[data-theme="light"] .tartan-light{filter:saturate(.50) brightness(.90)}

/* ══ FOOTER — Direction artistique feutrée ════════════════════════════════
   CAUSE RACINE :
   ┌──────────────────────────────────────────────────────────────────────────┐
   │ .ft-tartan-bg .tartan{opacity:.28; filter:…contrast(1.1)}               │
   │ → contrast(1.1) amplifie le motif au lieu de l'atténuer                 │
   │ .ft-overlay{opacity:.82} → pas assez couvrant                           │
   │ Résultat : tartan "papier peint" qui écrase logo, liens, contenu.       │
   └──────────────────────────────────────────────────────────────────────────┘
   Ce bloc est le dernier → cascade maximale → override garanti.
   Objectif : fond bordeaux nuit, tartan "ressenti pas vu",
   finition générique luxe — calme, feutré, élégant.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── 1. Fond footer — bordeaux nuit très profond ────────────────────────── */
/* Radial trace bordeaux sur le bord haut → halo tissé dans le fond,
   pas un motif géométrique répété. */
footer{
  background:
    radial-gradient(ellipse 80% 28% at 50% 0%,  rgba(80,8,16,.28),  transparent 70%),
    radial-gradient(ellipse 40% 55% at  8% 50%, rgba(8,15,38,.22),  transparent 68%),
    radial-gradient(ellipse 36% 48% at 92% 50%, rgba(10,28,12,.16), transparent 66%),
    #030207;
  border-top:1px solid rgba(110,12,24,.28);
}

/* ── 2. Tartan — tissé dans l'ombre, quasi-invisible ───────────────────── */
/* opacity .055 + brightness .22 + desaturation forte → "ressenti, pas vu"
   Remplace .ft-tartan-bg .tartan{opacity:.28;filter:contrast(1.1)} */
.ft-tartan-bg .tartan{
  opacity:.055;
  filter:saturate(.14) brightness(.22) contrast(.78);
}

/* ── 3. Voile couvrant — beaucoup plus opaque ───────────────────────────── */
/* .82 → .93 : absorbe le tartan tout en laissant la trace ultra-fine */
.ft-overlay{
  background:#030207;
  opacity:.93;
}

/* ── 4. Séparations verticales entre colonnes — filets ivoire discrets ───── */
.ft-col{
  border-left:1px solid rgba(216,203,184,.062);
  padding-left:clamp(18px,2.4vw,32px);
}
/* Barre bas du footer — encore plus fine */
.ft-bottom{
  border-top-color:rgba(216,203,184,.048);
}

/* ── 5. Light theme — ajustements cohérents ─────────────────────────────── */
[data-theme="light"] footer{
  background:var(--bg2);
  border-top:1px solid rgba(100,12,22,.12);
}
[data-theme="light"] .ft-tartan-bg .tartan{
  opacity:.04;
  filter:saturate(.12) brightness(.55) contrast(.80);
}
[data-theme="light"] .ft-overlay{
  background:var(--bg2);
  opacity:.95;
}
[data-theme="light"] .ft-col{
  border-left-color:rgba(60,44,28,.08);
}

/* ── 6. Mobile — supprimer les séparateurs verticaux ───────────────────── */
@media(max-width:640px){
  .ft-col{
    border-left:none;
    padding-left:0;
  }
}

/* ══════════════════════════════════════════════════════════════════════════
   BOOK SHOWCASE — Vitrine collector livre d'or 25 ans
   ─────────────────────────────────────────────────────────────────────────
   Présentation cinématique du vrai livre physique.
   Image réelle centrée comme pièce collector dans un espace museum.
   Dark premium, glow rouge/or, tartan discret, flottement subtil.
   ══════════════════════════════════════════════════════════════════════════ */

/* ── Section conteneur ────────────────────────────────────────────────── */
.bsw-section {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  border-top: 1px solid var(--bd);
  border-bottom: 1px solid var(--bd);
}

/* ── Décor d'ambiance ─────────────────────────────────────────────────── */
.bsw-bg { position: absolute; inset: 0; pointer-events: none; }

.bsw-tartan {
  position: absolute; inset: -10%;
  opacity: .072;
  filter: saturate(1.06) brightness(.84) contrast(1.12);
}
/* Halo rouge centré — éclairage du livre */
.bsw-glow-r {
  position: absolute;
  width: 700px; height: 700px;
  top: 46%; left: 36%;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle,
    rgba(184,21,37,.18) 0%,
    rgba(184,21,37,.07) 35%,
    transparent 68%);
  filter: blur(52px);
}
/* Halo or bas-droite — chaleur ambiante */
.bsw-glow-g {
  position: absolute;
  width: 500px; height: 500px;
  bottom: -60px; right: 8%;
  background: radial-gradient(circle,
    rgba(196,154,36,.11) 0%,
    transparent 66%);
  filter: blur(64px);
}

/* ── Layout principal — IMMERSIF VERTICAL ────────────────────────────
   Pile verticale : bloc intro centré (titre/desc/CTA) puis livre
   pleine largeur en pièce centrale. Plus de splitscreen.
   ──────────────────────────────────────────────────────────────────── */
.bsw-vitrine {
  position: relative; z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(56px, 7vw, 90px);
  padding-top:    clamp(80px, 10vw, 140px);
  padding-bottom: clamp(80px, 10vw, 130px);
}

/* ── Bloc intro — titre + description + CTA, centré au-dessus ──────── */
.bsw-intro {
  position: relative; z-index: 2;
  width: 100%;
  max-width: 760px;
  margin: 0 auto;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
}

/* ── Colonne livre — quasi pleine largeur, pièce centrale ──────────── */
.bsw-book-col {
  position: relative;
  width: 100%;
  max-width: 1280px;     /* immense mais cap pour ultra-large écran */
  margin: 0 auto;
}
.bsw-book-stage {
  position: relative;
  display: flex;
  justify-content: center;
  padding-bottom: 32px;
}

/* Ombre au sol — profondeur de la tranche */
.bsw-book-shadow {
  position: absolute;
  bottom: 2px;
  left: 50%;
  transform: translateX(-46%) scaleX(.68);
  width: 90%; height: 52px;
  background: radial-gradient(ellipse 100% 80% at 50% 0%,
    rgba(0,0,0,.72) 0%, transparent 70%);
  filter: blur(16px);
  z-index: 0;
}

/* La vraie image du livre — élément central */
.bsw-book-img {
  position: relative; z-index: 2;
  width: 100%; height: auto;
  display: block;
  /* Relief hardcover : légère rotation 3D */
  border-radius: 3px 6px 6px 3px;
  transform: perspective(1400px) rotateY(-9deg) rotate(-1.2deg);
  transform-origin: 50% 50%;
  /* Flottement premium — 7s, imperceptiblement lent */
  animation: bswFloat 7s ease-in-out infinite;
  will-change: transform;
  /* Ombres composées : tranche gauche (reliure) + profondeur + glow rouge */
  box-shadow:
    -11px 0   0   rgba(12,4,0,.94),          /* dos de reliure */
    -20px 8px  40px rgba(0,0,0,.75),          /* profondeur gauche */
    10px  12px 48px rgba(0,0,0,.58),          /* ombre portée droite */
    0     0    100px rgba(184,21,37,.16),      /* glow rouge ambiant */
    inset 0 0 0 1px rgba(255,224,140,.06);    /* reflet tranche dorée */
}
/* Halo chaud derrière le livre — proportionné au grand format */
.bsw-book-glow {
  position: absolute;
  /* Cap absolu : glow centré sous le livre, ne dépasse pas démesurément */
  top: 8%; bottom: 8%;
  left: 50%;
  width: min(900px, 70%);
  transform: translateX(-50%);
  z-index: 1;
  background: radial-gradient(ellipse 60% 56% at 50% 50%,
    rgba(196,154,36,.14) 0%,
    rgba(184,21,37,.10)  42%,
    transparent           72%);
  filter: blur(36px);
  pointer-events: none;
  animation: bswGlow 7s ease-in-out infinite;
}

@keyframes bswFloat {
  0%, 100% {
    transform: perspective(1400px) rotateY(-9deg) rotate(-1.2deg) translateY(0px);
  }
  50% {
    transform: perspective(1400px) rotateY(-7deg)  rotate(-.8deg)  translateY(-13px);
  }
}
@keyframes bswGlow {
  0%, 100% { opacity: .78; }
  50%       { opacity: 1;   }
}

/* ── Colonne texte ────────────────────────────────────────────────────── */
.bsw-text-col { flex: 1; min-width: 0; }

/* Eyebrow — archival feel */
.bsw-eyebrow {
  display: block;
  font-family: var(--f-d);
  font-size: .78rem;
  font-weight: 500;
  letter-spacing: .20em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 20px;
}

/* Titre principal — Cormorant grand format, immersif */
.bsw-title {
  font-family: var(--f-d);
  font-size: clamp(2.8rem, 6vw, 5rem);
  font-weight: 300;
  line-height: 1.04;
  color: var(--tx);
  margin: 0 0 28px;
  letter-spacing: -.01em;
  text-wrap: balance;
}
.bsw-title em {
  font-style: italic;
  color: var(--r);
}

/* Description — lisible, centrée */
.bsw-desc {
  font-size: clamp(.98rem, 1.5vw, 1.10rem);
  color: var(--tx2);
  line-height: 1.84;
  max-width: 580px;
  margin: 0 auto 36px;
}

/* Badge collector — pill or pulsé */
.bsw-badge {
  display: inline-flex;
  align-items: center;
  gap: 11px;
  padding: 7px 20px;
  border: 1px solid rgba(196,154,36,.28);
  border-radius: 40px;
  font-family: var(--f-d);
  font-size: .72rem;
  font-weight: 500;
  letter-spacing: .11em;
  text-transform: uppercase;
  color: rgba(196,154,36,.84);
  margin-bottom: 40px;
}
.bsw-badge-dot {
  width: 5px; height: 5px;
  border-radius: 50%;
  background: var(--gold);
  flex-shrink: 0;
  animation: bswPulse 2.8s ease-in-out infinite;
}
@keyframes bswPulse {
  0%, 100% { opacity: 1;   transform: scale(1);   }
  50%       { opacity: .32; transform: scale(.58); }
}

/* Bouton — standard btn-r + icône livre */
.bsw-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

/* ── Carnet interactif (zone sous la vitrine) ─────────────────────────── */
.bsw-carnet {
  position: relative; z-index: 1;
  padding-bottom: clamp(60px, 8vw, 100px);
}

/* ── Light mode — fond parchemin, ombres douces ──────────────────────── */
[data-theme="light"] .bsw-glow-r {
  background: radial-gradient(circle,
    rgba(184,21,37,.09) 0%,
    rgba(184,21,37,.04) 38%,
    transparent 66%);
}
[data-theme="light"] .bsw-glow-g {
  background: radial-gradient(circle,
    rgba(196,154,36,.07) 0%, transparent 66%);
}
[data-theme="light"] .bsw-book-img {
  box-shadow:
    -11px 0   0   rgba(12,4,0,.78),
    -20px 8px  40px rgba(0,0,0,.28),
    10px  12px 48px rgba(0,0,0,.18),
    0     0    70px rgba(184,21,37,.08),
    inset 0 0 0 1px rgba(200,160,80,.14);
}
[data-theme="light"] .bsw-badge {
  border-color: rgba(184,21,37,.22);
  color: var(--r-txt);
}
[data-theme="light"] .bsw-badge-dot {
  background: var(--r);
}
[data-theme="light"] .bsw-eyebrow {
  color: var(--r-txt);
}

/* ── Responsive — bloc intro + livre toujours empilés ───────────────── */
@media (max-width: 860px) {
  .bsw-vitrine {
    gap: clamp(40px, 6vw, 60px);
    padding-top:    clamp(60px, 8vw, 100px);
    padding-bottom: clamp(60px, 8vw, 100px);
  }
  .bsw-intro { max-width: 92%; }
  .bsw-desc  { max-width: 90%; }
  .bsw-btn   { width: 100%; justify-content: center; }
  /* Sur mobile, le livre prend toute la largeur disponible */
  .bsw-book-col { max-width: 100%; }
}

@media (max-width: 480px) {
  .bsw-vitrine { gap: 36px; }
  .bsw-title   { font-size: clamp(2.2rem, 9vw, 2.8rem); }
}

/* ══════════════════════════════════════════════════════════════════════════
   LIGHT MODE — ÉDITION LUXE PAPIER · Finale
   ─────────────────────────────────────────────────────────────────────────
   Priorité maximale (dernier bloc du fichier).
   Objectif : atmosphère "carnet d'archives premium", parchemin chaud,
   sans aucun résidu sombre — cohérent avec l'identité Royal Stewart.
   ══════════════════════════════════════════════════════════════════════════ */

/* ── 1. Palette parchemin — override définitif des variables DS ───────── */
/* Corrige DS v3 dont le bg était trop froid (proche gris-bleu).           */
[data-theme="light"] {
  --bg:  #F2EAE0;
  --bg2: #E9DFD1;
  --bg3: #DDD4C5;
  --bg4: #CFC5B3;
  --gl:  rgba(242,234,224,.96);
  /* Surfaces de carte — légèrement plus visibles sur fond ivoire chaud */
  --sf:  rgba(60,38,18,.052);
  --sf2: rgba(60,38,18,.082);
  --sf3: rgba(60,38,18,.115);
  /* Bordures — brun-doré discret au lieu du gris */
  --bd:  rgba(60,38,18,.086);
  --bd2: rgba(60,38,18,.152);
}

/* ── 2. Corps — parchemin pur, aucun résidu navy/bleu ────────────────── */
[data-theme="light"] body {
  background:
    radial-gradient(ellipse 82% 40% at 74% -12%, rgba(184,21,37,.08),  transparent 64%),
    radial-gradient(ellipse 52% 42% at  8%   8%, rgba(60,38,18,.04),   transparent 58%),
    linear-gradient(180deg, #F6EEE4 0%, var(--bg) 46%, #EBDFD0 100%);
}
[data-theme="light"] body::after {
  background:
    radial-gradient(ellipse 82% 52% at 72% -10%, rgba(184,21,37,.07),  transparent 64%),
    radial-gradient(ellipse 56% 46% at 10%   8%, rgba(60,38,18,.04),   transparent 60%),
    linear-gradient(180deg, var(--bg), var(--bg2) 50%, var(--bg));
}
[data-theme="light"] body::before { opacity: .08 }

/* ── 3. Héro — fond parchemin, aucune trace navy ────────────────────── */
[data-theme="light"] #hero-histoire {
  background:
    radial-gradient(ellipse 58% 52% at 18% 40%, rgba(184,21,37,.058), transparent 66%),
    linear-gradient(100deg, #F6EEE4 0%, rgba(245,238,229,.97) 46%, rgba(228,216,200,.72) 100%);
}

/* ── 4. Voile héro — veil léger, tartan respire ──────────────────────── */
/* Principe : overlay discret pour éliminer le noir, pas pour masquer le  */
/* tartan. Opacité .42 au lieu de .75 → couleurs tartan visibles et vives.*/
[data-theme="light"] .hh-veil {
  background:
    radial-gradient(ellipse 80% 60% at 50% 50%, rgba(192,24,42,.06) 0%, transparent 65%),
    linear-gradient(
      180deg,
      var(--bg)               0%,
      rgba(242,234,224,.42)  22%,
      rgba(233,222,208,.42)  76%,
      var(--bg)              100%
    );
}

/* ── 5. Section ambiance (ch2) — tartan vivant, overlay fin ─────────── */
/* Opacité .42 au lieu de .82 → on laisse le tartan s'exprimer.           */
[data-theme="light"] .ch2-tartan::after {
  background: linear-gradient(
    180deg,
    var(--bg2)              0%,
    rgba(233,222,208,.42)  20%,
    rgba(233,222,208,.42)  80%,
    var(--bg2)             100%
  );
}
[data-theme="light"] .ch2-section {
  background: var(--bg2);
  border-top-color:    rgba(184,21,37,.10);
  border-bottom-color: rgba(184,21,37,.10);
}

/* ── 6. Section finale — tartan vivant, overlay fin ─────────────────── */
/* Opacité .45 au lieu de .84 → rouge, marine, vert tartan pleinement    */
/* visibles. Radial bordeaux conservé pour profondeur centrale.           */
[data-theme="light"] .fs-tartan::after {
  background:
    radial-gradient(ellipse 70% 55% at 50% 50%, rgba(192,24,42,.06) 0%, transparent 65%),
    linear-gradient(
      180deg,
      var(--bg)               0%,
      rgba(235,226,213,.45)  24%,
      rgba(235,226,213,.45)  76%,
      var(--bg)              100%
    );
}
[data-theme="light"] .final-section {
  background: var(--bg2);
  border-top-color: rgba(184,21,37,.10);
}

/* ── 7. Nav — parchemin warm absolu ─────────────────────────────────── */
[data-theme="light"] #nav,
[data-theme="light"] #nav.scrolled {
  background: linear-gradient(180deg, rgba(242,234,224,.97), rgba(235,226,214,.90));
  border-bottom: 1px solid rgba(184,21,37,.10);
  box-shadow: 0 1px 0 rgba(196,154,36,.14), 0 8px 32px rgba(60,38,18,.07);
  backdrop-filter: blur(22px);
}

/* ── 8. Cartes — ivoire chaud sur parchemin ──────────────────────────── */
[data-theme="light"] .card,
[data-theme="light"] .vm-card,
[data-theme="light"] .timeline-card,
[data-theme="light"] .site-era-card,
[data-theme="light"] .team-card,
[data-theme="light"] .value-card,
[data-theme="light"] .faq-item,
[data-theme="light"] .cblk,
[data-theme="light"] .hero-creds {
  background: linear-gradient(145deg, rgba(255,252,242,.84), rgba(238,228,212,.56));
  border-color: rgba(60,38,18,.086);
  box-shadow: 0 2px 18px rgba(60,38,18,.07), inset 0 1px 0 rgba(255,254,248,.65);
}

/* ── 9. Métriques — bloc chiffres, fond ivoire lisible ───────────────── */
[data-theme="light"] .metrics-row {
  background: rgba(255,251,242,.72);
  border-color: rgba(60,38,18,.09);
  box-shadow: 0 2px 14px rgba(60,38,18,.07);
}
[data-theme="light"] .metric {
  background: transparent;
  border-right-color: rgba(60,38,18,.07);
}

/* ── 10. Citation — bordeaux warm, pas trop effacé ───────────────────── */
[data-theme="light"] .quote-block {
  background: rgba(184,21,37,.058);
  border-left-color: var(--r);
}

/* ── 11. Tags — surface ivoire chaude ────────────────────────────────── */
[data-theme="light"] .vm-tag,
[data-theme="light"] .nostalgie-tag {
  background: rgba(255,250,235,.82);
  border-color: rgba(60,38,18,.12);
  color: var(--tx2);
}

/* ── 12. Séparateurs de chapitre — filets or/bordeaux discrets ────────── */
[data-theme="light"] .cdl {
  background: linear-gradient(90deg,
    transparent 0%,
    rgba(184,21,37,.18)  20%,
    rgba(196,154,36,.24) 50%,
    rgba(184,21,37,.18)  80%,
    transparent 100%
  );
  height: 1px;
}
[data-theme="light"] .cdi {
  background: rgba(255,250,238,.75);
  border-color: rgba(196,154,36,.30);
  color: var(--tx3);
  box-shadow: 0 0 0 3px rgba(196,154,36,.08);
}
[data-theme="light"] .cdt { color: var(--tx2) }

/* ── 13. Badge humain — bordeaux ivoire ──────────────────────────────── */
[data-theme="light"] .human-badge {
  background: rgba(184,21,37,.055);
  border-color: rgba(184,21,37,.18);
}

/* ── 14. Bloc vidéo — cadre warm paper ──────────────────────────────── */
[data-theme="light"] .video-wrap {
  background: rgba(255,250,240,.68);
  border-color: rgba(60,38,18,.10);
  box-shadow: 0 8px 42px rgba(60,38,18,.08);
}

/* ── 15. Zone livre — lueur bougie, aucun fond sombre ────────────────── */
[data-theme="light"] .book-zone {
  background:
    radial-gradient(ellipse 80% 70% at 50% 38%, rgba(196,154,36,.08),  transparent 70%),
    radial-gradient(ellipse 52% 55% at 10% 80%, rgba(184,21,37,.048),  transparent 62%),
    linear-gradient(180deg, var(--bg2) 0%, var(--bg) 100%);
}

/* ── 16. Section fades — transitions warm entre sections ─────────────── */
[data-theme="light"] section::before {
  background: linear-gradient(180deg, var(--bg), transparent);
}
[data-theme="light"] section::after {
  background: linear-gradient(0deg, var(--bg), transparent);
}

/* ── 17. Tartan — calibration finale light mode : couleurs riches ────── */
/* Philosophie : le tartan Royal Stewart doit rester VIF et PROFOND.      */
/* On ne désature pas — on enrichit. Brightness légèrement réduite pour   */
/* que les rouges restent profonds (pas surexposés). Contrast + pour       */
/* renforcer la définition du textile sur fond parchemin clair.           */
[data-theme="light"] .tartan {
  filter: saturate(1.08) brightness(.86) contrast(1.12);
}
[data-theme="light"] .tartan-light {
  filter: saturate(.94) brightness(.90) contrast(1.06);
}

/* ── 18. Opacités tartan — boost final (écrase les réductions DS) ──────── */
/* Les blocs DS précédents réduisent l'opacité en light mode.              */
/* Ce bloc final la restaure pour que le tartan reste vivant et présent.   */
[data-theme="light"] .hh-tartan          { opacity: .62 } /* était .42 */
[data-theme="light"] .ch2-tartan .tartan { opacity: .52 } /* était .32 */
[data-theme="light"] .fs-tartan .tartan  { opacity: .54 } /* était .34 */

/* ── 19. Scrollbar — warm bordeaux / or sur parchemin ───────────────── */
[data-theme="light"] *::-webkit-scrollbar-track { background: var(--bg2) }
[data-theme="light"] *::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, rgba(196,154,36,.58) 0%, var(--r) 50%, var(--r-d) 100%);
  border-color: var(--bg2);
}

/* ── 20. Orbes héro — mix-blend subtil, pas masquant ────────────────── */
/* En dark : screen amplifie la lumière. En light : multiply assombrit    */
/* trop. On réduit l'opacité mais on garde multiply pour mélanger avec    */
/* le parchemin chaud.                                                     */
[data-theme="light"] .hh-orb-r { opacity: .38; mix-blend-mode: multiply }
[data-theme="light"] .hh-orb-n { opacity: .18; mix-blend-mode: multiply }

/* ══════════════════════════════════════════════════════════════════════════
   ROYAL PREMIUM — FINALE LIGHT MODE · histoire (priorité cascade maximale)
   ─────────────────────────────────────────────────────────────────────────
   Ce bloc est le DERNIER du fichier → il gagne toujours la cascade.
   Mission : light mode = expérience premium / royale / collector INDÉPENDANTE,
   PAS un dark mode éclairci. Aucun beige, crème, sépia, gris chaud hérité.
   Fonds = blancs nobles (neige, porcelaine, perle). Tartan Royal Stewart =
   signature centrale, JAMAIS désaturé, jamais blanchi, jamais voilé.
   Accents Stewart vifs : rouge=CTA, bleu=technique, vert=validation,
   or=premium/anniversaire, noir=titres. Lisibilité d'abord.
   ══════════════════════════════════════════════════════════════════════════ */

/* ── 1. Tokens light — blancs royaux froids (écrase tous les roots beiges) ── */
[data-theme="light"]{
  --bg:#FBFCFE;          /* blanc neige — fond principal */
  --bg2:#F3F6FB;         /* blanc porcelaine — surfaces/nav */
  --bg3:#EBEFF6;         /* blanc perle ombré */
  --bg4:#DBE2EC;         /* gris-perle */
  --sf:rgba(22,30,58,.022); --sf2:rgba(22,30,58,.040); --sf3:rgba(22,30,58,.066);
  --bd:rgba(22,30,58,.085); --bd2:rgba(22,30,58,.15);
  --tx:#0C0E16;          /* noir noble — titres/contraste */
  --tx2:#3B414F;         /* gris froid lisible */
  --tx3:#6F7689;
  --sh:0 8px 30px rgba(22,30,58,.08); --sh2:0 26px 80px rgba(22,30,58,.14);
  --gl:rgba(251,252,254,.92);
  --r:#C8102E; --r-d:#9A0D24; --r-l:#E11D38; --r-txt:#9A0D24;
  --r-s:rgba(200,16,46,.08); --r-b:rgba(200,16,46,.24);
  --royal-red:#C8102E; --royal-red-deep:#9A0D24;
  --royal-navy:#1C2C5B; --royal-navy-2:#16234A;
  --royal-green:#0B5D4B; --royal-gold:#C6A85B;
  --royal-ivory:#FFFFFF; --royal-parchment:#EBEFF6;
}

/* ── 2. Fonds principaux — blancs nobles, halos Stewart légers ───────────── */
[data-theme="light"] body{
  background:
    radial-gradient(ellipse 82% 44% at 76% -12%,rgba(200,16,46,.06),transparent 64%),
    radial-gradient(ellipse 58% 42% at 10% 8%,rgba(28,44,91,.05),transparent 66%),
    linear-gradient(180deg,#FFFFFF 0%,var(--bg) 46%,#F3F6FB 100%) !important;
}
[data-theme="light"] #nav.scrolled,
[data-theme="light"] #nav{
  background:linear-gradient(180deg,rgba(251,252,254,.94),rgba(243,246,251,.82)) !important;
  border-bottom:1px solid rgba(200,16,46,.16) !important;
  box-shadow:0 16px 50px rgba(22,30,58,.10) !important;
}
[data-theme="light"] #hero,
[data-theme="light"] #hero-histoire{
  background:
    radial-gradient(ellipse 58% 52% at 18% 40%,rgba(200,16,46,.055),transparent 66%),
    linear-gradient(100deg,#FFFFFF 0%,rgba(251,252,254,.96) 46%,rgba(235,239,246,.70) 100%) !important;
}
[data-theme="light"] #hero .hero-tartan-panel::after,
[data-theme="light"] .hero-tartan-panel::after{
  background:
    linear-gradient(90deg,#FFFFFF 0%,rgba(251,252,254,.74) 26%,transparent 58%),
    linear-gradient(180deg,#FFFFFF 0%,transparent 24%,transparent 76%,#FFFFFF 100%) !important;
}

/* ── 3. Cartes & surfaces — blanc pur, lisière froide, profondeur noble ──── */
[data-theme="light"] .hero-creds,
[data-theme="light"] .card,
[data-theme="light"] .team-card,
[data-theme="light"] .vm-card,
[data-theme="light"] .site-era-card,
[data-theme="light"] .timeline-card,
[data-theme="light"] .value-card,
[data-theme="light"] .te-card-large,
[data-theme="light"] .te-card-sm,
[data-theme="light"] .faq-item,
[data-theme="light"] .cblk,
[data-theme="light"] .video-wrap{
  background:linear-gradient(145deg,#FFFFFF,#F6F8FC) !important;
  border-color:var(--bd) !important;
  box-shadow:var(--sh) !important;
}
[data-theme="light"] .book-zone{
  background:
    radial-gradient(ellipse 80% 70% at 50% 38%,rgba(198,168,91,.07),transparent 70%),
    radial-gradient(ellipse 52% 55% at 10% 80%,rgba(200,16,46,.045),transparent 62%),
    linear-gradient(180deg,#F3F6FB 0%,#FBFCFE 100%) !important;
}
[data-theme="light"] section::before{background:linear-gradient(180deg,var(--bg),transparent) !important}
[data-theme="light"] section::after{background:linear-gradient(0deg,var(--bg),transparent) !important}

/* ── 4. Footer — encre profonde Stewart (contraste, pas un dark band beige) ─ */
[data-theme="light"] footer{
  background:var(--bg2) !important;
  border-top:1px solid rgba(200,16,46,.16) !important;
}
[data-theme="light"] .ft-overlay{background:var(--bg2) !important;opacity:.94 !important}
[data-theme="light"] .ft-col{border-left-color:rgba(22,30,58,.08) !important}

/* ── 5. TARTAN — signature centrale, VIF et profond (jamais délavé) ───────── */
/* Aucune désaturation : saturate ≥ 1, brightness = 1, contrast renforcé.     */
[data-theme="light"] .tartan{
  filter:saturate(1.14) brightness(1.0) contrast(1.07) !important;
  opacity:1 !important;
}
[data-theme="light"] .tartan-light{
  filter:saturate(1.10) brightness(1.0) contrast(1.05) !important;
}
[data-theme="light"] .hero-tartan-inner .tartan{
  filter:saturate(1.16) brightness(1.02) contrast(1.07) !important;
  opacity:.95 !important;
  mix-blend-mode:normal !important;
}
[data-theme="light"] .bsw-tartan{
  filter:saturate(1.10) brightness(1.0) contrast(1.10) !important;
}
/* Footer : tartan présent mais discret pour lisibilité — via opacité,
   PAS via désaturation. Couleurs Stewart pleines. */
[data-theme="light"] .ft-tartan-bg .tartan{
  filter:saturate(1.05) brightness(1.0) contrast(1.04) !important;
  opacity:.08 !important;
}
/* Opacités tartan — présence vivante en light */
[data-theme="light"] .hh-tartan{opacity:.60 !important}
[data-theme="light"] .ch2-tartan .tartan{opacity:.52 !important}
[data-theme="light"] .fs-tartan .tartan{opacity:.54 !important}

/* ── 6. Accents Stewart — rôles stricts, lisibilité garantie ─────────────── */
[data-theme="light"] .eye{color:var(--r) !important}
[data-theme="light"] .disp em{color:var(--r) !important;text-shadow:0 10px 30px rgba(200,16,46,.16) !important}
[data-theme="light"] .nav-a:hover{color:var(--royal-navy) !important;background:rgba(28,44,91,.06) !important}
[data-theme="light"] *::-webkit-scrollbar-track{background:var(--bg2) !important}
[data-theme="light"] *::-webkit-scrollbar-thumb{
  background:linear-gradient(180deg,var(--royal-gold) 0%,var(--r) 50%,var(--r-d) 100%) !important;
  border-color:var(--bg2) !important;
}

/* ── 7. Orbes héro — multiply léger sur blanc, ne ternit pas le fond ─────── */
[data-theme="light"] .hh-orb-r{opacity:.22 !important;mix-blend-mode:multiply}
[data-theme="light"] .hh-orb-n{opacity:.14 !important;mix-blend-mode:multiply}

/* ══════════════════════════════════════════════════════════════════════════
   SECTION LIVRE D'OR — Lisibilité sur tartan (dark + light mode)
   ─────────────────────────────────────────────────────────────────────────
   Le tartan rouge est le fond — on ne le touche pas. On adapte le texte pour
   qu'il reprenne l'identité visuelle des dorures du livre Optinove : or clair,
   ivoire, ombres sombres. Aucun fond opaque, aucun panneau, effet premium direct.
   Scoped à #s-livreor → aucun autre élément de la page n'est affecté.
   ══════════════════════════════════════════════════════════════════════════ */

/* ── Titre principal : or clair inspiré des dorures du livre ─────────────── */
#s-livreor .bsw-title {
  color: #f3d68a;
  text-shadow:
    0 2px 8px  rgba(0,0,0,.45),
    0 4px 24px rgba(0,0,0,.25);
}

/* "des 25 ans" en italique : or plus chaud, légèrement plus lumineux */
#s-livreor .bsw-title em {
  color: #f9e4a4;
  font-style: italic;
}

/* ── Description : ivoire clair, ombre portée pour isolation du tartan ────── */
#s-livreor .bsw-desc {
  color: #fff8e6;
  text-shadow: 0 1px 4px rgba(0,0,0,.60);
}

/* ── Bouton : rouge Stewart, texte blanc pur, ombre discrète ─────────────── */
#s-livreor .bsw-btn {
  color: #ffffff;
  text-shadow: 0 1px 3px rgba(0,0,0,.32);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.22),
    0 4px 18px rgba(0,0,0,.34),
    0 2px 6px  rgba(0,0,0,.22);
}
#s-livreor .bsw-btn:hover {
  filter: brightness(1.12);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.30),
    0 6px 24px rgba(0,0,0,.40),
    0 2px 8px  rgba(0,0,0,.26);
}

/* ── Light mode : même traitement — le tartan est vif en light aussi ──────── */
[data-theme="light"] #s-livreor .bsw-title {
  color: #f3d68a;
  text-shadow:
    0 2px 8px  rgba(0,0,0,.45),
    0 4px 24px rgba(0,0,0,.25);
}
[data-theme="light"] #s-livreor .bsw-title em {
  color: #f9e4a4;
}
[data-theme="light"] #s-livreor .bsw-desc {
  color: #fff8e6;
  text-shadow: 0 1px 4px rgba(0,0,0,.60);
}
[data-theme="light"] #s-livreor .bsw-btn {
  color: #ffffff;
  text-shadow: 0 1px 3px rgba(0,0,0,.32);
}
