:root{
  --red:#CF031F; --red-dark:#A6031A; --red-light:#FDECEE;
  --blue:#0683E3; --blue-dark:#056BBB; --blue-light:#E9F5FE;
  --green:#16A34A; --green-light:#E7F8EE;
  --black:#0B0B0C; --ink:#16171A; --gray-900:#26272B; --gray-700:#4A4C52;
  --gray-500:#7B7E86; --gray-300:#CFD2D8; --gray-100:#F2F3F5; --gray-50:#FAFBFC; --white:#fff;
  --font:'Manrope',-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --mono:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --radius:20px; --radius-sm:12px; --shadow-md:0 20px 50px rgba(11,11,12,.14); --shadow-sm:0 8px 24px rgba(11,11,12,.08);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;font-family:var(--font);color:var(--ink);background:#fff;-webkit-font-smoothing:antialiased;}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
.container{max-width:1180px;margin:0 auto;padding:0 24px;}
code, pre, .mono{font-family:var(--mono);}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:15px 26px;border-radius:999px;font-weight:800;font-size:15.5px;border:none;cursor:pointer;transition:transform .15s ease, box-shadow .15s ease;white-space:nowrap;}
.btn:hover{transform:translateY(-2px);}
.btn-primary{background:var(--red);color:#fff;box-shadow:0 10px 28px rgba(207,3,31,.35);}
.btn-light{background:#fff;color:var(--black);}
.btn-outline-light{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.35);}
.btn-outline{background:transparent;color:var(--ink);border:1.5px solid var(--gray-300);}
.btn-dark{background:var(--black);color:#fff;}
.btn-block{width:100%;}
.btn-sm{padding:10px 18px;font-size:13.5px;}
.btn[disabled]{opacity:.6;cursor:default;transform:none;}

section{padding:88px 0;}
@media(max-width:760px){section{padding:56px 0;}}
.eyebrow{display:inline-flex;align-items:center;gap:8px;background:var(--red-light);color:var(--red-dark);border:1px solid rgba(207,3,31,.18);padding:7px 15px;border-radius:999px;font-size:12.5px;font-weight:800;margin-bottom:16px;letter-spacing:.2px;}
h2.h-title{font-size:34px;font-weight:900;margin:0 0 14px;letter-spacing:-.5px;}
p.h-sub{font-size:16.5px;color:var(--gray-500);max-width:640px;margin:0 auto 46px;}
.center{text-align:center;}
.grid{display:grid;gap:22px;}
.grid-2{grid-template-columns:repeat(2,1fr);}
.grid-3{grid-template-columns:repeat(3,1fr);}
.grid-4{grid-template-columns:repeat(4,1fr);}
@media(max-width:900px){.grid-3{grid-template-columns:1fr 1fr;} .grid-4{grid-template-columns:1fr 1fr;}}
@media(max-width:640px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr;}}
.badge{display:inline-flex;align-items:center;gap:6px;padding:4px 11px;border-radius:999px;font-size:12px;font-weight:800;}
.badge-red{background:var(--red-light);color:var(--red-dark);}
.badge-blue{background:var(--blue-light);color:var(--blue-dark);}
.badge-green{background:var(--green-light);color:var(--green);}
.badge-gray{background:var(--gray-100);color:var(--gray-700);}

/* Nav */
#nav{position:fixed;top:0;left:0;right:0;z-index:60;padding:18px 0;transition:background .25s,box-shadow .25s,padding .25s;}
#nav.scrolled{background:rgba(255,255,255,.94);backdrop-filter:blur(10px);box-shadow:0 1px 0 rgba(0,0,0,.06);padding:12px 0;}
#nav .bar{display:flex;align-items:center;justify-content:space-between;}
.brand{font-weight:800;font-size:18px;letter-spacing:-.2px;display:flex;align-items:center;gap:10px;color:#fff;}
#nav.scrolled .brand{color:var(--ink);}
.brand-logo{height:26px;width:auto;display:block;}
.brand-logo-dark{display:none;}
#nav.scrolled .brand-logo-light{display:none;}
#nav.scrolled .brand-logo-dark{display:block;}
.brand-sep{width:1px;height:20px;background:rgba(255,255,255,.35);flex:none;}
#nav.scrolled .brand-sep{background:rgba(11,11,12,.15);}
.brand-mark{font-size:20px;}
@media (max-width:640px){
  .brand-logo{height:22px;}
  .brand span:not(.brand-mark){display:none;}
}
#nav .links{display:flex;align-items:center;gap:26px;font-weight:700;font-size:14px;}
#nav .links a:not(.btn){color:#fff;}
#nav.scrolled .links a:not(.btn){color:var(--ink);}
#nav .links a:hover:not(.btn){opacity:.75;}
.nav-toggle{display:none;flex-direction:column;justify-content:center;gap:5px;background:none;border:none;cursor:pointer;padding:6px;}
.nav-toggle span{display:block;width:24px;height:2.5px;background:#fff;border-radius:2px;transition:.2s;}
#nav.scrolled .nav-toggle span{background:var(--ink);}
@media(max-width:900px){
  .nav-toggle{display:flex;}
  #nav .links{position:fixed;top:0;right:0;height:100vh;width:78vw;max-width:340px;background:#fff;flex-direction:column;align-items:flex-start;justify-content:flex-start;padding:90px 28px 28px;gap:22px;transform:translateX(100%);transition:transform .25s ease;box-shadow:-10px 0 40px rgba(0,0,0,.15);}
  #nav .links.open{transform:translateX(0);}
  #nav .links a:not(.btn){color:var(--ink)!important;font-size:16px;}
  #nav .links .btn{width:100%;text-align:center;}
}

/* Hero */
.hero{position:relative;background:radial-gradient(circle at 15% 15%, #2a1015 0%, var(--black) 45%), linear-gradient(155deg,#000 0%, #26060c 55%, var(--red-dark) 130%);color:#fff;padding:170px 0 120px;overflow:hidden;}
.hero:after{content:"";position:absolute;right:-10%;top:10%;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle,rgba(6,131,227,.4),transparent 70%);filter:blur(10px);}
.hero-inner{position:relative;z-index:2;}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:50px;align-items:center;}
@media(max-width:960px){.hero-grid{grid-template-columns:1fr;}}
.hero .eyebrow{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);color:#fff;}
.hero h1{font-size:50px;line-height:1.08;font-weight:900;letter-spacing:-1.3px;margin:0 0 20px;}
.hero h1 span{background:linear-gradient(90deg,#fff,#ffd9dd);-webkit-background-clip:text;background-clip:text;color:transparent;}
.hero p.lead{font-size:17.5px;color:rgba(255,255,255,.78);max-width:520px;margin:0 0 34px;}
.hero .cta-row{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:20px;}
.hero .trust-note{font-size:13px;color:rgba(255,255,255,.55);}
@media(max-width:700px){.hero h1{font-size:34px;} .hero{padding:130px 0 90px;}}

.hero-card{background:#101114;border:1px solid rgba(255,255,255,.08);border-radius:22px;box-shadow:0 40px 90px rgba(0,0,0,.5);overflow:hidden;}
.hero-card-bar{display:flex;align-items:center;gap:8px;padding:14px 18px;background:#17181c;border-bottom:1px solid rgba(255,255,255,.06);}
.hero-card-bar span{width:10px;height:10px;border-radius:50%;background:#3a3b40;}
.hero-card-bar .path{margin-left:10px;font-size:12px;color:#9a9ba1;font-family:var(--mono);}
.hero-card pre{margin:0;padding:22px;font-size:12.5px;line-height:1.75;color:#d7e6ff;overflow-x:auto;}
.hero-card .tok-k{color:#ff8fa3;} .hero-card .tok-s{color:#9be89b;} .hero-card .tok-c{color:#6b7280;} .hero-card .tok-f{color:#7dd3fc;}

/* stat strip */
.stat-strip{background:var(--black);color:#fff;}
.stat-strip .grid-4{padding:34px 0;}
.stat-strip .stat-num{font-size:26px;font-weight:900;color:#fff;}
.stat-strip .stat-lbl{font-size:12.5px;color:rgba(255,255,255,.55);margin-top:4px;line-height:1.4;}

/* Cards */
.card{background:#fff;border:1px solid var(--gray-100);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:28px;}
.card h3{margin:0 0 8px;font-size:18px;font-weight:800;}
.card p{margin:0;color:var(--gray-500);font-size:14.5px;line-height:1.65;}
.card .icon{width:46px;height:46px;border-radius:14px;background:var(--red-light);display:flex;align-items:center;justify-content:center;font-size:22px;margin-bottom:16px;}
.adv-grid .card:nth-child(3n+2) .icon{background:var(--blue-light);}
.adv-grid .card:nth-child(3n) .icon{background:var(--green-light);}

/* Feature tabs */
.tabbar{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-bottom:34px;}
.tabbar button{background:var(--gray-100);border:none;padding:12px 20px;border-radius:999px;font-weight:800;font-size:14px;cursor:pointer;color:var(--gray-700);}
.tabbar button.active{background:var(--black);color:#fff;}
.tabpanel{display:none;}
.tabpanel.active{display:block;}
.feature-layout{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;}
@media(max-width:860px){.feature-layout{grid-template-columns:1fr;}}
.feature-list{list-style:none;margin:0;padding:0;}
.feature-list li{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid var(--gray-100);font-size:15px;}
.feature-list li:last-child{border-bottom:none;}
.feature-list .tick{color:var(--green);font-weight:900;flex-shrink:0;}
.feature-visual{background:var(--gray-50);border-radius:var(--radius);padding:26px;border:1px solid var(--gray-100);}
.feature-visual .actions{display:flex;flex-wrap:wrap;gap:8px;}
.feature-visual .actions code{display:inline-block;background:#fff;border:1px solid var(--gray-300);border-radius:8px;padding:6px 10px;font-size:12.5px;}

/* Steps */
.steps-list{list-style:none;margin:0;padding:0;counter-reset:step;display:grid;grid-template-columns:repeat(4,1fr);gap:22px;}
@media(max-width:900px){.steps-list{grid-template-columns:1fr 1fr;}}
@media(max-width:600px){.steps-list{grid-template-columns:1fr;}}
.steps-list li{counter-increment:step;background:var(--gray-50);border-radius:var(--radius);padding:24px;border:1px solid var(--gray-100);position:relative;}
.steps-list li:before{content:counter(step);display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:var(--red);color:#fff;font-weight:900;font-size:15px;margin-bottom:14px;}
.steps-list h4{margin:0 0 6px;font-size:15.5px;}
.steps-list p{margin:0;color:var(--gray-500);font-size:13.5px;line-height:1.6;}

/* Pricing */
.pricing-card{max-width:460px;margin:0 auto;background:linear-gradient(160deg,#101114,#1c1015 60%,var(--red-dark));color:#fff;border-radius:26px;padding:38px;box-shadow:var(--shadow-md);}
.pricing-card .amount{font-size:46px;font-weight:900;margin:6px 0 2px;}
.pricing-card .amount span{font-size:16px;font-weight:700;color:rgba(255,255,255,.65);}
.pricing-card .feature-list li{border-bottom-color:rgba(255,255,255,.12);color:rgba(255,255,255,.9);}
.pricing-card .feature-list .tick{color:#7CF0A0;}
.pricing-note{max-width:460px;margin:22px auto 0;background:var(--blue-light);color:var(--blue-dark);border-radius:14px;padding:16px 18px;font-size:13.5px;line-height:1.6;}

/* Sandbox */
.sandbox-panel{background:var(--gray-50);border:1px solid var(--gray-100);border-radius:var(--radius);padding:28px;}
.sandbox-form{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px;}
@media(max-width:760px){.sandbox-form{grid-template-columns:1fr 1fr;}}
.field label{display:block;font-size:12.5px;font-weight:800;color:var(--gray-700);margin-bottom:6px;}
.input, select.input, textarea.input{width:100%;padding:12px 14px;border:1px solid var(--gray-300);border-radius:10px;font-size:14.5px;background:#fff;font-family:inherit;}
textarea.input{resize:vertical;min-height:100px;}
.sandbox-results{margin-top:8px;}
.sandbox-empty{color:var(--gray-500);font-size:14px;padding:18px 0;}
.trip-row{display:flex;justify-content:space-between;align-items:center;gap:14px;background:#fff;border:1px solid var(--gray-100);border-radius:14px;padding:16px 18px;margin-bottom:10px;flex-wrap:wrap;}
.trip-row .route{font-weight:800;font-size:15px;}
.trip-row .meta{color:var(--gray-500);font-size:13px;margin-top:2px;}
.trip-row .classes{display:flex;gap:8px;flex-wrap:wrap;}
.class-pill{background:var(--gray-100);border-radius:999px;padding:6px 12px;font-size:12.5px;font-weight:700;}
.sandbox-disclaimer{display:flex;gap:10px;align-items:flex-start;background:var(--blue-light);color:var(--blue-dark);border-radius:12px;padding:14px 16px;font-size:13px;margin-top:18px;line-height:1.6;}

/* Souscription form */
.subscribe-wrap{display:grid;grid-template-columns:.9fr 1.1fr;gap:46px;align-items:flex-start;}
@media(max-width:900px){.subscribe-wrap{grid-template-columns:1fr;}}
.subscribe-form{display:grid;grid-template-columns:1fr 1fr;gap:16px;background:#fff;border:1px solid var(--gray-100);border-radius:var(--radius);padding:30px;box-shadow:var(--shadow-sm);}
.subscribe-form .field.wide{grid-column:1/-1;}
@media(max-width:600px){.subscribe-form{grid-template-columns:1fr;}}
.form-msg{grid-column:1/-1;border-radius:12px;padding:14px 16px;font-size:14px;display:none;}
.form-msg.show{display:block;}
.form-msg.ok{background:var(--green-light);color:var(--green);}
.form-msg.err{background:var(--red-light);color:var(--red-dark);}
.required-note{font-size:12.5px;color:var(--gray-500);grid-column:1/-1;margin-top:-6px;}

/* FAQ */
.faq-item{border-bottom:1px solid var(--gray-100);padding:20px 0;}
.faq-item summary{cursor:pointer;font-weight:800;font-size:15.5px;list-style:none;display:flex;justify-content:space-between;align-items:center;}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary:after{content:"+";font-size:22px;color:var(--gray-500);font-weight:400;}
.faq-item[open] summary:after{content:"–";}
.faq-item p{color:var(--gray-500);font-size:14.5px;line-height:1.7;margin:12px 0 0;}

/* CTA band */
.cta-band{background:linear-gradient(120deg,var(--black),#1c0a0e);color:#fff;border-radius:28px;padding:56px;text-align:center;margin:0 24px;}
.cta-band h2{font-size:30px;font-weight:900;margin:0 0 12px;}
.cta-band p{color:rgba(255,255,255,.7);margin:0 0 26px;font-size:15.5px;}
@media(max-width:700px){.cta-band{padding:40px 24px;}}

/* Footer */
.site-footer{background:var(--black);color:rgba(255,255,255,.7);padding:64px 0 26px;}
.footer-top{display:grid;grid-template-columns:1.1fr 2fr;gap:50px;padding-bottom:36px;border-bottom:1px solid rgba(255,255,255,.1);}
@media(max-width:800px){.footer-top{grid-template-columns:1fr;}}
.footer-brand p{font-size:14px;line-height:1.7;margin:14px 0 18px;max-width:320px;}
.footer-logos{display:flex;gap:14px;align-items:center;}
.footer-logo-chip{background:#fff;border-radius:10px;padding:8px 12px;display:inline-flex;align-items:center;}
.footer-links{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
@media(max-width:600px){.footer-links{grid-template-columns:1fr 1fr;}}
.footer-col h4{color:#fff;font-size:13px;text-transform:uppercase;letter-spacing:.5px;margin:0 0 14px;}
.footer-col a{display:block;font-size:14px;color:rgba(255,255,255,.65);margin-bottom:10px;}
.footer-col a:hover{color:#fff;}
.footer-bottom{padding-top:24px;font-size:12.5px;color:rgba(255,255,255,.45);line-height:1.8;}
.footer-bottom a{text-decoration:underline;}

/* Documentation layout */
.doc-shell{padding-top:130px;}
.doc-layout{display:grid;grid-template-columns:250px 1fr;gap:50px;align-items:flex-start;}
.doc-layout > *{min-width:0;}
@media(max-width:900px){.doc-layout{grid-template-columns:1fr;}}
.doc-toc{position:sticky;top:110px;background:var(--gray-50);border:1px solid var(--gray-100);border-radius:var(--radius-sm);padding:22px;}
.doc-toc h4{margin:0 0 12px;font-size:12.5px;text-transform:uppercase;letter-spacing:.4px;color:var(--gray-500);}
.doc-toc a{display:block;font-size:14px;padding:7px 0;color:var(--gray-700);font-weight:600;}
.doc-toc a:hover{color:var(--red);}
.doc-content h2{font-size:26px;font-weight:900;margin:0 0 6px;scroll-margin-top:110px;}
.doc-content h2:not(:first-child){margin-top:56px;}
.doc-content h3{font-size:17px;font-weight:800;margin:28px 0 8px;scroll-margin-top:110px;}
.doc-content p{color:var(--gray-700);font-size:15px;line-height:1.75;}
.doc-content code{background:var(--gray-100);padding:2px 6px;border-radius:6px;font-size:13px;}
pre.code-block{background:#101114;color:#e6e6e6;border-radius:14px;padding:20px;font-size:13px;line-height:1.75;overflow-x:auto;margin:14px 0 22px;}
.doc-table-wrap{overflow-x:auto;margin:14px 0 26px;}
.doc-table{width:100%;border-collapse:collapse;font-size:13.5px;}
.doc-table th,.doc-table td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--gray-100);vertical-align:top;}
.doc-table th{color:var(--gray-500);font-size:12px;text-transform:uppercase;letter-spacing:.3px;}
.doc-table code{white-space:nowrap;}
.callout{border-radius:14px;padding:16px 18px;font-size:13.5px;line-height:1.7;margin:16px 0;}
.callout-info{background:var(--blue-light);color:var(--blue-dark);}
.callout-warn{background:#FFF6E5;color:#8A5A00;}
.method-badge{display:inline-block;background:var(--gray-900);color:#fff;font-size:11px;font-weight:800;padding:3px 9px;border-radius:6px;margin-right:8px;}

.copy-btn{background:var(--gray-100);border:none;border-radius:8px;padding:6px 10px;font-size:12px;font-weight:700;cursor:pointer;}
