/* ============================================================
   IZYPAPER · MODÈLES IMPRIMABLES
   Print-ready docs (Cmd+P → Save as PDF)
   Colors: navy #0E0A6E · violet #4F2BFF · paper #FBF9F4
============================================================ */
@page {
  size: A4;
  margin: 18mm 16mm 22mm 16mm;
}

:root{
  --izy-navy:#0E0A6E;
  --izy-violet:#4F2BFF;
  --izy-violet-2:#7857FF;
  --izy-violet-soft:#F1EDFF;
  --izy-violet-faint:#FAF8FF;
  --izy-cream:#F6F4EF;
  --izy-paper:#FBF9F4;
  --izy-line:rgba(14,10,110,.10);
  --izy-line-strong:rgba(14,10,110,.18);
  --vert:#0E8A4F;
  --rouge:#C0392B;
}

*{box-sizing:border-box}
body{
  margin:0;
  background:#E8E4DD;
  font-family:'Inter',sans-serif;
  color:var(--izy-navy);
  -webkit-print-color-adjust:exact;
  print-color-adjust:exact;
}

/* ----- screen-only print toolbar ----- */
.print-bar{
  position:sticky;top:0;z-index:50;
  background:var(--izy-navy);color:#fff;
  padding:14px 24px;display:flex;align-items:center;gap:18px;
  font-family:'Geist Mono',monospace;font-size:12px;letter-spacing:.08em;
}
.print-bar .pb-logo{font-family:'Instrument Serif',serif;font-style:italic;font-size:18px;letter-spacing:-.01em}
.print-bar .pb-doc{color:#A099FF;text-transform:uppercase;font-size:11px;letter-spacing:.18em;font-weight:600}
.print-bar .pb-actions{margin-left:auto;display:flex;gap:10px}
.print-bar button, .print-bar a.pb-btn{
  appearance:none;border:1px solid rgba(255,255,255,.3);
  background:transparent;color:#fff;padding:8px 14px;border-radius:8px;
  font-family:'Inter',sans-serif;font-size:13px;font-weight:500;cursor:pointer;
  text-decoration:none;display:inline-flex;align-items:center;gap:6px;
  transition:all .15s ease;
}
.print-bar button:hover, .print-bar a.pb-btn:hover{background:rgba(255,255,255,.1);border-color:#fff}
.print-bar button.primary{background:#A099FF;border-color:#A099FF;color:var(--izy-navy);font-weight:600}
.print-bar button.primary:hover{background:#fff;border-color:#fff}
@media print{.print-bar{display:none !important}}

/* ----- page sheets ----- */
.doc{
  max-width:780px;margin:24px auto;
  display:flex;flex-direction:column;gap:24px;
}
.page{
  background:#fff;
  box-shadow:0 8px 32px -16px rgba(14,10,110,.18);
  padding:60px 56px 64px;
  position:relative;
  min-height:1000px;
  page-break-after:always;
  break-after:page;
}
.page:last-child{page-break-after:auto;break-after:auto}
@media print{
  body{background:#fff}
  .doc{margin:0;gap:0}
  .page{box-shadow:none;padding:0;min-height:auto;margin:0}
}

/* ----- page header / footer (running) ----- */
.page-head{
  display:flex;justify-content:space-between;align-items:baseline;
  padding-bottom:12px;margin-bottom:32px;
  border-bottom:1px solid var(--izy-line);
  font-family:'Geist Mono',monospace;font-size:10px;letter-spacing:.14em;
  text-transform:uppercase;color:rgba(14,10,110,.5);font-weight:600;
}
.page-head .ph-brand{color:var(--izy-violet);font-weight:700}
.page-head .ph-doc{color:rgba(14,10,110,.55)}

.page-foot{
  position:absolute;left:56px;right:56px;bottom:36px;
  display:flex;justify-content:space-between;align-items:baseline;
  font-family:'Geist Mono',monospace;font-size:9.5px;letter-spacing:.12em;
  text-transform:uppercase;color:rgba(14,10,110,.45);
}
.page-foot .pf-rule{flex:1;height:1px;background:var(--izy-line);margin:0 14px;align-self:center}
@media print{
  .page-foot{position:fixed;bottom:8mm}
}

/* ----- COVER ----- */
.cover{
  background:linear-gradient(180deg, var(--izy-paper) 0%, #fff 100%);
  position:relative;overflow:hidden;
}
.cover::after{
  content:'§';position:absolute;right:-80px;bottom:-180px;
  font-family:'Instrument Serif',serif;font-style:italic;font-weight:400;
  font-size:560px;line-height:.8;
  color:rgba(79,43,255,.04);pointer-events:none;
}
.cover > *{position:relative;z-index:1}

.cover-brand{
  display:flex;justify-content:space-between;align-items:baseline;
  margin-bottom:80px;
}
.cover-brand .cb-logo{
  display:inline-flex;align-items:baseline;gap:2px;
  font-family:'Instrument Serif',serif;font-style:italic;font-size:22px;
  color:var(--izy-navy);letter-spacing:-.01em;
}
.cover-brand .cb-logo b{font-weight:400;color:var(--izy-violet)}
.cover-brand .cb-meta{
  font-family:'Geist Mono',monospace;font-size:10.5px;letter-spacing:.14em;
  text-transform:uppercase;color:rgba(14,10,110,.55);font-weight:600;
  text-align:right;line-height:1.65;
}
.cover-brand .cb-meta b{color:var(--izy-violet);font-weight:700}

.cover-kicker{
  font-family:'Geist Mono',monospace;font-size:11px;letter-spacing:.22em;
  text-transform:uppercase;color:var(--izy-violet);font-weight:700;
  padding:6px 0;border-top:2px solid var(--izy-violet);border-bottom:1px solid var(--izy-line);
  margin-bottom:48px;display:inline-block;padding-right:80px;
}

.cover-tag{
  font-family:'Geist Mono',monospace;font-size:11px;letter-spacing:.18em;
  text-transform:uppercase;font-weight:600;
  display:inline-block;padding:6px 14px;border-radius:999px;
  background:var(--izy-violet-soft);color:var(--izy-violet);
  margin-bottom:32px;
}

.cover h1{
  margin:0;font-family:'Instrument Serif',serif;font-weight:400;
  font-size:68px;line-height:1;letter-spacing:-.03em;
  color:var(--izy-navy);text-wrap:pretty;
}
.cover h1 em{font-style:italic;color:var(--izy-violet)}
.cover h1 .h-line{display:block}

.cover-sub{
  margin:28px 0 0;font-size:18px;line-height:1.5;font-weight:300;
  color:rgba(14,10,110,.7);max-width:560px;text-wrap:pretty;
}

.cover-foot{
  margin-top:auto;padding-top:80px;
  display:flex;justify-content:space-between;align-items:flex-end;gap:20px;
}
.cover-foot .cf-version{
  font-family:'Geist Mono',monospace;font-size:11px;letter-spacing:.14em;
  text-transform:uppercase;color:rgba(14,10,110,.55);font-weight:600;line-height:1.6;
}
.cover-foot .cf-version b{color:var(--izy-navy);font-weight:700}
.cover-foot .cf-ref{
  font-family:'Instrument Serif',serif;font-style:italic;font-size:14px;
  color:rgba(14,10,110,.5);text-align:right;line-height:1.3;
}

/* ----- typography ----- */
h2, .h2{
  margin:0 0 16px;font-family:'Instrument Serif',serif;font-weight:400;
  font-size:30px;line-height:1.1;letter-spacing:-.02em;color:var(--izy-navy);
  text-wrap:pretty;
}
h2 em{font-style:italic;color:var(--izy-violet)}
.h2-rule{
  display:block;width:48px;height:2px;background:var(--izy-violet);
  margin-top:14px;margin-bottom:24px;
}

h3, .h3{
  margin:24px 0 12px;font-family:'Instrument Serif',serif;font-weight:400;
  font-size:22px;line-height:1.2;letter-spacing:-.015em;color:var(--izy-navy);
  text-wrap:pretty;
}
h3 em{font-style:italic;color:var(--izy-violet)}

h4, .h4{
  margin:18px 0 8px;font-family:'Inter',sans-serif;font-weight:600;
  font-size:14.5px;letter-spacing:-.005em;color:var(--izy-navy);
}
h4.kicker, .kicker{
  font-family:'Geist Mono',monospace;font-size:10.5px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--izy-violet);font-weight:700;
  margin:0 0 8px;
}

p{margin:0 0 12px;font-size:13.5px;line-height:1.6;color:rgba(14,10,110,.8);font-weight:400}
p b, strong{font-weight:600;color:var(--izy-navy)}
p i, em{font-style:italic}

ul, ol{margin:0 0 16px;padding-left:22px;font-size:13.5px;line-height:1.6}
li{margin:6px 0;color:rgba(14,10,110,.8)}
li b{font-weight:600;color:var(--izy-navy)}

/* checkbox list */
.cklist{list-style:none;padding-left:0;margin:0 0 16px}
.cklist li{
  position:relative;padding-left:32px;margin:14px 0;
  font-size:13.5px;line-height:1.55;color:rgba(14,10,110,.85);
}
.cklist li::before{
  content:'';position:absolute;left:0;top:2px;width:18px;height:18px;
  border:1.5px solid var(--izy-violet);border-radius:5px;background:#fff;
}
.cklist li b{font-weight:600;color:var(--izy-navy)}
.cklist li .note{
  display:block;margin-top:4px;font-size:12px;line-height:1.5;
  color:rgba(14,10,110,.6);font-weight:300;
}

/* numbered list */
.numlist{list-style:none;counter-reset:nl;padding-left:0;margin:0 0 16px}
.numlist li{
  position:relative;padding-left:40px;margin:14px 0;
  counter-increment:nl;font-size:13.5px;line-height:1.55;
}
.numlist li::before{
  content:counter(nl, decimal-leading-zero);
  position:absolute;left:0;top:0;
  font-family:'Instrument Serif',serif;font-style:italic;font-size:18px;
  color:var(--izy-violet);font-weight:400;letter-spacing:-.01em;line-height:1.2;
}
.numlist li b{font-weight:600;color:var(--izy-navy)}

/* tables */
table.izy{
  width:100%;border-collapse:collapse;margin:14px 0 22px;
  font-size:12.5px;line-height:1.45;
}
table.izy thead th{
  background:var(--izy-navy);color:#fff;
  text-align:left;padding:11px 12px;
  font-family:'Geist Mono',monospace;font-size:10.5px;letter-spacing:.12em;
  text-transform:uppercase;font-weight:600;
}
table.izy thead th:first-child{border-top-left-radius:8px}
table.izy thead th:last-child{border-top-right-radius:8px}
table.izy tbody td{
  padding:10px 12px;border-bottom:1px solid var(--izy-line);
  vertical-align:top;color:rgba(14,10,110,.85);
}
table.izy tbody tr:nth-child(even) td{background:var(--izy-paper)}
table.izy tbody tr:last-child td{border-bottom:0}
table.izy tbody td:first-child{font-weight:500;color:var(--izy-navy);width:34%}
table.izy.compact tbody td{padding:8px 11px;font-size:12px}

/* callouts */
.callout{
  margin:18px 0;padding:16px 18px;border-radius:10px;
  border-left:3px solid var(--izy-violet);
  background:var(--izy-violet-soft);
  font-size:13px;line-height:1.55;color:rgba(14,10,110,.85);
}
.callout .co-kicker{
  display:block;font-family:'Geist Mono',monospace;font-size:10px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--izy-violet);font-weight:700;margin-bottom:6px;
}
.callout p{font-size:13px;margin:0 0 8px;color:inherit}
.callout p:last-child{margin-bottom:0}
.callout.warn{background:#FDF1EE;border-left-color:var(--rouge)}
.callout.warn .co-kicker{color:var(--rouge)}
.callout.ok{background:#EAF5EF;border-left-color:var(--vert)}
.callout.ok .co-kicker{color:var(--vert)}
.callout.cream{background:var(--izy-cream);border-left-color:var(--izy-navy)}
.callout.cream .co-kicker{color:var(--izy-navy)}

/* sub-section header */
.sub-head{
  display:flex;align-items:baseline;gap:14px;margin:24px 0 12px;
  border-top:1px solid var(--izy-line);padding-top:18px;
}
.sub-head:first-child{margin-top:0;border-top:0;padding-top:0}
.sub-head .sh-num{
  font-family:'Instrument Serif',serif;font-style:italic;font-size:24px;
  color:var(--izy-violet);font-weight:400;letter-spacing:-.01em;line-height:1;
}
.sub-head .sh-ttl{
  font-family:'Inter',sans-serif;font-weight:600;font-size:15px;
  color:var(--izy-navy);line-height:1.3;
}

/* small intro paragraph */
.lede{
  margin:0 0 22px;font-size:14.5px;line-height:1.6;
  color:rgba(14,10,110,.75);font-weight:300;text-wrap:pretty;
}
.lede b{font-weight:500;color:var(--izy-navy)}

/* footer signature */
.doc-sig{
  margin-top:28px;padding-top:18px;border-top:1px solid var(--izy-line);
  font-family:'Inter',sans-serif;font-size:11.5px;line-height:1.55;
  color:rgba(14,10,110,.55);font-style:italic;font-weight:300;
}

/* two-column grid */
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:24px}

/* TOC */
.toc{margin:0 0 28px;font-size:14px;line-height:1.7}
.toc-item{display:flex;align-items:baseline;gap:10px;padding:5px 0}
.toc-item .ti-num{
  font-family:'Instrument Serif',serif;font-style:italic;font-size:16px;
  color:var(--izy-violet);font-weight:400;flex-shrink:0;width:24px;
}
.toc-item .ti-ttl{flex:1;color:var(--izy-navy);font-weight:500}
.toc-item .ti-dot{flex:1;border-bottom:1.5px dotted rgba(14,10,110,.25);transform:translateY(-3px);min-width:24px}
.toc-item .ti-pg{
  font-family:'Geist Mono',monospace;font-size:11px;letter-spacing:.06em;
  color:rgba(14,10,110,.55);font-weight:600;flex-shrink:0;
}
