/*
 * Design system — presentation layer.
 *
 * Every value here comes from a --ds-* token emitted by PHP. There are no
 * literal colours, no literal type sizes, and no left/right properties: the
 * sheet is written with logical properties so right-to-left needs no mirrored
 * copy. Nothing in this file knows what the site is about.
 */

/* ------------------------------------------------------------ foundation */

*,
*::before,
*::after { box-sizing: border-box; }

/*
 * Base element styles are scoped `html body …` rather than bare `body` / `h1`.
 *
 * The weight is chosen deliberately, and it sits between two failure modes.
 *
 * Too light, and a plugin preflight reset — `h1,h2,h3{font-size:inherit}`,
 * `body{line-height:inherit}`, at element weight — flattens every heading and
 * line-height the system just computed, because such a reset can enqueue after
 * the theme. Three type selectors beat one, whatever the order.
 *
 * Too heavy, and the opposite breaks: a dark panel that sets its own colour and
 * writes `.panel h2 { color: inherit }` is DELIBERATE contextual styling, and
 * the design system must lose to it. `:root h2` would tie with that rule on
 * specificity and win on order, repainting white headings dark. Type selectors
 * carry no class weight, so `.panel h2` still wins.
 *
 * Element weight up, class weight zero. Resets lose; contexts win.
 */
html body {
  background: var(--ds-surface-base);
  /* The DERIVED ink for the page, not the declared text colour. They are the
     same value whenever the declared colour is readable on the page, and they
     differ exactly when it is not — which is what darkening only the page
     background does. */
  color: var(--ds-ink-on-base);
  font-family: var(--ds-font-body);
  font-size: var(--ds-step-0);
  font-weight: var(--ds-weight-body);
  line-height: var(--ds-leading-body);
  -webkit-font-smoothing: antialiased;
}

html body h1, html body h2, html body h3,
html body h4, html body h5, html body h6 {
  font-family: var(--ds-font-heading);
  font-weight: var(--ds-weight-heading);
  line-height: var(--ds-leading-heading);
  color: var(--ds-ink-on-base);
  text-wrap: balance;
  margin-block: 0 var(--ds-space-3);
}

html body h1 { font-size: var(--ds-step-5); font-family: var(--ds-font-display); line-height: var(--ds-leading-display); letter-spacing: var(--ds-tracking-display); }
html body h2 { font-size: var(--ds-step-4); }
html body h3 { font-size: var(--ds-step-3); }
html body h4 { font-size: var(--ds-step-2); }
html body h5 { font-size: var(--ds-step-1); }
html body h6 { font-size: var(--ds-step-0); text-transform: uppercase; letter-spacing: var(--ds-tracking-caps); color: var(--ds-text-muted); }

p, ul, ol, dl, table, pre, blockquote, figure {
  margin-block: 0 var(--ds-space-4);
}

/* Running text stays near a comfortable measure without a wrapper class. */
.entry-content > p,
.entry-content > ul,
.entry-content > ol { max-inline-size: var(--ds-content); }

small, .ds-caption { font-size: var(--ds-step-n1); color: var(--ds-text-muted); }
strong, b { font-weight: var(--ds-weight-strong); }

/*
 * Link COLOUR is deliberately not set here.
 *
 * theme.json sets it through `a:where(:not(.wp-element-button))`, which carries
 * zero specificity: links are accent-coloured by default, and any explicit rule
 * wins over it. That matters because re-colouring links for a context is normal
 * — a dark footer sets `color: white` on itself and uses `a { color: inherit }`
 * so its links follow. A base rule here would load last and repaint those links
 * the accent colour on a dark ground, which is how a footer ends up at 1.5:1.
 *
 * Only the underline treatment lives here, because nothing else expresses it.
 */
a { text-decoration-thickness: 1px; text-underline-offset: 0.16em; }

/* One visible focus treatment everywhere, including where a theme removed it. */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 2px solid var(--ds-focus);
  outline-offset: 2px;
  border-radius: var(--ds-radius-sm);
}

hr {
  border: 0;
  border-block-start: 1px solid var(--ds-border);
  margin-block: var(--ds-space-8);
}

img, video, svg, iframe { max-inline-size: 100%; height: auto; }

/* --------------------------------------------------------------- measure */

.ds-container,
.ds-section > .ds-inner {
  inline-size: 100%;
  max-inline-size: var(--ds-site-max);
  margin-inline: auto;
  padding-inline: var(--ds-container-x);
}

.ds-section { padding-block: var(--ds-section-y); }
.ds-narrow  { max-inline-size: var(--ds-narrow); margin-inline: auto; }

.ds-grid {
  display: grid;
  gap: var(--ds-gap-grid);
  grid-template-columns: repeat(auto-fill, minmax(min(260px, 100%), 1fr));
}

.ds-stack { display: flex; flex-direction: column; gap: var(--ds-gap-card); }
.ds-row   { display: flex; flex-wrap: wrap; gap: var(--ds-space-3); align-items: center; }

/* ---------------------------------------------------------------- surfaces */

.ds-surface-raised { background: var(--ds-surface-raised); color: var(--ds-ink-on-raised); }
.ds-surface-anchor { background: var(--ds-surface-anchor); color: var(--ds-ink-on-anchor); }
.ds-surface-anchor a { color: var(--ds-ink-on-anchor); }

/* ---------------------------------------------------------------- buttons */

.ds-button,
.wp-block-button__link,
button.ds-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--ds-space-2);
  padding: var(--ds-button-padding);
  border: 1px solid transparent;
  border-radius: var(--ds-button-radius);
  background: var(--ds-brand-accent);
  color: var(--ds-text-on-accent);
  font: inherit;
  font-weight: var(--ds-button-weight);
  line-height: 1.2;
  text-decoration: none;
  cursor: pointer;
  transition: background-color .15s ease, border-color .15s ease;
}

.ds-button:hover,
.wp-block-button__link:hover { background: var(--ds-link-hover); color: var(--ds-text-on-accent); }

.ds-button--secondary {
  background: transparent;
  border-color: var(--ds-brand-accent);
  color: var(--ds-link);
}
.ds-button--secondary:hover { background: var(--ds-surface-card); color: var(--ds-link-hover); }

.ds-button--ghost {
  background: transparent;
  border-color: transparent;
  color: var(--ds-link);
  padding-inline: var(--ds-space-2);
}
.ds-button--ghost:hover { background: var(--ds-surface-card); }

.ds-button[disabled],
.ds-button[aria-disabled="true"] { opacity: .55; cursor: not-allowed; }

/* ------------------------------------------------------------------ cards */

.ds-card {
  background: var(--ds-surface-card);
  color: var(--ds-ink-on-card);
  border-radius: var(--ds-radius-md);
  padding: var(--ds-card-padding);
  border: 1px solid transparent;
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}

body:not(.ds-cards-flat) .ds-card { box-shadow: var(--ds-card-shadow); }
/* "Outlined" describes the edge, not the fill: the card keeps its own surface
   and trades the shadow for a border. Forcing the page colour here made an
   outlined card indistinguishable from the page it sits on. */
.ds-cards-outlined .ds-card { box-shadow: none; border-color: var(--ds-border); }
.ds-cards-flat .ds-card     { box-shadow: none; border-color: transparent; }

.ds-cards-hover-lift .ds-card:hover   { transform: translateY(-2px); box-shadow: var(--ds-shadow-md); }
.ds-cards-hover-border .ds-card:hover { border-color: var(--ds-brand-accent); }

/* ------------------------------------------------------------------ forms */

/*
 * Field exclusions go inside :where() so they cost nothing.
 *
 * Written plainly, `input:not([type="checkbox"])…` carries three attribute
 * selectors' worth of weight — heavier than most site CSS — and a form styled
 * for a dark panel loses to it, ending up with the page's own background and
 * ink. Scoped this way the rule weighs the same as the headings above: it beats
 * an element-level reset and loses to a context that means it.
 */
