/* ================== Thème ================== */
:root{
  --bg1:#f8fbff; --bg2:#ecf3ff;
  --text:#0f172a; --muted:#667085;
  --accent1:#5a42ff; --accent2:#7c67ff;
  --ring:#9aa8ff;
  --glass: rgba(255,255,255,.82);
  --glass-border: rgba(15,23,42,.08);
  --glow: rgba(122,102,255,.35);
}
html,body{height:100%}
body{
  min-height:100vh; overflow-x:hidden; color:var(--text);
  background:
    radial-gradient(1200px 720px at 12% 10%, #e6f0ff 0%, transparent 60%),
    radial-gradient(1000px 640px at 86% 18%, #e6fffe 0%, transparent 55%),
    linear-gradient(120deg, var(--bg1), var(--bg2));
  -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
}

/* Décor animé léger (sans blur animé) */
.bg-anim{
  position:fixed; inset:0; z-index:-3; pointer-events:none;
  background:
    radial-gradient(62vmax 62vmax at 110% -10%, rgba(90,66,255,.10), transparent 60%),
    radial-gradient(62vmax 62vmax at -10% 120%, rgba(0,194,216,.10), transparent 60%);
  animation: hue 18s linear infinite;
}
@keyframes hue{
  0%{ filter:hue-rotate(0deg) }
  50%{ filter:hue-rotate(180deg) }
  100%{ filter:hue-rotate(360deg) }
}
.particles{
  position:fixed; inset:0; z-index:-2; pointer-events:none;
  background-image:
    radial-gradient(circle at 20% 30%, rgba(90,66,255,.06) 0 2px, transparent 3px),
    radial-gradient(circle at 70% 60%, rgba(0,194,216,.06) 0 2px, transparent 3px),
    radial-gradient(circle at 40% 80%, rgba(124,103,255,.06) 0 2px, transparent 3px);
  background-size: 260px 260px, 320px 320px, 280px 280px;
  animation: drift 22s ease-in-out infinite;
}
@keyframes drift{0%,100%{transform:translate(0,0)}50%{transform:translate(8px,-10px)}}

/* ===== Navbar ===== */
.navbar{
  --bs-navbar-padding-y:.4rem;
  backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
  background: rgba(255,255,255,.7);
  border-bottom: 1px solid var(--glass-border);
  transition: box-shadow .2s ease, background-color .2s ease;
}
.navbar.scrolled{ box-shadow: 0 8px 22px rgba(2,8,23,.08); background: rgba(255,255,255,.9); }
.navbar .navbar-toggler:focus{ box-shadow: none; }

.brand{
  font-weight:800; letter-spacing:.4px;
  background: linear-gradient(90deg, var(--accent1), var(--accent2));
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.brand-logo{ border-radius:8px; box-shadow: 0 0 0 0 rgba(124,103,255,0); transition: transform .2s ease, box-shadow .2s ease; }
.navbar-brand:hover .brand-logo{ transform: translateY(-1px) scale(1.02); box-shadow: 0 8px 24px rgba(124,103,255,.25); }

/* Lien nav */
.nav-link{ position:relative; font-weight:600; overflow:hidden; }
.nav-link.nav-ink::after{
  content:""; position:absolute; left:12px; right:12px; bottom:2px; height:2px;
  background: linear-gradient(90deg, var(--accent1), var(--accent2));
  transform:scaleX(0); transform-origin:right; transition:transform .28s ease;
  border-radius:2px; opacity:.9;
}
.nav-link.nav-ink.nav-ink-active::after{ transform:scaleX(1); transform-origin:left; }

/* ===== Hamburger animé ===== */
.hamburger{ padding:.25rem .35rem; border-radius:10px; background:transparent; position:relative; }
.hamburger:active{ transform: translateY(1px); }
.hamburger-box{ width:28px; height:20px; display:inline-block; position:relative; }
.hamburger-inner, .hamburger-inner::before, .hamburger-inner::after{
  width:28px; height:2px; background:#333; position:absolute; left:0; border-radius:2px;
  transition: transform .25s ease, top .25s ease, opacity .2s ease, background .2s ease;
}
.hamburger-inner{ top:9px }
.hamburger-inner::before{ content:""; top:-8px }
.hamburger-inner::after{ content:""; top:8px }
.hamburger.is-open .hamburger-inner{ transform: rotate(45deg) }
.hamburger.is-open .hamburger-inner::before{ top:0; opacity:0 }
.hamburger.is-open .hamburger-inner::after{ top:0; transform: rotate(-90deg) }
/* ripple léger (sans blur) */
.hamburger::after{
  content:""; position:absolute; inset:0; border-radius:10px; pointer-events:none;
  background: radial-gradient(120px 60px at var(--mx,50%) var(--my,50%), rgba(124,103,255,.18), transparent 60%);
  opacity:0; transition: opacity .25s ease;
}
.hamburger.rippling::after{ opacity:1 }

/* ================== Offcanvas ================== */
.offcanvas-glass{
  background: var(--glass); border-left:1px solid var(--glass-border);
  backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
}
.offcanvas-narrow{ --bs-offcanvas-width: 300px; }
@media (min-width: 420px){ .offcanvas-narrow{ --bs-offcanvas-width: 320px; } }

.offcanvas-header{ padding: 1rem 1rem .5rem 1rem; }
.offcanvas-logo{ border-radius:8px; box-shadow: 0 2px 12px rgba(2,8,23,.08); animation: logoFloat 6s ease-in-out infinite; }
@keyframes logoFloat{ 0%,100%{transform:translateY(0)} 50%{transform:translateY(-2px)} }
.offcanvas-close{ filter: saturate(.3); }

/* cacher scrollbar */
.offcanvas-no-scrollbar{ -ms-overflow-style:none; scrollbar-width:none; }
.offcanvas-no-scrollbar::-webkit-scrollbar{ width:0; height:0 }

/* Stagger à l'ouverture (sans blur) */
.offcanvas.show .anim-item,
.offcanvas.showing .anim-item{
  animation: itemIn .5s cubic-bezier(.2,.7,.2,1) both;
  animation-delay: calc(var(--i,1) * 45ms);
  transform-origin: left center;
}
@keyframes itemIn{ from{ opacity:0; transform: translateX(8px) } to{ opacity:1; transform: none } }

/* Sections & items */
.menu-section{ padding: .2rem 1rem; }
.menu-section-title{
  font-size:.92rem; color:#6b7280; font-weight:800; margin:.6rem 0 .35rem 0;
  letter-spacing:.02em;
}
.menu-sep{
  margin: .55rem 0 .75rem; border:0; height:1px;
  background: linear-gradient(90deg, rgba(15,23,42,.06), rgba(15,23,42,.02));
}

.menu-row{
  display:flex; align-items:center; gap:.9rem; padding:.72rem .35rem .72rem 0;
  text-decoration:none; color:#111827; border-radius:14px;
  transition: background .18s ease, transform .06s ease, box-shadow .18s ease;
  position:relative;
}
.menu-row:hover{
  background: linear-gradient(90deg, rgba(90,66,255,.06), rgba(0,194,216,.06));
  box-shadow: 0 1px 0 rgba(15,23,42,.04) inset;
}
.menu-row:active{ transform: translateY(1px) }
.menu-row .arrow{ color:#9ca3af; transition: transform .18s ease, color .18s ease }
.menu-row:hover .arrow{ transform: translateX(4px); color:#6b7280 }

.menu-ico{
  width:42px; height:42px; border-radius:12px; display:grid; place-items:center;
  background: radial-gradient(70% 70% at 30% 30%, #fff, #f3f4ff);
  border:1px solid rgba(15,23,42,.06);
  box-shadow: 0 2px 12px rgba(124,103,255,.10), inset 0 1px 0 rgba(255,255,255,.8);
  color:#4f46e5; font-size:1.12rem;
}

/* Soulignement fin au survol */
.menu-row-ink::before{
  content:""; position:absolute; left:0; right:0; bottom:0; height:2px; border-radius:2px;
  background: linear-gradient(90deg, var(--accent1), var(--accent2));
  transform: scaleX(0); transform-origin:right; transition: transform .28s ease; opacity:.9;
}
.menu-row-ink:hover::before{ transform: scaleX(1); transform-origin:left }

/* ================== Boutons du bas ================== */
.btn-3d{
  box-shadow:
    0 8px 24px rgba(2,8,23,.10),
    0 2px 0 rgba(255,255,255,.65) inset;
  transform: translateZ(0);
  transition: transform .14s ease, box-shadow .2s ease, filter .2s ease;
}
.btn-3d:active{ transform: translateY(1px); box-shadow: 0 5px 18px rgba(2,8,23,.12) }

.btn-shine{ position:relative; overflow:hidden; }
.btn-shine::after{
  content:""; position:absolute; inset:auto -60% 0 -60%; height:140%;
  background: linear-gradient(120deg, rgba(255,255,255,.0) 0%, rgba(255,255,255,.45) 48%, rgba(255,255,255,.0) 60%);
  transform: translateX(-120%) skewX(-18deg);
  transition: transform .6s ease;
  pointer-events:none; mix-blend-mode: screen;
}
.btn-shine:hover::after{ transform: translateX(30%) skewX(-18deg) }

.icon-slide i{ transition: transform .18s ease }
.icon-slide:hover i{ transform: translateX(3px) }

/* bouton “soft” */
.btn-soft{
  --g: linear-gradient(135deg, rgba(124,103,255,.22), rgba(90,66,255,.16));
  background: var(--g);
  color:#3f36c7;
  border:1px solid rgba(124,103,255,.28);
  border-radius:14px; font-weight:800; padding:.95rem 1.1rem;
  backdrop-filter: blur(6px);
}
.btn-soft:hover{ filter:saturate(1.05); box-shadow: 0 14px 28px rgba(124,103,255,.20) }

/* bouton outline dégradé */
.btn-outline-gradient{
  --grad: linear-gradient(135deg, var(--accent1), var(--accent2));
  position:relative; background: rgba(255,255,255,.65); color:#4b3ff0;
  border-radius:14px; font-weight:800; padding:.95rem 1.1rem;
  border:2px solid transparent;
}
.btn-outline-gradient::before{
  content:""; position:absolute; inset:0; border-radius:14px; padding:2px;
  background: var(--grad); background-size: 200% 200%;
  animation: borderSweep 6s linear infinite;
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor; mask-composite: exclude;
}
.btn-outline-gradient:hover{ box-shadow: 0 14px 38px rgba(124,103,255,.25) }
@keyframes borderSweep{ 0%{background-position:0% 50%} 50%{background-position:100% 50%} 100%{background-position:0% 50%} }

/* CTA conteneur Offcanvas */
.offcanvas-cta{ padding: .9rem 1rem 1.2rem }
.offcanvas-cta-inner{
  border:1px solid var(--glass-border);
  border-radius:14px; padding:1rem;
  background: rgba(255,255,255,.72);
  box-shadow: 0 10px 30px rgba(2,8,23,.10);
}

/* ===== Cartes / boutons “fat” ===== */
.card{border:none;border-radius:22px}
.glass{
  background: var(--glass); border:1px solid var(--glass-border); border-radius:22px;
  backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
  box-shadow: 0 18px 50px rgba(2,8,23,.08);
  position:relative; overflow:hidden;
}
.btn-fat{
  padding:.95rem 1.2rem; border-radius:14px; font-weight:800; letter-spacing:.2px;
  color:#fff; border:0; position:relative; overflow:hidden;
  background: linear-gradient(135deg, var(--accent1), var(--accent2));
  box-shadow: 0 10px 28px rgba(90,66,255,.28);
  transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
}
.btn-fat:hover{ transform: translateY(-2px) scale(1.02); box-shadow: 0 18px 36px rgba(90,66,255,.38); filter: saturate(1.1); }
.btn-outline-fat{
  border-radius:14px; font-weight:800; padding:.8rem 1rem;
  border:2px solid rgba(90,66,255,.35); color:var(--accent1); background: transparent;
}
.btn-fat::before{
  content:""; position:absolute; inset:-60% -20% auto -20%; height:160%;
  background: radial-gradient(50% 50% at 50% 20%, rgba(255,255,255,.38), transparent 60%);
  transform: translateY(30px); opacity:.8; transition: transform .3s ease, opacity .3s ease; pointer-events:none;
}
.btn-fat:hover::before{ transform: translateY(0); opacity:1 }

/* Accessibilité & motion */
:focus-visible{ outline:none; box-shadow: 0 0 0 .24rem var(--ring) !important; border-radius:10px }
@media (prefers-reduced-motion: reduce){ *{ animation:none !important; transition:none !important } }

/* ===== Footer ===== */
.site-footer, .container > .site-footer { background: transparent; }
footer.container{
  position:relative;
  background: rgba(255,255,255,.72);
  border-top:1px solid var(--glass-border);
  border-radius: 18px 18px 0 0;
  backdrop-filter: blur(10px);
}
.footer-logo{ border-radius:8px; box-shadow: 0 8px 24px rgba(124,103,255,.18); }
.footer-title{
  font-weight:900; letter-spacing:.2px;
  background: linear-gradient(90deg, var(--accent1), var(--accent2));
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.footer-desc{ color:var(--muted); margin-top:.2rem }
.footer-group-title{
  font-size:.92rem; font-weight:800; color:#6b7280; margin-bottom:.4rem; letter-spacing:.02em;
}
.footer-link{
  display:inline-block; padding:.25rem 0; text-decoration:none;
  color:#374151; position:relative; transition: color .18s ease;
}
.footer-link:hover{ color:#2b2f77 }
.footer-link.muted{ color:var(--muted); cursor:default; }
.footer-contact i{ color:#4f46e5; }

.footer-social{ display:flex; gap:.5rem }
.social-btn{
  width:36px; height:36px; display:grid; place-items:center;
  border-radius:10px; background:#f4f5ff; color:#333;
  border:1px solid rgba(15,23,42,.06);
  transition: transform .12s ease, box-shadow .18s ease, filter .18s ease;
}
.social-btn:hover{ transform: translateY(-1px); box-shadow: 0 10px 24px rgba(124,103,255,.22); filter:saturate(1.05) }

.badge-app{
  display:inline-flex; align-items:center; gap:.45rem;
  padding:.45rem .7rem; border-radius:12px;
  background: linear-gradient(135deg, rgba(124,103,255,.10), rgba(90,66,255,.06));
  border:1px solid rgba(124,103,255,.25);
  color:#4037b5; font-weight:800; text-decoration:none;
  transition: transform .12s ease, box-shadow .18s ease, filter .18s ease;
}
.badge-app i{ font-size:1rem }
.badge-app:hover{ transform: translateY(-1px); box-shadow: 0 12px 24px rgba(124,103,255,.18); filter:saturate(1.05) }

.footer-sep{
  height:1px; border:0;
  background: linear-gradient(90deg, rgba(15,23,42,.06), rgba(15,23,42,.02));
}
.chip{
  display:inline-flex; align-items:center; gap:.4rem;
  padding:.35rem .6rem; border-radius:999px;
  background: rgba(124,103,255,.08);
  border:1px dashed rgba(124,103,255,.35);
  color:#4b3ff0; font-weight:700;
}

/* Bouton “Haut” */
.to-top{
  position:fixed; right:16px; bottom:16px; z-index:999;
  width:42px; height:42px; border-radius:12px; border:0;
  display:grid; place-items:center; color:#fff;
  background: linear-gradient(135deg, var(--accent1), var(--accent2));
  box-shadow: 0 12px 28px rgba(90,66,255,.30);
  opacity:0; visibility:hidden; transform: translateY(8px) scale(.98);
  transition: opacity .22s ease, transform .22s ease, visibility .22s ease;
}
.to-top.show{ opacity:1; visibility:visible; transform: translateY(0) scale(1) }
.to-top:hover{ filter:saturate(1.05); transform: translateY(-2px) scale(1.02) }

/* ================== INDEX — HERO, STATS, FEATURES, FAQ, PRICING ================== */
header .brand { animation: fadeUp .6s ease both; }
header .lead-muted { font-size:1.05rem; }
.section-title{
  font-weight:900; letter-spacing:.2px; position:relative; display:inline-block;
  background: linear-gradient(90deg, var(--accent1), var(--accent2));
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.section-title::after{
  content:""; position:absolute; left:10%; right:10%; bottom:-6px; height:3px; border-radius:3px;
  background: linear-gradient(90deg, var(--accent1), var(--accent2));
  transform: scaleX(.25); transform-origin:left;
  animation: sectionBar .9s .12s cubic-bezier(.2,.7,.2,1) forwards;
}
@keyframes sectionBar { to{ transform: scaleX(1) } }

/* Cartes CTA */
.card-cta .glass{ transition: transform .18s ease, box-shadow .18s ease; will-change: transform; }
.card-cta:hover .glass{ transform: translateY(-2px); box-shadow: 0 22px 58px rgba(2,8,23,.10); }
.card-cta .card-body h5{ font-weight:800 }

/* Ruban stats (pro, sans blur animé) */
.stats-ribbon{
  position: relative;
  padding: .85rem .95rem;
  border-radius: 14px;
  background: rgba(255,255,255,.72);
  border: 1px solid var(--glass-border);
  backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
  box-shadow: 0 6px 14px rgba(2,8,23,.06);
}
.stats-ribbon::before{
  content:""; position:absolute; left:0; top:10px; bottom:10px; width:3px;
  border-radius: 3px;
  background: linear-gradient(180deg, var(--accent1), var(--accent2));
  opacity:.85;
}
.stat-chip{
  display:inline-flex; align-items:center; gap:.55rem;
  padding:.48rem .8rem; border-radius: 999px; font-weight: 800; line-height:1;
  color:#243056; background:#fff; border: 1px solid rgba(15,23,42,.08);
  box-shadow: 0 1px 0 rgba(255,255,255,.7) inset;
  transition: background .15s ease, transform .1s ease, border-color .15s ease;
}
.stat-chip i{
  display:grid; place-items:center; width:22px; height:22px; border-radius:7px;
  font-size:.95rem; color: var(--accent1); background: #f4f6ff; border:1px solid rgba(15,23,42,.06);
}
.stat-chip:hover{ background:#f9f9ff; border-color: rgba(15,23,42,.12); transform: translateY(-1px); }
.stats-ribbon .row > [class*="col-"] > .stat-chip{ width:100%; justify-content:center; }
@media (max-width: 575.98px){
  .stats-ribbon{ padding:.7rem .75rem; }
  .stat-chip{ padding:.45rem .72rem; }
}

/* Features */
#features .glass{ transition: transform .18s ease, box-shadow .18s ease; will-change: transform; }
#features .glass:hover{ transform: translateY(-3px); box-shadow: 0 22px 58px rgba(2,8,23,.10); }
#features .fs-3{ width:46px; height:46px; border-radius:12px; display:grid; place-items:center;
  background: radial-gradient(70% 70% at 30% 30%, #fff, #f3f4ff);
  border:1px solid rgba(15,23,42,.06);
  color:#4f46e5;
}

/* ================== GALERIE SÉRIES ================== */
.series-gallery{
  display:grid; grid-template-columns: repeat(2, 1fr); gap: .9rem;
}
@media (min-width: 576px){ .series-gallery{ grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 992px){ .series-gallery{ grid-template-columns: repeat(5, 1fr); } }

.poster-card{
  position:relative; display:block; border-radius:16px; overflow:hidden;
  background: rgba(255,255,255,.6);
  border:1px solid var(--glass-border);
  box-shadow: 0 10px 28px rgba(2,8,23,.08);
  transform: translateZ(0);
  transition: transform .18s ease, box-shadow .22s ease, filter .18s ease;
}
.poster-card:hover{ transform: translateY(-3px); box-shadow: 0 20px 48px rgba(2,8,23,.12); filter: saturate(1.03); }
.poster-card:active{ transform: translateY(-1px) }
.poster-img{ width:100%; height:auto; aspect-ratio: 16/9; object-fit: cover; display:block; background:#eef1ff; }

.poster-badge{
  position:absolute; left:8px; top:8px; padding:.28rem .5rem; font-size:.75rem; font-weight:800;
  border-radius:999px;
  background: linear-gradient(135deg, rgba(124,103,255,.18), rgba(90,66,255,.18));
  color:#2b2f77; border:1px solid rgba(124,103,255,.35);
  backdrop-filter: blur(6px);
}
.poster-overlay{
  position:absolute; left:0; right:0; bottom:0;
  padding:.6rem .7rem .65rem;
  background: linear-gradient(180deg, rgba(0,0,0,0) 10%, rgba(5,8,20,.65) 85%);
  color:#fff;
}
.po-title{ font-weight:900; letter-spacing:.2px; font-size:.95rem; line-height:1.1; text-shadow: 0 2px 10px rgba(0,0,0,.22); display:block; }
.po-meta{ display:flex; align-items:center; gap:.35rem; font-size:.78rem; opacity:.92; }

.poster-play{
  position:absolute; right:10px; top:10px; width:36px; height:36px; border-radius:12px;
  display:grid; place-items:center; color:#fff;
  background: linear-gradient(135deg, var(--accent1), var(--accent2));
  box-shadow: 0 10px 22px rgba(90,66,255,.25);
  transform: translateY(-6px); opacity:0; transition: all .18s ease;
}
.poster-card:hover .poster-play{ transform: translateY(0); opacity:1 }

.poster-card::after{
  content:""; position:absolute; inset:auto -50% 0 -50%; height:120%;
  background: linear-gradient(120deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.35) 48%, rgba(255,255,255,0) 60%);
  transform: translateX(-120%) skewX(-18deg);
  opacity:0; transition: transform .6s ease, opacity .3s ease;
  pointer-events:none; mix-blend-mode: screen;
}
.poster-card:hover::after{ transform: translateX(20%) skewX(-18deg); opacity:1 }
.poster-card:focus-visible{ outline:none; box-shadow: 0 0 0 .2rem var(--ring), 0 10px 28px rgba(2,8,23,.12); }

/* Titre de section Séries — centré */
#series .text-center{ text-align:center; }
#series .section-title{
  position:relative; display:inline-block; font-weight:900; letter-spacing:.2px;
  background: linear-gradient(90deg, var(--accent1), var(--accent2));
  -webkit-background-clip:text; background-clip:text; color:transparent; font-size:1.65rem;
}
#series .section-title::after{
  content:""; position:absolute; left:10%; right:10%; bottom:-6px; height:3px; border-radius:3px;
  background: linear-gradient(90deg, var(--accent1), var(--accent2));
  transform:scaleX(.25); transform-origin:left; animation: sectionBarSeries .9s .12s cubic-bezier(.2,.7,.2,1) forwards;
}
@keyframes sectionBarSeries{ to{ transform:scaleX(1) } }
#series p.muted{ font-size:.96rem; color:var(--muted); font-weight:500; margin-top:.35rem; letter-spacing:.1px; text-shadow: 0 1px 0 rgba(255,255,255,.4); }

/* ===== FAQ dynamique ===== */
#faqMount .faq-item{
  border-radius:22px; background:var(--glass); border:1px solid var(--glass-border);
  backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
  box-shadow:0 18px 50px rgba(2,8,23,.08); overflow:hidden;
}
#faqMount .faq-item + .faq-item{ margin-top:.75rem; }
#faqMount .faq-head{
  width:100%; text-align:left; background:transparent; border:0; padding:1rem 1.25rem;
  font-weight:800; display:flex; align-items:center; gap:.75rem; cursor:pointer;
}
#faqMount .faq-head:focus-visible{ outline:none; box-shadow: 0 0 0 .24rem var(--ring); border-radius:14px; }
#faqMount .ico{
  width:38px; height:38px; border-radius:12px; display:grid; place-items:center;
  background: radial-gradient(70% 70% at 30% 30%, #fff, #f3f4ff);
  border:1px solid rgba(15,23,42,.06); color:#4f46e5;
}
#faqMount .chev{ margin-left:auto; transition: transform .2s ease; color:#6b7280; }
#faqMount .faq-item[open] .chev{ transform: rotate(180deg); }
#faqMount .faq-panel{ height:0; overflow:hidden; transition: height .26s ease; }
#faqMount .faq-inner{ padding:.25rem 1.25rem 1rem 1.25rem; color:var(--muted); }

/* ===== Aucune animation de blur globale ===== */
.reveal, .reveal.reveal-in,
#faqMount .faq-item.reveal, #faqMount .faq-item.reveal.reveal-in{
  opacity: 1 !important; transform: none !important; animation: none !important;
}

/* Performances */
.container, section, header { content-visibility: auto; contain-intrinsic-size: 600px; }

/* Petites keyframes restantes (sans blur) */
@keyframes fadeUp { from{opacity:0;transform:translateY(6px)} to{opacity:1;transform:none} }





/* ===== Back to top — global, toujours visible ===== */
.to-top{
  position:fixed; right:16px; bottom:16px; z-index:1100;
  width:48px; height:48px; border:0; border-radius:50%;
  display:grid; place-items:center; cursor:pointer;
  color:#fff; background: linear-gradient(135deg, var(--accent1), var(--accent2));
  box-shadow: 0 14px 28px rgba(90,66,255,.28);
  transition: filter .18s ease, transform .18s ease;
}
.to-top:hover{ filter:saturate(1.06); transform: translateY(-2px) }
.to-top i{ font-size:1.2rem; pointer-events:none }

/* Anneau de progression autour du bouton (optionnel, ne cache JAMAIS) */
.to-top::before{
  content:""; position:absolute; inset:-2px; border-radius:50%;
  background:
    radial-gradient(closest-side, rgba(255,255,255,0) 72%, rgba(255,255,255,.85) 73%, rgba(255,255,255,.85) 76%, transparent 0),
    conic-gradient(var(--accent2) calc(var(--scroll,0) * 1%), rgba(0,0,0,0) 0);
  z-index:-1; filter: drop-shadow(0 2px 10px rgba(2,8,23,.12));
}

@media (max-width: 380px){
  .to-top{ width:44px; height:44px; right:12px; bottom:12px }
}