/* Concerneo — composants (servis). Dépend de cn-tokens.css. Préfixe .cn- */
*,*::before,*::after{box-sizing:border-box}
.cn-visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
body.cn{margin:0;font-family:var(--cn-font);font-size:var(--cn-fs);line-height:var(--cn-lh);color:var(--cn-text-body);background:var(--cn-surface);-webkit-text-size-adjust:100%}
.cn :where(h1,h2,h3){color:var(--cn-text);font-weight:var(--cn-bold)}
.cn h1{font-size:var(--cn-fs-h1);line-height:var(--cn-lh-h1)}
.cn h2{font-size:var(--cn-fs-h2);line-height:var(--cn-lh-h2)}
.cn h3{font-size:var(--cn-fs-h3);line-height:var(--cn-lh-h3)}
/* rythme vertical (specificite 0 via :where : tout composant garde sa propre marge) */
:where(.cn h1){margin:0 0 var(--cn-4)}
:where(.cn h2){margin:var(--cn-7) 0 var(--cn-5)}
:where(.cn h3){margin:var(--cn-5) 0 var(--cn-3)}
:where(.cn-card,.cn-entry,.cn-modal__body,.cn-accordion__body,.cn-alert__body,.cn-footer) :where(h1,h2,h3):first-child{margin-top:0}
.cn-entry h2{margin:0 0 var(--cn-3)}
.cn p{margin:0 0 var(--cn-4);max-width:72ch}
.cn :where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:var(--cn-bd-accent) solid var(--cn-focus);outline-offset:2px;border-radius:2px}
/* liens */
.cn-link{color:var(--cn-link);text-decoration:underline;text-underline-offset:2px}
.cn-link:hover{color:var(--cn-link-hover)}
.cn-link--ext,.cn-link--dl{display:inline-flex;align-items:center;gap:var(--cn-1)}
.cn-skip{position:absolute;left:var(--cn-3);top:-3rem;background:var(--cn-action);color:var(--cn-on-action);padding:var(--cn-2) var(--cn-3);z-index:60;transition:top .15s}
.cn-skip:focus{top:var(--cn-3)}
/* layout */
.cn-container{width:100%;max-width:var(--cn-container);margin-inline:auto;padding-inline:var(--cn-4)}
.cn-section{padding-block:var(--cn-6)}
.cn-stack>*+*{margin-top:var(--cn-4)}
.cn-grid{display:grid;gap:var(--cn-4)}
@media(min-width:768px){.cn-grid--2{grid-template-columns:repeat(2,1fr)}.cn-grid--3{grid-template-columns:repeat(3,1fr)}}
/* bandeau indépendance + thème (fin, neutre) */
.cn-ribbon{background:var(--cn-sunk);border-bottom:var(--cn-bd) solid var(--cn-border);font-size:var(--cn-fs-micro);line-height:var(--cn-lh-micro);color:var(--cn-text-muted)}
.cn-ribbon__inner{display:flex;align-items:center;gap:var(--cn-3);min-height:28px;flex-wrap:wrap}
.cn-ribbon__theme{margin-left:auto;display:flex;gap:var(--cn-1)}
.cn-themebtn{background:transparent;border:var(--cn-bd) solid transparent;color:var(--cn-text-muted);font:inherit;font-size:var(--cn-fs-micro);min-height:28px;padding:0 var(--cn-2);cursor:pointer}
.cn-themebtn[aria-pressed="true"]{color:var(--cn-action);border-bottom-color:var(--cn-action)}
/* en-tête */
.cn-header{background:var(--cn-surface);border-bottom:var(--cn-bd) solid var(--cn-border)}
.cn-header__row{display:flex;align-items:center;gap:var(--cn-4);min-height:64px;flex-wrap:wrap}
.cn-brand{display:inline-flex;flex-direction:column;text-decoration:none;color:var(--cn-text)}
.cn-brand__name{font-weight:var(--cn-bold);font-size:var(--cn-fs-h3);line-height:1.1;letter-spacing:-.01em}
.cn-brand__tag{font-size:var(--cn-fs-micro);line-height:var(--cn-lh-micro);color:var(--cn-text-muted)}
.cn-header__entry{margin-left:auto}
/* navigation à menus + mobile */
.cn-nav{background:var(--cn-surface);border-bottom:var(--cn-bd) solid var(--cn-border)}
.cn-nav__toggle{display:inline-flex;align-items:center;gap:var(--cn-2);min-height:var(--cn-tap);padding:0 var(--cn-3);background:transparent;border:0;font:inherit;color:var(--cn-text);cursor:pointer}
.cn-nav__list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap}
.cn-nav__item{position:relative}
.cn-nav__link{display:inline-flex;align-items:center;gap:var(--cn-1);min-height:var(--cn-tap);padding:0 var(--cn-3);color:var(--cn-text);text-decoration:none;border-bottom:3px solid transparent;font-weight:var(--cn-med)}
.cn-nav__link:hover{background:var(--cn-sunk)}
.cn-nav__link[aria-current="page"]{border-bottom-color:var(--cn-action);color:var(--cn-action)}
.cn-nav__menu{list-style:none;margin:0;padding:var(--cn-1) 0;position:absolute;left:0;top:100%;min-width:220px;background:var(--cn-surface);border:var(--cn-bd) solid var(--cn-border);z-index:40;display:none}
.cn-nav__item:hover>.cn-nav__menu,.cn-nav__item:focus-within>.cn-nav__menu,.cn-nav__menu[data-open="true"]{display:block}
.cn-nav__menu a{display:block;padding:var(--cn-2) var(--cn-3);color:var(--cn-text);text-decoration:none}
.cn-nav__menu a:hover{background:var(--cn-sunk)}
@media(max-width:767px){
  .cn-nav__list{display:none;flex-direction:column}
  .cn-nav__list[data-open="true"]{display:flex}
  .cn-nav__menu{position:static;border:0;padding-left:var(--cn-4);display:block}
}
@media(min-width:768px){.cn-nav__toggle{display:none}}
/* fil d'Ariane + pager */
.cn-breadcrumb{font-size:var(--cn-fs-micro);line-height:var(--cn-lh-micro);color:var(--cn-text-muted)}
.cn-breadcrumb ol{list-style:none;margin:0;padding:var(--cn-3) 0;display:flex;flex-wrap:wrap;gap:var(--cn-1)}
.cn-breadcrumb li+li::before{content:"/";margin-right:var(--cn-1);color:var(--cn-field-line)}
.cn-breadcrumb a{color:var(--cn-text-muted);text-decoration:underline}
.cn-breadcrumb [aria-current="page"]{color:var(--cn-text)}
.cn-pager{display:flex;justify-content:space-between;gap:var(--cn-3);border-top:var(--cn-bd) solid var(--cn-border);padding-top:var(--cn-4);margin-top:var(--cn-5)}
/* bandeau d'entrée (SIREN/SIRET/nom) */
.cn-entry{background:var(--cn-action-tint);border-block:var(--cn-bd) solid var(--cn-border)}
.cn-entry__inner{padding-block:var(--cn-5)}
.cn-entry__row{display:flex;gap:var(--cn-2);flex-wrap:wrap}
.cn-entry__row .cn-input{flex:1 1 260px;background:var(--cn-surface)}
/* boutons */
.cn-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--cn-2);height:var(--cn-h-md);min-height:var(--cn-tap);padding:0 var(--cn-4);font-family:inherit;font-size:var(--cn-fs);line-height:1;font-weight:var(--cn-med);border:var(--cn-bd) solid transparent;border-radius:var(--cn-r-0);cursor:pointer;text-decoration:none;white-space:nowrap}
.cn-btn .cn-ico{width:20px;height:20px}
.cn-btn--sm{height:var(--cn-h-sm);min-height:var(--cn-h-sm);font-size:var(--cn-fs-sm);padding:0 var(--cn-3)}
.cn-btn--lg{height:var(--cn-h-lg);padding:0 var(--cn-5)}
.cn-btn--primary{background:var(--cn-action);color:var(--cn-on-action)}
.cn-btn--primary:hover{background:var(--cn-action-hover)}
.cn-btn--primary:active{background:var(--cn-action-active)}
.cn-btn--secondary{background:transparent;color:var(--cn-action);border-color:var(--cn-action)}
.cn-btn--secondary:hover{background:var(--cn-action-tint)}
.cn-btn--tertiary{background:transparent;color:var(--cn-action);padding-inline:var(--cn-2)}
.cn-btn--tertiary:hover{text-decoration:underline;text-underline-offset:2px}
.cn-btn[disabled],.cn-btn[aria-disabled="true"]{background:var(--cn-sunk);color:var(--cn-text-muted);border-color:var(--cn-border);cursor:not-allowed;pointer-events:none}
.cn-btn-group{display:inline-flex;gap:var(--cn-2);flex-wrap:wrap}
/* champs */
.cn-field{display:block;margin-bottom:var(--cn-4)}
.cn-label{display:block;font-weight:var(--cn-med);color:var(--cn-text);margin-bottom:var(--cn-1)}
.cn-help{font-size:var(--cn-fs-micro);line-height:var(--cn-lh-micro);color:var(--cn-text-muted);margin-top:var(--cn-1)}
.cn-input,.cn-select,.cn-textarea{width:100%;min-height:var(--cn-tap);padding:var(--cn-2) var(--cn-3);font-family:inherit;font-size:var(--cn-fs);color:var(--cn-text);background:var(--cn-sunk);border:0;border-radius:var(--cn-r-1) var(--cn-r-1) 0 0;border-bottom:var(--cn-bd-accent) solid var(--cn-field-line)}
.cn-textarea{min-height:120px;line-height:var(--cn-lh)}
.cn-input:hover,.cn-select:hover,.cn-textarea:hover{border-bottom-color:var(--cn-text-muted)}
.cn-input:focus,.cn-select:focus,.cn-textarea:focus{border-bottom-color:var(--cn-action);outline-offset:0}
.cn-field--error .cn-input{border-bottom-color:var(--cn-error-fg)}
.cn-field--success .cn-input{border-bottom-color:var(--cn-success-fg)}
.cn-feedback{font-size:var(--cn-fs-micro);line-height:var(--cn-lh-micro);margin-top:var(--cn-1);display:inline-flex;align-items:center;gap:var(--cn-1)}
.cn-feedback--error{color:var(--cn-error-fg)}
.cn-feedback--success{color:var(--cn-success-fg)}
.cn-check{display:flex;gap:var(--cn-3);align-items:flex-start;padding:var(--cn-3);min-height:var(--cn-tap);border:var(--cn-bd) solid var(--cn-border);cursor:pointer}
.cn-check:hover{background:var(--cn-sunk)}
.cn-check input{width:20px;height:20px;margin:2px 0 0;accent-color:var(--cn-action);flex:0 0 auto}
.cn-check--rich{flex-direction:column;gap:var(--cn-1)}
.cn-check--rich>div:first-child{display:flex;gap:var(--cn-3);align-items:center}
.cn-check__desc{font-size:var(--cn-fs-micro);line-height:var(--cn-lh-micro);color:var(--cn-text-muted);padding-left:calc(20px + var(--cn-3))}
.cn-check:has(input:checked){border-color:var(--cn-action);background:var(--cn-action-tint)}
/* étiquettes / badges statut / badges message */
.cn-tag{display:inline-flex;align-items:center;gap:var(--cn-1);font-size:var(--cn-fs-micro);line-height:1;padding:var(--cn-1) var(--cn-2);border-radius:var(--cn-r-pill);background:var(--cn-sunk);color:var(--cn-text-body);border:var(--cn-bd) solid var(--cn-border)}
.cn-badge{display:inline-flex;align-items:center;gap:var(--cn-1);max-width:100%;font-size:var(--cn-fs-sm);line-height:1.2;font-weight:var(--cn-bold);padding:var(--cn-1) var(--cn-2);border-radius:var(--cn-r-1);border:var(--cn-bd-accent) solid}
.cn-badge .cn-ico{width:16px;height:16px;flex:0 0 auto}
.cn-badge--concerne{background:var(--cn-st-concerne-bg);color:var(--cn-st-concerne-fg);border-color:var(--cn-st-concerne-bd);border-style:var(--cn-st-concerne-bds)}
.cn-badge--principe{background:var(--cn-st-principe-bg);color:var(--cn-st-principe-fg);border-color:var(--cn-st-principe-bd);border-style:var(--cn-st-principe-bds)}
.cn-badge--probanon{background:var(--cn-st-probanon-bg);color:var(--cn-st-probanon-fg);border-color:var(--cn-st-probanon-bd);border-style:var(--cn-st-probanon-bds)}
.cn-badge--non{background:var(--cn-st-non-bg);color:var(--cn-st-non-fg);border-color:var(--cn-st-non-bd);border-style:var(--cn-st-non-bds)}
.cn-badge--success{background:var(--cn-success-bg);color:var(--cn-success-fg);border-color:var(--cn-success-bd)}
.cn-badge--info{background:var(--cn-info-bg);color:var(--cn-info-fg);border-color:var(--cn-info-bd)}
.cn-badge--warn{background:var(--cn-warn-bg);color:var(--cn-warn-fg);border-color:var(--cn-warn-bd)}
.cn-badge--error{background:var(--cn-error-bg);color:var(--cn-error-fg);border-color:var(--cn-error-bd)}
/* cartes + carte de règle */
.cn-card{position:relative;background:var(--cn-surface);border:var(--cn-bd) solid var(--cn-border);border-radius:var(--cn-r-0);padding:var(--cn-4)}
.cn-card__accent{position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--cn-action)}
.cn-card__meta{display:flex;gap:var(--cn-3);align-items:center;flex-wrap:wrap;font-size:var(--cn-fs-micro);line-height:var(--cn-lh-micro);color:var(--cn-text-muted);margin-bottom:var(--cn-2)}
.cn-card__title{font-size:var(--cn-fs-h3);line-height:var(--cn-lh-h3);margin:0 0 var(--cn-2)}
.cn-card__title a{color:var(--cn-text);text-decoration:none}
.cn-card__title a:hover{text-decoration:underline}
.cn-rule{--cn-accent:var(--cn-action)}
.cn-rule .cn-card__accent{background:var(--cn-accent)}
.cn-rule[data-statut="concerne"]{--cn-accent:var(--cn-action)}
.cn-rule[data-statut="principe"]{--cn-accent:var(--cn-action)}
.cn-rule[data-statut="probanon"]{--cn-accent:var(--cn-field-line)}
.cn-rule[data-statut="non"]{--cn-accent:var(--cn-border)}
/* citation officielle (composant phare) */
.cn-citation{background:var(--cn-sunk);border:var(--cn-bd) solid var(--cn-border);border-left:var(--cn-5) solid var(--cn-action);padding:var(--cn-4)}
.cn-citation__text{margin:0 0 var(--cn-3);color:var(--cn-text)}
.cn-citation__src{font-size:var(--cn-fs-micro);line-height:var(--cn-lh-micro);color:var(--cn-text-muted);display:flex;flex-wrap:wrap;gap:var(--cn-1) var(--cn-3);align-items:center}
.cn-citation__actions{margin-top:var(--cn-3);display:flex;gap:var(--cn-2);flex-wrap:wrap}
/* alertes / encadré / notice datée */
.cn-alert{display:flex;gap:var(--cn-3);padding:var(--cn-4);border:var(--cn-bd) solid;border-left-width:var(--cn-1)}
.cn-alert .cn-ico{flex:0 0 auto;width:24px;height:24px;margin-top:2px}
.cn-alert__title{font-weight:var(--cn-bold);color:var(--cn-text);margin:0 0 var(--cn-1)}
.cn-alert__body{color:var(--cn-text-body)}
.cn-alert__body p{margin:0}
.cn-alert--info{background:var(--cn-info-bg);border-color:var(--cn-info-bd);color:var(--cn-info-fg)}
.cn-alert--success{background:var(--cn-success-bg);border-color:var(--cn-success-bd);color:var(--cn-success-fg)}
.cn-alert--warn{background:var(--cn-warn-bg);border-color:var(--cn-warn-bd);color:var(--cn-warn-fg)}
.cn-alert--error{background:var(--cn-error-bg);border-color:var(--cn-error-bd);color:var(--cn-error-fg)}
.cn-callout{background:var(--cn-action-tint);border-left:var(--cn-1) solid var(--cn-action);padding:var(--cn-4)}
.cn-notice{background:var(--cn-info-bg);color:var(--cn-info-fg);border-bottom:var(--cn-bd) solid var(--cn-info-bd)}
.cn-notice__inner{display:flex;gap:var(--cn-3);align-items:center;padding-block:var(--cn-2);font-size:var(--cn-fs-sm)}
.cn-notice time{font-weight:var(--cn-bold)}
/* accordéon + onglets */
.cn-accordion{border:var(--cn-bd) solid var(--cn-border)}
.cn-accordion+.cn-accordion{border-top:0}
.cn-accordion>summary{cursor:pointer;padding:var(--cn-3) var(--cn-4);min-height:var(--cn-tap);display:flex;align-items:center;justify-content:space-between;gap:var(--cn-3);font-weight:var(--cn-med);color:var(--cn-text);list-style:none}
.cn-accordion>summary::-webkit-details-marker{display:none}
.cn-accordion>summary:hover{background:var(--cn-sunk)}
.cn-accordion[open]>summary .cn-ico{transform:rotate(180deg)}
.cn-accordion .cn-ico{transition:transform .15s}
.cn-accordion__body{padding:0 var(--cn-4) var(--cn-4);color:var(--cn-text-body)}
.cn-tabs{border-bottom:var(--cn-bd) solid var(--cn-border);display:flex;gap:var(--cn-1);flex-wrap:wrap}
.cn-tab{min-height:var(--cn-tap);padding:0 var(--cn-3);background:transparent;border:0;border-bottom:3px solid transparent;font:inherit;font-weight:var(--cn-med);color:var(--cn-text);cursor:pointer}
.cn-tab[aria-selected="true"]{border-bottom-color:var(--cn-action);color:var(--cn-action)}
.cn-tabpanel{padding-top:var(--cn-4)}
/* sommaire latéral collant + repli mobile */
.cn-layout{display:block}
@media(min-width:1024px){.cn-layout{display:grid;grid-template-columns:260px 1fr;gap:var(--cn-6);align-items:start}}
.cn-toc{font-size:var(--cn-fs-sm)}
.cn-toc__list{list-style:none;margin:0;padding:0;border-left:var(--cn-bd-accent) solid var(--cn-border)}
.cn-toc__list a{display:block;padding:var(--cn-1) var(--cn-3);color:var(--cn-text-body);text-decoration:none;border-left:var(--cn-bd-accent) solid transparent;margin-left:-2px}
.cn-toc__list a:hover{color:var(--cn-action)}
.cn-toc__list a[aria-current="true"]{color:var(--cn-action);border-left-color:var(--cn-action);font-weight:var(--cn-med)}
@media(min-width:1024px){.cn-toc{position:sticky;top:var(--cn-4);max-height:calc(100vh - var(--cn-6));overflow:auto}}
@media(max-width:1023px){.cn-toc{margin-bottom:var(--cn-5)}.cn-toc__title{cursor:pointer}}
/* arborescence */
.cn-tree,.cn-tree ul{list-style:none;margin:0;padding:0}
.cn-tree ul{padding-left:var(--cn-4);border-left:var(--cn-bd) solid var(--cn-border);margin-left:var(--cn-2)}
.cn-tree summary,.cn-tree li>span{min-height:var(--cn-tap);display:flex;align-items:center;gap:var(--cn-2);padding:var(--cn-1) var(--cn-2)}
.cn-tree summary{cursor:pointer;list-style:none}
.cn-tree summary::-webkit-details-marker{display:none}
.cn-tree summary:hover{background:var(--cn-sunk)}
.cn-tree details[open]>summary .cn-ico{transform:rotate(180deg)}
/* tableau */
.cn-table-wrap{overflow-x:auto;border:var(--cn-bd) solid var(--cn-border)}
.cn-table{width:100%;border-collapse:collapse;font-size:var(--cn-fs-sm)}
.cn-table caption{text-align:left;padding:var(--cn-3) var(--cn-4);color:var(--cn-text-muted);font-size:var(--cn-fs-micro)}
.cn-table th,.cn-table td{text-align:left;padding:var(--cn-2) var(--cn-3);border-bottom:var(--cn-bd) solid var(--cn-border);min-height:24px}
.cn-table thead th{position:sticky;top:0;background:var(--cn-sunk);color:var(--cn-text);font-weight:var(--cn-bold);z-index:1}
.cn-table tbody tr:hover{background:var(--cn-sunk)}
.cn-table__sort{background:transparent;border:0;font:inherit;font-weight:var(--cn-bold);color:var(--cn-text);cursor:pointer;display:inline-flex;align-items:center;gap:var(--cn-1);min-height:32px}
.cn-table__sort[aria-sort="ascending"] .cn-ico{transform:rotate(180deg)}
.cn-table__sort[aria-sort="none"] .cn-ico{opacity:.4}
/* pagination */
.cn-pagination{display:flex;gap:var(--cn-1);flex-wrap:wrap;list-style:none;margin:0;padding:0}
.cn-pagination a,.cn-pagination span{display:inline-flex;align-items:center;justify-content:center;min-width:var(--cn-tap);min-height:var(--cn-tap);padding:0 var(--cn-2);text-decoration:none;color:var(--cn-text);border:var(--cn-bd) solid var(--cn-border)}
.cn-pagination a:hover{background:var(--cn-sunk)}
.cn-pagination [aria-current="page"]{background:var(--cn-action);color:var(--cn-on-action);border-color:var(--cn-action)}
/* frise des échéances */
.cn-timeline{list-style:none;margin:0;padding:0;border-left:var(--cn-bd-accent) solid var(--cn-border)}
.cn-timeline li{position:relative;padding:0 0 var(--cn-5) var(--cn-5)}
.cn-timeline li::before{content:"";position:absolute;left:-7px;top:2px;width:12px;height:12px;background:var(--cn-surface);border:var(--cn-bd-accent) solid var(--cn-field-line)}
.cn-timeline li[data-state="done"]::before{background:var(--cn-action);border-color:var(--cn-action)}
.cn-timeline li[data-state="next"]::before{border-color:var(--cn-action)}
.cn-timeline time{font-weight:var(--cn-bold);color:var(--cn-text);display:block}
/* indicateur d'étapes */
.cn-steps{list-style:none;margin:0;padding:0;display:flex;gap:var(--cn-2);flex-wrap:wrap;counter-reset:s}
.cn-steps li{display:flex;align-items:center;gap:var(--cn-2);color:var(--cn-text-muted)}
.cn-steps li::before{counter-increment:s;content:counter(s);display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--cn-r-pill);border:var(--cn-bd-accent) solid var(--cn-border);font-size:var(--cn-fs-sm);font-weight:var(--cn-bold)}
.cn-steps li[aria-current="step"]{color:var(--cn-action)}
.cn-steps li[aria-current="step"]::before{border-color:var(--cn-action);color:var(--cn-action)}
.cn-steps li[data-state="done"]::before{background:var(--cn-action);border-color:var(--cn-action);color:var(--cn-on-action)}
/* modale (dialog natif) */
.cn-modal{padding:0;border:var(--cn-bd) solid var(--cn-border);max-width:560px;width:calc(100% - var(--cn-6));background:var(--cn-surface);color:var(--cn-text-body)}
.cn-modal::backdrop{background:rgba(0,0,0,.5)}
.cn-modal__head{display:flex;justify-content:space-between;align-items:center;gap:var(--cn-3);padding:var(--cn-4);border-bottom:var(--cn-bd) solid var(--cn-border)}
.cn-modal__body{padding:var(--cn-4)}
.cn-modal__foot{padding:var(--cn-4);border-top:var(--cn-bd) solid var(--cn-border);display:flex;gap:var(--cn-2);justify-content:flex-end}
/* info-bulle (glossaire) */
.cn-tip{position:relative;border-bottom:1px dotted var(--cn-action);cursor:help}
.cn-tip__bubble{position:absolute;left:0;bottom:calc(100% + 6px);width:260px;max-width:80vw;background:var(--cn-text);color:var(--cn-surface);font-size:var(--cn-fs-micro);line-height:var(--cn-lh-micro);padding:var(--cn-2) var(--cn-3);z-index:50;display:none}
.cn-tip:hover .cn-tip__bubble,.cn-tip:focus-within .cn-tip__bubble{display:block}
/* retour en haut */
.cn-totop{position:fixed;right:var(--cn-4);bottom:calc(var(--cn-4) + env(safe-area-inset-bottom,0));z-index:40}
/* pied à trois étages */
.cn-footer{background:var(--cn-sunk);border-top:var(--cn-bd) solid var(--cn-border);margin-top:var(--cn-8)}
.cn-footer__links{padding-block:var(--cn-6)}
.cn-footer__about{padding-block:var(--cn-5);border-top:var(--cn-bd) solid var(--cn-border);color:var(--cn-text-muted);font-size:var(--cn-fs-sm)}
.cn-footer__legal{padding-block:var(--cn-4);border-top:var(--cn-bd) solid var(--cn-border);font-size:var(--cn-fs-micro);color:var(--cn-text-muted);display:flex;flex-wrap:wrap;gap:var(--cn-2) var(--cn-4)}
/* icônes */
.cn-ico{display:inline-block;width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle;flex:0 0 auto}
/* mouvement réduit + impression */
@media(prefers-reduced-motion:reduce){.cn *,.cn *::before,.cn *::after{transition:none!important;animation:none!important}}
@media print{
 .cn-ribbon,.cn-nav,.cn-entry,.cn-notice,.cn-skip,.cn-pager,.cn-totop,.cn-header__entry,.cn-btn{display:none!important}
 .cn{color:#000;background:#fff}
 .cn-card,.cn-citation,.cn-alert,.cn-table-wrap{border:1px solid #000;break-inside:avoid}
 .cn-citation{border-left-width:4px}
 .cn-link[href^="http"]::after{content:" ("attr(href)")";font-size:.85em;color:#333;word-break:break-all}
}
/* utilitaires (évitent tout style= en ligne dans le HTML) */
.cn-ico--sm{width:16px;height:16px}
.cn-ico--1em{width:1em;height:1em}
.cn-ico--flip{transform:rotate(180deg)}
.cn-m0{margin:0}
.cn-mt-2{margin-top:var(--cn-2)}
.cn-mt-3{margin-top:var(--cn-3)}
.cn-text-base{font-size:var(--cn-fs);line-height:var(--cn-lh)}
.cn-fieldset-bare{border:0;padding:0;margin:0}
/* (6) tableau en fiches sous 768px : chaque ligne = une fiche, en-tete repris en libelle (data-label) */
@media(max-width:767px){
 .cn-table-wrap:has(.cn-table--cards){border:0;overflow:visible}
 .cn-table--cards thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
 .cn-table--cards,.cn-table--cards tbody,.cn-table--cards tr,.cn-table--cards td{display:block;width:100%}
 .cn-table--cards tr{border:var(--cn-bd) solid var(--cn-border);margin-bottom:var(--cn-3)}
 .cn-table--cards td{display:flex;gap:var(--cn-3);justify-content:space-between;align-items:baseline;border-bottom:var(--cn-bd) solid var(--cn-border);padding:var(--cn-2) var(--cn-3)}
 .cn-table--cards td:last-child{border-bottom:0}
 .cn-table--cards td::before{content:attr(data-label);font-weight:var(--cn-bold);color:var(--cn-text);flex:0 0 42%}
}