html body input:where(:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"])),
html body select,
html body textarea {
  inline-size: 100%;
  padding: var(--ds-space-2) var(--ds-space-3);
  background: var(--ds-field-bg);
  color: var(--ds-field-text);
  border: 1px solid var(--ds-field-border);
  border-radius: var(--ds-field-radius);
  font: inherit;
  line-height: var(--ds-leading-body);
}

html body input::placeholder, html body textarea::placeholder { color: var(--ds-field-placeholder); opacity: 1; }


/* A disabled field is dimmer, but its border stays a border. */
html body input:disabled, html body select:disabled, html body textarea:disabled {
  color: var(--ds-field-placeholder);
  border-color: var(--ds-field-border);
  opacity: .7;
}

html body input:focus, html body select:focus, html body textarea:focus {
  /* The border is the field's own boundary and takes the field's focus role;
     the outline is the focus affordance and stays on --ds-focus. Before 1.1.1
     both came from --ds-focus, so a field had no border role of its own. */
  border-color: var(--ds-field-border-focus);
  outline: 2px solid var(--ds-focus);
  outline-offset: 1px;
}

.ds-forms-underline input,
.ds-forms-underline select,
.ds-forms-underline textarea {
  border-radius: 0;
  border-inline: 0;
  border-block-start: 0;
  background: transparent;
}

label { display: block; font-weight: var(--ds-weight-strong); margin-block-end: var(--ds-space-1); }

/* Message text uses the derived state ink; the raw state colour stays for
   borders and bars, where it signals without having to be read. */
.ds-field-error   { color: var(--ds-error-ink); font-size: var(--ds-step-n1); }
.ds-field-success { color: var(--ds-success-ink); font-size: var(--ds-step-n1); }

fieldset { border: 1px solid var(--ds-border); border-radius: var(--ds-radius-md); padding: var(--ds-space-4); }
legend   { padding-inline: var(--ds-space-2); font-weight: var(--ds-weight-strong); }

/* ------------------------------------------------------- long-form pieces */

blockquote {
  margin-inline: 0;
  padding: var(--ds-space-4);
  border: 1px solid var(--ds-border);
  background: var(--ds-surface-card);
  color: var(--ds-text-muted);
  font-size: var(--ds-step-1);
}

code, kbd, samp, pre {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 0.92em;
}
code { background: var(--ds-surface-card); padding: 0.15em 0.4em; border-radius: var(--ds-radius-sm); }
pre  { background: var(--ds-surface-card); padding: var(--ds-space-4); border-radius: var(--ds-radius-md); overflow-x: auto; }
pre code { background: none; padding: 0; }

table { inline-size: 100%; border-collapse: collapse; }
th, td { padding: var(--ds-space-2) var(--ds-space-3); border-block-end: 1px solid var(--ds-border); text-align: start; }
th { font-weight: var(--ds-weight-strong); }
td.ds-num, th.ds-num { font-variant-numeric: tabular-nums; text-align: end; }

.ds-table-scroll { overflow-x: auto; }

/* Notices carry meaning in shape as well as colour. */
.ds-note {
  padding: var(--ds-space-3) var(--ds-space-4);
  border: 1px solid var(--ds-border);
  background: var(--ds-surface-card);
  border-radius: var(--ds-radius-sm);
}
.ds-note--success { background: color-mix(in srgb, var(--ds-success) 8%, var(--ds-surface-card)); }
.ds-note--warning { background: color-mix(in srgb, var(--ds-warning) 8%, var(--ds-surface-card)); }
.ds-note--error   { background: color-mix(in srgb, var(--ds-error) 8%, var(--ds-surface-card)); }

/* -------------------------------------------------------------- direction */

/* Latin runs inside Arabic text (a product code, a URL) keep their own order. */
.ds-rtl :where(code, kbd, samp, .ds-ltr-run) { unicode-bidi: isolate; direction: ltr; }
.ds-ltr :where(.ds-rtl-run) { unicode-bidi: isolate; direction: rtl; }

/* Digits in tables stay upright and aligned regardless of direction. */
.ds-rtl td.ds-num, .ds-rtl th.ds-num { direction: ltr; unicode-bidi: isolate; }

/* --------------------------------------------------------- accessibility */

.screen-reader-text {
  position: absolute;
  inline-size: 1px; block-size: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip-path: inset(50%);
  white-space: nowrap; border: 0;
}

.ds-skip-link:focus {
  position: fixed;
  inset-block-start: var(--ds-space-2);
  inset-inline-start: var(--ds-space-2);
  z-index: 100000;
  padding: var(--ds-space-2) var(--ds-space-4);
  background: var(--ds-surface-anchor);
  color: var(--ds-ink-on-anchor);
  border-radius: var(--ds-radius-sm);
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
    scroll-behavior: auto !important;
  }
}

/* ------------------------------------------------------------------ print */

@media print {
  body { background: #fff; color: #000; font-size: 11pt; }
  .ds-no-print, nav, .ct-header, .ct-footer, form, .ds-button { display: none !important; }
  a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 9pt; word-break: break-all; }
  h1, h2, h3 { break-after: avoid-page; }
  table, figure, blockquote, pre { break-inside: avoid; }
}

/* --------------------------------------------------------- Tbian pages */

.tbian-page {
  direction: rtl;
  color: var(--ds-ink-on-base);
}

body.wp-custom-logo .site-title-container {
  display: none;
}

.ct-header [data-row] {
  border-block-end: 1px solid var(--ds-border);
}

.ct-header .site-logo-container img {
  display: block;
  inline-size: clamp(128px, 11vw, 170px);
  max-inline-size: 46vw;
  max-block-size: 68px;
  object-fit: contain;
}

.ct-header .ct-menu-link {
  font-weight: 750;
}

.ct-header .menu-item-type-custom > .ct-menu-link {
  color: var(--ds-brand-accent);
}

.tbian-front-page .entry-content,
.tbian-front-page__article > * {
  margin-block-start: 0;
}

.tbian-page :where(p, li) {
  font-size: var(--ds-step-0);
  line-height: var(--ds-leading-body);
}

.tbian-hero {
  position: relative;
  overflow: hidden;
  min-block-size: min(620px, calc(100dvh - 86px));
  padding-block: clamp(28px, 4.5vw, 54px);
  border-block-end: 1px solid var(--ds-border);
  background:
    linear-gradient(180deg, var(--ds-surface-base) 0%, var(--ds-surface-raised) 100%);
}

.tbian-hero::before {
  content: "";
  position: absolute;
  inset-block: 0;
  inset-inline-end: 0;
  inline-size: min(35vw, 420px);
  background: var(--ds-brand-accent);
  opacity: .08;
  clip-path: polygon(18% 0, 100% 0, 100% 100%, 0 100%);
  pointer-events: none;
}

.tbian-kicker {
  display: inline-flex;
  align-items: center;
  gap: var(--ds-space-2);
  margin-block-end: var(--ds-space-5);
  color: var(--ds-brand-accent);
  font-size: var(--ds-step-n1);
  font-weight: var(--ds-weight-strong);
  letter-spacing: var(--ds-tracking-caps);
}

.tbian-kicker::before {
  content: "";
  inline-size: var(--ds-space-3);
  block-size: var(--ds-space-3);
  background: currentColor;
}

.tbian-hero-grid {
  position: relative;
  z-index: 1;
  display: grid !important;
  grid-template-columns: minmax(0, 1.05fr) minmax(min(100%, 390px), .72fr);
  gap: clamp(28px, 5vw, 72px);
  align-items: center;
  inline-size: 100%;
  max-inline-size: 100%;
}

.tbian-hero-grid > .wp-block-column {
  min-inline-size: 0;
}

