/* VARIABLES */
:root{--navy:#0E1C3D;--gold:#D4A341;--tq:#0DA08E;--white:#fff;--lg:#F6F7FA;--mute:#667085;--t:.45s}
/* RESET */
*,*::before,*::after{box-sizing:border-box;margin:0}
/* BASE */
html{scroll-behavior:smooth;scroll-padding-top:80px}
body{font-family:system-ui,-apple-system,"Segoe UI",Helvetica,Arial,sans-serif;color:var(--navy);background:#fff;line-height:1.6;overflow-x:hidden;font-size:1rem}
img{max-width:100%;height:auto}a{color:inherit}
.wrap{width:min(1120px,100% - 2.5rem);margin-inline:auto;position:relative;z-index:1}.narrow{max-width:760px}
.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;background:#fff;padding:.5rem;z-index:99}
/* TYPOGRAPHIE */
h1{font-size:clamp(1.9rem,4.6vw,3rem);line-height:1.12}
h2{font-size:clamp(1.6rem,3.4vw,2rem);line-height:1.2;margin-bottom:1.5rem}
h3{font-size:1.1rem;margin-bottom:.5rem}
.lead{font-size:1.125rem;max-width:56ch;margin:1.2rem 0 1.8rem;opacity:.9}.lead.dark{color:var(--mute)}
.note{font-size:.875rem;color:var(--mute);margin-bottom:1.2rem}.note.light{color:#b8c0d4;margin-top:1.5rem}
/* NAVIGATION */
.nav{position:sticky;top:0;z-index:50;background:rgba(14,28,61,.94);border-bottom:1px solid rgba(255,255,255,.1);transition:box-shadow var(--t)}
.nav.sc{box-shadow:0 4px 18px rgba(0,0,0,.25)}
.nav-in{display:flex;align-items:center;justify-content:space-between;padding:.5rem 0}
.brand img{display:block}
.menu{display:flex;align-items:center;gap:1.4rem;color:#fff}
.menu a{text-decoration:none;font-size:.9rem;padding:.3rem 0;border-bottom:2px solid transparent;transition:border-color var(--t)}
.menu a.act{border-color:var(--gold)}
.burger{display:none;background:none;border:0;width:44px;height:44px;cursor:pointer;position:relative}
.burger span{position:absolute;left:10px;right:10px;height:2px;background:#fff;transition:transform var(--t)}
.burger span:first-child{top:16px}.burger span:last-child{top:26px}
.burger[aria-expanded=true] span:first-child{transform:translateY(5px) rotate(45deg)}
.burger[aria-expanded=true] span:last-child{transform:translateY(-5px) rotate(-45deg)}
/* HERO */
.bg-navy{background:var(--navy);color:#fff;position:relative;overflow:hidden}
.hero{padding:clamp(3rem,8vw,6rem) 0}
.hero-in{display:grid;grid-template-columns:1.1fr .9fr;gap:2.5rem;align-items:center}
.cta-row{display:flex;flex-wrap:wrap;gap:.8rem}
.doc{background:#fff;color:var(--navy);border-radius:6px;padding:1rem;box-shadow:0 12px 40px rgba(0,0,0,.3);min-width:0}
.doc-tabs{display:flex;gap:.4rem;border-bottom:1px solid #e3e6ee;margin-bottom:1rem}
.doc-tabs button{background:none;border:0;padding:.6rem .8rem;font:inherit;font-size:.875rem;cursor:pointer;border-bottom:3px solid transparent;color:var(--mute)}
.doc-tabs button[aria-selected=true]{color:var(--navy);border-color:var(--gold);font-weight:700}
.doc-body{min-height:190px;font-size:.9rem;animation:fade var(--t)}
.doc-body ul{padding-left:1.1rem}.doc-body li{margin:.3rem 0}
/* SECTIONS */
.sec{padding:clamp(3rem,7vw,5.5rem) 0;position:relative;overflow:hidden}
.alt{background:var(--lg)}
.flow{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:.6rem;counter-reset:f}
.flow li{counter-increment:f;border:1px solid #d5d9e5;padding:.5rem .9rem;border-radius:4px;font-size:.9rem;background:#fff}
.flow li::before{content:counter(f) ". ";color:var(--gold);font-weight:700}
.flow-line{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;margin-bottom:2rem;font-weight:700}
.flow-line span:not(:last-child)::after{content:"→";margin-left:.6rem;color:var(--tq)}
.cols3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.cols2{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}
.cols3 article{border-top:3px solid var(--tq);padding-top:1rem}
.ba{padding:1.5rem;border:1px solid #d5d9e5;border-radius:4px}.ba.on{border-color:var(--gold);background:var(--lg)}
.proc{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}
.proc li{border-left:2px solid var(--gold);padding:.3rem 0 .3rem 1rem}
.proc b{display:block;color:var(--gold);font-size:.75rem;letter-spacing:.08em}
/* BACKGROUNDS */
.deco{position:absolute;pointer-events:none;z-index:0}
.arcs{width:520px;height:520px;right:-180px;top:-140px;border:2px solid rgba(212,163,65,.22);border-radius:50%;box-shadow:0 0 0 40px rgba(13,160,142,.06),0 0 0 41px rgba(13,160,142,.18)}
.arcs.r{right:auto;left:-220px;top:auto;bottom:-260px}
.grid{inset:0;background:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px) 0 0/48px 48px,linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px) 0 0/48px 48px;-webkit-mask-image:linear-gradient(90deg,transparent,#000);mask-image:linear-gradient(90deg,transparent,#000)}
.dots{right:0;top:1rem;width:220px;height:160px;background:radial-gradient(var(--mute) 1.2px,transparent 1.4px) 0 0/18px 18px;opacity:.25}
.half{width:380px;height:190px;right:-40px;bottom:0;border:2px solid rgba(13,160,142,.25);border-bottom:0;border-radius:190px 190px 0 0}
.half.l{right:auto;left:-60px;top:0;bottom:auto;transform:rotate(180deg);border-color:rgba(212,163,65,.3)}
.wf{left:0;right:0;top:2.2rem;height:2px;background:linear-gradient(90deg,transparent,rgba(13,160,142,.35) 20%,rgba(13,160,142,.35) 80%,transparent)}
.wf::before,.wf::after{content:"";position:absolute;top:-5px;width:12px;height:12px;border-radius:50%;border:2px solid var(--tq);background:#fff}
.wf::before{left:12%}.wf::after{left:62%;border-color:var(--gold)}
.page{right:4%;top:2rem;width:150px;height:200px;border:1.5px solid rgba(102,112,133,.3);border-radius:4px;background:repeating-linear-gradient(transparent 0 18px,rgba(102,112,133,.22) 18px 19px) 14px 30px/calc(100% - 28px) calc(100% - 50px) no-repeat}
.page::before{content:"";position:absolute;left:14px;top:12px;width:40px;height:6px;background:var(--gold);opacity:.6}
.page.r2{right:auto;left:4%;top:auto;bottom:2rem;transform:rotate(-4deg)}
@media(max-width:860px){.page,.half{opacity:.4}}
/* COMPONENTS */
.btn{font:inherit;font-weight:700;font-size:.95rem;padding:.8rem 1.3rem;border-radius:4px;border:2px solid transparent;cursor:pointer;text-decoration:none;display:inline-block;transition:transform .15s,background var(--t),box-shadow var(--t)}
.btn.gold{background:var(--gold);color:var(--navy)}.btn.gold:hover{box-shadow:0 4px 14px rgba(212,163,65,.4)}
.btn.ghost{border-color:currentColor;color:#fff;background:none}.btn.ghost:hover{background:rgba(255,255,255,.1)}.btn.dk{color:var(--navy)}
.btn:active{transform:scale(.97)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.load::after{content:"…"}
.demo{display:grid;grid-template-columns:260px 1fr;gap:1.5rem}
.dtabs{display:flex;flex-direction:column;gap:.3rem}
.dtabs button{text-align:left;font:inherit;font-size:.9rem;background:#fff;border:1px solid #d5d9e5;padding:.6rem .9rem;border-radius:4px;cursor:pointer;transition:background var(--t),border-color var(--t)}
.dtabs button[aria-selected=true]{background:var(--navy);color:#fff;border-color:var(--navy);box-shadow:inset 4px 0 var(--gold)}
.dpanel{background:var(--lg);border-radius:4px;padding:1.5rem;min-height:260px;animation:fade var(--t)}
.dpanel ul{padding-left:1.1rem}.dpanel li{margin:.3rem 0}
.tbc{color:var(--mute);font-style:italic}
.chips{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:.6rem}
.chips li{background:#fff;border:1px solid #d5d9e5;border-left:3px solid var(--tq);padding:.5rem 1rem;border-radius:4px}
.list{padding-left:1.1rem}.list li{margin:.3rem 0}.list.no li::marker{color:var(--gold)}.list.dark{color:var(--navy)}
.price{display:inline-flex;flex-direction:column;gap:.3rem;border:2px solid var(--gold);padding:1.8rem 2.4rem;border-radius:4px}
.price strong{font-size:2rem}.price em{color:var(--mute)}
.view{padding:4rem 0;min-height:60vh}.view h1{margin-bottom:1rem}
.foot{padding:3rem 0}.foot-in{display:flex;flex-wrap:wrap;gap:2rem;justify-content:space-between;align-items:flex-start}
.foot nav{display:flex;flex-direction:column;gap:.3rem}.foot nav a{text-decoration:none;font-size:.9rem}.foot p{margin-top:.6rem;max-width:32ch;font-size:.9rem}
.totop{position:fixed;right:1rem;bottom:1rem;width:44px;height:44px;border-radius:50%;border:0;background:var(--navy);color:var(--gold);font-size:1.2rem;cursor:pointer;z-index:40}
/* FORM */
dialog{border:0;border-radius:6px;padding:0;width:min(560px,100% - 1.5rem);max-height:92vh;color:var(--navy)}
dialog::backdrop{background:rgba(14,28,61,.7)}
#pform{padding:1.5rem;position:relative}
#pform h2{font-size:1.4rem;margin-bottom:.8rem}
.x{position:absolute;right:.6rem;top:.4rem;background:none;border:0;font-size:1.8rem;cursor:pointer;width:44px;height:44px}
.prog{height:4px;background:#e3e6ee;margin-bottom:.6rem}.prog i{display:block;height:100%;width:25%;background:var(--tq);transition:width var(--t)}
fieldset{border:0;padding:0;margin-bottom:1rem}legend{font-weight:700;margin-bottom:.6rem}
label{display:block;font-size:.875rem;margin-bottom:.8rem}
input,textarea{display:block;width:100%;font:inherit;padding:.6rem;border:1px solid #b9bfce;border-radius:4px;margin-top:.25rem}
input[aria-invalid=true],textarea[aria-invalid=true]{border-color:#b42318}
.err{color:#b42318;font-size:.875rem;min-height:1.2em}.ok{margin-top:1rem;padding:.8rem;background:var(--lg);border-left:3px solid var(--tq)}
dl{font-size:.875rem}dt{font-weight:700;margin-top:.5rem}dd{margin:0;color:var(--mute);white-space:pre-wrap}
/* FAQ */
.faq details{border-bottom:1px solid #d5d9e5;padding:1rem 0}
.faq summary{cursor:pointer;font-weight:700}.faq p{margin-top:.6rem;color:var(--mute);animation:fade var(--t)}
/* ANIMATIONS */
@keyframes fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.rv{opacity:0;transform:translateY(14px);transition:opacity .6s ease,transform .6s ease;transition-delay:calc(var(--i,0)*70ms)}
.rv.in{opacity:1;transform:none}
/* RESPONSIVE */
@media(max-width:860px){
.hero-in,.cols3,.cols2,.demo{grid-template-columns:1fr}
.dtabs{flex-direction:row;overflow-x:auto;padding-bottom:.3rem}.dtabs button{white-space:nowrap}
.burger{display:block}
.menu{position:absolute;top:100%;left:0;right:0;background:var(--navy);flex-direction:column;align-items:stretch;padding:1rem 1.25rem 1.5rem;gap:.8rem;opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity var(--t),transform var(--t),visibility var(--t)}
.menu.open{opacity:1;visibility:visible;transform:none}
.price{padding:1.4rem;width:100%}
}
/* ACCESSIBILITY */
:focus-visible{outline:3px solid var(--tq);outline-offset:2px}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
