/* T-Blocks issuer intake · Brand 2.5.0
   Values come from tblocks-brand-tokens.css (locked 2.5.0 core). Do not hard-code
   colours or spacing here; add a token upstream instead. */

@font-face{font-family:"Inter";src:url("fonts/Inter-Variable.ttf") format("truetype");font-weight:100 900;font-style:normal;font-display:swap}

/* This page is a light-register document: pin the light theme. */
:root{color-scheme:light}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body.tbf{margin:0;background:var(--bg);color:var(--fg);font-family:var(--font-sans);font-size:var(--fs-md);line-height:var(--lh-normal);letter-spacing:var(--ls-dense);-webkit-font-smoothing:antialiased}
.tbf a{color:var(--accent)}
.tbf :focus-visible{outline:var(--focus-outline);outline-offset:var(--focus-offset)}
.tbf-wrap{max-width:var(--container);margin:0 auto;padding:0 var(--gutter)}
.tbf-hidden{display:none !important}
.tbf-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ── Bar ─────────────────────────────────────────────────────────── */
.tbf-bar{border-bottom:1px solid var(--rule);background:var(--bg)}
.tbf-bar .tbf-wrap{display:flex;align-items:center;justify-content:space-between;height:68px}
.tbf-bar img{height:24px;width:auto;display:block}
.tbf-bar nav{display:flex;gap:var(--sp-6);align-items:center;font-size:var(--fs-sm)}
.tbf-bar nav a{color:var(--fg-2);text-decoration:none}
.tbf-bar nav a:hover{color:var(--fg)}
.tbf-bar .tbf-tag{font-size:var(--fs-micro);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--fg-3);border:1px solid var(--rule);border-radius:var(--r-pill);padding:4px 10px}

/* ── Head ────────────────────────────────────────────────────────── */
/* A slim band: the form is the page, so the visitor starts on step 1. */
.tbf-head{background:var(--bg-sunk);border-bottom:1px solid var(--rule);padding:var(--sp-6) 0}
.tbf-head .tbf-wrap{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--sp-4) var(--sp-10);flex-wrap:wrap}
.tbf-eyebrow{font-size:var(--fs-micro);font-weight:var(--fw-semibold);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--accent);margin:0 0 var(--sp-1)}
.tbf-head h1{font-size:var(--fs-h2);line-height:var(--lh-snug);letter-spacing:var(--ls-h2);font-weight:var(--fw-semibold);margin:0}
.tbf-lede{font-size:var(--fs-sm);line-height:var(--lh-normal);color:var(--fg-2);max-width:52ch;margin:0}

/* ── Layout ──────────────────────────────────────────────────────── */
.tbf-main{padding:var(--sp-8) 0 var(--sp-16)}
.tbf-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:var(--sp-10);align-items:start}

/* ── Steps rail ──────────────────────────────────────────────────── */
.tbf-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-2);margin:0 0 var(--sp-8);padding:0;list-style:none;counter-reset:s}
.tbf-steps li{counter-increment:s;border-top:2px solid var(--rule);padding-top:var(--sp-3);font-size:var(--fs-xs);color:var(--fg-3)}
.tbf-steps li::before{content:"0" counter(s);display:block;font-size:var(--fs-micro);letter-spacing:var(--ls-label);font-weight:var(--fw-semibold);margin-bottom:2px}
.tbf-steps li.is-done{border-top-color:var(--blue-500);color:var(--fg-2)}
.tbf-steps li.is-current{border-top-color:var(--accent);color:var(--fg);font-weight:var(--fw-semibold)}

