/* BELVAL & SABOS — feuille de styles
   Direction : sobre, aérée, bleu nuit et bleu ardoise, filets fins plutôt que cadres ombrés.
   Polices auto-hébergées : Newsreader (titres), Hanken Grotesk (texte). Aucun appel à un service tiers. */
@font-face{font-family:"Newsreader";src:url(../fonts/newsreader-latin-400-normal.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Newsreader";src:url(../fonts/newsreader-latin-400-italic.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Newsreader";src:url(../fonts/newsreader-latin-500-normal.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Newsreader";src:url(../fonts/newsreader-latin-600-normal.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Hanken Grotesk";src:url(../fonts/hanken-grotesk-latin-400-normal.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Hanken Grotesk";src:url(../fonts/hanken-grotesk-latin-500-normal.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Hanken Grotesk";src:url(../fonts/hanken-grotesk-latin-600-normal.woff2) format("woff2");font-weight:600;font-display:swap}

:root{
  --navy:#0f2742;      /* bleu nuit : titres, pied de page, boutons */
  --navy-2:#1a3a5e;
  --blue:#2b5d91;      /* bleu ardoise : liens, accents */
  --blue-2:#1f4a77;
  --sky:#e9eff6;       /* fond des bandeaux clairs */
  --mist:#f5f7fa;      /* fond des en-têtes de page */
  --white:#ffffff;
  --text:#1c2532;
  --muted:#5b6777;
  --line:#dde4ed;
  --line-2:#c9d3e0;
  --yes:#1e6650; --yes-bg:#e8f3ef;
  --no:#8a3b2c;  --no-bg:#f8ece9;
  --maybe:#6f5a17; --maybe-bg:#f7f1df;
  --warn-bg:#fff4c2; --warn-line:#e0c54a;
  --radius:3px;
  --wrap:1200px;
  --read:720px;
  --serif:"Newsreader",Georgia,"Times New Roman",serif;
  --sans:"Hanken Grotesk",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:100px}
body{margin:0;background:var(--white);color:var(--text);font-family:var(--sans);font-size:17px;line-height:1.7;font-feature-settings:"kern","liga"}
img{max-width:100%;height:auto;display:block}
a{color:var(--blue);text-underline-offset:3px;text-decoration-thickness:1px}
a:hover{color:var(--blue-2)}
:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
.wrap{max-width:var(--wrap);margin:0 auto;padding-left:max(24px,env(safe-area-inset-left,0px));padding-right:max(24px,env(safe-area-inset-right,0px))}
.skip{position:absolute;left:-9999px;top:0;background:var(--navy);color:#fff;padding:.6em 1em;z-index:100}
.skip:focus{left:10px;top:10px}
h1,h2,h3,h4{font-family:var(--serif);color:var(--navy);line-height:1.15;font-weight:500;text-wrap:balance;letter-spacing:-.005em}
h1{font-size:clamp(2.1rem,4.2vw,3.3rem);margin:.15em 0 .4em}
h2{font-size:clamp(1.5rem,2.5vw,1.95rem);margin:2em 0 .6em}
h3{font-size:1.22rem;margin:1.6em 0 .45em;font-weight:600}
p{margin:0 0 1.05em}
ul,ol{padding-left:1.2em;margin:0 0 1.15em}
li{margin:.3em 0}
strong{font-weight:600}
small,.small{font-size:.86rem;color:var(--muted)}
.eyebrow,.kicker{font-family:var(--sans);font-size:.76rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--blue);margin:0 0 1em}

/* ---------- En-tête ---------- */
.topbar{display:none}
.site-header{background:var(--white);border-bottom:1px solid var(--line);position:sticky;top:env(safe-area-inset-top,0px);z-index:40}
.site-header .wrap{display:flex;align-items:center;gap:28px;min-height:88px}
.brand{display:flex;align-items:center;text-decoration:none;flex:none}
.brand .logo-img{height:62px;width:auto}
.nav{margin-left:auto}
.nav ul{list-style:none;margin:0;padding:0;display:flex;gap:2px;align-items:center}
.nav li{margin:0}
.nav a{display:block;white-space:nowrap;padding:.5em .7em;color:var(--navy);text-decoration:none;font-size:.95rem;font-weight:500;position:relative}
.nav a::after{content:"";position:absolute;left:.75em;right:.75em;bottom:.15em;height:2px;background:var(--blue);transform:scaleX(0);transform-origin:left;transition:transform .2s}
.nav a:hover::after,.nav a[aria-current="page"]::after{transform:scaleX(1)}
.nav .btn-contact{display:none}
.header-tools{display:flex;align-items:center;gap:18px;flex:none}
.header-tel{color:var(--navy);font-weight:600;text-decoration:none;font-size:.95rem;white-space:nowrap;font-variant-numeric:tabular-nums}
.header-tools .slot{display:none} /* « Prendre rendez-vous » / « Régler une facture » : modules futurs */
.menu-toggle{display:none;background:none;border:1px solid var(--line-2);border-radius:var(--radius);padding:.5em .85em;font:inherit;font-weight:500;color:var(--navy);cursor:pointer}
@media (max-width:1120px){
  .header-tel{display:none}
}
@media (max-width:980px){
  .site-header .wrap{min-height:72px}
  .brand .logo-img{height:50px}
  .menu-toggle{display:block}
  .header-tools{margin-left:auto}
  .site-header .wrap{gap:12px}
  .header-tools .btn{padding:.55em .8em;font-size:.85rem}
  .nav{position:absolute;left:0;right:0;top:100%;background:var(--white);border-bottom:1px solid var(--line);display:none;margin:0}
  .nav.open{display:block}
  .nav ul{flex-direction:column;align-items:stretch;padding:8px 24px 20px}
  .nav a{padding:.85em 0;border-bottom:1px solid var(--line)}
  .nav a::after{display:none}
  .nav .btn-contact{display:block;margin-top:14px;text-align:center;background:var(--navy);color:#fff;border:0}
}

/* ---------- Boutons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;padding:.85em 1.45em;border-radius:var(--radius);font-weight:600;text-decoration:none;border:1px solid transparent;font-size:.95rem;cursor:pointer;font-family:var(--sans);line-height:1.2;transition:background .15s,color .15s,border-color .15s}
.btn-primary{background:var(--navy);color:#fff}
.btn-primary:hover{background:var(--blue-2);color:#fff}
.btn-outline{border-color:var(--navy);color:var(--navy);background:transparent}
.btn-outline:hover{background:var(--navy);color:#fff}
.btn-ghost{border-color:rgba(255,255,255,.55);color:#fff;background:transparent}
.btn-ghost:hover{background:#fff;color:var(--navy)}
.btn-sm{padding:.6em 1.05em;font-size:.9rem}
.btn-link{background:none;border:0;padding:0;color:var(--blue);font-weight:600;cursor:pointer;font:inherit;text-decoration:underline;text-underline-offset:3px}

/* ---------- Fil d'Ariane et en-tête de page ---------- */
.page-head{background:var(--mist);border-bottom:1px solid var(--line);padding:30px 0 40px}
.page-head .lead{max-width:44em}
.crumbs{font-size:.83rem;color:var(--muted);margin-bottom:22px}
.crumbs ol{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.35em}
.crumbs li{margin:0}
.crumbs li+li::before{content:"/";margin-right:.35em;color:var(--line-2)}
.crumbs a{color:var(--muted);text-decoration:none}
.crumbs a:hover{color:var(--navy);text-decoration:underline}
.lead{font-family:var(--serif);font-size:1.28rem;line-height:1.55;color:#2c3a4d}
.meta{font-size:.86rem;color:var(--muted);display:flex;flex-wrap:wrap;gap:.3em 1.4em;margin-top:18px}
.meta a{color:var(--navy)}

/* ---------- Accueil ---------- */
.hero{background:var(--white);padding:64px 0 72px;border-bottom:1px solid var(--line);position:relative;overflow:hidden}
.hero::before{content:"";position:absolute;inset:0 0 0 auto;width:42%;background:linear-gradient(180deg,var(--sky),var(--mist));z-index:0}
.hero .wrap{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:64px;align-items:start}
.hero h1{font-size:clamp(2.3rem,4.6vw,3.6rem);margin-top:0}
.hero .lead{max-width:30em}
.hero-points{list-style:none;padding:0;margin:26px 0 0;display:grid;gap:10px;font-size:.95rem;color:var(--muted)}
.hero-points li{display:flex;gap:.7em;margin:0}
.hero-points li::before{content:"";flex:none;width:18px;height:1px;background:var(--blue);margin-top:.85em}
@media (max-width:960px){.hero::before{display:none}.hero .wrap{grid-template-columns:1fr;gap:36px}.hero{padding:40px 0 48px}}

/* Outil « Le cabinet peut-il vous aider ? » */
.verif{background:var(--white);border:1px solid var(--line-2);border-radius:var(--radius);padding:28px;box-shadow:0 18px 40px -28px rgba(15,39,66,.35)}
.verif h2{font-size:1.45rem;margin:0 0 .3em}
.verif .intro{font-size:.95rem;color:var(--muted);margin-bottom:16px}
.verif label{display:block;font-weight:600;font-size:.92rem;color:var(--navy);margin-bottom:.4em}
.verif textarea{width:100%;min-height:128px;font:inherit;font-size:1rem;line-height:1.5;padding:.8em .9em;border:1px solid var(--line-2);border-radius:var(--radius);resize:vertical;color:var(--text);background:#fff}
.verif textarea:focus{outline:2px solid var(--blue);outline-offset:0;border-color:var(--blue)}
.verif .row-under{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin:8px 0 16px;font-size:.82rem;color:var(--muted)}
.verif .compteur{font-variant-numeric:tabular-nums}
.verif .compteur.limite{color:var(--no);font-weight:600}
.verif .actions{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.verif .mention{font-size:.78rem;color:var(--muted);margin:16px 0 0;line-height:1.5}
.verif-arbre{margin-top:4px}
.verif-arbre p{font-weight:600;color:var(--navy);margin-bottom:10px}
.verif-choix{display:grid;grid-template-columns:1fr 1fr;gap:8px}
@media (max-width:560px){.verif-choix{grid-template-columns:1fr}}
.verif-choix button{text-align:left;font:inherit;font-size:.92rem;padding:.7em .85em;border:1px solid var(--line-2);border-radius:var(--radius);background:#fff;color:var(--text);cursor:pointer;line-height:1.35}
.verif-choix button:hover{border-color:var(--blue);background:var(--mist)}
.verif-resultat{margin-top:18px;border-radius:var(--radius);padding:18px 20px;border:1px solid}
.verif-resultat.oui{background:var(--yes-bg);border-color:#bcd9cf}
.verif-resultat.non{background:var(--no-bg);border-color:#e5c6bf}
.verif-resultat.peut-etre{background:var(--maybe-bg);border-color:#e4d6ab}
.verif-resultat .verdict{font-family:var(--serif);font-size:1.25rem;font-weight:600;margin:0 0 .35em;display:flex;gap:.5em;align-items:baseline}
.verif-resultat.oui .verdict{color:var(--yes)}
.verif-resultat.non .verdict{color:var(--no)}
.verif-resultat.peut-etre .verdict{color:var(--maybe)}
.verif-resultat p{font-size:.95rem;margin-bottom:.7em}
.verif-resultat .actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:12px}
.verif-resultat .coord{font-size:.92rem;background:rgba(255,255,255,.65);padding:10px 12px;border-radius:var(--radius);margin:10px 0 0}
.verif-attente{font-size:.92rem;color:var(--muted);margin-top:14px}
[data-etat="attente"] .btn-verifier{opacity:.6;pointer-events:none}

.section{padding:80px 0}
.section.alt{background:var(--mist);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.section.dark{background:var(--navy);color:#d5deea}
.section.dark h2{color:#fff}
.section h2:first-child,.section-head h2{margin-top:0}
.section-head{display:flex;justify-content:space-between;align-items:end;gap:24px;flex-wrap:wrap;margin-bottom:32px}
.section-head .eyebrow{margin-bottom:.6em}
.section-intro{max-width:46em;color:var(--muted);font-size:1.05rem;margin:0}
.grid{display:grid;gap:28px}
.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:980px){.grid-4,.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}
.card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:26px;display:flex;flex-direction:column;transition:border-color .15s}
.card:hover{border-color:var(--line-2)}
.section.alt .card{background:var(--white)}
.card h3{margin-top:0;font-size:1.25rem}
.card h3 a{color:var(--navy);text-decoration:none}
.card h3 a:hover{color:var(--blue)}
.card p{color:var(--muted);font-size:.96rem}
.card .more{margin-top:auto;font-weight:600;font-size:.9rem;text-decoration:none;color:var(--navy);letter-spacing:.01em}
.card .more:hover{color:var(--blue)}
.card ul{font-size:.95rem}
.qlist{list-style:none;padding:0;margin:0;columns:2;column-gap:56px}
@media (max-width:760px){.qlist{columns:1}}
.qlist li{break-inside:avoid;margin:0;border-top:1px solid var(--line)}
.qlist a{display:flex;justify-content:space-between;gap:1em;padding:.95em 0;color:var(--navy);text-decoration:none;font-family:var(--serif);font-size:1.12rem;line-height:1.35}
.qlist a::after{content:"→";color:var(--blue);flex:none;transition:transform .15s}
.qlist a:hover{color:var(--blue)}
.qlist a:hover::after{transform:translateX(4px)}

/* Avocats */
.lawyer{display:grid;grid-template-columns:200px minmax(0,1fr);gap:28px;align-items:start}
@media (max-width:640px){.lawyer{grid-template-columns:1fr}}
.lawyer .photo{margin:0}
.card.lawyer{padding:24px}
.card.lawyer h3{font-size:1.4rem}

/* Liste des domaines (accueil) */
.domaines-liste{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:48px}
@media (max-width:820px){.domaines-liste{grid-template-columns:1fr;gap:32px}}
.domaines-liste h3{font-size:.8rem;font-family:var(--sans);text-transform:uppercase;letter-spacing:.14em;color:var(--muted);font-weight:600;margin:0 0 6px}
.domaines-liste ul{list-style:none;padding:0;margin:0}
.domaines-liste li{margin:0;border-bottom:1px solid var(--line)}
.domaines-liste a{display:block;position:relative;padding:1em 2em 1em 0;text-decoration:none;color:var(--navy);font-family:var(--serif);font-size:1.3rem;line-height:1.3}
.domaines-liste a span{display:block;font-family:var(--sans);font-size:.88rem;color:var(--muted);margin-top:.2em}
.domaines-liste a::after{content:"→";color:var(--blue);position:absolute;right:0;top:1em}
.domaines-liste a:hover{color:var(--blue)}

/* Bandeau contact */
.contact-band .wrap{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:48px;align-items:center}
@media (max-width:860px){.contact-band .wrap{grid-template-columns:1fr;gap:24px}}
.contact-band h2{font-size:clamp(1.7rem,3vw,2.3rem)}
.contact-band dl{display:grid;grid-template-columns:auto 1fr;gap:8px 20px;margin:0;font-size:.98rem}
.contact-band dt{color:#9fb0c6;font-size:.8rem;text-transform:uppercase;letter-spacing:.12em;padding-top:.25em}
.contact-band dd{margin:0;color:#fff}
.contact-band a{color:#fff}

/* ---------- Pages intérieures ---------- */
.page{display:grid;grid-template-columns:minmax(0,var(--read)) 300px;gap:72px;padding:48px 0 88px;justify-content:space-between}
@media (max-width:1060px){.page{grid-template-columns:1fr;gap:40px}}
.page.full{grid-template-columns:minmax(0,1fr)}
.article > h2{padding-top:1.2em;border-top:1px solid var(--line)}
.article > h2:first-child{border-top:0;padding-top:0;margin-top:0}
.article table{border-collapse:collapse;width:100%;margin:0 0 1.4em;font-size:.94rem}
.article th,.article td{border-bottom:1px solid var(--line);padding:.65em .7em;text-align:left;vertical-align:top}
.article th{color:var(--navy);font-weight:600;border-bottom:2px solid var(--navy)}
.table-scroll{overflow-x:auto}
.box{background:var(--mist);border:0;border-left:2px solid var(--navy);border-radius:0;padding:20px 24px;margin:1.8em 0}
.box.key{border-left-color:var(--blue)}
.box.alert{border-left-color:var(--no);background:#fbf6f4}
.box p:last-child,.box ul:last-child{margin-bottom:0}
.box .box-title{font-family:var(--serif);font-weight:600;color:var(--navy);margin-bottom:.35em;font-size:1.12rem}
.steps{counter-reset:s;list-style:none;padding:0}
.steps>li{counter-increment:s;position:relative;padding-left:52px;margin:0 0 1.1em}
.steps>li::before{content:counter(s);position:absolute;left:0;top:.1em;width:32px;height:32px;border:1px solid var(--navy);border-radius:50%;color:var(--navy);font-family:var(--serif);font-weight:600;font-size:1rem;display:flex;align-items:center;justify-content:center}
details.faq{border-bottom:1px solid var(--line);padding:.7em 0}
details.faq summary{cursor:pointer;font-family:var(--serif);font-weight:600;color:var(--navy);font-size:1.1rem;list-style:none}
details.faq summary::-webkit-details-marker{display:none}
details.faq summary::before{content:"+";display:inline-block;width:1.2em;color:var(--blue)}
details.faq[open] summary::before{content:"–"}
details.faq>div{padding:.5em 0 0 1.2em}
.sources{border-top:2px solid var(--navy);margin-top:3em;padding-top:18px;font-size:.9rem}
.sources h2{font-size:1.1rem;margin:0 0 .6em;border:0;padding:0}
.sources ul{margin:0;columns:2;column-gap:32px;padding-left:1.1em}
@media (max-width:640px){.sources ul{columns:1}}
.sources li{break-inside:avoid}
.sources p{color:var(--muted);margin:.9em 0 0;font-size:.84rem}
a.ref{text-decoration-style:dotted}
a[target="_blank"]::after{content:"↗";font-size:.72em;margin-left:.15em;opacity:.65}

/* Colonne latérale */
.aside{display:flex;flex-direction:column;gap:28px}
.aside .widget{border-top:2px solid var(--navy);padding-top:14px}
.aside .widget h2{font-size:.76rem;margin:0 0 .9em;border:0;padding:0;font-family:var(--sans);text-transform:uppercase;letter-spacing:.14em;color:var(--muted);font-weight:600}
.aside .toc ol{padding-left:1.2em;margin:0;font-size:.92rem}
.aside .toc li{margin:.45em 0}
.aside .toc a{color:var(--navy);text-decoration:none}
.aside .toc a:hover{color:var(--blue);text-decoration:underline}
.aside .sticky{position:sticky;top:112px;display:flex;flex-direction:column;gap:30px}
@media (max-width:1060px){.aside .sticky{position:static}}
.owner{display:flex;gap:16px;align-items:center}
.owner .photo{width:76px;flex:0 0 76px;margin:0}
.owner .photo .ph{font-size:.62rem;padding:4px}
.owner strong{display:block;font-family:var(--serif);color:var(--navy);font-size:1.12rem}
.owner strong a{color:var(--navy);text-decoration:none}
.owner span{font-size:.86rem;color:var(--muted)}
.cta-box{background:var(--navy);color:#d5deea;border-radius:var(--radius);padding:24px}
.cta-box h2,.cta-box .cta-title{color:#fff;font-family:var(--serif);font-size:1.3rem;margin:0 0 .4em;text-transform:none;letter-spacing:0;font-weight:500}
.cta-box p{font-size:.94rem;color:#c3cfdf}
.cta-box .btn{width:100%;margin-top:6px;background:#fff;color:var(--navy)}
.cta-box .btn:hover{background:var(--sky)}
.cta-box a.tel{color:#fff;font-weight:600;font-size:1.1rem;text-decoration:none;display:block;margin-top:12px;text-align:center;font-variant-numeric:tabular-nums}
.cta-inline{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:26px 0;margin:2.6em 0 0;display:flex;gap:24px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.cta-inline p{margin:0;max-width:34em}
.cta-inline .cta-title{font-family:var(--serif);font-weight:600;color:var(--navy);font-size:1.2rem;display:block;margin-bottom:.2em}
.related ul{list-style:none;padding:0;margin:0}
.related li{border-bottom:1px solid var(--line);margin:0}
.related a{display:block;padding:.6em 0;text-decoration:none;color:var(--navy);font-size:.94rem}
.related a:hover{color:var(--blue)}

/* ---------- Photos : emplacement + description tant que le fichier n'est pas déposé ---------- */
.photo{margin:1.8em 0;position:relative}
.photo img{border-radius:var(--radius);width:100%;object-fit:cover;background:var(--sky)}
.photo .ph{display:none}
.photo.missing img{display:none}
.photo.missing .ph{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:6px;border:1px dashed #9fb0c6;background:repeating-linear-gradient(135deg,#f1f5fa,#f1f5fa 12px,#e9eff6 12px,#e9eff6 24px);color:#3d4b5e;padding:14px;font-size:.84rem;line-height:1.35;width:100%;height:100%;position:absolute;inset:0}
.photo.missing .ph b{font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;color:var(--blue)}
.photo.missing .ph code{font-size:.74rem;background:#fff;padding:2px 6px;border-radius:2px}
.photo .frame{position:relative;width:100%;max-width:100%;overflow:hidden;border-radius:var(--radius);background:var(--sky)}
.photo .frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:0}
.photo figcaption{font-size:.84rem;color:var(--muted);margin-top:.5em}
.owner .photo.missing .ph{padding:2px;gap:0}
.owner .photo.missing .ph > *:not(b){display:none}
.owner .photo.missing .ph b{font-size:.58rem}

/* ---------- Formulaires ---------- */
.form{background:var(--white);border:1px solid var(--line-2);border-radius:var(--radius);padding:28px}
.form .row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media (max-width:640px){.form .row{grid-template-columns:1fr}}
.form label{display:block;font-weight:600;font-size:.92rem;margin:0 0 .4em;color:var(--navy)}
.form .field{margin-bottom:18px}
.form input[type=text],.form input[type=email],.form input[type=tel],.form input[type=date],.form select,.form textarea{width:100%;font:inherit;padding:.7em .8em;border:1px solid var(--line-2);border-radius:var(--radius);background:#fff;color:var(--text)}
.form input:focus,.form select:focus,.form textarea:focus{outline:2px solid var(--blue);outline-offset:0;border-color:var(--blue)}
.form textarea{min-height:150px;resize:vertical}
.form .hint{font-size:.84rem;color:var(--muted);margin-top:.35em}
.form .check{display:flex;gap:.6em;align-items:flex-start;font-size:.9rem}
.form .check input{margin-top:.4em}
.form .hp{position:absolute!important;left:-10000px!important;width:1px;height:1px;overflow:hidden}
.form .notice{font-size:.86rem;color:var(--muted);border-top:1px solid var(--line);margin-top:20px;padding-top:14px}
.form .other-warning{display:none}
.form .other-warning.show{display:block}
.choice{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:18px}
.choice label{border:1px solid var(--line-2);border-radius:40px;padding:.45em 1.05em;cursor:pointer;font-weight:500;background:#fff;margin:0;color:var(--text)}
.choice input{position:absolute;opacity:0}
.choice label:has(input:checked){border-color:var(--navy);background:var(--navy);color:#fff}
.choice label:has(input:focus-visible){outline:2px solid var(--blue);outline-offset:2px}
.flash{padding:14px 18px;border-radius:var(--radius);margin-bottom:18px}
.flash.ok{background:var(--yes-bg);border:1px solid #bcd9cf;color:#164d3c}
.flash.err{background:var(--no-bg);border:1px solid #e5c6bf;color:#6b2a1f}
.search-box{background:#fff;border:1px solid var(--line-2);border-radius:var(--radius);padding:6px;display:flex;gap:6px;margin-top:18px;max-width:620px}
.search-box input{flex:1;border:0;font:inherit;padding:.6em .8em;min-width:0;color:var(--text);background:transparent}
.search-box input:focus{outline:none}
.search-results{list-style:none;padding:0;margin:8px 0 0;max-width:620px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.search-results:empty{display:none}
.search-results li{margin:0}
.search-results a{display:block;padding:.65em .95em;color:var(--navy);text-decoration:none;border-top:1px solid var(--line)}
.search-results li:first-child a{border-top:0}
.search-results a:hover{background:var(--mist)}

/* Mentions à compléter (version de test) */
.todo{background:var(--warn-bg);border-bottom:2px solid var(--warn-line);padding:0 .25em;font-size:.95em}

/* ---------- Pied de page ---------- */
.site-footer{background:var(--navy);color:#b9c6d8;font-size:.92rem;padding:64px 0 96px}
.site-footer a{color:#fff;text-decoration:none}
.site-footer a:hover{text-decoration:underline}
.site-footer .cols{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:36px}
@media (max-width:900px){.site-footer .cols{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.site-footer .cols{grid-template-columns:1fr}}
.site-footer h2{color:#fff;font-size:.74rem;font-family:var(--sans);text-transform:uppercase;letter-spacing:.16em;margin:0 0 1.1em;font-weight:600}
.site-footer ul{list-style:none;padding:0;margin:0}
.site-footer li{margin:.45em 0}
.site-footer .legal{border-top:1px solid rgba(255,255,255,.14);margin-top:44px;padding-top:20px;font-size:.82rem;color:#8ea0b8}
.site-footer .flogo{width:150px;height:auto;margin:0 0 18px}
.site-footer .hours{color:#b9c6d8;font-size:.88rem}

/* Barre d'action mobile : appeler / écrire en un geste */
.mobile-bar{display:none}
@media (max-width:760px){
  .mobile-bar{display:grid;grid-template-columns:1fr 1fr;position:fixed;bottom:0;left:0;right:0;z-index:50;border-top:1px solid var(--line);background:var(--white);padding-bottom:env(safe-area-inset-bottom,0px)}
  .mobile-bar a{padding:14px;text-align:center;font-weight:600;text-decoration:none;color:var(--navy)}
  .mobile-bar a+a{background:var(--navy);color:#fff}
  body{padding-bottom:52px}
}
.not-cabinet{font-size:.94rem}
@media print{.site-header,.site-footer,.aside,.mobile-bar,.cta-inline{display:none}.page{display:block}}

/* ---- WordPress ---- */
.actu-grid{margin-top:8px}
.actu-card .date{font-size:.8rem;text-transform:uppercase;letter-spacing:.12em;color:var(--blue);font-weight:600;margin-bottom:.8em}
.actu-card h3{font-size:1.3rem;margin:0 0 .5em}
.actu-note{margin-top:2.4em;border-top:1px solid var(--line);padding-top:1em}
.pagination,.nav-links{display:flex;gap:.6em;justify-content:center;margin:2.4em 0;flex-wrap:wrap}
.nav-links .page-numbers{padding:.35em .8em;border:1px solid var(--line-2);border-radius:var(--radius);text-decoration:none;color:var(--navy)}
.nav-links .current{background:var(--navy);color:#fff;border-color:var(--navy)}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px)}
.article .wp-block-group.box{padding:20px 24px}
.article .wp-block-image img,.article figure.wp-block-image{border-radius:var(--radius)}
.alignwide,.alignfull{max-width:100%}

/* Texte justifié, avec césure, pour les textes courants */
.article > p,.article > ul > li,.article > ol > li,.article .box p,.article .cta-inline p,.lawyer > div > p,.page-head .lead{text-align:justify;-webkit-hyphens:auto;hyphens:auto;hyphenate-limit-chars:7 3 3}
.article h1,.article h2,.article h3,.card h3,.box .box-title,.small,.meta{text-align:left;hyphens:manual}

@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* Photo d'ensemble de l'accueil : bandeau bas */
.photo.home-photo{margin-top:40px}

/* ---------- Prise de rendez-vous ---------- */
.header-rdv{color:var(--navy);font-weight:600;font-size:.92rem;text-decoration:none;white-space:nowrap;border-bottom:1px solid var(--line-2);padding-bottom:1px}
.header-rdv:hover{color:var(--blue);border-color:var(--blue)}
@media (max-width:1220px){.header-rdv{display:none}}
.rdv fieldset{border:0;padding:0;margin:0 0 26px}
.rdv legend{font-family:var(--serif);font-size:1.3rem;color:var(--navy);font-weight:500;margin-bottom:.4em;padding:0}
.rdv-palier{margin-top:18px}
.rdv-palier h3{font-family:var(--sans);font-size:.76rem;text-transform:uppercase;letter-spacing:.14em;color:var(--muted);font-weight:600;margin:0 0 10px}
.rdv-liste{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
@media (max-width:700px){.rdv-liste{grid-template-columns:1fr 1fr}}
@media (max-width:420px){.rdv-liste{grid-template-columns:1fr}}
.rdv-creneau{position:relative;margin:0!important;cursor:pointer}
.rdv-creneau input{position:absolute;opacity:0}
.rdv-creneau span{display:block;border:1px solid var(--line-2);border-radius:var(--radius);padding:12px 14px;font-weight:500;color:var(--navy);background:#fff;transition:border-color .15s,background .15s;font-variant-numeric:tabular-nums}
.rdv-creneau span b{display:block;font-family:var(--serif);font-size:1.08rem;font-weight:600;margin-bottom:2px}
.rdv-creneau:hover span{border-color:var(--blue)}
.rdv-creneau input:checked+span{background:var(--navy);border-color:var(--navy);color:#fff}
.rdv-creneau input:focus-visible+span{outline:2px solid var(--blue);outline-offset:2px}
.rdv-urgence{margin:6px 0 28px}
.rdv-avocats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0 0 24px}
@media (max-width:560px){.rdv-avocats{grid-template-columns:1fr}}
.rdv-avocat{display:block;border:1px solid var(--line-2);border-radius:var(--radius);padding:16px 18px;text-decoration:none;color:var(--navy);background:#fff;transition:border-color .15s}
.rdv-avocat b{display:block;font-family:var(--serif);font-size:1.2rem;font-weight:600}
.rdv-avocat span{display:block;font-size:.88rem;color:var(--muted);margin-top:2px}
.rdv-avocat:hover{border-color:var(--blue);color:var(--navy)}
.rdv-avocat.on{background:var(--navy);border-color:var(--navy);color:#fff}
.rdv-avocat.on span{color:#c3cfdf}
.rdv-consigne{font-size:.95rem}

/* Encadré téléphone avec la photo de l'assistante (thème 2.2.0) */
.accueil-tel{display:flex;gap:20px;align-items:center;margin:1.6em 0}
.accueil-tel .accueil-photo{flex:0 0 120px;width:120px;margin:0}
.accueil-tel .accueil-photo .frame,.accueil-tel .accueil-photo img{border-radius:50%}
.accueil-tel .accueil-photo.missing .ph{padding:6px;gap:2px;border-radius:50%}
.accueil-tel .accueil-photo.missing .ph > *:not(b){display:none}
.accueil-tel .accueil-photo.missing .ph b{font-size:.6rem}
.accueil-texte{min-width:0;text-align:left;hyphens:manual}
.accueil-tel .accueil-texte p{margin:0;text-align:left;hyphens:manual}
.accueil-titre{font-family:var(--serif);font-size:1.15rem;font-weight:500;color:var(--navy);margin-bottom:.3em!important}
.accueil-nom{font-weight:600;color:var(--text)}
.accueil-nom span{display:block;font-weight:400;font-size:.88rem;color:var(--muted)}
.accueil-numero{display:inline-block;margin-top:.35em;font-size:1.25rem;font-weight:600;color:var(--navy);text-decoration:none;font-variant-numeric:tabular-nums;white-space:nowrap}
.accueil-numero:hover{text-decoration:underline}
.accueil-horaires{font-size:.86rem;color:var(--muted)}
.accueil-tel--carte{background:var(--mist);border:1px solid var(--line);border-radius:var(--radius);padding:18px 22px}
.box .accueil-tel--carte,.notice .accueil-tel--carte{background:#fff}
.notice .accueil-tel{margin:0}
.box .accueil-tel{margin-bottom:0}
/* Variantes sur fond bleu nuit : colonne latérale et pied de page */
.accueil-tel--compact,.accueil-tel--pied{gap:14px;margin:16px 0 0}
.accueil-tel--compact .accueil-photo,.accueil-tel--pied .accueil-photo{flex-basis:80px;width:80px}
.accueil-tel--compact .accueil-nom,.accueil-tel--pied .accueil-nom{color:#fff;font-size:.95rem}
.accueil-tel--compact .accueil-nom span,.accueil-tel--pied .accueil-nom span,.accueil-tel--compact .accueil-horaires,.accueil-tel--pied .accueil-horaires{color:#b9c6d8}
.accueil-tel--compact .accueil-numero,.accueil-tel--pied .accueil-numero{color:#fff;font-size:1.1rem}
.accueil-tel--compact .accueil-horaires{font-size:.8rem}
.accueil-tel--pied{margin:0 0 1em}
@media (max-width:420px){.accueil-tel--carte{align-items:flex-start;padding:16px}.accueil-tel--carte .accueil-photo{flex-basis:88px;width:88px}}
@media print{.accueil-photo{display:none}}
