:root{
  /* ── Backgrounds ── */
  --void:#0b0e12;
  --base:#10151b;
  --panel:#151b23;
  --raised:#1a222c;
  --hover:#202a36;
  --s2:rgba(255,255,255,.035);

  /* ── Borders ── */
  --b0:rgba(255,255,255,.06);
  --b1:rgba(255,255,255,.12);
  --b2:rgba(255,255,255,.22);
  --br:#2b3542;

  /* ── Accent amber ── */
  --amber:#c8912a;
  --amber-b:#e8a83a;
  --amber-d:rgba(200,145,42,.12);
  --amber-g:rgba(200,145,42,.06);
  --acc:var(--amber);

  /* ── Couleurs secondaires ── */
  --blue:#4b84b7;
  --blue-b:#6aa3d7;
  --blue-d:rgba(75,132,183,.14);
  --green:#2f9160;
  --green-b:#43b178;
  --green-d:rgba(47,145,96,.14);
  --red:#b04646;
  --red-d:rgba(176,70,70,.14);

  /* ── Texte ── */
  --t1:#f5f7fa;
  --t2:#c7d0da;
  --t3:#a7b2be;

  /* ── Typographie ── */
  --ffd:'Syne',sans-serif;
  --ffb:'DM Sans',sans-serif;
  --ffm:'DM Mono',monospace;

  /* ── Rayons ── */
  --r:6px;
  --rsm:4px;
}

*,*::before,*::after{
  box-sizing:border-box;
  margin:0;
  padding:0;
}

html{
  scroll-behavior:smooth;
  scroll-padding-top:88px;
}

body{
  background:var(--void);
  color:var(--t1);
  font-family:var(--ffb);
  font-size:18px;
  line-height:1.82;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  padding-top:72px;
}

body::before{
  content:'';
  position:fixed;
  inset:0;
  background-image:
    linear-gradient(var(--b0) 1px,transparent 1px),
    linear-gradient(90deg,var(--b0) 1px,transparent 1px);
  background-size:64px 64px;
  pointer-events:none;
  z-index:0;
}

img{
  max-width:100%;
  height:auto;
  display:block;
}

p,
li,
a,
h1,h2,h3,h4{
  overflow-wrap:break-word;
}

/* Layout */
.w{
  max-width:1320px;
  margin:0 auto;
  padding:0 42px;
  position:relative;
  z-index:1;
}

.g2{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:20px;
}

.g3{
  display:grid;
  grid-template-columns:repeat(3,minmax(260px,1fr));
  gap:28px;
}

.g4{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px;
}

section{
  padding:72px 0;
  position:relative;
  scroll-margin-top:88px;
}

.sep{
  height:1px;
  background:linear-gradient(90deg,transparent,var(--b1),transparent);
}

/* Typography */
.hero-title{
  max-width:1240px;
  margin-bottom:22px;
}

.hero-copy{
  max-width:860px;
}

.hero-copy-wide{
  max-width:940px;
}

h1,h2,h3,h4{
  font-family:var(--ffd);
  line-height:1.06;
  letter-spacing:-.025em;
}

h1{
  font-size:clamp(3rem,7vw,6.4rem);
  font-weight:800;
}

h2{
  font-size:clamp(2.2rem,4.6vw,3.4rem);
  font-weight:700;
}

h3{
  font-size:1.42rem;
  font-weight:700;
}

h4{
  font-size:1.12rem;
  font-weight:600;
}

p{
  color:var(--t2);
  font-size:1.08rem;
  line-height:1.9;
}

p.sub{
  color:var(--t2);
  font-size:1.14rem;
  line-height:1.92;
  max-width:820px;
}

.mono{
  font-family:var(--ffm);
  font-size:.76rem;
  color:var(--t3);
}

.lbl{
  font-family:var(--ffm);
  font-size:.64rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--amber);
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:12px;
}

.lbl::before{
  content:'';
  width:18px;
  height:1px;
  background:var(--amber);
  flex-shrink:0;
}

/* Helpers */
.section-center{
  text-align:center;
}

.section-center .lbl{
  justify-content:center;
}

.section-center p,
.section-center p.sub{
  margin-left:auto;
  margin-right:auto;
}

/* Cards */
.card{
  background:var(--raised);
  border:1px solid var(--b0);
  border-radius:var(--r);
  padding:32px;
  transition:.2s;
  position:relative;
  overflow:hidden;
}

.card:hover{
  border-color:var(--amber);
  transform:translateY(-2px);
}

.card::before{
  content:'';
  position:absolute;
  top:0;
  left:0;
  right:0;
  height:1px;
  background:linear-gradient(90deg,transparent,var(--b1),transparent);
}