.tbian-hero-logo {
  margin: 0 0 var(--ds-space-5);
}

.tbian-hero-logo img {
  display: block;
  inline-size: min(310px, 72vw);
  border-radius: var(--ds-radius-lg);
}

.tbian-title {
  max-inline-size: 15ch;
  margin-block-end: var(--ds-space-4);
  font-size: clamp(34px, 3.7vw, 48px);
  line-height: 1.22;
  letter-spacing: var(--ds-tracking-display);
  overflow-wrap: anywhere;
}

.tbian-lead {
  max-inline-size: 62ch;
  color: var(--ds-text-muted);
  font-size: clamp(17px, 1.25vw, 20px);
  line-height: 1.9;
}

.tbian-hero-aside {
  position: relative;
  display: grid;
  gap: var(--ds-space-4);
  justify-self: start;
  max-inline-size: 380px;
  padding: clamp(20px, 2.5vw, 30px);
  background: var(--ds-surface-card);
  border: 1px solid var(--ds-border);
  border-radius: var(--ds-radius-lg);
}

.tbian-hero-aside::after {
  content: "";
  position: absolute;
  inset-block-start: var(--ds-space-4);
  inset-inline-start: var(--ds-space-4);
  inline-size: 42px;
  block-size: 6px;
  background: var(--ds-brand-accent);
}

.tbian-hero-aside h2 {
  margin: 0;
  font-size: clamp(26px, 2.6vw, 34px);
}

.tbian-hero-aside p {
  color: var(--ds-text-muted);
}

.tbian-hero-mark {
  margin: 0;
}

.tbian-hero-mark img {
  display: block;
  inline-size: min(92px, 30vw);
}

.tbian-hero-notes {
  display: grid;
  gap: 1px;
  margin-block-start: var(--ds-space-4);
  background: var(--ds-border);
  border: 1px solid var(--ds-border);
}

.tbian-hero-notes p {
  margin: 0;
  padding: var(--ds-space-3) var(--ds-space-4);
  background: var(--ds-surface-base);
  color: var(--ds-ink-on-base);
  font-weight: var(--ds-weight-strong);
}

.tbian-panel {
  background: var(--ds-surface-card);
  color: var(--ds-ink-on-card);
  border: 1px solid var(--ds-border);
  border-radius: var(--ds-radius-md);
  padding: calc(var(--ds-card-padding) + var(--ds-space-4));
}

.tbian-panel strong {
  display: block;
  margin-block-end: var(--ds-space-2);
  color: var(--ds-ink-on-card);
  font-size: var(--ds-step-2);
}

.tbian-stat-grid,
.tbian-card-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--ds-gap-grid);
}

.tbian-stat {
  border-block-start: var(--ds-radius-sm) solid var(--ds-brand-accent);
  padding-block-start: var(--ds-space-4);
}

.tbian-stat b {
  display: block;
  margin-block-end: var(--ds-space-1);
  font-size: var(--ds-step-4);
  line-height: 1;
}

.tbian-section {
  padding-block: var(--ds-section-y);
}

.tbian-page-section {
  padding-block: var(--ds-section-y);
}

.tbian-front-page .tbian-page-section {
  border-block-end: 1px solid var(--ds-border);
}

.tbian-section-head {
  display: flex;
  justify-content: space-between;
  gap: var(--ds-gap-card);
  align-items: end;
  margin-block-end: var(--ds-space-8);
  padding-block-end: var(--ds-space-4);
  border-block-end: 1px solid var(--ds-border);
}

.tbian-section-head h2 {
  max-inline-size: 18ch;
  margin: 0;
}

.tbian-index {
  color: var(--ds-brand-accent);
  font-weight: var(--ds-weight-strong);
  font-variant-numeric: tabular-nums;
}

.tbian-card {
  min-block-size: 100%;
  background: var(--ds-surface-card);
  color: var(--ds-ink-on-card);
  border-block-start: 4px solid var(--ds-brand-accent);
  border-inline: 1px solid var(--ds-border);
  border-block-end: 1px solid var(--ds-border);
  border-radius: var(--ds-radius-lg);
  padding: calc(var(--ds-card-padding) + var(--ds-space-2));
}

.tbian-card h3 {
  margin-block-end: var(--ds-space-3);
  font-size: var(--ds-step-2);
}

.tbian-card p {
  color: var(--ds-text-muted);
}

.tbian-band {
  margin-inline: calc(50% - 50vw);
  padding-block: var(--ds-section-y);
  background: var(--ds-surface-anchor);
  color: var(--ds-ink-on-anchor);
}

.tbian-band h2,
.tbian-band p {
  color: inherit;
}

.tbian-band .tbian-wrap {
  inline-size: 100%;
  max-inline-size: var(--ds-site-max);
  margin-inline: auto;
  padding-inline: var(--ds-container-x);
}

.tbian-timeline {
  display: grid;
  gap: var(--ds-radius-sm);
  background: var(--ds-border);
  border: 1px solid var(--ds-border);
}

.tbian-step {
  display: grid;
  grid-template-columns: minmax(var(--ds-space-16), max-content) minmax(0, 1fr);
  gap: var(--ds-space-5);
  background: var(--ds-surface-base);
  padding: var(--ds-space-6);
}

.tbian-step b {
  color: var(--ds-brand-accent);
  font-variant-numeric: tabular-nums;
}

.tbian-query :where(.wp-block-post-template) {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--ds-gap-grid);
  padding: 0;
}

.tbian-query :where(.wp-block-post) {
  margin: 0;
  padding: var(--ds-card-padding);
  background: var(--ds-surface-card);
  border: 1px solid var(--ds-border);
  border-radius: var(--ds-radius-md);
}

.tbian-query :where(.wp-block-post-title) {
  font-size: var(--ds-step-1);
  line-height: 1.45;
}

.tbian-contact-grid {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  gap: var(--ds-gap-grid);
  align-items: start;
}

.tbian-contact-list {
  display: grid;
  gap: var(--ds-space-4);
  padding: 0;
  margin: 0;
  list-style: none;
}

.tbian-contact-list li {
  padding: var(--ds-space-4);
  border: 1px solid var(--ds-border);
  border-radius: var(--ds-radius-md);
  background: var(--ds-surface-card);
}

.tbian-contact-list span {
  display: block;
  margin-block-end: var(--ds-space-1);
  color: var(--ds-text-muted);
  font-size: var(--ds-step-n1);
}

@media (max-width: 900px) {
  .ct-header .site-logo-container img {
    inline-size: 96px;
    max-inline-size: 30vw;
    max-block-size: 50px;
  }

  .ct-header .site-branding {
    transform: translateX(-28px);
  }

  .tbian-hero.wp-block-group {
    padding-inline: var(--ds-container-x);
  }

  .tbian-hero::before {
    inline-size: 44vw;
    opacity: .07;
  }

  .wp-block-columns.tbian-hero-grid,
  .tbian-contact-grid,
  .tbian-stat-grid,
  .tbian-card-grid,
  .tbian-query :where(.wp-block-post-template) {
    display: grid !important;
    grid-template-columns: 1fr;
  }

  .wp-block-columns.tbian-hero-grid {
    max-inline-size: 640px !important;
    margin-inline: auto !important;
    padding-inline: 0 !important;
  }

  .wp-block-columns.tbian-hero-grid > .wp-block-column {
    flex-basis: auto !important;
    inline-size: 100% !important;
    max-inline-size: 100% !important;
    margin-inline: 0 !important;
  }

  .tbian-title {
    max-inline-size: 8.5ch;
    font-size: clamp(32px, 9.5vw, 40px);
    margin-inline: auto;
    text-align: center;
  }

  .tbian-hero-logo img {
    inline-size: min(250px, 100%);
    margin-inline: auto;
  }

  .tbian-kicker {
    display: block;
    max-inline-size: 26ch;
    margin-inline: auto;
    text-align: center;
    line-height: 1.55;
  }

  .tbian-kicker::before {
    display: none;
  }

  .tbian-lead {
    max-inline-size: 26ch;
    margin-inline: auto;
    text-align: center;
    font-size: 17px;
  }

  .tbian-hero :where(.wp-block-buttons, .ds-row) {
    display: grid !important;
    grid-template-columns: 1fr;
    align-items: stretch;
    max-inline-size: 280px;
    margin-inline: auto;
  }

  .tbian-hero .wp-block-button,
  .tbian-hero .wp-block-button__link {
    inline-size: 100%;
  }

  .tbian-hero-aside {
    max-inline-size: 100%;
    margin-block-start: var(--ds-space-8);
    margin-inline: auto;
  }

  .tbian-section-head {
    align-items: start;
    flex-direction: column;
  }

  .tbian-step {
    grid-template-columns: 1fr;
  }
}

