/* FreeToolbox24 — design system « Wise » d'Open Design
   (/Users/simo/Projects/open-design-nexu/design-systems/wise : DESIGN.md + tokens.css).
   Accent vert unique sur fond blanc, titres poids 900 interligne serré, pilules, anneaux au lieu d'ombres. */
:root{
  --bg:#ffffff;--surface:#e8ebe6;--mint:#e2f6d5;--fg:#0e0f0c;--fg-2:#454745;--muted:#868685;
  --border:rgba(14,15,12,.12);--accent:#9fe870;--accent-on:#163300;--accent-hover:#cdffad;
  --success:#054d28;--warn:#ffd11a;--danger:#d03238;--orange:#ffc091;
  --font-display:"Wise Sans",Inter,ui-sans-serif,system-ui,sans-serif;
  --font-body:Inter,Helvetica,Arial,ui-sans-serif,sans-serif;
  --font-mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  --radius-xs:10px;--radius-sm:16px;--radius-md:30px;--radius-lg:40px;--radius-pill:9999px;
  --elev-ring:0 0 0 1px var(--border);--focus-ring:0 0 0 3px color-mix(in oklab,var(--accent),transparent 40%);
  --ease:cubic-bezier(.2,0,0,1)
}
*{box-sizing:border-box}
html{font-size:18px;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--font-body);line-height:1.44;letter-spacing:.01em;font-feature-settings:"calt"}
a{color:var(--fg);text-decoration-color:var(--accent);text-decoration-thickness:2px;text-underline-offset:3px}
a:hover{text-decoration-color:var(--fg)}
.wrap{max-width:1200px;margin:0 auto;padding:0 24px}
@media (max-width:576px){.wrap{padding:0 14px}html{font-size:17px}}

/* ─── En-tête ─── */
.top{position:sticky;top:0;z-index:10;background:rgba(255,255,255,.92);backdrop-filter:saturate(1.4) blur(10px);box-shadow:0 1px 0 var(--border)}
.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:68px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-family:var(--font-display);font-weight:900;font-size:1.25rem;letter-spacing:-.01em}
.brand svg{flex:none}
.top nav{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}
.top nav a{text-decoration:none;font-weight:600;font-size:.8rem;padding:7px 12px;border-radius:var(--radius-pill);color:var(--fg-2);transition:background var(--ease) .15s}
.top nav a:hover{background:rgba(211,242,192,.6);color:var(--fg)}
@media (max-width:992px){.top nav{display:none}}

/* ─── Boutons (pilule verte, grossit au survol) ─── */
.btn,button{font:600 1rem/1 var(--font-body);background:var(--accent);color:var(--accent-on);border:0;border-radius:var(--radius-pill);padding:14px 26px;cursor:pointer;transition:transform .15s var(--ease),background .15s var(--ease)}
.btn:hover,button:hover{transform:scale(1.05);background:var(--accent-hover)}
.btn:active,button:active{transform:scale(.95)}
button:focus-visible,.btn:focus-visible,a:focus-visible{outline:none;box-shadow:var(--focus-ring)}

/* ─── Titres ─── */
h1,h2,h3{font-family:var(--font-display);font-weight:900;line-height:.9;letter-spacing:-.02em;margin:0}
h1{font-size:clamp(2.4rem,6vw,4.4rem);margin:.25em 0 .3em}
h2{font-size:clamp(1.6rem,3vw,2.2rem);margin:1.8em 0 .6em}
h3{font-size:1.25rem;line-height:1.1;margin:1.4em 0 .5em;letter-spacing:-.01em}
.lead{font-size:1.15rem;color:var(--fg-2);max-width:760px;margin:0}
.crumbs{font-size:.8rem;font-weight:600;color:var(--muted);margin-top:28px}
.crumbs a{color:var(--muted);text-decoration:none}
.crumbs a:hover{color:var(--fg)}
.badge{display:inline-flex;align-items:center;gap:6px;background:var(--mint);color:var(--accent-on);font-weight:600;font-size:.75rem;padding:6px 12px;border-radius:var(--radius-pill)}