.card h2{
  font-size:clamp(1rem,2.5vw,1.3rem);
}

.card h3{
  font-size:clamp(0.95rem,2vw,1.1rem);
}

.card-a{
  border-top:1px solid var(--amber)!important;
}

.card-a::before{
  background:var(--amber);
  opacity:.6;
}

.card:not(.case-card) p,
.tcrd p{
  max-width:46ch;
}

/* Tool cards */
.tcrd{
  background:var(--raised);
  border:1px solid var(--b0);
  border-radius:var(--r);
  overflow:hidden;
  transition:.25s;
  display:flex;
  flex-direction:column;
}

.tcrd:hover{
  border-color:var(--amber);
  transform:translateY(-3px);
}

.tcrd-h{
  padding:24px 26px 16px;
  border-bottom:1px solid var(--b0);
  display:flex;
  align-items:flex-start;
  gap:14px;
}

.tico{
  width:40px;
  height:40px;
  border-radius:var(--rsm);
  display:flex;
  align-items:center;
  justify-content:center;
  font-family:var(--ffm);
  font-size:.62rem;
  font-weight:500;
  flex-shrink:0;
}

.ta-ico{
  background:var(--amber-d);
  color:var(--amber);
  border:1px solid rgba(200,145,42,.25);
}

.tb-ico{
  background:var(--blue-d);
  color:var(--blue-b);
  border:1px solid rgba(58,120,176,.25);
}

.tg-ico{
  background:var(--green-d);
  color:var(--green-b);
  border:1px solid rgba(42,140,82,.25);
}

.tcrd-b{
  padding:18px 26px 26px;
  flex:1;
  display:flex;
  flex-direction:column;
}

/* Tags */
.tags{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:10px;
}

.tag{
  font-family:var(--ffm);
  font-size:.58rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  padding:3px 8px;
  border-radius:3px;
}

.ta{background:var(--amber-d);color:var(--amber)}
.tb{background:var(--blue-d);color:var(--blue-b)}
.tg{background:var(--green-d);color:var(--green-b)}
.tx{background:rgba(255,255,255,.04);color:var(--t3)}

/* Status pills */
.pill{
  display:inline-flex;
  align-items:center;
  gap:5px;
  font-family:var(--ffm);
  font-size:.58rem;
  letter-spacing:.07em;
  text-transform:uppercase;
  padding:4px 9px;
  border-radius:20px;
}

.pill-a{
  background:var(--amber-d);
  color:var(--amber);
  border:1px solid rgba(200,145,42,.3);
}

.pill-b{
  background:var(--blue-d);
  color:var(--blue-b);
  border:1px solid rgba(58,120,176,.3);
}

.pill-g{
  background:var(--green-d);
  color:var(--green-b);
  border:1px solid rgba(42,140,82,.3);
}

.pill-x{
  background:rgba(255,255,255,.04);
  color:var(--t3);
  border:1px solid var(--b0);
}

.pdot{
  width:4px;
  height:4px;
  border-radius:50%;
  background:currentColor;
}

/* Buttons */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  padding:14px 20px;
  border-radius:var(--rsm);
  font-family:var(--ffm);
  font-size:.76rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  text-decoration:none;
  border:none;
  cursor:pointer;
  transition:.2s;
  white-space:normal;
  text-align:center;
  line-height:1.25;
  max-width:100%;
}

.btn-p{
  background:var(--amber);
  color:#000;
  font-weight:600;
}

.btn-p:hover{
  background:var(--amber-b);
  transform:translateY(-1px);
}

.btn-s{
  background:transparent;
  color:var(--t1);
  border:1px solid var(--b2);
}

.btn-s:hover{
  border-color:var(--amber);
  color:var(--amber);
}

.btn-g{
  background:transparent;
  color:var(--t2);
  padding:10px 0;
  width:auto;
}

.btn-g:hover{
  color:var(--amber);
}

.btn-g::after{
  content:' →';
}

/* Nav */
nav{
  position:fixed;
  top:0;
  left:0;
  right:0;
  z-index:200;
  background:rgba(8,10,12,.9);
  backdrop-filter:blur(20px);
  border-bottom:1px solid var(--b0);
  overflow:visible;
}

.nav-i{
  display:flex;
  align-items:center;
  justify-content:space-between;
  height:72px;
  max-width:1320px;
  margin:0 auto;
  padding:0 28px;
}

.logo{
  display:flex;
  align-items:center;
  gap:12px;
  text-decoration:none;
  font-family:var(--ffd);
  font-size:1.2rem;
  font-weight:800;
  color:var(--t1);
}

.logo-m{
  width:30px;
  height:30px;
  background:var(--amber);
  border-radius:5px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-family:var(--ffm);
  font-size:.62rem;
  color:#000;
  font-weight:600;
}

