/* ==========================================================================
   Optinove — Shared stylesheet for legal pages
   Used by: mentions-legales.html, politique-confidentialite.html,
            cookies.html, contact.html
   ========================================================================== */

/* — Theme tokens — */
:root{
  --r:#C0182A; --r-d:#8B0E1C; --r-l:#D4293C;
  --r-g:rgba(192,24,42,.14); --r-s:rgba(192,24,42,.07); --r-b:rgba(192,24,42,.22); --r-txt:#f47585;
  --bg:#040202; --bg2:#0a0808; --sf:#141112; --sf2:#1a1517; --sf3:#221c1f;
  --tx:#f5eded; --tx2:#b3a3a3; --tx3:#7e6e74;
  --bd:#241c1f; --bd2:#3a2c30;
  --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);
  --r2:10px; --r3:14px; --rp:999px;
  --f-d:'Cormorant Garamond',serif;
  --f-s:'Outfit',system-ui,sans-serif;

  /* Palette Royal Stewart — cohérence avec index.css */
  --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:#faf9f7; --bg2:#f3f1ee; --sf:#fff; --sf2:#f8f6f3; --sf3:#edebe6;
  --tx:#1a1418; --tx2:#4a3c42; --tx3:#7a6c72;
  --bd:#e2ddd8; --bd2:#c8c0bc;
  --r-s:rgba(192,24,42,.06); --r-b:rgba(192,24,42,.2); --r-txt:#8b0e1c;
  --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);
  --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;
}

/* — Reset & base — */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}

/* 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{
  background:var(--bg);color:var(--tx);
  font-family:var(--f-s);font-size:16px;line-height:1.6;
  -webkit-font-smoothing:antialiased;
  min-height:100vh;display:flex;flex-direction:column;
}
a{color:inherit;text-decoration:none}
.w{max-width:1180px;margin:0 auto;padding:0 clamp(20px,4vw,40px);width:100%}

/* — Tartan background — */
.tartan{
  position:absolute;inset:0;pointer-events:none;
  background:
    repeating-linear-gradient(90deg,
      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),
    repeating-linear-gradient(0deg,
      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);
}

/* — Navigation header — */
#nav{
  position:fixed;top:0;left:0;right:0;z-index:1000;height:80px;
  background:rgba(4,2,2,.78);backdrop-filter:blur(14px);
  border-bottom:1px solid var(--bd);
  display:flex;align-items:center;
}
[data-theme="light"] #nav{background:rgba(250,249,247,.84)}
.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;pointer-events:none;
  transition:opacity .4s ease, filter .3s ease, transform .3s ease;
}
.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)}
.nav-r{display:flex;align-items:center;gap:10px}
.nav-back{
  padding:8px 16px;border:1px solid var(--bd);border-radius:var(--r2);
  font-size:.82rem;font-weight:500;color:var(--tx2);background:var(--sf);
  transition:all .2s;display:inline-flex;align-items:center;gap:8px;
}
.nav-back:hover{border-color:var(--r-b);color:var(--r);background:var(--r-s)}
#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;
  cursor:pointer;transition:all .2s;
}
#thBtn:hover{border-color:var(--bd2);color:var(--tx)}
#thBtn svg{width:16px;height:16px}

