/* TBWE Site Kit — component styles.
 * Typography and colours of ordinary text/buttons are set in Elementor (Global Fonts/Colors),
 * so editors can change them. This file holds composite styles Elementor cannot express natively.
 * All colours come from --tbwe-* variables (see Design Tokens screen).
 */

/* ---------- Brand helpers ---------- */
.tbwe-accent { color: var(--tbwe-accent-text-lg); }
.tbwe-on-dark .tbwe-accent { color: var(--tbwe-accent); }
.tbwe-on-dark { color: var(--tbwe-white); }

/* Editors see held/pending items outlined; visitors never see them. */
.tbwe-pending-link { display: none !important; }
body.tbwe-can-edit .tbwe-pending-link,
body.elementor-editor-active .tbwe-pending-link { display: block !important; outline: 2px dashed #b26200; outline-offset: 4px; position: relative; }
body.tbwe-can-edit .tbwe-pending-link::after,
body.elementor-editor-active .tbwe-pending-link::after { content: "Link pending – hidden from visitors"; position: absolute; left: 0; top: 100%; margin-top: 6px; font: 600 11px/1.2 Arial, sans-serif; color: #b26200; background: #fff8ec; padding: 2px 6px; white-space: nowrap; z-index: 2; }

/* Price-dependent content (decision D1): hidden for visitors when no approved price data. */
body.tbwe-no-prices:not(.elementor-editor-active) .tbwe-requires-prices { display: none !important; }
body.tbwe-no-prices.elementor-editor-active .tbwe-requires-prices { outline: 2px dashed #b26200; outline-offset: -2px; }

/* ---------- Glass panels on dark/photo backgrounds ---------- */
.tbwe-glass {
	background: rgba(11, 31, 59, 0.55);
	border: 1px solid rgba(255, 255, 255, 0.18);
	border-radius: var(--tbwe-radius-l);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
}

/* Hero stats bar: four cells with dividers */
.tbwe-stats > .e-con-inner, .tbwe-stats.e-con-full { gap: 0 !important; }
.tbwe-stats .tbwe-stat { border-right: 1px solid rgba(255, 255, 255, 0.18); }
.tbwe-stats .tbwe-stat:last-child { border-right: 0; }
@media (max-width: 1024px) {
	.tbwe-stats .tbwe-stat:nth-child(2n) { border-right: 0; }
	.tbwe-stats .tbwe-stat:nth-child(-n+2) { border-bottom: 1px solid rgba(255, 255, 255, 0.18); }
}
@media (max-width: 767px) {
	.tbwe-stats .tbwe-stat { border-right: 0 !important; border-bottom: 1px solid rgba(255, 255, 255, 0.18); }
	.tbwe-stats .tbwe-stat:last-child { border-bottom: 0; }
}
.tbwe-stat .elementor-icon-box-title { margin-bottom: 2px; }

/* ---------- Light cards ---------- */
.tbwe-card { background: var(--tbwe-white); border-radius: var(--tbwe-radius-l); box-shadow: var(--tbwe-shadow); }
.tbwe-tile { border: 1px solid rgba(204, 204, 204, 0.6); border-radius: var(--tbwe-radius-s); background: var(--tbwe-white); }

/* Solutions list rows */
.tbwe-solution-row { border-bottom: 1px solid rgba(204, 204, 204, 0.5); }
.tbwe-tag p { margin: 0; }

/* Phone / email pills (Figma "Component 1": hover swaps to navy) */
.tbwe-pill .elementor-button { width: 100%; justify-content: flex-start; transition: background-color .2s ease, color .2s ease, border-color .2s ease; }
.tbwe-pill .elementor-button:hover, .tbwe-pill .elementor-button:focus-visible { background-color: var(--tbwe-navy) !important; color: var(--tbwe-white) !important; border-color: var(--tbwe-navy) !important; }
.tbwe-pill .elementor-button:hover svg, .tbwe-pill .elementor-button:focus-visible svg { fill: var(--tbwe-white); }

/* Review cards */
.tbwe-avatar .elementor-heading-title { width: 40px; height: 40px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; }

/* How-it-works steps: numbered badge over icon circle */
.tbwe-step-icon { position: relative; }
.tbwe-step-num { position: absolute !important; top: -4px; left: -4px; z-index: 1; width: auto !important; margin: 0 !important; }
.tbwe-step-num .elementor-heading-title { width: 28px; height: 28px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: var(--tbwe-primary-a11y); }

/* Pro Form inside the contact card */
.tbwe-form .elementor-field-group .elementor-field { min-height: 44px; }
.tbwe-form .elementor-field-group textarea.elementor-field { min-height: 90px; }
.tbwe-form .elementor-field:focus { outline: 2px solid var(--tbwe-primary-a11y); outline-offset: 1px; }
.tbwe-form .elementor-mark-required .elementor-field-label::after { color: #c62828; }

/* Focus visibility for every TBWE button */
.elementor-widget-button .elementor-button:focus-visible { outline: 2px solid var(--tbwe-primary-a11y); outline-offset: 3px; }
.tbwe-on-dark .elementor-widget-button .elementor-button:focus-visible { outline-color: var(--tbwe-white); }

/* ---------- Icons (inline SVG via [tbwe_icon]) ---------- */
.tbwe-icon { display: inline-block; vertical-align: middle; flex: none; }
.tbwe-ico-accent { color: var(--tbwe-accent); line-height: 0; }
.tbwe-ico-blue { color: var(--tbwe-primary-a11y); line-height: 0; }
.tbwe-ico-white { color: var(--tbwe-white); line-height: 0; }
.tbwe-ico-ink { color: var(--tbwe-ink); line-height: 0; }
.elementor-widget-shortcode .elementor-shortcode { line-height: 1; }
.tbwe-icon-circle .elementor-shortcode { width: 92px; height: 92px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: #1B3354; }
.tbwe-icon-ring .elementor-shortcode { width: 40px; height: 40px; border-radius: 50%; display: flex; align-items: center; justify-content: center; border: 1px solid rgba(255,255,255,.6); box-sizing: border-box; }

/* ---------- Hero market card ---------- */
.tbwe-mcard { background: rgba(11, 31, 59, 0.78); border: 1px solid rgba(255, 255, 255, 0.22); border-radius: var(--tbwe-radius-l); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); color: var(--tbwe-white); padding: 26px 18px 16px; font-family: var(--tbwe-font-body); }
.tbwe-mcard__head { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 0 18px 20px; border-bottom: 1px solid rgba(255,255,255,.22); }
.tbwe-mcard__title { margin: 0; font: 500 20px/1.3 var(--tbwe-font-heading); color: var(--tbwe-white); }
.tbwe-mcard__link, .tbwe-xpanel__link { color: var(--tbwe-white); font: 500 14px/1 var(--tbwe-font-body); text-decoration: none; display: inline-flex; align-items: center; gap: 6px; }
.tbwe-xpanel__link { color: #7FC1FF; font-size: 13px; }
.tbwe-mcard__link:hover, .tbwe-xpanel__link:hover { text-decoration: underline; }
.tbwe-mcard__rows { list-style: none; margin: 0; padding: 0; }
.tbwe-mcard__row { display: grid; grid-template-columns: 1fr auto auto; align-items: center; gap: 14px; padding: 22px 24px; border-bottom: 1px solid rgba(255,255,255,.22); }
.tbwe-mcard__zone, .tbwe-mcard__value { display: flex; flex-direction: column; gap: 6px; }
.tbwe-mcard__value { align-items: flex-end; min-width: 92px; }
.tbwe-mcard__label { font: 500 16px/1.3 var(--tbwe-font-heading); }
.tbwe-mcard__sub { font-size: 14px; color: var(--tbwe-light); opacity: .9; }
.tbwe-mcard__price { font: 600 20px/1.2 var(--tbwe-font-heading); }
.tbwe-mcard__spark { line-height: 0; }
.tbwe-mcard__foot { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px; padding: 20px 24px 4px; font-size: 12px; color: var(--tbwe-light); }
.tbwe-chg { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; font-weight: 500; white-space: nowrap; }
.tbwe-chg--up { color: #3DDC5C; }
.tbwe-chg--down { color: #FF5A5F; }
.tbwe-chg__period { color: #BFC6CF; font-size: 12px; }
@media (max-width: 1100px) { .tbwe-mcard__spark { display: none; } .tbwe-mcard__row { grid-template-columns: 1fr auto; } }
@media (max-width: 767px) { .tbwe-mcard__row { padding: 16px 12px; } .tbwe-mcard__head, .tbwe-mcard__foot { padding-left: 12px; padding-right: 12px; } }

/* ---------- Allocation tape ---------- */
.tbwe-tape { display: flex; align-items: center; background: #0A1A30; color: var(--tbwe-white); font: 500 12px/1 var(--tbwe-font-body); min-height: 40px; border-top: 1px solid rgba(255,255,255,.12); overflow: hidden; }
.tbwe-tape__label { flex: none; display: inline-flex; align-items: center; gap: 8px; padding: 0 22px 0 max(20px, calc((100vw - var(--tbwe-container)) / 2)); color: var(--tbwe-accent); font: 400 10.5px/1 "Anek Latin", var(--tbwe-font-body); letter-spacing: 2.5px; border-right: 1px solid rgba(255,255,255,.2); }
.tbwe-tape__dot { width: 6px; height: 6px; border-radius: 50%; background: var(--tbwe-accent); display: inline-block; }
.tbwe-tape__viewport { overflow: hidden; flex: 1; }
.tbwe-tape__track { display: flex; width: max-content; animation: tbwe-marquee 45s linear infinite; }
.tbwe-tape:hover .tbwe-tape__track, .tbwe-tape:focus-within .tbwe-tape__track { animation-play-state: paused; }
.tbwe-tape__list { display: flex; list-style: none; margin: 0; padding: 0; }
.tbwe-tape__item { display: inline-flex; align-items: center; gap: 8px; padding: 13px 28px; white-space: nowrap; border-right: 1px solid rgba(255,255,255,.12); }
.tbwe-tape__zone { color: #D7DCE3; }
.tbwe-tape__item .tbwe-chg--up { color: #8BC34A; }
@keyframes tbwe-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* ---------- Exchange panels ---------- */
.tbwe-xpanel { background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.18); border-radius: var(--tbwe-radius-l); padding: 18px 16px 16px; -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); color: var(--tbwe-white); font-family: var(--tbwe-font-body); height: 100%; box-sizing: border-box; }
.tbwe-xpanel__head { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 16px; }
.tbwe-xpanel__title { margin: 0; font: 500 17px/1.3 var(--tbwe-font-heading); color: var(--tbwe-white); }
.tbwe-xpanel__meta { margin: 0; font-size: 12px; color: rgba(255,255,255,.55); }
.tbwe-xprices__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }
.tbwe-xprice { position: relative; display: flex; flex-direction: column; gap: 6px; padding: 14px 16px; border-radius: var(--tbwe-radius-m); background: rgba(11,31,59,.78); border: 1px solid rgba(255,255,255,.1); min-height: 88px; box-sizing: border-box; }
.tbwe-xprice__zone { font-size: 12px; color: #E6EBF1; }
.tbwe-xprice__price { font: 600 26px/1.1 var(--tbwe-font-heading); }
.tbwe-xprice__price small { font: 400 12px var(--tbwe-font-body); color: #BFC6CF; margin-left: 4px; }
.tbwe-xprice__spark { position: absolute; right: 16px; top: 50%; transform: translateY(-50%); line-height: 0; }
.tbwe-xtrades__scroll { overflow-x: auto; }
.tbwe-xtrades__table { width: 100%; border-collapse: collapse; font-size: 13px; }
.tbwe-xtrades__table th { text-align: left; font-weight: 400; font-size: 12px; color: rgba(255,255,255,.5); padding: 0 6px 10px; }
.tbwe-xtrades__table td { padding: 11px 6px; border-top: 1px solid rgba(255,255,255,.12); color: #F2F5F8; white-space: nowrap; }
.tbwe-xtrades__table th:nth-child(n+2), .tbwe-xtrades__table td:nth-child(n+2) { text-align: right; }
.tbwe-xtrades__table td:nth-child(3) { color: rgba(255,255,255,.7); }
.tbwe-xtrades__table td:nth-child(4) { color: rgba(255,255,255,.8); }
.tbwe-badge { display: inline-flex; align-items: center; gap: 6px; padding: 3px 9px; border-radius: 4px; font: 600 11px/1.4 var(--tbwe-font-body); letter-spacing: .4px; }
.tbwe-badge--live { background: rgba(61,220,92,.14); color: #6EE387; }
.tbwe-badge--live .tbwe-tape__dot { background: #6EE387; }
.tbwe-badge--sale { background: rgba(46,124,237,.28); color: #B6DBFF; }
.tbwe-badge--wanted { background: rgba(221,164,95,.25); color: #F1C995; }
.tbwe-xlistings__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.tbwe-xlisting { display: flex; flex-direction: column; gap: 10px; padding: 14px 16px; border-radius: var(--tbwe-radius-m); background: rgba(11,31,59,.82); border: 1px solid rgba(255,255,255,.1); }
.tbwe-xlisting__top, .tbwe-xlisting__row { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.tbwe-xlisting__age { display: inline-flex; align-items: center; gap: 4px; font-size: 11px; color: rgba(255,255,255,.55); }
.tbwe-xlisting__zone { margin: 0; font: 500 15px/1.3 var(--tbwe-font-heading); }
.tbwe-xlisting__price { font: 600 18px/1.2 var(--tbwe-font-heading); }
.tbwe-xlisting__price small { font: 400 11px var(--tbwe-font-body); color: #BFC6CF; margin-left: 2px; }
.tbwe-xlisting__vol { font-size: 12px; color: rgba(255,255,255,.7); }
.tbwe-xlisting__link { color: #7FC1FF; font-size: 13px; text-decoration: none; display: inline-flex; gap: 4px; align-items: center; }
.tbwe-xlisting__link:hover { text-decoration: underline; }
@media (max-width: 1024px) { .tbwe-xlistings__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 767px) { .tbwe-xprices__grid, .tbwe-xlistings__grid { grid-template-columns: 1fr; } }

/* Theme table styles (e.g. Astra borders) must not leak into the trades table */
.tbwe-xtrades__table, .tbwe-xtrades__table th, .tbwe-xtrades__table td { border: 0; background: transparent; margin: 0; }
.tbwe-xtrades__table tbody td { border-top: 1px solid rgba(255,255,255,.12); }
.tbwe-xtrades__table thead th { border-bottom: 0; }

/* ---------- Exchange chips ---------- */
.tbwe-chip .elementor-button { border-radius: 999px !important; }

/* ---------- Price-alert card (overlaps the platform screenshot) ---------- */
.tbwe-shot-wrap { position: relative; }
.tbwe-alert-pos { position: absolute !important; right: -40px; bottom: -60px; width: 180px !important; z-index: 2; }
@media (max-width: 1024px) { .tbwe-alert-pos { right: 12px; bottom: -40px; } }
@media (max-width: 767px) { .tbwe-alert-pos { position: relative !important; right: auto; bottom: auto; margin: -30px 0 0 auto !important; } }
.tbwe-alert { width: 180px; border-radius: var(--tbwe-radius-m); overflow: hidden; background: var(--tbwe-white); box-shadow: 0 15px 45px rgba(11,31,59,.18); font-family: var(--tbwe-font-body); }
.tbwe-alert__label { margin: 0; padding: 10px 12px; background: var(--tbwe-navy); color: #D7DCE3; font: 400 12px/1.2 var(--tbwe-font-body); letter-spacing: 1px; }
.tbwe-alert__body { padding: 10px 12px 12px; }
.tbwe-alert__zone { margin: 0 0 6px; font: 600 12px/1.3 var(--tbwe-font-heading); color: var(--tbwe-ink); }
.tbwe-alert__price { margin: 0 0 8px; font: 600 20px/1.1 var(--tbwe-font-heading); color: var(--tbwe-primary-a11y); }
.tbwe-alert__price small { font-size: 11px; margin-left: 2px; color: var(--tbwe-primary-a11y); }
.tbwe-alert__btn { display: block; text-align: center; padding: 7px; border-radius: 6px; background: var(--tbwe-primary-a11y); color: #fff !important; font: 600 12px/1.2 var(--tbwe-font-body); text-decoration: none; }
.tbwe-alert__btn:hover { background: var(--tbwe-navy); }

/* ---------- "One source of truth" box ---------- */
.tbwe-truth { background: var(--tbwe-light); border-radius: var(--tbwe-radius-s); }
.tbwe-check-row .elementor-shortcode { display: inline-flex; }
.tbwe-check-row p, .tbwe-truth p, .tbwe-cobrand p, .tbwe-tile p, .tbwe-stat p { margin: 0; }

/* ---------- How it works: dashed connectors between steps (desktop) ---------- */
@media (min-width: 1025px) {
	.tbwe-steps .tbwe-step { position: relative; }
	.tbwe-steps .tbwe-step:not(:last-child)::after { content: ""; position: absolute; top: 30px; right: -58px; width: 96px; height: 28px; background: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 96 28'%3E%3Cpath d='M2 18 C 30 30, 66 30, 94 8' fill='none' stroke='%23ffffff' stroke-opacity='.7' stroke-width='1.2' stroke-dasharray='4 4'/%3E%3C/svg%3E"); pointer-events: none; }
	.tbwe-steps .tbwe-step:nth-child(2)::after { transform: scaleY(-1); }
}

/* ---------- Partner: co-branded portal card over the image ---------- */
.tbwe-cobrand-wrap { position: relative; }
.tbwe-cobrand { position: absolute !important; left: 20px; bottom: 20px; width: 300px !important; max-width: calc(100% - 40px); z-index: 2; }
@media (max-width: 767px) { .tbwe-cobrand { position: relative !important; left: auto; bottom: auto; width: 100% !important; max-width: 100%; margin-top: 14px; } }

/* ---------- Pills as links (contact) ---------- */
a.tbwe-pill-link, .tbwe-pill-link { text-decoration: none; transition: background-color .2s ease, color .2s ease, border-color .2s ease; }
a.tbwe-pill-link:hover, a.tbwe-pill-link:focus-visible { background-color: var(--tbwe-navy) !important; border-color: var(--tbwe-navy) !important; }
a.tbwe-pill-link:hover *, a.tbwe-pill-link:focus-visible * { color: var(--tbwe-white) !important; }
a.tbwe-pill-link:focus-visible { outline: 2px solid var(--tbwe-primary-a11y); outline-offset: 3px; }

/* Google reviews summary */
.tbwe-greview { line-height: 0; }

/* ---------- Team cards + bio dialog ---------- */
.tbwe-team { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px; }
@media (max-width: 1024px) { .tbwe-team { grid-template-columns: repeat(2, 1fr); gap: 28px; } }
@media (max-width: 767px) { .tbwe-team { grid-template-columns: 1fr; } }
.tbwe-team__photo { width: 100%; aspect-ratio: 2 / 3; object-fit: cover; object-position: top; border-radius: var(--tbwe-radius-s); display: block; }
.tbwe-team__body { padding-top: 18px; font-family: var(--tbwe-font-body); }
.tbwe-team__name { margin: 0 0 4px; font: 600 22px/1.3 var(--tbwe-font-heading); color: var(--tbwe-ink); }
.tbwe-team__role { margin: 0 0 10px; font-size: 14px; color: var(--tbwe-accent-text); }
.tbwe-team__excerpt { margin: 0 0 16px; font-size: 14px; line-height: 1.6; color: var(--tbwe-grey); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.tbwe-team__foot { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.tbwe-team__more { background: none; border: 0; padding: 4px 0; cursor: pointer; font: 600 14px var(--tbwe-font-body); color: var(--tbwe-primary-a11y); }
.tbwe-team__more:focus-visible, .tbwe-team__icon:focus-visible, .tbwe-bio__close:focus-visible { outline: 2px solid var(--tbwe-primary-a11y); outline-offset: 2px; }
.tbwe-team__icons { display: flex; gap: 8px; }
.tbwe-team__icon { width: 30px; height: 30px; border-radius: 50%; background: var(--tbwe-accent); display: inline-flex; align-items: center; justify-content: center; }
.tbwe-team__icon svg { fill: var(--tbwe-white); }
.tbwe-bio { width: min(610px, 100vw); max-width: 100vw; height: 100vh; max-height: 100vh; margin: 0 0 0 auto; padding: 56px 48px; border: 0; overflow-y: auto; text-align: center; font-family: var(--tbwe-font-body); color: var(--tbwe-grey); background: var(--tbwe-white); }
.tbwe-bio--board { background: var(--tbwe-navy); color: var(--tbwe-light); }
.tbwe-bio::backdrop { background: rgba(11, 31, 59, 0.6); }
.tbwe-bio[open] { animation: tbwe-slide-in .45s ease-out; }
@keyframes tbwe-slide-in { from { transform: translateX(100%); } to { transform: translateX(0); } }
.tbwe-bio__close { position: absolute; top: 16px; right: 16px; width: 40px; height: 40px; border: 0; border-radius: 50%; background: rgba(127, 127, 127, 0.15); color: inherit; font-size: 24px; line-height: 1; cursor: pointer; }
.tbwe-bio__photo { width: 160px; height: 160px; border-radius: 50%; object-fit: cover; object-position: top; margin: 0 auto 20px; display: block; }
.tbwe-bio__name { margin: 0; font: 600 28px/1.3 var(--tbwe-font-heading); color: var(--tbwe-ink); }
.tbwe-bio--board .tbwe-bio__name { color: var(--tbwe-white); }
.tbwe-bio__role { margin: 6px 0 24px; font-size: 18px; color: var(--tbwe-accent-text); }
.tbwe-bio--board .tbwe-bio__role { color: var(--tbwe-accent); }
.tbwe-bio__text { text-align: left; font-size: 16px; line-height: 1.75; }
.tbwe-bio .tbwe-team__icons { margin-top: 24px; }
@media (max-width: 767px) { .tbwe-bio { width: 100vw; padding: 56px 22px; } }

/* ---------- Header / footer helpers (Theme Builder templates) ---------- */
.tbwe-topbar a { color: inherit; }
.tbwe-footer-social .elementor-social-icon { background: transparent !important; }

/* ---------- Motion preferences ---------- */
@media (prefers-reduced-motion: reduce) {
	.tbwe-tape__track { animation: none; }
	.tbwe-tape__viewport { overflow-x: auto; }
	.tbwe-bio[open] { animation: none; }
	.tbwe-pill .elementor-button { transition: none; }
}

/* =====================================================================
 * v1.2 — Figma fidelity on laptops, header/menu fixes, animation safety
 * ===================================================================== */

/* Laptops (1025–1599px): scale the TBWE Global Fonts in proportion to the 1600px Figma canvas.
 * Exact Figma sizes at 1600px+; tablet/mobile sizes from Elementor are unchanged. */
@media (min-width: 1025px) and (max-width: 1599px) {
	body[class*="elementor-kit-"] {
		--e-global-typography-tbwe_display-font-size: max(48px, 4vw);
		--e-global-typography-tbwe_h2-font-size: max(36px, 3vw);
		--e-global-typography-tbwe_h3-font-size: max(21px, 1.625vw);
		--e-global-typography-tbwe_h4-font-size: max(16px, 1.125vw);
		--e-global-typography-tbwe_eyebrow-font-size: max(15px, 1.25vw);
		--e-global-typography-tbwe_body_l-font-size: max(16px, 1.125vw);
		--e-global-typography-tbwe_body_l-line-height: max(27px, 2vw);
		--e-global-typography-tbwe_nav-font-size: max(15px, 1.125vw);
	}
}

/* Sections never cause sideways scrolling (overhanging cards, slide-in animations). */
[data-elementor-type="wp-page"] > .e-con { overflow-x: clip; }

/* ---------- Header ---------- */
[data-elementor-type="header"] .elementor-button { white-space: nowrap; }
[data-elementor-type="header"] .e-con .elementor-widget-button,
[data-elementor-type="header"] .e-con .elementor-widget-image { flex-shrink: 0; }
[data-elementor-type="header"] .elementor-widget-nav-menu { flex-grow: 1; }
[data-elementor-type="header"] .elementor-nav-menu--main .elementor-nav-menu { flex-wrap: nowrap; }
@media (min-width: 1280px) and (max-width: 1599px) {
	[data-elementor-type="header"] .elementor-nav-menu--main .elementor-item { padding-left: max(7px, .75vw) !important; padding-right: max(7px, .75vw) !important; }
}
/* 1025–1279px: the full menu doesn't fit, so use the hamburger as on tablets. */
@media (min-width: 1025px) and (max-width: 1279px) {
	[data-elementor-type="header"] .elementor-nav-menu--dropdown-tablet .elementor-nav-menu--main { display: none; }
	[data-elementor-type="header"] .elementor-nav-menu--dropdown-tablet .elementor-menu-toggle { display: flex; }
	[data-elementor-type="header"] .elementor-nav-menu--dropdown-tablet .elementor-nav-menu--dropdown { display: block; }
}

/* ---------- Mobile / tablet menu ---------- */
[data-elementor-type="header"] .elementor-menu-toggle { background: transparent !important; width: 44px; height: 44px; justify-content: center; margin-left: auto !important; margin-right: 0 !important; }
[data-elementor-type="header"] .elementor-menu-toggle:focus-visible { outline: 2px solid var(--tbwe-primary-a11y); outline-offset: 2px; }
@media (max-width: 1279px) {
	[data-elementor-type="header"] .elementor-menu-toggle.elementor-active + .elementor-nav-menu__container { min-height: calc(100dvh - var(--tbwe-menu-top, 80px)); max-height: none !important; overflow-y: auto; }
	[data-elementor-type="header"] .elementor-nav-menu--dropdown .elementor-item { padding: 18px max(20px, 5vw) !important; border-bottom: 1px solid rgba(255, 255, 255, .1); }
}
html.tbwe-menu-open { overflow: hidden; }
.tbwe-menu-cta { list-style: none; }
.tbwe-menu-cta__btn { display: flex; align-items: center; justify-content: center; margin: 22px max(20px, 5vw) 28px; padding: 14px 22px; border-radius: 8px; background: var(--tbwe-primary-a11y); color: #fff !important; font: 600 16px/1.2 var(--tbwe-font-body); text-decoration: none; }
.tbwe-menu-cta__btn:hover, .tbwe-menu-cta__btn:focus-visible { background: var(--tbwe-white); color: var(--tbwe-navy) !important; }
.elementor-nav-menu--main .tbwe-menu-cta { display: none; }
/* The header already shows the CTA from 768px up, so the in-menu copy is for phones only. */
@media (min-width: 768px) { [data-elementor-type="header"] .elementor-nav-menu--dropdown li.tbwe-menu-cta { display: none; } }

/* ---------- Entrance animations ---------- */
@media (prefers-reduced-motion: reduce) {
	.elementor-invisible { visibility: visible !important; }
}

/* Laptops (1025–1599px): image heights and the hero price card follow the Figma's 1600px proportions too. */
@media (min-width: 1025px) and (max-width: 1599px) {
	#solutions .elementor-widget-image img { height: min(362px, 22.625vw) !important; }
	.tbwe-shot-wrap .elementor-widget-image img { height: min(392px, 24.5vw) !important; }
	.tbwe-cobrand-wrap .elementor-widget-image img { height: min(499px, 31.19vw) !important; }
	#contact .elementor-widget-image img { height: min(548px, 34.25vw) !important; }
	.tbwe-mcard { padding: 1.625vw 1.125vw 1vw; }
	.tbwe-mcard__head { padding: 0 1.125vw 1.25vw; }
	.tbwe-mcard__title { font-size: max(16px, 1.25vw); }
	.tbwe-mcard__link { font-size: max(12px, .875vw); }
	.tbwe-mcard__row { padding: 1.375vw 1.5vw; gap: .875vw; }
	.tbwe-mcard__label { font-size: max(13px, 1vw); }
	.tbwe-mcard__sub { font-size: max(12px, .875vw); }
	.tbwe-mcard__price { font-size: max(16px, 1.25vw); }
	.tbwe-mcard__foot { padding: 1.25vw 1.5vw .25vw; font-size: max(11px, .75vw); }
	.tbwe-mcard__spark svg { width: 5.9vw; height: auto; }
	.tbwe-mcard__value { min-width: 5.75vw; }
}

/* =====================================================================
 * v1.2.1 — header fit on laptops, review slider, form button, tablet steps, full-width menu
 * ===================================================================== */

/* 1. Laptop header: logo, menu and CTA scale together so the row always fits inside the content width. */
@media (min-width: 1025px) and (max-width: 1599px) {
	[data-elementor-type="header"] .elementor-widget-image img { width: max(150px, 12.125vw) !important; height: auto; }
	[data-elementor-type="header"] .elementor-widget-button .elementor-button { font-size: max(13px, 1vw) !important; padding: max(10px, .75vw) max(16px, 1.375vw) !important; }
	[data-elementor-type="header"] .elementor-nav-menu--main .elementor-item { font-size: max(13px, 1.06vw) !important; padding-left: max(5px, .6vw) !important; padding-right: max(5px, .6vw) !important; }
}
[data-elementor-type="header"] .elementor-widget-nav-menu { min-width: 0; }
/* Safety net (set by the script): when the full menu doesn't fit, use the hamburger at any width. */
html.tbwe-nav-compact [data-elementor-type="header"] .elementor-nav-menu--main { display: none !important; }
html.tbwe-nav-compact [data-elementor-type="header"] .elementor-menu-toggle { display: flex !important; }
html.tbwe-nav-compact [data-elementor-type="header"] .elementor-nav-menu--dropdown { display: block !important; }

/* 2a. Review avatars: true circles. */
.tbwe-avatar, .elementor-widget.tbwe-avatar { width: 40px !important; height: 40px !important; min-width: 40px; flex: 0 0 40px !important; border-radius: 50% !important; display: flex !important; align-items: center; justify-content: center; overflow: hidden; padding: 0 !important; aspect-ratio: 1 / 1; }
.tbwe-avatar .elementor-heading-title { width: auto; height: auto; line-height: 1 !important; margin: 0; background: none; }

/* 2b. Review slider (cards stay normal Elementor containers; the script adds dots + arrows). */
.tbwe-review-slider { display: flex !important; flex-wrap: nowrap !important; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; -webkit-overflow-scrolling: touch; scrollbar-width: none; gap: 20px !important; padding: 2px; }
.tbwe-review-slider::-webkit-scrollbar { display: none; }
.tbwe-review-slider > .e-con { flex: 0 0 calc((100% - 40px) / 3) !important; width: auto !important; max-width: none !important; scroll-snap-align: start; }
@media (max-width: 1024px) { .tbwe-review-slider > .e-con { flex-basis: calc((100% - 20px) / 2) !important; } }
@media (max-width: 767px) { .tbwe-review-slider > .e-con { flex-basis: 100% !important; } }
@media (prefers-reduced-motion: reduce) { .tbwe-review-slider { scroll-behavior: auto; } }
.tbwe-slider-nav { display: flex; align-items: center; justify-content: center; gap: 14px; margin-top: 22px; width: 100%; }
.tbwe-slider-nav[hidden] { display: none; }
.tbwe-slider-dots { display: flex; gap: 10px; align-items: center; }
.tbwe-slider-dot { width: 10px; height: 10px; padding: 0; border: 0; border-radius: 50%; background: rgba(255,255,255,.35); cursor: pointer; position: relative; transition: width .25s ease, background-color .25s ease; }
.tbwe-slider-dot::after { content: ""; position: absolute; inset: -12px; } /* 34px tap target */
.tbwe-slider-dot[aria-current="true"] { width: 26px; border-radius: 5px; background: var(--tbwe-accent); }
.tbwe-slider-arrow { width: 40px; height: 40px; border-radius: 50%; border: 1px solid rgba(255,255,255,.35); background: transparent; color: #fff; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; padding: 0; }
.tbwe-slider-arrow:hover:not(:disabled) { background: rgba(255,255,255,.12); }
.tbwe-slider-arrow:disabled { opacity: .35; cursor: default; }
.tbwe-slider-dot:focus-visible, .tbwe-slider-arrow:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }

/* 3. Contact form button: sized to its label, never wraps (full width on phones). */
.tbwe-form .elementor-field-type-submit { flex: 0 0 auto !important; width: auto !important; max-width: 100% !important; }
.tbwe-form .elementor-field-type-submit .elementor-button { white-space: nowrap; width: auto; padding: 12px 22px; }
@media (max-width: 767px) {
	.tbwe-form .elementor-field-type-submit { flex: 1 1 100% !important; width: 100% !important; }
	.tbwe-form .elementor-field-type-submit .elementor-button { width: 100%; justify-content: center; }
}

/* 4. How it works on tablets: two per row, centred. */
@media (min-width: 768px) and (max-width: 1024px) {
	.tbwe-steps { justify-content: center !important; column-gap: 32px !important; }
	.tbwe-steps > .tbwe-step { width: calc(50% - 16px) !important; max-width: calc(50% - 16px) !important; flex: 0 0 calc(50% - 16px) !important; }
}

/* 5. Mobile/tablet menu panel spans the full screen width (script sets the exact values). */
html.tbwe-menu-open [data-elementor-type="header"] .elementor-nav-menu__container.elementor-nav-menu--dropdown { box-sizing: border-box; }
/* Large screens: Figma menu spacing (18px text, tighter item padding) so the full menu fits at 1600px+. */
@media (min-width: 1600px) {
	[data-elementor-type="header"] .elementor-nav-menu--main .elementor-item { padding-left: 8px !important; padding-right: 8px !important; }
}
/* Review card author row and the Google rating badge stay on one line on every screen. */
.tbwe-glass .e-con:has(> .tbwe-avatar) { flex-direction: row !important; flex-wrap: nowrap !important; align-items: center !important; }
.e-con:has(> .tbwe-greview) { flex-direction: row !important; flex-wrap: nowrap !important; align-items: center !important; }
@media (max-width: 767px) { .e-con:has(> .tbwe-greview) { justify-content: center !important; } }
/* Slider: cards don't run their own entrance animation (they'd replay while sliding);
 * the whole slider fades up once when it scrolls into view instead. */
.tbwe-review-slider > .e-con { animation: none !important; visibility: visible !important; }
.tbwe-review-slider.tbwe-reveal { opacity: 0; transform: translateY(30px); transition: opacity .9s ease, transform .9s ease; }
.tbwe-review-slider.tbwe-reveal.tbwe-inview, body.elementor-editor-active .tbwe-review-slider { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .tbwe-review-slider.tbwe-reveal { opacity: 1; transform: none; transition: none; } }

/* =====================================================================
 * v1.3 — inner pages
 * ===================================================================== */

/* Inner-page hero breadcrumb */
.tbwe-crumb a { color: inherit; text-decoration: none; }
.tbwe-crumb a:hover, .tbwe-crumb a:focus-visible { text-decoration: underline; }
.tbwe-crumb .tbwe-crumb__sep { margin: 0 .5em; opacity: .9; }

/* Partners — benefits curve with three stops */
.tbwe-path { position: relative; }
.tbwe-path__svg { display: block; width: 100%; height: auto; }
@media (min-width: 1025px) {
	.tbwe-path { aspect-ratio: 560 / 265; }
	.tbwe-path > .tbwe-path-curve { position: absolute !important; inset: 0; width: 100% !important; z-index: 0; }
	.tbwe-path > .tbwe-path-head { position: absolute !important; left: 0; top: 0; width: 44% !important; z-index: 1; }
	.tbwe-path > .tbwe-path-step { position: absolute !important; width: 24% !important; z-index: 1; }
	.tbwe-path > .tbwe-path-s1 { left: 0; top: 81%; }
	.tbwe-path > .tbwe-path-s2 { left: 36.6%; top: 61%; }
	.tbwe-path > .tbwe-path-s3 { left: 73.4%; top: 28%; }
}
@media (max-width: 1024px) { .tbwe-path > .tbwe-path-curve { display: none !important; } }
.tbwe-path-num .elementor-heading-title { line-height: .9 !important; }

/* Referral band decorative lines */
.tbwe-referral { position: relative; overflow: hidden; }
.tbwe-referral::before, .tbwe-referral::after { content: ""; position: absolute; width: 520px; height: 520px; border: 1.5px solid rgba(46,163,242,.45); border-radius: 50%; pointer-events: none; }
.tbwe-referral::before { left: -330px; top: -200px; box-shadow: 40px 30px 0 -1px #0B1F3B, 40px 30px 0 0 rgba(46,163,242,.45); }
.tbwe-referral::after { right: -320px; bottom: -260px; box-shadow: -40px -30px 0 -1px #0B1F3B, -40px -30px 0 0 rgba(46,163,242,.45); }
.tbwe-referral > .e-con-inner { position: relative; z-index: 1; }
@media (max-width: 767px) { .tbwe-referral::before, .tbwe-referral::after { width: 300px; height: 300px; } }

/* Partner perk cards */
.tbwe-perk { position: relative; background: #fff; border-radius: 12px; box-shadow: var(--tbwe-shadow); border: 1px solid rgba(204,204,204,.35); transition: background-color .3s ease, transform .3s ease; }
.tbwe-perk .tbwe-perk-ico .elementor-shortcode { width: 50px; height: 50px; border-radius: 8px; display: flex; align-items: center; justify-content: center; background: var(--tbwe-primary-a11y); color: #fff; box-shadow: 0 8px 20px rgba(20,106,231,.25); }
.tbwe-perk .tbwe-perk-ico { margin-top: -50px !important; }
.tbwe-perk:hover, .tbwe-perk:focus-within { background: var(--tbwe-primary-a11y); transform: translateY(-4px); }
.tbwe-perk:hover .elementor-heading-title, .tbwe-perk:hover p, .tbwe-perk:hover .tbwe-icon,
.tbwe-perk:focus-within .elementor-heading-title, .tbwe-perk:focus-within p { color: #fff !important; }
.tbwe-perk:hover .tbwe-perk-ico .elementor-shortcode { background: #fff; color: var(--tbwe-primary-a11y); }
@media (prefers-reduced-motion: reduce) { .tbwe-perk { transition: none; } .tbwe-perk:hover { transform: none; } }

/* Partner logo marquee */
.tbwe-logos { overflow: hidden; width: 100%; -webkit-mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent); mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent); }
.tbwe-logos__track { display: flex; width: max-content; animation: tbwe-marquee 32s linear infinite; }
.tbwe-logos:hover .tbwe-logos__track { animation-play-state: paused; }
.tbwe-logos__list { display: flex; gap: 20px; list-style: none; margin: 0; padding: 0 10px; }
.tbwe-logos__item { width: 230px; height: 88px; border: 1px solid rgba(255,255,255,.28); border-radius: 10px; display: flex; align-items: center; justify-content: center; padding: 16px 22px; box-sizing: border-box; }
.tbwe-logos__item img { max-width: 100%; max-height: 52px; object-fit: contain; filter: brightness(0) invert(1); }
@media (max-width: 767px) { .tbwe-logos__item { width: 170px; height: 70px; } .tbwe-logos__item img { max-height: 40px; } }
@media (prefers-reduced-motion: reduce) { .tbwe-logos__track { animation: none; } .tbwe-logos { overflow-x: auto; } }

/* Our locations */
.tbwe-loc { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; align-items: start; font-family: var(--tbwe-font-body); }
.tbwe-loc__tabs { display: flex; flex-direction: column; gap: 18px; }
.tbwe-loc__tab { display: flex; gap: 16px; align-items: center; text-align: left; width: 100%; padding: 26px 26px; border-radius: 8px; border: 1px solid rgba(204,204,204,.6); background: #fff; color: var(--tbwe-ink); cursor: pointer; font: inherit; transition: background-color .2s ease, color .2s ease; }
.tbwe-loc__tab[aria-selected="true"] { background: var(--tbwe-navy); color: #fff; border-color: var(--tbwe-navy); }
.tbwe-loc__tab:focus-visible { outline: 2px solid var(--tbwe-primary-a11y); outline-offset: 3px; }
.tbwe-loc__pin { flex: none; width: 34px; height: 34px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: var(--tbwe-light); color: var(--tbwe-accent-text); }
.tbwe-loc__tab[aria-selected="true"] .tbwe-loc__pin { background: #fff; color: var(--tbwe-navy); }
.tbwe-loc__name { display: block; font: 600 20px/1.3 var(--tbwe-font-heading); }
.tbwe-loc__addr { display: block; font-size: 14px; margin-top: 4px; opacity: .85; }
.tbwe-loc__map { aspect-ratio: 600 / 370; background: var(--tbwe-light); border-radius: 8px; overflow: hidden; }
.tbwe-loc__map iframe { width: 100%; height: 100%; border: 0; display: block; }
.tbwe-loc__foot { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; padding: 12px 4px; border-bottom: 1px solid rgba(204,204,204,.6); font: 600 14px var(--tbwe-font-body); color: var(--tbwe-ink); }
.tbwe-loc__foot a { color: var(--tbwe-primary-a11y); display: inline-flex; gap: 6px; align-items: center; text-decoration: none; font-weight: 500; }
.tbwe-loc__foot a:hover { text-decoration: underline; }
@media (max-width: 1024px) { .tbwe-loc { grid-template-columns: 1fr; } }
@media (max-width: 767px) { .tbwe-loc__tab { padding: 18px; } .tbwe-loc__name { font-size: 18px; } }

/* Video poster + play */
.tbwe-video { position: relative; border-radius: 16px; overflow: hidden; line-height: 0; }
.tbwe-video img { width: 100%; height: auto; display: block; }
.tbwe-play { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 86px; height: 86px; border-radius: 50%; border: 0; background: rgba(255,255,255,.92); color: var(--tbwe-navy); display: flex; align-items: center; justify-content: center; cursor: pointer; box-shadow: 0 10px 30px rgba(0,0,0,.25); transition: transform .2s ease; }
.tbwe-play:hover { transform: translate(-50%, -50%) scale(1.06); }
.tbwe-play:focus-visible { outline: 3px solid #fff; outline-offset: 4px; }
.tbwe-tut__screen .tbwe-play { width: 44px; height: 44px; border-radius: 8px; background: var(--tbwe-accent); color: #fff; }
.tbwe-vdialog { width: min(1100px, 94vw); padding: 0; border: 0; background: #000; border-radius: 12px; overflow: visible; }
.tbwe-vdialog::backdrop { background: rgba(11,31,59,.85); }
.tbwe-vdialog__box { aspect-ratio: 16 / 9; }
.tbwe-vdialog__box iframe, .tbwe-vdialog__box video { width: 100%; height: 100%; border: 0; display: block; border-radius: 12px; }
.tbwe-vdialog__close { position: absolute; top: -46px; right: 0; width: 40px; height: 40px; border-radius: 50%; border: 0; background: #fff; color: var(--tbwe-navy); font-size: 26px; line-height: 1; cursor: pointer; }

/* Platform tutorials */
.tbwe-tut { display: grid; grid-template-columns: 1fr 1fr; gap: 26px; align-items: start; font-family: var(--tbwe-font-body); }
.tbwe-tut__screen { position: relative; background: #C9CFD8; border-radius: 12px; overflow: hidden; aspect-ratio: 680 / 590; display: flex; align-items: flex-start; justify-content: center; }
.tbwe-tut__screen img { width: 74%; height: auto; margin-top: 8%; border-radius: 22px 22px 0 0; box-shadow: 0 20px 40px rgba(0,0,0,.3); }
.tbwe-tut__count { margin: 14px 0 2px; color: var(--tbwe-accent-text); font-size: 18px; }
.tbwe-tut__caption { margin: 0; color: var(--tbwe-ink); font: 500 20px/1.3 var(--tbwe-font-heading); }
.tbwe-tut__list { display: flex; flex-direction: column; }
.tbwe-tut__tab { display: grid; grid-template-columns: 56px 1fr; align-items: center; gap: 12px; text-align: left; width: 100%; padding: 26px 24px; background: transparent; border: 0; border-bottom: 1px solid rgba(204,204,204,.6); border-left: 4px solid transparent; cursor: pointer; font: inherit; color: var(--tbwe-ink); transition: background-color .2s ease; }
.tbwe-tut__tab:hover { background: rgba(238,246,251,.7); }
.tbwe-tut__tab[aria-selected="true"] { background: #CFE7FB; border-left-color: var(--tbwe-primary-a11y); }
.tbwe-tut__tab:focus-visible { outline: 2px solid var(--tbwe-primary-a11y); outline-offset: -2px; }
.tbwe-tut__num { font: italic 300 20px var(--tbwe-font-body); color: var(--tbwe-ink); }
.tbwe-tut__title { display: block; font: 500 18px/1.3 var(--tbwe-font-heading); }
.tbwe-tut__desc { display: block; font-size: 13px; color: var(--tbwe-grey); margin-top: 6px; }
@media (max-width: 1024px) { .tbwe-tut { grid-template-columns: 1fr; } }
@media (max-width: 767px) { .tbwe-tut__tab { grid-template-columns: 40px 1fr; padding: 18px 14px; } .tbwe-tut__title { font-size: 16px; } }

/* Support team cards (photo with text overlay) */
.tbwe-team--support .tbwe-team__card { position: relative; border-radius: 10px; overflow: hidden; }
.tbwe-team--support .tbwe-team__photo { aspect-ratio: 440 / 580; border-radius: 10px; }
.tbwe-team--support .tbwe-team__body { position: absolute; left: 0; right: 0; bottom: 0; padding: 90px 22px 22px; background: linear-gradient(180deg, rgba(11,31,59,0) 0%, rgba(11,31,59,.85) 45%, #0B1F3B 100%); }
.tbwe-team--support .tbwe-team__name { color: #fff; }
.tbwe-team--support .tbwe-team__role { color: var(--tbwe-accent); }
.tbwe-team--support .tbwe-team__excerpt { color: var(--tbwe-light); -webkit-line-clamp: 2; }
.tbwe-team--support .tbwe-team__more { color: var(--tbwe-accent); }
.tbwe-team--support .tbwe-team__foot > .tbwe-team__icons { position: absolute; top: 14px; right: 14px; flex-direction: column; }
.tbwe-team--support .tbwe-team__icon { background: #0B1F3B; border: 1px solid rgba(255,255,255,.6); }
.tbwe-team__more:hover { text-decoration: underline; }

/* Dark contact variant (Teams, Finance) */
.tbwe-contact-dark .tbwe-card { background: transparent !important; box-shadow: none; border-color: rgba(255,255,255,.22) !important; }
.tbwe-contact-dark .elementor-field-group .elementor-field { background: rgba(255,255,255,.04) !important; border-color: rgba(255,255,255,.22) !important; color: #fff !important; }
.tbwe-contact-dark .elementor-field::placeholder { color: rgba(255,255,255,.6); }
.tbwe-contact-dark .elementor-field-label { color: #fff !important; }
.tbwe-contact-dark .tbwe-pill-link { background: transparent !important; border-color: rgba(255,255,255,.3) !important; }
.tbwe-contact-dark .tbwe-pill-link .elementor-heading-title { color: #fff !important; }
.tbwe-contact-dark .tbwe-pill-link .tbwe-ico-blue { color: var(--tbwe-accent); }
.tbwe-contact-dark a.tbwe-pill-link:hover { background: #fff !important; }
.tbwe-contact-dark a.tbwe-pill-link:hover .elementor-heading-title, .tbwe-contact-dark a.tbwe-pill-link:hover .tbwe-icon { color: var(--tbwe-navy) !important; }

/* Finance product cards and rows */
.tbwe-fin-card { border-radius: 12px; overflow: hidden; }
.tbwe-fin-row { border-bottom: 1px solid rgba(204,204,204,.5); }
.tbwe-fin-row:first-of-type { border-top: 1px solid rgba(204,204,204,.5); }
@media (min-width: 1025px) { .tbwe-fin-offset { margin-top: 44px !important; } }

/* Forms & resources cards */
.tbwe-doc { background: #fff; border-radius: 12px; box-shadow: var(--tbwe-shadow); border: 1px solid rgba(204,204,204,.35); }
.tbwe-doc .elementor-widget-image img { border-radius: 6px; border: 1px solid rgba(204,204,204,.5); }

/* About — quote band and overlay card */
.tbwe-quote { background: var(--tbwe-light); border-radius: 12px; }
.tbwe-overlay-wrap { position: relative; }
@media (min-width: 1025px) {
	.tbwe-overlay-card { position: absolute !important; left: -36px; bottom: -40px; width: 300px !important; z-index: 2; }
}

/* v1.3 refinements (Figma sizes) */
.tbwe-team .tbwe-team__photo { aspect-ratio: 440 / 600; border-radius: 8px; }
.tbwe-team .tbwe-team__body .tbwe-team__name { font: 600 22px/1.3 var(--tbwe-font-heading); margin: 0 0 4px; }
.tbwe-team .tbwe-team__body .tbwe-team__role { font: 500 15px/1.4 var(--tbwe-font-body); margin: 0 0 12px; }
.tbwe-team .tbwe-team__body .tbwe-team__excerpt { font: 400 15px/1.75 var(--tbwe-font-body); margin: 0 0 18px; }
.tbwe-team .tbwe-team__more { font-size: 14px; }
.tbwe-team--board { row-gap: 56px; }
.tbwe-team--support .tbwe-team__photo { aspect-ratio: 440 / 580; }
.tbwe-team--support .tbwe-team__body .tbwe-team__name { color: #fff; }
.tbwe-team--support .tbwe-team__body .tbwe-team__role { color: var(--tbwe-accent); }
.tbwe-team--support .tbwe-team__body .tbwe-team__excerpt { color: var(--tbwe-light); }
@media (max-width: 767px) { .tbwe-team .tbwe-team__body .tbwe-team__name { font-size: 20px; } }
.tbwe-referral { overflow: clip !important; }
.tbwe-perk { overflow: visible; }
.tbwe-perk .tbwe-perk-ico .elementor-shortcode { width: 64px; height: 64px; border-radius: 10px; }
.tbwe-perk .tbwe-perk-ico { margin-top: -32px !important; margin-bottom: 8px !important; }
.tbwe-logos__item { width: 290px; height: 108px; }
.tbwe-logos__item img { max-height: 62px; }
@media (max-width: 767px) { .tbwe-logos__item { width: 190px; height: 76px; } .tbwe-logos__item img { max-height: 42px; } }
.tbwe-fin-card { border-radius: 12px !important; overflow: hidden !important; }
.tbwe-tut__screen { background: #C9CFD8; }
.tbwe-tut__screen img { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; border: 0; border-radius: 0; box-shadow: none; object-fit: cover; object-position: center top; }
.tbwe-tut__tab { padding: 30px 26px; }
.tbwe-tut__title { font-size: 20px; }
.tbwe-tut__desc { font-size: 15px; }
.tbwe-tut__num { font-size: 22px; }
@media (max-width: 767px) { .tbwe-tut__title { font-size: 17px; } .tbwe-tut__desc { font-size: 14px; } }

/* Theme (Astra) button styles must not restyle TBWE interactive components. */
.tbwe-tut__tab, .tbwe-tut__tab:hover, .tbwe-tut__tab:focus, .tbwe-tut__tab:active { color: var(--tbwe-ink) !important; box-shadow: none; text-transform: none; letter-spacing: normal; border-radius: 0; }
.tbwe-tut__tab:not([aria-selected="true"]):hover { background: rgba(238,246,251,.7) !important; }
.tbwe-tut__tab:not([aria-selected="true"]) { background: transparent !important; }
.tbwe-tut__tab[aria-selected="true"] { background: #CFE7FB !important; }
.tbwe-loc__tab, .tbwe-loc__tab:hover, .tbwe-loc__tab:focus, .tbwe-loc__tab:active { color: var(--tbwe-ink) !important; background: #fff !important; text-transform: none; letter-spacing: normal; box-shadow: none; }
.tbwe-loc__tab[aria-selected="true"], .tbwe-loc__tab[aria-selected="true"]:hover, .tbwe-loc__tab[aria-selected="true"]:focus { color: #fff !important; background: var(--tbwe-navy) !important; }
.tbwe-loc__tab:not([aria-selected="true"]):hover { border-color: var(--tbwe-primary-a11y); }
.tbwe-team__more, .tbwe-team__more:hover, .tbwe-team__more:focus { background: none !important; box-shadow: none; padding: 4px 0; text-transform: none; letter-spacing: normal; }
.tbwe-team__more { color: var(--tbwe-primary-a11y) !important; }
.tbwe-team--support .tbwe-team__more { color: var(--tbwe-accent) !important; }
.tbwe-slider-arrow, .tbwe-slider-arrow:focus { background: transparent !important; color: #fff !important; padding: 0 !important; }
.tbwe-slider-arrow:hover:not(:disabled) { background: rgba(255,255,255,.12) !important; }
.tbwe-slider-dot, .tbwe-slider-dot:hover, .tbwe-slider-dot:focus { padding: 0 !important; box-shadow: none; }
.tbwe-slider-dot:not([aria-current="true"]), .tbwe-slider-dot:not([aria-current="true"]):hover { background: rgba(255,255,255,.35) !important; }
.tbwe-slider-dot[aria-current="true"] { background: var(--tbwe-accent) !important; }
.tbwe-bio__close, .tbwe-bio__close:hover, .tbwe-bio__close:focus { background: rgba(127,127,127,.15) !important; color: inherit !important; padding: 0 !important; }
.tbwe-play, .tbwe-play:hover, .tbwe-play:focus { padding: 0 !important; }

/* Specificity guard: Elementor's container rules (.e-con { overflow / display / position ... }) can load after
 * this file, so layout-critical TBWE rules are repeated with a higher-specificity selector. */
.e-con.tbwe-review-slider { overflow-x: auto !important; overflow-y: hidden !important; display: flex !important; flex-wrap: nowrap !important; scroll-snap-type: x mandatory; }
.e-con.tbwe-path, .e-con.tbwe-overlay-wrap, .e-con.tbwe-shot-wrap, .e-con.tbwe-cobrand-wrap, .e-con.tbwe-step-icon { position: relative !important; }
.e-con.tbwe-perk { overflow: visible !important; }
.e-con.tbwe-fin-card { overflow: hidden !important; }

/* v1.3.1 — Partners: step numbers align with the top of their title (Figma). */
.e-con.tbwe-path-step { align-items: flex-start !important; }
.tbwe-path-step .tbwe-path-num .elementor-heading-title { line-height: .78 !important; margin-top: 2px; }

/* v1.3.1 — Partners perks: on hover the tile turns white, so the icon switches to blue (was white-on-white). */
.tbwe-perk:hover .tbwe-perk-ico .tbwe-icon,
.tbwe-perk:focus-within .tbwe-perk-ico .tbwe-icon { color: var(--tbwe-primary-a11y) !important; }
.tbwe-perk:focus-within .tbwe-perk-ico .elementor-shortcode { background: #fff; }

/* v1.4 — tutorial videos (16:9 screen recordings) */
.tbwe-tut__screen.tbwe-tut__screen--video { aspect-ratio: 16 / 9; background: #0B1F3B; border-radius: 12px; overflow: hidden; }
.tbwe-tut__screen--video .tbwe-tut__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; display: block; background: #0B1F3B; }
.tbwe-tut__screen--video img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.tbwe-tut__screen--video .tbwe-play { width: 72px; height: 72px; border-radius: 50%; background: rgba(255,255,255,.92); color: var(--tbwe-navy); }
.tbwe-tut__video:focus-visible { outline: 3px solid var(--tbwe-primary-a11y); outline-offset: 2px; }
.tbwe-tut__left { position: sticky; top: 24px; }
@media (max-width: 1024px) { .tbwe-tut__left { position: static; } }
