:root{
  --bg:#071018;
  --bg-2:#0b141d;
  --panel:#0d1822;
  --panel-2:#111e2b;
  --line:rgba(255,255,255,.08);
  --line-soft:rgba(255,255,255,.05);
  --text:#edf4fb;
  --muted:#91a2b5;
  --blue:#11a5ff;
  --blue-deep:#0b6fb2;
  --blue-soft:rgba(17,165,255,.14);
  --white-soft:rgba(255,255,255,.05);
  --shadow:0 24px 80px rgba(0,0,0,.45);
  --radius:24px;
}

*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
*:not(input):not(textarea){user-select:none;-webkit-user-select:none}
html{scroll-behavior:smooth}

body{
  margin:0;
  min-height:100vh;
  font-family:'Inter',system-ui,sans-serif;
  color:var(--text);
  background:
    radial-gradient(circle at top left, rgba(17,165,255,.09), transparent 25%),
    radial-gradient(circle at 85% 10%, rgba(13,53,84,.24), transparent 20%),
    linear-gradient(180deg, #050b12 0%, #08121a 100%);
}

body::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(rgba(255,255,255,.015) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.015) 1px, transparent 1px);
  background-size:32px 32px;
  mask-image:radial-gradient(circle at center, black, transparent 90%);
  opacity:.22;
}

a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
input,textarea,button{font:inherit}

.container{width:min(1180px, calc(100% - 32px));margin:0 auto}
.page-shell{padding-bottom:50px}

.glass-card{
  background:linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.025));
  border:1px solid var(--line);
  box-shadow:var(--shadow);
  border-radius:32px;
  backdrop-filter:blur(14px);
}

.site-header{
  position:sticky;
  top:0;
  z-index:40;
  background:rgba(5,11,18,.72);
  backdrop-filter:blur(16px);
  border-bottom:1px solid var(--line-soft);
}

.nav-wrap{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:16px 0;
}

.brand{display:flex;align-items:center;gap:14px;min-width:0}

.brand img{
  width:46px;
  height:46px;
  object-fit:contain;
  filter:drop-shadow(0 14px 34px rgba(17,165,255,.18));
}

.brand strong{display:block;font-size:1.02rem;letter-spacing:.01em}
.brand span{display:block;color:var(--muted);font-size:.9rem}

.nav{
  display:flex;
  align-items:center;
  gap:8px;
  padding:8px;
  border-radius:999px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.03);
}

.nav a{
  padding:10px 14px;
  border-radius:999px;
  color:#c9d5e2;
  transition:.22s ease;
  font-size:.95rem;
}

.nav a:hover,
.nav a.active{
  color:#fff;
  background:rgba(17,165,255,.12);
  box-shadow:inset 0 0 0 1px rgba(17,165,255,.22);
}

.nav-actions{display:flex;gap:10px}

.primary-btn,.ghost-btn,.text-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:12px 18px;
  border-radius:16px;
  border:1px solid transparent;
  transition:.22s ease;
  font-weight:600;
}

.primary-btn{
  color:#fff;
  background:linear-gradient(135deg, #0a8adb 0%, #11a5ff 55%, #6fd0ff 100%);
  box-shadow:0 16px 42px rgba(17,165,255,.22);
}

.primary-btn:hover{transform:translateY(-1px);filter:brightness(1.04)}

.ghost-btn{
  background:rgba(255,255,255,.03);
  border-color:var(--line);
  color:#dce6f0;
}

.ghost-btn:hover{background:rgba(255,255,255,.06)}
.text-link{padding:0;color:#a9dfff}
.big{padding:15px 22px;border-radius:18px}
.small-btn{padding:10px 14px;border-radius:14px;font-size:.92rem}

.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 12px;
  border-radius:999px;
  background:rgba(17,165,255,.10);
  border:1px solid rgba(17,165,255,.18);
  color:#b6e6ff;
  font-size:.78rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.12em;
}

.hero{position:relative;padding:84px 0 40px;overflow:hidden}

.hero-grid{
  display:grid;
  grid-template-columns:1.1fr .92fr;
  gap:28px;
  align-items:center;
  position:relative;
}

.hero h1{
  margin:18px 0;
  font-size:clamp(2.8rem,6vw,5.2rem);
  line-height:1.02;
  letter-spacing:-.06em;
  max-width:820px;
}

.hero-text{
  max-width:700px;
  color:#afc0d1;
  line-height:1.75;
  font-size:1.05rem;
}

.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:28px}

