@import url('https://fonts.googleapis.com/css2?family=Michroma&family=Space+Grotesk:wght@400;500;600;700&display=swap');
:root{
  --bg:#0a0910;
  --bg-alt:#120e1c;
  --card:#1a1524;
  --card-2:#211a2e;
  --border:rgba(255,255,255,0.09);
  --purple:#7233d6;
  --purple-2:#9a5cf0;
  --purple-deep:#2c1152;
  --white:#f5f3f6;
  --mute:#b3a8c2;
  --mute-2:#8a7f99;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;background:var(--bg);}
.page{
  font-family:'Space Grotesk',system-ui,sans-serif;
  background:var(--bg);
  color:var(--white);
  min-height:100%;
  width:100%;
  overflow-x:hidden;
  position:relative;
}
h1,h2,h3,.mich{
  font-family:'Michroma','Space Grotesk',system-ui,sans-serif;
  font-weight:400;
  letter-spacing:0.01em;
  margin:0;
}
p{margin:0;line-height:1.65;color:var(--mute);}
a{color:var(--purple-2);text-decoration:none;}
a:hover{color:var(--white);}
.eyebrow{
  font-family:'Space Grotesk',sans-serif;
  font-size:12px;
  font-weight:600;
  letter-spacing:0.22em;
  text-transform:uppercase;
  color:var(--purple-2);
  display:flex;
  align-items:center;
  gap:10px;
}
.eyebrow::before{content:"";width:26px;height:2px;background:var(--purple-2);display:inline-block;}

/* ---- forme angulaire (coins coupés, esprit logo) ---- */
.cut{clip-path:polygon(20px 0,100% 0,100% calc(100% - 20px),calc(100% - 20px) 100%,0 100%,0 20px);}
.cut-sm{clip-path:polygon(10px 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%,0 10px);}
.cut-rev{clip-path:polygon(0 0,calc(100% - 20px) 0,100% 20px,100% 100%,20px 100%,0 calc(100% - 20px));}

/* ---- nav ---- */
.nav{
  position:absolute;top:0;left:0;right:0;z-index:20;
  display:flex;align-items:center;justify-content:space-between;
  padding:22px 56px;
  background:linear-gradient(to bottom, rgba(8,6,13,0.75), rgba(8,6,13,0));
}
.nav.solid{
  position:relative;
  background:var(--bg-alt);
  border-bottom:1px solid var(--border);
}
.nav-logo{display:flex;align-items:center;gap:12px;}
.nav-logo img{width:214px;height:94px;object-fit:contain;display:block;}
.nav-links{display:flex;align-items:center;gap:36px;white-space:nowrap;}
.nav-links a{
  font-size:13px;font-weight:600;letter-spacing:0.06em;text-transform:uppercase;
  color:var(--white);opacity:0.82;position:relative;padding-bottom:4px;white-space:nowrap;
}
.nav-links a:hover{opacity:1;}
.nav-links a.active{opacity:1;color:var(--purple-2);}
.nav-cta{
  font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:13px;letter-spacing:0.06em;text-transform:uppercase;
  color:var(--white)!important;background:linear-gradient(135deg,var(--purple),var(--purple-deep));
  padding:12px 24px;white-space:nowrap;border:1px solid rgba(255,255,255,0.18);
}
.nav-cta.cut-sm:hover{filter:brightness(1.15);}

/* ---- hero / banner ---- */
.hero{
  position:relative;padding:190px 56px 110px;overflow:hidden;
  background:#0a0910;
  border-bottom:1px solid var(--border);
}
.hero-photo-bg{
  position:absolute;inset:0;z-index:0;
  background-repeat:no-repeat;background-size:cover;background-position:center 55%;
}
.hero-veil{
  position:absolute;inset:0;z-index:1;
  background:
    radial-gradient(1100px 520px at 82% -10%, rgba(114,51,214,0.32), transparent 60%),
    linear-gradient(180deg, rgba(8,7,13,0.66) 0%, rgba(8,7,13,0.84) 50%, rgba(8,7,13,0.98) 100%);
}
.hero-bg-shape{
  position:absolute;top:-140px;right:-160px;width:640px;height:640px;
  background:linear-gradient(135deg,var(--purple-deep),transparent 70%);
  clip-path:polygon(30% 0,100% 0,100% 70%,70% 100%,0 100%,0 30%);
  opacity:0.55;pointer-events:none;z-index:1;
}
.hero-inner{max-width:1440px;margin:0 auto;position:relative;z-index:2;}
.hero-split{display:flex;gap:70px;align-items:center;}
.hero-text{flex:1.15;min-width:0;}
.hero-photo-col{flex:0.85;min-width:0;display:flex;justify-content:center;}
.hero-photo-frame{
  position:relative;width:100%;max-width:400px;aspect-ratio:9/16;
  box-shadow:0 30px 70px rgba(0,0,0,0.55);
  border:1px solid rgba(255,255,255,0.14);
}
.hero-photo-frame img{width:100%;height:100%;object-fit:cover;display:block;}
.hero-photo-glow{
  position:absolute;inset:-26px;z-index:-1;
  background:linear-gradient(135deg,var(--purple-deep),transparent 70%);
  clip-path:polygon(10% 0,100% 0,100% 88%,90% 100%,0 100%,0 12%);
  opacity:0.7;
}
.hero h1{font-size:48px;line-height:1.18;margin-top:22px;}
.hero h1 .accent{color:var(--purple-2);}
.hero-h1 .hero-line{display:inline-block;white-space:nowrap;}
.hero-cycle-word{display:inline-block;color:var(--purple-2);transition:opacity .35s ease, transform .35s ease;}
.hero-cycle-word.fade-out{opacity:0;transform:translateY(6px);}
@media (prefers-reduced-motion: reduce){
  .hero-cycle-word{transition:none;}
}
.hero p.lead{margin-top:24px;max-width:560px;font-size:17px;}
.hero-actions{display:flex;gap:18px;margin-top:38px;}
.hero-tagline{
  margin-top:56px;display:flex;flex-wrap:wrap;row-gap:14px;border-top:1px solid var(--border);padding-top:22px;max-width:100%;
}
.hero-tagline span{
  font-size:11px;letter-spacing:0.16em;text-transform:uppercase;color:var(--mute-2);
  padding-right:22px;margin-right:22px;border-right:1px solid var(--border);
}
.hero-tagline span:last-child{border-right:none;}

.banner{
  position:relative;padding:170px 56px 70px;overflow:hidden;
  background:#0a0910;
  border-bottom:1px solid var(--border);
}
.banner-photo-bg{
  position:absolute;inset:0;z-index:0;
  background-repeat:no-repeat;background-size:cover;background-position:center 20%;
}
.banner-veil{
  position:absolute;inset:0;z-index:1;
  background:
    radial-gradient(900px 420px at 90% -20%, rgba(114,51,214,0.30), transparent 60%),
    linear-gradient(180deg, rgba(10,9,16,0.88) 0%, rgba(10,9,16,0.97) 100%);
}
.banner-inner{position:relative;z-index:2;max-width:1440px;margin:0 auto;}
.banner h1{font-size:38px;margin-top:16px;}
.banner p{margin-top:16px;max-width:600px;font-size:16px;}

/* ---- boutons ---- */
.btn{
  display:inline-flex;align-items:center;gap:10px;
  font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:13px;letter-spacing:0.05em;text-transform:uppercase;
  padding:15px 30px;cursor:pointer;transition:filter .15s ease, transform .15s ease;
}
.btn-primary{background:linear-gradient(135deg,var(--purple),var(--purple-deep));color:var(--white);border:1px solid rgba(255,255,255,0.18);}
.btn-ghost{background:transparent;color:var(--white);border:1px solid var(--border);}
.btn svg{width:16px;height:16px;stroke:currentColor;}

/* ---- sections / layout ---- */
.section{max-width:1440px;margin:0 auto;padding:100px 56px;}
.section.tight{padding-top:70px;padding-bottom:70px;}
.section-head{max-width:640px;margin-bottom:56px;}
.section-head h2{font-size:30px;margin-top:16px;color:var(--white);}
.section-head p{margin-top:16px;font-size:16px;}
.row-rev{flex-direction:row-reverse;}
.split{display:flex;gap:64px;align-items:center;}
.split > div{flex:1;min-width:0;}

.card{
  background:var(--card);border:1px solid var(--border);padding:34px;
}
.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px;}
.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;}
.grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px;}

