/* ==========================================================================
   Truvest Capital Market GmbH · Direction B "Private Bank"
   One shared stylesheet: tokens, base, layout, components, page patterns.
   Rules of the house: white and porcelain grounds, navy ink, blue only for
   action, cyan only as a tiny signal, 2px radius, hairlines, no shadows.
   Contents
   01 Fonts            06 Header and navigation   11 Panels and notices   16 Footer
   02 Tokens           07 Breadcrumb              12 Dark band and map    17 Cookie notice
   03 Base and reset   08 Buttons and links       13 Figures and photos   18 Page patterns
   04 Typography       09 Chips and tiles         14 Tabs                 19 Utilities
   05 Layout           10 Tables, rows, steps     15 Forms                20 Responsive, motion, print
   ========================================================================== */

/* 01 Fonts (self-hosted, no third-party requests) ------------------------- */
@font-face{
  font-family:"Geist";
  src:url("../fonts/Geist-Variable.woff2") format("woff2");
  font-weight:100 900;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:"Geist Mono";
  src:url("../fonts/GeistMono-Variable.woff2") format("woff2");
  font-weight:100 900;
  font-style:normal;
  font-display:swap;
}

/* 02 Tokens ---------------------------------------------------------------- */
:root{
  --ink:#0a0e27;
  --ink-2:#2b3147;
  --ink-3:#4a5268;
  --muted:#5b6478;
  --rule:#dfe3ea;
  --rule-strong:#c3c9d5;
  --rule-hover:#9aa3b5;
  --porcelain:#f5f7fa;
  --paper:#fbfcfd;
  --white:#ffffff;
  --blue:#2563eb;
  --blue-hover:#1d4ed8;
  --cyan:#06b6d4;
  --cyan-light:#67e8f9;
  --grad:linear-gradient(90deg,#06b6d4,#2563eb);
  --dark-text:#ffffff;
  --dark-body:#e6e9f1;
  --dark-muted:#a9b2c7;
  --dark-rule:rgba(255,255,255,0.16);
  --dark-rule-strong:rgba(255,255,255,0.32);
  --error:#b42318;

  --font-sans:"Geist",system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --font-mono:"Geist Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;

  --fs-display:clamp(38px,6.1vw,92px);
  --fs-h1:clamp(34px,4.8vw,72px);
  --fs-h2:clamp(28px,3.4vw,48px);
  --fs-feature:clamp(36px,5.4vw,80px);
  --fs-h3:clamp(22px,2vw,28px);
  --fs-cell:clamp(20px,1.8vw,24px);
  --fs-h4:18px;
  --fs-lead:clamp(17px,1.45vw,21px);
  --fs-body:16px;
  --fs-small:14px;
  --fs-label:11px;
  --fs-mono:13px;

  --radius:2px;
  --container:1440px;
  --gutter:clamp(20px,4.4vw,64px);
  --section-y:clamp(72px,9vw,144px);
  --section-y-compact:clamp(56px,7vw,104px);
  --block-gap:clamp(40px,5vw,72px);
  --cell-pad:clamp(24px,2.6vw,40px);
  --panel-pad:clamp(18px,2.2vw,32px);
  --header-h:76px;
  --control-h:52px;
  --btn-h:54px;
}

/* 03 Base and reset --------------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;
  background:var(--white);
  color:var(--ink);
  font-family:var(--font-sans);
  font-size:var(--fs-body);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
  overflow-wrap:break-word;
}
[id]{scroll-margin-top:96px}
h1,h2,h3,h4,h5,h6,p,figure,blockquote,dl,dd{margin:0}
ul[class],ol[class]{margin:0;padding:0;list-style:none}
img,svg,picture{display:block;max-width:100%}
img{height:auto}
picture{width:100%}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
table{border-collapse:collapse}
address{font-style:normal}
[hidden]{display:none !important}
::selection{background:var(--ink);color:var(--white)}

a{color:var(--blue);text-decoration:none}
a:hover{color:var(--blue-hover);text-decoration:underline;text-underline-offset:4px}
:focus{outline:none}
:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
.on-dark :focus-visible{outline-color:var(--cyan-light)}

.skip-link{
  position:absolute;left:16px;top:-80px;z-index:100;
  display:inline-flex;align-items:center;min-height:44px;padding:0 18px;
  background:var(--ink);color:var(--white);font-size:14px;font-weight:500;border-radius:var(--radius);
}
.skip-link:hover{color:var(--white);text-decoration:none}
.skip-link:focus{top:16px;outline:2px solid var(--cyan-light);outline-offset:3px}

/* 04 Typography ------------------------------------------------------------- */
.mono{font-family:var(--font-mono)}
.h-display{font-size:var(--fs-display);line-height:1;font-weight:600;letter-spacing:-0.035em;color:var(--ink)}
.h-display span{display:block}
.h-page{max-width:1180px;font-size:var(--fs-h1);line-height:1.02;font-weight:600;letter-spacing:-0.035em;text-wrap:balance}
.h-section{max-width:900px;font-size:var(--fs-h2);line-height:1.1;font-weight:500;letter-spacing:-0.03em;text-wrap:balance}
.h-feature{font-size:var(--fs-feature);line-height:1;font-weight:600;letter-spacing:-0.035em;text-wrap:balance}
.h-mega{max-width:1200px;font-size:clamp(40px,6.4vw,96px);line-height:0.98;font-weight:600;letter-spacing:-0.04em}
.h-block{font-size:clamp(32px,3.8vw,56px);line-height:1.02;font-weight:600;letter-spacing:-0.035em}
.h-sub{font-size:var(--fs-h3);line-height:1.15;font-weight:500;letter-spacing:-0.025em}
.h-cell{font-size:var(--fs-cell);line-height:1.2;font-weight:500;letter-spacing:-0.02em}
.h-4{font-size:var(--fs-h4);line-height:1.3;font-weight:500;letter-spacing:-0.015em}
.lead{max-width:680px;font-size:var(--fs-lead);line-height:1.5;letter-spacing:-0.01em;color:var(--ink-2)}
.lead-lg{max-width:720px;font-size:clamp(18px,1.6vw,23px);line-height:1.48;letter-spacing:-0.012em;color:var(--ink-2)}
.body{font-size:16px;line-height:1.6;color:var(--ink-3)}
.body-lg{font-size:17px;line-height:1.6;color:var(--ink-3)}
.small{font-size:14px;line-height:1.55;color:var(--ink-3)}
.label{font-family:var(--font-mono);font-size:11px;font-weight:400;letter-spacing:0.08em;text-transform:uppercase;color:var(--muted)}
.label-lg{font-family:var(--font-mono);font-size:12px;font-weight:400;letter-spacing:0.08em;text-transform:uppercase;color:var(--muted)}
.label-ink{color:var(--ink)}
.mono-data{font-family:var(--font-mono);font-size:13px;line-height:1.8;color:var(--ink)}
.mono-figure{font-family:var(--font-mono);font-size:clamp(44px,4.6vw,68px);line-height:1;font-weight:400;letter-spacing:-0.04em}
.fineprint{font-family:var(--font-mono);font-size:12px;line-height:1.7;color:var(--muted)}
.footnote{margin-top:20px;font-family:var(--font-mono);font-size:12px;line-height:1.7;color:var(--muted)}
.ast{color:var(--muted)}

/* Eyebrow: mono label with the 28px gradient hairline */
.eyebrow{
  display:flex;flex-wrap:wrap;align-items:center;gap:12px;
  font-family:var(--font-mono);font-size:12px;letter-spacing:0.08em;text-transform:uppercase;color:var(--muted);
}
.eyebrow::before{content:"";display:inline-block;width:28px;height:1px;background:var(--grad)}
.eyebrow--strong::before{height:2px}
.eyebrow--plain::before{display:none}

/* Long-form prose (legal pages, articles) */
.prose{max-width:760px;font-size:16px;line-height:1.7;color:var(--ink-2)}
.prose > * + *{margin-top:1em}
.prose h2{margin-top:2.4em;padding-top:1.2em;border-top:1px solid var(--rule);font-size:clamp(22px,2vw,28px);line-height:1.2;font-weight:500;letter-spacing:-0.025em;color:var(--ink)}
.prose h3{margin-top:1.8em;font-size:18px;line-height:1.3;font-weight:500;letter-spacing:-0.015em;color:var(--ink)}
.prose h4{margin-top:1.4em;font-size:16px;font-weight:600;color:var(--ink)}
.prose ul,.prose ol{padding-left:1.25em}
.prose li + li{margin-top:0.4em}
.prose a{text-decoration:underline;text-underline-offset:3px}
.prose strong{font-weight:600;color:var(--ink)}
.prose address{font-family:var(--font-mono);font-size:13px;line-height:1.8;color:var(--ink)}

/* 05 Layout ----------------------------------------------------------------- */
.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter)}
.section{padding-block:var(--section-y);background:var(--white)}
.section--compact{padding-block:var(--section-y-compact)}
.section--flush-top{padding-top:0}
.section--porcelain{background:var(--porcelain);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.section--rule-top{border-top:1px solid var(--rule)}
.section--feature{background:var(--porcelain);border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}
.section--hero{padding-top:clamp(48px,6.5vw,104px);padding-bottom:clamp(48px,6vw,96px)}
.section--hero-home{padding-top:clamp(48px,6.4vw,104px);padding-bottom:clamp(40px,4.6vw,72px)}

/* Numbered section header: label left (3 cols), heading right (9 cols) */
.sec-head{display:grid;grid-template-columns:3fr 9fr;column-gap:32px;row-gap:20px}
.sec-num{padding-top:10px;font-family:var(--font-mono);font-size:12px;letter-spacing:0.08em;text-transform:uppercase;color:var(--muted)}
.sec-head .lead{margin-top:24px;font-size:clamp(17px,1.4vw,20px)}
.sec-body{margin-top:var(--block-gap)}
.sec-meta{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 24px;font-family:var(--font-mono);font-size:12px;letter-spacing:0.08em;text-transform:uppercase;color:var(--muted)}

.hero-row{display:grid;grid-template-columns:7fr 5fr;column-gap:32px;row-gap:36px;align-items:end}
.hero-row--ruled{margin-top:clamp(32px,4vw,60px);padding-top:clamp(24px,2.6vw,36px);border-top:1px solid var(--rule)}
.hero-row--top{align-items:start}
.hero-title{margin-top:clamp(24px,3vw,40px)}
.hero-index{margin-top:clamp(36px,4vw,56px)}

/* 12-column grid helpers */
.grid-12{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:32px;row-gap:32px}
.col-2{grid-column:span 2}.col-3{grid-column:span 3}.col-4{grid-column:span 4}.col-5{grid-column:span 5}
.col-6{grid-column:span 6}.col-7{grid-column:span 7}.col-8{grid-column:span 8}.col-9{grid-column:span 9}
.col-10{grid-column:span 10}.col-12{grid-column:span 12}

.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px}
.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px}
.grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px}
.grid-5{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1px}
.gap-16{gap:16px}.gap-24{gap:24px}.gap-32{gap:32px}

.split-5-7{display:grid;grid-template-columns:5fr 7fr;column-gap:64px;row-gap:48px}
.split-7-5{display:grid;grid-template-columns:7fr 5fr;column-gap:64px;row-gap:48px}
.split-6-6{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:64px;row-gap:48px}
.split-4-8{display:grid;grid-template-columns:4fr 8fr;column-gap:64px;row-gap:48px}
.split-8-4{display:grid;grid-template-columns:8fr 4fr;column-gap:64px;row-gap:48px}
.split-3-9{display:grid;grid-template-columns:3fr 9fr;column-gap:32px;row-gap:32px}
.split-5-7 > *,.split-7-5 > *,.split-6-6 > *,.split-4-8 > *,.split-8-4 > *,.split-3-9 > *{min-width:0}
.split--tight{column-gap:32px}
.split--stretch{align-items:stretch}
.split--start{align-items:start}
.split--center{align-items:center}
.two-col-list{display:grid;grid-template-columns:1fr 1fr;column-gap:32px}

.btn-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.btn-row--wide{gap:16px 28px}
.row-between{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px 48px}

/* 06 Header and navigation -------------------------------------------------- */
.site-header{position:sticky;top:0;z-index:50;background:var(--white);border-bottom:1px solid var(--rule)}
.header-inner{
  position:relative;display:flex;align-items:center;justify-content:space-between;gap:24px;
  max-width:var(--container);height:var(--header-h);margin-inline:auto;padding-inline:var(--gutter);
}
.logo-link{display:inline-flex;align-items:center;min-height:44px;flex-shrink:0}
.nav-logo{display:block;width:auto;height:38px}
.nav-links{display:flex;align-items:center;gap:clamp(14px,1.9vw,30px);font-size:14px;font-weight:500;letter-spacing:-0.005em}
.nav-link{display:inline-flex;align-items:center;height:var(--header-h);color:var(--ink);white-space:nowrap}
.nav-link:hover{color:var(--blue);text-decoration:none}
.nav-link[aria-current="page"]{font-weight:600;color:var(--ink);box-shadow:inset 0 -2px 0 var(--ink)}
.nav-link[aria-current="page"]:hover{color:var(--ink)}
.nav-links .nav-cta-mobile{display:none}
.header-tools{display:flex;align-items:center;gap:20px;flex-shrink:0}
.lang-switch{display:flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:12px;letter-spacing:0.06em}
.lang-sep{color:var(--rule-strong)}
.lang-link{display:inline-flex;align-items:center;justify-content:center;min-width:28px;min-height:44px;color:var(--muted)}
.lang-link:hover{color:var(--ink);text-decoration:none}
.lang-link[aria-current="true"]{font-weight:500;color:var(--ink);box-shadow:inset 0 -1px 0 var(--ink)}
.nav-cta{height:44px;padding:0 20px;font-size:14px}
.nav-toggle{
  display:none;align-items:center;gap:10px;height:44px;padding:0 16px;
  background:var(--white);border:1px solid var(--rule);border-radius:var(--radius);
  font-size:14px;font-weight:500;color:var(--ink);transition:border-color .2s;
}
.nav-toggle:hover{border-color:var(--ink)}
.nav-toggle svg{flex-shrink:0}
.nav-toggle .icon-close{display:none}
.nav-toggle[aria-expanded="true"]{border-color:var(--ink)}
.nav-toggle[aria-expanded="true"] .icon-open{display:none}
.nav-toggle[aria-expanded="true"] .icon-close{display:block}
.noscript-nav{display:none}

/* 07 Breadcrumb -------------------------------------------------------------- */
.breadcrumb{background:var(--white);border-bottom:1px solid var(--rule)}
.breadcrumb ol{
  display:flex;flex-wrap:wrap;align-items:center;gap:10px;min-height:48px;
  max-width:var(--container);margin:0 auto;padding:0 var(--gutter);list-style:none;
  font-family:var(--font-mono);font-size:12px;letter-spacing:0.06em;text-transform:uppercase;
}
.breadcrumb a{display:inline-flex;align-items:center;min-height:44px;color:var(--muted)}
.breadcrumb a:hover{color:var(--blue);text-decoration:none}
.breadcrumb .sep{color:var(--rule-strong)}
.breadcrumb [aria-current="page"]{color:var(--ink)}

