/* ══════════════════════════════════════════════════════════════
   REGISTRATIONS DOCUMENT PACK — shared styles
   Life Without Debt Ltd | CoSai CFO Services
   Filing-grade formal legal / regulatory document styling
══════════════════════════════════════════════════════════════ */

:root {
  --forest:       #1a5c52;
  --forest-deep:  #0f3b34;
  --forest-mid:   #14503f;
  --forest-wash:  #eef5f3;
  --gold:         #c8922a;
  --gold-warm:    #d4a843;
  --gold-pale:    #e8c87a;
  --gold-light:   #fdf6e7;
  --ink:          #1a1d23;
  --slate:        #4a5568;
  --mist:         #6b7280;
  --border:       #e5e7eb;
  --border-warm:  #e8e0d4;
  --white:        #ffffff;
  --cream:        #faf7f2;
  --warm-white:   #fefcf9;
  --paper:        #fbfaf7;
  --red-soft:     #fff5f5;
  --red-border:   #fc8181;
  --red-text:     #c53030;
  --amber-soft:   #fffbeb;
  --amber-border: #f6c026;
  --amber-text:   #92400e;
  --green-soft:   #f0fff4;
  --green-border: #68d391;
  --green-text:   #276749;
  --blue-soft:    #ebf8ff;
  --blue-border:  #63b3ed;
  --blue-text:    #2b6cb0;

  --font-display: 'DM Serif Display', serif;
  --font-body:    'Inter', system-ui, sans-serif;
  --font-mono:    'Courier New', monospace;
  --max-width:    1000px;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  font-family: var(--font-body);
  font-size: 15px;
  line-height: 1.75;
  color: var(--ink);
  background: var(--paper);
}

/* ── Typography ── */
h1, h2, h3, h4, h5 { font-family: var(--font-display); line-height: 1.3; color: var(--forest-deep); }
h1 { font-size: 2.4rem; margin-bottom: 0.75rem; }
h2 { font-size: 1.7rem; margin: 2rem 0 1rem; border-bottom: 2px solid var(--gold); padding-bottom: 0.4rem; }
h3 { font-size: 1.25rem; margin: 1.5rem 0 0.75rem; color: var(--forest); }
h4 { font-size: 1.05rem; margin: 1rem 0 0.5rem; color: var(--forest-mid); font-family: var(--font-body); font-weight: 600; }
h5 { font-size: 0.95rem; margin: 0.75rem 0 0.5rem; color: var(--slate); font-family: var(--font-body); font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; }

p { margin-bottom: 0.85rem; color: var(--ink); }
strong { color: var(--forest-deep); font-weight: 600; }
em { color: var(--slate); }
a { color: var(--forest); text-decoration: underline; text-decoration-color: var(--gold-pale); text-underline-offset: 3px; }
a:hover { color: var(--gold); }

ol, ul { margin: 0.5rem 0 1rem 1.5rem; }
li { margin-bottom: 0.35rem; color: var(--ink); }
ol ol, ul ul, ol ul, ul ol { margin-top: 0.35rem; }

/* Clause numbering — legal style */
ol.clauses { list-style: none; margin-left: 0; counter-reset: clause; }
ol.clauses > li { counter-increment: clause; padding-left: 3rem; position: relative; margin-bottom: 0.9rem; }
ol.clauses > li::before {
  content: counter(clause) ".";
  position: absolute; left: 0; top: 0;
  font-weight: 600; color: var(--forest); font-family: var(--font-body);
  width: 2.5rem;
}
ol.sub-clauses { list-style: lower-alpha; margin-left: 1.5rem; }
ol.roman { list-style: lower-roman; margin-left: 1.5rem; }

/* Emphasis blocks */
blockquote {
  border-left: 4px solid var(--gold);
  background: var(--gold-light);
  padding: 1rem 1.25rem;
  margin: 1rem 0;
  color: var(--ink);
  font-style: italic;
}

code {
  background: var(--forest-wash);
  padding: 2px 6px;
  border-radius: 3px;
  font-family: var(--font-mono);
  font-size: 0.9em;
  color: var(--forest-deep);
}

/* ── Layout ── */
.reg-page {
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 40px 32px 80px;
}

