/* Réglages communs dérivés de la présentation effective de XXI Institut, 13 novembre 2026. */
:root{--display:'Newsreader',Georgia,'Times New Roman',serif;--sans:'Public Sans',system-ui,Arial,sans-serif;--mono:'IBM Plex Mono',ui-monospace,Menlo,monospace;--accent:#1d2b7a;--accent-ink:#fff;--logo-filet:#8c3b4b;--maxw:1240px}
body{font-family:var(--sans);font-size:17px;line-height:1.65;background:var(--paper);color:var(--text)}
*,*::before,*::after{box-sizing:border-box}
main :is(h1,h2,h3,h4){font-family:var(--display)!important;font-weight:500!important;letter-spacing:-.015em}
main :is(.hero,.pagehero,.subhero,.articlehero){background:var(--paper)!important;color:var(--text);border-bottom:1px solid var(--rule);padding-block:66px}
main :is(.hero,.pagehero,.subhero,.articlehero) h1{font:500 clamp(44px,5vw,68px)/1.05 var(--display)!important;color:var(--accent)!important;max-width:19ch;letter-spacing:-.015em;margin:0 0 24px}
main :is(.hero,.pagehero,.subhero,.articlehero) h1 em{color:inherit!important}
main :is(.hero,.pagehero,.subhero,.articlehero) :is(.lead,.chapo){font:400 18px/1.55 var(--sans);color:var(--text);max-width:64ch;margin:20px 0 0}
main :is(.hero,.pagehero,.subhero,.articlehero) .folio{align-items:start}
main :is(.eyebrow,.overline,.rub,.cat,.meta){font-family:var(--mono);font-size:12px;letter-spacing:.04em}
main :is(.sec,.section){padding-block:72px}
main :is(h2.t,.section-heading h2){font:500 clamp(30px,3.4vw,44px)/1.1 var(--display)!important;max-width:22ch}
main :is(.card,.course,.dom-carte,.publication-card,.client,.servicecard,.tile){border-radius:0!important;box-shadow:none!important;transform:none!important;background:transparent!important;border-color:var(--rule)!important}
main :is(.card,.course,.dom-carte,.publication-card,.client,.servicecard,.tile) :is(h2,h3){font:500 clamp(22px,2vw,29px)/1.2 var(--display)!important;color:var(--ink)}
main :is(.card,.course,.dom-carte,.publication-card,.servicecard,.tile) p{line-height:1.55}
main :is(.card,.course,.dom-carte,.publication-card,.servicecard,.tile) a:hover{text-decoration:underline;text-underline-offset:4px}
:is(a,button,input,select,textarea):focus-visible{outline:3px solid var(--accent);outline-offset:4px}
:is(.button,.btn,.home-button){border-radius:0;box-shadow:none;font-family:var(--sans);font-weight:600}
main a{text-underline-offset:4px}
header.top .logo{text-decoration:none}
header.top .logo .bar{background:var(--logo-filet)}
header.top .wrap{min-height:74px;align-items:center}
header.top nav.nav>a{font:500 14px/1.4 var(--sans)}
main :is(.prose,.article-prose,.reading-prose,.daily-body) p{max-width:64ch;line-height:1.7}
main :is(.prose,.article-prose,.reading-prose,.daily-body) h2{margin-top:36px}
main .defis{max-width:64ch;margin-top:24px}
main .defis>div{padding-block:12px}
body[data-xxi-site="avocats"] main .hero h1.home-title{font-weight:500!important}
/* Accueil : une fonction stable pour chacune des trois familles. */
body.xxi-home main :is(p,.lead,.chapo,.note,.role,.pour,.defis dd):not(.meta):not(.date):not(.cat):not(.rub):not(.eyebrow):not(.lbl):not(.src){font-family:var(--sans)!important;font-style:normal}
body.xxi-home main :is(h1,h2,h3,h4){font-family:var(--display)!important}
body.xxi-home main :is(.rub,.date,.cat,.meta,.lbl,.code,.eyebrow,.src,.defis dt){font-family:var(--mono)!important}
body[data-xxi-site="avocats"] footer .g{grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr));gap:32px}
body[data-xxi-site="formations"] main .hero .recueil-col{display:block}
body[data-xxi-site="formations"] main .hero .heroaside{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:40px;margin-top:38px;padding-top:24px;border-top:1px solid var(--rule)}
body[data-xxi-site="formations"] main .heroaside .home-search{grid-column:1;grid-row:1 / span 5;margin:0}
body[data-xxi-site="formations"] main .heroaside>:not(.home-search){grid-column:2}
body[data-xxi-site="formations"] main .heroaside .asidequote{font-size:24px;margin-block:12px}
body[data-xxi-site="formations"] main .heroaside .asiderow{padding-block:8px}
body[data-xxi-site="formations"] main .hero .actions{margin-top:28px}
body[data-xxi-site="formations"] main .hero .wrap.folio{padding-inline:24px}
@media(max-width:1000px){
main .folio,body.recueil main .folio{grid-template-columns:1fr;gap:18px}
main .folio>.marge,body.recueil main .folio>.marge{grid-column:1}
main .folio>.marge .rub{max-width:220px}
main :is(.hero,.pagehero,.subhero,.articlehero){padding-block:48px}
main :is(.hero,.pagehero,.subhero,.articlehero) h1{font-size:clamp(36px,6vw,56px)!important}
}
@media(max-width:700px){
main :is(.sec,.section){padding-block:48px}
body[data-xxi-site="avocats"] footer .g{grid-template-columns:1fr}
body[data-xxi-site="formations"] main .hero .heroaside{display:block}
body[data-xxi-site="formations"] main .heroaside .home-search{margin-bottom:28px}
main :is(.hero,.pagehero,.subhero,.articlehero) h1{font-size:clamp(34px,8vw,44px)!important}
}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){--accent:#9aa8f2;--accent-ink:#0f1220}}
@media(min-width:1121px){header.top .menu-m{display:none!important}}
@media(max-width:1120px){header.top .wrap,body.recueil header.top .wrap{flex-wrap:wrap;gap:12px}header.top .menu-m,body.recueil header.top .menu-m{display:block!important}header.top nav.nav,body.recueil header.top nav.nav{display:none!important;width:100%;order:4;flex-direction:column;margin:0;padding:8px 0;border-top:1px solid var(--rule)}header.top nav.nav.open,body.recueil header.top nav.nav.open{display:flex!important}header.top .cta-h{margin-left:auto}}