.icon-badge{
  width:56px;height:56px;display:flex;align-items:center;justify-content:center;flex-shrink:0;
  background:linear-gradient(135deg,var(--purple-deep),var(--card-2));
  border:1px solid var(--border);
}
.icon-badge svg{width:26px;height:26px;stroke:var(--purple-2);fill:none;stroke-width:1.6;}
.icon-badge.lg{width:72px;height:72px;}
.icon-badge.lg svg{width:32px;height:32px;}

.photo-slot{
  background:
    repeating-linear-gradient(135deg, rgba(255,255,255,0.025) 0 2px, transparent 2px 14px),
    linear-gradient(160deg,var(--card-2),var(--bg-alt));
  border:1px dashed var(--border);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;
  color:var(--mute-2);text-align:center;padding:20px;
}
.photo-slot .icon-badge{background:rgba(114,51,214,0.14);}
.photo-slot span{font-size:11px;letter-spacing:0.08em;text-transform:uppercase;max-width:220px;}

.tag-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px;}
.tag{
  font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:var(--mute);
  border:1px solid var(--border);padding:7px 14px;background:var(--bg-alt);
}

.inline-link{
  color:var(--purple-2);font-weight:600;border-bottom:1px solid rgba(154,92,240,0.4);padding-bottom:1px;
}

