/* Layout: ticket-stub metaphor. Landing at top, then ticket composer + catalogue + cart, the seller's board, monthly hand-off. */
:root{
  --bg:#F7F8FC; --surface:#FFFFFF; --ink:#141A33; --muted:#5A6185; --line:#DDE1EF;
  --cobalt:#2340D6; --cobalt-soft:#E6EAFD; --on-cobalt:#FFFFFF; --stub:#FFD447; --stub-ink:#3A2E00;
  --band-bg:#141A33; --band-fg:#FFFFFF; --band-muted:#C9CEE6;
  --ok:#1C8A57; --ok-soft:#DDF3E8; --warn:#B86A00; --warn-soft:#FDF0D9;
  --f-display:"Bricolage Grotesque", "Segoe UI", system-ui, sans-serif;
  --f-body:"Figtree", system-ui, -apple-system, sans-serif;
  --f-mono:"JetBrains Mono", ui-monospace, Menlo, monospace;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#0E1222; --surface:#161B30; --ink:#EEF0FA; --muted:#A3A9C7; --line:#2A3152;
  --cobalt:#7D93FF; --cobalt-soft:#1F2850; --on-cobalt:#0E1222; --stub:#FFD447; --stub-ink:#3A2E00;
  --band-bg:#232B55; --band-fg:#FFFFFF; --band-muted:#C9CEE6;
  --ok:#5BD69B; --ok-soft:#173528; --warn:#F2B455; --warn-soft:#3A2B12; color-scheme:dark }}
:root[data-theme="dark"]{
  --bg:#0E1222; --surface:#161B30; --ink:#EEF0FA; --muted:#A3A9C7; --line:#2A3152;
  --cobalt:#7D93FF; --cobalt-soft:#1F2850; --on-cobalt:#0E1222; --stub:#FFD447; --stub-ink:#3A2E00;
  --band-bg:#232B55; --band-fg:#FFFFFF; --band-muted:#C9CEE6;
  --ok:#5BD69B; --ok-soft:#173528; --warn:#F2B455; --warn-soft:#3A2B12; color-scheme:dark }

*{box-sizing:border-box}
body{background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:16px;line-height:1.55;padding-inline:16px}
.wrap{max-width:1120px;margin-inline:auto}
h1,h2,h3{font-family:var(--f-display);text-wrap:balance;margin:0;line-height:1.05}
p{margin:0}
.eyebrow{font-family:var(--f-mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
button{font:inherit;cursor:pointer}
:focus-visible{outline:3px solid var(--cobalt);outline-offset:2px;border-radius:6px}

/* nav */
nav{display:flex;align-items:center;justify-content:space-between;padding-block:20px;gap:16px}
.logo{font-family:var(--f-display);font-weight:800;font-size:22px;display:flex;align-items:center;gap:8px}
.logo i{display:inline-block;width:22px;height:16px;background:var(--stub);border-radius:3px;
  -webkit-mask:radial-gradient(circle at 0 50%,transparent 4px,#000 4.5px) left/51% 100% no-repeat,radial-gradient(circle at 100% 50%,transparent 4px,#000 4.5px) right/51% 100% no-repeat;
          mask:radial-gradient(circle at 0 50%,transparent 4px,#000 4.5px) left/51% 100% no-repeat,radial-gradient(circle at 100% 50%,transparent 4px,#000 4.5px) right/51% 100% no-repeat}

/* buttons */
.btn{border:0;border-radius:999px;padding:14px 22px;font-weight:600;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px}
.btn-primary{background:var(--cobalt);color:var(--on-cobalt)}
.btn-ghost{background:transparent;color:var(--ink);border:1.5px solid var(--line)}
.btn-sm{padding:9px 18px}
.btn[disabled]{opacity:.45;cursor:not-allowed}

/* hero */
.hero{display:grid;grid-template-columns:1.25fr 1fr;gap:48px;align-items:center;padding-block:40px 56px}
.hero h1{font-size:clamp(40px,6.4vw,76px);font-weight:800;letter-spacing:-.02em}
.hero h1 em{font-style:normal;background:var(--stub);color:var(--stub-ink);padding:0 .12em;border-radius:6px}
.hero p.lead{font-size:19px;color:var(--muted);max-width:52ch;margin-top:20px}
.cta-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.dot{width:8px;height:8px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 4px var(--ok-soft)}

.ticket{background:var(--surface);border-radius:14px;display:grid;grid-template-columns:1fr auto;
  box-shadow:0 1px 0 var(--line),0 24px 48px -24px rgba(20,26,51,.35);transform:rotate(-2deg)}
.ticket .main{padding:24px;border-right:2px dashed var(--line);min-width:0}
.ticket .stub{background:var(--stub);color:var(--stub-ink);padding:24px 18px;border-radius:0 14px 14px 0;display:flex;flex-direction:column;justify-content:space-between;align-items:center;font-family:var(--f-mono)}
.ticket .stub .price{font-family:var(--f-display);font-weight:800;font-size:30px;writing-mode:vertical-rl;transform:rotate(180deg)}
.ticket h3{font-size:22px;margin-top:8px}
.ticket dl{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin:18px 0 0;font-size:14px}
.ticket dt{color:var(--muted)}.ticket dd{margin:0;font-family:var(--f-mono);font-size:13px;overflow-wrap:anywhere}
.err{font-family:var(--f-mono);font-size:12px;background:var(--warn-soft);color:var(--warn);border-radius:6px;padding:8px 10px;margin-top:16px;overflow-x:auto;white-space:nowrap}
@media (max-width:860px){.hero{grid-template-columns:1fr}.ticket{transform:none}}

/* all marketplaces band */
.allmp{display:grid;grid-template-columns:1fr 1fr;gap:24px 48px;align-items:center;padding-block:28px;border-block:1px solid var(--line)}
.allmp h2{font-size:clamp(26px,3.4vw,38px);font-weight:800}
.allmp p{color:var(--muted);margin-top:8px;max-width:50ch}
.checker{display:grid;gap:8px}
.checker label{font-size:13px;font-weight:600}
.checker .row{display:flex;gap:8px}
.checker input{flex:1;min-width:0;font:inherit;padding:11px 12px;border-radius:10px;border:1.5px solid var(--line);background:var(--surface);color:var(--ink)}
.checker output{font-size:14px;color:var(--ok);font-weight:600;min-height:1.5em}
@media (max-width:760px){.allmp{grid-template-columns:1fr}}

section{padding-block:72px}
.sec-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:16px;margin-bottom:32px}
.sec-head h2{font-size:clamp(30px,4vw,46px);font-weight:800;letter-spacing:-.015em;max-width:18ch}
.sec-head p{color:var(--muted);max-width:44ch}

/* steps */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.step{padding:24px;border-top:3px solid var(--ink)}
.step .n{font-family:var(--f-mono);font-size:13px;color:var(--cobalt)}
.step h3{font-size:22px;margin:10px 0 8px}
.step p{color:var(--muted)}
@media (max-width:760px){.steps{grid-template-columns:1fr}}

/* composer */
.composer{background:var(--surface);border:2px solid var(--ink);border-radius:16px;padding:20px;display:grid;grid-template-columns:1fr 1fr;gap:14px 20px;margin-bottom:28px}
.stephead{display:flex;align-items:center;gap:10px}
.stephead + .sub{margin-top:-8px}
.stepn{flex:none;width:28px;height:28px;border-radius:50%;background:var(--ink);color:var(--bg);display:grid;place-items:center;font-family:var(--f-mono);font-size:13px;font-weight:600}
.shop-head{margin-bottom:14px}
.shop-head h3,.cart header h3{display:flex;align-items:center;gap:10px}
.cart header .stepn{background:var(--stub-ink);color:var(--stub)}
.composer .full{grid-column:1/-1}
.composer h3{font-size:22px}
.composer .sub{color:var(--muted);font-size:14px;margin-top:4px}
.composer label{font-size:13px;font-weight:600;display:grid;gap:6px}
.composer textarea,.composer input,.composer select{font:inherit;font-size:15px;padding:12px;border-radius:10px;border:1.5px solid var(--line);background:var(--bg);color:var(--ink);width:100%}
.composer textarea{min-height:110px;resize:vertical;line-height:1.5}
.composer .invalid{border-color:var(--warn)}
.counter{font-family:var(--f-mono);font-size:12px;color:var(--muted);text-align:right}
.composer .hint{font-size:13px;color:var(--muted)}
.composer .hint.warn{color:var(--warn);font-weight:600}
@media (max-width:760px){.composer{grid-template-columns:1fr}}

/* mission */
.mission-wrap{display:grid;grid-template-columns:1fr 1.4fr;gap:32px;align-items:start}
.mission-wrap .composer{margin-bottom:0}
.mission-points{display:grid;gap:14px;margin-top:20px}
.mission-points div{display:grid;grid-template-columns:28px 1fr;gap:10px;align-items:start}
.mission-points .stepn{width:24px;height:24px;font-size:12px}
.mission-points p{color:var(--muted)}.mission-points b{color:var(--ink)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.mission-ok{background:var(--ok-soft);color:var(--ok);border-radius:16px;padding:24px;font-weight:600}
@media (max-width:860px){.mission-wrap{grid-template-columns:1fr}}

/* catalogue */
.shop{display:grid;grid-template-columns:1fr 330px;gap:28px;align-items:start}
@media (max-width:960px){.shop{grid-template-columns:1fr}}
.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}
.chip{border:1.5px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:7px 14px;font-size:14px;font-weight:500}
.chip[aria-pressed="true"]{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}
.mod{background:var(--surface);border:1.5px solid var(--line);border-radius:12px;padding:18px;display:flex;flex-direction:column;gap:10px;min-width:0}
.mod.added{border-color:var(--cobalt);box-shadow:0 0 0 3px var(--cobalt-soft)}
.mod .top{display:flex;justify-content:space-between;gap:8px;align-items:start}
.tag{font-family:var(--f-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;background:var(--cobalt-soft);color:var(--cobalt);padding:3px 8px;border-radius:4px;white-space:nowrap}
.mod h3{font-family:var(--f-body);font-weight:600;font-size:17px;line-height:1.3}
.mod p{font-size:14px;color:var(--muted)}
.scope{display:grid;grid-template-columns:auto 1fr;gap:4px 10px;margin:0;font-size:13px;flex:1;align-content:start}
.scope dt{font-family:var(--f-mono);font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding-top:2px}
.scope dd{margin:0;min-width:0}
.scope dt:nth-of-type(2),.scope dt:nth-of-type(2)+dd{color:var(--muted)}
.tag-urgent{background:var(--warn-soft);color:var(--warn)}
.mod .meta{display:flex;justify-content:space-between;align-items:center;gap:8px;padding-top:10px;border-top:1px dashed var(--line)}
.mod .price{font-family:var(--f-display);font-weight:800;font-size:24px;font-variant-numeric:tabular-nums}
.mod .delay{font-family:var(--f-mono);font-size:12px;color:var(--muted)}
.add{border:0;border-radius:8px;padding:9px 14px;font-weight:600;background:var(--ink);color:var(--bg);font-size:14px}
.mod.added .add{background:var(--cobalt);color:var(--on-cobalt)}

/* cart */
.cart{background:var(--surface);border-radius:14px;border:1.5px solid var(--line);overflow:hidden}
.cart header{background:var(--stub);color:var(--stub-ink);padding:16px 18px;display:flex;justify-content:space-between;align-items:center}
.cart header h3{font-size:20px}
.cart header .eyebrow{color:var(--stub-ink)}
.cart .body{padding:16px 18px;display:flex;flex-direction:column;gap:12px}
.line{display:flex;justify-content:space-between;gap:10px;font-size:14px}
.line span:last-child{font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap}
.line button{border:0;background:none;color:var(--muted);padding:0 4px}
.empty{color:var(--muted);font-size:14px}
.total{display:flex;justify-content:space-between;align-items:baseline;border-top:2px dashed var(--line);padding-top:12px}
.total b{font-family:var(--f-display);font-size:28px;font-variant-numeric:tabular-nums}
.fine{font-size:12px;color:var(--muted)}

/* board */
.board-intro{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:18px;font-size:14px}
.rule{background:var(--surface);border:1.5px solid var(--line);border-radius:999px;padding:6px 12px;color:var(--ink)}
.board{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media (max-width:860px){.board{grid-template-columns:1fr}}
.col{background:var(--surface);border-radius:14px;padding:14px;border:1.5px solid var(--line);min-width:0}
.col h3{font-family:var(--f-body);font-size:14px;font-weight:600;display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.count{font-family:var(--f-mono);font-size:12px;background:var(--bg);border-radius:999px;padding:2px 8px}
.cards{display:flex;flex-direction:column;gap:10px;min-height:60px}
.card{border:1.5px solid var(--line);border-radius:10px;padding:12px;background:var(--bg);display:grid;gap:6px;min-width:0}
.card .id{font-family:var(--f-mono);font-size:12px;color:var(--muted);display:flex;justify-content:space-between;gap:8px}
.card b{font-weight:600;font-size:15px;line-height:1.3}
.card q{font-size:13px;color:var(--muted);quotes:"« " " »";overflow-wrap:anywhere}
.pill{font-family:var(--f-mono);font-size:11px;border-radius:999px;padding:2px 8px;justify-self:start}
.p-queue{background:var(--cobalt-soft);color:var(--cobalt)}
.p-quote{background:var(--stub);color:var(--stub-ink)}
.p-active{background:var(--warn-soft);color:var(--warn)}
.p-done{background:var(--ok-soft);color:var(--ok)}
.card.active{border-color:var(--warn)}
.card .acts{display:flex;gap:8px;margin-top:4px}
.card .acts button{border:1.5px solid var(--line);background:var(--surface);color:var(--ink);border-radius:6px;padding:4px 10px;font-size:12px}
.demo-note{font-family:var(--f-mono);font-size:12px;color:var(--muted);margin-top:14px}

/* monthly band: fixed dark navy in both themes so the text always reads */
.monthly{background:var(--band-bg);color:var(--band-fg);border-radius:20px;padding:40px;display:grid;grid-template-columns:1.3fr 1fr;gap:32px;align-items:center}
.monthly .kicker{font-family:var(--f-body);font-weight:700;font-size:16px;color:var(--stub);margin-bottom:10px}
.monthly h2{font-size:clamp(28px,3.6vw,42px);font-weight:800;color:var(--band-fg)}
.monthly p.txt{color:var(--band-muted);margin-top:12px;max-width:52ch}
.monthly ul{margin:16px 0 0;padding-left:18px;color:var(--band-fg);display:grid;gap:4px}
.monthly .acts{display:grid;gap:10px}
.btn-stub{background:var(--stub);color:var(--stub-ink)}
.btn-invert{background:transparent;color:var(--band-fg);border:1.5px solid var(--band-fg)}
.monthly .fine{color:var(--band-muted);text-align:center}
@media (max-width:760px){.monthly{grid-template-columns:1fr;padding:28px 20px}}

/* faq */
.faq{display:grid;grid-template-columns:repeat(2,1fr);gap:0 40px}
@media (max-width:760px){.faq{grid-template-columns:1fr}}
details{border-bottom:1px solid var(--line);padding-block:16px}
summary{font-weight:600;cursor:pointer;font-size:17px}
details p{color:var(--muted);margin-top:10px;max-width:60ch}

footer{padding-block:40px;border-top:1px solid var(--line);color:var(--muted);font-size:14px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px}
.toast{position:fixed;left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 20px);transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:12px 18px;border-radius:10px;font-weight:500;font-size:14px;z-index:9;max-width:calc(100% - 32px)}
@media (prefers-reduced-motion:no-preference){.mod,.card{transition:border-color .15s,box-shadow .15s}.timer i,.dots i{transition:width .4s,background .3s}}
img{max-width:100%}[hidden]{display:none!important}
.navright{display:flex;align-items:center;gap:10px}
.lang-switch{display:inline-flex;align-items:center;justify-content:center;padding:9px 12px;border:1.5px solid var(--line);border-radius:999px;background:transparent}
.lang-switch:hover{border-color:var(--ink)}
.lang-switch svg{display:block;width:22px;height:16px;border-radius:2px}
/* Footer legal links and legal pages (CGV, mentions légales, confidentialité) */
.legal-links{display:flex;flex-wrap:wrap;gap:6px 18px}
.legal-links a,.fine a{color:inherit;text-decoration:underline;text-underline-offset:3px}
.legal-links a:hover{color:var(--ink)}
.legal{max-width:760px;padding-block:24px 56px}
.legal h1{font-size:clamp(32px,6vw,48px);margin:8px 0 12px}
.legal .updated{color:var(--muted);font-size:14px;margin-bottom:28px}
.legal h2{font-size:22px;margin:36px 0 10px}
.legal h3{font-size:17px;margin:20px 0 6px}
.legal p,.legal li{color:var(--ink)}
.legal p+p{margin-top:10px}
.legal ul{padding-left:20px;margin:8px 0;display:grid;gap:6px}
.legal a{color:var(--cobalt)}
.legal .toc{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px 20px;margin-bottom:8px}
.legal .toc ol{margin:6px 0 0;padding-left:20px;columns:2 220px;column-gap:24px;font-size:15px}
.legal dl{display:grid;grid-template-columns:minmax(120px,max-content) 1fr;gap:6px 18px;margin:8px 0}
.legal dt{color:var(--muted)}
.legal dd{margin:0;overflow-wrap:anywhere}
.legal .note{background:var(--cobalt-soft);border-radius:10px;padding:12px 16px;margin-top:12px}
.legal .back{display:inline-block;margin-top:36px}
@media (max-width:520px){.legal dl{grid-template-columns:1fr}.legal dd{margin-bottom:8px}}
.video-sec{padding-block:56px 0}
.explainer{display:block;width:100%;max-width:100%;aspect-ratio:16/9;border-radius:16px;background:#000;box-shadow:0 24px 48px -24px rgba(20,26,51,.35)}
.paycol{display:grid;gap:16px;align-content:start;min-width:0}
.reassure{display:grid;gap:10px;border-top:1px dashed var(--line);padding-top:12px}
.reassure .secure{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--ok)}
.reassure .secure .ico{width:16px;height:16px;flex:none}
.paylogos{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.payfaq{background:var(--surface);border:1.5px solid var(--line);border-radius:14px;padding:6px 18px 10px}
.payfaq h3{font-family:var(--f-body);font-size:15px;font-weight:700;padding-block:12px 4px}
.payfaq details{padding-block:0;border-bottom:1px solid var(--line)}
.payfaq details:last-child{border-bottom:0}
.payfaq summary{list-style:none;display:grid;grid-template-columns:20px 1fr 14px;gap:10px;align-items:center;padding-block:12px;font-size:14px;font-weight:500}
.payfaq summary::-webkit-details-marker{display:none}
.payfaq summary::after{content:"";width:8px;height:8px;border-right:1.5px solid var(--muted);border-bottom:1.5px solid var(--muted);transform:rotate(45deg) translate(-2px,-2px);justify-self:end}
.payfaq details[open] summary::after{transform:rotate(-135deg) translate(-2px,-2px)}
.payfaq summary .ico{width:20px;height:20px;color:var(--muted)}
.payfaq details p{margin:0 0 12px 30px;font-size:13px;line-height:1.55;color:var(--muted);max-width:none}
.payfaq a{color:var(--cobalt)}
.paylogo{display:block}
.paylogo img{display:block;height:26px;width:auto}
.guarantee{display:flex;align-items:center;justify-content:center;gap:6px;margin:-4px 0 0;font-size:13px;font-weight:600;color:var(--ok);text-align:center}
.guarantee .ico{width:16px;height:16px;flex:none}
.trust{background:var(--surface);border:1.5px solid var(--line);border-radius:14px;padding:14px 18px;display:grid;gap:12px}
.trust .who{display:flex;align-items:center;gap:12px}
.trust .avatar{width:48px;height:48px;border-radius:50%;object-fit:cover;background:var(--stub);flex:none}
.trust .who p{margin:0;font-size:14px;line-height:1.35}
.trust .who span{display:block;font-size:12px;color:var(--muted);margin-top:2px}
.review{margin:0;padding-top:12px;border-top:1px dashed var(--line);display:grid;gap:4px}
.review .stars{margin:0;color:#E8A317;font-size:13px;letter-spacing:2px}
.review blockquote{margin:0;font-size:13px;line-height:1.5}
.review figcaption{font-size:12px;color:var(--muted)}