/* ── Card + fields ───────────────────────────────────────────────── */
.tbf-card{background:var(--bg);border:1px solid var(--rule);border-radius:var(--r-lg);box-shadow:var(--e-1)}
.tbf-step{padding:var(--sp-10)}
.tbf-step h2{font-size:var(--fs-h2);letter-spacing:var(--ls-h2);line-height:var(--lh-snug);font-weight:var(--fw-semibold);margin:0 0 var(--sp-6)}
.tbf-step > p.tbf-intro{color:var(--fg-2);margin:0 0 var(--sp-8);max-width:62ch}
.tbf-group{border:0;margin:0 0 var(--sp-8);padding:0}
.tbf-group:last-of-type{margin-bottom:0}
.tbf-group legend{font-size:var(--fs-2xs);font-weight:var(--fw-semibold);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--fg-3);padding:0 0 var(--sp-3);margin-bottom:var(--sp-5);border-bottom:1px solid var(--rule);width:100%}
.tbf-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-5) var(--sp-6)}
.tbf-row + .tbf-row{margin-top:var(--sp-5)}
.tbf-row.one{grid-template-columns:1fr}
.tbf-row.three{grid-template-columns:1fr 1fr 1fr}
.tbf-field label{display:block;font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--fg);margin-bottom:6px}
.tbf-field label .req{color:var(--accent);margin-left:2px}
.tbf-field label .opt{color:var(--fg-3);font-weight:var(--fw-regular)}
.tbf-field .hint{font-size:var(--fs-xs);color:var(--fg-3);margin-top:6px}
.tbf input,.tbf select,.tbf textarea{width:100%;font:inherit;font-size:var(--fs-md);color:var(--fg);background:var(--bg);border:1px solid var(--rule-strong);border-radius:var(--r-sm);padding:11px 12px;min-height:46px;transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}
.tbf textarea{min-height:112px;resize:vertical;line-height:var(--lh-normal)}
.tbf select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--fg-3) 50%),linear-gradient(135deg,var(--fg-3) 50%,transparent 50%);background-position:calc(100% - 18px) 50%,calc(100% - 13px) 50%;background-size:5px 5px;background-repeat:no-repeat;padding-right:36px}
.tbf input::placeholder,.tbf textarea::placeholder{color:var(--n-400)}
.tbf input:hover,.tbf select:hover,.tbf textarea:hover{border-color:var(--rule-emphatic)}
.tbf input:focus,.tbf select:focus,.tbf textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--info-bg)}
.tbf .is-invalid{border-color:var(--bad) !important;box-shadow:0 0 0 3px var(--bad-bg) !important}
.tbf-field .err{display:none;font-size:var(--fs-xs);color:var(--bad);margin-top:6px}
.tbf-field.has-err .err{display:block}
.tbf-affix{position:relative}
.tbf-affix span{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:var(--fg-3);font-size:var(--fs-sm);pointer-events:none}

/* Instrument chooser */
.tbf-choices{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3)}
.tbf-choice{position:relative}
.tbf-choice input{position:absolute;opacity:0;inset:0;min-height:0;cursor:pointer}
.tbf-choice span{display:block;height:100%;border:1px solid var(--rule-strong);border-radius:var(--r-md);padding:var(--sp-4);font-size:var(--fs-sm);color:var(--fg-2);line-height:var(--lh-snug);transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease)}
.tbf-choice span b{display:block;color:var(--fg);font-weight:var(--fw-semibold);font-size:var(--fs-md);margin-bottom:4px}
.tbf-choice input:hover + span{border-color:var(--rule-emphatic)}
.tbf-choice input:checked + span{border-color:var(--accent);background:var(--info-bg);box-shadow:inset 0 0 0 1px var(--accent)}
.tbf-choice input:focus-visible + span{outline:var(--focus-outline);outline-offset:var(--focus-offset)}
.tbf-terms{margin-top:var(--sp-6);padding:var(--sp-6);background:var(--bg-sunk);border:1px solid var(--rule);border-radius:var(--r-md)}
.tbf-terms h3{font-size:var(--fs-sm);font-weight:var(--fw-semibold);margin:0 0 var(--sp-5);color:var(--fg)}

/* Investor form: classification list, multi-select pills, declarations */
.tbf-choices.list{grid-template-columns:1fr}
.tbf-label{display:block;font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--fg);margin-bottom:var(--sp-3)}
.tbf-group > .tbf-field + .tbf-field{margin-top:var(--sp-6)}
.tbf-group > .tbf-field + .tbf-row{margin-top:var(--sp-6)}
.tbf-group legend .opt{text-transform:none;letter-spacing:0;font-weight:var(--fw-regular)}
.tbf-pills{display:flex;flex-wrap:wrap;gap:var(--sp-2)}
.tbf-pills + .tbf-pills{margin-top:var(--sp-3)}
.tbf-pill{position:relative}
.tbf-pill input{position:absolute;opacity:0;inset:0;min-height:0;margin:0;cursor:pointer}
.tbf-pill span{display:inline-block;border:1px solid var(--rule-strong);border-radius:var(--r-pill);padding:7px 14px;font-size:var(--fs-sm);color:var(--fg-2);transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease)}
.tbf-pill input:hover + span{border-color:var(--rule-emphatic)}
.tbf-pill input:checked + span{border-color:var(--accent);background:var(--info-bg);color:var(--fg);box-shadow:inset 0 0 0 1px var(--accent)}
.tbf-pill input:focus-visible + span{outline:var(--focus-outline);outline-offset:var(--focus-offset)}
.tbf-check.tbf-decl{margin-top:0;margin-bottom:var(--sp-3);padding:var(--sp-4);border:1px solid var(--rule);border-radius:var(--r-md);background:var(--bg-sunk);line-height:var(--lh-snug);cursor:pointer}
.tbf-decl b{color:var(--fg);font-weight:var(--fw-semibold)}
.tbf-decl:has(input:checked){border-color:var(--accent)}
.tbf-decl.has-err{border-color:var(--bad)}
#tbf-wall{margin:var(--sp-4) 0 0}
.tbf-status{display:inline-block;vertical-align:2px;margin-left:var(--sp-2);font-style:normal;font-size:var(--fs-micro);font-weight:var(--fw-semibold);letter-spacing:var(--ls-label);text-transform:uppercase;border-radius:var(--r-pill);padding:2px 8px;background:var(--info-bg);color:var(--accent)}
.tbf-status.soon{background:var(--warn-bg);color:var(--warn)}
.tbf-choice input:disabled{cursor:not-allowed}
.tbf-choice input:disabled + span{opacity:.45}
.tbf-note{margin:0 0 var(--sp-4);padding:var(--sp-4);border-radius:var(--r-sm);background:var(--info-bg);color:var(--fg);font-size:var(--fs-sm);line-height:var(--lh-snug)}
.tbf-step > div[data-intent]{margin-top:var(--sp-8)}
.tbf-group + .tbf-review{margin-top:var(--sp-6)}