/* ---- photos réelles ---- */
.photo{
  position:relative;overflow:hidden;
  background:var(--card-2);
}
.photo img{width:100%;height:100%;object-fit:cover;display:block;}
.photo.top img{object-position:center top;}

/* ---- bandeau d'entités KB ---- */
.brand-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;}
.brand-card{
  height:110px;
  display:flex;align-items:center;justify-content:center;padding:22px;
}
.brand-card img{width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain;display:block;}
.brand-card.placeholder{flex-direction:column;gap:8px;color:var(--mute-2);border:1px dashed var(--border);}
.brand-card.placeholder span{font-family:'Michroma','Space Grotesk',sans-serif;font-size:13px;letter-spacing:0.06em;text-transform:uppercase;color:var(--white);text-align:center;}
.brand-card.placeholder small{font-size:10px;letter-spacing:0.04em;text-transform:uppercase;}

/* ---- cartes spécialités (branches KB) ---- */
.spec-card{display:block;position:relative;color:inherit;}
.spec-num{
  position:absolute;top:22px;right:26px;font-family:'Michroma',sans-serif;font-size:12px;color:var(--mute-2);letter-spacing:0.08em;
}
.spec-logo{height:96px;display:flex;align-items:center;justify-content:center;padding:16px;margin-bottom:22px;}
.spec-logo img{width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain;display:block;}
.spec-logo.placeholder{flex-direction:column;gap:4px;border:1px dashed var(--border);}
.spec-logo.placeholder span{font-family:'Michroma',sans-serif;font-size:12px;letter-spacing:0.05em;text-transform:uppercase;color:var(--white);}
.spec-resp{
  margin-top:14px;font-size:12px;letter-spacing:0.04em;text-transform:uppercase;color:var(--purple-2);font-weight:600;
}
.spec-desc{margin-top:10px;font-size:14px;}

/* ---- comparateur avant / après ---- */
.compare{position:relative;overflow:hidden;aspect-ratio:3/2;background:var(--bg-alt);}
.compare img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;}
.compare .before-img{clip-path:polygon(0 0,50% 0,50% 100%,0 100%);}
.compare .divider{position:absolute;top:0;bottom:0;left:50%;width:2px;background:rgba(245,243,246,0.85);transform:translateX(-1px);}
.compare .handle{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:54px;height:54px;background:linear-gradient(135deg,var(--purple),var(--purple-deep));
  border:2px solid rgba(245,243,246,0.9);display:flex;align-items:center;justify-content:center;
  clip-path:polygon(14px 0,100% 0,100% calc(100% - 14px),calc(100% - 14px) 100%,0 100%,0 14px);
}
.compare .handle svg{width:24px;height:24px;stroke:var(--white);fill:none;stroke-width:1.8;}
.compare .ca-tag{
  position:absolute;bottom:18px;font-size:11px;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;
  padding:8px 16px;background:rgba(10,9,16,0.78);border:1px solid var(--border);color:var(--white);
}
.compare .ca-tag.tag-before{left:18px;}
.compare .ca-tag.tag-after{right:18px;}