/* — Legal page hero — */
.legal-hero{
  position:relative;overflow:hidden;
  padding:140px 0 60px;
  border-bottom:1px solid var(--bd);
}
.legal-hero-bg{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.legal-hero-tartan{position:absolute;inset:-10%;opacity:.45}
[data-theme="light"] .legal-hero-tartan{opacity:.28}
.legal-hero-veil{
  position:absolute;inset:0;
  background:
    radial-gradient(ellipse 70% 60% at 50% 50%,rgba(192,24,42,.10) 0%,transparent 60%),
    linear-gradient(180deg,var(--bg) 0%,rgba(8,8,13,.42) 20%,rgba(8,8,13,.42) 80%,var(--bg) 100%);
}
[data-theme="light"] .legal-hero-veil{
  background:
    radial-gradient(ellipse 70% 60% at 50% 50%,rgba(192,24,42,.06) 0%,transparent 65%),
    linear-gradient(180deg,var(--bg) 0%,rgba(250,249,247,.58) 20%,rgba(250,249,247,.58) 80%,var(--bg) 100%);
}
.legal-hero-c{position:relative;z-index:1}
.legal-eye{
  font-family:var(--f-d);font-size:.78rem;letter-spacing:3px;
  text-transform:uppercase;color:var(--r);font-weight:600;
  margin-bottom:14px;display:inline-block;
}
.legal-h{
  font-family:var(--f-d);font-weight:500;
  font-size:clamp(2.2rem,5vw,3.6rem);line-height:1.1;
  letter-spacing:-1px;color:var(--tx);max-width:780px;
}
.legal-h em{font-style:italic;color:var(--r);font-weight:500}
.legal-sub{
  margin-top:18px;font-size:1.06rem;color:var(--tx2);
  max-width:640px;line-height:1.65;
}

/* — Legal body sections — */
main.legal{flex:1;padding:60px 0 80px;position:relative}
.legal-content{max-width:780px;margin:0 auto}
.legal-section{margin-bottom:48px}
.legal-section h2{
  font-family:var(--f-d);font-size:clamp(1.5rem,3vw,2rem);font-weight:600;
  color:var(--tx);margin-bottom:14px;letter-spacing:-.4px;
  display:flex;align-items:baseline;gap:14px;
}
.legal-section h2::before{
  content:'';display:inline-block;width:24px;height:1.5px;background:var(--r);
  transform:translateY(-6px);flex-shrink:0;
}
.legal-section h3{
  font-family:var(--f-s);font-size:1.05rem;font-weight:600;
  color:var(--tx);margin:22px 0 10px;letter-spacing:.1px;
}
.legal-section p{color:var(--tx2);font-size:1rem;line-height:1.78;margin-bottom:14px}
.legal-section ul{margin:12px 0 18px 0;padding-left:0;list-style:none}
.legal-section li{
  color:var(--tx2);font-size:1rem;line-height:1.72;
  padding-left:20px;position:relative;margin-bottom:8px;
}
.legal-section li::before{
  content:'';position:absolute;left:0;top:11px;
  width:6px;height:6px;background:var(--r);border-radius:50%;
}
.legal-section a{color:var(--r);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;transition:color .18s}
.legal-section a:hover{color:var(--r-l)}
.legal-section strong{color:var(--tx);font-weight:600}

/* — Info cards (mentions légales) — */
.legal-info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:16px 0 8px}
.legal-info-card{
  padding:14px 16px;border:1px solid var(--bd);border-radius:var(--r2);
  background:var(--sf);
}
.legal-info-label{
  font-size:.74rem;letter-spacing:1.6px;text-transform:uppercase;
  color:var(--tx3);font-weight:600;margin-bottom:4px;
}
.legal-info-val{font-size:.98rem;color:var(--tx);line-height:1.55}

/* — Back-to-home pill — */
.legal-back{
  margin-top:36px;display:inline-flex;align-items:center;gap:8px;
  padding:10px 18px;border:1px solid var(--bd);border-radius:var(--rp);
  font-size:.86rem;font-weight:500;color:var(--tx2);background:var(--sf);
  transition:all .2s;
}
.legal-back:hover{border-color:var(--r-b);color:var(--r);background:var(--r-s)}