/* 08 Buttons and links ------------------------------------------------------- */
.btn,.btn-primary,.btn-secondary,.btn-ghost-dark,.btn-submit{
  display:inline-flex;align-items:center;justify-content:center;gap:12px;
  min-height:var(--btn-h);padding:8px 26px;border:1px solid transparent;border-radius:var(--radius);
  font-family:inherit;font-size:15px;font-weight:500;line-height:1.2;text-align:center;text-decoration:none;
  transition:background .2s,border-color .2s,color .2s;
}
.btn svg,.btn-primary svg,.btn-secondary svg,.btn-ghost-dark svg,.btn-submit svg{flex-shrink:0;transition:transform .25s}
.btn-primary:hover svg,.btn-secondary:hover svg,.btn-ghost-dark:hover svg,.btn-submit:hover svg{transform:translateX(4px)}
.btn-primary,.btn-submit{background:var(--blue);border-color:var(--blue);color:var(--white)}
.btn-primary:hover,.btn-submit:hover{background:var(--blue-hover);border-color:var(--blue-hover);color:var(--white);text-decoration:none}
.btn-secondary{background:var(--white);border-color:var(--rule-strong);color:var(--ink)}
.btn-secondary:hover{border-color:var(--ink);color:var(--ink);text-decoration:none}
.btn-secondary.btn--ink{border-color:var(--ink)}
.btn-secondary.btn--ink:hover{background:var(--ink);color:var(--white)}
.btn-ghost-dark{background:transparent;border-color:rgba(255,255,255,0.5);color:var(--white)}
.btn-ghost-dark:hover{background:var(--white);border-color:var(--white);color:var(--ink);text-decoration:none}
.btn--sm{min-height:44px;padding:6px 20px;font-size:14px}
.btn--block{width:100%}
.btn-submit[aria-disabled="true"],.btn-submit:disabled{background:var(--muted);border-color:var(--muted);cursor:progress}
a.nav-cta{min-height:44px;padding:0 20px}

.arrow-link{display:inline-flex;align-items:center;gap:12px;min-height:44px;font-size:15px;font-weight:500;color:var(--blue)}
.arrow-link:hover{color:var(--blue-hover);text-decoration:none}
.arrow-link svg{flex-shrink:0;transition:transform .25s}
.arrow-link:hover svg{transform:translateX(5px)}
.arrow-link-dark{color:var(--white)}
.arrow-link-dark:hover{color:var(--cyan-light)}
.ink-link{color:var(--ink)}
.ink-link:hover{color:var(--blue);text-decoration:none}
.text-link{text-decoration:underline;text-underline-offset:3px}

/* Full-width ruled row that is one link (for example "Other materials") */
.row-link{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 40px;
  padding:clamp(20px,2.2vw,30px) clamp(0px,1.2vw,16px);
  border-top:1px solid var(--ink);border-bottom:1px solid var(--rule);color:var(--ink);transition:background .2s;
}
.row-link:hover{background:var(--porcelain);color:var(--ink);text-decoration:none}
.row-link-main{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 32px}
.row-link-title{font-size:clamp(18px,1.6vw,22px);line-height:1.35;font-weight:500;letter-spacing:-0.015em}
.row-link-cta{display:inline-flex;align-items:center;gap:12px;min-height:44px;font-size:15px;font-weight:500;color:var(--blue)}
.row-link-cta svg{transition:transform .25s}
.row-link:hover .row-link-cta svg{transform:translateX(5px)}

/* 09 Chips and tiles --------------------------------------------------------- */
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{
  display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:0 14px;
  border:1px solid var(--rule);border-radius:var(--radius);background:var(--white);color:var(--ink);
  font-family:var(--font-mono);font-size:12px;letter-spacing:0.04em;transition:border-color .2s,background .2s;
}
a.chip:hover{border-color:var(--ink);background:var(--porcelain);color:var(--ink);text-decoration:none}
.chip-num{color:var(--muted)}
.chip--static{min-height:36px;background:var(--paper)}
.on-dark .chip{background:transparent;border-color:var(--dark-rule-strong);color:var(--white)}

/* Ruled cell grids: 1px gaps on a rule-coloured ground */
.cells{background:var(--rule);border:1px solid var(--rule)}
.cells--ink{background:var(--ink);border-color:var(--ink)}
.cells > *{background:var(--white)}
.cells--paper > *{background:var(--paper)}

.tile-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule)}
.tile-grid--text{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}
.tile{
  display:flex;flex-direction:column;justify-content:space-between;gap:10px;min-height:92px;padding:12px;
  background:var(--white);color:var(--ink);transition:background .2s,color .2s;
}
a.tile:hover{background:var(--porcelain);color:var(--blue);text-decoration:none}
.tile-num{font-family:var(--font-mono);font-size:10px;letter-spacing:0.06em;color:var(--muted)}
.tile-sym{display:block;font-family:var(--font-mono);font-size:24px;line-height:1;font-weight:500;letter-spacing:-0.03em}
.tile-name{display:block;margin-top:6px;font-size:12px;color:var(--ink-3)}
.tile-text{font-size:16px;font-weight:500;letter-spacing:-0.01em}
.tile--lg{min-height:96px}
.tile--lg .tile-sym{font-size:26px}

/* Large service tile (Home advisory grid) */
.svc-grid > li{display:flex;background:var(--white)}
.svc-tile{
  flex:1;display:flex;flex-direction:column;justify-content:space-between;gap:40px;
  min-height:290px;padding:var(--cell-pad);background:var(--white);color:var(--ink);transition:background .2s;
}
a.svc-tile:hover{background:var(--porcelain);color:var(--ink);text-decoration:none}
.svc-tile-meta{display:flex;justify-content:space-between;gap:12px;font-family:var(--font-mono);font-size:12px;letter-spacing:0.08em;text-transform:uppercase;color:var(--muted)}
.svc-tile-title{display:block;font-size:clamp(22px,2.1vw,30px);line-height:1.12;font-weight:500;letter-spacing:-0.028em;transition:color .2s}
a.svc-tile:hover .svc-tile-title{color:var(--blue)}
.svc-tile-text{display:block;margin-top:14px;font-size:16px;line-height:1.55;color:var(--ink-3)}

/* Generic ruled cell (services, roles, values, audiences) */
.cell{display:flex;flex-direction:column;justify-content:space-between;gap:32px;min-height:220px;padding:var(--cell-pad);background:var(--white)}
.cell--auto{min-height:0}
.cell-num{font-family:var(--font-mono);font-size:12px;letter-spacing:0.08em;color:var(--muted)}
.cell p{margin-top:12px;font-size:15px;line-height:1.6;color:var(--ink-3)}

/* Numbered process steps */
.steps{background:var(--rule);border:1px solid var(--rule)}
.step{display:flex;flex-direction:column;gap:28px;min-height:240px;padding:var(--cell-pad);background:var(--white)}
.step-meta{display:flex;justify-content:space-between;gap:12px;font-family:var(--font-mono);font-size:12px;letter-spacing:0.08em;text-transform:uppercase;color:var(--muted)}
.step-body{margin-top:auto}
.step-body p{margin-top:12px;font-size:15px;line-height:1.6;color:var(--ink-3)}
.steps--filler::after{content:"";background:var(--white)}

/* 10 Tables, rows, lists ------------------------------------------------------ */
.table-wrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.pb-table{width:100%;min-width:640px;border-collapse:collapse;border-top:1px solid var(--ink);font-size:15px;line-height:1.55}
.pb-table caption{caption-side:top;text-align:left;padding:0 0 14px;font-family:var(--font-mono);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--muted)}
.pb-table th{padding:14px 24px 14px 0;border-bottom:1px solid var(--rule);text-align:left;vertical-align:top;font-family:var(--font-mono);font-size:11px;font-weight:400;letter-spacing:0.08em;text-transform:uppercase;color:var(--muted)}
.pb-table td{padding:18px 24px 18px 0;border-bottom:1px solid var(--rule);text-align:left;vertical-align:top;color:var(--ink-2)}
.pb-table td.cell-key,.pb-table th[scope="row"]{font-family:var(--font-sans);font-size:15px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--ink)}
.pb-table td.cell-mono{font-family:var(--font-mono);font-size:13px;color:var(--ink)}

/* Ruled list wrapper: strong top rule, hairlines between rows */
.ruled{border-top:1px solid var(--ink)}
.ruled > *{border-bottom:1px solid var(--rule)}
.ruled--open > *:last-child{border-bottom:0}

.spec-row{display:grid;grid-template-columns:72px 3fr 5fr 4fr;column-gap:32px;row-gap:10px;padding:clamp(22px,2.4vw,34px) 0}
.spec-headrow{padding:14px 0;font-family:var(--font-mono);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--muted)}
.row-num{font-family:var(--font-mono);font-size:13px;color:var(--muted)}
.spec-row .row-num{padding-top:6px}
.spec-std{font-family:var(--font-mono);font-size:13px;line-height:1.8;color:var(--ink)}

/* Key and value spec table (dl) */
.kv{border-top:1px solid var(--ink)}
.kv-row{display:grid;grid-template-columns:4fr 8fr;column-gap:32px;row-gap:6px;padding:16px 0;border-bottom:1px solid var(--rule)}
.kv-row dt{padding-top:4px;font-family:var(--font-mono);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--muted)}
.kv-row dd{font-size:16px;line-height:1.6;color:var(--ink-2)}
.kv-row dd.mono,.kv--mono .kv-row dd{font-family:var(--font-mono);font-size:13px;line-height:1.8;color:var(--ink)}
.kv--compact .kv-row{padding:14px 0}

/* Credibility rows (Home profile) */
.cred-row{display:grid;grid-template-columns:72px 4fr 3fr 5fr;column-gap:32px;row-gap:8px;align-items:baseline;padding:clamp(18px,2vw,28px) 0}
.cred-title{font-size:17px;font-weight:500;letter-spacing:-0.01em}
.cred-fig{font-family:var(--font-mono);font-size:clamp(32px,3.4vw,48px);line-height:1;letter-spacing:-0.04em}
.cred-fig small{font-size:15px;letter-spacing:0;color:var(--ink-3)}
.cred-fig sup{font-size:20px;line-height:1;vertical-align:top;color:var(--muted)}
.cred-fig--text{font-family:var(--font-sans);font-size:clamp(24px,2.5vw,36px);line-height:1.05;font-weight:500;letter-spacing:-0.03em}
.cred-note{font-family:var(--font-mono);font-size:13px;line-height:1.7;color:var(--ink-3)}

/* Region rows (network teaser) */
.region-row{display:grid;grid-template-columns:56px 3fr 6fr;column-gap:24px;row-gap:8px;align-items:baseline;padding:clamp(20px,2.2vw,30px) 0}
.region-detail{font-family:var(--font-mono);font-size:13px;line-height:1.8;color:var(--ink-2)}

/* Checklist rows (scope lists) */
.checklist{border-top:1px solid var(--ink);font-size:16px;line-height:1.5;color:var(--ink-2)}
.checklist > li{display:flex;gap:20px;align-items:baseline;padding:15px 0;border-bottom:1px solid var(--rule)}
.checklist > li > :first-child{flex-shrink:0;min-width:24px;font-family:var(--font-mono);font-size:12px;color:var(--muted)}
.checklist--lg{font-size:17px;line-height:1.45;color:var(--ink)}
.checklist--lg > li{padding:16px 0}
.checklist--open > li:last-child{border-bottom:0}
.on-dark .checklist{border-top-color:var(--dark-rule);color:var(--white)}
.on-dark .checklist > li{border-bottom-color:var(--dark-rule)}
.on-dark .checklist > li > :first-child{color:var(--cyan-light)}

/* Big figures row (for example the CRMA benchmarks) */
.fact-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:32px;row-gap:20px}
.fact{padding-top:18px;border-top:1px solid var(--ink)}
.fact p{margin-top:12px;font-size:14px;line-height:1.55;color:var(--ink-3)}

/* Timeline rows */
.tl-row{display:grid;grid-template-columns:3fr 2fr 7fr;column-gap:32px;row-gap:10px;align-items:baseline;padding:clamp(18px,2vw,28px) 0}

/* 11 Panels and notices ------------------------------------------------------ */
.panel{display:flex;flex-direction:column;border:1px solid var(--rule);background:var(--paper)}
.panel--ink{border-color:var(--ink)}
.panel--white{background:var(--white)}
.panel-head{
  display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 24px;
  padding:14px var(--panel-pad);border-bottom:1px solid var(--rule);
  font-family:var(--font-mono);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--muted);
}
.panel--ink > .panel-head{border-bottom-color:var(--ink);color:var(--ink)}
.panel-head .muted{color:var(--muted)}
.panel-head .with-icon{display:inline-flex;align-items:center;gap:8px}
.panel-body{flex:1;padding:clamp(20px,2.4vw,32px) var(--panel-pad)}
.panel-body--flush{padding-block:0}
.panel-foot{padding:14px var(--panel-pad);border-top:1px solid var(--rule);font-family:var(--font-mono);font-size:12px;line-height:1.7;color:var(--muted)}
.panel-list > div{padding:18px 0;border-bottom:1px solid var(--rule)}
.panel-list > div:last-child{border-bottom:0}
.panel-list dt{font-family:var(--font-mono);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--muted)}
.panel-list dd{margin-top:8px;font-size:18px;line-height:1.3;font-weight:500;letter-spacing:-0.015em}

/* Compliance notice box: always visible, never small grey text */
.notice{border:1px solid var(--ink);background:var(--white)}
.notice-head{
  display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 24px;
  padding:14px var(--panel-pad);border-bottom:1px solid var(--ink);
  font-family:var(--font-mono);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--ink);
}
.notice-head .muted{color:var(--muted)}
.notice-body{display:grid;grid-template-columns:1fr 1fr;column-gap:48px;row-gap:16px;padding:clamp(22px,2.6vw,36px) var(--panel-pad)}
.notice-body--single{grid-template-columns:1fr}
.notice-body p{font-family:var(--font-mono);font-size:13px;line-height:1.75;color:var(--ink-2)}
.notice--dark{border-color:var(--dark-rule-strong);background:transparent}
.notice--dark .notice-head{border-bottom-color:var(--dark-rule-strong);color:var(--white)}
.notice--dark .notice-head .muted{color:var(--dark-muted)}
.notice--dark .notice-body p{color:var(--dark-body)}

/* One-line disclaimer */
.disclaimer{margin-top:24px;padding:12px 16px;border:1px solid var(--rule);background:var(--paper);font-family:var(--font-mono);font-size:12px;line-height:1.7;color:var(--ink-2)}