.hero-mini-stats{
  display:flex;
  gap:22px;
  flex-wrap:wrap;
  margin-top:26px;
  justify-content:center;
}

.hero-mini-stats div{
  display:grid;
  gap:4px;
  justify-items:center;
  text-align:center;
}

.hero-mini-stats strong{font-size:1.28rem}
.hero-mini-stats span{color:var(--muted);font-size:.94rem}

.hero-orb{
  position:absolute;
  border-radius:999px;
  filter:blur(90px);
  opacity:.42;
  pointer-events:none;
}

.orb-left{width:280px;height:280px;background:rgba(17,165,255,.22);left:-80px;top:90px}
.orb-right{width:320px;height:320px;background:rgba(10,91,146,.22);right:-90px;top:40px}

.hero-stack{display:grid;gap:18px}
.hero-panel{padding:22px}

.panel-header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:18px;
  font-weight:600;
  color:#d8e7f5;
}

.status-pill{
  padding:7px 10px;
  border-radius:999px;
  background:rgba(34,197,94,.12);
  color:#bdf6d0;
  border:1px solid rgba(34,197,94,.18);
  font-size:.84rem;
}

.release-list{display:grid;gap:12px}

.release-item{
  display:grid;
  grid-template-columns:62px 1fr auto;
  gap:14px;
  align-items:center;
  border:1px solid var(--line);
  background:rgba(255,255,255,.025);
  padding:14px;
  border-radius:20px;
  transition:.22s ease;
}

.release-item:hover{
  transform:translateY(-2px);
  border-color:rgba(17,165,255,.22);
}

.release-item img{
  width:62px;
  height:62px;
  border-radius:16px;
  background:#0a1118;
  object-fit:cover;
  padding:0;
}

.release-item strong{display:block}
.release-item small{color:var(--muted)}
.release-item em{font-style:normal;font-weight:700;color:#fff}

.metrics-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
  justify-items:center;
  text-align:center;
}

.metric-card{padding:20px}
.metric-card span{color:var(--muted);display:block;margin-bottom:8px}
.metric-card strong{font-size:2rem;display:block;margin-bottom:6px}
.metric-card small{color:#c8d4e0}

.section{padding:24px 0 56px}
.section-soft{padding-top:10px}

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

.split-head h2,.page-banner h1,.docs-content h2{margin:.45rem 0 0}
.split-head h2,.page-banner h1{
  font-size:clamp(1.9rem,3vw,2.6rem);
  letter-spacing:-.04em;
}

.page-banner{padding:54px 0 20px}
.page-banner p{max-width:720px;color:#aebfd0;line-height:1.7}

.catalog-toolbar{padding:16px;margin-top:22px}

.search-bar input{
  width:100%;
  padding:15px 18px;
  border-radius:18px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.03);
  color:#eef6ff;
  outline:none;
}

.search-bar input::placeholder{color:#7990a7}

.filters-row{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:14px;
}

.filter-chip{
  border:1px solid var(--line);
  background:rgba(255,255,255,.03);
  color:#dbe5ef;
  padding:10px 14px;
  border-radius:999px;
  cursor:pointer;
  transition:.2s ease;
}

.filter-chip:hover,
.filter-chip.active{
  background:rgba(17,165,255,.12);
  border-color:rgba(17,165,255,.24);
  color:#fff;
}

/* =========================
   GRILLE PRODUITS CORRIGÉE
   ========================= */

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

.product-card{
  display:flex;
  flex-direction:column;
  min-height:100%;
  border:1px solid var(--line);
  border-radius:28px;
  background:linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.025));
  overflow:hidden;
  box-shadow:var(--shadow);
  transition:.22s ease;
}