/* --------------------------------------------------- Tbian templates */

.tbian-meta-line {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ds-space-2);
  align-items: center;
  color: var(--ds-text-muted);
  font-size: var(--ds-step-n1);
}

.tbian-meta-line a {
  color: var(--ds-link);
  font-weight: var(--ds-weight-strong);
  text-decoration: none;
}

.tbian-single-hero,
.tbian-archive-hero {
  padding-block: var(--ds-section-y);
  border-block-end: 1px solid var(--ds-border);
  background:
    linear-gradient(rgba(252,251,247,.9), rgba(252,251,247,.95)),
    url("/wp-content/themes/abstract-blocksy-child/assets/img/tbian-section-paper.webp") center / cover no-repeat;
}

.tbian-single-title,
.tbian-archive-title {
  max-inline-size: 18ch;
  margin-block: var(--ds-space-4);
  font-family: var(--ds-font-display);
  font-size: var(--ds-step-5);
  line-height: var(--ds-leading-display);
  letter-spacing: var(--ds-tracking-display);
}

.tbian-single-dek {
  max-inline-size: var(--ds-content);
  color: var(--ds-text-muted);
  font-size: var(--ds-step-1);
}

.tbian-single-media {
  margin-block: var(--ds-space-8);
}

.tbian-single-media img {
  display: block;
  inline-size: 100%;
  max-block-size: 620px;
  object-fit: cover;
  border-radius: var(--ds-radius-md);
  border: 1px solid var(--ds-border);
}

.tbian-single-media figcaption {
  margin-block-start: var(--ds-space-2);
  color: var(--ds-text-muted);
  font-size: var(--ds-step-n1);
}

.tbian-single-layout {
  display: grid;
  grid-template-columns: minmax(0, var(--ds-content)) minmax(min(100%, var(--ds-sidebar)), 1fr);
  gap: var(--ds-gap-grid);
  align-items: start;
  padding-block: var(--ds-section-y);
}

.tbian-single-content {
  min-inline-size: 0;
}

.tbian-single-content > * {
  max-inline-size: var(--ds-content);
}

.tbian-single-content > :where(.alignwide, .alignfull) {
  max-inline-size: 100%;
}

.tbian-single-content :where(p, li) {
  font-size: var(--ds-step-0);
  line-height: var(--ds-leading-body);
}

.tbian-single-content :where(h2, h3, h4) {
  margin-block-start: var(--ds-space-8);
}

.tbian-post-nav {
  display: grid;
  gap: var(--ds-space-3);
}

.tbian-post-nav__item {
  padding: var(--ds-space-4);
  border: 1px solid var(--ds-border);
  border-radius: var(--ds-radius-md);
  background: var(--ds-surface-card);
}

.tbian-post-nav__item span {
  display: block;
  margin-block-end: var(--ds-space-1);
  color: var(--ds-text-muted);
  font-size: var(--ds-step-n1);
}

.tbian-post-nav__item a {
  color: var(--ds-ink-on-card);
  font-weight: var(--ds-weight-strong);
  text-decoration: none;
}

.tbian-tags {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ds-space-2);
  margin-block-start: var(--ds-space-8);
  padding-block-start: var(--ds-space-5);
  border-block-start: 1px solid var(--ds-border);
}

.tbian-tags a {
  padding: var(--ds-space-1) var(--ds-space-3);
  border: 1px solid var(--ds-border);
  border-radius: var(--ds-radius-pill);
  color: var(--ds-link);
  text-decoration: none;
  font-size: var(--ds-step-n1);
}

.tbian-archive-hero__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(min(100%, var(--ds-sidebar)), .42fr);
  gap: var(--ds-gap-grid);
  align-items: end;
}

.tbian-post-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--ds-gap-grid);
}

.tbian-post-card {
  display: grid;
  min-inline-size: 0;
  background: var(--ds-surface-card);
  color: var(--ds-ink-on-card);
  border: 1px solid var(--ds-border);
  border-radius: var(--ds-radius-lg);
  overflow: hidden;
  transition: border-color .18s ease, transform .18s ease;
}

.tbian-post-card:hover {
  border-color: var(--ds-brand-accent);
  transform: translateY(-2px);
}

.tbian-post-card--featured {
  grid-column: span 2;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1fr);
}

.tbian-post-card__media {
  display: block;
  min-block-size: 100%;
  background: var(--ds-surface-raised);
}

.tbian-post-card__media img {
  display: block;
  inline-size: 100%;
  block-size: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
}

.tbian-post-card__body {
  display: flex;
  flex-direction: column;
  gap: var(--ds-space-3);
  padding: calc(var(--ds-card-padding) + var(--ds-space-2));
}

.tbian-post-card__title {
  margin: 0;
  font-size: clamp(22px, 2.1vw, 30px);
  line-height: var(--ds-leading-heading);
}

.tbian-post-card__title a {
  color: var(--ds-ink-on-card);
  text-decoration: none;
}

.tbian-post-card__title a:hover {
  color: var(--ds-link-hover);
}

.tbian-post-card__excerpt {
  color: var(--ds-text-muted);
}

.tbian-post-card__excerpt p {
  margin: 0;
}

.tbian-pagination {
  margin-block-start: var(--ds-space-10);
}

.tbian-pagination .nav-links {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ds-space-2);
}

.tbian-pagination :where(a, span) {
  display: inline-flex;
  min-inline-size: var(--ds-space-10);
  min-block-size: var(--ds-space-10);
  align-items: center;
  justify-content: center;
  padding-inline: var(--ds-space-3);
  border: 1px solid var(--ds-border);
  border-radius: var(--ds-radius-sm);
  text-decoration: none;
}

.tbian-pagination .current {
  background: var(--ds-brand-accent);
  color: var(--ds-text-on-accent);
  border-color: var(--ds-brand-accent);
}

.tbian-empty {
  max-inline-size: var(--ds-content);
  padding: var(--ds-card-padding);
  background: var(--ds-surface-card);
  border: 1px solid var(--ds-border);
  border-radius: var(--ds-radius-md);
}

.tbian-404 .search-form,
.tbian-empty .search-form {
  display: grid;
  gap: var(--ds-space-3);
}

.tbian-page-hero {
  padding-block: clamp(44px, 7vw, 86px) var(--ds-space-8);
  border-block-end: 1px solid var(--ds-border);
  background:
    linear-gradient(rgba(252,251,247,.88), rgba(252,251,247,.92)),
    url("/wp-content/themes/abstract-blocksy-child/assets/img/tbian-section-paper.webp") center / cover no-repeat;
}

.tbian-page-title {
  margin: 0;
  max-inline-size: var(--ds-content);
  font-size: var(--ds-step-5);
  line-height: var(--ds-leading-display);
}

.tbian-block-content {
  padding-block: var(--ds-space-10);
}

.tbian-block-content > * + * {
  margin-block-start: var(--ds-space-8);
}