/* ---- footer ---- */
.footer{
  position:relative;padding:80px 56px 34px;overflow:hidden;
  background:#0a0910;
  border-top:1px solid var(--border);
}
.footer-photo-bg{
  position:absolute;inset:0;z-index:0;
  background-image:url('../img/footer-bg.jpg');
  background-repeat:no-repeat;background-size:cover;background-position:center 30%;
}
.footer-veil{
  position:absolute;inset:0;z-index:1;
  background:linear-gradient(160deg, rgba(10,9,16,0.93) 0%, rgba(10,9,16,0.97) 75%);
}
.footer-shape{
  position:absolute;bottom:-200px;left:-120px;width:520px;height:520px;z-index:1;
  background:radial-gradient(circle,var(--purple-deep),transparent 70%);
  opacity:0.5;pointer-events:none;
}
.footer-inner{max-width:1440px;margin:0 auto;position:relative;z-index:2;}
.footer-top{display:flex;justify-content:space-between;gap:60px;padding-bottom:48px;border-bottom:1px solid var(--border);}
.footer-brand img{width:544px;height:239px;object-fit:contain;display:block;margin-bottom:18px;}
.footer-brand p{max-width:300px;font-size:14px;}
.footer-cols{display:flex;gap:72px;}
.footer-col h3{font-size:12px;letter-spacing:0.12em;text-transform:uppercase;color:var(--mute-2);font-family:'Space Grotesk';font-weight:700;margin-bottom:20px;}
.footer-line{display:flex;align-items:center;gap:12px;margin-bottom:14px;font-size:14px;color:var(--mute);}
.footer-line .icon-badge{width:34px;height:34px;}
.footer-line .icon-badge svg{width:16px;height:16px;}
.footer-line a{color:var(--white);}
.footer-bottom{display:flex;justify-content:space-between;padding-top:26px;font-size:12px;color:var(--mute-2);}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
/* ==========================================================
   Ajouts export réel : responsive, animations, tiroir mobile,
   curseur personnalisé, bandeau cookies, preloader.
   ========================================================== */

html{scroll-behavior:smooth;}

/* ---- reveal au défilement ---- */
.reveal{opacity:0;transform:translateY(28px);}
.reveal.in-view{animation:fadeUp .7s cubic-bezier(.16,.8,.24,1) both;}
@keyframes fadeUp{from{opacity:0;transform:translateY(28px);}to{opacity:1;transform:translateY(0);}}

/* ---- header scroll ---- */
.nav{transition:background .3s ease, padding .3s ease, box-shadow .3s ease;}
.nav.scrolled{background:rgba(10,9,16,0.92)!important;backdrop-filter:blur(6px);box-shadow:0 10px 30px rgba(0,0,0,0.35);}

/* ---- hero : apparition au chargement + parallax ---- */
.hero-inner .eyebrow,
.hero-inner h1,
.hero-inner p.lead,
.hero-inner .hero-actions,
.hero-inner .hero-tagline{
  opacity:0;transform:translateY(24px);
  animation:fadeUp .8s cubic-bezier(.16,.8,.24,1) both;
}
.hero-inner .eyebrow{animation-delay:.2s;}
.hero-inner h1{animation-delay:.35s;}
.hero-inner p.lead{animation-delay:.6s;}
.hero-inner .hero-actions{animation-delay:.8s;}
.hero-inner .hero-tagline{animation-delay:.95s;}
.hero-photo-bg{will-change:transform;}

/* Curseur d'écriture (effet machine à écrire du H1) */
.type-cursor{display:inline-block;width:2px;background:var(--purple-2);margin-left:2px;animation:blink 1s steps(1) infinite;}
@keyframes blink{0%,49%{opacity:1;}50%,100%{opacity:0;}}

/* ---- cartes / photos : survol ---- */
.card.cut{transition:transform .35s cubic-bezier(.16,.8,.24,1), box-shadow .35s ease;}
.card.cut:hover{transform:translateY(-6px);box-shadow:0 22px 44px rgba(0,0,0,0.38);}
.photo.cut{overflow:hidden;}
.photo.cut img{transition:transform .6s cubic-bezier(.16,.8,.24,1);}
.photo.cut:hover img{transform:scale(1.07);}
.compare.cut{transition:box-shadow .35s ease;}
.compare.cut:hover{box-shadow:0 22px 44px rgba(0,0,0,0.38);}
.brand-card img{transition:transform .35s cubic-bezier(.16,.8,.24,1);}
.brand-card:hover img{transform:scale(1.08);}

/* ---- liens soulignés au survol ---- */
.inline-link,.footer-line a{
  background-image:linear-gradient(currentColor,currentColor);
  background-position:0 100%;background-repeat:no-repeat;background-size:0% 1px;
  transition:background-size .3s ease;
}
.inline-link:hover,.footer-line a:hover{background-size:100% 1px;}
.nav-links a{background-image:linear-gradient(var(--purple-2),var(--purple-2));background-position:0 100%;background-repeat:no-repeat;background-size:0% 2px;transition:background-size .3s ease, opacity .2s ease;}
.nav-links a:hover{background-size:100% 2px;}
.nav-links a.active{background-size:100% 2px;}