.nav-links{
  display:flex;
  align-items:center;
  gap:2px;
  list-style:none;
}

.nav-links a{
  font-family:var(--ffm);
  font-size:.72rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--t2);
  text-decoration:none;
  padding:8px 12px;
  border-radius:var(--rsm);
  transition:.15s;
}

.nav-links a:hover,
.nav-links a.active{
  color:var(--t1);
  background:var(--hover);
}

.nav-links a.active{
  color:var(--amber);
}

.lang-sw{
  display:flex;
  gap:4px;
}

.lang-sw a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:44px;
  min-height:44px;
  font-family:var(--ffm);
  font-size:.72rem;
  color:var(--t3);
  text-decoration:none;
  padding:8px 10px;
  border:1px solid var(--b0);
  border-radius:3px;
  transition:.15s;
}

.lang-sw a:hover,
.lang-sw a.on{
  color:var(--amber);
  border-color:var(--amber);
}

.btn-nav{
  font-family:var(--ffm);
  font-size:.68rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  background:var(--amber);
  color:#000;
  padding:10px 16px;
  border-radius:var(--rsm);
  text-decoration:none;
  font-weight:600;
  transition:.15s;
}

.btn-nav:hover{
  background:var(--amber-b);
}

.menu-toggle{
  display:none;
}

/* Forms */
.fg{
  margin-bottom:16px;
}

label{
  display:block;
  font-family:var(--ffm);
  font-size:.72rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--t2);
  margin-bottom:8px;
}

input,select,textarea{
  width:100%;
  min-width:0;
  background:var(--panel);
  border:1px solid var(--b1);
  border-radius:var(--rsm);
  padding:14px 14px;
  color:var(--t1);
  font-family:var(--ffb);
  font-size:16px;
  line-height:1.45;
  outline:none;
  transition:.2s;
  appearance:none;
}

input:focus,select:focus,textarea:focus{
  border-color:var(--amber);
  background:var(--hover);
  box-shadow:0 0 0 2px rgba(200,145,42,.12);
}

input::placeholder,
textarea::placeholder{
  color:var(--t2);
  opacity:1;
}

textarea{
  resize:vertical;
  min-height:140px;
}

select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23a8a39a' fill='none' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 12px center;
  padding-right:34px;
  cursor:pointer;
}

.f2{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
}

input:disabled,
select:disabled,
textarea:disabled{
  opacity:.65;
  cursor:not-allowed;
}

input:invalid,
select:invalid,
textarea:invalid{
  box-shadow:none;
}

.form-ok{
  margin-top:12px;
  padding:12px 14px;
  border:1px solid rgba(42,140,82,.3);
  background:rgba(42,140,82,.12);
  color:#b9e7c8;
  border-radius:var(--rsm);
}

.form-err{
  margin-top:12px;
  padding:12px 14px;
  border:1px solid rgba(168,48,48,.3);
  background:rgba(168,48,48,.12);
  color:#f0b7b7;
  border-radius:var(--rsm);
}

/* Footer */
footer{
  background:var(--raised);
  border-top:1px solid var(--b0);
  padding:48px 0 24px;
}

.fg-grid{
  display:grid;
  grid-template-columns:2fr 1fr 1fr 1fr;
  gap:36px;
  margin-bottom:32px;
}

footer h4,
.footer-title,
.fg-col h4{
  font-family:var(--ffm);
  font-size:.78rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--t2);
  margin-bottom:14px;
}

.fl{
  list-style:none;
  display:flex;
  flex-direction:column;
  gap:8px;
}

.fl a{
  display:inline-flex;
  align-items:center;
  min-height:44px;
  min-width:44px;
  font-size:.92rem;
  color:var(--t2);
  text-decoration:none;
  transition:.15s;
}

.fl a:hover{
  color:var(--amber);
}

.fb{
  padding-top:18px;
  border-top:1px solid var(--b0);
  display:flex;
  justify-content:space-between;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
}

.fb p{
  font-family:var(--ffm);
  font-size:.75rem;
  color:var(--t3);
}

.fb a,
footer a[href^="mailto:"]{
  display:inline-flex;
  align-items:center;
  min-height:44px;
  min-width:44px;
  font-size:.75rem!important;
  color:var(--t2)!important;
}

/* FAQ */
details summary::-webkit-details-marker{
  display:none;
}

details[open]{
  background:var(--hover)!important;
}

details summary span{
  display:inline-block;
  transition:transform .2s;
}

details[open] summary span{
  transform:rotate(45deg);
}

/* Animations */
@keyframes fade-up{
  from{opacity:0;transform:translateY(16px)}
  to{opacity:1;transform:translateY(0)}
}