/* Official Truvest channels notice */
.official{border:1px solid var(--ink);background:var(--paper)}
.official-head{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--ink)}
.official-head svg{flex-shrink:0}
.official-title{font-family:var(--font-mono);font-size:11px;line-height:1.5;font-weight:500;letter-spacing:0.08em;text-transform:uppercase;color:var(--ink)}
.official-body{padding:14px}
.official-body p{font-size:14px;line-height:1.6;color:var(--ink-2)}
.official-body p + p{margin-top:10px}
.official-body .mono{font-size:13px;color:var(--ink)}
.official-foot{margin-top:12px !important;padding-top:12px;border-top:1px solid var(--rule);font-family:var(--font-mono);font-size:12px !important;line-height:1.7 !important;color:var(--ink) !important}
.official--wide .official-body{display:grid;grid-template-columns:1fr 1fr;column-gap:48px;row-gap:10px;padding:clamp(18px,2.2vw,28px) var(--panel-pad)}
.official--wide .official-head{padding:14px var(--panel-pad)}
.official--wide .official-body p + p{margin-top:0}
.official--wide .official-foot{grid-column:1 / 3}

/* Callout row (label left, text and link right) */
.callout{display:grid;grid-template-columns:3fr 9fr;column-gap:32px;row-gap:24px;align-items:center;padding:clamp(22px,2.6vw,36px) var(--panel-pad);border:1px solid var(--ink);background:var(--white)}

/* Placeholder tags and frames: square brackets stay visible */
.tag-placeholder,.ph{
  display:inline-block;padding:3px 8px;border:1px dashed var(--rule-strong);border-radius:var(--radius);background:var(--paper);
  font-family:var(--font-mono);font-size:11px;font-weight:400;line-height:1.5;letter-spacing:0.02em;text-transform:none;color:var(--muted);
}
.ph-frame{display:flex;align-items:flex-end;min-height:360px;padding:16px;border:1px dashed var(--rule-strong);background:var(--paper);font-family:var(--font-mono);font-size:11px;letter-spacing:0.02em;color:var(--muted)}
.ph-frame--portrait{aspect-ratio:4 / 5;min-height:0}

/* Locked listing card (Opportunities board) */
.lock-card{display:flex;flex-direction:column;gap:24px;min-height:280px;padding:var(--cell-pad);background:var(--white)}
.lock-card-head{display:flex;justify-content:space-between;align-items:center;gap:12px;font-family:var(--font-mono);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--muted)}
.lock-card-foot{margin-top:auto;padding-top:14px;border-top:1px solid var(--rule);font-family:var(--font-mono);font-size:12px;line-height:1.7;color:var(--muted)}
.lock-card--more{background:var(--paper)}

/* Decline rows (Energy "What we decline") */
.decline-row{display:grid;grid-template-columns:40px 1fr auto;column-gap:24px;align-items:baseline;padding:17px 0}

/* 12 Dark band and map stage --------------------------------------------------- */
.band{background:var(--ink);color:var(--white)}
.band .sec-num,.band .label,.band .label-lg,.band .fineprint,.band .eyebrow{color:var(--dark-muted)}
.band .h-section,.band .h-sub,.band .h-cell,.band .h-feature{color:var(--white)}
.band .lead,.band .body,.band .body-lg{color:var(--dark-body)}
.band a:not([class]){color:var(--cyan-light)}
.band-list{font-size:17px}
.band-list > li{display:flex;gap:24px;align-items:baseline;padding:17px 0;border-top:1px solid var(--dark-rule)}
.band-list > li:last-child{border-bottom:1px solid var(--dark-rule)}
.band-list > li > :first-child{flex-shrink:0;min-width:24px;font-family:var(--font-mono);font-size:12px;color:var(--cyan-light)}
.band-list .detail{display:block;margin-top:6px;font-family:var(--font-mono);font-size:12px;color:var(--dark-muted)}
.signal{color:var(--cyan-light)}

.map-stage{position:relative;overflow:hidden;background:var(--ink);color:var(--white)}
.map-stage > .container{padding-bottom:clamp(48px,5vw,80px)}
.map-caption{
  display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 0;border-bottom:1px solid var(--dark-rule);
  font-family:var(--font-mono);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--dark-muted);
}
.map-frame{padding-top:clamp(20px,3vw,44px);padding-bottom:clamp(12px,2vw,28px)}
.map-box{position:relative;width:100%;aspect-ratio:1000 / 383.3}
.map-img{position:absolute;inset:0;width:100%;height:100%;max-width:none;display:block;opacity:0.22}
.map-svg{position:absolute;inset:0;width:100%;height:100%;max-width:none;overflow:visible}
.map-svg text{font-family:var(--font-mono)}
.map-note{margin-top:clamp(20px,2.4vw,32px);max-width:820px;font-family:var(--font-mono);font-size:12px;line-height:1.7;color:var(--dark-muted)}
.map-stage .hero-row{padding-top:clamp(24px,2.6vw,36px);border-top:1px solid var(--dark-rule);align-items:start}
.map-stage .lead{max-width:700px;color:var(--dark-body)}
.map-stage .fineprint{color:var(--dark-muted)}
.map-regions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0 32px;margin-top:clamp(36px,4.4vw,64px);border-top:1px solid var(--dark-rule)}
.map-regions > li{padding:18px 0 14px;border-bottom:1px solid var(--dark-rule)}
.map-regions .k{display:block;font-family:var(--font-mono);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--cyan-light)}
.map-regions .v{display:block;margin-top:10px;font-size:18px;font-weight:500;letter-spacing:-0.015em;color:var(--white)}
.map-regions .d{display:block;margin-top:4px;font-family:var(--font-mono);font-size:12px;color:var(--dark-muted)}

.route-glow{filter:drop-shadow(0 0 2.2px rgba(6,182,212,0.85))}
.route-flow{stroke-dasharray:5 7;animation:tvFlow 26s linear infinite}
.route-flow-slow{stroke-dasharray:2 6;animation:tvFlow 44s linear infinite}
.goods-flow{stroke-dasharray:6 6;animation:tvFlow 30s linear infinite}
.hq-pulse{transform-box:fill-box;transform-origin:center;animation:tvPulse 3.2s ease-out infinite}
.hq-pulse-b{transform-box:fill-box;transform-origin:center;animation:tvPulse 3.2s ease-out 1.6s infinite}
@keyframes tvFlow{to{stroke-dashoffset:-240}}
@keyframes tvPulse{0%{transform:scale(0.4);opacity:0.9}100%{transform:scale(3.4);opacity:0}}

/* Small map crop (Contact side panel, Opportunities focus) */
.map-crop{position:relative;overflow:hidden;background:var(--ink);aspect-ratio:2 / 1}
.map-crop .map-box{width:260%;margin-left:-85%}
.map-crop .map-img{opacity:0.3}
.map-crop--africa .map-box{width:300%;margin-left:-128%;margin-top:-52%}
.map-crop--africa{aspect-ratio:4 / 3}

/* HTML markers over the map (About network). Position with --x and --y in percent */
.mk{position:absolute;left:var(--x);top:var(--y)}
.mk-dot{position:absolute;left:0;top:0;width:10px;height:10px;border-radius:50%;background:var(--cyan-light);box-shadow:0 0 0 4px rgba(6,182,212,0.24),0 0 16px rgba(6,182,212,0.9);transform:translate(-50%,-50%)}
.mk-label{position:absolute;top:0;left:12px;transform:translateY(-50%);white-space:nowrap;font-family:var(--font-mono);font-size:10px;letter-spacing:0.08em;text-transform:uppercase;color:var(--white)}
.mk--left .mk-label{left:auto;right:12px}
.mk--hq .mk-dot{width:14px;height:14px;background:var(--white);box-shadow:0 0 0 5px rgba(6,182,212,0.45),0 0 22px rgba(6,182,212,0.95)}
.mk.is-dim .mk-dot{width:6px;height:6px;background:#8b97b8;box-shadow:none;opacity:0.55}
.mk.is-dim .mk-label{opacity:0}
.mk--hq.is-dim .mk-dot{width:10px;height:10px;background:var(--white);box-shadow:0 0 0 4px rgba(6,182,212,0.35);opacity:1}
.mk--hq.is-dim .mk-label{opacity:1}
.arc-group.is-dim{opacity:0.25}
.mk-dot,.mk-label,.arc-group{transition:opacity .35s ease,width .35s ease,height .35s ease,background .35s ease,box-shadow .35s ease}
.net-legend{display:flex;flex-wrap:wrap;gap:10px 28px;margin-top:clamp(20px,2.4vw,32px);padding-top:18px;border-top:1px solid var(--dark-rule);font-family:var(--font-mono);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--dark-muted)}
.net-legend li{display:flex;align-items:center;gap:10px}
.net-legend i{display:block;width:9px;height:9px;border-radius:50%;background:var(--cyan-light)}
.net-legend .lg-hq{background:var(--white);box-shadow:0 0 0 3px rgba(6,182,212,0.45)}
.net-legend .lg-other{width:6px;height:6px;background:#8b97b8}

/* 13 Figures and photos --------------------------------------------------------- */
.figure{margin:0;border:1px solid var(--rule);background:var(--white)}
.figure picture,.figure > img,.figure-media{display:block;width:100%;overflow:hidden;background:var(--porcelain)}
.figure img{display:block;width:100%;height:100%;object-fit:cover}
.figure figcaption{
  display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 16px;padding:10px 14px;border-top:1px solid var(--rule);
  font-family:var(--font-mono);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--muted);
}
.figure--3x2 picture,.figure--3x2 .figure-media{aspect-ratio:3 / 2}
.figure--4x3 picture,.figure--4x3 .figure-media{aspect-ratio:4 / 3}
.figure--16x9 picture,.figure--16x9 .figure-media{aspect-ratio:16 / 9}
.figure--21x9 picture,.figure--21x9 .figure-media{aspect-ratio:21 / 9}
.figure--1x1 picture,.figure--1x1 .figure-media{aspect-ratio:1 / 1}
.figure--4x5 picture,.figure--4x5 .figure-media{aspect-ratio:4 / 5}
.figure--fill{display:flex;flex-direction:column;height:100%}
.figure--fill picture{flex:1;min-height:240px}
.figure--cut img{object-fit:contain;padding:18px;background:var(--white)}
.figure--cut picture{background:var(--white)}
.figure--dark{border-color:var(--dark-rule);background:transparent}
.figure--dark figcaption{border-top-color:var(--dark-rule);color:var(--dark-muted)}
.figure--dark picture{position:relative;background:var(--ink)}
.figure--dark picture::after{content:"";position:absolute;inset:0;background:rgba(10,14,39,0.28);pointer-events:none}
.figure-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:16px}
.figure-grid .span-8{grid-column:span 8}
.figure-grid .span-6{grid-column:span 6}
.figure-grid .span-4{grid-column:span 4}
.figure-grid .span-3{grid-column:span 3}
.line-art{display:block;width:100%;height:auto}

/* 14 Tabs (region selector and generic) ------------------------------------------ */
.net-tabs,.tabs{display:flex;flex-wrap:wrap;gap:8px}
.tab-btn{
  display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 18px;
  border:1px solid var(--rule-strong);border-radius:var(--radius);background:var(--white);color:var(--ink);
  font-family:var(--font-mono);font-size:12px;letter-spacing:0.06em;text-transform:uppercase;
  transition:background .2s,color .2s,border-color .2s;
}
.tab-btn:hover{border-color:var(--ink)}
.tab-btn[aria-pressed="true"],.tab-btn[aria-selected="true"]{background:var(--ink);border-color:var(--ink);color:var(--white)}
.on-dark .tab-btn{background:transparent;border-color:var(--dark-rule-strong);color:var(--white)}
.on-dark .tab-btn:hover{border-color:var(--white)}
.on-dark .tab-btn[aria-pressed="true"],.on-dark .tab-btn[aria-selected="true"]{background:var(--white);border-color:var(--white);color:var(--ink)}
/* Without JavaScript all panels stay visible, separated by rules */
.tab-panel + .tab-panel{margin-top:clamp(32px,4vw,56px);padding-top:clamp(32px,4vw,56px);border-top:1px solid var(--rule)}
.on-dark .tab-panel + .tab-panel{border-top-color:var(--dark-rule)}
.is-enhanced .tab-panel + .tab-panel{margin-top:0;padding-top:0;border-top:0}

/* 15 Forms --------------------------------------------------------------------------- */
.form{align-self:start;padding:clamp(22px,3vw,48px);border:1px solid var(--rule);background:var(--white)}
.form--plain{padding:0;border:0;background:transparent}
.form-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 12px;padding-bottom:20px;border-bottom:1px solid var(--rule);font-family:var(--font-mono);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--muted)}
.form fieldset{min-width:0;margin:28px 0 0;padding:0;border:0}
.form fieldset + fieldset{margin-top:36px;padding-top:32px;border-top:1px solid var(--rule)}
.form legend{padding:0;margin-bottom:20px;font-family:var(--font-mono);font-size:12px;letter-spacing:0.08em;text-transform:uppercase;color:var(--ink)}
.form legend .legend-num{margin-right:14px;color:var(--muted)}
.form-head + .form-pair,.form-head + .form-trio,.form-head + .field{margin-top:28px}
.field{min-width:0}
.field + .field,.field + .form-pair,.field + .form-trio,.form-pair + .field,.form-trio + .field,.form-pair + .form-pair,.form-pair + .form-trio,.form-trio + .form-pair,.form-trio + .form-trio{margin-top:20px}
.form-pair{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px}
.form-trio{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.form-pair > .field + .field,.form-trio > .field + .field{margin-top:0}
.field > label,.field-label{display:block;margin-bottom:8px;font-size:13px;font-weight:500;line-height:1.4;color:var(--ink)}
.field .opt,.field-label .opt{font-weight:400;color:var(--muted)}
.field .req{color:var(--blue)}
.field input[type="text"],.field input[type="email"],.field input[type="tel"],.field input[type="url"],.field input[type="number"],.field input[type="date"],.field input[type="search"],.field select,.field textarea,
.input,.select,.textarea{
  display:block;width:100%;height:var(--control-h);padding:0 14px;
  border:1px solid var(--rule-strong);border-radius:var(--radius);background:var(--white);
  font-family:inherit;font-size:16px;line-height:1.4;color:var(--ink);
  transition:border-color .2s;
}
.field textarea,.textarea{height:148px;min-height:104px;padding:14px;line-height:1.5;resize:vertical}
.field select,.select{
  appearance:none;-webkit-appearance:none;padding-right:44px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none' stroke='%230a0e27' stroke-width='1.5'%3E%3Cpath d='M1 1.5l5 5 5-5'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 16px center;
}
.field input:hover,.field select:hover,.field textarea:hover,.input:hover,.select:hover,.textarea:hover{border-color:var(--rule-hover)}
.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{border-color:var(--blue);outline-offset:2px}
.field input::placeholder,.field textarea::placeholder{color:#6b7488;opacity:1}
.was-validated .field input:invalid,.was-validated .field select:invalid,.was-validated .field textarea:invalid{border-color:var(--error)}
.field-help{margin-top:10px;font-family:var(--font-mono);font-size:12px;line-height:1.7;color:var(--muted)}
.field input[type="file"]{display:block;width:100%;min-height:var(--control-h);padding:13px 14px;border:1px dashed var(--rule-strong);border-radius:var(--radius);background:var(--paper);font-size:14px;color:var(--ink-2)}

/* Checkbox and radio rows */
.check,.radio{display:flex;align-items:flex-start;gap:14px;min-height:44px;margin-top:20px}
.check + .check,.radio + .radio{margin-top:8px}
.check input,.radio input{flex-shrink:0;width:22px;height:22px;margin:2px 0 0;accent-color:var(--blue)}
.radio input{width:20px;height:20px}
.check label,.radio label{font-size:14px;line-height:1.55;color:var(--ink-2)}
.check a{text-decoration:underline;text-underline-offset:3px}
.check-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}

/* Radio and checkbox chips (transaction stage, areas of interest) */
.stage-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}
.stage-opt{
  display:flex;align-items:center;gap:12px;min-height:var(--control-h);padding:8px 14px;
  border:1px solid var(--rule-strong);border-radius:var(--radius);background:var(--white);
  font-size:15px;line-height:1.3;color:var(--ink-2);cursor:pointer;transition:border-color .2s,background .2s;
}
.stage-opt:hover{border-color:var(--rule-hover)}
.stage-opt input{flex-shrink:0;width:20px;height:20px;margin:0;accent-color:var(--blue)}
.stage-opt:has(input:checked){border-color:var(--ink);background:var(--porcelain);color:var(--ink)}
.stage-opt:focus-within{outline:2px solid var(--blue);outline-offset:3px}
.stage-opt input:focus-visible{outline:none}
.stage-opt .k{margin-right:8px;font-family:var(--font-mono);font-size:11px;color:var(--muted)}