/* Top nav bar back to hub */
.reg-topbar {
  background: var(--forest-deep);
  color: var(--white);
  padding: 14px 32px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.85rem;
  border-bottom: 3px solid var(--gold);
}
.reg-topbar a { color: var(--gold-pale); text-decoration: none; font-weight: 500; }
.reg-topbar a:hover { color: var(--white); text-decoration: underline; }
.reg-topbar .breadcrumb { display: flex; gap: 8px; align-items: center; }
.reg-topbar .breadcrumb i { font-size: 0.7rem; opacity: 0.6; }
.reg-topbar .doc-tag {
  background: var(--gold);
  color: var(--forest-deep);
  padding: 3px 10px;
  border-radius: 3px;
  font-weight: 700;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

/* Document header — filing-grade */
.doc-header {
  background: var(--white);
  border: 1px solid var(--border);
  border-top: 6px solid var(--gold);
  padding: 40px 40px 32px;
  margin-bottom: 32px;
  box-shadow: 0 2px 12px rgba(0,0,0,0.03);
}
.doc-header .doc-meta {
  color: var(--mist);
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin-bottom: 0.5rem;
  font-weight: 600;
}
.doc-header .doc-title {
  font-family: var(--font-display);
  font-size: 2.4rem;
  color: var(--forest-deep);
  line-height: 1.15;
  margin-bottom: 0.75rem;
}
.doc-header .doc-subtitle {
  color: var(--slate);
  font-size: 1.05rem;
  line-height: 1.6;
  max-width: 720px;
}
.doc-header .doc-status {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--amber-soft);
  color: var(--amber-text);
  border: 1px solid var(--amber-border);
  padding: 6px 14px;
  border-radius: 4px;
  font-size: 0.8rem;
  font-weight: 600;
  margin-top: 20px;
}
.doc-header .doc-status i { font-size: 0.7rem; }
.doc-header .doc-parties {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 16px;
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid var(--border);
}
.doc-header .party-block { font-size: 0.85rem; }
.doc-header .party-block .party-label {
  color: var(--mist);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-size: 0.7rem;
  margin-bottom: 4px;
  font-weight: 600;
}
.doc-header .party-block .party-value { color: var(--ink); font-weight: 500; }

/* Document body */
.doc-body {
  background: var(--white);
  border: 1px solid var(--border);
  padding: 48px 56px;
  box-shadow: 0 2px 12px rgba(0,0,0,0.03);
  margin-bottom: 32px;
}

/* Section wrapper */
.doc-section {
  padding: 24px 0;
  border-top: 1px solid var(--border);
}
.doc-section:first-child { border-top: none; padding-top: 0; }
.doc-section h2 { margin-top: 0; }

/* Callout boxes */
.callout {
  padding: 16px 20px;
  border-radius: 4px;
  margin: 16px 0;
  border-left: 4px solid;
}
.callout .callout-title {
  font-weight: 700;
  margin-bottom: 6px;
  font-size: 0.9rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  display: flex;
  align-items: center;
  gap: 8px;
}
.callout p { margin-bottom: 0.5rem; font-size: 0.92rem; }
.callout p:last-child { margin-bottom: 0; }

.callout-warn {
  background: var(--amber-soft); border-left-color: var(--amber-border); color: var(--amber-text);
}
.callout-warn .callout-title { color: var(--amber-text); }

.callout-info {
  background: var(--blue-soft); border-left-color: var(--blue-border); color: var(--blue-text);
}
.callout-info .callout-title { color: var(--blue-text); }

.callout-danger {
  background: var(--red-soft); border-left-color: var(--red-border); color: var(--red-text);
}
.callout-danger .callout-title { color: var(--red-text); }

.callout-success {
  background: var(--green-soft); border-left-color: var(--green-border); color: var(--green-text);
}
.callout-success .callout-title { color: var(--green-text); }

.callout-note {
  background: var(--forest-wash); border-left-color: var(--forest); color: var(--ink);
}
.callout-note .callout-title { color: var(--forest-deep); }

/* Placeholder tags — for [TO CONFIRM] items */
.placeholder {
  background: var(--gold-light);
  border-bottom: 2px dashed var(--gold);
  padding: 1px 6px;
  color: var(--forest-deep);
  font-weight: 600;
  font-size: 0.95em;
  border-radius: 2px;
}