/* ---- boutons : remplissage + léger relief ---- */
.btn{position:relative;overflow:hidden;transition:filter .2s ease, transform .25s cubic-bezier(.16,.8,.24,1), box-shadow .25s ease;}
.btn::after{content:"";position:absolute;inset:0;background:rgba(255,255,255,0.16);transform:scaleX(0);transform-origin:left;transition:transform .35s ease;pointer-events:none;}
.btn:hover::after{transform:scaleX(1);}
.btn:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(114,51,214,0.35);}
.btn span.btn-label,.btn svg{position:relative;z-index:1;}

/* ---- spotlight (halo qui suit le curseur) ---- */
.spotlight{position:relative;}
.spotlight::before{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;opacity:0;
  background:radial-gradient(340px circle at var(--sx,50%) var(--sy,50%), rgba(154,92,240,0.22), transparent 70%);
  transition:opacity .3s ease;
}
.spotlight:hover::before{opacity:1;}
.hero.spotlight::before{background:radial-gradient(520px circle at var(--sx,50%) var(--sy,50%), rgba(154,92,240,0.16), transparent 70%);}

/* ---- tilt 3D ---- */
.tilt{transform-style:preserve-3d;transition:transform .3s cubic-bezier(.16,.8,.24,1);will-change:transform;}

/* ---- boutons magnétiques ---- */
.magnetic{transition:transform .25s cubic-bezier(.16,.8,.24,1);}

/* ---- footer reveal ---- */
.footer-inner{opacity:0;transform:translateY(20px);}
.footer-inner.in-view{animation:fadeUp .8s cubic-bezier(.16,.8,.24,1) both;}

/* ---- curseur personnalisé ---- */
body.cursor-fine{cursor:none;}
body.cursor-fine a, body.cursor-fine button, body.cursor-fine .btn, body.cursor-fine .card, body.cursor-fine label{cursor:none;}
.cursor-dot,.cursor-ring{position:fixed;top:0;left:0;pointer-events:none;z-index:9999;border-radius:50%;transform:translate(-50%,-50%);}
.cursor-dot{width:7px;height:7px;background:var(--purple-2);opacity:0;transition:opacity .2s ease;}
.cursor-ring{width:34px;height:34px;border:1.5px solid rgba(154,92,240,0.7);opacity:0;transition:opacity .2s ease, width .2s ease, height .2s ease, border-color .2s ease;}
body.cursor-fine .cursor-dot,body.cursor-fine .cursor-ring{opacity:1;}
.cursor-ring.cursor-hover{width:52px;height:52px;border-color:var(--purple-2);background:rgba(154,92,240,0.1);}

/* ---- preloader ---- */
#preloader{
  position:fixed;inset:0;z-index:10000;background:#0a0910;
  display:flex;align-items:center;justify-content:center;
  transition:opacity .5s ease;
}
#preloader img{width:180px;height:auto;animation:pulse 1.4s ease-in-out infinite;}
@keyframes pulse{0%,100%{opacity:0.55;transform:scale(0.96);}50%{opacity:1;transform:scale(1);}}
#preloader.hide{opacity:0;pointer-events:none;}

/* ---- bandeau cookies ---- */
#cookie-banner{
  position:fixed;left:0;right:0;bottom:0;z-index:9998;
  background:rgba(10,9,16,0.97);border-top:1px solid var(--border);
  padding:20px 24px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:18px;
  transform:translateY(120%);transition:transform .4s cubic-bezier(.16,.8,.24,1);
}
#cookie-banner.show{transform:translateY(0);}
#cookie-banner p{font-size:13px;max-width:640px;color:var(--mute);margin:0;}
#cookie-banner .cookie-actions{display:flex;gap:12px;flex-shrink:0;}
#cookie-banner button{
  font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:12px;letter-spacing:0.05em;text-transform:uppercase;
  padding:11px 22px;cursor:pointer;border:1px solid rgba(255,255,255,0.18);clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px);
}
#cookie-banner .cookie-accept{background:linear-gradient(135deg,var(--purple),var(--purple-deep));color:var(--white);}
#cookie-banner .cookie-refuse{background:transparent;color:var(--white);}