.tbian-footer-newsletter {
  padding-block: var(--ds-space-10);
  border-block-start: 1px solid var(--ds-border);
  background: var(--ds-surface-anchor);
  color: var(--ds-ink-on-anchor);
}

.tbian-footer-newsletter :where(h2, p, label, span) {
  color: inherit;
}

.tbian-footer-newsletter .tbian-newsletter {
  background: var(--ds-surface-card);
  color: var(--ds-ink-on-card);
}

.tbian-footer-newsletter__inner {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(min(100%, 460px), .58fr);
  gap: var(--ds-gap-grid);
  align-items: center;
}

.tbian-footer-newsletter h2 {
  margin: 0;
  font-size: var(--ds-step-4);
  line-height: var(--ds-leading-heading);
}

.tbian-footer-newsletter p {
  max-inline-size: var(--ds-content);
}

@media (max-width: 980px) {
  .tbian-archive-hero__inner,
  .tbian-footer-newsletter__inner,
  .tbian-post-card--featured {
    grid-template-columns: 1fr;
  }

  .tbian-post-grid {
    grid-template-columns: 1fr;
  }

  .tbian-post-card--featured {
    grid-column: auto;
  }
}

/* ------------------------------------------------ Tbian brand polish pass */

html body {
  font-feature-settings: "kern";
}

html body :where(h1, h2, h3, h4, h5, h6, p, a, button, input, select, textarea) {
  font-family: var(--ds-font-body);
}

html body :where(h1, h2, h3, .tbian-title, .tbian-single-title, .tbian-page-title) {
  font-family: var(--ds-font-display);
  letter-spacing: 0;
}

.tbian-hero {
  min-block-size: min(760px, calc(100dvh - 78px));
  padding-block: 0;
  background: var(--ds-surface-base);
}

.tbian-hero::before {
  display: none;
}

.wp-block-columns.tbian-hero-grid {
  display: grid !important;
  direction: ltr;
  grid-template-areas: "visual copy";
  grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
  gap: 0;
  max-inline-size: none !important;
  min-block-size: inherit;
  align-items: stretch;
}

.wp-block-columns.tbian-hero-grid > .wp-block-column {
  min-inline-size: 0;
}

.tbian-hero-copy {
  grid-area: copy;
  direction: rtl;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding-block: clamp(54px, 7vw, 104px);
  padding-inline: clamp(24px, 6vw, 96px);
}

.tbian-hero-copy .tbian-kicker {
  max-inline-size: 34ch;
  margin-block-end: clamp(18px, 2.4vw, 30px);
  color: var(--ds-brand-accent);
}

.tbian-hero-copy .tbian-title {
  max-inline-size: 13ch;
  margin-block-end: clamp(18px, 2.5vw, 34px);
  font-size: clamp(36px, 3.65vw, 54px);
  font-weight: 800;
  line-height: 1.22;
}

.tbian-hero-copy .tbian-lead {
  max-inline-size: 56ch;
  margin-block-end: clamp(22px, 3vw, 38px);
  color: var(--ds-text-muted);
  font-size: clamp(17px, 1.16vw, 20px);
  line-height: 1.92;
}

.tbian-hero-proof {
  display: flex;
  flex-wrap: wrap;
  gap: 1px;
  max-inline-size: 620px;
  margin-block: 0 clamp(24px, 3vw, 42px);
  background: var(--ds-border);
  border: 1px solid var(--ds-border);
}

.tbian-hero-proof p {
  flex: 1 1 150px;
  margin: 0;
  padding: var(--ds-space-3) var(--ds-space-4);
  background: var(--ds-surface-raised);
  color: var(--ds-ink-on-base);
  font-size: var(--ds-step-n1);
  font-weight: 800;
  text-align: center;
}

.tbian-hero-visual {
  grid-area: visual;
  direction: rtl;
  position: relative;
  min-block-size: inherit;
  background: var(--ds-surface-raised);
}

.tbian-hero-visual::before {
  content: none;
}

.tbian-hero-art {
  block-size: 100%;
  margin: 0;
}

.tbian-hero-art img {
  display: block;
  inline-size: 100%;
  block-size: 100%;
  min-block-size: min(760px, calc(100dvh - 78px));
  object-fit: cover;
  object-position: center center;
}

.tbian-hero .wp-block-buttons {
  gap: var(--ds-space-3);
}

.tbian-hero .wp-block-button__link {
  min-inline-size: 150px;
  padding-block: 15px;
}

.tbian-work-section {
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(rgba(252,251,247,.9), rgba(252,251,247,.94)),
    url("/wp-content/themes/abstract-blocksy-child/assets/img/tbian-section-paper.webp") center / cover no-repeat;
}

.tbian-front-page .tbian-page-section {
  position: relative;
  padding-block: clamp(58px, 8vw, 110px);
  padding-inline: var(--ds-container-x);
  background: var(--ds-surface-base);
}

.tbian-front-page .tbian-page-section > h2 {
  inline-size: 100%;
  max-inline-size: var(--ds-site-max);
  margin-inline: auto;
  margin-block-end: clamp(24px, 4vw, 46px);
  font-size: clamp(30px, 3vw, 42px);
  font-weight: 800;
  line-height: 1.28;
}

.tbian-newsletter-band {
  background:
    linear-gradient(rgba(32,47,55,.88), rgba(32,47,55,.9)),
    url("/wp-content/themes/abstract-blocksy-child/assets/img/tbian-section-paper.webp") center / cover no-repeat !important;
  color: var(--ds-ink-on-anchor);
}

.tbian-newsletter-band > :where(h2, p) {
  inline-size: 100%;
  max-inline-size: var(--ds-site-max);
  margin-inline: auto;
  color: inherit;
}

.tbian-newsletter-band > h2 {
  max-inline-size: var(--ds-site-max);
}

.tbian-newsletter-band > .tbian-newsletter {
  inline-size: 100%;
  max-inline-size: 680px;
  margin-inline: auto;
}

.tbian-filter-surface {
  inline-size: 100%;
  max-inline-size: var(--ds-site-max);
  margin-inline: auto;
}

.tbian-page-hero,
.tbian-archive-hero {
  position: relative;
  overflow: hidden;
  padding-block: clamp(54px, 8vw, 112px);
  background:
    linear-gradient(rgba(252,251,247,.82), rgba(252,251,247,.94)),
    url("/wp-content/themes/abstract-blocksy-child/assets/img/tbian-section-paper.webp") center / cover no-repeat;
}

.tbian-page-hero::after,
.tbian-archive-hero::after {
  content: "";
  position: absolute;
  inset-block: 0;
  inset-inline-start: 0;
  inline-size: min(28vw, 360px);
  background: var(--ds-surface-anchor);
  opacity: .08;
  pointer-events: none;
}

.tbian-page-hero__inner,
.tbian-archive-hero__inner {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(min(100%, 360px), .55fr);
  gap: clamp(28px, 5vw, 72px);
  align-items: end;
}

.tbian-page-hero__copy,
.tbian-archive-hero__inner > div:first-child {
  min-inline-size: 0;
}

.tbian-page-dek {
  max-inline-size: 62ch;
  color: var(--ds-text-muted);
  font-size: clamp(17px, 1.2vw, 20px);
  line-height: 1.9;
}

.tbian-page-brief,
.tbian-archive-brief {
  display: grid;
  gap: var(--ds-space-5);
  padding: clamp(22px, 3vw, 34px);
  border: 1px solid var(--ds-border);
  background: color-mix(in srgb, var(--ds-surface-card) 88%, transparent);
}

.tbian-page-brief img {
  display: block;
  inline-size: min(110px, 38vw);
}

.tbian-page-brief dl {
  display: grid;
  gap: 1px;
  margin: 0;
  background: var(--ds-border);
  border: 1px solid var(--ds-border);
}