.a1{animation:fade-up .6s ease-out .1s both}
.a2{animation:fade-up .6s ease-out .25s both}
.a3{animation:fade-up .6s ease-out .4s both}
.a4{animation:fade-up .6s ease-out .55s both}
.a5{animation:fade-up .6s ease-out .7s both}

/* Scroll dots */
.sdots{
  position:fixed;
  right:14px;
  top:50%;
  transform:translateY(-50%);
  display:flex;
  flex-direction:column;
  gap:7px;
  z-index:1000;
}

.sd{
  position:relative;
  width:44px;
  height:44px;
  border-radius:50%;
  background:transparent;
  cursor:pointer;
  transition:.2s;
  border:none;
  padding:0;
}

.sd::before{
  content:'';
  position:absolute;
  top:50%;
  left:50%;
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--b2);
  transform:translate(-50%,-50%);
  transition:transform .2s, background .2s, box-shadow .2s;
}

.sd:hover::before,
.sd.on::before,
.sd[aria-current="true"]::before{
  background:var(--amber);
  transform:translate(-50%,-50%) scale(1.4);
  box-shadow:0 0 0 5px rgba(200,145,42,.14);
}

.sd:focus-visible{
  outline:2px solid var(--amber);
  outline-offset:2px;
}

/* Breadcrumb */
.bc{
  display:flex;
  align-items:center;
  gap:6px;
  flex-wrap:wrap;
  margin-bottom:24px;
}

.bc a,.bc span{
  font-family:var(--ffm);
  font-size:.64rem;
  color:var(--t3);
  text-decoration:none;
}

.bc a:hover{
  color:var(--amber);
}

/* Ticker */
.ticker-w{
  background:var(--raised);
  border-top:1px solid var(--b0);
  border-bottom:1px solid var(--b0);
  padding:12px 0;
  overflow:hidden;
}

.ticker{
  display:flex;
  gap:40px;
  animation:tick 28s linear infinite;
  width:max-content;
}

@keyframes tick{
  to{transform:translateX(-50%)}
}

.ti{
  display:flex;
  align-items:center;
  gap:8px;
  flex-shrink:0;
  font-family:var(--ffm);
  font-size:.68rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--t3);
}

.td{
  width:3px;
  height:3px;
  border-radius:50%;
  background:var(--amber);
}

/* Home trust ribbon */
.trust-section{
  padding:64px 0;
  overflow:hidden;
  background:linear-gradient(180deg,rgba(255,255,255,.018),rgba(255,255,255,.006));
}

.trust-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:24px;
  margin-bottom:24px;
}

.trust-head-text{
  max-width:760px;
}

.trust-head .sub{
  margin:0;
}

.trust-toggle{
  min-width:44px;
  min-height:44px;
  padding:10px 14px;
  border:1px solid var(--br);
  border-radius:999px;
  background:var(--panel);
  color:var(--t1);
  font-family:var(--ffm);
  font-size:.72rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  cursor:pointer;
  transition:border-color .2s, color .2s, background .2s;
}

.trust-toggle:hover,
.trust-toggle:focus-visible{
  border-color:var(--amber);
  color:var(--amber);
  outline:none;
}

.trust-marquee{
  position:relative;
  overflow:hidden;
  width:100%;
  padding:6px 0 10px;
}

.trust-marquee::before,
.trust-marquee::after{
  content:'';
  position:absolute;
  top:0;
  bottom:0;
  width:min(100px,18vw);
  z-index:3;
  pointer-events:none;
}

.trust-marquee::before{
  left:0;
  background:linear-gradient(90deg,var(--void),transparent);
}

.trust-marquee::after{
  right:0;
  background:linear-gradient(270deg,var(--void),transparent);
}

.trust-track{
  display:flex;
  flex-direction:row;
  flex-wrap:nowrap;
  width:max-content;
  gap:0;
  animation:trust-scroll 44s linear infinite;
  will-change:transform;
}

.trust-marquee:hover .trust-track,
.trust-marquee:focus-within .trust-track,
.trust-section.is-hover-paused .trust-track,
.trust-section.is-paused .trust-track{
  animation-play-state:paused;
}

.trust-group{
  display:flex;
  flex-direction:row;
  flex-wrap:nowrap;
  gap:16px;
  padding-right:16px;
  flex-shrink:0;
}

.trust-logo-card{
  position:relative;
  width:220px;
  height:118px;
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px 20px;
  border:1px solid var(--br);
  border-radius:10px;
  overflow:hidden;
  text-decoration:none;
  transition:transform .22s ease, border-color .22s ease, box-shadow .22s ease;
}

.trust-logo-card--light{
  background:#f4f1ea;
}