/* File upload zone */
.upload-zone{
  display:grid;grid-template-columns:56px 1fr;column-gap:20px;row-gap:16px;align-items:start;
  padding:clamp(18px,2.2vw,28px);border:1px dashed var(--rule-hover);border-radius:var(--radius);background:var(--paper);
  cursor:pointer;transition:border-color .2s,background .2s;
}
.upload-zone:hover{border-color:var(--ink);background:var(--white)}
.upload-zone:focus-within{outline:2px solid var(--blue);outline-offset:3px}
.upload-zone.has-file{border-style:solid;border-color:var(--ink);background:var(--white)}
.upload-icon{display:flex;align-items:center;justify-content:center;width:56px;height:56px;border:1px solid var(--rule);border-radius:var(--radius);background:var(--white)}
.upload-text{display:block;min-width:0}
.upload-title{display:block;font-size:16px;line-height:1.35;font-weight:500;color:var(--ink)}
.upload-title .opt{font-weight:400;color:var(--muted)}
.upload-desc{display:block;margin-top:6px;font-size:14px;line-height:1.55;color:var(--ink-3)}
.upload-zone input[type="file"]{display:block;width:100%;min-height:44px;margin-top:16px;padding:0;border:0;background:transparent;font-family:var(--font-mono);font-size:12px;color:var(--ink-2);cursor:pointer}
.upload-zone input[type="file"]:focus-visible{outline:none}
.upload-zone input[type="file"]::file-selector-button{height:40px;margin-right:14px;padding:0 16px;border:1px solid var(--ink);border-radius:var(--radius);background:var(--white);font-family:var(--font-sans);font-size:13px;font-weight:500;color:var(--ink);cursor:pointer}
.upload-name{display:block;margin-top:10px;font-family:var(--font-mono);font-size:12px;line-height:1.6;color:var(--ink);overflow-wrap:anywhere}
.upload-name:empty{display:none}
.secure-note{display:flex;gap:14px;align-items:flex-start;margin-top:14px;padding:14px 16px;border:1px solid var(--rule);background:var(--white);font-family:var(--font-mono);font-size:12px;line-height:1.7;color:var(--ink-2)}
.secure-note svg{flex-shrink:0;margin-top:2px}

.form-actions{display:flex;flex-wrap:wrap;align-items:center;gap:16px 28px;margin-top:28px}
.form-note{margin-top:24px;padding-top:20px;border-top:1px solid var(--rule);font-family:var(--font-mono);font-size:12px;line-height:1.7;color:var(--muted)}
.form-error{margin-top:20px;padding:12px 16px;border:1px solid var(--error);background:var(--white);font-size:14px;color:var(--error)}

/* Honeypot: visually hidden, not display none */
.hp{position:absolute !important;left:-9999px !important;top:auto !important;width:1px !important;height:1px !important;overflow:hidden !important;opacity:0 !important;pointer-events:none !important}

/* 16 Footer ----------------------------------------------------------------------- */
.site-footer{background:var(--white);border-top:1px solid var(--ink)}
.site-footer > .container{padding-top:clamp(56px,6vw,96px);padding-bottom:40px}
.foot-grid{display:grid;grid-template-columns:4fr 2fr 2fr 2fr 2fr;column-gap:32px;row-gap:40px}
.foot-brand a{display:inline-flex;min-height:44px}
.foot-brand img{display:block;width:auto;height:44px}
.foot-brand p{margin-top:24px;max-width:360px;font-size:16px;line-height:1.55;color:var(--ink-2)}
.foot-title{padding-bottom:10px;font-family:var(--font-mono);font-size:11px;font-weight:400;letter-spacing:0.08em;text-transform:uppercase;color:var(--muted)}
.foot-link{display:flex;align-items:center;min-height:44px;font-size:15px;color:var(--ink)}
.foot-link:hover{color:var(--blue);text-decoration:none}
button.foot-link{width:100%;padding:0;border:0;background:none;text-align:left}
.foot-imprint{margin-top:clamp(48px,5vw,80px);padding-top:28px;border-top:1px solid var(--rule)}
.imprint-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:32px;row-gap:28px;margin-top:24px;font-family:var(--font-mono);font-size:13px;line-height:1.65}
.imprint-grid dt{font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:var(--muted)}
.imprint-grid dd{margin-top:4px;color:var(--ink)}
.imprint-grid .break{word-break:break-all}
.imprint-grid a{display:inline;min-height:0;font-size:inherit;color:var(--ink)}
.imprint-grid a:hover{color:var(--blue);text-decoration:none}
.foot-official{display:flex;gap:14px;align-items:flex-start;margin-top:36px;padding:16px 18px;border:1px solid var(--rule);background:var(--paper);font-family:var(--font-mono);font-size:12px;line-height:1.7;color:var(--ink-2)}
.foot-official svg{flex-shrink:0;margin-top:1px}
.foot-official strong{font-weight:500;color:var(--ink)}
.foot-official a{color:var(--ink);white-space:nowrap}
.foot-official a:hover{color:var(--blue);text-decoration:none}
.foot-legal{display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px 48px;margin-top:28px;padding-top:24px;border-top:1px solid var(--rule)}
.foot-legal p{max-width:920px;font-family:var(--font-mono);font-size:12px;line-height:1.7;color:var(--muted)}
.foot-legal .copy{color:var(--ink);white-space:nowrap}

/* 17 Cookie notice ------------------------------------------------------------------ */
.cookie-notice{
  position:fixed;left:16px;right:16px;bottom:16px;z-index:60;
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px;
  max-width:760px;margin-inline:auto;padding:14px 16px 14px 20px;
  border:1px solid var(--ink);border-radius:var(--radius);background:var(--white);
}
.cookie-notice p{flex:1 1 280px;font-size:14px;line-height:1.5;color:var(--ink-2)}
.cookie-actions{display:flex;align-items:center;gap:20px}
.cookie-actions a{display:inline-flex;align-items:center;min-height:44px;font-size:14px;font-weight:500}

/* 18 Page patterns (ported from the approved mockups) -------------------------------- */
/* Advisory */
.adv-idx{display:grid;grid-template-columns:180px 1fr;column-gap:32px;row-gap:6px;align-items:start;padding:12px 0;border-top:1px solid var(--rule)}
.adv-sheet-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:1px}
.adv-check{display:grid;grid-template-columns:1fr 64px 64px;column-gap:12px;align-items:center}
.adv-photos{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.adv-route-frame{position:relative;overflow:hidden;aspect-ratio:4 / 3;min-height:0;background:var(--paper);border:1px solid var(--rule)}
.adv-route-line{stroke-dasharray:4 4;animation:tvFlow 30s linear infinite}
.adv-svc-row{display:grid;grid-template-columns:72px 4fr 5fr 3fr;column-gap:32px;row-gap:16px;align-items:start;padding:clamp(22px,2.4vw,34px) 0}
/* Back-to-back illustrative structure */
.bb{position:relative;height:460px}
.bb-svg{position:absolute;inset:0;width:100%;height:100%;max-width:none}
.bb-box{position:absolute;display:flex;flex-direction:column;justify-content:center;gap:4px;padding:12px 16px;border:1px solid var(--ink);border-radius:var(--radius);background:var(--white)}
.bb-tag{position:absolute;transform:translate(-50%,-50%);padding:2px 8px;background:var(--white);white-space:nowrap;font-family:var(--font-mono);font-size:10px;letter-spacing:0.08em;text-transform:uppercase;color:var(--ink)}
.bb-seller{left:0;width:20%;top:40px;height:96px}
.bb-truvest{left:36%;width:28%;top:28px;height:120px}
.bb-buyer{left:80%;width:20%;top:40px;height:96px}
.bb-escrow{left:40%;width:20%;top:210px;height:80px}
.bb-fin{left:66%;width:18%;top:210px;height:80px}
.bb-insp{left:18%;width:22%;top:350px;height:80px}
.bb-log{left:60%;width:22%;top:350px;height:80px}
/* Critical minerals */
.cm-index{display:grid;grid-template-columns:repeat(12,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule)}
.cm-profile{display:grid;grid-template-columns:2fr 10fr;column-gap:32px;row-gap:28px}
.cm-body{display:grid;grid-template-columns:5fr 7fr;column-gap:48px;row-gap:32px;align-items:start}
.cm-callout{display:grid;grid-template-columns:3fr 9fr;column-gap:32px;row-gap:24px;align-items:center}
a.tile:hover .cm-sym{color:var(--blue)}
/* Energy */
.prod-fig svg{display:block;width:100%;height:auto}
/* Materials */
.ma-gallery{display:grid;grid-template-columns:repeat(12,1fr);gap:16px}
.ma-g-wide{grid-column:span 8}
.ma-g-tall{grid-column:span 4}
.ma-g-q{grid-column:span 3}
.ma-ph{display:block;width:100%;object-fit:cover}
.ma-ph-lg{height:460px}
.ma-ph-sm{height:240px}
.ma-ph-cut{object-fit:contain;background:var(--white);padding:18px}
.ma-quality{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px}
.ma-med-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px}
.ma-med-split{display:grid;grid-template-columns:7fr 5fr;column-gap:56px;row-gap:40px}
/* Contact */
.co-layout{display:grid;grid-template-columns:8fr 4fr;column-gap:clamp(28px,3.4vw,56px);row-gap:40px;align-items:start}
.co-layout > *{min-width:0}
.co-side{position:sticky;top:100px}
.co-submit-row{display:flex;flex-wrap:wrap;align-items:center;gap:16px 28px}
/* Thank-you and 404 */
.status-page{display:flex;align-items:center;min-height:62vh}
.status-code{font-family:var(--font-mono);font-size:clamp(72px,14vw,200px);line-height:0.9;font-weight:400;letter-spacing:-0.06em;color:var(--ink)}
.lang-entry{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;min-height:100vh}
.lang-entry img{width:auto;height:52px}

/* 19 Utilities ----------------------------------------------------------------------- */
.visually-hidden{position:absolute !important;width:1px !important;height:1px !important;margin:-1px !important;padding:0 !important;overflow:hidden !important;clip:rect(0,0,0,0) !important;white-space:nowrap !important;border:0 !important}
.nowrap{white-space:nowrap}
.muted{color:var(--muted)}
.ink{color:var(--ink)}
.bg-white{background:var(--white)}
.bg-paper{background:var(--paper)}
.bg-porcelain{background:var(--porcelain)}
.rule-top{border-top:1px solid var(--rule)}
.rule-top-ink{border-top:1px solid var(--ink)}
.rule-bottom{border-bottom:1px solid var(--rule)}
.mt-0{margin-top:0}.mt-8{margin-top:8px}.mt-12{margin-top:12px}.mt-16{margin-top:16px}.mt-20{margin-top:20px}.mt-24{margin-top:24px}
.mt-28{margin-top:28px}.mt-32{margin-top:32px}.mt-40{margin-top:40px}.mt-48{margin-top:48px}.mt-64{margin-top:64px}
.mt-auto{margin-top:auto}
.mt-block{margin-top:var(--block-gap)}
.mt-head{margin-top:clamp(20px,2.4vw,32px)}
.mt-lg{margin-top:clamp(48px,6vw,96px)}
.mt-xl{margin-top:clamp(64px,8vw,120px)}
.pt-24{padding-top:24px}
.maxw-480{max-width:480px}.maxw-520{max-width:520px}.maxw-560{max-width:560px}.maxw-640{max-width:640px}.maxw-680{max-width:680px}.maxw-760{max-width:760px}.maxw-900{max-width:900px}
.flex-col{display:flex;flex-direction:column}
.self-start{align-self:start}
.text-center{text-align:center}

/* 20 Responsive ----------------------------------------------------------------------- */
@media (max-width:1180px){
  .nav-links{gap:14px;font-size:13px}
  .nav-logo{height:34px}
  a.nav-cta{padding:0 14px;font-size:13px}
  .header-tools{gap:14px}
  .foot-grid{grid-template-columns:repeat(4,1fr)}
  .foot-grid .foot-brand{grid-column:1 / 5}
  .imprint-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .spec-row{grid-template-columns:56px 3fr 6fr}
  .spec-row .spec-std{grid-column:2 / 4}
  .adv-svc-row{grid-template-columns:56px 4fr 6fr}
  .adv-svc-row .adv-svc-note{grid-column:2 / 4}
}

/* Below 1100px the primary nav becomes a full-width panel under the header */
@media (max-width:1100px){
  .nav-toggle{display:inline-flex}
  .header-tools .nav-cta{display:none}
  .nav-links{
    position:absolute;left:0;right:0;top:100%;
    display:none;flex-direction:column;align-items:stretch;gap:0;
    max-height:82vh;overflow-y:auto;padding:8px var(--gutter) 28px;
    background:var(--white);border-top:1px solid var(--rule);border-bottom:1px solid var(--ink);
    font-size:18px;letter-spacing:-0.015em;
  }
  .nav-links.is-open{display:flex}
  .nav-link{height:auto;min-height:56px;border-bottom:1px solid var(--rule);white-space:normal}
  .nav-link[aria-current="page"]{box-shadow:inset 2px 0 0 var(--ink);padding-left:14px}
  .nav-links .nav-cta-mobile{display:inline-flex;align-self:flex-start;margin-top:24px}
  .noscript-nav{display:inline-flex;align-items:center;min-height:44px;font-size:14px;font-weight:500}
}