/* — Footer (mirrors main site) — */
footer{
  position:relative;padding:72px 0 36px;overflow:hidden;
  background:var(--bg2);border-top:1px solid var(--bd);
}
.ft-tartan-bg{position:absolute;inset:0;pointer-events:none}
.ft-tartan-bg .tartan{position:absolute;inset:-5%;opacity:.35}
[data-theme="light"] .ft-tartan-bg .tartan{opacity:.22}
.ft-overlay{
  position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,var(--bg2) 0%,rgba(13,13,20,.6) 50%,var(--bg2) 100%);
}
[data-theme="light"] .ft-overlay{background:linear-gradient(180deg,var(--bg2) 0%,rgba(243,241,238,.65) 50%,var(--bg2) 100%)}
.ft-content{position:relative;z-index:1}
.ft-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1.2fr;gap:clamp(20px,4vw,48px);margin-bottom:48px}
.ft-brand .logo{margin-bottom:14px;height:48px}
.ft-brand .brand-img{height:48px}
.ft-desc{color:var(--tx2);font-size:.92rem;line-height:1.72;max-width:320px;margin-bottom:18px}
.ft-soc{display:flex;gap:8px}
.fsoc{
  width:32px;height:32px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  border:1px solid var(--bd);color:var(--tx2);background:var(--sf);
  transition:all .2s;
}
.fsoc:hover{border-color:var(--r);color:var(--r);background:var(--r-s)}
.ft-col h4{
  font-family:var(--f-d);font-size:1rem;font-weight:600;color:var(--tx);
  margin-bottom:16px;letter-spacing:.2px;
}
.ft-lnks{display:flex;flex-direction:column;gap:9px}
.ft-lnks a{color:var(--tx2);font-size:.92rem;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-badge:hover img{filter:drop-shadow(0 4px 14px rgba(80,60,200,.45))}
.ft-cert-sub{font-size:.78rem;color:var(--tx3);line-height:1.55;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:14px;font-size:.82rem;line-height:1.65;color:var(--tx3);
}
.ft-bottom a{color:var(--tx3);transition:color .18s}
.ft-bottom a:hover{color:var(--tx2)}

/* — Responsive — */
@media(max-width:900px){
  #nav{height:68px}
  .legal-hero{padding:110px 0 48px}
  .ft-grid{grid-template-columns:1fr 1fr}
  .brand-img,.logo{height:48px}
}
@media(max-width:640px){
  body{font-size:16.5px;line-height:1.62}
  .ft-grid{grid-template-columns:1fr}
  .legal-info-grid{grid-template-columns:1fr}
  .ft-bottom{flex-direction:column;align-items:center;text-align:center;border-top:none;padding-top:16px;gap:0;font-size:.86rem}
  .ft-bottom > span:first-child{order:1;width:100%;padding-bottom:16px}
  .ft-made{order:2;width:100%;justify-content:center;padding:10px 0 20px;font-size:.72rem;letter-spacing:.08em;opacity:.72}
  .ft-bottom > span:last-child{order:3;width:100%;border-top:1px solid var(--bd);padding-top:18px;line-height:1.9;text-align:center}
  .legal-section p,.legal-section li{font-size:1.02rem;line-height:1.8}
  .legal-sub{font-size:1.08rem}
  .ft-desc,.ft-lnks a{font-size:.96rem;line-height:1.72}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important}
}