.product-card:hover{
  transform:translateY(-3px);
  border-color:rgba(17,165,255,.22);
}

/* THUMBNAIL FIX */
.product-thumb{
  position:relative;
  width:100%;
  height:190px;
  overflow:hidden;
  background:#09121a;
  padding:0;
  min-height:unset;
  display:block;
}

.product-thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  display:block;
  max-width:none;
  filter:none;
  transition:transform .35s ease;
}

.product-card:hover .product-thumb img{
  transform:scale(1.04);
}

.badge{
  position:absolute;
  top:14px;
  right:14px;
  padding:8px 12px;
  border-radius:999px;
  font-size:.78rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.08em;
  z-index:2;
}

.badge.free,
.badge.paid{
  background:rgba(34,197,94,.12);
  color:#bdf6d0;
  border:1px solid rgba(34,197,94,.18);
}

.product-body{
  display:flex;
  flex-direction:column;
  gap:14px;
  padding:18px 18px 20px;
  flex:1;
}

.product-meta{
  display:flex;
  justify-content:space-between;
  gap:10px;
  color:var(--muted);
  font-size:.92rem;
}

.product-body h3{
  margin:0;
  font-size:1.18rem;
  line-height:1.3;
}

.product-body p{
  margin:0;
  color:#aebfd0;
  line-height:1.65;
}

.tag-row,.tags{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.tag-row span,.tags span{
  padding:8px 11px;
  border-radius:999px;
  background:rgba(255,255,255,.04);
  border:1px solid var(--line);
  color:#d5e3f1;
  font-size:.84rem;
}

.product-footer{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:14px;
  margin-top:auto;
}

.card-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}

.product-footer strong{
  font-size:1.08rem;
}

/* =========================
   PAGE PRODUIT / GALLERY FIX
   ========================= */

.product-hero{padding:58px 0 20px}

.product-layout{
  display:grid;
  grid-template-columns:minmax(0, 1.12fr) minmax(0, .88fr);
  gap:26px;
  align-items:start;
}

.preview-card{
  width:100%;
  aspect-ratio:16 / 9;
  min-height:0;
  overflow:hidden;
  border-radius:30px;
  border:1px solid var(--line);
  box-shadow:var(--shadow);
  background:#09121a;
  display:block;
  padding:0;
  position:relative;
  isolation:isolate;
}

.preview-card img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  display:block;
  max-width:none;
  filter:none;
  transition:transform .28s ease;
}

.preview-video-link{
  position:relative;
  cursor:pointer;
}

.preview-overlay{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
  background:linear-gradient(180deg, rgba(5,11,18,.12) 0%, rgba(5,11,18,.64) 100%);
  opacity:0;
  transition:opacity .22s ease;
  pointer-events:none;
}

.preview-overlay-pill{
  padding:12px 18px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(5,11,18,.72);
  color:#ffffff;
  font-weight:700;
  letter-spacing:.01em;
  box-shadow:0 12px 30px rgba(0,0,0,.28);
}

.preview-video-link:hover .preview-overlay,
.preview-video-link:focus-visible .preview-overlay{
  opacity:1;
}

.preview-video-link:hover img,
.preview-video-link:focus-visible img{
  transform:scale(1.03);
}

.product-gallery,
.gallery{
  width:100%;
  height:420px;
  overflow:hidden;
  border-radius:30px;
  background:#09121a;
}

.product-gallery img,
.gallery img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  display:block;
}

.product-info h1{
  font-size:clamp(2.2rem,5vw,3.6rem);
  line-height:1.04;
  letter-spacing:-.05em;
  margin:16px 0;
}

.info-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:14px;
  margin:22px 0;
}

.info-grid div{
  padding:18px;
  border-radius:20px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.03);
}

.info-grid span{
  display:block;
  color:var(--muted);
  margin-bottom:8px;
}

.info-grid strong{font-size:1rem}

