/* =====================================================================
 * Fichier : assets/css/components/legal.css
 * Projet  : Brennholz Shop24
 * Rôle    : Mise en page commune des pages légales et d'information
 *           (impressum, agb, datenschutz, widerrufsbelehrung,
 *           cookie-richtlinie, entsorgung, versand-lieferung,
 *           zahlungsarten, seite) : bandeau, grille de lecture, sommaire
 *           collant (repliable sur mobile), section courante surlignée,
 *           ancres copiables, encadrés, carte « société », FAQ, tableaux
 *           responsives, liens croisés, page 404 et impression propre.
 *           Chargé via $page['extra_css'] (includes/legal_functions.php).
 *           Script associé : assets/js/components/legal.js
 * ===================================================================== */

/* ---------------------------------------------------------------------
 * 1. Bandeau
 * ------------------------------------------------------------------- */
.lx-hero { padding-bottom: clamp(3rem, 6vw, 4.6rem); }
.lx-hero::after {
    content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 4px;
    background: var(--hfk-grad-fire-h); background-size: 200% 100%; animation: hfk-gradient-pan 8s linear infinite;
}
.lx-hero-embers { position: absolute; inset: 0; overflow: hidden; pointer-events: none; }
.lx-hero-inner { position: relative; z-index: 2; }
.lx-hero .eyebrow { margin-top: 1.1rem; animation: hfk-fade-up .6s var(--hfk-ease) both; }
.lx-hero h1 { font-size: clamp(2rem, 4.4vw, 3.3rem); max-width: 900px; overflow-wrap: anywhere; animation: hfk-fade-up .7s .08s var(--hfk-ease) both; }
.lx-hero .lx-hero-intro { font-size: 1.06rem; max-width: 760px; animation: hfk-fade-up .7s .16s var(--hfk-ease) both; }
.lx-hero-meta { display: flex; flex-wrap: wrap; gap: .6rem; margin: 1.4rem 0 0; padding: 0; list-style: none; animation: hfk-fade-up .7s .24s var(--hfk-ease) both; }
.lx-hero-meta li {
    display: inline-flex; align-items: center; gap: .5rem; padding: .5rem .85rem; font-size: .88rem;
    color: #F3EBE3; background: rgba(255, 255, 255, .08); border-left: 3px solid var(--hfk-flame);
    transition: background .25s, transform .25s var(--hfk-ease);
}
.lx-hero-meta li:nth-child(2) { border-color: var(--hfk-amber); }
.lx-hero-meta li:nth-child(3) { border-color: var(--hfk-forest); }
.lx-hero-meta li:hover { background: rgba(255, 255, 255, .14); transform: translateY(-2px); }
.lx-hero-meta i { width: 16px; color: var(--hfk-amber); text-align: center; }

/* ---------------------------------------------------------------------
 * 2. Grille de lecture
 * ------------------------------------------------------------------- */