.trust-logo-card--dark{
  background:linear-gradient(180deg,var(--surface-2, #1a222c),var(--panel));
}

.trust-logo-card img{
  max-width:188px;
  max-height:84px;
  object-fit:contain;
  transition:transform .22s ease;
}

.trust-logo--wide img{
  max-width:194px;
  max-height:84px;
}

.trust-logo--compact img{
  max-width:178px;
  max-height:76px;
}

.trust-logo--academia-studio img{
  max-width:202px;
  max-height:94px;
}

.trust-logo--qaptur img{
  max-width:142px;
  max-height:72px;
}

.trust-logo-card:hover,
.trust-logo-card:focus-visible{
  z-index:4;
  border-color:rgba(200,145,42,.55);
  box-shadow:0 18px 42px rgba(0,0,0,.28);
  transform:scale(1.06);
  outline:none;
}

.trust-logo-card:hover img,
.trust-logo-card:focus-visible img{
  transform:scale(1.06);
}

.trust-logo-name{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  padding:20px 10px 9px;
  background:linear-gradient(transparent,rgba(0,0,0,.82));
  color:#fff;
  font-family:var(--ffm);
  font-size:.72rem;
  line-height:1.25;
  text-align:center;
  opacity:0;
  transform:translate3d(0,8px,0);
  transition:opacity .22s ease, transform .22s ease;
}

.trust-logo-card:hover .trust-logo-name,
.trust-logo-card:focus-visible .trust-logo-name{
  opacity:1;
  transform:translate3d(0,0,0);
}

.trust-logo-caption:empty{
  display:none;
}

@keyframes trust-scroll{
  to{transform:translate3d(-50%,0,0)}
}

/* Home visual tools */
.home-tools-visual{
  padding:72px 0;
}

.visual-tools-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
}

.visual-tool-card{
  display:flex;
  min-width:0;
  flex-direction:column;
  overflow:hidden;
  border:1px solid var(--br);
  border-radius:14px;
  background:var(--raised);
  color:var(--t1);
  text-decoration:none;
  transition:transform .22s ease, border-color .22s ease, box-shadow .22s ease;
}

.visual-tool-card:hover,
.visual-tool-card:focus-visible{
  transform:translateY(-3px);
  border-color:rgba(200,145,42,.55);
  box-shadow:0 18px 42px rgba(0,0,0,.22);
  outline:none;
}

.visual-tool-media{
  aspect-ratio:16 / 9;
  background:#05070a;
  overflow:hidden;
}

.visual-tool-media picture,
.visual-tool-media img{
  display:block;
  width:100%;
  height:100%;
}

.visual-tool-media img{
  object-fit:cover;
  transition:transform .28s ease;
}

.visual-tool-card:hover .visual-tool-media img,
.visual-tool-card:focus-visible .visual-tool-media img{
  transform:scale(1.035);
}

.visual-tool-body{
  padding:20px;
}

.visual-tool-body h3{
  margin-bottom:8px;
}

.visual-tool-body p{
  margin:0 0 14px;
  font-size:.92rem;
  line-height:1.7;
}

.visual-tool-link{
  font-family:var(--ffm);
  font-size:.76rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--amber);
}

/* Home testimonial ribbon */
.review-ribbon{
  margin-top:26px;
}

.review-ribbon-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin-bottom:16px;
}

.review-ribbon-label{
  margin:0;
  font-family:var(--ffm);
  font-size:.74rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--t2);
}

.review-ribbon-toggle{
  min-width:44px;
  min-height:44px;
  padding:10px 14px;
  border:1px solid var(--br);
  border-radius:999px;
  background:var(--panel);
  color:var(--t1);
  font-family:var(--ffm);
  font-size:.72rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  cursor:pointer;
  transition:border-color .2s, color .2s, background .2s;
}

.review-ribbon-toggle:hover,
.review-ribbon-toggle:focus-visible{
  border-color:var(--amber);
  color:var(--amber);
  outline:none;
}

.review-ribbon-viewport{
  position:relative;
  width:100%;
  overflow-x:auto;
  overflow-y:visible;
  padding:8px 0 18px;
  touch-action:pan-y;
  scrollbar-width:none;
  -webkit-overflow-scrolling:touch;
}

.review-ribbon-viewport::-webkit-scrollbar{
  display:none;
}

.review-ribbon-viewport::before,
.review-ribbon-viewport::after{
  content:'';
  position:absolute;
  top:0;
  bottom:0;
  width:min(72px,16vw);
  z-index:3;
  pointer-events:none;
}

.review-ribbon-viewport::before{
  left:0;
  background:linear-gradient(90deg,var(--void),transparent);
}

.review-ribbon-viewport::after{
  right:0;
  background:linear-gradient(270deg,var(--void),transparent);
}