.tbian-page-brief dl > div {
  display: grid;
  gap: var(--ds-space-1);
  padding: var(--ds-space-4);
  background: var(--ds-surface-base);
}

.tbian-page-brief dt,
.tbian-archive-brief span {
  color: var(--ds-text-muted);
  font-size: var(--ds-step-n1);
  font-weight: var(--ds-weight-strong);
}

.tbian-page-brief dd {
  margin: 0;
  color: var(--ds-ink-on-base);
  font-size: var(--ds-step-1);
  font-weight: 800;
}

.tbian-archive-brief {
  align-self: stretch;
  align-content: center;
  background: var(--ds-surface-anchor);
  color: var(--ds-ink-on-anchor);
}

.tbian-archive-brief span,
.tbian-archive-brief p {
  color: inherit;
}

.tbian-archive-brief strong {
  display: block;
  color: inherit;
  font-size: clamp(46px, 5.6vw, 78px);
  line-height: .95;
}

.tbian-archive-title,
.tbian-page-title {
  overflow-wrap: anywhere;
  font-size: clamp(34px, 3.2vw, 44px);
  font-weight: 800;
  line-height: 1.26;
}

.tbian-block-page__article {
  overflow-x: clip;
}

.tbian-block-content {
  max-inline-size: calc(var(--ds-site-max) + (var(--ds-container-x) * 2));
}

.tbian-block-content > h1:first-child {
  display: none;
}

.tbian-block-content > .tbian-lang-switcher + h1 {
  display: none;
}

.tbian-block-content .tbian-lang-switcher + h1 {
  display: none;
}

.tbian-block-content > p:first-of-type {
  max-inline-size: 70ch;
  margin-block: 0 var(--ds-space-8);
  padding-block-end: var(--ds-space-6);
  border-block-end: 1px solid var(--ds-border);
  color: var(--ds-text-muted);
  font-size: clamp(17px, 1.16vw, 20px);
  line-height: 1.95;
}

.tbian-block-content .tbian-filter-surface,
.tbian-block-content .tbian-newsletter {
  margin-block-start: var(--ds-space-7);
}

.tbian-filter-surface .tbian-post-grid {
  align-items: stretch;
}

.tbian-archive-intro {
  display: grid;
  grid-template-columns: minmax(0, .55fr) minmax(0, 1fr);
  gap: clamp(20px, 4vw, 54px);
  align-items: end;
  margin-block-end: var(--ds-space-6);
  padding-block-end: var(--ds-space-5);
  border-block-end: 1px solid var(--ds-border);
}

.tbian-archive-intro span,
.tbian-card-eyebrow span {
  color: var(--ds-brand-accent);
  font-size: var(--ds-step-n1);
  font-weight: 900;
}

.tbian-archive-intro h2 {
  margin: var(--ds-space-2) 0 0;
  font-size: clamp(26px, 2.55vw, 38px);
  font-weight: 800;
  line-height: 1.28;
}

.tbian-archive-intro p {
  margin: 0;
  max-inline-size: 56ch;
  color: var(--ds-text-muted);
  font-size: clamp(16px, 1.05vw, 18px);
  line-height: 1.9;
}

.tbian-filter-surface .tbian-empty {
  grid-column: 1 / -1;
  inline-size: 100%;
  max-inline-size: none;
  min-block-size: 260px;
  display: grid;
  gap: var(--ds-space-3);
  align-content: center;
  justify-items: start;
  border-radius: 0;
  background:
    linear-gradient(rgba(252,251,247,.84), rgba(252,251,247,.94)),
    url("/wp-content/themes/abstract-blocksy-child/assets/img/tbian-section-paper.webp") center / cover no-repeat;
}

.tbian-filter-surface .tbian-empty h2 {
  margin-block-end: 0;
  font-size: clamp(24px, 2.2vw, 32px);
  font-weight: 800;
  line-height: 1.3;
}

.tbian-filter-surface .tbian-empty p {
  max-inline-size: 52ch;
  color: var(--ds-text-muted);
}

.tbian-filter-surface .tbian-post-card {
  min-block-size: 100%;
  background: var(--ds-surface-base);
}

.tbian-filter-surface .tbian-post-card__body {
  min-block-size: 100%;
  gap: var(--ds-space-4);
}

.tbian-filter-surface .tbian-post-card__excerpt {
  flex: 1;
}

.tbian-filter-surface .tbian-share {
  margin-block-start: auto;
  padding-block-start: var(--ds-space-3);
  border-block-start: 1px solid var(--ds-border);
}

.tbian-card-eyebrow {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ds-space-2);
  align-items: center;
  justify-content: space-between;
  color: var(--ds-text-muted);
  font-size: var(--ds-step-n1);
}

.tbian-read-link {
  display: inline-flex;
  align-items: center;
  margin-block-start: var(--ds-space-1);
  color: var(--ds-link);
  font-weight: 900;
  text-decoration: none;
}

.tbian-read-link::before {
  content: "";
  inline-size: 28px;
  block-size: 1px;
  margin-inline-end: var(--ds-space-2);
  background: currentColor;
}

.tbian-block-content > .tbian-newsletter {
  max-inline-size: 720px;
}

.tbian-block-content > .tbian-newsletter + * {
  margin-block-start: var(--ds-space-8);
}

.tbian-front-page .tbian-post-grid {
  grid-template-columns: minmax(0, 1.15fr) repeat(2, minmax(0, .92fr));
}

.tbian-front-page .tbian-post-card:first-child {
  grid-row: span 2;
  background: var(--ds-surface-anchor);
  color: var(--ds-ink-on-anchor);
  border-color: var(--ds-surface-anchor);
}

.tbian-front-page .tbian-post-card:first-child :where(a, h2, p, time, .tbian-meta-line) {
  color: inherit;
}

.tbian-front-page .tbian-post-card:first-child .tbian-post-card__title {
  font-size: clamp(23px, 2.1vw, 32px);
  line-height: 1.3;
}

.tbian-single-hero {
  overflow: hidden;
  padding-block: clamp(40px, 6vw, 72px);
}

.tbian-single-hero__inner {
  display: grid;
  grid-template-columns: minmax(0, .88fr) minmax(0, 1.12fr);
  gap: clamp(28px, 5vw, 72px);
  align-items: start;
}

.tbian-single-hero__copy {
  min-inline-size: 0;
  align-self: center;
}

.tbian-single-title {
  inline-size: 100%;
  max-inline-size: 22ch;
  font-size: clamp(31px, 3vw, 44px);
  line-height: 1.26;
  overflow-wrap: break-word;
  text-wrap: balance;
}

.tbian-single-dek {
  max-inline-size: 54ch;
  font-size: clamp(17px, 1.12vw, 19px);
  line-height: 1.9;
}

.tbian-single-hero__visual {
  position: relative;
  min-block-size: clamp(320px, 36vw, 460px);
  margin: 0;
  overflow: hidden;
  border: 1px solid var(--ds-border);
  background: var(--ds-surface-raised);
}

.tbian-single-hero__visual::before {
  content: none;
}

.tbian-single-hero__visual img {
  display: block;
  inline-size: 100%;
  block-size: 100%;
  min-block-size: clamp(320px, 36vw, 460px);
  object-fit: contain;
  background: var(--ds-surface-card);
}

.tbian-single-layout {
  display: block;
  max-inline-size: calc(var(--ds-content) + (var(--ds-container-x) * 2));
}

.tbian-single-content {
  padding-inline-end: 0;
}

.tbian-single-info {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ds-space-3) var(--ds-space-5);
  align-items: center;
  margin-block-end: var(--ds-space-8);
  padding: var(--ds-space-4) var(--ds-space-5);
  border: 1px solid var(--ds-border);
  background: var(--ds-surface-card);
  color: var(--ds-text-muted);
  font-size: clamp(15px, .95vw, 16px);
  line-height: 1.75;
}

