:root{
--color-brand:#B85C33;
--color-cta:#E8A33D;
--bg:#17110B;
--surface:#20180F;
--line:#3A2B1C;
--text:#F4EDE3;
--muted:#B7A692;
--shadow:#0E0A05;
}
html,body{overflow-x:hidden;}
*,*::before,*::after{box-sizing:border-box;}
img{max-width:100%;height:auto;}
::selection{background:#B85C33;color:#17110B;}
:focus-visible{outline:2px solid #B85C33;outline-offset:3px;}
.skip-link{position:absolute;left:-9999px;top:0;background:#E8A33D;color:#17110B;padding:12px 20px;font-family:Consolas,'Courier New',monospace;font-size:14px;font-weight:700;z-index:3000;text-decoration:none;}
.skip-link:focus{left:16px;top:16px;}
.page-content{margin-right:260px;background:#17110B;color:#F4EDE3;line-height:1.65;overflow-wrap:break-word;word-wrap:break-word;}
.hero{position:relative;display:flex;align-items:center;justify-content:center;text-align:center;min-height:560px;padding:96px 64px;}
.hero::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.55);}
.hero-inner{position:relative;z-index:1;max-width:880px;}
.hero h1{font-family:Georgia,'Times New Roman',serif;font-size:clamp(40px,5vw,64px);font-weight:700;line-height:1.65;color:#fff;margin:0;}
.hero h1 .line2{display:block;font-style:italic;color:#E8A33D;}
.mark{display:inline-block;margin-bottom:-8px;border-bottom:8px solid #E8A33D;}
.article-meta{font-family:Consolas,'Courier New',monospace;font-size:13px;letter-spacing:0.04em;color:#F4EDE3;margin:28px 0 0;line-height:1.65;}
.chapo{font-family:Georgia,'Times New Roman',serif;font-style:italic;font-size:22px;line-height:1.65;color:#F4EDE3;margin:24px auto 0;max-width:720px;}
.article-wrap{max-width:720px;margin:0 auto;padding:64px 24px 96px;min-width:0;}
.article-wrap p{font-size:18px;line-height:1.65;color:#F4EDE3;margin:0 0 24px;}
.article-wrap strong{font-weight:700;color:#F4EDE3;}
.article-wrap h2{font-family:Georgia,'Times New Roman',serif;font-size:clamp(28px,3vw,40px);font-weight:700;line-height:1.65;color:#F4EDE3;margin:64px 0 24px;}
.article-wrap h3{font-family:Georgia,'Times New Roman',serif;font-size:24px;font-weight:700;line-height:1.65;color:#F4EDE3;margin:48px 0 16px;}
.checklist{list-style:none;padding:0;margin:0 0 32px;}
.checklist li{position:relative;padding-left:26px;margin:0 0 14px;font-size:18px;line-height:1.65;color:#F4EDE3;}
.checklist li::before{content:'';position:absolute;left:0;top:11px;width:9px;height:9px;background:#B85C33;}
blockquote{font-family:Georgia,'Times New Roman',serif;font-style:italic;font-size:22px;line-height:1.65;color:#F4EDE3;border-left:4px solid #B85C33;padding:8px 24px;margin:48px 0;}
blockquote p{font-family:Georgia,'Times New Roman',serif;font-style:italic;font-size:22px;line-height:1.65;margin:0;}
blockquote cite{display:block;margin-top:16px;font-family:Consolas,'Courier New',monospace;font-style:normal;font-size:13px;letter-spacing:0.04em;color:#B7A692;line-height:1.65;}
.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:32px 0 40px;}
table{width:100%;border-collapse:collapse;background:#20180F;border:1px solid #3A2B1C;}
th{font-family:Consolas,'Courier New',monospace;font-size:13px;font-weight:700;letter-spacing:0.04em;color:#B7A692;text-align:left;padding:16px;border-bottom:1px solid #3A2B1C;line-height:1.65;white-space:nowrap;}
td{padding:16px;font-size:16px;line-height:1.65;color:#F4EDE3;border-bottom:1px solid #3A2B1C;vertical-align:top;min-width:0;}
tbody tr:last-child td{border-bottom:none;}
tbody tr:hover td{background:#241B10;}
td.statut{font-family:Georgia,'Times New Roman',serif;font-weight:700;color:#F4EDE3;white-space:nowrap;}
.btn{display:inline-block;background:#E8A33D;color:#17110B;font-family:Consolas,'Courier New',monospace;font-size:14px;font-weight:700;letter-spacing:0.04em;line-height:1.65;padding:16px 32px;text-decoration:none;border:none;border-radius:0;box-shadow:6px 6px 0 #0E0A05;cursor:pointer;transition:transform 150ms,box-shadow 150ms;}
.btn:hover{transform:translate(-2px,-2px);box-shadow:8px 8px 0 #0E0A05;color:#17110B;}
.cta-block{text-align:center;margin:56px 0;}
.figure-zoom{margin:48px 0;}
.figure-zoom img{display:block;width:100%;border:1px solid #3A2B1C;box-shadow:16px 16px 0 #B85C33;}
.figure-zoom figcaption{font-family:Consolas,'Courier New',monospace;font-size:12px;letter-spacing:0.04em;color:#B7A692;margin-top:22px;line-height:1.65;}
.btn-zoom{margin-top:24px;}
.zoom-overlay{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.88);z-index:2500;align-items:center;justify-content:center;padding:32px;}
.zoom-toggle:checked ~ .zoom-overlay{display:flex;}
.zoom-overlay img{max-width:92%;max-height:84vh;width:auto;height:auto;border:1px solid #3A2B1C;box-shadow:16px 16px 0 #B85C33;}
.zoom-close{position:absolute;top:20px;right:28px;font-family:Consolas,'Courier New',monospace;font-size:36px;line-height:1.65;color:#F4EDE3;cursor:pointer;transition:color 150ms;}
.zoom-close:hover{color:#B85C33;}
details{border:1px solid #3A2B1C;background:#20180F;margin:0 0 16px;}
summary{cursor:pointer;list-style:none;position:relative;padding:20px 64px 20px 24px;font-family:Georgia,'Times New Roman',serif;font-size:20px;font-weight:700;line-height:1.65;color:#F4EDE3;transition:color 150ms;}
summary::-webkit-details-marker{display:none;}
summary::after{content:'+';position:absolute;right:24px;top:18px;font-family:Consolas,'Courier New',monospace;font-size:22px;line-height:1.65;color:#B85C33;}
details[open] summary::after{content:'-';}
summary:hover{color:#B85C33;}
.answer{padding:0 24px 24px;}
.answer p{font-size:16px;line-height:1.65;color:#B7A692;margin:0 0 16px;}
.answer p:last-child{margin-bottom:0;}
.legal-note{font-size:13px;line-height:1.65;color:#B7A692;margin:64px 0 0;}
.author-sig{font-family:Consolas,'Courier New',monospace;font-size:13px;letter-spacing:0.04em;color:#B7A692;line-height:1.65;margin:40px 0 0;padding-top:24px;border-top:1px solid #3A2B1C;}
@media (max-width:1100px){
.page-content{margin-right:240px;}
}
@media (max-width:768px){
.page-content{margin-right:0;margin-top:64px;}
.hero{padding:64px 24px;min-height:480px;}
.article-wrap{padding:48px 20px 64px;}
.article-wrap h2{margin:48px 0 20px;}
.figure-zoom img{box-shadow:10px 10px 0 #B85C33;}
.zoom-overlay img{box-shadow:10px 10px 0 #B85C33;}
blockquote{padding:8px 16px;font-size:20px;margin:40px 0;}
blockquote p{font-size:20px;}
th,td{padding:12px;font-size:14px;}
.btn{display:block;width:100%;text-align:center;}
}
@media (max-width:480px){
.hero{padding:48px 20px;min-height:420px;}
.article-meta{font-size:12px;}
.chapo{font-size:19px;}
.article-wrap p,.checklist li{font-size:16px;}
summary{font-size:18px;padding:16px 56px 16px 16px;}
summary::after{right:16px;top:14px;}
th,td{padding:10px;font-size:13px;}
.zoom-close{right:16px;top:12px;font-size:28px;}
}

/* ===== TYPOGRAPHY SPACING FIX (APS_ARTICLE_TYPO_REQUIRED_v2) ===== */
/* Defensive guard against universal * { margin: 0 } reset in global.css. */
/* body-scoped via :where() so specificity stays at 0,0,0,1 — beats * but
   loses to any component rule like .tip-box p / .faq-item p. */
body :where(p)              { margin-bottom: 1.1rem; }
body :where(h2)             { margin-top: 2.5rem; margin-bottom: 1rem; }
body :where(h3)             { margin-top: 1.75rem; margin-bottom: 0.75rem; }
body :where(h4)             { margin-top: 1.25rem; margin-bottom: 0.5rem; }
body :where(ul, ol)         { margin-bottom: 1.1rem; padding-left: 1.5rem; }
body :where(li)             { margin-bottom: 0.4rem; }
body :where(blockquote)     { margin: 1.5rem 0; }