/* — Defensive: decorative overlays must NOT capture taps. — */
.tartan,
[class*="-tartan"],
[class*="-tartan"]::before,
[class*="-tartan"]::after,
[class*="-overlay"],
[class*="-overlay"]::before,
[class*="-overlay"]::after,
[class*="-veil"],
[class*="-veil"]::before,
[class*="-veil"]::after,
.legal-hero-bg,
.legal-hero-bg *,
.ft-tartan-bg,
.ft-tartan-bg *{
  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"],
.nav-back, .legal-back, .ft-lnks a, .ft-cert-badge,
#thBtn, .fsoc{
  touch-action: manipulation;
  -webkit-tap-highlight-color: rgba(192,24,42,.16);
}
@media (hover: none){
  .nav-back:hover{border-color:var(--bd);color:var(--tx2);background:var(--sf)}
  .legal-back:hover{border-color:var(--bd);color:var(--tx2);background:var(--sf)}
  .ft-cert-badge:hover{transform:none;box-shadow:none}
  .logo:hover .brand-img{transform:none}
  .fsoc:hover{border-color:var(--bd);color:var(--tx2);background:var(--sf)}
}
@media (max-width: 900px){
  .nav-back, .legal-back{min-height:44px}
  .ft-lnks a{min-height:40px;display:flex;align-items:center}
  #thBtn{min-width:44px;min-height:44px}
  .fsoc{min-width:40px;min-height:40px}
}
.nav-back:active, .legal-back: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}
  .ft-lnks a, .ft-bottom a{
    position:relative;z-index:1;display:block;
    min-height:44px;padding:6px 0;
    pointer-events:auto !important;
  }
  .ft-grid{gap:32px !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 -- shared secondary pages
   ========================================================================== */
:root{
  --r:#b91527;--r-d:#750814;--r-l:#df3044;--gold:#b99435;--navy:#08152d;--green:#113820;
  --bg:#05070d;--bg2:#090c14;--sf:rgba(235,239,247,.045);--sf2:rgba(235,239,247,.075);--sf3:rgba(235,239,247,.115);
  --tx:#f2f5fb;--tx2:#a5acbc;--tx3:#687084;--bd:rgba(226,232,242,.09);--bd2:rgba(226,232,242,.16);
  --r-s:rgba(185,21,39,.085);--r-b:rgba(185,21,39,.28);--r-txt:#ff7888;
}
[data-theme="light"]{
  --bg:#f6f8fb;--bg2:#eef2f7;--sf:rgba(6,12,25,.035);--sf2:rgba(6,12,25,.055);--sf3:rgba(6,12,25,.085);
  --tx:#080b12;--tx2:#485165;--tx3:#7f889c;--bd:rgba(9,19,39,.085);--bd2:rgba(9,19,39,.15);
  --r-s:rgba(185,21,39,.07);--r-b:rgba(185,21,39,.22);--r-txt:#8f101d;
}
body{
  background:
    radial-gradient(ellipse 82% 48% at 74% -10%,rgba(185,21,39,.17),transparent 62%),
    radial-gradient(ellipse 58% 42% at 12% 6%,rgba(8,21,45,.52),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,.10),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:.30;
  mask-image:linear-gradient(180deg,transparent 0%,#000 16%,#000 86%,transparent 100%);
}
[data-theme="light"] body::before{opacity:.18}
#nav{
  background:rgba(5,7,13,.78);
  backdrop-filter:blur(26px);-webkit-backdrop-filter:blur(26px);
  border-bottom-color:rgba(185,21,39,.16);
}
[data-theme="light"] #nav{background:rgba(246,248,251,.88)}
.nav-back,#thBtn,.legal-info-card,.legal-back,.ck-card,.ck-btn,.ct-card,.ct-form{
  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"] .nav-back,[data-theme="light"] #thBtn,[data-theme="light"] .legal-info-card,[data-theme="light"] .legal-back,[data-theme="light"] .ck-card,[data-theme="light"] .ck-btn,[data-theme="light"] .ct-card,[data-theme="light"] .ct-form{
  background:linear-gradient(135deg,rgba(255,255,255,.78),rgba(246,248,251,.52));
}
.legal-hero{
  border-bottom-color:rgba(185,21,39,.18);
  background:linear-gradient(100deg,var(--bg) 0%,rgba(5,7,13,.94) 46%,rgba(8,21,45,.34) 100%);
}
[data-theme="light"] .legal-hero{background:linear-gradient(100deg,var(--bg) 0%,rgba(246,248,251,.90) 46%,rgba(8,21,45,.06) 100%)}
.legal-hero-tartan{opacity:.52;filter:saturate(.78) contrast(1.12)}
[data-theme="light"] .legal-hero-tartan{opacity:.24}
.legal-hero-veil{
  background:
    linear-gradient(90deg,var(--bg) 0%,rgba(5,7,13,.72) 44%,transparent 74%),
    linear-gradient(180deg,var(--bg) 0%,rgba(5,7,13,.48) 24%,rgba(5,7,13,.48) 76%,var(--bg) 100%),
    radial-gradient(ellipse 70% 60% at 72% 44%,rgba(185,21,39,.16),transparent 66%);
}
[data-theme="light"] .legal-hero-veil{
  background:
    linear-gradient(90deg,rgba(246,248,251,.94) 0%,rgba(246,248,251,.72) 44%,transparent 74%),
    linear-gradient(180deg,var(--bg) 0%,rgba(246,248,251,.58) 24%,rgba(246,248,251,.58) 76%,var(--bg) 100%),
    radial-gradient(ellipse 70% 60% at 72% 44%,rgba(185,21,39,.08),transparent 66%);
}
.legal-section{position:relative}
.legal-section::before{
  content:'';position:absolute;left:-34px;top:.45rem;width:1px;height:calc(100% - .45rem);
  background:linear-gradient(180deg,rgba(185,21,39,.42),transparent);
}
footer{background:var(--bg2);border-top-color:rgba(185,21,39,.18)}
.ft-tartan-bg .tartan{opacity:.28;filter:saturate(.78) contrast(1.1)}
.ft-overlay{background:linear-gradient(180deg,var(--bg2) 0%,rgba(5,7,13,.68) 50%,var(--bg2) 100%)}
[data-theme="light"] .ft-overlay{background:linear-gradient(180deg,var(--bg2) 0%,rgba(238,242,247,.70) 50%,var(--bg2) 100%)}


