/*
 * ITB 2026 component styles.
 * Ported from the ITB Design System's components/bundle.css (website parts only;
 * the scoping-tool and print components stay in the Design System).
 * theme.json generates the presets; the aliases below give them the Design
 * System's names so component rules match the system one for one.
 */

:root {
	--teal-700: var(--wp--preset--color--teal-700);
	--teal-800: var(--wp--preset--color--teal-800);
	--teal-900: var(--wp--preset--color--teal-900);
	--teal-300: var(--wp--preset--color--teal-300);
	--teal-100: var(--wp--preset--color--teal-100);
	--navy: var(--wp--preset--color--navy);
	--navy-100: var(--wp--preset--color--navy-100);
	--orange-500: var(--wp--preset--color--orange-500);
	--orange-600: var(--wp--preset--color--orange-600);
	--orange-100: var(--wp--preset--color--orange-100);
	--coral: var(--wp--preset--color--coral);
	--paper: var(--wp--preset--color--paper);
	--paper-2: var(--wp--preset--color--paper-2);
	--card: var(--wp--preset--color--card);
	--ink: var(--wp--preset--color--ink);
	--ink-2: var(--wp--preset--color--ink-2);
	--muted: var(--wp--preset--color--muted);
	--line: var(--wp--preset--color--line);
	--control-border: var(--wp--preset--color--control-border);
	--danger: var(--wp--preset--color--danger);
	--surface-inverse: var(--wp--preset--color--teal-900);
	--ink-inverse: #fff;
	--ink-inverse-muted: var(--wp--preset--color--ink-inverse-muted);
	--accent: var(--wp--preset--color--teal-700);
	--cta: var(--wp--preset--color--orange-500);
	--on-cta: var(--wp--preset--color--on-cta);
	--focus: var(--wp--preset--color--teal-700);
	--status-meets: var(--wp--preset--color--teal-700);
	--status-partial: var(--wp--preset--color--orange-500);
	--status-gap: #8a929c;
	--font-display: var(--wp--preset--font-family--display);
	--font-sans: var(--wp--preset--font-family--sans);
	--font-mono: var(--wp--preset--font-family--mono);
	--r-card: var(--wp--custom--radius--card);
	--r-btn: var(--wp--custom--radius--btn);
	--r-chip: var(--wp--custom--radius--chip);
	--r-pill: var(--wp--custom--radius--pill);
	--measure: var(--wp--custom--measure);
}

body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
.screen-reader-text { border: 0; clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; word-wrap: normal !important; }
:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }

