/* ============================================================================
   NOURA LAWYERS — MAGAZINE PRINT / PDF STYLESHEET
   ----------------------------------------------------------------------------
   Turns any /insights/, /knowledge/, /guides/, /practices/ or /jurisdictions/
   page into a branded editorial PDF:

       cover  →  two-column editorial interior  →  colophon / back cover

   Paired with /assets/print.js, which clones the article into #nl-print-doc
   before printing. Everything outside that node is hidden at print time, so
   output is identical regardless of how varied the live page markup is.

   Stock is warm cream, ink is Court Navy, Lawyer Gold marks structure.

   The cream field is a plain background-color on html/body, which relies on
   backgrounds being printed. The server route (/api/pdf) always renders with
   printBackground on, so that holds. The fallback route — the browser's own
   print dialog — ships with "Background graphics" OFF in Chrome, and there
   the sheet prints white; the layout and every rule still hold, it just
   loses the warmth. That is the accepted cost of the fallback.
   ============================================================================ */

/* ── SCREEN: the trigger button ─────────────────────────────────────────── */

.nlp-trigger {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 9px 16px 9px 13px;
  font-family: var(--font-sans, "Geist", system-ui, sans-serif);
  font-size: .74rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--gold, #C9A961);
  background: rgba(201, 169, 97, .07);
  border: 1px solid rgba(201, 169, 97, .28);
  border-radius: 999px;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
  transition:
    background 160ms cubic-bezier(.23, 1, .32, 1),
    border-color 160ms cubic-bezier(.23, 1, .32, 1),
    transform 160ms cubic-bezier(.23, 1, .32, 1);
}
.nlp-trigger svg { width: 15px; height: 15px; flex: none; }

@media (hover: hover) and (pointer: fine) {
  .nlp-trigger:hover {
    background: rgba(201, 169, 97, .14);
    border-color: rgba(201, 169, 97, .5);
  }
}
.nlp-trigger:active { transform: scale(.97); }