/* ══════════════════════════════════════════════════════════════════════════
   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);--sh2:0 24px 80px rgba(0,0,0,.70);
  --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-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,.16),transparent 64%),
    radial-gradient(ellipse 56% 46% at 10% 8%,rgba(14,30,70,.45),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,.08),transparent 64%),
    radial-gradient(ellipse 56% 46% at 10% 8%,rgba(14,30,70,.06),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);
}
.btn-r{
  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{
  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:rgba(196,154,36,.44);color:var(--gold);transform:translateY(-2px)}
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)}
#prog{background:linear-gradient(90deg,var(--r-d),var(--r) 50%,var(--gold));box-shadow:0 0 12px rgba(184,21,37,.45)}
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: 160px 160px;
  background-position: 0 0;
  background-attachment: fixed;
  background-color: transparent;
  filter: saturate(0.58) brightness(0.68) contrast(1.06);
}
.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}

/* ==========================================================================
   Optinove Royal Edition — secondary pages 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;
  --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;
  --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,.15),transparent 62%),
    radial-gradient(ellipse 70% 48% at 16% 4%,rgba(7,18,37,.70),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,.07),transparent 64%),
    linear-gradient(180deg,#f5eee5 0%,var(--bg) 46%,#eadfce 100%);
}
#nav{
  background:linear-gradient(180deg,rgba(7,18,37,.84),rgba(4,7,14,.70));
  border-bottom-color:rgba(216,203,184,.12);
  backdrop-filter:blur(26px);
}
[data-theme="light"] #nav{
  background:linear-gradient(180deg,rgba(242,234,223,.92),rgba(242,234,223,.78));
}
.legal-hero{
  background:
    radial-gradient(ellipse 70% 56% at 72% 44%,rgba(182,139,45,.09),transparent 70%),
    linear-gradient(100deg,var(--bg) 0%,rgba(4,7,14,.94) 46%,rgba(7,18,37,.68) 100%);
  border-bottom-color:rgba(216,203,184,.13);
}
[data-theme="light"] .legal-hero{
  background:
    radial-gradient(ellipse 70% 56% at 72% 44%,rgba(182,139,45,.08),transparent 70%),
    linear-gradient(100deg,#f5eee5 0%,rgba(245,238,229,.92) 46%,rgba(225,212,195,.62) 100%);
}
.legal-eye{
  color:var(--royal-gold);
  letter-spacing:.24em;
}
.legal-h{
  color:var(--tx);
  letter-spacing:0;
  text-shadow:0 22px 70px rgba(0,0,0,.32);
}
.legal-h em{color:var(--r)}
.legal-sub{color:var(--tx2)}
.nav-back,#thBtn,.legal-info-card,.legal-back,.ck-card,.ck-btn,.ct-card,.ct-form{
  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"] .nav-back,[data-theme="light"] #thBtn,[data-theme="light"] .legal-info-card,[data-theme="light"] .legal-back,[data-theme="light"] .ck-card,[data-theme="light"] .ck-btn,[data-theme="light"] .ct-card,[data-theme="light"] .ct-form{
  background:linear-gradient(145deg,rgba(255,250,241,.72),rgba(233,223,209,.44));
}
.nav-back:hover,.legal-back:hover,.ck-btn:hover{
  border-color:rgba(182,139,45,.28);
  color:var(--royal-gold);
  background:rgba(182,139,45,.07);
}
.ct-card-ico{
  background:rgba(7,18,37,.54);
  border-color:rgba(216,203,184,.14);
  color:var(--royal-gold);
}
.fbtn,.ck-btn.primary{
  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);
}
.tartan,.tartan-light{
  filter:saturate(.46) brightness(.58) contrast(1.02);
}
[data-theme="light"] .tartan{
  filter:saturate(.58) brightness(.90) contrast(.98);
}

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

/* ══════════════════════════════════════════════════════════════════════════
   ROYAL PREMIUM — FINALE LIGHT MODE · pages internes (cascade maximale)
   ─────────────────────────────────────────────────────────────────────────
   Dernier bloc du fichier → gagne toujours. Light mode = premium royal
   indépendant : blancs nobles (neige/porcelaine/perle), JAMAIS de beige,
   crème ni gris chaud. Tartan Royal Stewart = signature, jamais désaturé.
   ══════════════════════════════════════════════════════════════════════════ */