.notice{
  margin-top:18px;
  padding:16px 18px;
  border-radius:18px;
  border:1px solid rgba(17,165,255,.18);
  background:rgba(17,165,255,.08);
  color:#cceeff;
  line-height:1.65;
}

.doc-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:18px;
}

.doc-card{
  display:grid;
  grid-template-columns:94px 1fr;
  gap:16px;
  align-items:center;
  padding:18px;
  border-radius:24px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.03);
  transition:.22s ease;
}

.doc-card:hover{
  transform:translateY(-2px);
  border-color:rgba(17,165,255,.22);
}

.doc-card img{
  width:94px;
  height:94px;
  border-radius:20px;
  background:#091119;
  object-fit:cover;
  padding:0;
}

.doc-card strong{
  display:block;
  font-size:1.08rem;
  margin-bottom:6px;
}

.doc-card p{
  margin:0;
  color:#aebfd0;
  line-height:1.6;
}

.doc-card span{
  display:inline-block;
  margin-top:10px;
  color:#b6e6ff;
  font-weight:600;
}

.docs-layout{
  display:grid;
  grid-template-columns:260px 1fr;
  gap:22px;
}

.docs-sidebar{
  position:sticky;
  top:100px;
  height:max-content;
  padding:18px;
  border-radius:24px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.03);
}

.docs-sidebar a{
  display:block;
  padding:12px 14px;
  border-radius:14px;
  color:#dbe8f4;
  transition:.2s ease;
}

.docs-sidebar a:hover{background:rgba(17,165,255,.10)}

.docs-content{display:grid;gap:18px}

.doc-section{
  padding:24px;
  border-radius:24px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.03);
}

.doc-section ol{
  padding-left:18px;
  margin:14px 0 0;
  color:#d3dfeb;
}

.doc-section li{
  margin-bottom:10px;
  line-height:1.7;
}

.doc-item{
  list-style-position: outside;
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
}

.doc-item-sql{
  display:block;
}

.doc-text{
  color:#d3dfeb;
}

.doc-text code{
  display:inline-flex;
  align-items:center;
  padding:4px 8px;
  border-radius:10px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.08);
  font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;
  font-size:.95em;
  color:#f4f8fc;
}

.copy-chip{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:4px 10px;
  border-radius:10px;
  border:1px solid rgba(17,165,255,.22);
  background:rgba(17,165,255,.08);
  vertical-align:middle;
}

.copy-chip code{
  font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;
  font-size:.92em;
  line-height:1;
  color:#dff2ff;
  background:transparent;
  border:none;
  padding:0;
}

.copy-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:28px;
  height:28px;
  padding:0;
  border:none;
  border-radius:8px;
  background:transparent;
  color:#dff2ff;
  cursor:pointer;
  transition:.2s ease;
  flex-shrink:0;
}

.copy-btn:hover{
  background:rgba(17,165,255,.14);
}

.copy-btn svg{
  width:15px;
  height:15px;
  fill:currentColor;
}

.copy-btn.is-copied{
  background:rgba(70,208,122,.14);
  color:#dfffea;
}

.copy-block{
  margin:10px 0;
  border:1px solid rgba(255,255,255,.08);
  border-radius:16px;
  background:rgba(255,255,255,.04);
  overflow:hidden;
}

.copy-block-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:10px 12px;
  border-bottom:1px solid rgba(255,255,255,.08);
  background:rgba(255,255,255,.03);
}

.copy-block-label{
  font-size:.82rem;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#9fc3df;
}

.copy-block pre{
  margin:0;
  padding:14px;
  overflow:auto;
}

.copy-block pre code{
  display:block;
  white-space:pre;
  font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;
  font-size:.92rem;
  line-height:1.6;
  color:#eef5fb;
}

.status-shell,.redirect-shell,.notfound-shell{padding:70px 0}

.status-card,.redirect-card,.notfound-card{
  max-width:760px;
  margin:0 auto;
  padding:30px;
  border-radius:28px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.03);
  box-shadow:var(--shadow);
  text-align:center;
}