/* Tables */
table {
  width: 100%;
  border-collapse: collapse;
  margin: 1rem 0 1.5rem;
  font-size: 0.9rem;
}
table th {
  background: var(--forest-wash);
  color: var(--forest-deep);
  padding: 10px 12px;
  text-align: left;
  font-weight: 600;
  border: 1px solid var(--border);
  font-size: 0.85rem;
}
table td {
  padding: 10px 12px;
  border: 1px solid var(--border);
  vertical-align: top;
  color: var(--ink);
}
table tr:nth-child(even) td { background: var(--paper); }

/* Definition list */
dl { margin: 1rem 0; }
dt {
  font-weight: 600;
  color: var(--forest-deep);
  margin-top: 0.75rem;
  padding-left: 8px;
  border-left: 3px solid var(--gold);
}
dd { margin-left: 1.5rem; margin-bottom: 0.5rem; color: var(--slate); }

/* Signature blocks */
.sig-block {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  margin-top: 40px;
  padding-top: 32px;
  border-top: 1px dashed var(--border);
}
.sig-line {
  border-bottom: 1px solid var(--ink);
  height: 40px;
  margin-bottom: 6px;
}
.sig-label {
  font-size: 0.8rem;
  color: var(--slate);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: 600;
}
.sig-name {
  font-size: 0.9rem;
  color: var(--ink);
  margin-top: 2px;
  font-weight: 500;
}

/* TOC */
.toc {
  background: var(--forest-wash);
  border: 1px solid var(--border);
  border-left: 4px solid var(--forest);
  padding: 24px 32px;
  margin-bottom: 32px;
  border-radius: 4px;
}
.toc h3 { margin-top: 0; color: var(--forest-deep); font-family: var(--font-body); text-transform: uppercase; letter-spacing: 0.05em; font-size: 0.85rem; font-weight: 700; }
.toc ol { margin-left: 1.25rem; }
.toc ol li { margin-bottom: 0.35rem; font-size: 0.9rem; }
.toc a { color: var(--forest-deep); text-decoration: none; }
.toc a:hover { color: var(--gold); text-decoration: underline; }

/* Doc footer */
.doc-footer {
  text-align: center;
  padding: 32px 0 16px;
  color: var(--mist);
  font-size: 0.8rem;
  border-top: 1px solid var(--border);
  margin-top: 32px;
}
.doc-footer .footer-marks {
  margin-bottom: 8px;
  color: var(--forest);
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  font-size: 0.75rem;
}

/* Print styles */
@media print {
  .reg-topbar, .doc-status { display: none !important; }
  body { background: white; }
  .doc-body, .doc-header { box-shadow: none; border: none; padding: 24px; }
  .reg-page { padding: 0; max-width: 100%; }
  h2 { page-break-after: avoid; }
  .doc-section { page-break-inside: avoid; }
}

/* Responsive */
@media (max-width: 768px) {
  .reg-page { padding: 24px 16px 40px; }
  .reg-topbar { padding: 12px 16px; flex-direction: column; gap: 8px; align-items: flex-start; }
  .doc-header, .doc-body { padding: 24px; }
  .doc-header .doc-title { font-size: 1.75rem; }
  h1 { font-size: 1.9rem; }
  h2 { font-size: 1.4rem; }
  .sig-block { grid-template-columns: 1fr; gap: 24px; }
}

/* Hub/index specific */
.hub-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 20px;
  margin: 24px 0;
}
.hub-card {
  background: var(--white);
  border: 1px solid var(--border);
  border-left: 4px solid var(--gold);
  padding: 24px;
  border-radius: 4px;
  transition: all 0.2s;
  text-decoration: none;
  display: block;
  color: var(--ink);
}
.hub-card:hover {
  border-left-color: var(--forest);
  box-shadow: 0 6px 20px rgba(26, 92, 82, 0.1);
  transform: translateY(-2px);
  text-decoration: none;
}
.hub-card .hub-icon {
  color: var(--gold);
  font-size: 1.75rem;
  margin-bottom: 12px;
}
.hub-card h3 {
  font-family: var(--font-body);
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--forest-deep);
  margin: 0 0 8px;
}
.hub-card p {
  font-size: 0.88rem;
  color: var(--slate);
  margin-bottom: 8px;
  line-height: 1.55;
}
.hub-card .hub-meta {
  font-size: 0.75rem;
  color: var(--mist);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: 600;
  margin-top: 12px;
}
.hub-package {
  background: var(--forest-wash);
  border: 1px solid var(--border);
  padding: 24px;
  margin: 24px 0;
  border-radius: 6px;
}
.hub-package h2 {
  color: var(--forest-deep);
  border-bottom: 2px solid var(--gold);
  padding-bottom: 8px;
  margin: 0 0 12px;
  font-size: 1.4rem;
}
.hub-package .pkg-desc {
  color: var(--slate);
  margin-bottom: 16px;
  font-size: 0.92rem;
}

