:root{--ink:#0E1630;--bg:#F5F6FA;--card:#fff;--line:#E3E6EF;--muted:#5B6480;--accent:#1A3FD8;--accent-d:#0E2A9E;--soft:#EEF2FF;--warn:#8A4B00;--warn-bg:#FFF3DC;--ok:#0B6B3A;--ok-bg:#E9FBF1}
*{box-sizing:border-box}
body{margin:0;font-family:'IBM Plex Sans',system-ui,sans-serif;color:var(--ink);background:var(--bg);line-height:1.5}
a{color:var(--accent)}a:hover{color:var(--accent-d)}
h1,h2,h3,.brand{font-family:'Space Grotesk',system-ui,sans-serif;letter-spacing:-.01em}
.wrap{max-width:1240px;margin:0 auto;padding:0 20px}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 18px;border-radius:10px;font-weight:600;text-decoration:none;border:1px solid transparent;cursor:pointer;font:inherit;font-weight:600}
.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-d);color:#fff}
.btn-ghost{border-color:#C9CEDD;color:var(--ink);background:#fff}
.btn-dark{background:var(--ink);color:#fff}
.btn-sm{min-height:36px;padding:6px 12px;font-size:14px}
header.top{background:#fff;border-bottom:1px solid var(--line)}
header.top .wrap{display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:space-between;padding-top:14px;padding-bottom:14px}
.brand{display:flex;gap:10px;align-items:center;text-decoration:none;color:var(--ink);font-weight:700;font-size:21px}
.brand .logo{width:36px;height:36px;border-radius:10px;background:var(--ink);color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px}
.brand em{font-style:normal;color:var(--accent)}
nav.main{display:flex;flex-wrap:wrap;gap:22px}nav.main a{color:#3A4360;text-decoration:none;font-weight:500}
.actions{display:flex;gap:10px;flex-wrap:wrap}
.hero{background:var(--ink);color:#fff}
.hero .wrap{display:flex;flex-wrap:wrap;gap:48px;align-items:center;padding-top:72px;padding-bottom:80px}
.hero h1{font-size:clamp(34px,5vw,56px);line-height:1.05;margin:0}
.eyebrow{display:inline-block;padding:6px 12px;border-radius:999px;background:#1C2748;color:#B9C4FF;font-size:13px;font-weight:600;letter-spacing:.04em;margin:0 0 18px}
.hero p.lead{font-size:19px;color:#C7CDE0;max-width:560px}
.hero form{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px;max-width:560px}
.hero input{flex:1 1 260px;min-width:0;height:52px;padding:0 16px;border-radius:12px;border:1px solid #34406A;background:#141E3C;color:#fff;font:inherit;font-size:16px}
.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:22px}
.hero .card{color:var(--ink);flex:1 1 420px;min-width:0;box-shadow:0 30px 60px rgba(0,0,0,.35)}
.hero .left{flex:1 1 480px;min-width:0}
.tag{display:inline-block;min-width:60px;text-align:center;padding:5px 8px;border-radius:8px;background:var(--soft);color:var(--accent);font-size:12px;font-weight:600}
.due{font-size:13px;font-weight:600;color:var(--warn);background:var(--warn-bg);padding:4px 9px;border-radius:8px;white-space:nowrap}
.row{display:flex;gap:14px;align-items:flex-start;padding:12px 0;border-top:1px solid #ECEEF4}
.row .t{flex:1 1 auto;min-width:0}.row .t b{display:block;font-size:15px;line-height:1.35}.row .t small{color:var(--muted)}
section{padding:72px 0}
section h2{font-size:clamp(28px,3.4vw,40px);margin:0}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;margin-top:36px}
.muted{color:var(--muted)}
.sources{background:#fff;border-bottom:1px solid var(--line);padding:28px 0}
.sources .wrap{display:flex;flex-wrap:wrap;gap:12px 30px;align-items:center}
.sources span{font-family:'Space Grotesk',system-ui,sans-serif;font-weight:600;font-size:17px;color:#2A3352}
.price{font-family:'Space Grotesk',system-ui,sans-serif;font-size:44px;font-weight:700}
.plan{display:flex;flex-direction:column;gap:14px;position:relative}
.plan.best{border:2px solid var(--accent)}
.plan .badge{position:absolute;top:-13px;inset-inline-start:24px;background:var(--accent);color:#fff;padding:4px 12px;border-radius:999px;font-size:13px;font-weight:600}
.plan ul{margin:0;padding-inline-start:20px;line-height:1.9}
.plan .btn{margin-top:auto}
footer{background:#fff;border-top:1px solid var(--line);padding:32px 0;color:var(--muted);font-size:14px}
footer .wrap{display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between}
.form{max-width:480px;margin:48px auto}
label{display:block;font-weight:600;font-size:14px;margin:14px 0 6px}
input[type=text],input[type=email],input[type=password],input[type=search],input[type=date],select,textarea{width:100%;min-height:44px;padding:8px 12px;border-radius:10px;border:1px solid #C9CEDD;font:inherit;font-size:15px;background:#fff}
.err{background:#FDECEC;color:#8B1A1A;padding:10px 14px;border-radius:10px}
.flash{background:var(--ok-bg);color:var(--ok);padding:10px 14px;border-radius:10px;margin:16px 0}
.app-head{background:var(--ink);color:#fff}
.app-head .wrap{display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:space-between;padding-top:12px;padding-bottom:12px}
.app-head .brand{color:#fff}.app-head .brand .logo{background:#fff;color:var(--ink)}
.app-head nav a{color:#C7CDE0;text-decoration:none;padding:8px 12px;border-radius:9px}
.app-head nav a.on{background:#1C2748;color:#fff;font-weight:600}
.layout{display:flex;flex-wrap:wrap;gap:22px;align-items:flex-start;padding:24px 0}
.layout aside{flex:1 1 250px;max-width:300px}
.layout main{flex:999 1 520px;min-width:0;display:flex;flex-direction:column;gap:12px}
.item{display:flex;flex-wrap:wrap;gap:12px 18px;align-items:center}
.item .t{flex:1 1 300px;min-width:0}.item h3{margin:0;font-size:16px;font-family:'IBM Plex Sans',system-ui,sans-serif;line-height:1.35}
.item h3 a{color:var(--ink);text-decoration:none}.item h3 a:hover{text-decoration:underline}
.item p{margin:4px 0 0;font-size:14px;color:var(--muted)}
.star{width:44px;height:44px;border-radius:10px;border:1px solid #C9CEDD;background:#fff;color:#9AA2BC;cursor:pointer;font-size:20px}
.star.on{background:var(--warn-bg);color:#C27500}
.pills{display:flex;flex-wrap:wrap;gap:8px}
.pill{min-height:36px;padding:6px 12px;border-radius:999px;border:1px solid #C9CEDD;background:#fff;color:#2A3352;text-decoration:none;font-weight:600;font-size:14px}
.pill.on{background:var(--accent);border-color:var(--accent);color:#fff}
.banner{background:var(--soft);border-radius:12px;padding:12px 16px;font-size:14px}
.countries{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:4px 12px;max-height:340px;overflow:auto;border:1px solid var(--line);border-radius:10px;padding:10px}
.countries label{font-weight:400;margin:0;display:flex;gap:8px;align-items:center}
table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:start;padding:8px;border-bottom:1px solid var(--line);vertical-align:top}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
@media(max-width:640px){.layout aside{max-width:none}section{padding:48px 0}}
.step{width:36px;height:36px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-family:'Space Grotesk',system-ui,sans-serif;margin-bottom:12px}
.card h3{margin:14px 0 8px;font-size:19px}
details summary{list-style-position:outside}

/* --- v2 : langues --- */
.dl{text-align:end}
.langsel{position:relative}
.langsel summary{list-style:none;display:flex;gap:6px;align-items:center;min-height:44px;padding:8px 12px;border:1px solid #C9CEDD;border-radius:10px;background:#fff;color:var(--ink);cursor:pointer;font-weight:600;font-size:14px}
.langsel summary::-webkit-details-marker{display:none}
.app-head .langsel summary{background:#1C2748;border-color:#34406A;color:#fff}
.langmenu{position:absolute;inset-inline-end:0;top:calc(100% + 6px);z-index:20;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 30px rgba(14,22,48,.15);padding:6px;display:grid;grid-template-columns:repeat(2,minmax(120px,1fr));gap:2px;min-width:260px}
.langmenu a{padding:9px 12px;border-radius:8px;color:var(--ink);text-decoration:none;font-weight:500}
.langmenu a:hover,.langmenu a[aria-current]{background:var(--soft);color:var(--accent)}
.markets{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-top:16px}
.mkt{display:flex;flex-direction:column;gap:2px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--ink);text-decoration:none}
.mkt b{font-size:17px}.mkt small{color:var(--muted)}
.mkt:hover{border-color:var(--accent)}.mkt.on{border:2px solid var(--accent);background:var(--soft)}
.lang-badge{display:inline-block;padding:1px 7px;border-radius:6px;background:#EEF0F6;color:#3A4360;font-size:12px;font-weight:600}
.langs-foot{display:flex;flex-wrap:wrap;gap:4px 12px;flex-basis:100%}
.langs-foot a{color:var(--muted);text-decoration:none}.langs-foot a[aria-current]{color:var(--ink);font-weight:600}
[dir=rtl] body,[dir=rtl] .item h3,body:lang(ar){font-family:'IBM Plex Sans Arabic','IBM Plex Sans',system-ui,sans-serif}
[dir=rtl] h1,[dir=rtl] h2,[dir=rtl] h3,[dir=rtl] .brand{font-family:'IBM Plex Sans Arabic','Space Grotesk',system-ui,sans-serif;letter-spacing:0}
:lang(zh),:lang(ja),:lang(ko){letter-spacing:0}
@media(max-width:640px){.langmenu{inset-inline-end:auto;inset-inline-start:0}}
