/* Clasificat — stiluri site (public + ghid + unelte). Aplicația are propriul styles.css în /app/. */
@font-face { font-family: "Manrope"; font-style: normal; font-weight: 500 800; font-display: swap; src: url(/fonts/manrope-latin-ext.woff2) format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Manrope"; font-style: normal; font-weight: 500 800; font-display: swap; src: url(/fonts/manrope-latin.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

:root {
  --bg: #f7f6f2; --panel: #fff; --ink: #172420; --muted: #5f6b66; --line: #e2e0d8; --line-2: #ccd6d1;
  --accent: #1f5f4a; --accent-2: #17503e; --accent-soft: #e4f1ea; --accent-ink: #fff;
  --deep: #10332a; --deep-2: #0b261f; --gold: #d9a441;
  --warn-bg: #fff4e0; --warn: #8a5300; --err-bg: #fde8e6; --err: #9b2a20;
  --r: 14px; --r-s: 9px; --shadow: 0 1px 2px rgba(23,36,32,.05), 0 8px 24px -12px rgba(23,36,32,.18);
  --font: "Manrope", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
html, body { margin: 0; background: var(--bg); color: var(--ink); font: 500 17px/1.6 var(--font); -webkit-font-smoothing: antialiased; }
a { color: var(--accent); text-underline-offset: 2px; }
strong { font-weight: 700; }
h1, h2, h3 { letter-spacing: -.015em; font-weight: 800; }

/* ---------- header ---------- */
.top { position: sticky; top: 0; z-index: 20; display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 12px 24px; background: rgba(255,255,255,.92); backdrop-filter: saturate(160%) blur(8px); border-bottom: 1px solid var(--line); flex-wrap: wrap; }
.top .brand { display: inline-flex; align-items: center; gap: 9px; font-weight: 800; font-size: 19px; text-decoration: none; color: var(--ink); letter-spacing: -.01em; }
.top .brand img { border-radius: 6px; width: 26px; height: 26px; }
.top nav { display: flex; gap: 22px; align-items: center; flex-wrap: wrap; }
.top nav a { text-decoration: none; color: var(--ink); font-weight: 600; font-size: 15.5px; }
.top nav a:hover { color: var(--accent); }
.top nav a.cur { color: var(--accent); }
.top nav a.cta, .top nav a.cta:hover { background: var(--accent); color: var(--accent-ink); padding: 9px 16px; border-radius: 999px; font-weight: 700; transition: background .15s; }
.top nav a.cta:hover { background: var(--accent-2); }

/* ---------- generic layout ---------- */
.wrap { max-width: 1040px; margin: 0 auto; padding: 36px 24px 24px; }
.wrap.two { display: grid; grid-template-columns: 250px 1fr; gap: 40px; align-items: start; }
@media (max-width: 800px) { .wrap.two { grid-template-columns: 1fr; gap: 20px; } aside { order: 2; } }
aside { position: sticky; top: 76px; }
@media (max-width: 800px) { aside { position: static; } }
aside h3 { margin: 0 0 8px; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); font-weight: 700; }
.toc { list-style: none; padding: 6px 0; margin: 0 0 10px; font-size: 14.5px; background: var(--panel); border: 1px solid var(--line); border-radius: var(--r); }
.toc li { padding: 0; position: relative; }
.toc a { display: block; padding: 9px 30px 9px 14px; text-decoration: none; color: var(--ink); border-left: 3px solid transparent; line-height: 1.35; }
.toc a:hover { background: var(--bg); }
.toc a.cur { color: var(--accent); font-weight: 700; border-left-color: var(--accent); background: var(--accent-soft); }
.toc li .lock { position: absolute; right: 12px; top: 12px; }
.lock { color: var(--gold); font-size: 10px; }
.muted { color: var(--muted); }
.small { font-size: 14px; }
.lead { font-size: 19.5px; line-height: 1.5; color: var(--muted); font-weight: 500; }
.prose .meta { font-size: 14px; color: var(--muted); margin: -2px 0 16px; }
.prose .meta time { font-weight: 700; color: var(--ink); }
.answer { background: var(--accent-soft); border-left: 4px solid var(--accent); border-radius: var(--r-s); padding: 14px 18px; margin: 0 0 22px; }
.answer h2, .answer h3 { margin: 0 0 6px; font-size: 14px; letter-spacing: .1em; text-transform: uppercase; color: var(--accent-2); }
.answer ul, .answer ol { margin: 0; padding-left: 20px; }
.answer p:last-child { margin: 0; }

/* ---------- prose (ghid, pagini libere) ---------- */
.prose { max-width: 760px; }
.prose h1 { font-size: 36px; line-height: 1.15; margin: 0 0 14px; }
.prose h1::after { content: ""; display: block; width: 56px; height: 4px; border-radius: 2px; background: var(--accent); margin-top: 16px; }
.prose h2 { font-size: 23px; margin: 34px 0 10px; line-height: 1.25; }
.prose h3 { font-size: 18px; margin: 22px 0 6px; }
.prose p { margin: 0 0 14px; }
.prose ul, .prose ol { padding-left: 24px; margin: 0 0 14px; }
.prose li { margin: 5px 0; }
.prose li::marker { color: var(--accent); font-weight: 700; }
.prose blockquote { margin: 0 0 16px; padding: 12px 16px; background: var(--warn-bg); color: var(--warn); border-radius: var(--r-s); border-left: 4px solid var(--warn); }
.prose table { width: 100%; border-collapse: separate; border-spacing: 0; margin: 10px 0 20px; font-size: 15px; background: var(--panel); border: 1px solid var(--line); border-radius: var(--r-s); overflow: hidden; }
.prose th, .prose td { border-bottom: 1px solid var(--line); padding: 9px 12px; text-align: left; vertical-align: top; }
.prose tr:last-child td { border-bottom: 0; }
.prose th { background: var(--accent-soft); color: var(--accent-2); font-weight: 700; font-size: 13.5px; letter-spacing: .02em; }
.prose td.c, .prose th.c { text-align: center; }
.prose code { background: #ecebe4; padding: 1px 6px; border-radius: 5px; font-size: 14px; }
.pages { list-style: none; padding: 0; margin: 0; counter-reset: pg; display: grid; gap: 10px; }
.pages li { counter-increment: pg; background: var(--panel); border: 1px solid var(--line); border-radius: var(--r); padding: 14px 18px 14px 58px; position: relative; margin: 0; }
.pages li::before { content: counter(pg); position: absolute; left: 16px; top: 15px; width: 28px; height: 28px; border-radius: 50%; background: var(--accent-soft); color: var(--accent); font-weight: 800; font-size: 14px; display: flex; align-items: center; justify-content: center; }
.pages li a { font-weight: 700; text-decoration: none; }
.pages li a:hover { text-decoration: underline; }
.tag { font-size: 12px; padding: 2px 9px; border-radius: 999px; background: var(--accent-soft); color: var(--accent); vertical-align: middle; font-weight: 700; }
.tag.lock { background: #fbf1dc; color: #7a5a17; }
body.locked main.prose > *:not(h1) { filter: blur(6px); pointer-events: none; user-select: none; }

/* ---------- footer ---------- */
.foot { background: var(--deep); color: #cfe0d8; margin-top: 56px; font-size: 14.5px; }
.foot a { color: #fff; }
.foot-in { max-width: 1040px; margin: 0 auto; padding: 36px 24px 30px; display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 28px; }
@media (max-width: 700px) { .foot-in { grid-template-columns: 1fr; gap: 18px; } }
.foot-brand { color: #fff; font-weight: 800; font-size: 18px; display: flex; flex-direction: column; gap: 6px; }
.foot-brand span { display: inline-flex; align-items: center; gap: 8px; }
.foot-brand img { border-radius: 6px; }
.foot-brand p { margin: 0; color: #a9c3b8; font-weight: 500; font-size: 14.5px; max-width: 300px; }
.foot-links { display: flex; flex-direction: column; gap: 6px; }
.foot-links a { text-decoration: none; }
.foot-links a:hover { text-decoration: underline; }
.foot-links b, .foot-co b { display: block; color: #a9c3b8; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; margin-bottom: 4px; }
.foot-co { line-height: 1.7; }

/* ---------- buttons ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; background: var(--accent); color: var(--accent-ink); text-decoration: none; padding: 13px 24px; border-radius: 999px; font-weight: 700; font-size: 16.5px; border: 1px solid transparent; transition: background .15s, transform .15s; }
.btn:hover { background: var(--accent-2); transform: translateY(-1px); }
.btn.soon { background: #6f766f; }
.btn.ghost { background: transparent; color: var(--accent); border-color: var(--accent); }
.btn.ghost:hover { background: var(--accent-soft); }
.btn.light { background: #fff; color: var(--accent-2); }
.btn.lg { padding: 17px 30px; font-size: 18.5px; box-shadow: 0 10px 30px -10px rgba(0,0,0,.5); }
.btn .arr { font-weight: 800; transition: transform .15s; }
.btn:hover .arr { transform: translateX(3px); }
@media (max-width: 600px) { .hero .actions { flex-direction: column; align-items: stretch; } .hero .actions .btn { width: 100%; } }
.btn.light:hover { background: #eef5f1; }
.btn.ghost.onDark { color: #fff; border-color: rgba(255,255,255,.45); }
.btn.ghost.onDark:hover { background: rgba(255,255,255,.1); }

/* ---------- landing: hero ---------- */
.hero { background: radial-gradient(900px 400px at 85% -10%, rgba(217,164,65,.22), transparent 60%), linear-gradient(160deg, var(--deep) 0%, var(--deep-2) 100%); color: #fff; padding: 64px 24px 56px; }
.hero-in { max-width: 1040px; margin: 0 auto; display: grid; grid-template-columns: 1.15fr .85fr; gap: 48px; align-items: center; }
.eyebrow { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #cfe0d8; margin-bottom: 18px; }
.eyebrow::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--gold); }
.hero h1 { font-size: 46px; line-height: 1.1; margin: 0 0 18px; color: #fff; }
.hero h1 em { font-style: normal; color: #ffd98a; }
.hero p { font-size: 19px; line-height: 1.55; color: #d6e4dd; max-width: 560px; margin: 0 0 26px; }
.hero .actions { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; }
.hero .sub { font-size: 14px; color: #a9c3b8; margin-top: 16px; }
.hero .sub b { color: #fff; font-weight: 700; }
/* mockup de documente, doar CSS */
.hero-art { position: relative; height: 370px; }
.doc-card { position: absolute; width: 270px; background: #fff; color: var(--ink); border-radius: 12px; padding: 16px 18px 18px; box-shadow: 0 30px 50px -20px rgba(0,0,0,.55), 0 2px 6px rgba(0,0,0,.2); }
.doc-card strong { display: block; font-size: 16px; margin: 6px 0 2px; }
.doc-card em { display: block; font-style: normal; font-size: 12.5px; color: var(--muted); margin-bottom: 12px; }
.doc-card i { display: block; height: 7px; border-radius: 4px; background: #e8e7e0; margin: 7px 0; }
.doc-card i:nth-child(odd) { width: 78%; }
.doc-tag { display: inline-block; font-size: 11px; font-weight: 800; letter-spacing: .08em; background: #eef0ec; color: var(--muted); padding: 2px 8px; border-radius: 999px; }
.doc-tag.ok { background: var(--accent-soft); color: var(--accent); }
.doc-card.d1 { left: 0; top: 0; transform: rotate(-5deg); z-index: 1; }
.doc-card.d2 { left: 110px; top: 118px; transform: rotate(3deg); z-index: 2; }
.doc-card.d3 { left: 30px; top: 232px; transform: rotate(-2deg); z-index: 3; }
.doc-card.d3 .chk { position: absolute; right: -14px; top: -14px; width: 44px; height: 44px; border-radius: 50%; background: var(--gold); color: var(--deep); font-size: 22px; font-weight: 800; display: flex; align-items: center; justify-content: center; box-shadow: 0 6px 16px rgba(0,0,0,.3); }
@media (max-width: 900px) { .hero-in { grid-template-columns: 1fr; gap: 28px; } .hero-art { height: 400px; max-width: 380px; } .hero h1 { font-size: 36px; } }
@media (max-width: 600px) { .hero { padding: 40px 16px 36px; } .hero h1 { font-size: 31px; } .hero p { font-size: 17px; } .hero-art { height: 395px; } .doc-card { width: 230px; } .doc-card.d2 { left: 60px; } }

/* ---------- landing: stats band ---------- */
.stats { max-width: 1040px; margin: -28px auto 0; padding: 0 24px; position: relative; z-index: 2; }
.stats-in { background: var(--panel); border: 1px solid var(--line); border-radius: var(--r); box-shadow: var(--shadow); display: grid; grid-template-columns: repeat(4, 1fr); }
.stats-in div { padding: 18px 20px; border-right: 1px solid var(--line); }
.stats-in div:last-child { border-right: 0; }
.stats-in b { display: block; font-size: 26px; font-weight: 800; color: var(--accent); letter-spacing: -.02em; line-height: 1.1; }
.stats-in b + span { font-size: 13.5px; color: var(--muted); }
@media (max-width: 760px) { .stats-in { grid-template-columns: 1fr 1fr; } .stats-in div:nth-child(2) { border-right: 0; } .stats-in div:nth-child(-n+2) { border-bottom: 1px solid var(--line); } }

/* ---------- landing: sections ---------- */
section.block { max-width: 1040px; margin: 0 auto; padding: 44px 24px 8px; }
section.block h2 { font-size: 30px; margin: 0 0 8px; line-height: 1.2; }
section.block .intro { color: var(--muted); margin: 0 0 22px; max-width: 640px; font-size: 17px; }
.status { display: flex; gap: 14px; align-items: flex-start; background: var(--warn-bg); color: var(--warn); border: 1px solid #f2dcb2; border-radius: var(--r); padding: 16px 18px; font-size: 15.5px; }
.status svg { flex: 0 0 22px; margin-top: 2px; }
.status a { color: inherit; font-weight: 700; }
.cards { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
@media (min-width: 861px) { .cards.three { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 981px) { .cards.four { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 560px) { .cards { grid-template-columns: 1fr; } }
.card { background: var(--panel); border: 1px solid var(--line); border-radius: var(--r); padding: 22px 20px 20px; box-shadow: var(--shadow); transition: transform .15s, border-color .15s; }
.card:hover { transform: translateY(-2px); border-color: var(--line-2); }
.card .ico { width: 44px; height: 44px; border-radius: 12px; background: var(--accent-soft); color: var(--accent); display: flex; align-items: center; justify-content: center; margin-bottom: 14px; }
.card h3 { margin: 0 0 8px; font-size: 17.5px; line-height: 1.3; }
.card h3 a { text-decoration: none; color: var(--ink); }
.card h3 a:hover { color: var(--accent); }
.card p { margin: 0; color: var(--muted); font-size: 15px; line-height: 1.55; }
.card .more { display: inline-block; margin-top: 12px; font-weight: 700; font-size: 14.5px; text-decoration: none; }
.steps3 { counter-reset: s; display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 16px; }
.steps3 div { background: var(--panel); border: 1px solid var(--line); border-radius: var(--r); padding: 22px 20px 20px 70px; position: relative; font-size: 15.5px; color: var(--muted); box-shadow: var(--shadow); }
.steps3 div strong { display: block; color: var(--ink); font-size: 17px; margin-bottom: 6px; }
.steps3 div::before { counter-increment: s; content: counter(s); position: absolute; left: 20px; top: 20px; width: 36px; height: 36px; border-radius: 50%; background: var(--accent); color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 17px; }
.pricing { display: grid; grid-template-columns: 380px 1fr; gap: 24px; align-items: start; }
@media (max-width: 860px) { .pricing { grid-template-columns: 1fr; } }
.price { background: var(--deep); color: #fff; border-radius: var(--r); padding: 28px 26px 26px; position: relative; overflow: hidden; }
.price::after { content: ""; position: absolute; right: -60px; top: -60px; width: 200px; height: 200px; border-radius: 50%; background: rgba(217,164,65,.18); }
.price .big { font-size: 48px; font-weight: 800; letter-spacing: -.03em; line-height: 1; }
.price .big small { font-size: 16px; font-weight: 600; color: #a9c3b8; letter-spacing: 0; margin-left: 6px; }
.price .muted { color: #a9c3b8; margin: 8px 0 18px; }
.price ul { list-style: none; padding: 0; margin: 0 0 22px; color: #e3eee8; font-size: 15.5px; }
.price li { padding: 6px 0 6px 28px; position: relative; border-top: 1px solid rgba(255,255,255,.08); }
.price li::before { content: "✓"; position: absolute; left: 4px; color: var(--gold); font-weight: 800; }
.price .btn { width: 100%; position: relative; }
.compare { width: 100%; border-collapse: separate; border-spacing: 0; background: var(--panel); font-size: 15px; border: 1px solid var(--line); border-radius: var(--r); overflow: hidden; }
.compare th, .compare td { border-bottom: 1px solid var(--line); padding: 11px 14px; text-align: left; vertical-align: top; }
.compare tr:last-child td { border-bottom: 0; }
.compare th { background: #f2f1ec; font-size: 13.5px; font-weight: 700; }
.compare td:first-child { color: var(--muted); font-weight: 600; }
.compare th:last-child, .compare td:last-child { background: var(--accent-soft); color: var(--accent-2); font-weight: 700; }
.compare th:last-child { background: var(--accent); color: #fff; }
.faq details { background: var(--panel); border: 1px solid var(--line); border-radius: var(--r-s); padding: 12px 18px; margin: 10px 0; }
.faq details[open] { border-color: var(--line-2); }
.faq summary { cursor: pointer; font-weight: 700; list-style: none; position: relative; padding-right: 30px; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; position: absolute; right: 0; top: -2px; font-size: 22px; color: var(--accent); font-weight: 600; }
.faq details[open] summary::after { content: "–"; }
.faq p { margin: 10px 0 4px; color: var(--muted); }
.honest { background: var(--panel); border: 1px solid var(--line); border-left: 5px solid var(--accent); padding: 18px 22px; border-radius: var(--r); }
.honest p { margin: 0; }
.linklist { list-style: none; padding: 0; margin: 18px 0 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 8px 24px; }
.linklist li { padding: 10px 0 10px 26px; border-bottom: 1px solid var(--line); position: relative; }
.linklist li::before { content: "→"; position: absolute; left: 0; color: var(--accent); font-weight: 800; }
.linklist a { text-decoration: none; font-weight: 600; color: var(--ink); }
.linklist a:hover { color: var(--accent); }
.cta-band { background: var(--accent); color: #fff; border-radius: var(--r); padding: 34px 32px; display: flex; justify-content: space-between; align-items: center; gap: 24px; flex-wrap: wrap; margin-top: 44px; }
.cta-band h2 { margin: 0 0 6px; font-size: 26px; }
.cta-band p { margin: 0; color: #d6e4dd; }
/* ---------- eligibility check ---------- */
section[id], .prose h2[id] { scroll-margin-top: 80px; }
.elig { background: var(--panel); border: 1px solid var(--line); border-radius: var(--r); padding: 8px 22px 22px; box-shadow: var(--shadow); max-width: 760px; }
.elig-q { border: 0; border-bottom: 1px solid var(--line); margin: 0; padding: 18px 0 16px; }
.elig-q:last-of-type { border-bottom: 0; }
.elig-q legend { font-weight: 700; font-size: 17px; padding: 0; display: flex; gap: 10px; align-items: flex-start; line-height: 1.35; float: left; width: 100%; margin-bottom: 4px; }
.elig-q legend .n { flex: 0 0 26px; height: 26px; border-radius: 50%; background: var(--accent); color: #fff; font-size: 13px; font-weight: 800; display: inline-flex; align-items: center; justify-content: center; margin-top: 1px; }
.elig-q .hint { clear: both; margin: 0 0 10px 36px; font-size: 14px; color: var(--muted); }
.elig-q .opts { display: flex; flex-wrap: wrap; gap: 8px; margin-left: 36px; }
.elig-q label { position: relative; cursor: pointer; }
.elig-q input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.elig-q label span { display: inline-block; padding: 9px 14px; border: 1.5px solid var(--line-2); border-radius: 999px; font-size: 15px; font-weight: 600; background: #fff; transition: background .12s, border-color .12s, color .12s; line-height: 1.3; }
.elig-q label:hover span { border-color: var(--accent); }
.elig-q input:checked + span { background: var(--accent); border-color: var(--accent); color: #fff; }
.elig-q input:focus-visible + span { outline: 2px solid var(--gold); outline-offset: 2px; }
.elig-v { margin-top: 18px; border-radius: var(--r-s); padding: 16px 18px; border-left: 5px solid; }
.elig-v strong { display: block; font-size: 19px; margin-bottom: 4px; }
.elig-v p { margin: 0 0 10px; font-size: 15.5px; }
.elig-v.ok { background: var(--accent-soft); border-color: var(--accent); color: var(--accent-2); }
.elig-v.warn { background: var(--warn-bg); border-color: var(--warn); color: var(--warn); }
.elig-v.stop { background: var(--err-bg); border-color: var(--err); color: var(--err); }
.elig-v .links { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; margin: 14px 0 4px; }
.elig-v .links a { display: inline-block; padding: 7px 13px; border-radius: 999px; background: #fff; border: 1px solid rgba(0,0,0,.12); color: inherit; font-weight: 700; font-size: 14px; text-decoration: none; }
/* butonul de kit = acțiunea principală a verdictului (cerere Iulia, 24.09.2026): mărimea butonului mare din hero */
.elig-v .links a.kit { background: var(--accent); border-color: var(--accent); color: #fff; padding: 16px 28px; font-size: 18px; border-radius: 999px; box-shadow: 0 10px 26px -12px rgba(0,0,0,.45); }
.elig-v .links a.kit .arr { display: inline-block; margin-left: 6px; transition: transform .15s; }
.elig-v .links a.kit:hover { text-decoration: none; filter: brightness(1.06); }
.elig-v .links a.kit:hover .arr { transform: translateX(3px); }
.elig-v .links a:hover { text-decoration: underline; }
@media (max-width: 600px) { .elig-v .links a.kit { width: 100%; text-align: center; } }
@media (max-width: 600px) { .elig { padding: 4px 16px 16px; } .elig-q .hint, .elig-q .opts { margin-left: 0; } .elig-q label, .elig-q label span { width: 100%; } }
/* capturi de ecran în ghid (SITUR, pagina 05) */
figure.shot { margin: 14px 0 24px; }
figure.shot img { display: block; width: 100%; height: auto; border: 1px solid var(--line); border-radius: 10px; box-shadow: 0 8px 24px -14px rgba(0,0,0,.4); background: #fff; }
figure.shot figcaption { font-size: 13.5px; color: var(--muted); margin-top: 7px; }
.legal { max-width: 800px; }
.legal h2 { font-size: 19px; }
.draft { background: var(--err-bg); color: var(--err); padding: 10px 14px; border-radius: var(--r-s); font-weight: 700; }

/* ---------- free tools ---------- */
.tool { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; align-items: start; }
@media (max-width: 800px) { .tool { grid-template-columns: 1fr; } }
.form fieldset { border: 1px solid var(--line); border-radius: var(--r); padding: 14px 16px; margin: 0 0 14px; background: var(--panel); }
.form legend { padding: 0 6px; font-weight: 700; }
.form .grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 10px 14px; }
.form label { display: flex; flex-direction: column; gap: 4px; font-size: 14px; font-weight: 600; }
.form label .hint { color: var(--muted); font-size: 12px; font-weight: 500; }
.form input, .form select { font: inherit; font-weight: 500; padding: 9px 11px; border: 1px solid var(--line-2); border-radius: var(--r-s); background: #fff; width: 100%; }
.form input:focus, .form select:focus { outline: 2px solid var(--accent); outline-offset: 1px; border-color: var(--accent); }
.form .btn { border: 0; cursor: pointer; font: inherit; font-weight: 700; }
.result { background: var(--panel); border: 1px solid var(--line); border-radius: var(--r); padding: 18px; box-shadow: var(--shadow); }
.result table { width: 100%; border-collapse: collapse; font-size: 15px; }
.result td { padding: 7px 4px; border-bottom: 1px solid var(--line); }
.result td.n { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.result tr.total td { font-weight: 800; border-top: 2px solid var(--ink); border-bottom: 0; }
.result .big { font-size: 34px; font-weight: 800; margin: 4px 0 2px; color: var(--accent); letter-spacing: -.02em; }
.kitbox { background: var(--deep); color: #fff; border-radius: var(--r); padding: 22px 24px; margin: 28px 0; }
.kitbox h3 { margin: 0 0 6px; color: #fff; }
.kitbox p { margin: 0 0 14px; color: #d6e4dd; }
.kitbox a:not(.btn) { color: #ffd98a; }
.kitbox .btn { background: #fff; color: var(--accent-2); }
.kitbox .btn:hover { background: #eef5f1; }

/* ---------- document preview (same as the app) ---------- */
.doc { background: #fff; border: 1px solid var(--line); padding: 28px 36px; margin: 0 0 16px; font: 12.5pt/1.45 "Times New Roman", Times, serif; color: #000; }
.doc h1 { font-size: 14pt; text-align: center; margin: 0 0 4px; font-weight: bold; letter-spacing: 0; }
.doc h1::after { display: none; }
.doc .sub { text-align: center; margin: 0 0 14px; }
.doc p { margin: 0 0 8px; text-align: justify; }
.doc .sig { display: flex; justify-content: space-between; margin-top: 26px; }
.doc .sig div { min-width: 40%; }
.doc .field { border-bottom: 1px dotted #000; padding: 0 4px; }
@media (max-width: 600px) { .doc { padding: 16px; overflow-x: auto; font-size: 11pt; } .doc .sig { flex-direction: column; gap: 14px; } }
@media print {
  body { background: #fff; }
  body * { visibility: hidden; }
  .printarea, .printarea .doc, .printarea .doc * { visibility: visible; }
  .printarea { position: absolute; left: 0; top: 0; width: 100%; }
  .doc { border: 0; margin: 0; padding: 0; }
  @page { size: A4; margin: 20mm 18mm; }
}
@media (max-width: 600px) {
  .wrap { padding: 24px 16px 16px; }
  .top { padding: 10px 16px; }
  .top nav { gap: 14px; }
  .top nav a[href$="#gratuit"], .top nav a[href$="#pret"] { display: none; }
  .prose h1 { font-size: 28px; }
  section.block { padding: 32px 16px 4px; }
  section.block h2 { font-size: 24px; }
  .stats { padding: 0 16px; }
  .cta-band { padding: 24px 20px; }
}
.elig-v .keep { margin: 12px 0 0; font-size: 13.5px; opacity: .85; }
.handoff { background: var(--accent-soft); color: var(--accent-2); border-radius: var(--r-s); padding: 10px 14px; font-size: 14.5px; font-weight: 600; margin: 0 0 16px; }
.calc-summary { background: var(--panel); border: 1px solid var(--line); border-left: 5px solid var(--accent); border-radius: var(--r); padding: 16px 18px; margin: 0 0 22px; box-shadow: var(--shadow); }
.calc-summary h3 { margin: 0 0 8px; font-size: 14px; letter-spacing: .1em; text-transform: uppercase; color: var(--accent-2); }
.calc-summary table { margin: 0 0 10px; }
.calc-summary p { margin: 0; font-size: 14.5px; color: var(--muted); }