.review-ribbon-track{
  display:flex;
  flex-direction:row;
  flex-wrap:nowrap;
  width:max-content;
  gap:0;
  animation:review-scroll 68s linear infinite;
  will-change:transform;
}

.review-ribbon-viewport:hover .review-ribbon-track,
.review-ribbon-viewport:focus-within .review-ribbon-track,
.review-ribbon.is-paused .review-ribbon-track,
.review-ribbon.is-interacting .review-ribbon-track{
  animation-play-state:paused;
}

.review-ribbon-group{
  display:flex;
  flex-direction:row;
  flex-wrap:nowrap;
  align-items:stretch;
  gap:18px;
  padding-right:18px;
  flex-shrink:0;
}

.review-card{
  width:360px;
  flex:0 0 auto;
  display:flex;
  flex-direction:column;
  gap:14px;
  padding:22px;
  border:1px solid var(--br);
  border-radius:12px;
  background:linear-gradient(180deg,var(--raised),var(--panel));
  color:var(--t1);
  transition:transform .22s ease, border-color .22s ease, box-shadow .22s ease;
}

.review-card:hover,
.review-card:focus-visible{
  z-index:4;
  transform:translateY(-3px);
  border-color:rgba(200,145,42,.55);
  box-shadow:0 18px 42px rgba(0,0,0,.24);
  outline:none;
}

.review-card-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
}

.review-name{
  margin:0 0 4px;
  font-size:.98rem;
  line-height:1.25;
  color:var(--t1);
}

.review-role{
  margin:0;
  font-family:var(--ffm);
  font-size:.68rem;
  line-height:1.45;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:var(--t2);
}

.review-stars{
  flex:0 0 auto;
  color:var(--amber);
  font-size:.88rem;
  line-height:1.2;
  letter-spacing:.03em;
}

.review-meta{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:-4px;
}

.review-service,
.review-date{
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:4px 9px;
  border:1px solid var(--b1);
  border-radius:999px;
  font-family:var(--ffm);
  font-size:.66rem;
  letter-spacing:.05em;
  text-transform:uppercase;
  color:var(--t2);
}

.review-service{
  color:var(--amber);
  border-color:rgba(200,145,42,.35);
  background:rgba(200,145,42,.08);
}

.review-quote{
  margin:0;
  font-size:.92rem;
  line-height:1.75;
  color:var(--t2);
}

@keyframes review-scroll{
  to{transform:translate3d(-50%,0,0)}
}

.mathieu-slot{
  display:none;
}

/* Scope SVG spin */
@keyframes spin-slow{
  to{transform:rotate(360deg)}
}

.scope-ring{
  animation:spin-slow 60s linear infinite;
  transform-origin:200px 200px;
}

/* Iron door */
.blind-demo{
  background:var(--panel);
  border:1px solid var(--b0);
  border-radius:var(--r);
  overflow:hidden;
  position:relative;
  height:160px;
  display:flex;
  align-items:center;
  justify-content:center;
}

.door{
  position:absolute;
  top:0;
  width:50%;
  height:100%;
  background:var(--raised);
  border:1px solid var(--b1);
  display:flex;
  align-items:center;
  justify-content:center;
  font-family:var(--ffm);
  font-size:.62rem;
  color:var(--t3);
  transition:.8s cubic-bezier(.4,0,.2,1);
}

.door.left{
  left:0;
  transform-origin:left;
}

.door.right{
  right:0;
  transform-origin:right;
}

.blind-demo:hover .door.left{
  transform:scaleX(0);
}

.blind-demo:hover .door.right{
  transform:scaleX(0);
}

/* Case study */
.case-wrap{
  display:grid;
  grid-template-columns:minmax(0,1.45fr) minmax(240px,.9fr);
  gap:18px;
  align-items:stretch;
  margin-top:24px;
}

.case-card{
  padding:22px 24px;
  background:var(--raised);
  border:1px solid var(--br);
  border-radius:12px;
  margin:0;
  max-width:none;
}

.case-card h3{
  font-family:var(--ffd);
  font-size:1rem;
  color:var(--t1);
  margin-bottom:10px;
}

.case-card p{
  font-size:.86rem;
  color:var(--t2);
  line-height:1.75;
  margin:0 0 10px;
}

.case-card p:last-child{
  margin-bottom:0;
}

.student-photo-card{
  border:1px solid var(--br);
  border-radius:12px;
  overflow:hidden;
  background:var(--raised);
  display:flex;
  flex-direction:column;
}

.student-photo{
  width:100%;
  flex:1;
  min-height:0;
  object-fit:cover;
  object-position:center top;
}

.link-tag{
  text-decoration:none;
  transition:.2s;
  border:1px solid var(--b0);
}