/* Review */
.tbf-review{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-4) var(--sp-6);margin:0 0 var(--sp-8);padding:var(--sp-6);background:var(--bg-sunk);border:1px solid var(--rule);border-radius:var(--r-md)}
.tbf-review dt{font-size:var(--fs-2xs);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--fg-3);margin-bottom:2px}
.tbf-review dd{margin:0;font-size:var(--fs-sm);color:var(--fg);overflow-wrap:anywhere}
.tbf-check{display:flex;gap:var(--sp-3);align-items:flex-start;font-size:var(--fs-sm);color:var(--fg-2);margin-top:var(--sp-6)}
.tbf-check input{width:18px;height:18px;min-height:0;margin:2px 0 0;padding:0;flex:none;accent-color:var(--accent)}

/* Nav */
.tbf-nav{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-4);padding:var(--sp-6) var(--sp-10);border-top:1px solid var(--rule);background:var(--bg-rail);border-radius:0 0 var(--r-lg) var(--r-lg)}
.tbf-nav .count{font-size:var(--fs-xs);color:var(--fg-3)}
.tbf-btn{font:inherit;font-size:var(--fs-sm);font-weight:var(--fw-semibold);border-radius:var(--r-sm);padding:12px 22px;min-height:46px;cursor:pointer;border:1px solid transparent;transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease)}
.tbf-btn.primary{background:var(--green);color:var(--on-green)}
.tbf-btn.primary:hover{background:#083d36}
.tbf-btn.ghost{background:transparent;color:var(--fg);border-color:var(--rule-strong)}
.tbf-btn.ghost:hover{border-color:var(--rule-emphatic)}
.tbf-btn[disabled]{opacity:.6;cursor:progress}
.tbf-alert{margin:0 var(--sp-10) var(--sp-6);padding:var(--sp-4);border-radius:var(--r-sm);background:var(--bad-bg);color:var(--bad);font-size:var(--fs-sm)}

/* ── Aside ───────────────────────────────────────────────────────── */
.tbf-aside{position:sticky;top:var(--sp-6);display:grid;gap:var(--sp-5)}
.tbf-panel{border:1px solid var(--rule);border-radius:var(--r-lg);background:var(--bg);padding:var(--sp-6)}
.tbf-panel.dark{background:var(--ground-navy);border-color:var(--ground-navy);color:var(--on-dark-1)}
.tbf-panel h3{font-size:var(--fs-sm);font-weight:var(--fw-semibold);margin:0 0 var(--sp-4)}
.tbf-panel.dark h3{margin-bottom:var(--sp-1)}
.tbf-panel .sub{font-size:var(--fs-xs);color:var(--fg-3);margin:0 0 var(--sp-5)}
.tbf-panel.dark .sub{color:var(--on-dark-3)}
.tbf-roster{margin:0;display:grid;gap:0}
.tbf-roster div{display:grid;grid-template-columns:1fr auto;gap:var(--sp-3);padding:10px 0;border-top:1px solid var(--on-dark-rule);font-size:var(--fs-xs)}
.tbf-roster dt{color:var(--on-dark-3)}
.tbf-roster dd{margin:0;color:var(--on-dark-1);font-weight:var(--fw-medium);text-align:right}
.tbf-roster dd.var{color:var(--blue-300)}
.tbf-panel .foot{font-size:var(--fs-2xs);color:var(--on-dark-3);margin:var(--sp-4) 0 0;line-height:var(--lh-normal)}
.tbf-next{list-style:none;margin:0;padding:0;counter-reset:n}
.tbf-next li{counter-increment:n;display:grid;grid-template-columns:24px 1fr;gap:var(--sp-3);padding:10px 0;border-top:1px solid var(--rule);font-size:var(--fs-xs);color:var(--fg-2)}
.tbf-next li:first-child{border-top:0;padding-top:0}
.tbf-next li::before{content:counter(n);width:22px;height:22px;border-radius:var(--r-xs);background:var(--bg-sunk);border:1px solid var(--rule);display:grid;place-items:center;font-weight:var(--fw-semibold);color:var(--accent);font-size:var(--fs-micro)}
.tbf-next b{display:block;color:var(--fg);font-weight:var(--fw-semibold)}

/* ── Success ─────────────────────────────────────────────────────── */
.tbf-done{padding:var(--sp-16) var(--sp-10);text-align:left}
.tbf-done .mark{width:44px;height:44px;border-radius:var(--r-sm);background:var(--ok-bg);color:var(--ok);display:grid;place-items:center;margin-bottom:var(--sp-6)}
.tbf-done h2{font-size:var(--fs-h2);letter-spacing:var(--ls-h2);margin:0 0 var(--sp-3);font-weight:var(--fw-semibold)}
.tbf-done p{color:var(--fg-2);max-width:56ch;margin:0 0 var(--sp-3)}
.tbf-done .ref{font-size:var(--fs-sm);color:var(--fg-3)}

/* ── Footer ──────────────────────────────────────────────────────── */
.tbf-foot{border-top:1px solid var(--rule);background:var(--bg-sunk);padding:var(--sp-10) 0;font-size:var(--fs-xs);color:var(--fg-3);line-height:var(--lh-relaxed)}
.tbf-foot p{max-width:90ch;margin:0 0 var(--sp-3)}
.tbf-foot .legal{color:var(--fg-3);margin:0}

/* ── Scale ───────────────────────────────────────────────────────── */
/* Henri, 12 Oct 2026: the page reads better at 80% on desktop. Phones keep
   100%, where the type is already at its minimum comfortable size. */
@media (min-width:1025px){ body.tbf{zoom:.8} }

/* ── Responsive ──────────────────────────────────────────────────── */
@media (max-width:1020px){
  .tbf-grid{grid-template-columns:1fr}
  .tbf-aside{position:static;grid-template-columns:1fr 1fr}
}
@media (max-width:680px){
  .tbf-wrap{padding:0 var(--sp-4)}
  .tbf-head{padding:var(--sp-5) 0}
  .tbf-bar nav a.hide-sm{display:none}
  .tbf-step{padding:var(--sp-6) var(--sp-5)}
  .tbf-nav{padding:var(--sp-5)}
  .tbf-alert{margin:0 var(--sp-5) var(--sp-5)}
  .tbf-row,.tbf-row.three,.tbf-choices,.tbf-review{grid-template-columns:1fr}
  .tbf-steps li{font-size:0}
  .tbf-steps li::before{font-size:var(--fs-micro)}
  .tbf-steps li.is-current{font-size:var(--fs-2xs)}
  .tbf-aside{grid-template-columns:1fr}
  .tbf-done{padding:var(--sp-10) var(--sp-5)}
}
@media (prefers-reduced-motion:reduce){.tbf *{transition:none !important}}

/* Point-of-collection privacy notice (GDPR Art. 13), under the step buttons on both forms (14 Oct 2026). */
.tbf-privacy{font-size:var(--fs-xs);color:var(--fg-3);line-height:var(--lh-relaxed);margin:var(--sp-4) var(--sp-10) var(--sp-6)}
.tbf-privacy a{color:inherit;text-decoration:underline}

/* Mobile and touch stress test (19 Oct 2026). Touch screens get 44 px targets in the bar and on the pills, and on a
   touch screen wide enough for the 80% desktop scale the fields are scaled back to 16 visual px, so iOS does not zoom
   into them (12.8 px before). */
@media (pointer:coarse){
  .tbf-bar a{display:inline-flex;align-items:center;min-height:var(--btn-h-md)}
  .tbf-pill span{display:inline-flex;align-items:center;min-height:var(--btn-h-md);padding-block:0}
}
@media (pointer:coarse) and (min-width:1025px){
  .tbf input,.tbf select,.tbf textarea{font-size:calc(var(--fs-md) / .8)}
}