/* ─── Accueil ─── */
.hero{padding:56px 0 24px}
.hero h1{font-size:clamp(3rem,9vw,6.4rem);line-height:.85;max-width:11ch}
.hero h1 em{font-style:normal;background:var(--accent);color:var(--accent-on);padding:0 .12em;border-radius:.18em;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.search{position:relative;max-width:620px;margin:32px 0 8px}
.search input{width:100%;font:600 1.05rem var(--font-body);padding:18px 22px 18px 54px;border:0;border-radius:var(--radius-pill);background:var(--surface);color:var(--fg)}
.search input:focus{outline:none;box-shadow:var(--focus-ring);background:#fff}
.search svg{position:absolute;left:20px;top:50%;transform:translateY(-50%);color:var(--fg-2)}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 8px}
.chips a{display:inline-flex;align-items:center;gap:8px;text-decoration:none;font-weight:600;font-size:.82rem;padding:9px 14px;border-radius:var(--radius-pill);box-shadow:var(--elev-ring);transition:transform .15s var(--ease),background .15s}
.chips a:hover{transform:scale(1.05);background:var(--mint)}
.cat{scroll-margin-top:90px}
.cat-head{display:flex;align-items:center;gap:14px;margin:56px 0 18px}
.cat-head h2{margin:0}
.cat-ico{width:52px;height:52px;border-radius:50%;background:var(--mint);color:var(--accent-on);display:grid;place-items:center;flex:none}
.cards{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.cards a{display:flex;flex-direction:column;gap:8px;height:100%;padding:22px 22px 20px;border-radius:var(--radius-md);box-shadow:var(--elev-ring);text-decoration:none;transition:transform .15s var(--ease),box-shadow .15s}
.cards a:hover{transform:translateY(-3px);box-shadow:0 0 0 2px var(--accent)}
.cards strong{font-size:1.1rem;line-height:1.2;letter-spacing:-.01em}
.cards span{font-size:.85rem;color:var(--fg-2)}
.cards .go{margin-top:auto;font-style:normal;font-weight:600;font-size:.8rem;color:var(--success)}
.empty{display:none;padding:24px;border-radius:var(--radius-sm);background:var(--surface);font-weight:600}

/* ─── Outil ─── */
.tool{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:0;margin:32px 0 8px;border-radius:var(--radius-lg);box-shadow:var(--elev-ring);overflow:hidden;background:#fff}
@media (max-width:860px){.tool{grid-template-columns:1fr}}
#calc{padding:32px}
@media (max-width:576px){#calc{padding:22px}}
.units{display:inline-flex;padding:4px;background:var(--surface);border-radius:var(--radius-pill);margin-bottom:22px}
.units label{position:relative;cursor:pointer}
.units input{position:absolute;opacity:0;pointer-events:none}
.units span{display:block;font-weight:600;font-size:.85rem;padding:9px 18px;border-radius:var(--radius-pill);color:var(--fg-2);transition:background .15s,color .15s}
.units input:checked+span{background:#fff;color:var(--fg);box-shadow:var(--elev-ring)}
.units input:focus-visible+span{box-shadow:var(--focus-ring)}
.grid-in{display:grid;grid-template-columns:1fr 1fr;gap:16px 18px}
@media (max-width:576px){.grid-in{grid-template-columns:1fr}}
.row label{display:block;font-weight:600;font-size:.8rem;color:var(--fg-2);margin-bottom:6px}
.row small{display:block;color:var(--muted);font-size:.72rem;line-height:1.35;margin-top:6px}
.field{display:flex;align-items:center;background:var(--surface);border-radius:var(--radius-xs);transition:box-shadow .15s,background .15s}
.field:focus-within{background:#fff;box-shadow:inset 0 0 0 1px var(--muted),var(--focus-ring)}
.field input,.field select{flex:1;min-width:0;width:100%;font:600 1.05rem var(--font-body);color:var(--fg);background:transparent;border:0;padding:13px 14px;outline:none;appearance:none;-webkit-appearance:none}
.field select{cursor:pointer;padding-right:36px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23454745' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center}
.unit{padding-right:14px;color:var(--fg-2);font-weight:600;font-size:.85rem;white-space:nowrap}
.field input[aria-invalid=true]{color:var(--danger)}
.field:has(input[aria-invalid=true]){box-shadow:inset 0 0 0 2px var(--danger)}
#calc button{margin-top:24px;width:100%}
.results{background:var(--fg);color:#fff;padding:32px;display:flex;flex-direction:column;justify-content:flex-start}
@media (max-width:576px){.results{padding:24px}}
.res{display:flex;justify-content:space-between;align-items:baseline;gap:14px;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.12);font-size:.9rem}
.res span{color:rgba(255,255,255,.7);font-weight:600}
.res strong{font-weight:600;text-align:right}
.res.main{flex-direction:column;align-items:flex-start;gap:6px;padding:0 0 22px;margin-bottom:6px;border-bottom:1px solid rgba(255,255,255,.18)}
.res.main span{font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:var(--accent)}
.res.main strong{font-family:var(--font-display);font-weight:900;font-size:clamp(2.6rem,5vw,3.8rem);line-height:.9;letter-spacing:-.02em;color:var(--accent);text-align:left}
.res:last-child{border-bottom:0}
.err{color:var(--orange);font-size:.85rem;margin:.6em 0 0}
.note{margin-top:auto;padding-top:22px;font-size:.72rem;color:rgba(255,255,255,.55)}

/* ─── Contenu ─── */
.page{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:56px;align-items:start}
@media (max-width:992px){.page{grid-template-columns:1fr;gap:0}}
.content{max-width:760px}
.content p,.content li{color:var(--fg-2)}
.content strong{color:var(--fg)}
.content ul,.content ol{padding-left:1.2em}
.content li{margin:.35em 0}
.content table{width:100%;border-collapse:separate;border-spacing:0;margin:1.2em 0;font-size:.85rem;border-radius:var(--radius-sm);box-shadow:var(--elev-ring);overflow:hidden}
.content th{background:var(--surface);font-weight:600;text-align:left}
.content th,.content td{padding:11px 14px;border-bottom:1px solid var(--border);vertical-align:top}
.content tr:last-child td{border-bottom:0}
.content code{font-family:var(--font-mono);font-size:.85em;background:var(--surface);padding:2px 6px;border-radius:6px}
.formula{display:block;font-family:var(--font-mono);font-size:.88rem;line-height:1.5;background:var(--mint);color:var(--accent-on);padding:16px 20px;border-radius:var(--radius-sm);margin:1em 0;border-left:0}
.faq details{border-radius:var(--radius-sm);box-shadow:var(--elev-ring);margin-bottom:10px;transition:box-shadow .15s}
.faq details[open]{box-shadow:0 0 0 2px var(--accent)}
.faq summary{list-style:none;cursor:pointer;font-weight:600;padding:16px 50px 16px 20px;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:20px;top:50%;transform:translateY(-50%);font-size:1.4rem;font-weight:400;color:var(--fg-2)}
.faq details[open] summary::after{content:"–"}
.faq details p{margin:0;padding:0 20px 18px}
.side{position:sticky;top:96px;margin-top:64px}
.side h2{font-size:1.1rem;line-height:1.1;margin:0 0 12px}
.side ul{list-style:none;padding:0;margin:0 0 24px;display:grid;gap:8px}
.side a{display:block;text-decoration:none;font-weight:600;font-size:.85rem;padding:12px 16px;border-radius:var(--radius-sm);box-shadow:var(--elev-ring);transition:box-shadow .15s}
.side a:hover{box-shadow:0 0 0 2px var(--accent)}
.updated{font-size:.75rem;color:var(--muted);margin:40px 0 0}
@media (max-width:992px){.side{position:static;margin-top:40px}}

/* ─── Pied de page ─── */
.foot{margin-top:96px;background:var(--fg);color:rgba(255,255,255,.7);font-size:.8rem}
.foot .wrap{display:grid;grid-template-columns:1.3fr 1fr;gap:32px;padding-top:48px;padding-bottom:48px}
@media (max-width:760px){.foot .wrap{grid-template-columns:1fr}}
.foot .brand{color:#fff;margin-bottom:10px}
.foot a{color:#fff}
.foot p{margin:.4em 0}
/* retouches après revue visuelle */
.hero h1{line-height:.95}
.tool-page h1{font-size:clamp(2.1rem,4.4vw,3.4rem);max-width:22ch}
.row:has(select){grid-column:1/-1}
.side a span,.cards .go{white-space:nowrap}