.link-tag:hover{
  border-color:var(--amber);
  color:var(--amber);
  background:var(--amber-d);
}

/* Utilities */
.gold-gradient{
  background:linear-gradient(
    90deg,
    #f2efe9 0%,
    #f2efe9 8%,
    #d6b980 50%,
    #b8872a 78%,
    #c8912a 100%
  );
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}

.cert-module-icon{
  width:40px;
  height:40px;
  border-radius:8px;
  background:rgba(200,145,42,.1);
  border:1px solid rgba(200,145,42,.25);
  display:flex;
  align-items:center;
  justify-content:center;
  font-family:var(--ffm);
  font-size:.7rem;
  font-weight:700;
  color:var(--amber);
  flex-shrink:0;
}

.section-label{
  font-family:var(--ffm);
  font-size:.64rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--amber);
  margin-bottom:12px;
  display:block;
}

.credib-bar{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:0;
}

.credib-stat{
  flex:1;
  min-width:120px;
  padding:16px 20px;
  text-align:center;
}

.credib-stat .val{
  font-family:var(--ffd);
  font-size:clamp(1.6rem,4vw,2.4rem);
  font-weight:800;
  color:var(--t1);
  line-height:1;
  margin-bottom:6px;
}

.credib-stat .lbl-s{
  font-family:var(--ffm);
  font-size:.6rem;
  color:var(--t3);
  line-height:1.5;
  text-transform:uppercase;
  letter-spacing:.06em;
}

.credib-sep{
  width:1px;
  height:40px;
  background:var(--br);
  flex-shrink:0;
}

.check-list{
  display:flex;
  flex-direction:column;
  gap:10px;
  margin:0;
  padding:0;
  list-style:none;
}

.check-item{
  display:flex;
  align-items:flex-start;
  gap:10px;
}

.check-icon{
  width:20px;
  height:20px;
  border-radius:50%;
  background:rgba(200,145,42,.12);
  border:1px solid rgba(200,145,42,.25);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:.65rem;
  color:var(--amber);
  flex-shrink:0;
  margin-top:2px;
}

.check-item p{
  font-size:.88rem;
  color:var(--t2);
  line-height:1.65;
  margin:0;
}

.nav-right{
  display:flex;
  align-items:center;
  gap:8px;
}

.menu-toggle{
  display:none;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:4px;
  width:42px;
  height:42px;
  border:1px solid var(--b1);
  border-radius:var(--rsm);
  background:transparent;
  color:var(--t1);
  cursor:pointer;
  padding:0;
}

.menu-toggle span{
  display:block;
  width:18px;
  height:2px;
  background:var(--t1);
  border-radius:2px;
}

.mobile-menu{
  position:fixed;
  top:0;
  left:0;
  right:0;
  bottom:0;
  width:100vw;
  height:100dvh;
  min-height:100dvh;
  background:rgba(8,10,12,.985);
  z-index:999;
  overflow:auto;

  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(-8px);
  transition:opacity .2s ease, transform .2s ease, visibility .2s ease;
}

.mobile-menu.is-open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translateY(0);
}

.mobile-menu-inner{
  min-height:100%;
  padding:76px 20px 32px;
  display:flex;
  flex-direction:column;
  gap:24px;
}

.mobile-menu-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}

.mobile-lang{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}

.mobile-lang a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:44px;
  min-height:44px;
  font-family:var(--ffm);
  font-size:.72rem;
  color:var(--t3);
  text-decoration:none;
  padding:8px 10px;
  border:1px solid var(--b0);
  border-radius:4px;
  transition:.15s;
}

.mobile-lang a:hover,
.mobile-lang a.on{
  color:var(--amber);
  border-color:var(--amber);
}

.mobile-close{
  width:42px;
  height:42px;
  border:1px solid var(--b1);
  border-radius:var(--rsm);
  background:transparent;
  color:var(--t1);
  cursor:pointer;
  font-size:1rem;
  line-height:1;
}

.mobile-nav-links{
  list-style:none;
  display:flex;
  flex-direction:column;
  gap:10px;
}

.mobile-nav-links a{
  display:block;
  padding:14px 16px;
  border:1px solid var(--b0);
  border-radius:var(--r);
  background:rgba(255,255,255,.02);
  text-decoration:none;
  color:var(--t1);
  font-family:var(--ffm);
  font-size:.82rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  transition:.15s;
}

.mobile-nav-links a:hover,
.mobile-nav-links a.active{
  border-color:var(--amber);
  color:var(--amber);
  background:var(--amber-d);
}

.mobile-menu-cta{
  margin-top:auto;
}

.mobile-menu-cta .btn{
  width:100%;
}

body.menu-open{
  overflow:hidden;
}