@media (max-width:980px){
  .sec-head{grid-template-columns:1fr}
  .sec-num{padding-top:0}
  .hero-row{grid-template-columns:1fr}
  .grid-3,.grid-4,.grid-5{grid-template-columns:repeat(2,minmax(0,1fr))}
  .split-5-7,.split-7-5,.split-6-6,.split-4-8,.split-8-4,.split-3-9{grid-template-columns:minmax(0,1fr)}
  .grid-12{grid-template-columns:minmax(0,1fr)}
  .grid-12 > [class*="col-"]{grid-column:auto}
  .form-trio{grid-template-columns:1fr}
  .cred-row{grid-template-columns:56px 4fr 4fr}
  .cred-row .cred-note{grid-column:2 / 4}
  .map-labels,.map-grat{display:none}
  .map-regions{grid-template-columns:repeat(2,minmax(0,1fr))}
  .notice-body,.official--wide .official-body{grid-template-columns:1fr}
  .official--wide .official-foot{grid-column:auto}
  .callout,.cm-callout,.cm-profile,.cm-body{grid-template-columns:1fr}
  .fact-row{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tl-row{grid-template-columns:1fr 3fr}
  .tl-row .tl-text{grid-column:1 / 3}
  .mk-label{display:none}
  .mk--hq .mk-label{display:block}
  .figure-grid .span-8,.figure-grid .span-4{grid-column:span 12}
  .figure-grid .span-3,.figure-grid .span-6{grid-column:span 6}
  .steps--filler::after{display:none}
  .cm-index{grid-template-columns:repeat(6,1fr)}
  .bb{height:auto;display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .bb .bb-svg,.bb .bb-tag{display:none}
  .bb .bb-box{position:static;width:auto;height:auto;min-height:92px}
  .bb .bb-truvest{grid-column:1 / 3}
  .ma-g-wide,.ma-g-tall{grid-column:span 12}
  .ma-g-q{grid-column:span 6}
  .ma-ph-lg{height:340px}
  .ma-quality,.ma-med-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ma-med-split{grid-template-columns:1fr}
  .co-layout{grid-template-columns:minmax(0,1fr)}
  .co-side{position:static}
}

@media (max-width:640px){
  .grid-2,.grid-3,.grid-4,.grid-5{grid-template-columns:minmax(0,1fr)}
  .two-col-list{grid-template-columns:1fr}
  .cred-row{grid-template-columns:40px 1fr}
  .cred-row .cred-fig,.cred-row .cred-note{grid-column:2 / 3}
  .spec-row{grid-template-columns:1fr}
  .spec-row .spec-std{grid-column:auto}
  .spec-headrow,.adv-svc-head{display:none}
  .kv-row{grid-template-columns:1fr}
  .region-row{grid-template-columns:40px 1fr}
  .region-row .region-detail{grid-column:2 / 3}
  .form-pair{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr 1fr}
  .foot-grid .foot-brand{grid-column:1 / 3}
  .imprint-grid{grid-template-columns:1fr}
  .meta-right{display:none}
  .map-stage .map-box{width:150%;margin-left:-28%}
  .map-crop .map-box{width:260%;margin-left:-85%}
  .map-crop--africa .map-box{width:300%;margin-left:-128%}
  .svc-tile{min-height:0;gap:28px}
  .step,.cell{min-height:0}
  .step-body{margin-top:0}
  .lock-card{min-height:0}
  .fact-row{grid-template-columns:1fr}
  .decline-row{grid-template-columns:32px 1fr}
  .decline-row .decline-tag{display:none}
  .upload-zone{grid-template-columns:1fr}
  .net-tabs .tab-btn{flex:1 1 140px}
  .figure-grid .span-3,.figure-grid .span-6{grid-column:span 12}
  .figure--21x9 picture{aspect-ratio:16 / 9}
  .adv-idx{grid-template-columns:1fr}
  .adv-sheet-meta{grid-template-columns:1fr 1fr}
  .adv-check{grid-template-columns:1fr 52px 52px;column-gap:6px}
  .adv-photos{gap:6px}
  .adv-svc-row{grid-template-columns:1fr}
  .adv-svc-row .adv-svc-note{grid-column:auto}
  .bb{grid-template-columns:1fr}
  .bb .bb-truvest{grid-column:auto}
  .cm-index{grid-template-columns:repeat(4,1fr)}
  .ma-g-q{grid-column:span 12}
  .ma-ph-lg{height:260px}
  .ma-ph-sm{height:220px}
  .ma-quality,.ma-med-grid{grid-template-columns:1fr}
  .btn-row > .btn-primary,.btn-row > .btn-secondary,.btn-row > .btn-ghost-dark{flex:1 1 100%}
  .cookie-notice{padding:14px 16px}
  .lang-switch{gap:4px}
  .header-inner{gap:12px}
  .header-tools{gap:10px}
  .nav-logo{height:30px}
}
@media (max-width:420px){
  .cm-index{grid-template-columns:repeat(3,1fr)}
  .foot-grid{grid-template-columns:1fr}
  .foot-grid .foot-brand{grid-column:auto}
  .nav-toggle{padding:0 12px}
}

/* Motion: everything decorative stops */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  .route-flow,.route-flow-slow,.goods-flow,.hq-pulse,.hq-pulse-b,.adv-route-line{animation:none}
  .hq-pulse,.hq-pulse-b{opacity:0}
  *,*::before,*::after{transition-duration:0.01ms !important}
}

@media print{
  .site-header,.cookie-notice,.nav-toggle,.skip-link,.breadcrumb{display:none !important}
  .map-stage,.band{background:var(--white) !important;color:var(--ink) !important}
  .section{padding-block:32px}
  a{color:var(--ink)}
}

/* Home: sector feature blocks and the site-visit route sketch */
.sector{display:flex;flex-direction:column;padding-top:20px;border-top:1px solid var(--ink)}
.sector-meta{display:flex;justify-content:space-between;gap:12px;font-family:var(--font-mono);font-size:12px;letter-spacing:0.08em;text-transform:uppercase;color:var(--muted)}
.sector .figure{margin-top:20px}
.sector .h-block{margin-top:clamp(20px,2.4vw,36px)}
.sector .tile-grid{margin-top:clamp(24px,2.8vw,40px)}
.sector .body-lg{margin-top:clamp(24px,2.8vw,40px);max-width:560px}
.sector-foot{margin-top:auto;padding-top:24px}
.route-fig-labels{display:flex;justify-content:space-between;gap:12px;margin-top:10px;font-family:var(--font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:var(--muted)}
.panel .checklist{margin-top:clamp(20px,2.4vw,32px)}


/* ==========================================================
   Page styles: adv
   ========================================================== */
/* ==========================================================================
   Advisory and Structuring (en/advisory.html, de/beratung.html)
   Page part "adv". Appended to main.css by the lead. All classes carry the
   adv- prefix and only add to the Advisory patterns already in main.css
   (adv-idx, adv-sheet-meta, adv-check, adv-photos, adv-route-frame,
   adv-route-line, adv-svc-row). The back-to-back diagram uses its own
   adv-bb classes (taller boxes, stacks below 1180px) instead of .bb.
   ========================================================================== */

/* Hero service index ------------------------------------------------------- */
.adv-index{border-bottom:1px solid var(--rule)}
.adv-index-head{display:flex;justify-content:space-between;gap:16px;padding-bottom:14px;font-family:var(--font-mono);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--muted)}
.adv-idx-label{padding-top:14px;font-family:var(--font-mono);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--ink)}
.adv-chip-lead{border-color:var(--ink)}

/* 01 Sourcing band ----------------------------------------------------------- */
.adv-band-meta{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 24px;padding-bottom:18px;border-bottom:1px solid var(--dark-rule);font-family:var(--font-mono);font-size:12px;letter-spacing:0.08em;text-transform:uppercase;color:var(--dark-muted)}
.adv-band-title{max-width:1100px;margin-top:clamp(32px,4vw,64px)}
.adv-statement{font-size:clamp(20px,1.9vw,27px);line-height:1.35;letter-spacing:-0.02em;color:var(--white)}
.adv-statement + .lead{margin-top:20px;max-width:560px;font-size:clamp(17px,1.4vw,20px)}
.adv-scope-label{margin-top:clamp(36px,4vw,56px);padding-bottom:14px;font-family:var(--font-mono);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--dark-muted)}
.adv-scope{font-size:16px;line-height:1.5}
.adv-scope > li{padding:15px 0}
.adv-scope > li:first-child{border-top-color:var(--dark-rule-strong)}
.adv-terms{margin-top:28px;max-width:520px;font-family:var(--font-mono);font-size:12px;line-height:1.7;color:var(--dark-muted)}
.adv-ph-dark{display:inline-block;margin-top:10px;padding:3px 8px;border:1px dashed var(--dark-rule-strong);border-radius:var(--radius);font-family:var(--font-mono);font-size:11px;line-height:1.5;letter-spacing:0.02em;color:var(--dark-muted)}
.adv-origin-fig{margin-top:clamp(32px,3.6vw,48px)}

/* Field report sheet (white sheet on the dark band) */
.adv-sheet{background:var(--white);color:var(--ink);border-radius:var(--radius)}
.adv-sheet-bar{height:3px;background:var(--grad)}
.adv-sheet-body{padding:clamp(18px,2.4vw,36px)}
.adv-sheet-head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:16px 24px;padding-bottom:20px;border-bottom:1px solid var(--ink)}
.adv-sheet-kicker,.adv-sheet-label{font-family:var(--font-mono);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--muted)}
.adv-sheet-label{padding-bottom:10px;font-size:10px}
.adv-sheet-title{margin-top:10px;font-size:clamp(22px,2vw,28px);line-height:1.15;font-weight:500;letter-spacing:-0.025em;color:var(--ink)}
.adv-sheet-meta{background:var(--rule);border-bottom:1px solid var(--rule);font-family:var(--font-mono);font-size:13px;line-height:1.6}
.adv-sheet-meta > div{padding:14px;background:var(--white)}
.adv-sheet-meta > div:nth-child(3n+1){padding-left:0}
.adv-sheet-meta dt{font-size:10px;letter-spacing:0.08em;text-transform:uppercase;color:var(--muted)}
.adv-sheet-meta dd{margin-top:4px;color:var(--ink)}
.adv-sheet-meta dd.adv-is-ph{color:var(--muted)}
.adv-sheet-block{margin-top:24px}

.adv-route-map{position:absolute;inset:0}
.adv-route-map .map-box{width:260%;margin-left:-95%;margin-top:-8%}
.adv-route-map .map-img{opacity:0.34}
.adv-route-tag{position:absolute;transform:translateY(-50%);padding:3px 8px;border:1px solid var(--rule);background:var(--paper);font-family:var(--font-mono);font-size:10px;line-height:1.5;letter-spacing:0.06em;text-transform:uppercase;white-space:nowrap;color:var(--ink)}
.adv-route-tag--a{right:62%;top:17.5%;text-align:right}
.adv-route-tag--b{left:63.5%;top:79.8%}
.adv-route-note{position:absolute;left:12px;bottom:12px;max-width:44%;font-family:var(--font-mono);font-size:10px;line-height:1.6;letter-spacing:0.04em;color:var(--muted)}
.adv-route-cap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 24px;padding-top:10px;font-family:var(--font-mono);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--muted)}

.adv-checks{margin-top:28px;border-top:1px solid var(--ink)}
.adv-check{padding:11px 0;border-bottom:1px solid var(--rule);font-size:15px;line-height:1.4;color:var(--ink-2)}
.adv-check > span + span{display:flex;justify-content:center;text-align:center}
.adv-check--head{padding:12px 0;font-family:var(--font-mono);font-size:10px;letter-spacing:0.08em;text-transform:uppercase;color:var(--muted)}
.adv-box{position:relative;display:block;width:16px;height:16px;border:1.5px solid var(--rule-strong)}
.adv-box--on{border-color:var(--ink)}
.adv-box--on::after{content:"";position:absolute;left:4px;top:0.5px;width:5px;height:9px;border:solid var(--ink);border-width:0 1.5px 1.5px 0;transform:rotate(45deg)}

.adv-photo-ph{display:flex;align-items:flex-end;height:104px;padding:10px;border:1px dashed var(--rule-strong);background:var(--paper);font-family:var(--font-mono);font-size:10px;letter-spacing:0.02em;color:var(--muted)}
.adv-sheet-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 24px;margin-top:24px;padding-top:16px;border-top:1px solid var(--ink);font-family:var(--font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:var(--ink)}
.adv-sheet-foot .adv-is-ph,.adv-sheet-foot > span + span{color:var(--muted)}
.adv-sheet-cap{padding-top:14px;font-family:var(--font-mono);font-size:12px;line-height:1.7;color:var(--dark-muted)}

/* 02 Verification -------------------------------------------------------------- */
.adv-list-label{padding-bottom:14px;font-family:var(--font-mono);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--muted)}
.adv-doc{display:flex;flex-direction:column;justify-content:space-between;gap:20px;min-height:148px;padding:20px;background:var(--white)}
.adv-doc svg{flex-shrink:0}
.adv-doc span{font-size:17px;line-height:1.3;font-weight:500;letter-spacing:-0.015em;color:var(--ink)}
.adv-after-list{margin-top:20px}

/* 03 to 07 Core structuring rows -------------------------------------------- */
.adv-svc-head{padding:14px 0;font-family:var(--font-mono);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--muted)}
.adv-svc-row .row-num{padding-top:6px}
.adv-svc-row > *{min-width:0}
.adv-list{font-size:15px;line-height:1.5;color:var(--ink-2)}
.adv-list > li{padding:9px 0;border-top:1px solid var(--rule)}
.adv-list > li:first-child{padding-top:0;border-top:0}
.adv-list > li:last-child{padding-bottom:0}
.adv-list--cell{margin-top:18px;color:var(--ink-3)}
.adv-list--cell > li:first-child{padding-top:9px;border-top:1px solid var(--rule)}
.adv-svc-intro{font-size:15px;line-height:1.6;color:var(--ink-2)}
.adv-svc-intro + .chips{margin-top:14px}
.adv-svc-note .disclaimer{margin-top:0}
.adv-struct-fig{margin-top:var(--block-gap)}
.adv-struct-fig + .ruled{margin-top:var(--block-gap)}

/* Back-to-back illustrative structure ---------------------------------------- */
.adv-diagram{margin-top:clamp(48px,6vw,88px);border:1px solid var(--ink);background:var(--white)}
.adv-diagram-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 28px;padding:14px var(--panel-pad);border-bottom:1px solid var(--ink);font-family:var(--font-mono);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--ink)}
.adv-legend{display:flex;flex-wrap:wrap;gap:8px 22px;color:var(--muted)}
.adv-legend li{display:flex;align-items:center;gap:8px}
.adv-legend i{display:inline-block;width:24px;height:0;border-top:1.5px solid var(--ink)}
.adv-legend .adv-lg-goods{border-top:1.5px dashed var(--cyan)}
.adv-legend .adv-lg-pay{border-top:1.5px dotted var(--ink)}
.adv-legend .adv-lg-coord{border-top:1px solid var(--rule-strong)}
.adv-diagram-body{padding:clamp(20px,2.6vw,40px) var(--panel-pad)}
.adv-diagram-kv{margin-top:clamp(24px,3vw,40px)}
.adv-diagram-cap{padding:14px var(--panel-pad);border-top:1px solid var(--rule);font-family:var(--font-mono);font-size:12px;line-height:1.7;color:var(--muted)}