/* Fund-use table status cells */
.data-table td.ok {
  color: #1a5c52;
  font-weight: 600;
}
.data-table td.no {
  color: #b91c1c;
  font-weight: 600;
}

/* Resolution block styling */
.resolution {
  background: #fbfaf6;
  border-left: 3px solid var(--gold);
  padding: 16px 20px;
  margin: 12px 0;
  border-radius: 3px;
}
.resolution ol,
.resolution ul {
  margin: 8px 0 8px 20px;
}
.resolution ol[type="a"] > li {
  margin-bottom: 8px;
}

/* ═══════════════════════════════════════════════════════════
   DECISION PAPER — layout for options/pitfalls/decisions/legislation
   ═══════════════════════════════════════════════════════════ */

.decision-block {
  border: 1px solid var(--border);
  border-left: 5px solid var(--forest);
  border-radius: 6px;
  padding: 24px 28px;
  margin: 32px 0;
  background: var(--white);
  box-shadow: 0 2px 10px rgba(26, 92, 82, 0.05);
}
.decision-block .decision-number {
  display: inline-block;
  background: var(--forest);
  color: var(--white);
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 4px 12px;
  border-radius: 3px;
  margin-bottom: 10px;
}
.decision-block .decision-title {
  font-family: var(--font-display);
  font-size: 1.5rem;
  color: var(--forest-deep);
  margin: 0 0 4px;
  line-height: 1.25;
}
.decision-block .decision-question {
  font-style: italic;
  color: var(--slate);
  margin: 0 0 18px;
  font-size: 0.95rem;
}

.options-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
  margin: 18px 0;
}
@media (min-width: 900px) {
  .options-grid.two { grid-template-columns: 1fr 1fr; }
  .options-grid.three { grid-template-columns: 1fr 1fr 1fr; }
}
.option-card {
  border: 1px solid var(--border);
  border-radius: 5px;
  padding: 16px 18px;
  background: #fafafa;
  position: relative;
}
.option-card.chosen {
  background: #f4f9f7;
  border-color: var(--forest);
  border-left: 4px solid var(--forest);
}
.option-card.rejected {
  background: #fff7f4;
  border-left: 4px solid #b83346;
  opacity: 0.92;
}
.option-card .option-label {
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 0.72rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--slate);
  margin-bottom: 6px;
}
.option-card.chosen .option-label { color: var(--forest); }
.option-card.rejected .option-label { color: #b83346; }
.option-card.chosen .option-label::before {
  content: '✓ ';
  font-weight: 700;
}
.option-card.rejected .option-label::before {
  content: '✗ ';
  font-weight: 700;
}
.option-card h4 {
  margin: 0 0 10px;
  font-family: var(--font-body);
  font-size: 1rem;
  color: var(--forest-deep);
  font-weight: 600;
}
.option-card p, .option-card ul { font-size: 0.9rem; margin-bottom: 8px; }
.option-card ul { padding-left: 20px; }
.option-card ul li { margin-bottom: 4px; }

.pitfall {
  background: #fff9eb;
  border-left: 4px solid var(--gold);
  border-radius: 4px;
  padding: 14px 18px;
  margin: 12px 0;
}
.pitfall-header {
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #7a5a10;
  margin-bottom: 6px;
}
.pitfall-header i { margin-right: 6px; }
.pitfall-mitigation {
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px dashed rgba(200, 146, 42, 0.35);
  font-size: 0.9rem;
}
.pitfall-mitigation strong { color: var(--forest); }

.chosen-summary {
  background: #f4f9f7;
  border: 1px solid var(--forest);
  border-radius: 5px;
  padding: 16px 20px;
  margin-top: 18px;
}
.chosen-summary .chosen-header {
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--forest);
  margin-bottom: 8px;
}
.chosen-summary .chosen-header i { margin-right: 6px; }
.chosen-summary .clause-ref {
  display: inline-block;
  background: var(--forest);
  color: var(--white);
  font-family: var(--font-mono);
  font-size: 0.78rem;
  padding: 3px 10px;
  border-radius: 3px;
  margin-top: 10px;
}