.tbian-single-info strong {
  color: var(--ds-ink-on-card);
}

.tbian-single-content :where(p, li) {
  color: var(--ds-ink-on-base);
  font-size: clamp(17px, 1.08vw, 19px);
  line-height: 1.95;
}

.tbian-single-content > p:first-of-type {
  font-size: clamp(18px, 1.25vw, 21px);
  line-height: 1.95;
  color: var(--ds-ink-on-base);
}

.tbian-single-content :where(h2, h3) {
  max-inline-size: var(--ds-content);
  padding-block-start: var(--ds-space-4);
  border-block-start: 1px solid var(--ds-border);
}

.tbian-share--single {
  margin-block-start: var(--ds-space-5);
}

.tbian-share--single a {
  border-radius: 0;
  background: var(--ds-surface-card);
}

.tbian-work-section {
  border-block: 1px solid var(--ds-border);
  background: linear-gradient(90deg, var(--ds-surface-raised), var(--ds-surface-base));
}

.tbian-work-header {
  display: grid;
  grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
  gap: clamp(22px, 5vw, 70px);
  align-items: end;
  margin-block-end: clamp(24px, 4vw, 46px);
}

.tbian-work-header h2 {
  margin: 0;
  max-inline-size: 12ch;
  font-size: clamp(29px, 2.75vw, 40px);
  font-weight: 800;
  line-height: 1.24;
}

.tbian-work-header p {
  margin: 0;
  max-inline-size: 54ch;
  color: var(--ds-text-muted);
  font-size: clamp(17px, 1.14vw, 19px);
  line-height: 1.9;
}

.tbian-work-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--ds-gap-card);
}

.tbian-work-item {
  position: relative;
  min-block-size: 260px;
  padding: clamp(22px, 3vw, 34px);
  border: 1px solid var(--ds-border);
  border-block-start: 8px solid var(--ds-brand-accent);
  background: var(--ds-surface-card);
}

.tbian-work-mark {
  display: inline-flex;
  margin: 0 0 var(--ds-space-8);
  padding: var(--ds-space-1) var(--ds-space-3);
  border: 1px solid var(--ds-border);
  color: var(--ds-brand-accent);
  font-size: var(--ds-step-n1);
  font-weight: 800;
}

.tbian-work-item h3 {
  margin: 0;
  color: var(--ds-ink-on-card);
  font-size: clamp(22px, 1.8vw, 28px);
  font-weight: 800;
  line-height: 1.32;
}

.tbian-work-item p {
  margin-block-start: var(--ds-space-4);
  max-inline-size: 30ch;
  color: var(--ds-text-muted);
  font-size: clamp(16px, .98vw, 17px);
  line-height: 1.85;
}

.tbian-post-card {
  border-radius: 0;
}

.tbian-post-card__body {
  padding: clamp(20px, 2.4vw, 28px);
}

.tbian-post-card__title {
  font-size: clamp(19px, 1.45vw, 23px);
  font-weight: 800;
  line-height: 1.42;
}