/* ---- tiroir de navigation mobile ---- */
.nav-toggle-checkbox{display:none;}
.nav-burger{display:none;flex-direction:column;gap:5px;cursor:pointer;z-index:31;padding:6px;}
.nav-burger span{width:24px;height:2px;background:var(--white);display:block;}
.nav-backdrop{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.6);z-index:28;opacity:0;pointer-events:none;transition:opacity .3s ease;}
.nav-drawer{
  position:fixed;top:0;right:0;bottom:0;width:min(78vw,320px);background:var(--bg-alt);z-index:29;
  transform:translateX(100%);transition:transform .35s cubic-bezier(.16,.8,.24,1);
  padding:76px 30px 30px;display:flex;flex-direction:column;gap:30px;border-left:1px solid var(--border);
}
.nav-toggle-checkbox:checked ~ .nav-backdrop{opacity:1;pointer-events:auto;}
.nav-toggle-checkbox:checked ~ .nav-drawer{transform:translateX(0);}
.nav-drawer-close{position:absolute;top:22px;right:26px;font-size:26px;line-height:1;color:var(--white);cursor:pointer;}
.nav-drawer-close svg{width:22px;height:22px;display:block;stroke:var(--white);fill:none;stroke-width:2;}
.nav-drawer-links{display:flex;flex-direction:column;gap:24px;}
.nav-drawer-links a{color:var(--white);font-size:15px;font-weight:700;letter-spacing:0.05em;text-transform:uppercase;}
.nav-drawer-links a.active{color:var(--purple-2);}
.nav-drawer .nav-cta{align-self:flex-start;}

/* ---- accordéon FAQ ---- */
.faq-question{
  width:100%;display:flex;align-items:center;justify-content:space-between;gap:20px;
  background:none;border:none;color:var(--white);font-family:'Space Grotesk',sans-serif;
  font-size:16px;font-weight:700;text-align:left;cursor:pointer;padding:0;
}
.faq-chevron{width:20px;height:20px;flex-shrink:0;transition:transform .3s ease;}
.faq-chevron svg{width:100%;height:100%;stroke:var(--purple-2);fill:none;stroke-width:2;}
.faq-item.open .faq-chevron{transform:rotate(180deg);}
.faq-answer{max-height:0;overflow:hidden;transition:max-height .35s ease, margin-top .35s ease;}
.faq-item.open .faq-answer{max-height:400px;margin-top:16px;}
.faq-answer p{font-size:14px;}

/* ==========================================================
   Responsive
   ========================================================== */
@media (max-width:980px){
  .nav-links,.nav > .nav-cta{display:none;}
  .nav-burger{display:flex;}
  .nav,.nav.solid{padding:18px 24px;}
  .hero{padding:150px 24px 80px;}
  .hero-inner h1{font-size:36px;}
  .banner{padding:130px 24px 56px;}
  .banner h1{font-size:30px;}
  .section{padding:64px 24px;}
  .section.tight{padding-top:48px;padding-bottom:48px;}
  .grid-4{grid-template-columns:repeat(2,minmax(0,1fr));}
  .grid-3{grid-template-columns:repeat(2,minmax(0,1fr));}
  .grid-2{grid-template-columns:1fr;}
  .split{flex-direction:column;gap:36px;}
  .split.row-rev{flex-direction:column;}
  .footer-top{flex-direction:column;gap:40px;}
  .footer-cols{gap:40px;}
  .footer-brand img{width:400px;height:176px;}
  .brand-strip{gap:14px;grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:640px){
  .nav-logo img{width:150px;height:66px;}
  .hero{padding:130px 20px 70px;justify-content:center;}
  .hero-inner{text-align:center;}
  .hero-inner .eyebrow{justify-content:center;}
  .hero-inner h1{font-size:28px;}
  .hero-inner p.lead{margin-left:auto;margin-right:auto;}
  .hero-actions{flex-direction:column;width:100%;gap:14px;}
  .hero-actions .btn{width:100%;justify-content:center;}
  .hero-tagline{flex-direction:column;gap:12px;align-items:center;}
  .hero-tagline span{border-right:none;padding-right:0;margin-right:0;}
  .banner{padding:110px 18px 50px;}
  .banner h1{font-size:25px;}
  .grid-4,.grid-3{grid-template-columns:1fr;}
  .brand-strip{grid-template-columns:1fr;}
  .section-head{margin-bottom:34px;}
  .footer-brand img{width:280px;height:123px;}
  .footer-bottom{flex-direction:column;gap:8px;text-align:center;}
  #cookie-banner{flex-direction:column;align-items:stretch;text-align:center;}
  #cookie-banner .cookie-actions{justify-content:center;}
}