/* Legislation source blocks */
.legis-block {
  border: 1px solid var(--border);
  border-radius: 6px;
  margin: 20px 0;
  overflow: hidden;
  background: var(--white);
}
.legis-header {
  background: var(--forest-wash);
  padding: 14px 20px;
  border-bottom: 1px solid var(--border);
}
.legis-header .legis-citation {
  font-family: var(--font-display);
  font-size: 1.15rem;
  color: var(--forest-deep);
  margin: 0;
}
.legis-header .legis-full-title {
  color: var(--slate);
  font-size: 0.85rem;
  margin: 3px 0 0;
  font-style: italic;
}
.legis-header .legis-jurisdiction {
  display: inline-block;
  background: var(--gold);
  color: var(--white);
  font-size: 0.68rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 2px 8px;
  border-radius: 3px;
  margin-top: 6px;
  font-weight: 600;
}
.legis-body { padding: 18px 22px; }
.legis-body h5 {
  font-family: var(--font-body);
  font-size: 0.82rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--slate);
  margin: 14px 0 6px;
  font-weight: 600;
}
.legis-body h5:first-child { margin-top: 0; }

.legis-quote {
  background: #f8f6ef;
  border-left: 3px solid var(--gold);
  padding: 12px 16px;
  margin: 10px 0;
  font-family: 'Georgia', serif;
  font-size: 0.92rem;
  color: var(--ink);
  line-height: 1.55;
  border-radius: 0 4px 4px 0;
}
.legis-quote::before {
  content: '“';
  font-family: 'Georgia', serif;
  font-size: 1.8rem;
  color: var(--gold);
  line-height: 0;
  vertical-align: -0.35em;
  margin-right: 4px;
}
.legis-quote-cite {
  display: block;
  margin-top: 6px;
  font-family: var(--font-body);
  font-size: 0.78rem;
  font-style: normal;
  color: var(--slate);
}

.legis-plain {
  background: #f7faf9;
  border: 1px dashed var(--border);
  padding: 12px 16px;
  border-radius: 4px;
  margin: 10px 0;
  font-size: 0.92rem;
}
.legis-plain-label {
  font-weight: 700;
  color: var(--forest);
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 6px;
}

.legis-application {
  background: #eef5f3;
  border-radius: 4px;
  padding: 12px 16px;
  margin-top: 10px;
  font-size: 0.9rem;
}
.legis-application-label {
  font-weight: 700;
  color: var(--forest);
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 6px;
}

/* Traceability matrix */
.trace-matrix {
  width: 100%;
  font-size: 0.88rem;
  border-collapse: collapse;
  margin: 18px 0;
}
.trace-matrix th {
  background: var(--forest-deep);
  color: var(--white);
  padding: 10px 12px;
  text-align: left;
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 0.85rem;
}
.trace-matrix td {
  padding: 10px 12px;
  border-bottom: 1px solid var(--border);
  vertical-align: top;
}
.trace-matrix td:first-child {
  font-family: var(--font-mono);
  font-size: 0.85rem;
  color: var(--forest-deep);
  font-weight: 600;
  white-space: nowrap;
}
.trace-matrix tbody tr:nth-child(even) { background: #fafafa; }

/* TOC for long documents */
.paper-toc {
  background: var(--forest-wash);
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: 20px 24px;
  margin: 24px 0 32px;
}
.paper-toc h3 {
  margin: 0 0 12px;
  font-family: var(--font-body);
  font-size: 0.82rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--forest);
  font-weight: 600;
  border: none;
}
.paper-toc ol {
  columns: 1;
  padding-left: 22px;
  margin: 0;
}
@media (min-width: 780px) {
  .paper-toc ol { columns: 2; column-gap: 32px; }
}
.paper-toc li { margin-bottom: 4px; break-inside: avoid; }
.paper-toc a {
  color: var(--forest-deep);
  text-decoration: none;
  font-size: 0.92rem;
}
.paper-toc a:hover { color: var(--gold); text-decoration: underline; }