.tbian-post-card__title a {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.tbian-front-page .tbian-post-card:first-child .tbian-post-card__title a,
.tbian-post-card--featured .tbian-post-card__title a {
  -webkit-line-clamp: 4;
}

@media (max-width: 900px) {
  html,
  body {
    overflow-x: clip;
  }

  .tbian-front-page,
  .tbian-hero {
    inline-size: 100%;
    max-inline-size: 100vw;
    overflow-x: clip;
  }

  .tbian-hero {
    min-block-size: auto;
  }

  .wp-block-columns.tbian-hero-grid,
  .tbian-work-header {
    grid-template-columns: 1fr !important;
  }

  .wp-block-columns.tbian-hero-grid {
    grid-template-areas:
      "copy"
      "visual";
    inline-size: 100% !important;
    max-inline-size: 100% !important;
    margin-inline: 0 !important;
    padding-inline: 0 !important;
    overflow: hidden;
  }

  .tbian-hero-copy {
    order: 1;
    inline-size: 100%;
    max-inline-size: 100%;
    padding-block: 32px;
    padding-inline: var(--ds-container-x);
    align-items: center;
    text-align: center;
  }

  .tbian-hero-visual {
    order: 2;
    min-block-size: 260px;
  }

  .tbian-hero-visual::before {
    inline-size: 10px;
  }

  .tbian-hero-art img {
    min-block-size: 260px;
    max-block-size: 360px;
  }

  .tbian-hero-copy .tbian-kicker {
    display: block;
    max-inline-size: 27ch;
    margin-inline: auto;
    text-align: center;
  }

  .tbian-hero-copy .tbian-kicker::before {
    display: none;
  }

  .tbian-hero-copy .tbian-title {
    max-inline-size: 13ch;
    margin-inline: auto;
    text-align: center;
    font-size: clamp(30px, 8vw, 38px);
    line-height: 1.28;
  }

  .tbian-hero-copy .tbian-lead {
    max-inline-size: 34ch;
    margin-inline: auto;
    text-align: center;
    font-size: 17px;
    line-height: 1.95;
  }

  .tbian-hero-proof {
    display: grid;
    grid-template-columns: 1fr;
  }

  .tbian-hero :where(.wp-block-buttons, .ds-row) {
    inline-size: 100%;
    max-inline-size: 280px;
    margin-inline: auto;
  }

  .tbian-work-header {
    gap: var(--ds-space-4);
    margin-block-end: var(--ds-space-6);
    text-align: center;
  }

  .tbian-work-header h2,
  .tbian-work-header p {
    max-inline-size: 100%;
    margin-inline: auto;
  }

  .tbian-work-list {
    grid-template-columns: 1fr;
  }

  .tbian-work-item {
    min-block-size: auto;
    text-align: center;
  }

  .tbian-work-item p {
    margin-inline: auto;
  }

  .tbian-front-page .tbian-post-grid {
    grid-template-columns: 1fr;
  }

  .tbian-front-page .tbian-post-card:first-child {
    grid-row: auto;
  }

  .tbian-archive-hero {
    padding-block: 38px;
  }

  .tbian-page-hero__inner,
  .tbian-archive-hero__inner,
  .tbian-archive-intro {
    grid-template-columns: 1fr;
    gap: var(--ds-space-5);
  }

  .tbian-archive-title,
  .tbian-page-title {
    max-inline-size: 100%;
    font-size: clamp(27px, 7.4vw, 35px);
    line-height: 1.3;
    text-align: center;
  }

  .tbian-page-dek,
  .tbian-archive-hero .tbian-lead {
    max-inline-size: 35ch;
    font-size: 17px;
    line-height: 1.95;
  }

  .tbian-page-hero .tbian-kicker,
  .tbian-archive-hero .tbian-kicker,
  .tbian-page-dek,
  .tbian-archive-hero .tbian-lead {
    display: block;
    margin-inline: auto;
    text-align: center;
  }

  .tbian-page-hero .tbian-kicker::before,
  .tbian-archive-hero .tbian-kicker::before {
    display: none;
  }

  .tbian-page-brief,
  .tbian-archive-brief {
    justify-items: center;
    text-align: center;
  }

  .tbian-archive-hero .tbian-panel,
  .tbian-archive-brief {
    min-block-size: auto;
    padding: var(--ds-space-5);
    text-align: center;
  }

  .tbian-block-content {
    padding-block: var(--ds-space-7);
  }

  .tbian-block-content > p:first-of-type {
    max-inline-size: 36ch;
    margin-inline: auto;
    font-size: 17px;
    line-height: 1.95;
    text-align: center;
  }

  .tbian-archive-intro {
    text-align: center;
  }

  .tbian-archive-intro p {
    margin-inline: auto;
  }

  .tbian-filter-surface .tbian-empty {
    justify-items: center;
    text-align: center;
  }

  .tbian-filter-surface .tbian-share {
    display: grid;
    grid-template-columns: 1fr;
  }

  .tbian-filter-surface .tbian-share a {
    text-align: center;
  }

  .tbian-single-hero__inner {
    inline-size: min(100% - (var(--ds-container-x) * 2), var(--ds-site-max));
    max-inline-size: 100%;
    grid-template-columns: 1fr;
    gap: var(--ds-space-6);
    margin-inline: auto;
    overflow: hidden;
  }

  .tbian-single-hero__copy {
    align-self: start;
    inline-size: 100%;
    max-inline-size: 100%;
    min-inline-size: 0;
    overflow: hidden;
    text-align: center;
  }

  .tbian-single-title {
    display: block;
    max-inline-size: 18ch;
    margin-block: var(--ds-space-3);
    margin-inline: auto;
    font-size: clamp(26px, 7vw, 34px);
    line-height: 1.34;
    text-align: center;
    white-space: normal;
    overflow-wrap: anywhere;
  }

  .tbian-single-dek,
  .tbian-single-content :where(p, li),
  .tbian-single-content > p:first-of-type {
    font-size: 17px;
    line-height: 1.95;
  }

  .tbian-single .tbian-meta-line {
    display: grid;
    gap: var(--ds-space-1);
    justify-items: center;
  }

  .tbian-single .tbian-meta-line span[aria-hidden="true"] {
    display: none;
  }

  .tbian-single .tbian-share--single {
    display: grid;
    grid-template-columns: 1fr;
    max-inline-size: 100%;
    min-inline-size: 0;
    gap: var(--ds-space-2);
    overflow-wrap: anywhere;
  }

  .tbian-single .tbian-share--single a {
    min-inline-size: 0;
    padding-inline: var(--ds-space-2);
    text-align: center;
  }

  .tbian-single-hero__visual {
    inline-size: 100%;
    max-inline-size: 100%;
    min-block-size: 240px;
  }

  .tbian-single-hero__visual img {
    inline-size: 100%;
    min-block-size: 240px;
    max-block-size: 320px;
  }

  .tbian-single-info {
    display: grid;
    justify-items: center;
    text-align: center;
    padding: var(--ds-space-4);
  }
}

/* ------------------------------------------------ Final Tbian polish pass */

.ct-header [data-row] {
  min-block-size: 78px;
  background: color-mix(in srgb, var(--ds-surface-base) 96%, var(--ds-surface-anchor));
}

.ct-header .site-logo-container img {
  inline-size: clamp(118px, 9vw, 148px);
  max-block-size: 58px;
}

.ct-header .ct-menu-link {
  min-block-size: 78px;
  padding-inline: clamp(10px, 1vw, 15px);
  color: var(--ds-ink-on-base);
  font-size: clamp(14px, .95vw, 16px);
  font-weight: 700;
  line-height: 1.45;
  text-decoration: none;
}

.ct-header .ct-menu-link:hover,
.ct-header .current-menu-item > .ct-menu-link,
.ct-header .current_page_item > .ct-menu-link {
  color: var(--ds-brand-accent);
}

.tbian-kicker {
  font-size: clamp(13px, .84vw, 15px);
  font-weight: 800;
  line-height: 1.6;
}

.tbian-page-hero,
.tbian-archive-hero {
  padding-block: clamp(44px, 6vw, 84px);
}

.tbian-page-brief,
.tbian-archive-brief,
.tbian-filters,
.tbian-newsletter,
.tbian-single-info,
.tbian-post-card,
.tbian-work-item,
.tbian-filter-surface .tbian-empty {
  box-shadow: none;
}

.tbian-page-brief,
.tbian-archive-brief {
  padding: clamp(18px, 2.3vw, 28px);
}

.tbian-page-brief dd,
.tbian-archive-brief p {
  font-size: clamp(15px, .96vw, 17px);
  line-height: 1.8;
}

.tbian-post-grid {
  gap: clamp(18px, 2vw, 26px);
}

.tbian-post-card {
  min-block-size: 100%;
  border-color: color-mix(in srgb, var(--ds-border) 82%, var(--ds-surface-anchor));
  background: var(--ds-surface-base);
}

.tbian-post-card:hover {
  transform: none;
}

.tbian-post-card__excerpt,
.tbian-post-card__excerpt p {
  font-size: clamp(15px, .98vw, 17px);
  line-height: 1.85;
}

.tbian-card-eyebrow {
  font-size: clamp(13px, .82vw, 14px);
  line-height: 1.65;
}

.tbian-read-link {
  font-size: clamp(14px, .9vw, 16px);
}

.tbian-work-item {
  min-block-size: 220px;
  border-block-start: 1px solid var(--ds-border);
}

.tbian-work-mark {
  margin-block-end: var(--ds-space-5);
}

.tbian-single-layout {
  padding-block: clamp(44px, 6vw, 76px);
}

.tbian-single-hero__visual {
  min-block-size: clamp(260px, 31vw, 400px);
}

.tbian-single-hero__visual img {
  min-block-size: clamp(260px, 31vw, 400px);
}

.tbian-single-content :where(h2, h3) {
  font-weight: 800;
  line-height: 1.35;
}

.tbian-single-content .tbian-content-heading {
  margin-block: var(--ds-space-9) var(--ds-space-4);
  padding-block-start: var(--ds-space-5);
  border-block-start: 1px solid var(--ds-border);
  color: var(--ds-ink-on-base);
  font-size: clamp(24px, 1.9vw, 30px);
  font-weight: 800;
  line-height: 1.38;
}

.tbian-single-info + .tbian-content-heading {
  margin-block-start: 0;
  padding-block-start: 0;
  border-block-start: 0;
}

.tbian-single-title {
  max-inline-size: 25ch;
  font-size: clamp(30px, 2.65vw, 38px);
  font-weight: 800;
  line-height: 1.34;
}

.tbian-404 .tbian-hero {
  min-block-size: auto;
  padding-block: clamp(56px, 8vw, 104px);
}

.tbian-404 .tbian-title {
  max-inline-size: 16ch;
  font-size: clamp(34px, 3.8vw, 54px);
  font-weight: 800;
  line-height: 1.24;
}

@media (max-width: 900px) {
  .ct-header [data-row] {
    min-block-size: 68px;
  }

  .ct-header .site-logo-container img {
    inline-size: min(128px, 42vw);
    max-block-size: 52px;
  }

  .ct-header .ct-menu-link {
    min-block-size: 48px;
    font-size: 15px;
  }

  .tbian-page-hero,
  .tbian-archive-hero,
  .tbian-single-hero,
  .tbian-404 .tbian-hero {
    padding-block: 34px;
  }

  .tbian-page-brief,
  .tbian-archive-brief,
  .tbian-filters,
  .tbian-newsletter,
  .tbian-filter-surface .tbian-empty,
  .tbian-work-item,
  .tbian-post-card__body {
    padding: var(--ds-space-5);
  }

  .tbian-post-grid,
  .tbian-front-page .tbian-post-grid,
  .tbian-work-list {
    grid-template-columns: 1fr;
  }

  .tbian-front-page .tbian-page-section > h2,
  .tbian-work-header h2 {
    font-size: clamp(27px, 7vw, 34px);
    line-height: 1.32;
    text-align: center;
  }

  .tbian-post-card__title,
  .tbian-front-page .tbian-post-card:first-child .tbian-post-card__title {
    font-size: clamp(21px, 5.4vw, 26px);
    line-height: 1.42;
  }

  .tbian-archive-intro h2,
  .tbian-filter-surface .tbian-empty h2 {
    font-size: clamp(24px, 6.4vw, 30px);
  }

  .tbian-404 .tbian-title {
    max-inline-size: 100%;
    font-size: clamp(30px, 8vw, 38px);
    text-align: center;
  }
}