/* ── 1. Tokens light — blancs royaux froids ──────────────────────────────── */
[data-theme="light"]{
  --bg:#FBFCFE; --bg2:#F3F6FB; --bg3:#EBEFF6; --bg4:#DBE2EC;
  --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; --tx2:#3B414F; --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 — blancs nobles, halos Stewart légers ──────────────────────── */
[data-theme="light"] body{
  background:
    radial-gradient(ellipse 82% 42% at 74% -10%,rgba(200,16,46,.055),transparent 64%),
    linear-gradient(180deg,#FFFFFF 0%,var(--bg) 46%,#F3F6FB 100%) !important;
}
[data-theme="light"] #nav{
  background:linear-gradient(180deg,rgba(251,252,254,.94),rgba(243,246,251,.82)) !important;
}
[data-theme="light"] .legal-hero{
  background:
    radial-gradient(ellipse 70% 56% at 72% 44%,rgba(198,168,91,.07),transparent 70%),
    linear-gradient(100deg,#FFFFFF 0%,rgba(251,252,254,.94) 46%,rgba(235,239,246,.64) 100%) !important;
  border-bottom-color:rgba(22,30,58,.10) !important;
}

/* ── 3. Cartes & surfaces — blanc pur, lisière froide ────────────────────── */
[data-theme="light"] .nav-back,
[data-theme="light"] #thBtn,
[data-theme="light"] .legal-info-card,
[data-theme="light"] .legal-back,
[data-theme="light"] .ck-card,
[data-theme="light"] .ck-btn,
[data-theme="light"] .ct-card,
[data-theme="light"] .ct-form{
  background:linear-gradient(145deg,#FFFFFF,#F6F8FC) !important;
  border-color:var(--bd) !important;
  box-shadow:var(--sh) !important;
}
[data-theme="light"] .ct-card-ico{
  background:rgba(28,44,91,.06) !important;
  border-color:rgba(22,30,58,.12) !important;
  color:var(--royal-navy) !important;
}

/* ── 4. Accents Stewart — rôles stricts ──────────────────────────────────── */
[data-theme="light"] .legal-eye{color:var(--royal-gold) !important}
[data-theme="light"] .legal-h em{color:var(--r) !important}
[data-theme="light"] .nav-back:hover,
[data-theme="light"] .legal-back:hover,
[data-theme="light"] .ck-btn:hover{
  border-color:rgba(28,44,91,.28) !important;
  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;
}

/* ── 5. TARTAN — signature centrale, VIF (jamais délavé) ─────────────────── */
[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"] .legal-hero-tartan{
  filter:saturate(1.12) brightness(1.0) contrast(1.06) !important;
}
[data-theme="light"] .ft-tartan-bg .tartan{
  filter:saturate(1.05) brightness(1.0) contrast(1.04) !important;
  opacity:.08 !important;
}