/* Constitution margin annotations */
.constitution-clause {
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
  margin: 18px 0;
  padding-bottom: 18px;
  border-bottom: 1px dotted var(--border);
}
@media (min-width: 900px) {
  .constitution-clause {
    grid-template-columns: 1fr 260px;
    gap: 28px;
  }
}
.clause-body h3 {
  margin: 0 0 6px;
  color: var(--forest-deep);
  font-family: var(--font-body);
  font-size: 1.02rem;
  font-weight: 700;
}
.clause-annotation {
  background: #f8f6ef;
  border-left: 3px solid var(--gold);
  padding: 10px 12px;
  border-radius: 0 4px 4px 0;
  font-size: 0.82rem;
  color: var(--slate);
  align-self: start;
}
.clause-annotation-label {
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #7a5a10;
  margin-bottom: 4px;
  display: block;
}
.clause-annotation a {
  color: var(--forest);
  text-decoration: underline;
  text-decoration-color: var(--gold-pale);
}

/* ============================================================
   Clause alias anchors — invisible, no layout impact.
   Injected into constitution.html so Decision Paper cross-refs
   (#clause-N) land on the corresponding existing #cN clause.
   ============================================================ */
.clause-alias {
  display: inline-block;
  width: 0;
  height: 0;
  overflow: hidden;
  visibility: hidden;
  scroll-margin-top: 90px; /* Offset for sticky topbar when link anchors to it */
}

/* ============================================================================
   PRINT / PDF STYLESHEET
   Applied whenever the user prints or saves-as-PDF from the browser.
   Every registration document inherits this — no per-document changes needed.
   ============================================================================ */