/* Responsive */
@media(max-width:1100px){
  .w{padding:0 28px;}
  .g3{grid-template-columns:repeat(2,minmax(0,1fr));}
  section{padding:68px 0;}
  .hero-title{max-width:100%;}
  .hero-copy,
  .hero-copy-wide,
  p.sub{max-width:none;}

  .visual-tools-grid{
    grid-template-columns:1fr;
  }
}

@media(max-width:900px){
  .case-wrap{
    grid-template-columns:1fr;
  }

  .student-photo-card{
    max-width:420px;
  }

  .student-photo{
    height:300px;
  }
}

@media(max-width:860px){
  body{
    padding-top:64px;
  }

  .w{
    padding:0 24px;
  }

  .fg-grid{
    grid-template-columns:1fr 1fr;
  }

  .g2,.g3,.g4{
    grid-template-columns:1fr;
  }

  section{
    padding:60px 0;
  }

  .nav-i{
    height:64px;
    padding:0 18px;
  }

  .logo{
    font-size:1.05rem;
  }

  .btn-nav{
    padding:8px 12px;
  }

  .review-card{
    width:330px;
  }
}

@media(max-width:640px){
  .w{
    padding:0 20px;
  }

  .f2{
    grid-template-columns:1fr;
  }

  .fg-grid{
    grid-template-columns:1fr;
  }

  .sdots{
    display:none;
  }

  .trust-head{
    align-items:flex-start;
    flex-direction:column;
  }

  .trust-logo-card{
    width:180px;
    height:100px;
    padding:14px 16px;
  }

  .trust-logo-card img{
    max-width:154px;
    max-height:70px;
  }

  .trust-logo--wide img{
    max-width:158px;
    max-height:70px;
  }

  .trust-logo--compact img{
    max-width:146px;
    max-height:64px;
  }

  .trust-logo--academia-studio img{
    max-width:164px;
    max-height:76px;
  }

  .trust-logo--qaptur img{
    max-width:118px;
    max-height:60px;
  }

  .trust-logo-name{
    opacity:1;
    transform:none;
    font-size:.68rem;
    padding:18px 8px 8px;
  }

  .review-ribbon-head{
    align-items:flex-start;
    flex-direction:column;
  }

  .review-card{
    width:min(320px,calc(100vw - 48px));
    padding:20px;
  }

  .review-card-head{
    flex-direction:column;
    gap:10px;
  }

  .review-quote{
    font-size:.96rem;
  }

  body{
    font-size:18px;
  }

  h1{
    font-size:clamp(2.5rem,11vw,4.4rem);
    line-height:1.02;
  }

  h2{
    font-size:clamp(2rem,8vw,2.8rem);
    line-height:1.08;
  }

  h3{
    font-size:1.26rem;
  }

  p{
    font-size:1.04rem;
    line-height:1.88;
  }

  p.sub{
    font-size:1.06rem;
    line-height:1.9;
    max-width:none;
  }

  .btn{
    width:100%;
    justify-content:center;
    padding:13px 16px;
    font-size:.72rem;
  }

  .btn-g{
    width:auto;
    justify-content:flex-start;
  }

  .case-card{
    padding:16px;
  }

  .case-card p{
    font-size:.82rem;
  }

  .student-photo{
    height:240px;
  }

  section{
    padding:54px 0;
  }
}

@media (prefers-reduced-motion: reduce){
  html{
    scroll-behavior:auto;
  }

  .trust-track{
    width:100%;
    animation:none;
    flex-wrap:wrap;
    justify-content:center;
  }

  .review-ribbon-track{
    width:max-content;
    animation:none;
    transform:none!important;
  }

  .trust-group{
    flex-wrap:wrap;
    justify-content:center;
  }

  .trust-group[aria-hidden="true"]{
    display:none;
  }

  .review-ribbon-group[aria-hidden="true"]{
    display:none;
  }

  .review-ribbon-viewport{
    scroll-snap-type:x proximity;
  }

  .review-card{
    scroll-snap-align:start;
  }

  .trust-logo-card,
  .trust-logo-card img,
  .review-card,
  .visual-tool-card,
  .visual-tool-media img{
    transition:none;
    transform:none!important;
  }

  .trust-logo-name{
    opacity:1;
    transform:none;
  }
}

@media (min-width:981px){
  .mobile-menu{
    display:none !important;
  }
}

@media (max-width:980px){
  .nav-links,
  .lang-sw,
  .btn-nav{
    display:none;
  }

  .menu-toggle{
    display:flex;
  }
}

/* ── HONEYPOT ANTI-SPAM ───────────────────────────── */
.hp-wrap{
  position:absolute !important;
  left:-9999px !important;
  width:1px !important;
  height:1px !important;
  overflow:hidden !important;
}
