:root{--bg:#ffffff;--paper:#f3f4f6;--ink:#16130f;--ink2:#4d463e;--step:#eceef1;--step2:#dfe2e7;--acc:#7d1f2c;--acc-ink:#ffffff;--acc-soft:#f6e9eb;
--fs:1.125rem;--fs-s:.95rem;--fs-l:1.3rem;--fs-h2:clamp(1.9rem,1.4rem + 1.6vw,2.8rem);--fs-h1:clamp(2rem,1.2rem + 3.6vw,4.6rem);
--m:clamp(20px,4vw,56px);--max:1180px;--ease:cubic-bezier(.23,1,.32,1)}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{background:var(--bg);color:var(--ink);font:400 var(--fs)/1.62 "Work Sans",system-ui,sans-serif;font-variant-numeric:tabular-nums}
a{color:var(--acc);text-underline-offset:4px;text-decoration-thickness:1px}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--acc);outline-offset:3px}
img{display:block;max-width:100%;height:auto}
h1,h2,h3{font-family:"Libre Caslon Text",Georgia,serif;font-weight:700;letter-spacing:-.01em;line-height:1.08;color:var(--ink)}
h3{font-size:1.3rem;line-height:1.2}
.w{max-width:var(--max);margin:0 auto;padding-left:var(--m);padding-right:var(--m)}
.top{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-top:22px;padding-bottom:22px}
.brand{font-family:"Libre Caslon Text",serif;font-weight:700;font-size:1.2rem;text-decoration:none;color:var(--ink)}
.top nav{display:flex;gap:26px;font-size:var(--fs-s)}.top nav a{text-decoration:none;color:var(--ink2)}
@media(hover:hover){.top nav a:hover{color:var(--acc)}}
.hero{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(28px,4vw,64px);align-items:start;padding-top:8px}
.hero img{width:100%;aspect-ratio:4/3;object-fit:cover}
.kicker-q{font-size:var(--fs-h1);max-width:none;padding-top:24px}
.chapo{font-family:"Libre Caslon Text",serif;font-size:clamp(1.2rem,1.05rem + .5vw,1.45rem);line-height:1.5;margin-top:22px;max-width:54ch}
.body p,.prose p,.chapo,.lead,.card p,.answer p,.step p{text-align:justify;-webkit-hyphens:auto;hyphens:auto;text-wrap:pretty}
.prose p+p,.body p+p{margin-top:16px}
.refs{font-size:.85rem;line-height:1.5;color:var(--ink2);margin-top:22px;max-width:70ch;text-align:left}
section{padding-top:clamp(88px,10vw,136px)}
h2{font-size:clamp(1.7rem,1.3rem + 1.3vw,2.5rem);margin-bottom:22px;max-width:34ch}
.lead{font-size:var(--fs-l);line-height:1.5;max-width:56ch}
p{max-width:66ch}
.next{font-family:"Libre Caslon Text",serif;font-style:italic;font-size:1.2rem;margin-top:40px;color:var(--acc);max-width:46ch}
.split{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(28px,5vw,72px);align-items:start}
.split img{width:100%;aspect-ratio:4/5;object-fit:cover}
.nope{list-style:none;margin-top:26px;display:grid;gap:18px}
.nope li{padding:20px 22px;background:var(--paper);border-left:4px solid var(--acc)}
.nope strong{display:block;font-family:"Libre Caslon Text",serif;font-size:1.15rem;margin-bottom:6px}
.nope p{text-align:justify;hyphens:auto;-webkit-hyphens:auto;font-size:1.05rem}
.verdicts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:28px}
.verdicts .v{background:var(--paper);padding:22px}
.verdicts .v b{display:block;font-family:"Libre Caslon Text",serif;font-size:1.6rem;color:var(--acc);line-height:1.1;margin-bottom:6px}
.verdicts .v span{font-size:.95rem;color:var(--ink2)}
.cond{background:var(--acc);color:#fff;padding:clamp(28px,4vw,52px);margin-top:28px}
.cond h3{color:#fff;font-size:clamp(1.5rem,1.2rem + 1vw,2.1rem);margin-bottom:14px}
.cond p{color:#fff;max-width:62ch;text-align:justify;hyphens:auto;-webkit-hyphens:auto}
ol.steps{list-style:none;counter-reset:s;margin-top:30px;display:grid;gap:22px}
ol.steps li{counter-increment:s;display:grid;grid-template-columns:72px 1fr;gap:18px;align-items:start;background:var(--paper);padding:24px}
ol.steps li::before{content:counter(s);font-family:"Libre Caslon Text",serif;font-weight:700;font-size:3rem;line-height:.9;color:var(--acc)}
ol.steps h3{margin-bottom:8px}
.note{background:var(--step);padding:18px 22px;margin-top:22px;font-size:1rem}
/* calculateur (outil existant) */
.calc{padding-top:clamp(88px,10vw,136px)}
.calc-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,4vw,56px);align-items:start}
.calc form{display:grid;grid-template-columns:1fr 1fr;gap:16px 18px;margin-top:22px}
.field{display:flex;flex-direction:column;gap:6px;border:0}
.field label,.field legend,.opt legend{font-size:.95rem;font-weight:600}
.field small{font-size:.85rem;color:var(--ink2)}
.calc fieldset.field,.calc .opt{grid-column:1/-1}
.opt{border:0;display:grid;grid-template-columns:1fr 1fr;gap:14px 18px;padding-top:8px}
.opt legend{margin-bottom:10px;color:var(--ink2);font-weight:500}
.seg{display:flex;gap:8px;flex-wrap:wrap}
.seg label{display:flex;align-items:center;gap:8px;background:var(--paper);padding:10px 14px;border-radius:999px;font-weight:500;cursor:pointer}
input[type=text],input[type=date],input[type=email],input[type=tel],select{font:inherit;font-size:1rem;padding:12px 14px;border:1px solid var(--step2);background:var(--paper);color:var(--ink);border-radius:8px;width:100%}
.btn{display:inline-block;background:var(--acc);color:var(--acc-ink);font:600 1rem/1 "Work Sans",sans-serif;padding:16px 24px;border-radius:999px;text-decoration:none;border:0;cursor:pointer;transition:transform .15s var(--ease),background-color .2s}
.btn:active{transform:scale(.97)}
@media(hover:hover){.btn:hover{background:#621520}}
.result{background:var(--paper);padding:22px}
.dates{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.dt{display:flex;flex-direction:column;gap:4px;font-size:.92rem;color:var(--ink2);background:var(--step);padding:14px}
.dt b{font-family:"Libre Caslon Text",serif;font-size:1.25rem;color:var(--ink)}
.dt.go{background:var(--acc-soft)}.dt.go b{color:var(--acc)}
.result>.dt{margin-top:12px}
.alert{margin-top:12px;font-size:.95rem;color:var(--acc);font-weight:600}
.letter{white-space:pre-wrap;font:400 .95rem/1.6 "Work Sans",sans-serif;background:var(--paper);padding:22px;max-height:420px;overflow:auto}
.copy-row{display:flex;gap:14px;align-items:center;flex-wrap:wrap}.copy-row small{color:var(--ink2);font-size:.85rem}
/* réponse */
.answer{background:var(--paper);padding:clamp(28px,4vw,56px);display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:clamp(24px,4vw,56px);align-items:start}
.answer h2{max-width:none}
.answer .big{font-family:"Libre Caslon Text",serif;font-size:clamp(1.4rem,1.1rem + 1vw,2rem);color:var(--acc);line-height:1.15;margin-bottom:18px}
.bill{background:var(--step);padding:20px 22px;margin-top:20px}
.bill .l{display:flex;justify-content:space-between;gap:12px;padding:8px 0;font-size:1rem}
.bill .l+.l{margin-top:2px}
.bill .t{font-weight:700;background:var(--ink);color:#fff;padding:12px 10px;margin:8px -10px 0}
.bill small{display:block;font-size:.85rem;color:var(--ink2)}
.answer img{width:100%;aspect-ratio:4/3;object-fit:cover}
.answer ul{margin:14px 0 0 1.1em;display:grid;gap:6px}
/* FAQ */
.faq details{background:var(--paper);padding:18px 22px;margin-top:10px}
.faq summary{font-weight:600;cursor:pointer;font-size:1.05rem}
.faq details p{margin-top:10px;text-align:justify;hyphens:auto;-webkit-hyphens:auto}
/* pages intérieures */
.page-head{padding-top:28px}
.page-head h1{font-size:clamp(2rem,1.3rem + 2.6vw,3.6rem);max-width:20ch}
.prose{max-width:740px}
.prose h2{margin-top:72px;font-size:clamp(1.6rem,1.3rem + 1vw,2.2rem)}
.prose ul,.prose ol{margin:16px 0 0 1.2em;display:grid;gap:8px}
.prose ol.steps{margin-left:0}
.figure{margin-top:36px}.figure img{width:100%;aspect-ratio:16/9;object-fit:cover}
.tbl{width:100%;border-collapse:collapse;margin-top:18px;font-size:1rem;background:var(--paper)}
.tbl th,.tbl td{padding:12px 14px;text-align:left;vertical-align:top}
.tbl thead th{background:var(--ink);color:#fff;font-weight:600}
.tbl tbody tr:nth-child(odd){background:var(--step)}
.tbl td.n{text-align:right;white-space:nowrap}
.scroll{overflow-x:auto}
footer{margin-top:clamp(96px,10vw,140px);background:var(--ink);color:#ececec;padding:56px 0 40px}
footer a{color:#fff}
footer .cols{display:grid;grid-template-columns:2fr 1fr 1fr;gap:32px}
footer .big{font-family:"Libre Caslon Text",serif;font-size:clamp(2rem,1.4rem + 2.4vw,3.6rem);line-height:1;color:#fff;margin-bottom:14px}
footer p,footer li{font-size:.92rem;max-width:52ch}
footer ul{list-style:none;display:grid;gap:8px}
footer .credits{margin-top:32px;font-size:.85rem;color:#bdb5aa}
.in{opacity:0;transform:translateY(20px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.in.on{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.in{opacity:1;transform:none;transition:none}}
@media(max-width:860px){
 .hero,.split,.calc-grid,.answer,footer .cols{grid-template-columns:1fr}
 .verdicts{grid-template-columns:1fr}
 .calc form,.opt{grid-template-columns:1fr}
 .dates{grid-template-columns:1fr}
 ol.steps li{grid-template-columns:48px 1fr}
 ol.steps li::before{font-size:2.2rem}
 .top nav{gap:14px;font-size:.85rem;flex-wrap:wrap;justify-content:flex-end}
}
.page-hero{display:grid;grid-template-columns:1fr 1.25fr;gap:clamp(28px,4vw,64px);align-items:center;padding-top:28px}
.page-hero h1{font-size:clamp(2rem,1.3rem + 2.2vw,3.4rem);max-width:none}
.page-hero img{width:100%;aspect-ratio:4/3;object-fit:cover}
@media(max-width:860px){.page-hero{grid-template-columns:1fr}}
.page-head{padding-top:28px}

@media(max-width:600px){.cond h3{font-size:1.25rem}.page-hero h1{font-size:1.9rem}}
.cout2{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:22px;max-width:820px}
.cout2 .bill{margin-top:0}
.lettre-bloc{margin-top:28px;max-width:820px}
.essentiel ul{list-style:none;margin:8px 0 0;display:grid;gap:10px}
.essentiel li{color:#fff;font-size:1.1rem;padding-left:28px;position:relative}
.essentiel li::before{content:"";position:absolute;left:0;top:.62em;width:14px;height:3px;background:#fff}
.body ul{margin:16px 0 0 1.2em;display:grid;gap:8px}
@media(max-width:860px){.cout2{grid-template-columns:1fr}}

@media(max-width:600px){h2{font-size:1.45rem}}
.split h2{max-width:22ch}
.split h2{max-width:none}
@media(max-width:600px){h2{font-size:1.3rem}}
.page-hero{grid-template-columns:1fr!important;align-items:start}
.page-hero h1{max-width:24ch}
.page-hero .chapo{max-width:70ch}
.page-hero img{aspect-ratio:21/9}
.lead{font-size:var(--fs);line-height:1.62;max-width:68ch}
.body p,.prose p,.card p,.answer p,.step p{font-size:var(--fs);line-height:1.62}
/* générateur de lettre */
.gen{background:var(--paper);padding:clamp(24px,4vw,48px)}
.gen h2{max-width:28ch}
.gen-sub{margin-top:10px;font-size:1.05rem;color:var(--ink2)}
#gen{display:grid;grid-template-columns:1fr 1fr;gap:16px 18px;margin-top:26px}
#gen .wide{grid-column:1/-1}
#gen input,#gen select{background:#fff}
.opt-l{font-weight:400;color:var(--ink2)}
.hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.check{display:flex;gap:12px;align-items:flex-start;font-size:.95rem;cursor:pointer;text-align:left}
.check input{width:20px;height:20px;margin-top:2px;flex:none;accent-color:var(--acc)}
.err{margin-top:10px;color:var(--acc);font-weight:600}
.rgpd{font-size:.85rem;color:var(--ink2);text-align:left;hyphens:manual}
.gen-done{margin-top:28px;background:#fff;padding:24px;border-left:4px solid var(--acc)}
.gen-k{font-weight:700;font-size:1.05rem}
.gen-date{margin:8px 0;font-family:"Libre Caslon Text",serif;font-size:1.3rem}
.gen-done .btn{margin-top:8px}
@media(max-width:860px){#gen{grid-template-columns:1fr}}
#gen .rgpd{font-size:1rem;line-height:1.55;hyphens:manual;-webkit-hyphens:manual;text-align:left;max-width:none}
#gen .rgpd a{word-break:break-all;hyphens:none}
#gen .field small{font-size:.95rem}