.lx-body { padding: clamp(2rem, 5vw, 4rem) 0 clamp(3rem, 6vw, 5rem); background: linear-gradient(180deg, var(--hfk-cream) 0, #fff 420px); }
.lx-grid { display: grid; grid-template-columns: minmax(0, 290px) minmax(0, 1fr); gap: clamp(1.5rem, 3.5vw, 3.5rem); align-items: start; }
.lx-aside { position: sticky; top: calc(var(--hfk-header-h) + 1.2rem); display: flex; flex-direction: column; gap: 1rem; max-height: calc(100vh - var(--hfk-header-h) - 2.4rem); }
.lx-content { min-width: 0; max-width: 880px; font-size: 1.02rem; line-height: 1.75; color: var(--hfk-text); }
.lx-content p { margin: 0 0 1rem; }
.lx-content a:not(.btn):not(.lx-anchor) { color: var(--hfk-flame-dark); text-decoration: underline; text-decoration-color: rgba(228, 84, 10, .35); text-underline-offset: 3px; transition: color .2s, text-decoration-color .2s; overflow-wrap: anywhere; }
.lx-content a:not(.btn):not(.lx-anchor):hover { color: var(--hfk-ember); text-decoration-color: currentColor; }
.lx-content strong { color: var(--hfk-charcoal); }
.lx-content h3 { font-size: 1.12rem; margin: 1.6rem 0 .6rem; color: var(--hfk-charcoal); }
.lx-content ul, .lx-content ol { margin: 0 0 1.1rem; }
.lx-content ul { padding-left: 0; list-style: none; }
.lx-content ul > li { position: relative; padding-left: 1.5rem; margin-bottom: .45rem; }
.lx-content ul > li::before { content: ''; position: absolute; left: .2rem; top: .7em; width: 8px; height: 8px; background: var(--hfk-flame); transform: rotate(45deg); }
.lx-content ol { padding-left: 1.4rem; }
.lx-content ol > li { margin-bottom: .45rem; padding-left: .2rem; }
.lx-content ol > li::marker { color: var(--hfk-flame-dark); font-weight: 700; }
.lx-content address { margin: 0; font-style: normal; }
.lx-content .lx-plain-list > li { padding-left: 0; }
.lx-content .lx-plain-list > li::before { display: none; }

/* ---------------------------------------------------------------------
 * 3. Sommaire collant
 * ------------------------------------------------------------------- */
.lx-toc { display: flex; flex-direction: column; min-height: 0; background: #fff; border: 1px solid var(--hfk-border); border-top: 4px solid var(--hfk-flame); box-shadow: var(--hfk-shadow-sm); }
.lx-toc[hidden] { display: none; }
.lx-toc-toggle {
    display: flex; align-items: center; gap: .7rem; width: 100%; padding: .9rem 1rem; text-align: left;
    background: none; border: 0; color: var(--hfk-charcoal); cursor: default;
}
.lx-toc-toggle-icon { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 36px; width: 36px; height: 36px; background: var(--hfk-flame-light); color: var(--hfk-flame-dark); }
.lx-toc-toggle-text { display: flex; flex-direction: column; min-width: 0; flex: 1; line-height: 1.25; }
.lx-toc-toggle-text strong { font-family: var(--hfk-font-head); font-size: 1.05rem; }
.lx-toc-toggle-text small { color: var(--hfk-muted); font-size: .8rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lx-toc-chevron { display: none; transition: transform .3s var(--hfk-ease); }
.lx-toc-progress { height: 3px; background: var(--hfk-ash); }
.lx-toc-progress span { display: block; width: 0; height: 100%; background: var(--hfk-grad-fire-h); transition: width .15s linear; }
.lx-toc-panel { min-height: 0; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; }
.lx-toc-list { margin: 0; padding: .4rem 0 .6rem; list-style: none; counter-reset: none; }
.lx-toc-list li { margin: 0; }
.lx-toc-list a {
    position: relative; display: flex; align-items: flex-start; gap: .6rem; padding: .5rem 1rem .5rem 1.1rem;
    color: var(--hfk-text); font-size: .9rem; line-height: 1.35; text-decoration: none;
    transition: background .2s, color .2s, padding-left .25s var(--hfk-ease);
}
.lx-toc-list a::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: var(--hfk-flame); transform: scaleY(0); transition: transform .3s var(--hfk-ease); }
.lx-toc-list a:hover { background: var(--hfk-cream); color: var(--hfk-flame-dark); padding-left: 1.35rem; }
.lx-toc-list a.is-active { background: var(--hfk-flame-light); color: var(--hfk-charcoal); font-weight: 600; }
.lx-toc-list a.is-active::before { transform: scaleY(1); }
.lx-toc-num { flex: 0 0 auto; min-width: 1.6rem; font-family: var(--hfk-font-head); font-weight: 700; color: var(--hfk-flame-dark); }
.lx-toc-list a.is-active .lx-toc-num { color: var(--hfk-ember); }
.lx-toc-label { min-width: 0; overflow-wrap: anywhere; }
.lx-toc-list li.is-hidden-by-filter { display: none; }

/* Outils (imprimer, copier le lien) */
.lx-tools { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; }
.lx-tool {
    display: inline-flex; align-items: center; justify-content: center; gap: .45rem; min-height: 44px; padding: .55rem .6rem;
    background: #fff; border: 1px solid var(--hfk-border); color: var(--hfk-charcoal); font-size: .85rem; font-weight: 600;
    transition: background .25s, color .25s, border-color .25s, transform .25s var(--hfk-ease), box-shadow .25s;
}
.lx-tool i { width: 16px; color: var(--hfk-flame); transition: transform .3s var(--hfk-ease-bounce), color .25s; }
.lx-tool:hover { background: var(--hfk-charcoal); border-color: var(--hfk-charcoal); color: #fff; transform: translateY(-2px); box-shadow: var(--hfk-shadow-sm); }
.lx-tool:hover i { color: var(--hfk-amber); transform: scale(1.18) rotate(-6deg); }
.lx-tool.is-done { background: var(--hfk-forest); border-color: var(--hfk-forest); color: #fff; }
.lx-tool.is-done i { color: #fff; }

/* ---------------------------------------------------------------------
 * 4. Sections et titres
 * ------------------------------------------------------------------- */
.lx-section { position: relative; scroll-margin-top: calc(var(--hfk-header-h) + 1.5rem); padding: 0 0 1.6rem; margin-bottom: 1.8rem; border-bottom: 1px solid var(--hfk-border); }
.lx-section:last-of-type { border-bottom: 0; }
.lx-heading { position: relative; display: flex; align-items: flex-start; gap: .8rem; margin: 0 0 1rem; font-size: clamp(1.3rem, 2.3vw, 1.65rem); line-height: 1.25; color: var(--hfk-charcoal); }
.lx-num {
    display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; min-width: 42px; height: 42px; padding: 0 .55rem;
    font-size: 1rem; color: #fff; background: var(--hfk-grad-ember); box-shadow: 0 6px 16px rgba(229, 56, 59, .25);
    transition: transform .35s var(--hfk-ease-bounce);
}
.lx-section:hover .lx-num { transform: rotate(-5deg) scale(1.06); }
.lx-heading-text { flex: 1; min-width: 0; padding-top: .35rem; overflow-wrap: anywhere; }
.lx-anchor {
    display: inline-flex; align-items: center; justify-content: center; flex: 0 0 34px; width: 34px; height: 34px; margin-top: .2rem;
    color: var(--hfk-muted); background: transparent; border: 1px solid transparent; font-size: .85rem; text-decoration: none;
    opacity: 0; transform: translateX(-6px); transition: opacity .25s, transform .25s var(--hfk-ease), background .2s, color .2s, border-color .2s;
}
.lx-heading:hover .lx-anchor, .lx-anchor:focus-visible { opacity: 1; transform: none; }
.lx-anchor:hover { color: #fff; background: var(--hfk-flame); border-color: var(--hfk-flame); }
.lx-anchor.is-copied { opacity: 1; transform: none; color: #fff; background: var(--hfk-forest); border-color: var(--hfk-forest); }
.lx-section.is-target .lx-heading-text { animation: lx-target 1.8s var(--hfk-ease) 1; }
@keyframes lx-target { 0%, 40% { color: var(--hfk-flame-dark); } 100% { color: inherit; } }
.lx-section.is-target::before { content: ''; position: absolute; left: -1.2rem; top: 0; bottom: 1.6rem; width: 4px; background: var(--hfk-grad-fire); animation: lx-bar 2.2s var(--hfk-ease) forwards; }
@keyframes lx-bar { 0% { opacity: 0; transform: scaleY(0); } 20% { opacity: 1; transform: scaleY(1); } 80% { opacity: 1; } 100% { opacity: 0; } }
.lx-section-body > :last-child { margin-bottom: 0; }
.lx-subgroup-title { margin: 2.4rem 0 1.4rem; padding: .7rem 1rem; font-size: .82rem; letter-spacing: .1em; text-transform: uppercase; color: #fff; background: var(--hfk-charcoal); border-left: 4px solid var(--hfk-amber); }

/* Contenu saisi dans l'administration */
.lx-custom h2 { scroll-margin-top: calc(var(--hfk-header-h) + 1.5rem); display: flex; align-items: flex-start; gap: .6rem; padding-top: 1.4rem; border-top: 1px solid var(--hfk-border); }
.lx-custom h2:first-child { padding-top: 0; border-top: 0; margin-top: 0; }
.lx-custom h2 .lx-anchor { margin-left: auto; }

/* ---------------------------------------------------------------------
 * 5. Encadrés, carte société, définitions
 * ------------------------------------------------------------------- */
.lx-note { display: flex; gap: .9rem; margin: 1.2rem 0; padding: 1rem 1.1rem; border-left: 4px solid var(--hfk-sky); background: #E8F3FA; color: #0A3D5E; transition: transform .3s var(--hfk-ease), box-shadow .3s; }
.lx-note:hover { transform: translateX(3px); box-shadow: var(--hfk-shadow-xs); }
.lx-note p:last-child { margin-bottom: 0; }
.lx-note strong { color: inherit; }
.lx-note-icon { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 34px; width: 34px; height: 34px; background: var(--hfk-sky); color: #fff; }
.lx-note-warn { border-color: var(--hfk-amber); background: var(--hfk-amber-light); color: #5A4200; }
.lx-note-warn .lx-note-icon { background: var(--hfk-amber); color: var(--hfk-charcoal); }
.lx-note-ok { border-color: var(--hfk-forest); background: #E8F6EC; color: #12554D; }
.lx-note-ok .lx-note-icon { background: var(--hfk-forest); }
.lx-note-fire { border-color: var(--hfk-flame); background: var(--hfk-flame-light); color: #6B2A05; }
.lx-note-fire .lx-note-icon { background: var(--hfk-grad-ember); }

.lx-card { position: relative; margin: 1.2rem 0; padding: 1.3rem; background: #fff; border: 1px solid var(--hfk-border); border-top: 4px solid var(--hfk-charcoal); box-shadow: var(--hfk-shadow-sm); transition: box-shadow .3s, transform .3s var(--hfk-ease); }
.lx-card:hover { box-shadow: var(--hfk-shadow); transform: translateY(-2px); }
.lx-card-head { display: flex; gap: 1rem; align-items: flex-start; }
.lx-card-icon { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 48px; width: 48px; height: 48px; background: var(--hfk-grad-fire); color: #fff; font-size: 1.2rem; }
.lx-card-head small { display: block; margin-bottom: .2rem; font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; color: var(--hfk-muted); }
.lx-card-head address { font-weight: 600; color: var(--hfk-charcoal); line-height: 1.55; }
.lx-card-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .1rem 1.4rem; margin: 1.1rem 0 0; padding-top: 1rem; border-top: 1px dashed var(--hfk-border); }
.lx-card-list > div { display: flex; flex-direction: column; padding: .4rem 0; min-width: 0; }
.lx-card-list dt { font-size: .76rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--hfk-muted); }
.lx-card-list dt i { width: 16px; color: var(--hfk-flame); }
.lx-card-list dd { margin: 0; font-weight: 600; color: var(--hfk-charcoal); overflow-wrap: anywhere; }
.lx-card-copy {
    display: inline-flex; align-items: center; gap: .45rem; margin-top: 1rem; padding: .5rem .9rem; font-size: .85rem; font-weight: 600;
    background: var(--hfk-cream); border: 1px solid var(--hfk-border); color: var(--hfk-charcoal); transition: background .25s, color .25s, border-color .25s;
}
.lx-card-copy:hover { background: var(--hfk-charcoal); border-color: var(--hfk-charcoal); color: #fff; }
.lx-card-copy.is-done { background: var(--hfk-forest); border-color: var(--hfk-forest); color: #fff; }

.lx-dl { display: grid; grid-template-columns: minmax(0, 220px) minmax(0, 1fr); margin: 1rem 0 1.2rem; border: 1px solid var(--hfk-border); background: #fff; }
.lx-dl dt, .lx-dl dd { margin: 0; padding: .7rem .9rem; border-bottom: 1px solid var(--hfk-border); }
.lx-dl dt { font-weight: 600; color: var(--hfk-charcoal); background: var(--hfk-cream); }
.lx-dl dd { overflow-wrap: anywhere; }
.lx-dl dt:last-of-type, .lx-dl dd:last-of-type { border-bottom: 0; }

/* Conditions d'acompte (agb.php, zahlungsarten.php) */
.lx-deposit-rules { margin: .7rem 0 .4rem; }
.lx-content .lx-deposit-rules > li { padding: .55rem .8rem .55rem 2rem; background: var(--hfk-cream); border-left: 3px solid var(--hfk-flame); }
.lx-content .lx-deposit-rules > li::before { left: .8rem; top: 1.05em; }
.lx-deposit-rules small { color: var(--hfk-muted); }

/* ---------------------------------------------------------------------
 * 6. Tableaux responsives
 * ------------------------------------------------------------------- */
.lx-table-wrap { position: relative; margin: 1rem 0 1.4rem; overflow-x: auto; border: 1px solid var(--hfk-border); background: #fff; -webkit-overflow-scrolling: touch; }
.lx-table-wrap table, .lx-content table { width: 100%; margin: 0; border-collapse: collapse; font-size: .92rem; line-height: 1.5; }
.lx-content th, .lx-content td { padding: .7rem .85rem; border-bottom: 1px solid var(--hfk-border); text-align: left; vertical-align: top; }
.lx-content thead th { background: var(--hfk-charcoal); color: #fff; font-family: var(--hfk-font-head); font-weight: 600; white-space: nowrap; }
.lx-content tbody tr { transition: background .2s; }
.lx-content tbody tr:nth-child(even) { background: #FDFAF6; }
.lx-content tbody tr:hover { background: var(--hfk-flame-light); }
/* Indication de défilement horizontal (classe posée par legal.js) */
.lx-table-wrap.is-scrollable { box-shadow: inset -14px 0 12px -12px rgba(20, 30, 40, .25); }
.lx-table-wrap.is-scrollable.is-end { box-shadow: none; }
.lx-content code { padding: .1rem .35rem; font-size: .86em; color: var(--hfk-ember-dark); background: var(--hfk-flame-light); overflow-wrap: anywhere; }

/* ---------------------------------------------------------------------
 * 7. FAQ
 * ------------------------------------------------------------------- */
.lx-faq { display: flex; flex-direction: column; gap: .6rem; }
.lx-faq-item { background: #fff; border: 1px solid var(--hfk-border); transition: border-color .25s, box-shadow .25s; }
.lx-faq-item[open] { border-color: var(--hfk-flame); box-shadow: var(--hfk-shadow-sm); }
.lx-faq-item summary {
    display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.1rem;
    font-family: var(--hfk-font-head); font-weight: 600; color: var(--hfk-charcoal); cursor: pointer; list-style: none; transition: background .2s, color .2s;
}
.lx-faq-item summary::-webkit-details-marker { display: none; }
.lx-faq-item summary:hover { background: var(--hfk-cream); color: var(--hfk-flame-dark); }
.lx-faq-item summary i { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 30px; width: 30px; height: 30px; background: var(--hfk-flame-light); color: var(--hfk-flame-dark); transition: transform .35s var(--hfk-ease), background .25s, color .25s; }
.lx-faq-item[open] summary i { transform: rotate(135deg); background: var(--hfk-flame); color: #fff; }
.lx-faq-item > div { padding: 0 1.1rem 1rem; animation: hfk-fade-up .35s var(--hfk-ease) both; }
.lx-faq-item > div p { margin: 0; }

/* ---------------------------------------------------------------------
 * 8. Liens croisés et page introuvable
 * ------------------------------------------------------------------- */
.lx-related { padding: clamp(2.5rem, 5vw, 4rem) 0; background: var(--hfk-sand); }
.lx-related-title { margin: 0 0 1.4rem; font-size: clamp(1.2rem, 2.2vw, 1.5rem); color: var(--hfk-charcoal); }
.lx-related-title i { color: var(--hfk-flame); margin-right: .35rem; }
.lx-related-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); gap: .8rem; margin: 0; padding: 0; list-style: none; }
.lx-related-grid a {
    display: flex; align-items: center; gap: .9rem; height: 100%; padding: 1rem 1.1rem; background: #fff; color: var(--hfk-text);
    border: 1px solid var(--hfk-border); border-bottom: 3px solid transparent; text-decoration: none;
    transition: transform .3s var(--hfk-ease), box-shadow .3s, border-color .3s;
}
.lx-related-grid a:hover { transform: translateY(-4px); box-shadow: var(--hfk-shadow); border-bottom-color: var(--hfk-flame); }
.lx-related-icon { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 44px; width: 44px; height: 44px; background: var(--hfk-charcoal); color: var(--hfk-amber); transition: background .3s, color .3s, transform .35s var(--hfk-ease-bounce); }
.lx-related-grid a:hover .lx-related-icon { background: var(--hfk-grad-fire); color: #fff; transform: rotate(-8deg) scale(1.06); }
.lx-related-text { display: flex; flex-direction: column; flex: 1; min-width: 0; }
.lx-related-text strong { font-family: var(--hfk-font-head); color: var(--hfk-charcoal); }
.lx-related-text small { color: var(--hfk-muted); font-size: .82rem; line-height: 1.4; }
.lx-related-arrow { color: var(--hfk-flame); transition: transform .3s var(--hfk-ease); }
.lx-related-grid a:hover .lx-related-arrow { transform: translateX(5px); }

.lx-missing { min-height: 50vh; }
.lx-missing h1 { font-size: clamp(1.7rem, 3.4vw, 2.4rem); margin: 1rem 0 .8rem; }
.lx-missing p { max-width: 640px; margin: 0 auto 1.4rem; color: var(--hfk-muted); }
.lx-missing-links { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem; margin: 0 0 1.6rem; padding: 0; list-style: none; }
.lx-missing-links a { display: inline-flex; align-items: center; gap: .45rem; padding: .55rem .9rem; background: var(--hfk-cream); border: 1px solid var(--hfk-border); color: var(--hfk-charcoal); text-decoration: none; transition: background .25s, color .25s, transform .25s var(--hfk-ease); }
.lx-missing-links a:hover { background: var(--hfk-flame); border-color: var(--hfk-flame); color: #fff; transform: translateY(-2px); }
.lx-missing-links i { color: var(--hfk-flame); }
.lx-missing-links a:hover i { color: #fff; }
.lx-missing-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: .6rem; }

/* ---------------------------------------------------------------------
 * 9. Responsive
 * ------------------------------------------------------------------- */
@media (max-width: 991.98px) {
    .lx-grid { grid-template-columns: minmax(0, 1fr); }
    .lx-aside { top: calc(var(--hfk-header-h) + .4rem); z-index: 30; max-height: none; gap: 0; }
    .lx-tools { display: none; }
    .lx-toc { box-shadow: var(--hfk-shadow); }
    .lx-toc-toggle { cursor: pointer; }
    .lx-toc-chevron { display: inline-block; }
    .lx-toc.is-open .lx-toc-chevron { transform: rotate(180deg); }
    .lx-toc-panel { max-height: 0; transition: max-height .4s var(--hfk-ease); }
    .lx-toc.is-open .lx-toc-panel { max-height: min(60vh, 520px); }
    .lx-content { max-width: none; }
    .lx-anchor { opacity: .55; transform: none; }
}
@media (max-width: 575.98px) {
    .lx-hero-meta li { font-size: .8rem; padding: .4rem .65rem; }
    .lx-content { font-size: .98rem; line-height: 1.7; }
    .lx-heading { gap: .6rem; }
    .lx-num { min-width: 36px; height: 36px; font-size: .9rem; }
    .lx-heading-text { padding-top: .2rem; }
    .lx-card-list { grid-template-columns: minmax(0, 1fr); }
    .lx-dl { grid-template-columns: minmax(0, 1fr); }
    .lx-dl dt { border-bottom: 0; padding-bottom: .2rem; }
    .lx-dl dd { padding-top: .2rem; }
    .lx-section.is-target::before { left: -.6rem; }
    /* Tableaux empilés (attribut data-lx-stack, libellés ajoutés par legal.js) */
    .lx-content table[data-lx-stack] thead { display: none; }
    .lx-content table[data-lx-stack], .lx-content table[data-lx-stack] tbody, .lx-content table[data-lx-stack] tr, .lx-content table[data-lx-stack] td { display: block; width: 100%; }
    .lx-content table[data-lx-stack] tr { padding: .5rem 0; border-bottom: 2px solid var(--hfk-border); }
    .lx-content table[data-lx-stack] td { display: grid; grid-template-columns: minmax(0, 38%) minmax(0, 1fr); gap: .6rem; padding: .35rem .8rem; border: 0; }
    .lx-content table[data-lx-stack] td::before { content: attr(data-label); font-weight: 700; font-size: .78rem; color: var(--hfk-muted); text-transform: uppercase; letter-spacing: .04em; }
}

/* ---------------------------------------------------------------------
 * 10. Impression
 * ------------------------------------------------------------------- */
@media print {
    @page { margin: 16mm 14mm; }
    .lx-hero { padding: 0 0 6mm; background: none !important; color: #000; border-bottom: 2px solid #000; }
    .lx-hero::before, .lx-hero::after, .lx-hero-embers, .lx-hero .hfk-breadcrumb, .lx-hero .eyebrow { display: none !important; }
    .lx-hero h1 { color: #000; font-size: 22pt; animation: none; }
    .lx-hero .lx-hero-intro { color: #222; animation: none; }
    .lx-hero-meta li { color: #000; background: none; border: 0; padding: 0 1rem 0 0; }
    .lx-hero-meta i { display: none; }
    .lx-body { padding: 6mm 0 0; background: none; }
    .lx-grid { display: block; }
    .lx-aside, .lx-related, .lx-anchor, .lx-card-copy, .lx-tools, [data-lx-noprint] { display: none !important; }
    .lx-content { max-width: none; font-size: 10.5pt; line-height: 1.5; color: #000; }
    .lx-content a { color: #000 !important; text-decoration: none !important; }
    .lx-content a[href^="http"]::after { content: ' (' attr(href) ')'; font-size: 8.5pt; color: #444; }
    .lx-section { break-inside: auto; border-bottom: 1px solid #999; padding-bottom: 4mm; margin-bottom: 5mm; }
    .lx-heading { break-after: avoid; font-size: 14pt; }
    .lx-num { background: none !important; color: #000; box-shadow: none; border: 1.5px solid #000; min-width: 30px; height: 30px; }
    .lx-note, .lx-card { break-inside: avoid; background: none !important; box-shadow: none !important; border: 1px solid #777; color: #000; transform: none !important; }
    .lx-note-icon, .lx-card-icon { display: none; }
    .lx-table-wrap { overflow: visible; border-color: #777; }
    .lx-content thead th { background: #eee !important; color: #000; }
    .lx-content tbody tr:nth-child(even) { background: none; }
    .lx-faq-item { border-color: #999; box-shadow: none !important; }
    .lx-faq-item summary i { display: none; }
    [data-aos] { opacity: 1 !important; transform: none !important; }
}