.adv-bb{position:relative;height:520px}
.adv-bb-svg{position:absolute;inset:0;width:100%;height:100%;max-width:none}
.adv-bb-box{position:absolute;display:flex;flex-direction:column;justify-content:center;gap:4px;padding:10px 14px;border:1px solid var(--ink);border-radius:var(--radius);background:var(--white);color:var(--ink)}
.adv-bb-k{font-family:var(--font-mono);font-size:10px;letter-spacing:0.08em;text-transform:uppercase;color:var(--muted)}
.adv-bb-t{font-size:18px;line-height:1.2;font-weight:500;letter-spacing:-0.015em}
.adv-bb-d{font-size:13px;line-height:1.35;color:var(--ink-3)}
.adv-bb-desk{background:var(--ink);color:var(--white)}
.adv-bb-desk .adv-bb-k{color:var(--cyan-light)}
.adv-bb-desk .adv-bb-t{font-size:19px}
.adv-bb-desk .adv-bb-d{color:var(--dark-body)}
.adv-bb-seller{left:0;width:22%;top:40px;height:104px}
.adv-bb-desk{left:35%;width:30%;top:28px;height:128px}
.adv-bb-buyer{left:78%;width:22%;top:40px;height:104px}
.adv-bb-escrow{left:39%;width:22%;top:230px;height:104px}
.adv-bb-fin{left:68%;width:20%;top:230px;height:104px}
.adv-bb-insp{left:16%;width:24%;top:400px;height:104px}
.adv-bb-log{left:60%;width:24%;top:400px;height:104px}
.adv-bb-tag{position:absolute;transform:translate(-50%,-50%);padding:2px 8px;background:var(--white);white-space:nowrap;font-family:var(--font-mono);font-size:10px;letter-spacing:0.08em;text-transform:uppercase;color:var(--ink)}
.adv-bb-tag--a{left:28.5%;top:92px}
.adv-bb-tag--b{left:71.5%;top:92px}
.adv-bb-tag--pay{left:24%;top:282px}
.adv-bb-tag--goods{left:50%;top:452px}

/* 08 to 13 Support cells, clients, closing ----------------------------------- */
.adv-cell{justify-content:flex-start;gap:28px;min-height:330px}
.adv-cell .adv-cell-foot{margin-top:auto}
.adv-cell .disclaimer{padding:10px 12px;font-size:12px;line-height:1.7;color:var(--ink-2)}
.adv-client{gap:24px;min-height:136px;padding:clamp(20px,2.2vw,32px)}
.adv-client .h-cell{font-size:clamp(19px,1.7vw,23px)}
.adv-close{border-bottom:0}
.adv-cta-note{margin-top:20px}

/* Responsive ------------------------------------------------------------------- */
@media (max-width:1180px){
  .adv-bb{height:auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}
  .adv-bb-svg,.adv-bb-tag{display:none}
  .adv-bb-box{position:static;width:auto;height:auto;min-height:96px}
  .adv-bb-desk{grid-column:1 / 3;order:-1}
}
@media (max-width:980px){
  .adv-origin-fig{max-width:640px}
}
@media (max-width:640px){
  .adv-index-head > span + span{display:none}
  .adv-idx-label{padding-top:4px}
  .adv-band-meta > span + span{display:none}
  .adv-sheet-meta > div:nth-child(3n+1){padding-left:14px}
  .adv-sheet-meta > div:nth-child(2n+1){padding-left:0}
  .adv-route-tag{padding:2px 5px;font-size:9px}
  .adv-route-tag--b{left:auto;right:44%}
  .adv-route-note{max-width:38%}
  .adv-photo-ph{height:84px;padding:6px}
  .adv-cell,.adv-client{min-height:0}
  .adv-bb{grid-template-columns:minmax(0,1fr)}
  .adv-bb-desk{grid-column:auto}
}


/* ==========================================================
   Page styles: cm
   ========================================================== */
/* ==========================================================================
   Critical Minerals page (en/critical-minerals.html, de/kritische-rohstoffe.html)
   Prefix: cm-. Builds on .cm-index, .cm-profile, .cm-body, .cm-callout and
   .cm-sym already present in main.css.
   ========================================================================== */

/* Hero: periodic-table style index */
.cm-index-wrap{margin-top:clamp(40px,5vw,72px)}
.cm-index-head{padding:14px 0;border-top:1px solid var(--ink);font-size:11px}
.cm-tile-top{display:flex;justify-content:space-between;gap:6px}
.cm-index .tile{min-width:0;min-height:104px}
.cm-index .tile-name{overflow-wrap:anywhere;hyphens:auto}
.cm-hero-fig{margin-top:clamp(36px,4vw,56px)}

/* Context band: CRMA 2030 benchmarks */
.cm-bench-meta{
  display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 16px;
  margin-top:var(--block-gap);padding:14px 0;border-top:1px solid var(--dark-rule-strong);
  font-family:var(--font-mono);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--dark-muted);
}
.cm-bench{background:var(--dark-rule);border:1px solid var(--dark-rule)}
.cm-bench > li{display:flex;flex-direction:column;gap:clamp(28px,3.4vw,52px);padding:var(--cell-pad);background:var(--ink)}
.cm-bench-top{display:flex;justify-content:space-between;gap:12px;font-family:var(--font-mono);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--dark-muted)}
.cm-bench-fig{font-family:var(--font-mono);font-size:clamp(56px,6.4vw,96px);line-height:0.95;font-weight:400;letter-spacing:-0.05em;color:var(--white)}
.cm-bench-fig span{font-size:0.5em;letter-spacing:0;color:var(--cyan-light)}
.cm-bench-bar{position:relative;height:1px;margin-top:22px;background:var(--dark-rule-strong)}
.cm-bench-bar::before{content:"";position:absolute;left:0;top:0;width:var(--cm-share);height:1px;background:var(--cyan-light)}
.cm-bench-bar::after{content:"";position:absolute;left:var(--cm-share);top:-3px;width:1px;height:7px;background:var(--cyan-light)}
.cm-bench-bar--10{--cm-share:10%}
.cm-bench-bar--40{--cm-share:40%}
.cm-bench-bar--25{--cm-share:25%}
.cm-bench-bar--65{--cm-share:65%}
.cm-bench-title{margin-top:22px;font-size:18px;line-height:1.3;font-weight:500;letter-spacing:-0.015em;color:var(--white)}
.cm-bench-text{margin-top:8px;font-size:14px;line-height:1.55;color:var(--dark-body)}
.cm-source{margin-top:20px}

/* Mineral profiles */
.cm-profile{padding:clamp(36px,4.4vw,64px) 0;border-top:1px solid var(--ink)}
.cm-profile > *{min-width:0}
.cm-el{
  display:flex;flex-direction:column;justify-content:space-between;
  width:100%;max-width:176px;aspect-ratio:1 / 1;padding:14px;
  border:1px solid var(--ink);background:var(--white);
}
.cm-el-top{display:flex;justify-content:space-between;gap:8px;font-family:var(--font-mono);font-size:11px;letter-spacing:0.06em;color:var(--muted)}
.cm-el-sym{font-family:var(--font-mono);font-size:clamp(44px,4.4vw,64px);line-height:1;font-weight:500;letter-spacing:-0.04em;color:var(--ink)}
.cm-el-rule{width:28px;height:1px;margin-top:12px;background:var(--grad)}
.cm-el-name{margin-top:10px;font-family:var(--font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:var(--muted)}
.cm-profile-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px 24px}
.cm-profile-title{font-size:clamp(26px,2.6vw,38px);line-height:1.1;font-weight:500;letter-spacing:-0.03em}
.cm-profile-title .mono{font-size:0.5em;font-weight:400;letter-spacing:0;color:var(--muted)}
.cm-profile-meta{display:flex;align-items:center;gap:20px;font-family:var(--font-mono);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--muted)}
.cm-profile-meta a{display:inline-flex;align-items:center;min-height:44px;text-decoration:underline;text-underline-offset:4px}
.cm-profile .cm-body{margin-top:clamp(16px,2vw,28px)}
.cm-body > *{min-width:0}
.cm-profile .kv-row{grid-template-columns:5fr 7fr;column-gap:24px}
.cm-profile .pb-table{min-width:0}
.cm-profile .pb-table td{padding:16px 20px 16px 0}
.cm-profile .pb-table td:last-child,.cm-profile .pb-table th:last-child{padding-right:0}
.cm-profile .pb-table .cell-key{width:46%}
.cm-profile-fig{margin-top:clamp(24px,2.6vw,36px)}

/* Base metals row */
.cm-base-wrap{padding-top:clamp(36px,4.4vw,64px);border-top:1px solid var(--ink)}
.cm-base-grid{margin-top:clamp(20px,2.4vw,32px)}
.cm-base{display:flex;flex-direction:column;gap:24px;padding:clamp(20px,2.2vw,32px)}
.cm-base-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.cm-base-sym{font-family:var(--font-mono);font-size:32px;line-height:1;font-weight:500;letter-spacing:-0.03em;color:var(--ink)}
.cm-base-name{font-size:15px;color:var(--ink-3)}
.cm-base-spec{padding-top:14px;border-top:1px solid var(--rule);font-family:var(--font-mono);font-size:13px;line-height:1.8;color:var(--ink)}
.cm-base-spec span{display:block;font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--muted)}
.cm-footnote{max-width:980px;margin-top:clamp(24px,2.6vw,36px)}

/* Africa callout (private programme) */
.cm-africa{margin-top:clamp(48px,6vw,88px)}
.cm-africa .cm-callout{padding:clamp(24px,3vw,44px) var(--panel-pad)}
.cm-africa-map{display:block;width:100%;max-width:220px;height:auto}
.cm-africa-text{max-width:860px;font-size:clamp(20px,2vw,28px);line-height:1.25;font-weight:500;letter-spacing:-0.02em;text-wrap:balance}
.cm-africa-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 24px;margin-top:20px}
.cm-africa-foot .mono{font-size:12px;letter-spacing:0.08em;color:var(--muted)}

/* Execution: eighth cell with the advisory hand-over */
.cm-step-note{background:var(--porcelain)}
.cm-step-note .step-body p{margin-top:0}
.cm-step-note .arrow-link{margin-top:8px}

/* Who we supply */
.cm-who-fig{margin-top:clamp(28px,3.2vw,48px)}

@media (max-width:980px){
  .cm-el{max-width:148px}
}
@media (max-width:640px){
  .cm-el{max-width:124px;padding:12px}
  .cm-el-sym{font-size:40px}
  .cm-profile .kv-row{grid-template-columns:1fr}
  .cm-profile .pb-table .cell-key{width:50%}
  .cm-profile-meta a{margin-left:auto}
}
@media print{
  .cm-bench,.cm-bench > li{background:var(--white) !important}
  .cm-bench-fig,.cm-bench-title,.cm-bench-text{color:var(--ink) !important}
}


/* ==========================================================
   Page styles: en
   ========================================================== */
/* ==========================================================================
   Energy page (en/energy.html, de/energie.html). Prefix: en-
   Append to main.css after section 18. Uses tokens from main.css only.
   ========================================================================== */

/* Hero: product index label and the wide tanker photograph */
.en-index-label{margin-bottom:14px}
.en-hero-figure{margin-top:clamp(36px,4vw,56px)}

/* Product groups: one ruled article per group, first rule in ink */
.en-groups{border-bottom:1px solid var(--rule)}
.en-group{padding:clamp(32px,3.6vw,56px) 0;border-top:1px solid var(--rule)}
.en-group:first-child{border-top-color:var(--ink)}
.en-group-title{margin-top:14px;font-size:clamp(26px,2.5vw,36px);line-height:1.1;font-weight:500;letter-spacing:-0.03em}
.en-fig{max-width:420px;margin-top:clamp(20px,2.2vw,32px);background:var(--paper)}
.en-art{padding:clamp(16px,1.8vw,26px) clamp(16px,1.8vw,26px) 8px;background:var(--paper)}
.en-group-link{margin-top:14px}
.en-table--3 th:first-child{width:27%}
.en-table--3 th:nth-child(2){width:39%}
.en-table--2 th:first-child{width:34%}
.en-groups-note{max-width:920px}

/* Execution: eighth cell is a note, not a step */
.en-step-note{background:var(--paper)}
.en-step-note .arrow-link{margin-top:8px}

/* Sanctions regimes */
.en-regime{min-height:190px}
.en-regime-code{display:block}
.en-regime p{font-size:14px;line-height:1.55}

/* What we decline (dark band) */
.en-decline-head{padding-bottom:18px;border-bottom:1px solid var(--dark-rule-strong);color:var(--dark-muted)}
.en-decline-title{max-width:1100px;margin-top:clamp(36px,4.4vw,72px)}
.en-decline-body{margin-top:clamp(48px,6vw,96px)}
.en-decline-aside p{max-width:340px;margin-top:28px;font-size:16px;line-height:1.6;color:var(--dark-body)}
.en-decline-aside .arrow-link{margin-top:12px}
.en-decline-label{padding-bottom:14px}
.en-decline-list .decline-row{padding:19px 0;border-top:1px solid var(--dark-rule)}
.en-decline-list .decline-row:last-child{border-bottom:1px solid var(--dark-rule)}
.en-decline-num{font-family:var(--font-mono);font-size:12px;color:var(--cyan-light)}
.en-decline-text{font-size:clamp(17px,1.4vw,20px);line-height:1.4;color:var(--white)}
.en-decline-list .decline-tag{font-family:var(--font-mono);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--dark-muted)}

/* Official Truvest channels (prominent version on the dark band) */
.en-channels{margin-top:clamp(56px,6.5vw,104px)}
.en-channels-body{padding:clamp(28px,3.4vw,52px) var(--panel-pad)}
.en-channels-title{margin-top:28px;color:var(--white)}
.en-channels-domain{margin-top:20px;font-family:var(--font-mono);font-size:clamp(30px,3.6vw,52px);line-height:1;letter-spacing:-0.04em;color:var(--white);overflow-wrap:anywhere}
.en-channels-domain + .label{margin-top:14px}
.en-channels-lead{font-size:clamp(18px,1.6vw,22px);line-height:1.45;letter-spacing:-0.01em;color:var(--white)}
.en-channels-text p + p{margin-top:16px;font-size:16px;line-height:1.6;color:var(--dark-body)}
.en-channels-text .en-channels-lead + p{margin-top:20px}
.en-channels-contacts{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:32px;margin-top:clamp(28px,3vw,40px);border-top:1px solid var(--dark-rule-strong)}
.en-channels-contacts > div{padding:16px 0;border-bottom:1px solid var(--dark-rule)}
.en-channels-contacts dt{font-family:var(--font-mono);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--dark-muted)}
.en-channels-contacts dd{margin-top:6px;font-family:var(--font-mono);font-size:15px}
.en-channels-contacts a{display:inline-flex;align-items:center;min-height:44px}