/* Rendering takes a few seconds server-side; the button has to say so. */
.nlp-trigger.is-busy {
  cursor: progress;
  opacity: .72;
}
.nlp-trigger.is-busy svg {
  animation: nlp-spin 900ms linear infinite;
  transform-origin: center;
}
@keyframes nlp-spin {
  to { transform: rotate(360deg); }
}
@media (prefers-reduced-motion: reduce) {
  .nlp-trigger.is-busy svg { animation: none; }
}
.nlp-trigger:focus-visible {
  outline: 2px solid var(--gold, #C9A961);
  outline-offset: 2px;
}
@media (prefers-reduced-motion: reduce) {
  .nlp-trigger { transition: none; }
  .nlp-trigger:active { transform: none; }
}

/* Standalone bar, used when there is no .share-bar to dock into */
.nlp-trigger-bar {
  display: flex;
  justify-content: flex-end;
  margin: 22px 0 26px;
}

/* The print document never shows on screen */
#nl-print-doc { display: none; }

/* ── PRINT ──────────────────────────────────────────────────────────────── */

/* The stock colour belongs on @page, not on html/body.
   A background on html/body only ever paints the BODY BOX, which a named page
   insets by its own margins — so the interior printed cream in the text area
   and bare white in the margins, a visible frame on every sheet after the
   cover. Content cannot paint into the page-margin area at all: a fixed layer
   with negative offsets is clipped to the content box. @page background fills
   the whole sheet, margins included. */
@page {
  size: A4;
  /* Zero margin: the cover, contents and colophon compose their own edge. */
  margin: 0;
  background: #FAF7F1;
}

/* The interior reserves its margins at the PAGE level, not as padding on the
   block. Padding is applied once to the whole flow, so it only clears the
   furniture on the final sheet — every page in between ran its text straight
   under the running foot. A named page margin is reserved on every sheet. */
@page nlp-interior {
  size: A4;
  margin: 34mm 15.3mm 22mm;
  background: #FAF7F1;
}
@page nlp-bleed {
  size: A4;
  margin: 0;
}

@media print {

  /* Hide the entire live page; print only our constructed document. */
  body > *:not(#nl-print-doc) { display: none !important; }
  #nl-print-doc { display: block !important; }

  /* The site dresses every page in two full-viewport grain overlays
     (body::before / body::after — position:fixed, an feTurbulence SVG as a
     repeating background). Hiding body's *children* does not touch them.
     Left in, Chrome rasterises each one into a full-page RGBA bitmap plus an
     alpha mask FOR EVERY SHEET: four images per page, ~6MB each, which turned
     an 18-page guide into a 110MB download. Grain is a screen affectation
     anyway — paper has its own. */
  body::before, body::after { display: none !important; content: none !important; }

  html, body {
    /* Belt and braces behind the @page background above. */
    background: #FAF7F1 !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  #nl-print-doc {
    font-family: "Geist", "Inter", system-ui, -apple-system, sans-serif;
    font-weight: 300;
    font-size: 11.25pt;
    line-height: 1.72;
    color: rgba(15, 27, 45, .86);
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
  #nl-print-doc * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }

  /* Belt and braces alongside the class strip in print.js: nothing cloned out
     of the live page gets to carry a screen-theme ink colour onto paper. The
     editorial colours below re-assert themselves at higher specificity. */
  #nl-print-doc .nlp-col :not(strong):not(b):not(h2):not(h3):not(h4):not(h5):not(h6):not(a):not(summary):not(th) {
    color: inherit;
  }

  /* Same problem as the ink, one layer out: knowledge and practice pages are
     built from card components whose dark Court Navy surfaces are set by
     class, not by an inline style, so stripping [style] does not reach them.
     Left in, they print as navy slabs with cream text sitting on cream paper
     inside them. Everything cloned starts transparent and unframed; the few
     surfaces this stylesheet actually wants are re-declared below. */
  #nl-print-doc .nlp-col *,
  #nl-print-doc .nlp-col *::before,
  #nl-print-doc .nlp-col *::after {
    background: none !important;
    box-shadow: none !important;
    text-shadow: none !important;
    filter: none !important;
    border-radius: 0 !important;
  }

  /* Entry animations must not survive into print.
     The FAQ answers carry `animation: faq-reveal` whose from-state is
     opacity:0. A headless renderer captures frame zero, so every answer
     printed blank — the questions appeared, the answers silently did not, and
     the reserved space left half-empty pages. Same hazard for any
     scroll-reveal state (opacity/transform/filter set until JS marks it seen);
     no JS runs on the cloned copy, so those would stick too.

     Scoped to .nlp-col — cloned page content only — so the cover and contents
     keep their own deliberate opacities. */
  #nl-print-doc .nlp-col *,
  #nl-print-doc .nlp-col *::before,
  #nl-print-doc .nlp-col *::after {
    animation: none !important;
    transition: none !important;
    opacity: 1 !important;
    transform: none !important;
    visibility: visible !important;
    max-height: none !important;
  }

  /* Headings, quotes and tabular text are set left — justification is for
     running prose only, and stretching a short heading across the measure
     opens rivers wide enough to drive through. */
  #nl-print-doc .nlp-col h2,
  #nl-print-doc .nlp-col h3,
  #nl-print-doc .nlp-col h4,
  #nl-print-doc .nlp-col h5,
  #nl-print-doc .nlp-col h6,
  #nl-print-doc .nlp-col th,
  #nl-print-doc .nlp-col td,
  #nl-print-doc .nlp-col summary,
  #nl-print-doc .nlp-col blockquote,
  #nl-print-doc .nlp-col figcaption {
    text-align: left;
  }

  /* ── Right-to-left (the /ar/ mirror) ──────────────────────────────────
     print.js stamps dir="rtl" and lang on the document. Columns, alignment
     and the rules that hang off an edge all have to follow. Justification is
     dropped: Arabic justifies by kashida, which Chrome does not do, so forced
     justification just opens holes in the line. */
  #nl-print-doc[dir="rtl"] {
    font-family: "IBM Plex Sans Arabic", "Amiri", "Geist", sans-serif;
  }
  #nl-print-doc[dir="rtl"] .nlp-col { text-align: right; }
  #nl-print-doc[dir="rtl"] .nlp-col p { text-align: right; }
  #nl-print-doc[dir="rtl"] .nlp-headline,
  #nl-print-doc[dir="rtl"] .nlp-open h2,
  #nl-print-doc[dir="rtl"] .nlp-col h2,
  #nl-print-doc[dir="rtl"] .nlp-col h3,
  #nl-print-doc[dir="rtl"] .nlp-col h4,
  #nl-print-doc[dir="rtl"] .nlp-col li,
  #nl-print-doc[dir="rtl"] .nlp-col th,
  #nl-print-doc[dir="rtl"] .nlp-col td { text-align: right; }
  #nl-print-doc[dir="rtl"] .nlp-open .nlp-standfirst,
  #nl-print-doc[dir="rtl"] .nlp-col blockquote,
  #nl-print-doc[dir="rtl"] .nlp-col .advice-box,
  #nl-print-doc[dir="rtl"] .nlp-col .disclaimer-box {
    border-left: 0;
    border-right: .53mm solid #C9A961;
    padding-left: 0;
    padding-right: 5.8mm;
  }
  #nl-print-doc[dir="rtl"] .nlp-col ul,
  #nl-print-doc[dir="rtl"] .nlp-col ol { padding-left: 0; padding-right: 6.4mm; }
  #nl-print-doc[dir="rtl"] .nlp-col .nlp-dropcap::first-letter {
    float: right;
    padding: 2.1mm 0 0 3.2mm;
  }
  #nl-print-doc[dir="rtl"] .nlp-back-grid,
  #nl-print-doc[dir="rtl"] .nlp-back-source,
  #nl-print-doc[dir="rtl"] .nlp-disclaimer { text-align: right; }

  /* ══ SHARED FURNITURE ════════════════════════════════════════════════════ */

  /* The oversized eclipse watermark. Positioned in px by print.js; kept at
     its natural aspect ratio so it stays a true circle, and drawn in a flat
     pre-mixed cream rather than with opacity — an opacity group rasterises
     the whole sheet into a bitmap. */
  .nlp-motif {
    position: absolute;
    width: 200mm;
    height: 200mm;
    z-index: 0;
    pointer-events: none;
  }

  .nlp-lockup { display: flex; align-items: center; gap: 4mm; }
  .nlp-lockup > svg { flex: none; }
  .nlp-lockup .nlp-rule {
    width: .26mm;
    height: 9mm;
    background: #0F1B2D;
    opacity: .6;
    flex: none;
  }
  .nlp-noura {
    font-family: "Cormorant Garamond", Georgia, serif;
    font-weight: 500;
    font-size: 15.75pt;
    letter-spacing: .05em;
    line-height: .85;
    color: #0F1B2D;
  }
  .nlp-lawyers {
    font-family: "Cinzel", "Cormorant Garamond", serif;
    font-size: 5.6pt;
    letter-spacing: .5em;
    color: #0F1B2D;
    margin-top: 1.3mm;
    padding-left: .5em;
  }

  .nlp-issue {
    font-family: "Cinzel", "Cormorant Garamond", serif;
    font-size: 9pt;
    letter-spacing: .35em;
    color: #8E7340;
  }

  .nlp-kicker {
    font-family: "Cinzel", "Cormorant Garamond", serif;
    letter-spacing: .42em;
    text-transform: uppercase;
    color: #8E7340;
    margin: 0;
  }

  .nlp-headline {
    font-family: "Cormorant Garamond", Georgia, serif;
    font-weight: 400;
    line-height: 1.0;
    letter-spacing: -.004em;
    color: #0F1B2D;
    margin: 0;
    text-wrap: balance;
  }

  .nlp-sub {
    font-family: "Cormorant Garamond", Georgia, serif;
    font-style: italic;
    color: #C9A961;
    margin: 0;
  }

  /* ══ COVER ═══════════════════════════════════════════════════════════════ */

  .nlp-cover {
    position: relative;
    width: 210mm;
    height: 297mm;
    overflow: hidden;
    page: nlp-bleed;
    break-after: page;
    page-break-after: always;
    display: flex;
    flex-direction: column;
    background: #FAF7F1;
    /* The interior's running head, foot and stock are position:fixed, which
       means the browser paints them on EVERY sheet — including this one. An
       opaque cover stacked above them is what keeps them off the cover. */
    z-index: 10;
  }
  .nlp-cover > *:not(.nlp-motif) { position: relative; z-index: 1; }

  .nlp-cover-head {
    padding: 14.8mm 15.3mm 0;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
  }
  .nlp-cover-head .nlp-lockup > svg { width: 11.6mm; height: 11.6mm; }
  .nlp-cover-edition { text-align: right; }
  .nlp-cover-edition .nlp-issue { font-size: 9pt; }
  .nlp-cover-edition span {
    display: block;
    font-size: 9pt;
    font-weight: 300;
    letter-spacing: .18em;
    color: rgba(15, 27, 45, .6);
    margin-top: 1.9mm;
  }

  /* The house line, centred under the masthead */
  .nlp-cover-motto {
    text-align: center;
    margin-top: 9mm;
    padding: 0 15.3mm;
  }
  .nlp-cover-motto .nlp-kicker {
    font-size: 11.25pt;
    letter-spacing: .52em;
    color: #0F1B2D;
  }
  .nlp-cover-motto hr {
    width: 17mm;
    height: .26mm;
    background: #0F1B2D;
    opacity: .5;
    border: 0;
    margin: 4.2mm auto 0;
  }

  /* The headline block sits low on the sheet — the whole point of the cover */
  .nlp-cover-title-block {
    margin-top: auto;
    padding: 0 15.3mm 5.3mm;
  }
  .nlp-cover-title-block .nlp-kicker {
    font-size: 9.75pt;
    color: #C9A961;
    margin-bottom: 5.8mm;
  }
  .nlp-cover-title {
    /* Size is set inline by print.js, stepped to headline length */
    font-size: 54pt;
  }
  .nlp-cover-deck {
    font-size: 19.5pt;
    line-height: 1.35;
    margin-top: 6.4mm;
    max-width: 34ch;
  }

  /* Contents strip along the foot */
  .nlp-cover-foot {
    padding: 5.8mm 15.3mm 13.8mm;
    border-top: .26mm solid rgba(15, 27, 45, .16);
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 6.4mm;
  }
  .nlp-cover-inside { max-width: 52%; }
  .nlp-cover-inside .nlp-kicker {
    font-size: 7.5pt;
    letter-spacing: .34em;
    margin-bottom: 2.1mm;
  }
  .nlp-cover-inside p {
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: 14.25pt;
    line-height: 1.45;
    color: #0F1B2D;
    margin: 0;
  }
  .nlp-cover-imprint { text-align: right; }
  .nlp-cover-imprint span {
    display: block;
    font-size: 10.5pt;
    font-weight: 300;
    color: rgba(15, 27, 45, .6);
  }
  .nlp-cover-imprint .nlp-issue { font-size: 8.25pt; margin-top: 2.1mm; }

  /* ══ CONTENTS ════════════════════════════════════════════════════════════ */

  /* A standalone contents page. Not decoration: it is what turns a long
     article into a report you can navigate and cite by section. */
  .nlp-contents {
    position: relative;
    width: 210mm;
    height: 297mm;
    overflow: hidden;
    page: nlp-bleed;
    break-after: page;
    page-break-after: always;
    display: flex;
    flex-direction: column;
    padding: 14.8mm 15.3mm 13.8mm;
    background: #FAF7F1;
    z-index: 10;
  }
  .nlp-contents-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
  }
  .nlp-contents-head .nlp-lockup > svg { width: 10.6mm; height: 10.6mm; }

  .nlp-contents-label {
    font-size: 9.75pt;
    letter-spacing: .42em;
    margin: 18mm 0 7mm;
    padding-bottom: 4.2mm;
    border-bottom: .26mm solid #C9A961;
  }

  .nlp-toc {
    list-style: none;
    margin: 0;
    padding: 0;
    counter-reset: none;
  }
  .nlp-toc li {
    display: flex;
    align-items: baseline;
    gap: 7mm;
    padding: 3.4mm 0;
    border-bottom: .2mm solid rgba(15, 27, 45, .1);
    break-inside: avoid;
  }
  .nlp-toc-n {
    flex: none;
    width: 10mm;
    font-family: "Cinzel", "Cormorant Garamond", serif;
    font-size: 8.25pt;
    letter-spacing: .12em;
    color: #8E7340;
  }
  .nlp-toc-t {
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: 14.25pt;
    line-height: 1.3;
    color: #0F1B2D;
  }

  .nlp-contents-foot {
    margin-top: auto;
    display: flex;
    gap: 12mm;
    padding-top: 5.5mm;
    border-top: .26mm solid rgba(15, 27, 45, .16);
  }

  /* ══ INTERIOR ════════════════════════════════════════════════════════════ */

  .nlp-body {
    position: relative;
    page: nlp-interior;
    padding: 0;
  }

  /* No CSS running head or foot.
     position:fixed is the only way to repeat furniture across printed pages,
     and in a paged context Chrome positions it against the page CONTENT box —
     it lands on top of the text rather than in the reserved margin, whatever
     offset you give it. The document carries its identity on the cover, the
     colophon and the section rules instead. If per-page furniture and page
     numbers are wanted later, the renderer's own headerTemplate/footerTemplate
     is the mechanism, and it needs uniform margins on every page. */
  .nlp-runhead, .nlp-runfoot { display: none; }

  /* — the opening spread: kicker, deck headline, standfirst — */
  .nlp-open { margin-bottom: 9.5mm; }
  .nlp-open .nlp-kicker { font-size: 9pt; margin-bottom: 5.3mm; }
  .nlp-open h2 {
    font-family: "Cormorant Garamond", Georgia, serif;
    font-weight: 400;
    font-size: 42pt;
    line-height: 1.0;
    letter-spacing: -.006em;
    color: #0F1B2D;
    margin: 0 0 7.4mm;
    text-wrap: balance;
  }
  .nlp-open .nlp-standfirst {
    font-family: "Cormorant Garamond", Georgia, serif;
    font-style: italic;
    font-size: 18pt;
    line-height: 1.4;
    color: #8E7340;
    border-left: .53mm solid #C9A961;
    padding-left: 5.8mm;
    margin: 0;
  }

  /* — the two-column text field — */
  .nlp-col {
    column-count: 2;
    column-gap: 10.6mm;
    column-fill: auto;
    text-align: justify;
    hyphens: auto;
  }

  .nlp-col p { margin: 0 0 4.2mm; orphans: 3; widows: 3; }

  /* Drop cap on the opening paragraph — the one unmistakably magazine move */
  .nlp-col .nlp-dropcap::first-letter {
    float: left;
    font-family: "Cormorant Garamond", Georgia, serif;
    font-weight: 500;
    font-size: 39pt;
    line-height: .7;
    color: #0F1B2D;
    padding: 2.1mm 3.2mm 0 0;
  }

  .nlp-col strong, .nlp-col b { font-weight: 500; color: #0F1B2D; }
  .nlp-col em, .nlp-col i { font-style: italic; }

  /* Links print as ink. External URLs surface once as a small gold gloss —
     a citation, not a browser artefact. */
  .nlp-col a {
    color: rgba(15, 27, 45, .86);
    text-decoration: none;
    border-bottom: .2mm solid rgba(201, 169, 97, .55);
  }
  .nlp-col a[href^="http"]::after {
    content: " (" attr(href) ")";
    font-size: 7pt;
    color: #8E7340;
    word-break: break-all;
    border: 0;
  }
  .nlp-col a[href^="#"], .nlp-col a[href^="/"] { border-bottom: 0; }
  .nlp-col a[href^="#"]::after, .nlp-col a[href^="/"]::after { content: ""; }

  /* — section heads break the column and span the measure — */
  /* The section numeral sits above the head, in gold — a spine the contents
     page can point at. */
  .nlp-col h2[data-nlp-n]::before {
    content: attr(data-nlp-n);
    display: block;
    font-family: "Cinzel", "Cormorant Garamond", serif;
    font-size: 8.25pt;
    letter-spacing: .3em;
    color: #8E7340;
    margin-bottom: 2.6mm;
  }
  .nlp-col h2 {
    column-span: all;
    font-family: "Cormorant Garamond", Georgia, serif;
    font-weight: 400;
    font-size: 26pt;
    line-height: 1.08;
    color: #0F1B2D;
    margin: 9mm 0 5mm;
    padding-top: 4.2mm;
    border-top: .26mm solid rgba(15, 27, 45, .16);
    break-after: avoid;
    page-break-after: avoid;
    text-wrap: balance;
  }
  .nlp-col h3 {
    font-family: "Cinzel", "Cormorant Garamond", serif;
    font-weight: 500;
    font-size: 9.75pt;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: #0F1B2D;
    margin: 6.4mm 0 2.6mm;
    break-after: avoid;
    page-break-after: avoid;
  }
  .nlp-col h4, .nlp-col h5, .nlp-col h6 {
    font-family: "Geist", "Inter", system-ui, sans-serif;
    font-weight: 500;
    font-size: 8.25pt;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: #8E7340;
    margin: 5.3mm 0 1.9mm;
    break-after: avoid;
    page-break-after: avoid;
  }

  /* — lists — */
  .nlp-col ul, .nlp-col ol { margin: 0 0 4.8mm; padding-left: 6.4mm; text-align: left; }
  .nlp-col li { margin-bottom: 1.9mm; break-inside: avoid; }
  .nlp-col ul li::marker { color: #C9A961; }
  .nlp-col ol li::marker { color: #8E7340; font-weight: 500; }

  .nlp-col ul.checklist { list-style: none; padding-left: 0; }
  .nlp-col ul.checklist li {
    position: relative;
    padding: 2.1mm 0 2.1mm 6.4mm;
    border-bottom: .2mm solid rgba(15, 27, 45, .1);
  }
  .nlp-col ul.checklist li::before {
    content: "\2713";
    position: absolute;
    left: 0;
    top: 2.1mm;
    color: #8E7340;
  }

  /* — pull quote — */
  .nlp-col blockquote {
    column-span: all;
    margin: 8mm 0;
    padding: 0 0 0 6.4mm;
    border-left: .53mm solid #C9A961;
    font-family: "Cormorant Garamond", Georgia, serif;
    font-style: italic;
    font-size: 20pt;
    line-height: 1.38;
    color: #8E7340;
    text-align: left;
    break-inside: avoid;
  }
  .nlp-col blockquote p { margin: 0; }

  /* — the contents block, set across the full measure — */
  .nlp-col .article-toc,
  .nlp-col .toc-block {
    column-span: all;
    background: none;
    border: 0;
    border-top: .26mm solid #C9A961;
    border-bottom: .26mm solid #C9A961;
    border-radius: 0;
    padding: 5.3mm 0;
    margin: 0 0 8mm;
    text-align: left;
    break-inside: avoid;
    page-break-inside: avoid;
  }
  .nlp-col .article-toc h3,
  .nlp-col .article-toc h4,
  .nlp-col .toc-block h3,
  .nlp-col .toc-block h4 {
    font-family: "Cinzel", serif;
    font-size: 7.5pt;
    letter-spacing: .34em;
    text-transform: uppercase;
    color: #8E7340;
    margin: 0 0 3.2mm;
    border: 0;
    padding: 0;
  }
  .nlp-col .article-toc ol,
  .nlp-col .toc-block ol {
    columns: 2;
    column-gap: 10.6mm;
    padding-left: 5.3mm;
    margin: 0;
  }
  .nlp-col .article-toc li,
  .nlp-col .toc-block li {
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: 12pt;
    line-height: 1.4;
    color: #0F1B2D;
    margin-bottom: 1.2mm;
    break-inside: avoid;
  }

  /* — callouts — */
  .nlp-col .advice-box,
  .nlp-col .disclaimer-box,
  .nlp-col .callout,
  .nlp-col .note {
    column-span: all;
    background: rgba(201, 169, 97, .07) !important;
    border: 0;
    border-left: .8mm solid #C9A961;
    border-radius: 0;
    padding: 5.3mm 6.4mm;
    margin: 7mm 0;
    font-size: 10.5pt;
    text-align: left;
    break-inside: avoid;
    page-break-inside: avoid;
  }
  .nlp-col .advice-box p:last-child,
  .nlp-col .disclaimer-box p:last-child { margin-bottom: 0; }

  /* — tables, set like a financial appendix, spanning both columns — */
  .nlp-col table {
    column-span: all;
    width: 100%;
    border-collapse: collapse;
    margin: 6mm 0 8mm;
    font-size: 9pt;
    text-align: left;
    break-inside: avoid;
    page-break-inside: avoid;
  }
  .nlp-col thead { display: table-header-group; }
  .nlp-col th {
    text-align: left;
    font-family: "Cinzel", "Cormorant Garamond", serif;
    font-size: 7.5pt;
    font-weight: 500;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: #0F1B2D;
    background: rgba(201, 169, 97, .12) !important;
    padding: 2.6mm 3.2mm;
    border-bottom: .4mm solid #C9A961;
  }
  .nlp-col td {
    padding: 2.6mm 3.2mm;
    border-bottom: .2mm solid rgba(15, 27, 45, .1);
    vertical-align: top;
    line-height: 1.5;
  }

  /* — FAQ <details> print open — */
  .nlp-col details {
    background: none;
    border: 0;
    border-top: .2mm solid rgba(15, 27, 45, .1);
    border-radius: 0;
    padding: 3.4mm 0;
    margin: 0;
    text-align: left;
    break-inside: avoid;
  }
  .nlp-col details summary {
    list-style: none;
    font-family: "Cormorant Garamond", Georgia, serif;
    font-weight: 500;
    font-size: 13pt;
    color: #0F1B2D;
    margin-bottom: 1.9mm;
  }
  .nlp-col details summary::-webkit-details-marker { display: none; }

  /* — figures — */
  .nlp-col img, .nlp-col svg { max-width: 100%; height: auto; break-inside: avoid; }
  .nlp-col figure { column-span: all; margin: 7mm 0; break-inside: avoid; }
  .nlp-col figcaption {
    font-size: 8.25pt;
    letter-spacing: .06em;
    color: rgba(15, 27, 45, .55);
    margin-top: 2.1mm;
    text-align: left;
  }

  /* — related reading flattens to a list — */
  .nlp-col .related-list { display: block; padding-left: 0; list-style: none; }
  .nlp-col .related-list li {
    background: none;
    border: 0;
    border-bottom: .2mm solid rgba(15, 27, 45, .1);
    border-radius: 0;
    padding: 2.1mm 0;
  }

  .nlp-col hr {
    column-span: all;
    border: 0;
    border-top: .26mm solid rgba(15, 27, 45, .16);
    margin: 8mm 0;
  }

  /* — the closing line, set full measure in italic — */
  .nlp-col .nlp-endmark {
    column-span: all;
    font-family: "Cormorant Garamond", Georgia, serif;
    font-style: italic;
    font-size: 15pt;
    color: #8E7340;
    text-align: left;
    margin: 8mm 0 0;
  }

  /* ══ BACK COVER / COLOPHON ═══════════════════════════════════════════════ */

  .nlp-back {
    position: relative;
    width: 210mm;
    height: 297mm;
    overflow: hidden;
    page: nlp-bleed;
    break-before: page;
    page-break-before: always;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 15.3mm;
    background: #FAF7F1;
    /* Opaque, above the interior's fixed furniture — see .nlp-cover. */
    z-index: 10;
  }
  .nlp-back > *:not(.nlp-motif) { position: relative; z-index: 1; }

  .nlp-back-mark { margin-top: 30mm; }
  .nlp-back-mark > svg { width: 34mm; height: 34mm; }
  .nlp-back-wordmark { margin-top: 9mm; }
  .nlp-back-wordmark .nlp-noura { font-size: 30pt; line-height: .9; }
  .nlp-back-wordmark .nlp-lawyers {
    font-size: 9.75pt;
    letter-spacing: .55em;
    margin-top: 2.4mm;
    padding-left: .55em;
  }

  .nlp-back-rule {
    width: 15mm;
    height: .26mm;
    background: #C9A961;
    border: 0;
    margin: 9.5mm 0;
  }

  .nlp-back-line {
    font-family: "Cormorant Garamond", Georgia, serif;
    font-style: italic;
    font-size: 19.5pt;
    line-height: 1.45;
    color: #0F1B2D;
    max-width: 26ch;
    margin: 0;
  }

  /* Contact + regulatory block, three columns above the imprint */
  .nlp-back-grid {
    display: flex;
    gap: 8mm;
    width: 100%;
    max-width: 160mm;
    margin-top: 16mm;
    padding-top: 6.4mm;
    border-top: .26mm solid rgba(15, 27, 45, .16);
    text-align: left;
  }
  .nlp-back-col { flex: 1; }
  .nlp-back-col h3 {
    font-family: "Cinzel", "Cormorant Garamond", serif;
    font-size: 6.75pt;
    font-weight: 500;
    letter-spacing: .28em;
    text-transform: uppercase;
    color: #8E7340;
    margin: 0 0 2.4mm;
  }
  .nlp-back-col p {
    font-size: 8.6pt;
    font-weight: 300;
    line-height: 1.62;
    color: rgba(15, 27, 45, .74);
    margin: 0 0 1.6mm;
  }

  .nlp-back-foot { margin-top: auto; width: 100%; max-width: 160mm; }
  .nlp-back-foot .nlp-kicker {
    font-size: 8.25pt;
    letter-spacing: .42em;
    color: #8E7340;
  }
  .nlp-back-foot .nlp-web {
    font-size: 11.25pt;
    font-weight: 300;
    letter-spacing: .06em;
    color: rgba(15, 27, 45, .7);
    margin-top: 3.2mm;
  }
  .nlp-back-source {
    margin-top: 8mm;
    padding-top: 4.2mm;
    border-top: .26mm solid rgba(15, 27, 45, .12);
    font-size: 7pt;
    line-height: 1.7;
    color: rgba(15, 27, 45, .5);
    word-break: break-all;
    text-align: left;
  }
  .nlp-disclaimer {
    margin-top: 4.2mm;
    font-size: 7pt;
    line-height: 1.68;
    color: rgba(15, 27, 45, .5);
    text-align: left;
  }

  /* ══ THINGS THAT MUST NEVER REACH PAPER ══════════════════════════════════ */

  #nl-print-doc canvas,
  #nl-print-doc video,
  #nl-print-doc iframe,
  #nl-print-doc form,
  #nl-print-doc button,
  #nl-print-doc .share-bar,
  #nl-print-doc .nlp-trigger,
  #nl-print-doc .nlp-trigger-bar,
  #nl-print-doc .cx-acts,
  #nl-print-doc .cta,
  #nl-print-doc .cta-band,
  #nl-print-doc .newsletter,
  #nl-print-doc .float-cta,
  #nl-print-doc .sticky-bar,
  #nl-print-doc [data-widget],
  #nl-print-doc .breadcrumb,
  #nl-print-doc .progress,
  #nl-print-doc .wiz-nav {
    display: none !important;
  }
}