.empty-state{margin:14px 0 0;color:#b7c8d7}

.site-footer{
  padding:22px 0 28px;
  border-top:1px solid var(--line-soft);
  background:rgba(5,11,18,.55);
}

.footer-grid{
  display:grid;
  grid-template-columns:1.3fr .7fr .8fr;
  gap:24px;
  padding-top:20px;
}

.footer-brand{margin-bottom:12px}
.site-footer h4{margin:0 0 10px}
.site-footer a{display:block;color:#c9d8e7;margin-bottom:10px}
.site-footer a:hover{color:#fff}
.muted,.footer-bottom{color:var(--muted)}

.footer-bottom{
  margin-top:20px;
  padding-top:18px;
  border-top:1px solid var(--line-soft);
  display:flex;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
}

.reveal{
  opacity:0;
  transform:translateY(18px);
  transition:opacity .45s ease, transform .45s ease;
}

.reveal.visible{
  opacity:1;
  transform:none;
}

.delay-1{transition-delay:.1s}
[hidden]{display:none !important}

@media (max-width: 1060px){
  .hero-grid,
  .product-layout,
  .docs-layout,
  .footer-grid{
    grid-template-columns:1fr;
  }

  .product-grid{grid-template-columns:repeat(2,1fr)}
  .doc-grid{grid-template-columns:1fr}
  .docs-sidebar{position:static}
}

@media (max-width: 820px){
  .nav-wrap{flex-wrap:wrap}

  .nav{
    order:3;
    width:100%;
    justify-content:center;
    flex-wrap:wrap;
    border-radius:22px;
  }

  .nav-actions{
    width:100%;
    justify-content:stretch;
  }

  .nav-actions a{flex:1}
  .metrics-row,.product-grid,.info-grid{grid-template-columns:1fr}
  .hero{padding-top:56px}
  .doc-card{grid-template-columns:1fr}
  .product-thumb{height:210px}
  .preview-card,.gallery,.product-gallery{height:auto;min-height:0}
}

@media (max-width: 560px){
  .container{width:min(100% - 20px, 1180px)}
  .product-footer{align-items:flex-start;flex-direction:column}
  .card-actions{width:100%}
  .card-actions a{flex:1}
  .release-item{grid-template-columns:1fr}
  .product-thumb{height:190px}
  .preview-card,.gallery,.product-gallery{height:auto;min-height:0}
}

.doc-item-video{
  display:grid;
  gap:14px;
}

.video-embed{
  width:min(100%, 760px);
  aspect-ratio:16 / 9;
  border-radius:18px;
  overflow:hidden;
  border:1px solid var(--line);
  background:#000;
  box-shadow:var(--shadow);
}

.video-embed iframe{
  width:100%;
  height:100%;
  border:0;
  display:block;
}


.video-embed{position:relative;padding-top:56.25%;border-radius:22px;overflow:hidden;border:1px solid rgba(255,255,255,.08);background:#02070c}.video-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.copy-block{margin-top:12px;border:1px solid rgba(255,255,255,.08);border-radius:18px;overflow:hidden;background:rgba(255,255,255,.03)}.copy-block-head{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-bottom:1px solid rgba(255,255,255,.08)}.copy-block-label{font-size:.8rem;font-weight:800;letter-spacing:.12em;color:#9fdcff}.copy-btn{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:12px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.05);color:#fff;cursor:pointer}.copy-btn svg{width:18px;height:18px;fill:currentColor}.copy-btn.is-copied{background:rgba(34,197,94,.18);border-color:rgba(34,197,94,.35)}.copy-chip{display:inline-flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid rgba(255,255,255,.08);border-radius:14px;background:rgba(255,255,255,.03);margin-top:8px;flex-wrap:wrap}.doc-item{margin-bottom:14px}.doc-text{color:#dbe8f4;line-height:1.8}.center-page{padding:70px 16px 90px;display:grid;place-items:center}.status-card{max-width:720px;padding:30px;border-radius:28px;background:linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.025));border:1px solid rgba(255,255,255,.08);box-shadow:0 24px 80px rgba(0,0,0,.45)}