/* Who we supply */
.en-supply .cell{min-height:200px}

/* Inquiry intro column */
.en-inquiry-title{margin-top:20px}
.en-inquiry-contact{margin-top:clamp(28px,3vw,44px)}

@media (max-width:640px){
  .en-channels-contacts{grid-template-columns:minmax(0,1fr)}
  .en-regime,.en-supply .cell{min-height:0}
}


/* ==========================================================
   Page styles: mat
   ========================================================== */
/* Materials page (slug: mat). Appended to main.css by the lead.
   Reuses .ma-quality, .ma-med-grid and .ma-med-split from main.css. */
.mat-cap{padding-bottom:14px}

/* Steel gallery: fixed frame heights inside .figure-grid */
.mat-gallery .mat-fig-lg picture{height:clamp(260px,32vw,460px)}
.mat-gallery .mat-fig-sm picture{height:240px}

/* Quality and documentation line (dl.ma-quality.cells) */
.mat-q{min-width:0;padding:22px clamp(18px,2vw,28px)}
.mat-q dd{margin-top:10px;font-size:16px;line-height:1.5;color:var(--ink)}
.mat-q dd.mono{font-size:14px}

/* Photo that fills the height of its grid row (precious metals, fertilisers) */
.mat-fill{display:flex;flex-direction:column;height:100%}
.mat-fill picture{position:relative;flex:1 1 auto;min-height:280px}
.mat-fill img{position:absolute;inset:0;width:100%;height:100%}

/* Fertiliser cells: mono specification line */
.cell p.mat-spec{font-family:var(--font-mono);font-size:13px;line-height:1.7;color:var(--ink-2)}

/* Medical block: clinical frame with cyan register marks */
.mat-med{position:relative;border:1px solid var(--rule);background:var(--white)}
.mat-med-mark{position:absolute;width:13px;height:13px}
.mat-med-mark--tl{top:-7px;left:-7px}
.mat-med-mark--tr{top:-7px;right:-7px}
.mat-med-mark--bl{bottom:-7px;left:-7px}
.mat-med-mark--br{bottom:-7px;right:-7px}
.mat-med-head{
  display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 24px;
  padding:14px clamp(18px,2.6vw,40px);border-bottom:1px solid var(--rule);
  font-family:var(--font-mono);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--ink);
}
.mat-med-head > span:first-child{display:inline-flex;align-items:center;gap:10px}
.mat-med-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--cyan)}
.mat-med-body{padding:clamp(28px,4vw,64px) clamp(18px,2.6vw,40px)}
.mat-med .ma-med-split > *{min-width:0}
.mat-med-block{margin-top:clamp(36px,4.4vw,64px)}
.mat-med-end{align-self:end}
.mat-leadtime{margin-top:10px;font-family:var(--font-mono);font-size:clamp(26px,2.6vw,38px);line-height:1.1;letter-spacing:-0.03em;color:var(--ink)}
.mat-med-cell{display:flex;flex-direction:column;justify-content:space-between;gap:24px;min-height:168px;padding:24px}
.mat-med-cell-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.mat-med-code{font-family:var(--font-mono);font-size:11px;letter-spacing:0.08em;color:var(--muted)}
.mat-assure{border-top:1px solid var(--cyan);font-size:16px;line-height:1.5;color:var(--ink-2)}
.mat-assure > li{display:flex;gap:14px;align-items:flex-start;padding:14px 0;border-bottom:1px solid var(--rule)}
.mat-assure svg{flex-shrink:0;margin-top:3px}

@media (max-width:980px){
  .mat-fill{height:auto}
  .mat-fill picture{flex:none;min-height:0;aspect-ratio:3 / 2}
}
@media (max-width:640px){
  .mat-gallery .mat-fig-sm picture{height:220px}
  .mat-med-cell{min-height:0}
}


/* ==========================================================
   Page styles: opp
   ========================================================== */
/* ==========================================================================
   Page part: Opportunities (Private Investment & Offtake Programme)
   Files: /en/opportunities.html, /de/investitionsprogramm.html
   Prefix: .opp-   (append to main.css before the media-query block is fine:
   this part carries its own media queries at the end)
   ========================================================================== */

/* Hero facts (definition list in the existing fact-row) */
.opp-facts{margin-top:clamp(40px,5vw,72px)}
.opp-facts dd{margin:12px 0 0;font-size:17px;line-height:1.4;font-weight:500;letter-spacing:-0.015em;color:var(--ink)}

/* Small label above a block */
.opp-kicker{padding-bottom:14px;font-family:var(--font-mono);font-size:12px;letter-spacing:0.08em;text-transform:uppercase;color:var(--muted)}
.opp-aud .cell{min-height:180px}

/* Focus Africa: map crop of East and Southern Africa (map x 470 to 662, y 160 to 352) */
.opp-mapfig{margin:0;border:1px solid var(--dark-rule)}
.opp-map{position:relative;overflow:hidden;aspect-ratio:1 / 1;background:var(--ink)}
.opp-map .map-box{width:520%;margin-left:-244.4%;margin-top:-83.2%}
.opp-map .map-img{opacity:0.34}
.opp-pin{
  position:absolute;left:var(--x);top:var(--y);transform:translateY(-50%);
  padding-left:10px;border-left:1px solid var(--cyan-light);
  font-family:var(--font-mono);font-size:11px;line-height:1.5;letter-spacing:0.08em;text-transform:uppercase;color:var(--white);
}
.opp-pin span{display:block;color:var(--dark-muted)}
.opp-map-note{position:absolute;left:14px;bottom:12px;max-width:46%;font-family:var(--font-mono);font-size:11px;line-height:1.5;letter-spacing:0.04em;color:var(--dark-muted)}
.opp-mapfig figcaption{
  display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 16px;padding:12px 14px;border-top:1px solid var(--dark-rule);
  font-family:var(--font-mono);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--dark-muted);
}
.opp-mapfig figcaption b{font-weight:400;color:var(--cyan-light)}
.opp-photo{margin-top:24px}

/* Country profiles on the dark band */
.opp-country{padding:clamp(24px,2.8vw,40px) 0;border-top:1px solid var(--dark-rule-strong)}
.opp-country:first-child{padding-top:0;border-top:0}
.opp-country-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 16px;font-family:var(--font-mono);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--dark-muted)}
.opp-country-head b{font-weight:400;color:var(--cyan-light)}
.opp-country h3{margin-top:18px;font-size:clamp(28px,3vw,42px);line-height:1.05;font-weight:500;letter-spacing:-0.03em;color:var(--white)}
.opp-country-sum{margin-top:14px;max-width:640px;font-size:clamp(17px,1.4vw,20px);line-height:1.5;letter-spacing:-0.01em;color:var(--dark-body)}
.opp-kv{margin-top:24px;border-top:1px solid var(--dark-rule)}
.opp-kv > div{display:grid;grid-template-columns:3fr 9fr;column-gap:24px;row-gap:6px;padding:16px 0;border-bottom:1px solid var(--dark-rule)}
.opp-kv dt{padding-top:3px;font-family:var(--font-mono);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--cyan-light)}
.opp-kv dd{margin:0;font-size:15px;line-height:1.6;color:var(--dark-body)}

/* Element-style tiles for the Malawi mineral list (dark) */
.opp-el-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 16px;margin-top:28px;padding-bottom:12px;font-family:var(--font-mono);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--dark-muted)}
.opp-el{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:1px;background:var(--dark-rule);border:1px solid var(--dark-rule)}
.opp-el > li{display:flex;flex-direction:column;justify-content:space-between;gap:14px;min-height:96px;padding:12px;background:var(--ink)}
.opp-el-num{font-family:var(--font-mono);font-size:10px;letter-spacing:0.06em;color:var(--dark-muted)}
.opp-el-sym{display:block;font-family:var(--font-mono);font-size:22px;line-height:1;font-weight:500;letter-spacing:-0.03em;color:var(--white)}
.opp-el-name{display:block;margin-top:6px;font-size:12px;line-height:1.3;color:var(--dark-body)}

.opp-africa-foot{padding-top:clamp(24px,2.8vw,36px);border-top:1px solid var(--dark-rule-strong)}
.opp-africa-foot > p:first-child{max-width:640px;font-size:16px;line-height:1.6;color:var(--white)}
.opp-source{margin-top:14px;max-width:720px;font-family:var(--font-mono);font-size:12px;line-height:1.7;color:var(--dark-muted)}

/* Opportunity board */
.opp-board{border:1px solid var(--ink);background:var(--paper)}
.opp-board-bar{display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px;padding:14px var(--panel-pad);border-bottom:1px solid var(--ink)}
.opp-illus{
  display:inline-flex;align-items:center;gap:10px;min-height:32px;padding:0 12px;border:1px solid var(--ink);border-radius:var(--radius);background:var(--white);
  font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:0.08em;text-transform:uppercase;color:var(--ink);white-space:nowrap;
}
.opp-board-bar p{flex:1 1 320px;font-family:var(--font-mono);font-size:12px;line-height:1.7;color:var(--ink-2)}
.opp-board-grid{border:0;border-bottom:1px solid var(--rule)}
.opp-board .lock-card{min-height:400px;gap:0}
.opp-lock{display:inline-flex;align-items:center;gap:8px}
.opp-lock svg{flex-shrink:0}
.opp-card-title{margin-top:28px;font-size:clamp(22px,2vw,28px);line-height:1.12;font-weight:500;letter-spacing:-0.028em;color:var(--ink)}
.opp-card-country{margin-top:10px;font-family:var(--font-mono);font-size:12px;letter-spacing:0.08em;text-transform:uppercase;color:var(--blue)}
.opp-card-dl{margin-top:24px;border-top:1px solid var(--rule)}
.opp-card-dl > div{padding:11px 0;border-bottom:1px solid var(--rule)}
.opp-card-dl dt{font-family:var(--font-mono);font-size:10px;letter-spacing:0.08em;text-transform:uppercase;color:var(--muted)}
.opp-card-dl dd{margin:6px 0 0}
.opp-bars{display:grid;grid-template-columns:5fr 3fr;gap:8px;margin:20px 0 24px}
.opp-bars span{display:block;height:8px;background:var(--rule)}
.opp-bars span:nth-child(3){width:70%}
.opp-bars span:nth-child(5){width:85%}
.opp-bars span:nth-child(6){width:60%}
.opp-board .lock-card-foot{display:flex;align-items:center;gap:10px}
.opp-board .lock-card-foot svg{flex-shrink:0}
.opp-more-frame{
  display:flex;align-items:flex-end;flex:1;min-height:150px;margin-top:28px;padding:14px;border:1px dashed var(--rule-strong);background:var(--white);
  font-family:var(--font-mono);font-size:11px;line-height:1.6;letter-spacing:0.02em;color:var(--muted);
}
.opp-more-frame span span{display:block;margin-top:4px;letter-spacing:0.08em;text-transform:uppercase}
.opp-more-text{margin-top:20px;font-size:15px;line-height:1.6;color:var(--ink-3)}
.opp-board-note{padding:14px var(--panel-pad);font-family:var(--font-mono);font-size:12px;line-height:1.7;color:var(--muted)}

/* Capital routes table: number column */
.opp-routes th:first-child,.opp-routes td:first-child{width:64px;color:var(--muted)}
.opp-routes td.cell-key{font-size:17px;letter-spacing:-0.015em}

/* Bankability checklist with tick boxes */
.opp-check > li{align-items:center}
.opp-check > li > span:nth-child(2){flex:1}
.opp-check svg{flex-shrink:0}

/* Side list beside the access form */
.opp-side{margin-top:clamp(28px,3vw,40px);border-top:1px solid var(--ink)}
.opp-side > div{padding:16px 0;border-bottom:1px solid var(--rule)}
.opp-side dt{font-family:var(--font-mono);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--muted)}
.opp-side dd{margin:8px 0 0;font-size:16px;line-height:1.6;color:var(--ink-2)}
.opp-form-fine{flex:1 1 240px;font-family:var(--font-mono);font-size:12px;line-height:1.7;color:var(--muted)}
.opp-form-fine a{text-decoration:underline;text-underline-offset:3px}

/* Role and legal notice */
.opp-notice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--rule)}
.opp-notice-col{padding:clamp(24px,3vw,44px) var(--panel-pad);background:var(--white)}
.opp-notice-col .label{color:var(--ink)}
.opp-notice-lead{margin-top:18px;font-size:clamp(20px,1.9vw,26px);line-height:1.25;font-weight:500;letter-spacing:-0.025em;color:var(--ink);text-wrap:balance}
.opp-notice-col .opp-mono{margin-top:18px;font-family:var(--font-mono);font-size:13px;line-height:1.75;color:var(--ink-2)}
.opp-no{margin-top:22px;border-top:1px solid var(--rule)}
.opp-no > li{display:flex;gap:16px;align-items:baseline;padding:11px 0;border-bottom:1px solid var(--rule);font-family:var(--font-mono);font-size:13px;line-height:1.6;color:var(--ink)}
.opp-no > li > :first-child{flex-shrink:0;min-width:48px;font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--muted)}
.opp-open{display:flex;flex-wrap:wrap;align-items:center;gap:10px 20px;padding:14px var(--panel-pad);border-top:1px solid var(--ink);background:var(--paper)}
.opp-channels{margin-top:24px}
.opp-channels .official-body > p{font-size:15px}
.opp-channels-dl{grid-column:1 / 3;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:32px;margin:8px 0 0;border-top:1px solid var(--rule)}
.opp-channels-dl > div{padding:14px 0 4px}
.opp-channels-dl dt{font-family:var(--font-mono);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--muted)}
.opp-channels-dl dd{margin:6px 0 0;font-family:var(--font-mono);font-size:13px;line-height:1.7;color:var(--ink)}
.opp-end{margin-top:clamp(32px,4vw,56px)}

@media (max-width:1200px){
  .opp-el{grid-template-columns:repeat(4,minmax(0,1fr))}
  .opp-board .lock-card{min-height:0}
}
@media (max-width:980px){
  .opp-mapfig{max-width:560px}
  .opp-notice-grid{grid-template-columns:1fr}
  .opp-channels-dl{grid-column:auto}
  .opp-aud .cell{min-height:150px}
}
@media (max-width:640px){
  .opp-el{grid-template-columns:repeat(3,minmax(0,1fr))}
  .opp-kv > div{grid-template-columns:1fr}
  .opp-channels-dl{grid-template-columns:1fr}
  .opp-aud .cell{min-height:0}
  .opp-map-note{max-width:60%}
  .opp-pin{font-size:10px}
}