@media print {
  /* --- Page setup: A4, generous margins for legal filing --- */
  @page {
    size: A4;
    margin: 20mm 18mm 22mm 18mm;
  }
  @page :first {
    margin-top: 25mm;
  }

  /* --- Root / body: white background, black-on-white for max legibility --- */
  html, body {
    background: white !important;
    color: #000 !important;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Helvetica Neue', sans-serif !important;
    font-size: 10.5pt !important;
    line-height: 1.55 !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  /* --- Hide screen-only chrome --- */
  .reg-topbar,
  .breadcrumb,
  .site-nav,
  .top-nav,
  nav,
  .no-print,
  script,
  .doc-tag,
  .footer-nav,
  a.hub-card .hub-icon i {
    display: none !important;
  }

  /* --- Container: no shadow, no border, full width --- */
  .reg-page,
  .doc-body,
  .container {
    box-shadow: none !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
    max-width: 100% !important;
    width: 100% !important;
    background: transparent !important;
  }

  /* --- Cover header: keeps document identity on first page --- */
  .doc-header {
    border-bottom: 2pt solid #000 !important;
    padding-bottom: 8mm !important;
    margin-bottom: 10mm !important;
    background: transparent !important;
    page-break-after: avoid;
  }
  .doc-title {
    font-family: 'DM Serif Display', Georgia, serif !important;
    font-size: 22pt !important;
    color: #000 !important;
    margin: 0 0 4mm 0 !important;
    line-height: 1.15 !important;
  }
  .doc-subtitle {
    font-size: 10.5pt !important;
    color: #333 !important;
    line-height: 1.5 !important;
    margin: 0 0 4mm 0 !important;
  }
  .doc-meta,
  .doc-status {
    font-size: 8.5pt !important;
    color: #555 !important;
    text-transform: uppercase;
    letter-spacing: 0.4pt;
    font-weight: 600;
  }
  .doc-status i {
    display: none !important;
  }

  /* --- Section titles: page-break control --- */
  h1, h2, h3, h4, h5,
  .section-title, .section-subtitle {
    page-break-after: avoid;
    page-break-inside: avoid;
    color: #000 !important;
    font-family: 'DM Serif Display', Georgia, serif !important;
  }
  h1 { font-size: 18pt !important; }
  h2, .section-title { font-size: 15pt !important; margin-top: 8mm !important; }
  h3, .section-subtitle { font-size: 12.5pt !important; margin-top: 5mm !important; }
  h4 { font-size: 11.5pt !important; }
  .section-number {
    display: inline-block;
    background: #000 !important;
    color: #fff !important;
    padding: 1mm 3mm !important;
    font-size: 8pt !important;
    margin-right: 3mm !important;
    border-radius: 0 !important;
  }

  /* --- Paragraphs and lists --- */
  p, li, dd, td, th {
    orphans: 3;
    widows: 3;
    color: #000 !important;
  }
  p { margin: 0 0 3mm 0 !important; }
  ul, ol { margin: 0 0 4mm 5mm !important; }
  li { margin-bottom: 1.5mm !important; }

  /* --- Links: printed with the URL in parentheses (only for external) --- */
  a { color: #000 !important; text-decoration: underline; }
  a[href^="http"]:not([href*="cosailifewithoutdebt.org"]):after {
    content: " (" attr(href) ")";
    font-size: 8.5pt;
    color: #555;
    word-break: break-all;
  }

  /* --- Callouts: subtle grey borders, no fill colours --- */
  .callout {
    border: 0.5pt solid #999 !important;
    background: #f8f8f8 !important;
    padding: 4mm 5mm !important;
    margin: 4mm 0 !important;
    page-break-inside: avoid;
  }
  .callout-title {
    font-weight: 700 !important;
    color: #000 !important;
    margin-bottom: 2mm !important;
  }
  .callout-info, .callout-warning, .callout-danger, .callout-note {
    background: #f8f8f8 !important;
    border-left: 2pt solid #000 !important;
  }
  .callout i { display: none !important; }

  /* --- Decision Paper: option cards --- */
  .decision-block {
    page-break-inside: avoid;
    border-left: 2pt solid #000 !important;
    background: transparent !important;
    padding: 3mm 5mm !important;
    margin: 5mm 0 !important;
  }
  .decision-number {
    background: #000 !important;
    color: #fff !important;
    padding: 1mm 3mm !important;
    font-size: 8pt !important;
    letter-spacing: 0.5pt;
  }
  .options-grid {
    display: block !important;
  }
  .option-card {
    border: 0.5pt solid #999 !important;
    padding: 3mm 4mm !important;
    margin: 2mm 0 !important;
    page-break-inside: avoid;
    background: transparent !important;
  }
  .option-card.chosen {
    border-left: 3pt solid #000 !important;
    background: #f8f8f8 !important;
  }
  .option-card.rejected {
    border-left: 3pt solid #666 !important;
    opacity: 0.85;
  }
  .option-badge {
    background: #000 !important;
    color: #fff !important;
    font-size: 7.5pt !important;
    padding: 1mm 2mm !important;
    letter-spacing: 0.4pt;
  }
  .pitfall {
    border-left: 2pt solid #000 !important;
    background: #f4f4f4 !important;
    padding: 3mm 4mm !important;
    margin: 3mm 0 !important;
    page-break-inside: avoid;
  }
  .pitfall-mitigation {
    border-top: 0.5pt dashed #666 !important;
    padding-top: 2mm !important;
    margin-top: 2mm !important;
  }
  .chosen-summary {
    background: #eee !important;
    border-left: 2pt solid #000 !important;
    padding: 3mm 4mm !important;
    margin: 3mm 0 !important;
    page-break-inside: avoid;
  }
  .clause-ref {
    font-family: 'Courier New', monospace !important;
    font-size: 8.5pt !important;
    background: #fff !important;
    border: 0.5pt solid #999 !important;
    padding: 0.5mm 2mm !important;
  }

  /* --- Legislative sourcebook: verbatim quotes --- */
  .legis-block {
    page-break-inside: avoid;
    border: 0.5pt solid #666 !important;
    padding: 4mm 5mm !important;
    margin: 5mm 0 !important;
    background: transparent !important;
  }
  .legis-header {
    border-bottom: 0.5pt solid #666 !important;
    padding-bottom: 2mm !important;
    margin-bottom: 3mm !important;
  }
  .legis-citation {
    font-weight: 700 !important;
    color: #000 !important;
  }
  .legis-jurisdiction {
    background: #000 !important;
    color: #fff !important;
    padding: 0.5mm 2mm !important;
    font-size: 7.5pt !important;
  }
  .legis-full-title {
    font-style: italic;
    font-size: 10pt !important;
    color: #333 !important;
    margin-bottom: 3mm !important;
  }
  .legis-quote {
    font-family: Georgia, 'Times New Roman', serif !important;
    background: #f8f8f8 !important;
    border-left: 2pt solid #000 !important;
    padding: 3mm 5mm !important;
    margin: 2mm 0 !important;
    font-size: 10pt !important;
    page-break-inside: avoid;
  }
  .legis-quote-cite {
    text-align: right;
    font-size: 8.5pt !important;
    color: #555 !important;
    font-style: italic;
    margin-top: 2mm !important;
  }
  .legis-plain, .legis-application {
    background: #fafafa !important;
    border: 0.5pt solid #ccc !important;
    padding: 3mm 4mm !important;
    margin: 2mm 0 !important;
  }
  .legis-plain-label, .legis-application-label {
    font-weight: 700 !important;
    text-transform: uppercase;
    font-size: 8pt !important;
    letter-spacing: 0.5pt;
    color: #000 !important;
    margin-bottom: 1.5mm !important;
  }

  /* --- Tables: proper borders, page-break --- */
  table {
    width: 100% !important;
    border-collapse: collapse !important;
    font-size: 9.5pt !important;
    margin: 4mm 0 !important;
    page-break-inside: auto;
  }
  thead {
    display: table-header-group;
  }
  tr { page-break-inside: avoid; }
  th, td {
    border: 0.5pt solid #666 !important;
    padding: 2mm 3mm !important;
    text-align: left !important;
    vertical-align: top !important;
  }
  th {
    background: #000 !important;
    color: #fff !important;
    font-weight: 700 !important;
    font-size: 9pt !important;
    text-transform: uppercase;
    letter-spacing: 0.3pt;
  }
  .trace-matrix th {
    background: #000 !important;
    color: #fff !important;
  }

  /* --- Clause bodies (Constitution) --- */
  .doc-section {
    page-break-inside: auto;
  }
  .sub-clauses, .clauses, .roman {
    padding-left: 6mm !important;
  }

  /* --- Cover / footer running elements --- */
  body::after {
    content: "Life Without Debt Ltd (in formation) · DRAFT — for solicitor review · Not legal advice";
    display: block;
    position: fixed;
    bottom: 5mm;
    left: 0;
    right: 0;
    text-align: center;
    font-size: 7.5pt;
    color: #888;
    font-family: 'Inter', sans-serif;
  }

  /* --- Kill decorative elements --- */
  .hub-icon, .toc-num, .decision-number i, .fa, .fas, .far, .fab {
    /* keep icon-driven data but suppress standalone decoration */
  }
  .hub-icon {
    display: none !important;
  }
  .hub-grid {
    display: block !important;
  }
  .hub-card {
    display: block !important;
    border: 0.5pt solid #666 !important;
    padding: 3mm 4mm !important;
    margin: 2mm 0 !important;
    background: transparent !important;
    page-break-inside: avoid;
  }

  /* --- Paper TOC: single column on print --- */
  .paper-toc {
    display: block !important;
  }
  .toc-item {
    display: block !important;
    border: 0.5pt solid #666 !important;
    padding: 3mm 4mm !important;
    margin: 2mm 0 !important;
    page-break-inside: avoid;
    color: #000 !important;
  }
  .toc-num {
    background: #000 !important;
    color: #fff !important;
    padding: 1mm 2mm !important;
    font-size: 8pt !important;
    margin-right: 3mm !important;
  }

  /* --- Force page break utility --- */
  .page-break, .print-break { page-break-before: always !important; }
  .no-break { page-break-inside: avoid !important; }
}

/* ============================================================================
   Print-only cover page (shown only when printing)
   Every document can add <div class="print-cover">...</div> to get a
   proper A4 cover page.
   ============================================================================ */
.print-cover {
  display: none;
}
@media print {
  .print-cover {
    display: block !important;
    page-break-after: always;
    text-align: center;
    padding-top: 40mm;
  }
  .print-cover .brand {
    font-family: 'DM Serif Display', Georgia, serif !important;
    font-size: 24pt !important;
    color: #000 !important;
    margin-bottom: 6mm !important;
  }
  .print-cover .subtitle {
    font-size: 12pt;
    color: #333;
    margin-bottom: 30mm;
    font-style: italic;
  }
  .print-cover .doctype {
    font-family: 'DM Serif Display', Georgia, serif !important;
    font-size: 20pt !important;
    color: #000 !important;
    margin-bottom: 4mm;
  }
  .print-cover .doctitle {
    font-size: 14pt;
    color: #333;
    margin-bottom: 40mm;
  }
  .print-cover .meta {
    font-size: 9.5pt;
    color: #666;
    letter-spacing: 0.5pt;
    text-transform: uppercase;
  }
}