/* ── Type ── */
.itb-eyebrow { font-family: var(--font-mono); font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.itb-eyebrow--gold { color: var(--orange-500); }
.itb-eyebrow--teal { color: var(--accent); }
.itb-display { font-family: var(--font-display); font-weight: 800; line-height: 1.02; letter-spacing: -.02em; color: var(--ink); margin: 0; text-wrap: balance; }
.itb-display em { font-style: normal; color: var(--orange-500); }
.itb-lede { font-size: var(--wp--preset--font-size--lede); line-height: 1.5; max-width: var(--measure); }
.itb-meta { font-family: var(--font-mono); font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.itb-figure { font-family: var(--font-mono); font-weight: 500; font-size: 22px; color: var(--ink); }

/* ── Button ── */
.itb-btn { appearance: none; display: inline-flex; align-items: center; gap: 8px; font-family: var(--font-sans); font-weight: 600; font-size: 14px; line-height: 1;
	letter-spacing: -.005em; padding: 10px 16px; border: 1px solid transparent; border-radius: var(--r-btn); cursor: pointer; text-decoration: none; transition: all .15s;
	background: var(--cta); border-color: var(--cta); color: var(--on-cta); }
.itb-btn:hover { background: var(--orange-600); border-color: var(--orange-600); color: var(--on-cta); }
.itb-btn--lg { font-size: 15px; padding: 14px 22px; }
.itb-btn--secondary { background: var(--teal-700); border-color: var(--teal-700); color: #fff; }
.itb-btn--secondary:hover { background: var(--teal-800); border-color: var(--teal-800); color: #fff; }
.itb-btn--ghost { background: transparent; border-color: var(--line); color: var(--ink); }
.itb-btn--ghost:hover { background: var(--paper-2); color: var(--ink); }
.itb-btn--dark { background: var(--ink); border-color: var(--ink); color: var(--paper); }
.itb-btn--link { background: transparent; border-color: transparent; color: var(--accent); padding-inline: 0; }
.itb-btn--link:hover { background: transparent; text-decoration: underline; text-underline-offset: 3px; }
.itb-btn[data-arrow]::after { content: "→"; margin-left: 2px; }
.itb-btn[disabled] { opacity: .45; cursor: not-allowed; }
.itb-on-dark .itb-btn--ghost { border-color: rgba(255,255,255,.3); color: #fff; }
.itb-on-dark .itb-btn--ghost:hover { background: rgba(255,255,255,.08); }

/* ── Pill ── */
.itb-pill, .itb-ipill, .itb-ipill-gold { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: var(--r-chip); font-family: var(--font-mono); font-size: 11px;
	letter-spacing: .06em; text-transform: uppercase; line-height: 1.2; border: 1px solid transparent; background: var(--teal-100); color: var(--teal-800); }
.itb-pill--success { background: #e3f0f2; color: var(--teal-800); }
.itb-pill--success::before { content: "✓"; }
.itb-pill--warn { background: var(--orange-100); color: oklch(42% 0.12 65); }
.itb-pill--danger { background: #fbe9e8; color: #a33a38; }
.itb-pill--ghost { background: var(--card); color: var(--ink-2); border-color: var(--line); }
.itb-pill--accent { background: var(--orange-500); color: var(--on-cta); }
/* Pills block (a row) and inline pills (paragraph toolbar: Pill, Pill: gold). */
.itb-pills { display: flex; flex-wrap: wrap; gap: 6px; }
.itb-pills--center { justify-content: center; } .itb-pills--right { justify-content: flex-end; }
.itb-ipill-gold { background: var(--orange-500); color: var(--on-cta); }
p .itb-ipill, p .itb-ipill-gold, li .itb-ipill, li .itb-ipill-gold { vertical-align: .1em; }

/* ── Hex marker ── */
.itb-hex { position: relative; display: inline-grid; place-items: center; width: 44px; height: 40px; flex: none;
	font-family: var(--font-mono); font-weight: 600; font-size: 16px; color: #fff; isolation: isolate; }
.itb-hex::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--teal-700);
	clip-path: polygon(25% 2%, 75% 2%, 98% 50%, 75% 98%, 25% 98%, 2% 50%); }
.itb-hex--gold { color: var(--on-cta); } .itb-hex--gold::before { background: var(--orange-500); }
.itb-hex--dark::before { background: var(--teal-900); }
.itb-hex--ghost { color: var(--muted); } .itb-hex--ghost::before { background: var(--line); }
.itb-hex--sm { width: 32px; height: 29px; font-size: 12px; }

/* ── Stat strip ── */
.itb-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 18px; padding-top: 26px; border-top: 1px solid var(--line); margin: 0; }
/* Labels share one row and values the next, so a label that wraps doesn't push its value out of line. */
.itb-stats > div { display: grid; grid-row: span 2; grid-template-rows: subgrid; row-gap: 4px; }
.itb-stats > div > dt { align-self: end; }
.itb-stats > div > dd { margin-top: 0; }
.itb-stats dt { font-family: var(--font-mono); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.itb-stats dd { margin: 4px 0 0; font-family: var(--font-display); font-weight: 700; font-size: 28px; line-height: 1.1; color: var(--ink); }
.itb-stats dd small { display: block; font-family: var(--font-sans); font-weight: 400; font-size: 12px; color: var(--ink-2); margin-top: 8px; }
.itb-stats--center { text-align: center; }
.itb-stats--right { text-align: right; }
.itb-on-dark .itb-stats { border-color: rgba(255,255,255,.16); }
.itb-on-dark .itb-stats dt { color: rgba(255,255,255,.62); }
.itb-on-dark .itb-stats dd { color: #fff; } .itb-on-dark .itb-stats dd small { color: rgba(255,255,255,.78); }

/* ── Dark band ── */
.itb-band { background: var(--surface-inverse); color: var(--ink-inverse); }
.itb-on-dark, .itb-band { --ink: #fff; }
.itb-band p, .itb-on-dark p { color: var(--ink-inverse-muted); }

/* ── Card ── */
.itb-card { background: var(--card); border: 1px solid var(--line); border-radius: var(--r-card); padding: 24px; display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.itb-card__top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 12px; }
.itb-card__top .itb-pill { white-space: nowrap; }
/* Pills together on the left when there's a hex number; the hex goes right. */
.itb-card__top:has(.itb-hex) { justify-content: flex-start; }
.itb-card__top .itb-hex { margin-left: auto; }
.itb-card p { font-size: 14px; margin: 0; }
.itb-card__more { margin-top: auto; padding-top: 8px; font-family: var(--font-mono); font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--accent); text-decoration: none; }
.itb-card__more::after { content: " →"; }
.itb-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: var(--wp--preset--spacing--24); }

/* ── Callout ── */
.itb-callout { background: var(--teal-100); border-left: 3px solid var(--teal-700); border-radius: 0 var(--r-chip) var(--r-chip) 0; padding: 18px 22px; display: flex; flex-direction: column; gap: 8px; }
.itb-callout__k { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: .12em; text-transform: uppercase; font-weight: 600; color: var(--teal-900); }
.itb-callout__k::before { content: "· "; }
.itb-callout p, .itb-callout > div { font-size: 15px; line-height: 1.55; color: #15181c; margin: 0; }
.itb-callout--orange { background: var(--orange-100); border-color: var(--orange-600); }
.itb-callout--orange .itb-callout__k { color: #5a3a05; }
.itb-callout--navy { background: var(--navy-100); border-color: var(--navy); }
.itb-callout--navy .itb-callout__k { color: var(--navy); }

/* ── Pull quote ── */
.itb-quote { margin: 0; padding: 18px 22px; border-left: 3px solid var(--orange-500); background: var(--paper); border-radius: 0 var(--r-chip) var(--r-chip) 0; }
.itb-quote p { font-family: var(--font-display); font-weight: 600; font-size: 19px; line-height: 1.45; letter-spacing: -.005em; color: var(--ink); margin: 0; }
.itb-quote cite { display: block; margin-top: 10px; font-style: normal; font-family: var(--font-mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }

/* ── Steps (hex-numbered) ── */
.itb-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: var(--wp--preset--spacing--24); }
.itb-steps li { display: grid; grid-template-columns: auto 1fr; gap: 6px 14px; align-items: start; }
.itb-steps .itb-hex { grid-row: span 2; }
.itb-steps b { font-family: var(--font-display); font-weight: 700; font-size: 18px; letter-spacing: -.01em; color: var(--ink); }
.itb-steps span:not(.itb-hex) { font-size: 14px; color: var(--ink-2); }

/* ── CTA panel ── */
.itb-cta { position: relative; background: var(--teal-800); color: #fff; padding: 64px clamp(24px, 6vw, 80px);
	display: grid; grid-template-columns: 1.4fr 1fr; gap: 48px; align-items: center; --ink: #fff; }
/* Full width: columns capped to the 1040px wide width (1.4fr / 1fr less the 48px gap) and centred.
   Not padding with %: that resolves against the parent, which is narrower inside post content. */
.itb-cta.alignfull { --cta-w: calc(var(--wp--style--global--wide-size) - 48px); padding-inline: var(--wp--custom--gutter); justify-content: center;
	grid-template-columns: minmax(0, calc(var(--cta-w) * 1.4 / 2.4)) minmax(0, calc(var(--cta-w) / 2.4)); }
.itb-cta .itb-display { color: #fff; font-size: var(--wp--preset--font-size--display-m); margin-top: 12px; }
.itb-cta .itb-eyebrow { font-size: 12px; margin: 0; } /* not the band's 17px paragraph size */
.itb-cta p { color: rgba(255,255,255,.82); margin-top: 18px; font-size: 17px; max-width: 520px; }
.itb-cta__form { --ink: #15181c; background: var(--card); color: #15181c; border-radius: var(--r-card); padding: 28px; border: 1px solid var(--line); display: grid; gap: 12px; }
.itb-cta__form p { color: var(--ink-2); margin: 0; font-size: 14px; }
@media (max-width: 860px) { .itb-cta, .itb-cta.alignfull { grid-template-columns: 1fr; } }
/* A CTA band placed in the article column, a column or a card (not in a Section) can't be full
   width there: it becomes a compact rounded card, copy above the form or button. */
:is(.itb-prose, .wp-block-column, .is-style-card, .itb-form-card) > .itb-cta,
:is(.itb-prose, .wp-block-column, .is-style-card, .itb-form-card) > .itb-cta.alignfull {
	grid-template-columns: 1fr; gap: 24px; padding: 32px; border-radius: var(--r-card); margin-block: 40px; max-width: none; width: auto; margin-inline: 0; }
:is(.itb-prose, .wp-block-column, .is-style-card, .itb-form-card) > .itb-cta .itb-display { font-size: var(--wp--preset--font-size--h-3, 28px); line-height: 1.15; }
:is(.itb-prose, .wp-block-column, .is-style-card, .itb-form-card) > .itb-cta p { font-size: 16px; margin-top: 12px; }

/* CTA card (group style): a compact call to action that sits in the reading column.
   Heading, a line of text and a button; buttons line up on the right when there's room. */
.wp-block-group.is-style-cta-card { background: var(--teal-900); color: rgba(255,255,255,.82); border-radius: var(--r-card); padding: 28px 30px;
	margin-block: 40px; display: flex; flex-wrap: wrap; align-items: center; gap: 12px 28px; --ink: #fff; }
.is-style-cta-card > * { margin: 0 !important; flex: 1 1 100%; }
.is-style-cta-card :is(h2, h3, h4) { color: #fff; font-size: 22px; line-height: 1.2; }
.is-style-cta-card p { font-size: 15px; color: rgba(255,255,255,.82); }
.is-style-cta-card .is-style-eyebrow { color: var(--orange-500); }
.is-style-cta-card a:not(.wp-element-button) { color: #fff; }
.is-style-cta-card > .wp-block-buttons { flex: 0 0 auto; margin-top: 6px !important; }


/* ── Table ── */
.itb-table { width: 100%; border-collapse: separate; border-spacing: 0; border: 1px solid var(--line); border-radius: var(--r-card); overflow: hidden; background: var(--card); font-size: 14px; line-height: 1.45; }
.itb-table th, .itb-table td { padding: 14px 18px; text-align: left; vertical-align: top; border-top: 1px solid var(--line); }
.itb-table thead th { border-top: 0; background: var(--paper-2); font-family: var(--font-mono); font-weight: 400; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-2); }
.itb-table tbody th { font-family: var(--font-display); font-weight: 600; color: var(--ink); }
.itb-table td { color: var(--ink-2); }
.itb-table tbody tr:nth-child(even) > * { background: var(--paper); }

/* ── Fit marker (compare tables) ── */
.itb-fit { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 500; white-space: nowrap; color: var(--ink); }
.itb-fit::before { content: ""; width: 11px; height: 11px; border-radius: 50%; flex: none; }
.itb-fit--meets::before { background: var(--status-meets); }
.itb-fit--partial::before { background: linear-gradient(90deg, var(--status-partial) 50%, transparent 50%); box-shadow: inset 0 0 0 2px var(--status-partial); }
.itb-fit--gap { color: var(--muted); }
.itb-fit--gap::before { box-shadow: inset 0 0 0 2px var(--status-gap); }

/* ── Form field ── */
.itb-field { display: flex; flex-direction: column; gap: 5px; }
.itb-field label { font-family: var(--font-mono); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.itb-field input, .itb-field select, .itb-field textarea { box-sizing: border-box; font: inherit; font-size: 15px; color: var(--ink); height: 42px; padding: 0 14px; width: 100%;
	border: 1px solid var(--control-border); border-radius: var(--r-btn); background: var(--paper); }
.itb-field textarea { height: auto; padding: 10px 14px; }
.itb-field input:focus, .itb-field select:focus, .itb-field textarea:focus { outline: 2px solid var(--focus); outline-offset: 1px; border-color: var(--teal-700); }
.itb-field small { font-size: 12px; color: var(--muted); }

/* Dark sections set by theme.json style variations behave like .itb-on-dark */
.is-style-section-dark, .is-style-section-teal { --ink: #fff; }
.is-style-section-dark .itb-btn--ghost, .is-style-section-teal .itb-btn--ghost { border-color: rgba(255,255,255,.3); color: #fff; }
.is-style-section-dark .itb-stats, .is-style-section-teal .itb-stats { border-color: rgba(255,255,255,.16); }
.is-style-section-dark .itb-stats dt, .is-style-section-teal .itb-stats dt { color: rgba(255,255,255,.62); }
.is-style-section-dark .itb-stats dd small, .is-style-section-teal .itb-stats dd small { color: rgba(255,255,255,.78); }
.is-style-section-dark .itb-eyebrow, .is-style-section-teal .itb-eyebrow { color: var(--orange-500); }
.is-style-section-dark .itb-steps span:not(.itb-hex), .is-style-section-teal .itb-steps span:not(.itb-hex) { color: var(--ink-inverse-muted); }
.is-style-section-paper-2 .itb-eyebrow, .is-style-section-paper-2 .itb-meta { color: var(--ink-2); } /* muted fails on paper-2 */

/* ═══ Header ═══ */
.itb-header { --hdr-bg: var(--teal-800); --hdr-fg: #fff; --hdr-line: rgba(255,255,255,.14); --hdr-hl: rgba(255,255,255,.1); --hdr-muted: var(--ink-inverse-muted);
	position: relative; z-index: 100; color: var(--hdr-fg); font-family: var(--font-sans);
	/* Inline padding that lines header content up with the site's wide width (1040px) and gutter. */
	--hdr-edge: max(var(--wp--custom--gutter), calc((100% - var(--wp--style--global--wide-size)) / 2)); }
.itb-header--solid { --hdr-bg: var(--card); --hdr-fg: var(--ink); --hdr-line: var(--line); --hdr-hl: var(--paper-2); --hdr-muted: var(--muted); }
.itb-header--transparent { --hdr-bg: transparent; position: fixed; inset: var(--wp-admin--admin-bar--height, 0px) 0 auto 0; transition: background-color .15s; }
.itb-header--transparent.is-scrolled { --hdr-bg: var(--card); --hdr-fg: var(--ink); --hdr-line: var(--line); --hdr-hl: var(--paper-2); --hdr-muted: var(--muted); }
.itb-header-sentinel { position: absolute; top: 0; left: 0; width: 1px; height: 80px; pointer-events: none; }
.itb-header__bar { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 28px; padding: 14px var(--hdr-edge);
	background: var(--hdr-bg); border-bottom: 1px solid var(--hdr-line); }
.itb-header__logo { display: inline-flex; line-height: 0; }
.itb-header__logo-img { height: 32px; width: auto; }
.itb-header__logo-img--scrolled, .itb-header.is-scrolled .itb-header__logo-img:not(.itb-header__logo-img--scrolled) { display: none; }
.itb-header.is-scrolled .itb-header__logo-img--scrolled { display: block; }
.itb-header__nav { flex: 1 1 auto; min-width: 0; }
.itb-header__list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 2px; }
.itb-header__link { font: inherit; font-size: 14px; font-weight: 500; color: inherit; background: transparent; border: 0; border-radius: var(--r-btn);
	min-height: 40px; padding: 8px 14px; display: inline-flex; align-items: center; gap: 6px; cursor: pointer; text-decoration: none; }
.itb-header__link:hover, .itb-header__link[aria-expanded="true"], .itb-header__link[aria-current] { background: var(--hdr-hl); color: inherit; }
.itb-header__chev { font-size: 10px; opacity: .6; transition: transform .15s; }
.itb-header__link[aria-expanded="true"] .itb-header__chev { transform: rotate(180deg); }
.itb-header__phone { font-family: var(--font-mono); font-size: 12px; letter-spacing: .04em; color: var(--hdr-muted); text-decoration: none; }
.itb-header__phone:hover { color: var(--hdr-fg); }
.itb-header__toggle { display: none; font: inherit; font-size: 14px; font-weight: 600; color: inherit; background: transparent; border: 1px solid var(--hdr-line);
	border-radius: var(--r-btn); min-height: 44px; padding: 8px 14px; margin-left: auto; align-items: center; gap: 10px; cursor: pointer; }
.itb-header__toggle-bars, .itb-header__toggle-bars::before, .itb-header__toggle-bars::after { display: block; width: 16px; height: 2px; background: currentColor; position: relative; }
.itb-header__toggle-bars::before, .itb-header__toggle-bars::after { content: ""; position: absolute; left: 0; }
.itb-header__toggle-bars::before { top: -5px; } .itb-header__toggle-bars::after { top: 5px; }
.itb-header__empty { font-size: 13px; opacity: .8; margin: 0; }

/* Mega panel */
.itb-mega { --ink: #15181c; display: none; position: absolute; top: 100%; left: 0; right: 0; background: var(--card); color: var(--ink);
	border-bottom: 1px solid var(--line); box-shadow: 0 24px 40px -16px rgba(0,48,60,.18); animation: itbDrop .14s ease-out; }
.itb-header__link[aria-expanded="true"] + .itb-mega { display: block; }
@media (min-width: 1024px) and (hover: hover) {
	.itb-header__item.has-panel:hover > .itb-mega, .itb-header__item.has-panel:focus-within > .itb-mega { display: block; }
	/* Invisible bridge over the bar padding between the nav item and the panel,
	   so moving the mouse down doesn't drop the hover. */
	.itb-mega::before { content: ""; position: absolute; left: 0; right: 0; bottom: 100%; height: 18px; }
}
@keyframes itbDrop { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
.itb-mega__grid { padding: 28px var(--hdr-edge) 22px; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 32px; }
.itb-mega__label { padding-bottom: 10px; border-bottom: 1px solid var(--line); margin: 0; }
.itb-mega__col ul { list-style: none; margin: 10px 0 0; padding: 0; }
.itb-mega__col a { display: block; padding: 8px 10px; margin: 0 -10px; border-radius: var(--r-btn); text-decoration: none; color: var(--ink); }
.itb-mega__col a:hover { background: var(--paper-2); color: var(--ink); }
.itb-mega__col b { display: block; font-family: var(--font-display); font-weight: 600; font-size: 15px; }
.itb-mega__col span { display: block; font-size: 13px; color: var(--muted); }
.itb-mega__feature { position: relative; overflow: hidden; background: var(--surface-inverse); color: #fff; border-radius: var(--r-card); padding: 22px;
	display: flex; flex-direction: column; gap: 12px; align-items: flex-start; }
.itb-mega__feature p { font-size: 14px; color: var(--ink-inverse-muted); margin: 0; }
.itb-mega__feature-title { font-family: var(--font-display); font-weight: 800; font-size: 22px; letter-spacing: -.02em; }
.itb-mega__feature-mark { position: absolute; top: -24px; right: -24px; width: 120px; height: auto; opacity: .12; filter: brightness(0) invert(1); }
.itb-mega__feature .itb-btn { margin-top: auto; }
.itb-mega__foot { border-top: 1px solid var(--line); background: var(--paper); display: flex; flex-wrap: wrap; gap: 12px; justify-content: space-between;
	padding: 12px var(--hdr-edge); font-family: var(--font-mono); font-size: 12px; letter-spacing: .06em; color: var(--muted); }
.itb-mega__foot a { color: var(--accent); text-decoration: none; text-transform: uppercase; }

/* Mobile: stacked menu, panels open inline */
@media (max-width: 1023px) {
	.itb-header__toggle { display: inline-flex; }
	.itb-header__nav, .itb-header__phone, .itb-header__cta { display: none; flex-basis: 100%; }
	.itb-header.is-menu-open .itb-header__nav, .itb-header.is-menu-open .itb-header__phone, .itb-header.is-menu-open .itb-header__cta { display: block; }
	.itb-header.is-menu-open .itb-header__cta { display: inline-flex; flex-basis: auto; }
	.itb-header.is-menu-open { --hdr-bg: var(--card); --hdr-fg: var(--ink); --hdr-line: var(--line); --hdr-hl: var(--paper-2); --hdr-muted: var(--muted); }
	.itb-header.is-menu-open .itb-header__logo-img:not(.itb-header__logo-img--scrolled) { filter: brightness(0) saturate(0) opacity(.75); }
	.itb-header__list { flex-direction: column; gap: 0; }
	.itb-header__item { border-bottom: 1px solid var(--line); }
	/* Root items lead: display face, larger. Sub-items step down. */
	.itb-header__link { width: 100%; justify-content: space-between; min-height: 52px; padding: 12px 4px;
		font-family: var(--font-display); font-size: 18px; font-weight: 700; letter-spacing: -.01em; }
	.itb-header__link:hover, .itb-header__link[aria-expanded="true"] { background: transparent; color: var(--teal-700); }
	.itb-mega { position: static; box-shadow: none; animation: none; border: 0; background: transparent; }
	.itb-mega__grid { grid-template-columns: 1fr; padding: 4px 0 16px 14px; gap: 14px; border-left: 2px solid var(--teal-100); margin-left: 4px; }
	.itb-mega__label { border-bottom: 0; padding-bottom: 2px; font-size: 11px; }
	.itb-mega__col ul { margin-top: 4px; }
	.itb-mega__col a { padding: 7px 10px; }
	.itb-mega__col b { font-family: var(--font-sans); font-weight: 500; font-size: 15px; }
	.itb-mega__col span { font-size: 12px; }
	.itb-mega__feature { padding: 16px; }
	.itb-mega__feature-title { font-size: 18px; }
	.itb-mega__foot { padding: 6px 0 14px 20px; background: transparent; border-top: 0; }
}

/* ═══ Footer ═══ */
.itb-footer { color: var(--ink-inverse-muted); }
.itb-footer__inner { padding: 56px max(var(--wp--custom--gutter), calc((100% - var(--wp--style--global--wide-size)) / 2)) 28px; }
.itb-footer__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 32px; }
.itb-footer__brand { grid-column: span 2; max-width: 340px; }
.itb-footer__brand img { height: 36px; width: auto; }
.itb-footer__brand p { font-size: 14px; margin: 16px 0 0; }
.itb-footer .itb-footer__tagline { font-family: var(--font-display); font-weight: 700; font-size: 14px; letter-spacing: .04em; text-transform: uppercase; color: var(--orange-500); margin-top: 10px; }
.itb-footer__tagline span { color: #fff; }
.itb-footer__contact { font-family: var(--font-mono); font-size: 12px; letter-spacing: .04em; line-height: 1.8; }
.itb-footer a { color: var(--ink-inverse-muted); text-decoration: none; }
.itb-footer a:hover { color: #fff; }
.itb-footer__col p { margin: 0; }
.itb-footer__col ul { list-style: none; margin: 14px 0 0; padding: 0; display: flex; flex-direction: column; gap: 8px; font-size: 14px; }
.itb-footer__base { margin-top: 48px; padding-top: 20px; border-top: 1px solid rgba(255,255,255,.14); display: flex; flex-wrap: wrap; gap: 16px 28px;
	justify-content: space-between; font-family: var(--font-mono); font-size: 12px; letter-spacing: .04em; }
.itb-footer__legal { display: flex; gap: 22px; }
.itb-footer__quick { display: none; }
/* Minimal footer (landing pages): logo and contact on one line, then the base line. */
.itb-footer--minimal .itb-footer__inner { padding-top: 36px; }
.itb-footer__short { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 32px; }
.itb-footer__short img { height: 32px; width: auto; }
.itb-footer__short .itb-footer__contact { margin: 0; }
.itb-footer--minimal .itb-footer__base { margin-top: 24px; }
/* Minimal header (landing pages): no menu or button, phone always shown. */
.itb-header--minimal .itb-header__phone { display: block !important; flex-basis: auto !important; margin-left: auto; font-size: 13px; }
.itb-footer__quick ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 24px; }
.itb-footer__quick a { display: flex; align-items: center; min-height: 44px; border-bottom: 1px solid rgba(255,255,255,.12);
	font-family: var(--font-display); font-weight: 600; font-size: 16px; color: #fff; }
/* Mobile: brand block, then the short link list (Footer (mobile) menu); full columns hidden. */
@media (max-width: 760px) {
	.itb-footer__brand { grid-column: auto; }
	.has-quick-links .itb-footer__col { display: none; }
	.itb-footer__quick { display: block; margin-top: 28px; }
	.itb-footer__base { margin-top: 28px; }
}

/* ═══ Blocks ═══ */
.itb-card__title { font-family: var(--font-display); font-weight: 700; font-size: var(--wp--preset--font-size--h-3); line-height: 1.2; letter-spacing: -.01em; color: var(--ink); margin: 0; }
.itb-card--highlight { border-color: var(--teal-700); }
.itb-steps--list { grid-template-columns: 1fr; }

.itb-cta { overflow: hidden; }
.itb-cta__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .18; mix-blend-mode: luminosity; }
.itb-cta__copy, .itb-cta .itb-form { position: relative; }
.itb-cta__copy > :first-child { margin-top: 0; }
.itb-cta__action { margin-top: 24px; }
/* The eyebrow is a paragraph: keep it gold on teal and dark teal (the band's paragraph colour would win). */
.itb-cta .itb-cta__copy p.itb-eyebrow { color: var(--orange-500); }
/* CTA band colours (Colour field). Teal is the base above. On light grey and gold the copy
   turns dark and the gold highlight and eyebrow go teal (gold text fails on light grounds). */
.itb-cta--dark { background: var(--teal-900); }
.itb-cta:is(.itb-cta--grey, .itb-cta--gold) { --ink: var(--wp--preset--color--ink); color: var(--ink-2); }
.itb-cta:is(.itb-cta--grey, .itb-cta--gold) .itb-display { color: var(--ink); }
.itb-cta:is(.itb-cta--grey, .itb-cta--gold) .itb-cta__copy p { color: var(--ink-2); }
.itb-cta--grey { background: var(--paper-2); }
.itb-cta--grey .itb-display em, .itb-cta--grey .itb-cta__copy p.itb-eyebrow { color: var(--teal-700); }
.itb-cta--gold { background: var(--orange-500); }
.itb-cta--gold .itb-display em, .itb-cta--gold .itb-cta__copy p.itb-eyebrow { color: var(--teal-900); }
.itb-cta--gold .itb-cta__action .itb-btn { background: var(--ink-2); color: #fff; }
.itb-cta--gold .itb-cta__action .itb-btn:hover { background: var(--ink); }
.itb-cta:is(.itb-cta--grey, .itb-cta--gold) .itb-cta__bg { opacity: .1; }

.itb-faq { display: flex; flex-wrap: wrap; gap: 32px 64px; }
.itb-faq__head { flex: 1 1 260px; max-width: 320px; }
.itb-faq__head .itb-h2 { margin-top: 10px; }
.itb-faq__intro { font-size: 14px; margin-top: 14px; }
.itb-faq__list { flex: 999 1 520px; min-width: 0; border: 1px solid var(--line); border-radius: var(--r-card); overflow: hidden; background: var(--card); --ink: #15181c; }
.itb-faq__list details + details { border-top: 1px solid var(--line); }
.itb-faq__list summary { list-style: none; cursor: pointer; padding: 20px 24px; display: grid; grid-template-columns: 40px 1fr 24px; gap: 14px; align-items: center;
	font-family: var(--font-display); font-weight: 600; font-size: 17px; line-height: 1.3; color: var(--ink); }
.itb-faq__list summary::-webkit-details-marker { display: none; }
.itb-faq__list summary:hover { background: var(--paper); }
.itb-faq__n { font-family: var(--font-mono); font-size: 12px; color: var(--accent); }
.itb-faq__chev { font-family: var(--font-mono); font-size: 16px; color: var(--accent); text-align: center; }
.itb-faq__list details[open] .itb-faq__chev::before { content: "−"; }
.itb-faq__list details:not([open]) .itb-faq__chev::before { content: "+"; }
.itb-faq__a { padding: 0 24px 22px 78px; font-size: 15px; color: var(--ink-2); }
.itb-faq__a > :first-child { margin-top: 0; } .itb-faq__a > :last-child { margin-bottom: 0; }
@media (max-width: 600px) { .itb-faq__a { padding-left: 24px; } }

/* Forms */
.itb-form__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.itb-form__small { font-size: 12px; color: var(--muted); }
.itb-form__status { margin: 0; font-size: 14px; color: var(--ink); display: flex; gap: 8px; align-items: center; }
.itb-form__status--error { color: var(--danger); font-weight: 500; }
.itb-form .itb-btn { justify-self: start; margin-top: 6px; }
/* Fields only (inside a Card group): same rhythm, no card of its own. */
.itb-form--bare { display: grid; gap: 12px; }
.itb-form--bare .itb-form__small { font-size: 12px; color: var(--muted); }
.itb-form--done { align-content: start; }
.itb-form--done .itb-pill { justify-self: start; }
.itb-form__thanks { margin: 0; font-family: var(--font-display); font-weight: 700; font-size: var(--wp--preset--font-size--h-3); line-height: 1.25; color: var(--ink); }

/* Form card (landing pattern): a Card group that stays in view beside long copy on wide screens. */
@media (min-width: 782px) { .itb-form-card { position: sticky; top: 24px; } }
.itb-form-card > * + * { margin-top: 12px; }
.itb-field label small { text-transform: none; letter-spacing: 0; }

/* ═══ Core block styles (registered in inc/blocks.php) ═══ */
.wp-block-group.is-style-callout-teal, .wp-block-group.is-style-callout-orange, .wp-block-group.is-style-callout-navy {
	background: var(--teal-100); border-left: 3px solid var(--teal-700); border-radius: 0 var(--r-chip) var(--r-chip) 0; padding: 18px 22px; color: #15181c; }
.wp-block-group.is-style-callout-orange { background: var(--orange-100); border-color: var(--orange-600); }
.wp-block-group.is-style-callout-navy { background: var(--navy-100); border-color: var(--navy); }
[class*="is-style-callout-"] > * { margin-block: 0; }
[class*="is-style-callout-"] > * + * { margin-top: 8px; }
[class*="is-style-callout-"] .is-style-eyebrow { color: var(--teal-900); font-weight: 600; }
.is-style-callout-orange .is-style-eyebrow { color: #5a3a05; }
.is-style-callout-navy .is-style-eyebrow { color: var(--navy); }

.wp-block-group.is-style-card { background: var(--card); border: 1px solid var(--line); border-radius: var(--r-card); padding: 24px; }
.wp-block-group.is-style-card-dark { background: var(--surface-inverse); color: var(--ink-inverse-muted); border-radius: var(--r-card); padding: 28px; overflow: hidden; }
.is-style-card-dark :is(h2, h3, h4) { color: #fff; }
.is-style-card-dark p { font-size: 14px; }
.is-style-card-dark .wp-block-image img { width: 100%; max-width: 120px; }

/* Hex number (paragraph style): one or two characters in a teal hexagon, e.g. a lane number. */
p.is-style-hex { position: relative; display: grid; place-items: center; width: 44px; height: 40px; flex: none; margin: 0;
	font-family: var(--font-mono); font-weight: 600; font-size: 16px; line-height: 1; color: #fff; isolation: isolate; }
p.is-style-hex::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--teal-700);
	clip-path: polygon(25% 2%, 75% 2%, 98% 50%, 75% 98%, 25% 98%, 2% 50%); }

/* Section head (patterns): hex + eyebrow + heading on the left, short intro on the right. */
.itb-section-head { row-gap: 20px; column-gap: 40px; }
.itb-section-head > .wp-block-group { gap: 18px; }
.itb-section-head .wp-block-heading { margin-top: 4px; }
.itb-section-head > p { max-width: 460px; margin: 0; }

p.is-style-eyebrow { font-family: var(--font-mono); font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
p.is-style-eyebrow::before { content: "· "; }
p.is-style-lede { font-size: var(--wp--preset--font-size--lede); line-height: 1.5; }
/* Reading measure, except directly in a Section (constrained layout): there a narrower lede would be
   centred, so it follows the section's content width instead, aligned with the heading. */
:not(.is-layout-constrained) > p.is-style-lede { max-width: var(--measure); }
/* In a column the column sets the width, so the lede fills it (a centred hero on one full-width column). */
.wp-block-column > p.is-style-lede { max-width: none; }
p.is-style-lede.has-text-align-center { margin-inline: auto; }
p.is-style-lede.has-text-align-right { margin-left: auto; }
:is(p, h2, h3) + .itb-stats { margin-top: var(--wp--preset--spacing--32); }

ul.is-style-hex-ticks, ol.is-style-hex-numbers { list-style: none; padding-left: 0; }
ul.is-style-hex-ticks > li, ol.is-style-hex-numbers > li { position: relative; padding: 10px 0 10px 40px; border-bottom: 1px solid var(--line); }
ul.is-style-hex-ticks > li:last-child, ol.is-style-hex-numbers > li:last-child { border-bottom: 0; }
ul.is-style-hex-ticks > li::before, ol.is-style-hex-numbers > li::before {
	position: absolute; left: 0; top: 10px; width: 24px; height: 22px; display: grid; place-items: center; color: #fff; background: var(--teal-700);
	font-family: var(--font-mono); font-size: 11px; font-weight: 600; clip-path: polygon(25% 2%, 75% 2%, 98% 50%, 75% 98%, 25% 98%, 2% 50%); }
ul.is-style-hex-ticks > li::before { content: "✓"; }
ol.is-style-hex-numbers { counter-reset: itb-hex; }
ol.is-style-hex-numbers > li { counter-increment: itb-hex; }
ol.is-style-hex-numbers > li::before { content: counter(itb-hex); }

.wp-block-table.is-style-itb table { border-collapse: separate; border-spacing: 0; border: 1px solid var(--line); border-radius: var(--r-card); overflow: hidden; background: var(--card); font-size: 14px; }
.wp-block-table.is-style-itb th, .wp-block-table.is-style-itb td { padding: 14px 18px; text-align: left; vertical-align: top; border: 0; border-top: 1px solid var(--line); color: var(--ink-2); }
.wp-block-table.is-style-itb thead { border: 0; }
.wp-block-table.is-style-itb thead th { border-top: 0; background: var(--paper-2); font-family: var(--font-mono); font-weight: 400; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; }
.wp-block-table.is-style-itb tbody td:first-child { font-family: var(--font-display); font-weight: 600; color: var(--ink); }
.wp-block-table.is-style-itb tbody tr:nth-child(even) > * { background: var(--paper); }

.wp-block-button.is-style-secondary .wp-block-button__link { background: var(--teal-700); color: #fff; }
.wp-block-button.is-style-secondary .wp-block-button__link:hover { background: var(--teal-800); color: #fff; }
.wp-block-button.is-style-ghost .wp-block-button__link { background: transparent; color: var(--ink); border: 1px solid var(--line); }
.wp-block-button.is-style-ghost .wp-block-button__link:hover { background: var(--paper-2); }
.is-style-section-dark .wp-block-button.is-style-ghost .wp-block-button__link, .is-style-section-teal .wp-block-button.is-style-ghost .wp-block-button__link { color: #fff; border-color: rgba(255,255,255,.3); }
/* Dark bands: a light tint on hover, not the light-page paper-2 (white text on grey). */
:is(.is-style-section-hero, .is-style-section-dark, .is-style-section-teal) :is(.wp-block-button.is-style-ghost .wp-block-button__link, .itb-btn--ghost):hover { background: rgba(255,255,255,.1); color: #fff; border-color: rgba(255,255,255,.5); }
.wp-block-button.is-style-text-link .wp-block-button__link { background: transparent; color: var(--accent); padding-inline: 0; }
.wp-block-button.is-style-text-link .wp-block-button__link:hover { text-decoration: underline; text-underline-offset: 3px; }
.wp-block-button .wp-block-button__link::after { content: " →"; }

/* ═══ Phase 3: page chrome ═══ */
.is-style-section-hero { position: relative; isolation: isolate; --ink: #fff; }
.is-style-section-hero::before { content: ""; position: absolute; inset: 0; z-index: -1; opacity: .07; pointer-events: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='52'%3E%3Cpolygon points='15,1 45,1 59,26 45,51 15,51 1,26' fill='none' stroke='%23fff' stroke-width='.8'/%3E%3C/svg%3E"); }
.is-style-section-hero .itb-btn--ghost, .is-style-section-hero .wp-block-button.is-style-ghost .wp-block-button__link { color: #fff; border-color: rgba(255,255,255,.3); }
.is-style-section-hero .itb-stats { border-color: rgba(255,255,255,.16); }
.is-style-section-hero .itb-stats dt { color: rgba(255,255,255,.62); }
.is-style-section-hero .itb-stats dd small { color: rgba(255,255,255,.78); }
.is-style-section-hero p.is-style-eyebrow { color: var(--orange-500); }

/* Hero image (blocks/hero-image): 4:5 crop; Blended = greyscale under a teal colour layer. */
.itb-hero-image { position: relative; margin: 0; border-radius: var(--r-card); border: 1px solid rgba(255,255,255,.15); overflow: hidden; isolation: isolate; }
.itb-hero-image img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; }
.itb-hero-image--blended img { filter: grayscale(1) contrast(1.08); }
.itb-hero-image--blended::after { content: ""; position: absolute; inset: 0; pointer-events: none;
	background: linear-gradient(160deg, var(--teal-700) 0%, var(--teal-900) 100%); mix-blend-mode: color; }
.itb-hero-image--blended::before { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: var(--teal-900); opacity: .18; mix-blend-mode: multiply; }
/* Hero hex background (assets/js/hex-hero.js, from the HeroHex mockup). Settings are
   unitless numbers the script reads once: number of wandering spots (1–6), hex size px, glow radius px, opacities 0–1,
   wander speed px/s, fades and pointer lag in ms. The ::before grid is the static
   fallback (editor, no JS); the script hides it once its layers are in. */
.is-style-section-hero, .itb-post-hero {
	--hx-spots: 4; --hx-size: 10; --hx-radius: 70; --hx-glow: var(--orange-500);
	--hx-base: .05; --hx-hover: .6; --hx-wander: .3;
	--hx-speed: 310; --hx-fade-in: 600; --hx-fade-out: 1200; --hx-lag: 100;
}
/* TEMPORARY */
.is-style-section-hero, .itb-post-hero {
	--hx-spots: 2; --hx-size: 30; --hx-radius: 300; --hx-glow: var(--teal-300);
	--hx-base: .05; --hx-hover: .95; --hx-wander: .8;
	--hx-speed: 310; --hx-fade-in: 600; --hx-fade-out: 1200; --hx-lag: 100;
	/* Donut: clear centre, ring. Delete these two lines to go back to solid spots. */
	--hx-ring: var(--teal-300); /* outer ring colour */
	/*--hx-soft-stops: transparent 0%, transparent 60%, #000 76%, rgba(0,0,0,0.4) 84%, transparent 94%;*/
	--hx-soft-stops: transparent 0%, transparent 60%, #000 76%, #000 82%, transparent 85%;
	--hx-core-stops: transparent 0%, transparent 86%, #000 96%, transparent 100%;
}
/* End Temp */
.itb-hx { position: absolute; inset: 0; z-index: -1; width: 100%; height: 100%; max-width: none !important; margin: 0 !important; pointer-events: none; }
.itb-hx--base { opacity: var(--hx-base); }
.itb-hx--soft, .itb-hx--core { opacity: var(--hx-level, 0); transition: opacity var(--hx-fade, 600ms) cubic-bezier(.4,0,.2,1); }
.itb-hx--soft {
	/* The script replaces these masks with one gradient per spot (--mx0/--my0 …). */
	-webkit-mask-image: radial-gradient(circle calc(var(--hx-radius) * 1px) at var(--mx0, -9999px) var(--my0, -9999px), #000 0%, rgba(0,0,0,.5) 50%, transparent 100%);
	mask-image: radial-gradient(circle calc(var(--hx-radius) * 1px) at var(--mx0, -9999px) var(--my0, -9999px), #000 0%, rgba(0,0,0,.5) 50%, transparent 100%);
}
.itb-hx--core {
	-webkit-mask-image: radial-gradient(circle calc(var(--hx-radius) * .7px) at var(--mx0, -9999px) var(--my0, -9999px), #000 0%, transparent 100%);
	mask-image: radial-gradient(circle calc(var(--hx-radius) * .7px) at var(--mx0, -9999px) var(--my0, -9999px), #000 0%, transparent 100%);
}
.itb-hx--core path { stroke: var(--hx-glow); }
.itb-hx--soft path { stroke: var(--hx-ring, #fff); }
.is-style-section-hero.has-itb-hx::before, .itb-post-hero.has-itb-hx:not(.has-image)::before, .is-style-section-hero.is-hex-off::before { display: none; }

.itb-breadcrumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 10px;
	font-family: var(--font-mono); font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.itb-breadcrumbs li + li::before { content: "/"; margin-right: 10px; opacity: .6; }
.itb-breadcrumbs a { color: inherit; text-decoration: none; }
.itb-breadcrumbs a:hover { color: var(--accent); }
.itb-breadcrumbs [aria-current] { color: var(--accent); }
.is-style-section-hero .itb-breadcrumbs ol, .is-style-section-dark .itb-breadcrumbs ol, .is-style-section-teal .itb-breadcrumbs ol { color: var(--ink-inverse-muted); }
.is-style-section-hero .itb-breadcrumbs [aria-current], .is-style-section-dark .itb-breadcrumbs [aria-current], .is-style-section-teal .itb-breadcrumbs [aria-current] { color: #fff; }
/* Teal hover disappears on dark grounds: gold instead. */
:is(.is-style-section-hero, .is-style-section-dark, .is-style-section-teal, .itb-post-hero) .itb-breadcrumbs a:is(:hover, :focus-visible) { color: var(--orange-500); }

/* Default page heading (pages not yet rebuilt in blocks) */
.itb-page-head { border-bottom: 1px solid var(--line); }

/* Pills inside paragraphs (patterns use <span class="itb-pill">) keep their own colours */
.wp-block-group .itb-pill { text-decoration: none; }

/* Header, main and footer sit flush: WordPress puts the global block gap
   between top-level template parts, which left a 24px strip under the header
   and above the footer. */
.wp-site-blocks > * { margin-block: 0; }

/* Full-width sections in post content sit flush; no gap between stacked bands */
.wp-site-blocks > main > .wp-block-post-content > .alignfull { margin-block: 0; }
.wp-block-post-content > .alignfull + .alignfull { margin-top: 0; }
/* page.html: no white gap above a full-width first block or below a full-width last one (e.g. a CTA band). */
.itb-page-body:has(> .wp-block-post-content > .alignfull:first-child) { padding-top: 0 !important; }
.itb-page-body:has(> .wp-block-post-content > .alignfull:last-child) { padding-bottom: 0 !important; }
.itb-page-body > .wp-block-post-content > .alignfull:first-child { margin-top: 0; }
/* An empty eyebrow (placeholder left blank) would print just its "·". */
.wp-site-blocks p.is-style-eyebrow:empty { display: none; }

/* Cards keep their own colours on dark and teal sections (they're white; those sections redefine --ink as white). */
.itb-card { --ink: var(--wp--preset--color--ink); --ink-2: var(--wp--preset--color--ink-2); --muted: var(--wp--preset--color--muted); color: var(--ink-2); }
.itb-card :is(h2, h3, h4, .itb-card__title) { color: var(--ink); }
.itb-card a.itb-card__more { color: var(--teal-700); }
.itb-card a.itb-card__more:hover { color: var(--teal-900); }

/* Headline last beat in gold (<em> in a heading on dark grounds) */
.is-style-section-hero :is(h1, h2) em, .is-style-section-dark :is(h1, h2) em, .is-style-section-teal :is(h1, h2) em { font-style: normal; color: var(--orange-500); }
:is(h1, h2).has-display-xl-font-size, :is(h1, h2).has-display-l-font-size, :is(h1, h2).has-display-m-font-size { font-weight: 800; line-height: 1.04; letter-spacing: -.02em; }

/* Vendor strip */
p.is-style-vendors { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 32px; margin: 0 auto;
	font-family: var(--font-display); font-weight: 700; font-size: 16px; letter-spacing: -.01em; color: var(--muted); }
p.is-style-vendors .itb-vendors__label { flex: 0 0 180px; font-family: var(--font-mono); font-weight: 400; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; }

/* Post cards (query loops) */
.wp-block-post-template .is-style-card { display: flex; flex-direction: column; gap: 10px; height: 100%; }
.wp-block-post-template .is-style-card > * { margin: 0; }
.wp-block-post-template .wp-block-post-featured-image { margin: -24px -24px 6px; }
.wp-block-post-template .wp-block-post-featured-image img { border-radius: var(--r-card) var(--r-card) 0 0; }
.wp-block-post-date.itb-meta { font-family: var(--font-mono); font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.wp-block-post-title a { color: var(--ink); text-decoration: none; }
.wp-block-post-title a:hover { color: var(--accent); }

/* Cards fill their grid cell (equal heights, links aligned at the bottom).
   Front end: the card is the grid item and stretches by default (no height
   rule: percentage heights made rows too short and cards overlapped). Editor: ACF wraps each
   block in extra containers, so make the chain a flex column and let the card
   take the remaining space (no fixed heights, so it can't overflow the cell). */
.is-layout-grid > [data-type^="itb/"],
.is-layout-grid > [data-type^="itb/"] .acf-block-component,
.is-layout-grid > [data-type^="itb/"] .acf-block-body,
.is-layout-grid > [data-type^="itb/"] .acf-block-body > div,
.is-layout-grid > [data-type^="itb/"] .acf-block-preview { display: flex; flex-direction: column; flex: 1 1 auto; min-height: 0; }
.is-layout-grid > [data-type^="itb/"] :is(.itb-card, .itb-hcard) { flex: 1 1 auto; height: auto; }

/* ── Headed card (itb/headed-card): coloured head with a number and icon, body, pills, arrow ── */
.itb-hcard { --ink: var(--wp--preset--color--ink); --ink-2: var(--wp--preset--color--ink-2); --muted: var(--wp--preset--color--muted);
	position: relative; display: flex; flex-direction: column; height: 100%; min-width: 0; overflow: hidden; color: var(--ink-2);
	background: var(--card); border: 1px solid var(--line); border-radius: var(--r-card); transition: border-color .2s, box-shadow .2s; }
.itb-hcard__head { position: relative; isolation: isolate; display: grid; place-items: center; height: 112px; color: #fff; background: var(--teal-700); }
/* Same hex grid as the hero (hex-hero.js, --hx-size: 10): 10px sides, tile 30 × 17.32. */
.itb-hcard__head::before { content: ""; position: absolute; inset: 0; z-index: -1; opacity: .09; background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='17.32'%3E%3Cpath d='M0,8.66 L5,0 L15,0 L20,8.66 L15,17.32 L5,17.32 Z M20,8.66 L30,8.66' fill='none' stroke='%23000' stroke-width='.8'/%3E%3C/svg%3E");
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='17.32'%3E%3Cpath d='M0,8.66 L5,0 L15,0 L20,8.66 L15,17.32 L5,17.32 Z M20,8.66 L30,8.66' fill='none' stroke='%23000' stroke-width='.8'/%3E%3C/svg%3E"); }
.itb-hcard--light .itb-hcard__head { background: color-mix(in oklab, var(--teal-700) 20%, var(--paper-2)); color: var(--teal-800); }
.itb-hcard--dark .itb-hcard__head { background: var(--teal-900); color: var(--teal-300); }
.itb-hcard--image .itb-hcard__head { height: 160px; background: var(--teal-900); }
.itb-hcard--image .itb-hcard__head::before { display: none; }
.itb-hcard__img { position: absolute; inset: 0; z-index: -1; width: 100%; height: 100%; object-fit: cover; }
.itb-hcard__num { position: absolute; top: 12px; left: 14px; font-family: var(--font-mono); font-size: 11px; letter-spacing: .08em; opacity: .75; }
.itb-hcard--image .itb-hcard__num { opacity: 1; padding: 2px 6px; border-radius: var(--r-chip); background: rgba(9, 32, 38, .7); color: #fff; }
.itb-hcard__icon { width: 44px; height: 44px; }
.itb-hcard__body { display: flex; flex-direction: column; gap: 10px; flex: 1; padding: 22px 24px 18px; }
.itb-hcard__title { font-family: var(--font-display); font-weight: 700; font-size: var(--wp--preset--font-size--h-3); line-height: 1.2; letter-spacing: -.01em; color: var(--ink); margin: 0; }
.itb-hcard p { font-size: 14px; margin: 0; }
.itb-hcard__foot { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 12px; margin-top: auto; padding-top: 14px; border-top: 1px solid var(--line); }
.itb-hcard__fit { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.itb-hcard__foot .itb-pill { padding: 3px 7px; font-size: 10px; }
.itb-hcard__label { margin-right: 4px; font-family: var(--font-mono); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.itb-hcard__link { color: var(--teal-700); text-decoration: none; font-size: 18px; line-height: 1; }
.itb-hcard__link::before { content: ""; position: absolute; inset: 0; } /* whole card clickable */
.itb-hcard:has(.itb-hcard__link):hover { border-color: var(--teal-700); box-shadow: 0 6px 20px rgba(9, 32, 38, .08); }
.itb-hcard__link:focus-visible { outline: 0; }
.itb-hcard:has(.itb-hcard__link:focus-visible) { outline: 2px solid var(--focus); outline-offset: 2px; }

/* ═══ Phase 3: templates (blog, locations, white papers, partners) ═══ */
[data-itb-filter] [hidden] { display: none !important; }
.itb-h2, .itb-h3, .itb-h4 { font-family: var(--font-display); font-weight: 700; color: var(--ink); margin: 0; }
.itb-h2 { font-size: var(--wp--preset--font-size--h-2); line-height: 1.1; letter-spacing: -.015em; }
.itb-h3 { display: block; font-size: var(--wp--preset--font-size--h-3); line-height: 1.2; letter-spacing: -.01em; }
.itb-h4 { display: block; font-size: var(--wp--preset--font-size--h-4); line-height: 1.25; }

/* Full-bleed template blocks: content sits in the same 1040px column as the rest of the site. */
.itb-post-hero__inner, .itb-article-head__inner, .itb-white-paper__main,
.itb-white-paper__related-inner, .itb-partners__inner, .itb-partners__filters, .itb-article__grid {
	box-sizing: content-box; max-width: var(--wp--style--global--wide-size, 1040px); margin-inline: auto; padding-inline: var(--wp--custom--gutter); }

/* Meta line (mono, slash-separated) */
.itb-post-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; margin: 0;
	font-family: var(--font-mono); font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.itb-post-meta--rule { margin-top: 28px; padding-top: 18px; border-top: 1px solid var(--line); gap: 12px 28px; }
.itb-post-meta a { color: inherit; text-decoration: none; }
.itb-post-meta__updated { color: var(--accent); }

/* Legacy post hero */
.itb-post-hero { position: relative; overflow: hidden; isolation: isolate; display: flex; flex-direction: column; justify-content: center; min-height: 440px;
	background: var(--teal-900); color: #fff; }
.itb-post-hero::before { content: ""; position: absolute; inset: 0; z-index: -1; opacity: .07; pointer-events: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='52'%3E%3Cpolygon points='15,1 45,1 59,26 45,51 15,51 1,26' fill='none' stroke='%23fff' stroke-width='.8'/%3E%3C/svg%3E"); }
.itb-post-hero.has-image::before { opacity: 1; background: linear-gradient(180deg, rgba(0,71,87,.6) 0%, rgba(0,71,87,.9) 100%); }
.itb-post-hero__img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; opacity: .45; }
.itb-post-hero--large { min-height: min(90vh, 720px); justify-content: flex-end; }
.itb-post-hero--large.has-image::before { background: linear-gradient(180deg, rgba(0,71,87,.35) 0%, rgba(0,71,87,.65) 60%, rgba(0,71,87,.92) 100%); }
.itb-post-hero__inner { width: 100%; padding-block: 40px 56px; }
.itb-post-hero .itb-breadcrumbs ol, .itb-post-hero .itb-post-meta { color: var(--ink-inverse-muted); }
.itb-post-hero .itb-breadcrumbs [aria-current] { color: #fff; }
.itb-post-hero__title { font-family: var(--font-display); font-weight: 800; font-size: clamp(32px, 4vw, 48px); line-height: 1.05; letter-spacing: -.02em;
	color: #fff; margin: 20px 0 0; max-width: 900px; text-wrap: balance; }
.itb-post-hero--large .itb-post-hero__title { font-size: clamp(40px, 5vw, 64px); }
.itb-post-hero__intro { margin-top: 20px; max-width: 720px; font-size: 19px; line-height: 1.5; color: #fff; }
.itb-post-hero__intro p { color: inherit; margin: 0; }
.itb-post-hero .itb-post-meta { margin-top: 24px; }
.itb-post-meta__cat { color: var(--orange-500) !important; }

/* Post body: prose for classic and block content */
.itb-post-image { margin-bottom: var(--wp--preset--spacing--48); }
.itb-post-image img { border-radius: var(--r-card); border: 1px solid var(--line); }
.itb-prose { font-size: 16px; line-height: 1.6; color: var(--ink-2); }
.itb-prose > * + * { margin-top: 18px; }
.itb-prose p { margin-bottom: 0; }
.itb-prose :is(b, strong) { color: var(--ink); font-weight: 600; }
.itb-prose a:not(.wp-element-button):not(.itb-btn):not(.itb-pill) { color: var(--teal-700); text-decoration: underline; text-underline-offset: 3px; }
.itb-prose h2 { margin-top: 48px; }
.itb-prose h3 { margin-top: 32px; }
.itb-prose :is(ul, ol):not([class*="is-style-"]) { padding-left: 22px; }
.itb-prose li + li { margin-top: 6px; }
.itb-prose li::marker { color: var(--teal-700); font-family: var(--font-mono); }
.itb-prose blockquote { margin: 28px 0; padding: 18px 22px; border-left: 3px solid var(--orange-500); border-radius: 0 var(--r-chip) var(--r-chip) 0; background: var(--paper); }
.itb-prose blockquote p { font-family: var(--font-display); font-weight: 600; font-size: 19px; line-height: 1.45; color: var(--ink); margin: 0; }
.itb-prose img { max-width: 100%; height: auto; border-radius: var(--r-chip); }
.itb-prose table:not(.itb-table) { width: 100%; border-collapse: collapse; font-size: 14px; }
.itb-prose table:not(.itb-table) :is(th, td) { padding: 10px 14px; border-top: 1px solid var(--line); text-align: left; vertical-align: top; }
.itb-prose iframe { max-width: 100%; }

/* Default spacing; the block's Dimensions panel (margin and padding, top and bottom) overrides it per splitter. */
.itb-section-break { display: flex; align-items: center; gap: 14px; margin: 64px 0 56px; }
/* Editor: the block wrapper holds the spacing (default here, the panel's values inline). */
.editor-styles-wrapper .wp-block[data-type="itb/splitter"] { margin-top: 64px; margin-bottom: 56px; }
[data-type="itb/splitter"] .itb-section-break { margin: 0; }
.itb-section-break::before, .itb-section-break::after { content: ""; flex: 1; height: 1px; background: var(--line); }
:is(.is-style-section-hero, .is-style-section-dark, .is-style-section-teal) .itb-section-break::before,
:is(.is-style-section-hero, .is-style-section-dark, .is-style-section-teal) .itb-section-break::after { background: rgba(255,255,255,.2); }
:is(.is-style-section-hero, .is-style-section-dark, .is-style-section-teal) .itb-section-break .itb-meta { color: var(--ink-inverse-muted); }

/* Testimonial (blocks/testimonial): white card, gold quote mark, Archivo quote. */
.itb-testimonial { --ink: var(--wp--preset--color--ink); --ink-2: var(--wp--preset--color--ink-2); margin: 0; background: var(--card); border: 1px solid var(--line); border-radius: var(--r-card); padding: clamp(24px, 4vw, 40px); display: flex; flex-direction: column; gap: 20px; color: var(--ink-2); }
.itb-testimonial__quote { margin: 0; padding: 0; border: 0; position: relative; padding-top: 28px; }
.itb-testimonial__quote::before { content: "\201C"; position: absolute; top: -14px; left: -2px; font-family: var(--font-display); font-weight: 800; font-size: 64px; line-height: 1; color: var(--orange-500); }
.itb-testimonial__quote p { margin: 0; font-family: var(--font-display); font-weight: 600; font-size: clamp(18px, 2vw, 22px); line-height: 1.4; letter-spacing: -.01em; color: var(--ink); text-wrap: pretty; }
.itb-testimonial__by { display: flex; align-items: center; gap: 14px; font-size: 15px; }
.itb-testimonial__by > span { display: flex; flex-direction: column; gap: 2px; }
.itb-testimonial__by b { font-family: var(--font-display); color: var(--ink); }
.itb-testimonial__photo { width: 52px; height: 48px; object-fit: cover; flex: none; clip-path: polygon(25% 2%, 75% 2%, 98% 50%, 75% 98%, 25% 98%, 2% 50%); }
.itb-testimonial__video { aspect-ratio: 16 / 9; border-radius: var(--r-chip); overflow: hidden; background: var(--teal-900); }
.itb-testimonial__video iframe { display: block; width: 100%; height: 100%; border: 0; }
.itb-testimonial--empty { color: var(--muted); border-style: dashed; text-align: center; font-size: 14px; }
.itb-post-cats { margin-top: 40px !important; font-size: 14px; color: var(--muted); }
.itb-post-cats a { color: var(--teal-700); }

/* Author card */
.itb-author { margin-top: 48px; padding: 24px; border: 1px solid var(--line); border-radius: var(--r-card); background: var(--paper);
	display: grid; grid-template-columns: 64px 1fr; gap: 18px; }
.itb-author__mark { width: 64px; height: 64px; border-radius: 50%; background: var(--teal-100); color: var(--teal-900); display: grid; place-items: center;
	font-family: var(--font-display); font-weight: 700; font-size: 22px; }
.itb-author__name { display: block; margin-top: 4px; font-family: var(--font-display); font-weight: 700; font-size: 18px; color: var(--ink); }
.itb-author p { margin: 8px 0 0; font-size: 14px; color: var(--ink-2); max-width: 560px; }

/* Post FAQ band */

/* Modern article */
.itb-article-head { background: var(--paper); border-bottom: 1px solid var(--line); }
.itb-article-head__inner { padding-block: 40px 56px; }
.itb-article-head__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: 48px; margin-top: 28px; align-items: end; }
.itb-article-head__pills { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 18px; }
.itb-article-head__title { font-family: var(--font-display); font-weight: 800; font-size: clamp(36px, 4vw, 48px); line-height: 1.05; letter-spacing: -.02em;
	color: var(--ink); margin: 0; text-wrap: balance; }
.itb-article-head__image { margin: 0; }
.itb-article-head__image img { display: block; width: 100%; height: 280px; object-fit: cover; border-radius: var(--r-card); }
.itb-article__grid { display: flex; flex-wrap: wrap; gap: 56px; align-items: flex-start; }
.itb-article__body { flex: 999 1 560px; min-width: 0; max-width: 680px; }
.itb-prose--numbered { counter-reset: itb-h2; }
.itb-prose--numbered > h2 { counter-increment: itb-h2; margin-top: 56px; }
.itb-prose--numbered > h2::before { content: counter(itb-h2, decimal-leading-zero); margin-right: 14px; vertical-align: middle;
	font-family: var(--font-mono); font-weight: 500; font-size: 13px; letter-spacing: .1em; color: var(--accent); }
.itb-prose--numbered > p:first-child { font-size: 19px; line-height: 1.5; font-weight: 500; color: var(--ink); }
.itb-prose--numbered > :is(h2, h3) { scroll-margin-top: 96px; }

.itb-toc { flex: 0 1 180px; border-right: 1px solid var(--line); padding-right: 20px; position: sticky; top: calc(48px + var(--wp-admin--admin-bar--height, 0px)); }
.itb-toc .itb-eyebrow { margin: 0; }
.itb-toc ol { list-style: none; margin: 14px 0 0; padding: 0; display: flex; flex-direction: column; gap: 9px; font-size: 13px; line-height: 1.35; }
.itb-toc li { display: grid; grid-template-columns: 26px 1fr; gap: 6px; }
.itb-toc li span { font-family: var(--font-mono); font-size: 11px; color: var(--muted); }
.itb-toc li a { color: var(--ink-2); text-decoration: none; }
.itb-toc li a:hover { color: var(--accent); }
.itb-toc__details > summary { list-style: none; cursor: default; margin: 0; }
.itb-toc__details > summary::-webkit-details-marker { display: none; }
.itb-toc li a.is-active { color: var(--ink); font-weight: 600; }
.itb-toc li:has(a.is-active) span { color: var(--accent); }

/* Share links: under "On this page" on wide screens, at the end of the article on phones. */
.itb-share__label { margin: 0; }
.itb-share__links { display: flex; gap: 8px; margin: 10px 0 0; }
.itb-share__links a { width: 32px; height: 32px; border: 1px solid var(--line); border-radius: var(--r-chip); display: inline-grid; place-items: center;
	font-family: var(--font-mono); font-size: 11px; text-decoration: none; color: var(--ink-2); }
.itb-share__links a:hover { border-color: var(--teal-700); color: var(--teal-700); }
.itb-share--toc { margin-top: 28px; padding-top: 18px; border-top: 1px solid var(--line); }
.itb-share--end { display: none; margin-top: 32px; }

@media (max-width: 860px) {
	/* One collapsed "On this page" bar above the article; the repeats after Sections are dropped. */
	.itb-toc { position: static; flex-basis: 100%; border-right: 0; padding-right: 0; }
	.itb-toc--repeat { display: none; }
	.itb-toc__details { border: 1px solid var(--line); border-radius: var(--r-card); background: var(--paper); }
	.itb-toc__details > summary { cursor: pointer; padding: 14px 16px; display: flex; justify-content: space-between; align-items: center; }
	.itb-toc__details > summary::after { content: "+"; font-size: 18px; line-height: 1; color: var(--accent); }
	.itb-toc__details[open] > summary::after { content: "–"; }
	.itb-toc__details ol { margin: 0; padding: 0 16px 16px; }
	.itb-share--toc { display: none; }
	.itb-share--end { display: block; }
}

/* Modern posts: the article runs in a reading column beside "On this page"; full-width
   Sections in the post break out between runs (blocks/article). Numbering carries on across runs. */
.itb-article-flow { counter-reset: itb-h2; }
.itb-article-flow .itb-prose--numbered { counter-reset: none; }
.itb-article { background: var(--card); padding-block: 48px 96px; }
.itb-article--before-section { padding-bottom: 64px; }
.itb-article--after-section { padding-top: 64px; }
.itb-article--after-section .itb-prose--numbered > p:first-child { font-size: inherit; font-weight: inherit; color: inherit; line-height: inherit; }
.itb-article-break > .alignfull { margin-block: 0; }
/* A Section with no colour chosen matches the white article around it (not the grey page background). */
.itb-article-break { background: var(--card); }

/* Blog index and archives */
.itb-post-list .wp-block-post-title { margin: 0; }
.itb-post-list .wp-block-post-excerpt__excerpt { margin: 0; color: var(--ink-2); }

/* Blog tiles (blocks/post-tiles, blocks/latest-tiles). --tile-bg is the hex SVG or the
   featured image. The title link stretches over the whole tile. */
.itb-tiles__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.itb-tile { position: relative; display: flex; flex-direction: column; border-radius: var(--r-card); overflow: hidden;
	background: var(--card); border: 1px solid var(--line); transition: box-shadow .2s, transform .2s; }
.itb-tile:hover { box-shadow: 0 10px 30px rgba(0,48,60,.12); transform: translateY(-2px); }
.itb-tile:focus-within { outline: 2px solid var(--focus); outline-offset: 2px; }
.itb-tile :is(.itb-tile__title, .itb-tile__headline) a { color: inherit; text-decoration: none; }
.itb-tile :is(.itb-tile__title, .itb-tile__headline) a:focus { outline: none; }
.itb-tile :is(.itb-tile__title, .itb-tile__headline) a::after { content: ""; position: absolute; inset: 0; }
.itb-tile em { font-style: normal; color: var(--orange-500); }
.itb-tile__more { margin: auto 0 0; padding-top: 16px; font-family: var(--font-mono); font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--teal-700); }

.itb-tile__panel { aspect-ratio: 5 / 3; padding: 22px 28px; display: flex; flex-direction: column; justify-content: space-between; align-items: flex-start; gap: 16px;
	background: var(--teal-900) var(--tile-bg) center / cover no-repeat; }
.itb-tile.has-image.has-text .itb-tile__panel { background-image: linear-gradient(180deg, rgba(0,48,60,.05) 25%, rgba(0,48,60,.85) 100%), var(--tile-bg); }
.itb-tile__chip { background: transparent; color: #fff; border-color: rgba(255,255,255,.45); }
.itb-tile.has-image .itb-tile__chip { background: rgba(0,48,60,.7); }
.itb-tile__panel .itb-tile__headline { margin: auto 0 0; font-family: var(--font-display); font-weight: 800; font-size: clamp(22px, 2.2vw, 28px); line-height: 1.1; letter-spacing: -.015em; color: #fff; }
.itb-tile__body { flex: 1; display: flex; flex-direction: column; gap: 10px; padding: 24px 28px 28px; }
.itb-tile__body .itb-meta { margin: 0; }
.itb-tile__title { margin: 0; font-family: var(--font-display); font-weight: 700; font-size: 20px; line-height: 1.25; color: var(--ink); }
.itb-tile:hover .itb-tile__title { color: var(--teal-700); }
.itb-tile__body .itb-tile__snippet { margin: 0; font-size: 15px; line-height: 1.55; color: var(--ink-2); }

.itb-tile--latest { grid-column: span 2; justify-content: center; gap: 0; padding: clamp(28px, 4vw, 48px); border: 0; color: #fff;
	background: var(--teal-900) var(--tile-bg) center / cover no-repeat; }
.itb-tile--latest.has-image { background-image: linear-gradient(135deg, rgba(0,48,60,.92) 0%, rgba(0,71,87,.82) 55%, rgba(12,111,130,.72) 100%), var(--tile-bg); }
.itb-tile--latest .itb-tile__meta { margin: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 14px; font-family: var(--font-mono); font-size: 13px; letter-spacing: .1em; text-transform: uppercase; color: #fff; }
.itb-tile--latest .itb-tile__headline { margin: clamp(32px, 6vw, 80px) 0 0; max-width: 18ch; font-family: var(--font-display); font-weight: 800; font-size: clamp(32px, 3.6vw, 48px); line-height: 1.05; letter-spacing: -.02em; color: #fff; }
.itb-tile--latest .itb-tile__snippet { margin: 24px 0 0; max-width: 62ch; font-size: 17px; line-height: 1.55; color: rgba(255,255,255,.88); }
.itb-tile--latest .itb-tile__more { margin-top: 20px; padding: 0; color: #fff; }
.itb-tile--latest:focus-within { outline-color: var(--orange-500); }

@media (max-width: 960px) { .itb-tiles__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) {
	.itb-tiles__grid { grid-template-columns: 1fr; }
	.itb-tile--latest { grid-column: auto; }
}
.itb-pagination { margin-top: var(--wp--preset--spacing--64); gap: 8px; font-family: var(--font-mono); font-size: 13px; }
.itb-pagination a, .itb-pagination .current { padding: 8px 12px; border: 1px solid var(--line); border-radius: var(--r-btn); color: var(--ink); text-decoration: none; }
.itb-pagination .current { background: var(--teal-700); border-color: var(--teal-700); color: #fff; }

/* Location */
.itb-loc-towns { display: flex; flex-direction: column; gap: 14px; width: 100%; max-width: 420px; margin-left: auto; }
@media (max-width: 781px) { .itb-loc-towns { max-width: none; margin-left: 0; } } /* columns stack at 781px: go full width */
.itb-loc-towns__card { border: 1px solid rgba(255,255,255,.15); border-radius: var(--r-card); background: rgba(255,255,255,.05); padding: 24px;
	display: flex; flex-direction: column; gap: 14px; }
.itb-loc-towns__card p { margin: 0; font-size: 14px; }
.itb-loc-towns__list { display: flex; flex-wrap: wrap; gap: 8px; }
.itb-loc-towns__chip { display: flex; gap: 14px; align-items: center; padding: 14px 18px; border-radius: var(--r-card); border: 1px solid rgba(255,255,255,.14);
	background: rgba(255,255,255,.05); }
.itb-loc-towns__chip b { font-size: 14px; color: #fff; }
.itb-loc-towns__k { display: block; font-family: var(--font-mono); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-inverse-muted); }
.itb-loc-nearby .itb-eyebrow { margin: 0; }
.itb-loc-nearby__list { display: flex; flex-wrap: wrap; gap: 8px 10px; margin: 14px 0 0; }
.itb-loc-nearby__list a:hover { border-color: var(--teal-700); color: var(--teal-700); }

/* Filters (white papers, partners) */
.itb-filters { display: flex; flex-wrap: wrap; gap: 8px; }

/* White paper library */
.itb-library > * + * { margin-top: 32px; }
.itb-paper__pills { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; }
.itb-paper-feature { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 360px), 1fr)); border-radius: var(--r-card); overflow: hidden;
	background: var(--surface-inverse); color: #fff; }
.itb-paper-feature__cover { min-height: 280px; background: repeating-linear-gradient(135deg, var(--teal-800) 0 14px, var(--teal-900) 14px 28px); }
.itb-paper-feature__cover img { display: block; width: 100%; height: 100%; object-fit: cover; }
.itb-paper-feature__body { padding: 36px; display: flex; flex-direction: column; align-items: flex-start; gap: 14px; }
.itb-paper-feature__body .itb-display { color: #fff; font-size: clamp(28px, 3vw, 36px); }
.itb-paper-feature__body p { margin: 0; }
.itb-paper-feature__body .itb-btn { margin-top: auto; }
.itb-paper-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: var(--wp--preset--spacing--24); }
.itb-paper { position: relative; display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: var(--r-card); overflow: hidden; background: var(--card); }
.itb-paper:hover { border-color: var(--teal-700); }
/* Covers locked to A4 portrait (210 × 297), cropped from the top so the title stays in view.
   overflow: hidden stops a tall image stretching the box past its ratio. */
.itb-paper__cover { display: block; aspect-ratio: 210 / 297; overflow: hidden; background: repeating-linear-gradient(135deg, var(--paper-2) 0 12px, var(--paper) 12px 24px); }
.itb-paper__cover img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: top; }
.itb-paper__body { padding: 20px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.itb-paper__body > p:not(.itb-paper__pills) { margin: 0; font-size: 14px; color: var(--ink-2); }
.itb-paper__title { margin: 0; font-family: var(--font-display); font-weight: 700; font-size: 18px; line-height: 1.25; }
.itb-paper__title a { color: var(--ink); text-decoration: none; }
.itb-paper__title a::after { content: ""; position: absolute; inset: 0; } /* whole card clicks through */
.itb-filter-empty { color: var(--muted); }
.itb-load-more { display: flex; justify-content: center; }

/* White paper single */
.itb-white-paper__main { padding-block: 40px 80px; }
.itb-white-paper__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: 56px; margin-top: 32px; align-items: start; }
.itb-white-paper__info { display: flex; flex-direction: column; gap: 20px; }
.itb-white-paper__info .itb-display { font-size: clamp(36px, 4vw, 48px); }
.itb-white-paper__detail { display: grid; grid-template-columns: minmax(0, 180px) 1fr; gap: 24px; align-items: start; }
.itb-white-paper__detail:not(:has(img)) { grid-template-columns: 1fr; }
.itb-white-paper__cover { width: 100%; height: auto; aspect-ratio: 210 / 297; object-fit: cover; object-position: top; border-radius: var(--r-chip); border: 1px solid var(--line); }
.itb-white-paper__desc { font-size: 16px; line-height: 1.6; color: var(--ink-2); }
.itb-white-paper__desc > :first-child { margin-top: 0; }
.itb-white-paper__action { position: sticky; top: calc(24px + var(--wp-admin--admin-bar--height, 0px)); }
.itb-white-paper__buttons { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; }
.itb-white-paper__viewer { margin-top: 56px; scroll-margin-top: 24px; }
.itb-white-paper__viewer iframe { display: block; width: 100%; height: min(85vh, 900px); border: 1px solid var(--line); border-radius: var(--r-card); background: var(--paper-2); }
.itb-white-paper__viewer .itb-meta { margin-top: 10px; text-transform: none; }
.itb-white-paper__related { background: var(--card); border-top: 1px solid var(--line); }
.itb-white-paper__related-inner { padding-block: 64px 80px; }
.itb-white-paper__related .itb-grid { margin-top: 18px; }
@media (max-width: 600px) { .itb-white-paper__detail { grid-template-columns: 1fr; } .itb-white-paper__cover { max-width: 180px; } }

/* Partners */
.itb-partners__filters { padding-block: 0 32px; background: var(--paper); }
.itb-partners { background: var(--paper); }
.itb-partners__strategic { background: var(--card); border-top: 1px solid var(--line); }
.itb-partners__strategic .itb-partners__inner { padding-block: 72px; }
.itb-partners__other { background: var(--paper-2); }
.itb-partners__other .itb-partners__inner { padding-block: 64px 72px; }
.itb-partners__other .itb-eyebrow { color: var(--ink-2); margin: 0; }
.itb-partners__head { display: flex; flex-wrap: wrap; gap: 16px 40px; align-items: flex-end; justify-content: space-between; margin-bottom: 32px; }
.itb-partners__head .itb-eyebrow { margin: 0; }
.itb-partners__head .itb-h2 { margin-top: 8px; }
.itb-partner-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 16px; }
.itb-partner-grid--small { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; margin-top: 20px; }
.itb-partner { display: flex; flex-direction: column; gap: 14px; padding: 18px; border: 1px solid var(--line); border-radius: var(--r-card); background: var(--card);
	text-decoration: none; color: var(--ink); }
.itb-partner:hover { border-color: var(--teal-700); }
.itb-partner__logo { height: 72px; padding: 12px; border-radius: var(--r-btn); background: var(--paper); display: grid; place-items: center;
	font-family: var(--font-display); font-weight: 700; font-size: 17px; color: var(--ink-2); }
.itb-partner__logo img { max-width: 100%; max-height: 48px; width: auto; height: auto; object-fit: contain; }
.itb-partner__foot { display: flex; justify-content: space-between; align-items: center; gap: 8px; font-size: 14px; }
.itb-partner__foot .itb-meta { color: var(--accent); }
.itb-partner--small { display: grid; place-items: center; height: 64px; padding: 8px; border-radius: var(--r-btn); text-align: center;
	font-family: var(--font-display); font-weight: 700; font-size: 15px; color: var(--ink-2); }
.itb-partners .itb-filter-empty { padding-block: 48px; }

/* Location review fixes (2026-10-29) */
.is-style-section-hero .itb-stats { margin-top: var(--wp--preset--spacing--48); }
.is-style-section-dark p.is-style-eyebrow, .is-style-section-teal p.is-style-eyebrow { color: var(--orange-500); }

/* Section: gold (styles/section-gold.json; website-only, agreed 2026-11-02). Dark grey text and
   buttons (white text), dark teal eyebrows and links. Contrast on #ffb750: ink-2 and teal-900 about 6:1, ink 10:1; white on ink-2 10:1. */
.is-style-section-gold :is(p.is-style-eyebrow, .itb-eyebrow) { color: var(--teal-900); }
.is-style-section-gold :is(h1, h2, h3) em { font-style: normal; color: var(--teal-900); }
.is-style-section-gold .itb-btn:not(.itb-btn--ghost) { background: var(--ink-2); color: #fff; }
.is-style-section-gold .itb-btn:not(.itb-btn--ghost):hover { background: var(--ink); color: #fff; }
.is-style-section-gold :is(.wp-block-button.is-style-ghost .wp-block-button__link, .itb-btn--ghost) { color: var(--ink); border-color: rgba(21,24,28,.35); background: transparent; }
.is-style-section-gold :is(.wp-block-button.is-style-ghost .wp-block-button__link, .itb-btn--ghost):hover { background: rgba(21,24,28,.08); color: var(--ink); }
.is-style-section-gold .itb-section-break::before, .is-style-section-gold .itb-section-break::after { background: rgba(21,24,28,.2); }
.is-style-section-gold .itb-stats { border-color: rgba(21,24,28,.2); }

/* List bullets (core/list styles): small hexagons in a chosen colour. Bright teal and gold are for dark sections. */
ul:is(.is-style-bullets-teal, .is-style-bullets-bright, .is-style-bullets-gold) { list-style: none; padding-left: 0; display: grid; gap: 10px; }
ul:is(.is-style-bullets-teal, .is-style-bullets-bright, .is-style-bullets-gold) > li { position: relative; padding-left: 22px; }
ul:is(.is-style-bullets-teal, .is-style-bullets-bright, .is-style-bullets-gold) > li::before { content: ""; position: absolute; left: 0; top: .5em; width: 10px; height: 9px; background: var(--bullet, var(--teal-700));
	clip-path: polygon(25% 2%, 75% 2%, 98% 50%, 75% 98%, 25% 98%, 2% 50%); }
ul.is-style-bullets-bright { --bullet: var(--teal-300); }
ul.is-style-bullets-gold { --bullet: var(--orange-500); }
.wp-block-heading + .itb-steps, .wp-block-heading + p + .itb-steps { margin-top: var(--wp--preset--spacing--48); }
.itb-steps--list .itb-hex { align-self: center; }

/* Partner logo strip */
.itb-logo-strip { display: flex; flex-wrap: wrap; align-items: center; gap: 20px 40px; }
.itb-logo-strip__label { flex: 0 0 180px; margin: 0; font-family: var(--font-mono); font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.itb-logo-strip__list { flex: 1 1 520px; list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); gap: 20px 28px; align-items: center; }
.itb-logo-strip__list a { display: grid; place-items: center; height: 48px; text-decoration: none; }
.itb-logo-strip__list img { max-width: 100%; max-height: 40px; width: auto; height: auto; object-fit: contain; filter: grayscale(1); opacity: .7; transition: filter .15s, opacity .15s; }
.itb-logo-strip__list a:hover img, .itb-logo-strip__list a:focus-visible img { filter: none; opacity: 1; }
.itb-logo-strip__list span { font-family: var(--font-display); font-weight: 700; font-size: 15px; color: var(--muted); text-align: center; }

/* ═══ Cyber360 wheel (blocks/cyber360-wheel, inc/cyber360.php) ═══ */
.itb-sr { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.itb-c360__wheel { display: block; width: 100%; height: auto; overflow: visible; }
.itb-c360__pillar { cursor: pointer; }
.itb-c360 { --c360-ease: .5s ease-in-out; }
.itb-c360__pillar { transition: opacity var(--c360-ease); }
.itb-c360__wheel.has-active .itb-c360__pillar:not(.is-active) { opacity: .45; }
.itb-c360__lbl { font-family: var(--font-sans); font-weight: 500; transition: opacity var(--c360-ease); pointer-events: none; }
.itb-c360__lbl--pillar { font-family: var(--font-display); font-weight: 700; }
.itb-c360__hub-text { font-weight: 400; }
/* Mouse users: service labels appear only on the hovered or active pillar. */
@media (hover: hover) and (pointer: fine) {
	.itb-c360__pillar:not(.is-active) .itb-c360__lbl:not(.itb-c360__lbl--pillar) { opacity: 0; }
}
/* Dark bands: a faint edge so the darkest (Security Posture) segments stay visible. */
:is(.is-style-section-hero, .is-style-section-dark, .is-style-section-teal) .itb-c360__pillar > path { stroke: rgba(255,255,255,.14); stroke-width: .3; }
:is(.is-style-section-hero, .is-style-section-dark, .is-style-section-teal) .itb-c360__hex path { stroke: rgba(255,255,255,.3); stroke-width: 1; }
.itb-c360__hex { width: 20px; height: 22px; flex: none; }
.itb-c360__num { font-family: var(--font-mono); font-size: 12px; letter-spacing: .06em; color: var(--muted); }
.itb-c360__actions { margin-top: 32px; }
.itb-c360--list .itb-c360__actions .wp-block-buttons { justify-content: flex-end; }

/* List layout: wheel left, pillar rows right; the active row shows its services. */
.itb-c360--list { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: clamp(32px, 5vw, 72px); align-items: center; }
.itb-c360--list .itb-c360__figure { max-width: 440px; width: 100%; justify-self: center; }
.itb-c360__list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
/* Rows open and close their chip drawer by animating the second grid row from 0fr to 1fr. */
.itb-c360__item { display: grid; grid-template-rows: auto 0fr; border-bottom: 1px solid var(--line); border-radius: var(--r-chip);
	transition: background-color var(--c360-ease), grid-template-rows var(--c360-ease); }
.itb-c360__item.is-active { grid-template-rows: auto 1fr; }
.itb-c360__drawer { min-height: 0; overflow: hidden; opacity: 0; visibility: hidden; transition: opacity var(--c360-ease), visibility 0s var(--c360-ease); }
.itb-c360__item.is-active .itb-c360__drawer { opacity: 1; visibility: visible; transition: opacity var(--c360-ease); }
.itb-c360__item:hover, .itb-c360__item.is-active { background: rgba(255,255,255,.6); }
.itb-c360__row { display: grid; grid-template-columns: 20px 24px auto 1fr; align-items: center; gap: 14px; width: 100%; padding: 18px 16px; margin: 0;
	background: none; border: 0; border-radius: var(--r-chip); font: inherit; color: inherit; text-align: left; cursor: pointer; }
.itb-c360__row:focus-visible { outline: 2px solid var(--focus); outline-offset: -2px; }
.itb-c360__name { font-family: var(--font-display); font-weight: 700; font-size: 18px; letter-spacing: -.01em; color: var(--ink); }
.itb-c360__summary { justify-self: end; text-align: right; font-size: 15px; color: var(--ink-2); }
.itb-c360__chips { display: flex; flex-wrap: wrap; align-content: flex-start; gap: 8px; list-style: none; margin: 0; padding: 0 16px 18px 74px;
	min-height: calc(2 * (12px * 1.2 + 10px) + 8px); /* Two rows of chips, so the list (and the wheel beside it) doesn't shift between pillars. */ }
.itb-c360__chip { background: var(--card); border-color: var(--line); color: var(--teal-700); text-transform: none; font-size: 12px; letter-spacing: .02em; }
@media (max-width: 900px) {
	.itb-c360--list { grid-template-columns: 1fr; }
	.itb-c360--list .itb-c360__figure { max-width: 360px; }
}
@media (max-width: 520px) {
	.itb-c360__row { grid-template-columns: 20px 24px 1fr; row-gap: 4px; }
	.itb-c360__summary { grid-column: 3; justify-self: start; text-align: left; font-size: 14px; }
	.itb-c360__chips { padding-left: 16px; }
}

/* Cards layout: wheel centred, five glass cards below (dark bands, Cyber360 hero). */
.itb-c360--cards { text-align: center; }
.itb-c360--cards .itb-c360__figure { width: min(560px, 92%); margin: clamp(32px, 5vw, 56px) auto 0; }
/* Three across then two, centred; the grid spans the wide width (1040px). */
.itb-c360__cards { --gap: 16px; list-style: none; margin: clamp(40px, 5vw, 64px) 0 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: var(--gap); text-align: left; }
.itb-c360__card { box-sizing: border-box; flex: 0 0 calc((100% - 2 * var(--gap)) / 3); display: flex; border: 1px solid rgba(255,255,255,.14); border-radius: var(--r-card); background: rgba(255,255,255,.04); transition: border-color var(--c360-ease), background-color var(--c360-ease); }
.itb-c360__card-link { display: flex; flex-direction: column; align-items: stretch; flex: 1; padding: 18px 20px 20px; border-radius: inherit; color: inherit; text-decoration: none; }
.itb-c360__card-link:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
@media (max-width: 760px) { .itb-c360__card { flex-basis: calc((100% - var(--gap)) / 2); } }
@media (max-width: 480px) { .itb-c360__card { flex-basis: 100%; } }
.itb-c360__card.is-active { border-color: var(--c); background: rgba(255,255,255,.08); }
.itb-c360__card-top { display: flex; justify-content: space-between; align-items: center; }
.itb-c360__card .itb-c360__num { color: rgba(255,255,255,.7); }
.itb-c360__card .itb-c360__name { display: block; margin-top: 14px; color: #fff; }
.itb-c360__card .itb-c360__summary { display: block; justify-self: start; align-self: stretch; margin-top: 6px; text-align: left; font-size: 14px; line-height: 1.45; color: var(--ink-inverse-muted); }
.itb-c360--cards .itb-c360__actions { margin-top: 40px; }
/* In-page anchors (Cyber360 cards): clear the sticky header, scroll smoothly. */
:is(h2, h3)[id] { scroll-margin-top: 96px; }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
@media (prefers-reduced-motion: reduce) { .itb-c360 { --c360-ease: 0s; } }
.wp-block-columns + .itb-c360 { margin-top: var(--wp--preset--spacing--64); }
/* Full-height hero (Cyber360 page): content centred vertically. */
.itb-hero-full { display: flex; flex-direction: column; justify-content: center; }

/* ═══ People (blocks/people): speakers and team cards ═══ */
/* At most --cols columns (set from the number of people); fewer when a card would drop below 220px. */
.itb-people { --ink: var(--wp--preset--color--ink); --gap: 16px; list-style: none; margin: 0; padding: 0; display: grid; gap: var(--gap);
	grid-template-columns: repeat(auto-fit, minmax(max(220px, calc((100% - (var(--cols, 4) - 1) * var(--gap)) / var(--cols, 4))), 1fr)); }
.itb-people--n1 { max-width: max(50%, 300px); margin-inline: auto; }
.itb-person { display: flex; align-items: center; gap: 16px; background: var(--card); border: 1px solid var(--line); border-radius: var(--r-card); padding: 18px 20px; min-width: 0; }
.itb-person__photo { width: 56px; height: 52px; flex: none; object-fit: cover; clip-path: polygon(25% 2%, 75% 2%, 98% 50%, 75% 98%, 25% 98%, 2% 50%); }
.itb-person__photo--initials { display: grid; place-items: center; background: var(--teal-100); color: var(--teal-900); font-family: var(--font-mono); font-weight: 600; font-size: 14px; }
.itb-person__text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.itb-person__name { font-family: var(--font-display); font-weight: 700; color: var(--ink); }
.itb-person__meta { font-size: 13px; color: var(--wp--preset--color--ink-2); }
.itb-person__link { margin-top: 4px; font-family: var(--font-mono); font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: var(--teal-700); text-decoration: none; }
.itb-person__link:hover { color: var(--teal-900); }
.itb-people--empty { display: block; color: var(--muted); border: 1px dashed var(--line); border-radius: var(--r-card); padding: 20px; text-align: center; font-size: 14px; }

/* ═══ ITB logo (blocks/logo) ═══ */
.itb-logo { display: flex; line-height: 0; }
.itb-logo.aligncenter { justify-content: center; }
.itb-logo.alignright { justify-content: flex-end; }
.itb-logo__img { width: auto; height: 40px; }
.itb-logo--s .itb-logo__img { height: 28px; }
.itb-logo--l .itb-logo__img { height: 56px; }
.itb-logo--auto .itb-logo__on-dark { display: none; }
:is(.is-style-section-hero, .is-style-section-dark, .is-style-section-teal, .is-style-card-dark) .itb-logo--auto .itb-logo__on-light { display: none; }
:is(.is-style-section-hero, .is-style-section-dark, .is-style-section-teal, .is-style-card-dark) .itb-logo--auto .itb-logo__on-dark { display: block; }
/* Logo row (a flex group with class itb-logo-row): partner logos at one height. */
.itb-logo-row { gap: 24px 48px; margin-block: var(--wp--preset--spacing--32); }
.itb-logo-row .wp-block-image { margin: 0; }
.itb-logo-row .wp-block-image img { height: 28px; width: auto; }

/* ═══ Contact details (blocks/contact-details) ═══ */
.itb-contact { margin: 0; display: grid; gap: 20px 40px; }
.itb-contact--row { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
.itb-contact__item { border-left: 2px solid currentColor; padding-left: 16px; }
.itb-contact dt { font-family: var(--font-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; opacity: .8; }
.itb-contact dd { margin: 6px 0 0; font-family: var(--font-display); font-weight: 600; font-size: 17px; line-height: 1.4; }
.itb-contact dd a { text-decoration: none; }
.itb-contact dd a:hover { text-decoration: underline; }
.itb-paper-picks { --gap: 24px; display: grid; gap: var(--gap); margin-top: var(--wp--preset--spacing--24);
	grid-template-columns: repeat(auto-fill, minmax(max(220px, calc((100% - (var(--cols, 3) - 1) * var(--gap)) / var(--cols, 3))), 1fr)); }

/* Split (group style): first block (a heading) on the left, the rest on the right, a rule above.
   Used for "term and explanation" content such as the technologies on solution pages. */
.wp-block-group.is-style-split { border-top: 1px solid var(--line); padding-top: var(--wp--preset--spacing--24); }
.wp-block-group.is-style-split > * { margin-block: 0; }
.wp-block-group.is-style-split > * + * { margin-top: 12px; }
@media (min-width: 782px) {
	.wp-block-group.is-style-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); column-gap: var(--wp--preset--spacing--48); align-items: start; }
	.wp-block-group.is-style-split > * { grid-column: 2; }
	.wp-block-group.is-style-split > :first-child { grid-column: 1; grid-row: 1 / span 20; }
	.wp-block-group.is-style-split > :nth-child(2) { margin-top: 0; }
}
.wp-block-group.is-style-split + .wp-block-group.is-style-split { margin-top: var(--wp--preset--spacing--32); }

/* Cyber360 wheel + list on dark and teal sections (e.g. the managed section on solution pages). */
:is(.is-style-section-dark, .is-style-section-teal) .itb-c360__list { border-top-color: rgba(255,255,255,.16); }
:is(.is-style-section-dark, .is-style-section-teal) .itb-c360__item { border-bottom-color: rgba(255,255,255,.16); }
:is(.is-style-section-dark, .is-style-section-teal) .itb-c360__item:is(:hover, .is-active) { background: rgba(255,255,255,.08); }
:is(.is-style-section-dark, .is-style-section-teal) .itb-c360__name { color: #fff; }
:is(.is-style-section-dark, .is-style-section-teal) .itb-c360__summary { color: var(--ink-inverse-muted); }
:is(.is-style-section-dark, .is-style-section-teal) .itb-c360__list .itb-c360__num { color: rgba(255,255,255,.7); }
:is(.is-style-section-dark, .is-style-section-teal) .itb-c360__row:focus-visible { outline-color: #fff; }