/* ==========================================================
   Page styles: about
   ========================================================== */
/* ==========================================================================
   Page part: About and Global Network (en/about.html, de/ueber-uns.html)
   Prefix: ab-   Appended to main.css by the lead. Uses main.css tokens only.
   ========================================================================== */

/* Hero facts (dl.fact-row with div.fact children) */
.ab-facts{margin-top:clamp(40px,5vw,72px)}
.ab-facts .fact{padding-top:16px}
.ab-facts dt{font-family:var(--font-mono);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--muted)}
.ab-facts dd{margin-top:10px;font-size:clamp(18px,1.6vw,22px);line-height:1.25;font-weight:500;letter-spacing:-0.02em}

/* Story and mission */
.ab-colhead{padding-bottom:14px;border-bottom:1px solid var(--ink)}
.ab-story-text{margin-top:20px;font-size:clamp(17px,1.4vw,20px);line-height:1.55;color:var(--ink-2)}
.ab-story-tag{margin-top:24px}
.ab-mission{margin-top:20px;font-size:clamp(22px,2.1vw,30px);line-height:1.25;font-weight:500;letter-spacing:-0.025em;color:var(--ink);text-wrap:balance}

/* Photo band below the role tiles */
.ab-band{margin-top:clamp(32px,4vw,56px)}

/* Operating philosophy: ruled principle rows */
.ab-principles{border-top:1px solid var(--ink)}
.ab-principle{display:grid;grid-template-columns:4fr 8fr;column-gap:32px;row-gap:8px;align-items:baseline;padding:clamp(18px,2vw,26px) 0;border-bottom:1px solid var(--rule)}
.ab-principle-key{display:flex;gap:20px;align-items:baseline}
.ab-principle-key > span{flex-shrink:0;min-width:24px;font-family:var(--font-mono);font-size:12px;color:var(--muted)}
.ab-principle p{font-size:16px;line-height:1.6;color:var(--ink-3)}

/* Leadership */
.ab-portrait{margin:0;border:1px solid var(--rule);background:var(--white)}
.ab-portrait .ph-frame{margin:12px}
.ab-portrait figcaption{padding:10px 14px;border-top:1px solid var(--rule);font-family:var(--font-mono);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--muted)}
.ab-name{margin-top:14px;font-size:clamp(30px,3.2vw,46px);line-height:1.05;font-weight:500;letter-spacing:-0.03em}
.ab-leader-lead{margin-top:20px;max-width:520px;font-size:clamp(17px,1.4vw,20px);line-height:1.5;color:var(--ink-2)}
.ab-leader-kv{margin-top:clamp(28px,3vw,44px)}

/* Timeline */
.ab-tl .tl-row{padding:clamp(22px,2.4vw,34px) 0}
.ab-tl-year{font-family:var(--font-mono);font-size:clamp(32px,3.4vw,52px);line-height:1;letter-spacing:-0.04em;color:var(--ink)}
.ab-tl-year--open{color:var(--rule-hover)}
.ab-tl .tl-text{font-size:clamp(17px,1.4vw,20px);line-height:1.5;color:var(--ink-2)}

/* Global network on the dark map stage */
.ab-net > .container{padding-bottom:clamp(64px,8vw,128px)}
.ab-net-head{padding-top:clamp(56px,7vw,112px)}
.ab-net .sec-num{color:var(--dark-muted)}
.ab-net .h-section{color:var(--white)}
.ab-net-select{margin-top:clamp(36px,4vw,56px)}
.ab-net-select-label{padding-top:16px;font-family:var(--font-mono);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--dark-muted)}
.ab-net-map{padding-top:clamp(28px,3.4vw,52px)}
.ab-net-panels{margin-top:clamp(40px,5vw,72px)}
.ab-region-label{font-family:var(--font-mono);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--dark-muted)}
.ab-region-name{margin-top:14px;font-size:clamp(30px,3.2vw,46px);line-height:1.05;font-weight:500;letter-spacing:-0.03em;color:var(--white)}
.ab-region-intro{margin-top:18px;max-width:380px;font-size:16px;line-height:1.6;color:var(--dark-body)}
.ab-region-list{border-bottom:1px solid var(--dark-rule)}
.ab-region-list .region-row{padding:17px 0;border-top:1px solid var(--dark-rule)}
.ab-region-list .row-num{font-size:12px;color:var(--cyan-light)}
.ab-region-key{font-size:17px;font-weight:500;color:var(--white)}
.ab-region-key small{display:block;margin-top:6px;font-family:var(--font-mono);font-size:11px;font-weight:400;letter-spacing:0.08em;text-transform:uppercase;color:var(--dark-muted)}
.ab-region-list .region-detail{font-family:var(--font-sans);font-size:16px;line-height:1.55;color:var(--dark-body)}
.ab-region-list .region-detail a{color:var(--cyan-light);text-decoration:underline;text-underline-offset:3px}
.ab-region-list .region-detail a:hover{color:var(--white)}
.ab-net .map-note{margin-top:clamp(36px,4.4vw,64px);padding-top:18px;border-top:1px solid var(--dark-rule);max-width:none}

/* Partner selection */
.ab-criteria > li > span:last-child > span{display:block;margin-top:4px;font-size:14px;line-height:1.55;color:var(--ink-3)}
.ab-partner{height:100%}
.ab-partner .panel-body{display:flex;flex-direction:column;gap:20px}
.ab-partner .chips{margin-top:4px}
.ab-partner-cta{display:flex;flex-direction:column;align-items:flex-start;gap:14px;padding:clamp(20px,2.4vw,32px) var(--panel-pad);border-top:1px solid var(--rule)}

/* Compliance and company data */
.ab-data-caption{margin-top:clamp(40px,5vw,64px);padding-bottom:14px}
.ab-break{word-break:break-all}
.notice-body .ab-statement{font-family:var(--font-sans);font-size:clamp(18px,1.6vw,22px);line-height:1.4;font-weight:500;letter-spacing:-0.015em;color:var(--ink)}

@media (max-width:980px){
  .ab-net-select-label{padding-top:0}
}
@media (max-width:640px){
  .ab-principle{grid-template-columns:1fr}
  .ab-net .map-caption > span:last-child{display:none}
}
@media print{
  .ab-net .sec-num,.ab-region-label,.ab-region-key small{color:var(--muted)}
  .ab-net .h-section,.ab-region-name,.ab-region-key{color:var(--ink)}
  .ab-region-intro,.ab-region-list .region-detail{color:var(--ink-2)}
}


/* ==========================================================
   Page styles: contact
   ========================================================== */
/* ==========================================================================
   Page part: contact (Contact / Request a Proposal and the thank-you pages)
   Prefix: .co-   Base rules .co-layout, .co-side, .co-submit-row live in main.css
   ========================================================================== */

/* Hero fact list (label left, mono value right) */
.co-facts{border-top:1px solid var(--ink);font-family:var(--font-mono);font-size:13px;line-height:1.6}
.co-facts > div{display:flex;justify-content:space-between;gap:24px;padding:12px 0;border-bottom:1px solid var(--rule)}
.co-facts dt{flex-shrink:0;padding-top:2px;font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--muted)}
.co-facts dd{text-align:right;color:var(--ink)}

/* Full form: numbered fieldsets on ink rules, the legend sits on the rule */
.co-form-title{max-width:620px;margin-top:clamp(24px,2.6vw,36px)}
.co-form-intro{max-width:600px;margin-top:16px}
.co-form-req{margin-top:12px}
.co-form fieldset,.co-form fieldset + fieldset{margin-top:clamp(36px,4vw,56px);padding-top:28px;border-top:1px solid var(--ink)}
.co-form legend{margin-bottom:0;padding-right:18px;font-family:var(--font-sans);font-size:18px;line-height:1.3;font-weight:500;letter-spacing:-0.015em;text-transform:none;color:var(--ink)}
.co-form legend .legend-num{font-family:var(--font-mono);font-size:12px;font-weight:400;letter-spacing:0.08em}
.co-form .field textarea.co-short{height:96px}
.co-form .field textarea.co-long{height:168px}
.co-form .check{margin-top:0}
.co-spam{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-mono);font-size:12px;line-height:1.6;color:var(--muted)}
.co-spam svg{flex-shrink:0}

/* Side panel */
.co-side > * + *{margin-top:20px}
.co-direct-title{font-size:clamp(22px,2vw,28px);line-height:1.15;font-weight:500;letter-spacing:-0.025em}
.co-contact{margin-top:20px;border-top:1px solid var(--ink)}
.co-contact > div{padding:14px 0;border-bottom:1px solid var(--rule)}
.co-contact > div:last-child{padding-bottom:0;border-bottom:0}
.co-contact dt{font-family:var(--font-mono);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--muted)}
.co-contact dd{margin-top:6px;font-family:var(--font-mono);font-size:13px;line-height:1.7;color:var(--ink);overflow-wrap:anywhere}
.co-contact dd.co-contact-link{margin-top:0}
.co-contact dd a{display:inline-flex;align-items:center;min-height:44px}
.co-contact .tag-placeholder{display:table;margin-top:8px}
.co-map figcaption{letter-spacing:0.06em}
.co-links{border-top:1px solid var(--ink)}
.co-links .label{padding:14px 0 10px}
.co-links a{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:52px;border-top:1px solid var(--rule);font-size:15px;font-weight:500;color:var(--ink);transition:color .2s}
.co-links a:hover{color:var(--blue);text-decoration:none}
.co-links a svg{flex-shrink:0;color:var(--blue);transition:transform .25s}
.co-links a:hover svg{transform:translateX(5px)}

/* The side panel is taller than most viewports: keep it sticky only where it fits */
@media (max-height:1240px){
  .co-side{position:static}
}

/* Thank-you pages */
.co-done-actions{margin-top:clamp(24px,2.6vw,36px)}
.co-done-note{margin-top:var(--block-gap)}

@media (max-width:640px){
  .co-facts > div{flex-direction:column;gap:2px}
  .co-facts dd{text-align:left}
}
@media (prefers-reduced-motion:reduce){
  .co-links a svg{transition:none}
}


/* ==========================================================
   Page styles: legal
   ========================================================== */
/* ==========================================================================
   Legal pages (prefix lg-): legal notice, privacy policy, terms, compliance.
   Long-form layout: sticky table of contents (from 1000px), numbered
   sections, mono company data. Builds on .prose, .kv, .notice, .official.
   ========================================================================== */
.lg-hero{padding-bottom:clamp(32px,4vw,56px)}
.lg-title{max-width:980px;font-size:clamp(34px,5.2vw,68px);line-height:1.05;overflow-wrap:break-word;hyphens:manual}
.lg-sub{
  max-width:900px;margin-top:clamp(24px,3vw,40px);padding-top:clamp(16px,2vw,24px);border-top:1px solid var(--rule);
  font-family:var(--font-mono);font-size:12px;line-height:1.8;letter-spacing:0.04em;color:var(--muted);
}

.lg-layout{display:grid;grid-template-columns:minmax(0,1fr);row-gap:clamp(36px,5vw,56px)}

/* Table of contents */
.lg-toc{align-self:start;padding-top:14px;border-top:1px solid var(--ink)}
.lg-toc ol{margin:10px 0 0;padding:0;list-style:none}
.lg-toc li{border-bottom:1px solid var(--rule)}
.lg-toc a{
  display:grid;grid-template-columns:44px minmax(0,1fr);column-gap:8px;align-items:baseline;
  min-height:44px;padding:11px 0;font-size:14px;line-height:1.4;color:var(--ink-2);
}
.lg-toc a:hover,.lg-toc a:focus-visible{color:var(--blue);text-decoration:none}
.lg-toc-num{font-family:var(--font-mono);font-size:11px;letter-spacing:0.06em;color:var(--muted);white-space:nowrap}

/* Text column */
.lg-prose{max-width:760px}
.lg-prose > :first-child{margin-top:0}
.lg-prose .lg-sec{margin-top:clamp(40px,5vw,64px);padding-top:clamp(20px,2.4vw,28px);border-top:1px solid var(--ink)}
.lg-prose > .lg-sec:first-child{margin-top:0}
.lg-prose .lg-sec > h2{margin-top:0;padding-top:0;border-top:0;scroll-margin-top:calc(var(--header-h) + 24px)}
.lg-sec > * + *,.lg-box > * + *,.lg-foot > * + *{margin-top:1em}
.lg-prose li > strong:first-child{color:var(--ink)}

.lg-box{padding:clamp(16px,2.2vw,26px);border:1px solid var(--rule-strong);border-radius:var(--radius);background:var(--paper)}
.lg-box--ink{border-color:var(--ink);background:var(--white)}
.lg-box--data{font-family:var(--font-mono);font-size:13px;line-height:1.8;color:var(--ink);overflow-wrap:anywhere}
.lg-box--data strong{font-weight:500}
.lg-boxhead{font-family:var(--font-mono);font-size:12px;line-height:1.6;font-weight:500;letter-spacing:0.08em;text-transform:uppercase;color:var(--ink)}
.lg-entity{font-size:20px;line-height:1.3;font-weight:600;letter-spacing:-0.02em;color:var(--ink)}
.lg-note{font-family:var(--font-mono);font-size:12px;line-height:1.7;color:var(--muted)}

.lg-kv{border-top-color:var(--rule-strong)}
.lg-kv .kv-row{grid-template-columns:minmax(0,4fr) minmax(0,8fr);column-gap:24px;padding:13px 0}
.lg-kv .kv-row dd{overflow-wrap:anywhere}
.lg-box > .lg-kv:last-child .kv-row:last-child{padding-bottom:0;border-bottom:0}

.lg-foot{margin-top:clamp(40px,5vw,64px);padding-top:20px;border-top:1px solid var(--rule);font-size:14px;line-height:1.7;color:var(--muted)}
.lg-foot + .lg-foot{margin-top:20px}
.lg-foot strong{color:var(--ink-2)}

/* Components reused inside the text column */
.lg-prose .lg-notice a,.lg-prose .lg-official a{text-underline-offset:3px}
.lg-prose .lg-official .official-title{margin:0;padding:0;border:0;font-size:11px;line-height:1.5;font-weight:500;letter-spacing:0.08em}

@media (min-width:640px) and (max-width:999px){
  .lg-toc ol{column-count:2;column-gap:40px}
  .lg-toc li{break-inside:avoid}
}
@media (min-width:1000px){
  .lg-layout{grid-template-columns:minmax(220px,280px) minmax(0,760px);column-gap:clamp(48px,7vw,120px)}
  .lg-toc{position:sticky;top:calc(var(--header-h) + 24px);max-height:82vh;overflow-y:auto}
  .lg-toc a{min-height:0;padding:9px 0;font-size:13px}
}
@media (max-width:560px){
  .lg-kv .kv-row{grid-template-columns:minmax(0,1fr);row-gap:4px}
}
@media print{
  .lg-toc{display:none}
  .lg-layout{display:block}
  .lg-prose{max-width:none}
  .lg-box,.lg-prose .lg-sec > h2{break-inside:avoid}
}
