/*
Theme Name: Terra-Byte.ai
Theme URI: https://terra-byte.ai
Author: Terra-Byte.ai
Description: Terra-Byte.ai marketing site. Every page, the header and the footer are editable from wp-admin; the blog is fully dynamic.
Version: 6.1
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: terra-byte-ai
*/

html { scroll-behavior: smooth; }
img { max-width: 100%; height: auto; }
[id] { scroll-margin-top: 6.5rem; }
.font-mono-code { font-family: 'JetBrains Mono', ui-monospace, Menlo, monospace; }
.screen-reader-text { position:absolute!important; clip:rect(1px,1px,1px,1px); overflow:hidden; height:1px; width:1px; }

/* ---- Shared header: fixed pill on the homepage (its hero is designed for that),
        in-flow sticky pill on every other page (those pages were designed with it in flow). ---- */
header[data-purpose="site-navigation"] { z-index: 60; }
body.admin-bar header[data-purpose="site-navigation"] { margin-top: 32px; }
body:not(.home) header[data-purpose="site-navigation"] { position: sticky; top: 1rem; width: 100%; margin-bottom: 1rem; }
@media (max-width: 782px) { body.admin-bar header[data-purpose="site-navigation"] { margin-top: 46px; } }
.tb-main { display: block; min-width: 0; }

/* ---- Blog post typography (the_content on single.php) ---- */
.article-body { color:#334155; font-size:1.0625rem; line-height:1.75; }
.article-body h2 { font-size:1.5rem; font-weight:700; color:#0f172a; margin:2.25rem 0 1rem; letter-spacing:-.01em; }
.article-body h3 { font-size:1.25rem; font-weight:700; color:#0f172a; margin:1.75rem 0 .75rem; }
.article-body p { margin:1.1rem 0; }
.article-body ul, .article-body ol { margin:1.1rem 0 1.1rem 1.25rem; }
.article-body ul { list-style:disc; } .article-body ol { list-style:decimal; }
.article-body li { margin:.4rem 0; }
.article-body a { color:#197376; text-decoration:underline; text-underline-offset:2px; }
.article-body strong { color:#0f172a; font-weight:700; }
.article-body blockquote { border-left:3px solid #197376; padding-left:1rem; color:#475569; font-style:italic; margin:1.5rem 0; }
.article-body img, .article-body figure img { border-radius:.75rem; margin:1.5rem 0; }
.article-body figure { margin:1.5rem 0; } .article-body figcaption { font-size:.8rem; color:#64748b; text-align:center; }
.article-body pre, .article-body code { font-family:'JetBrains Mono',monospace; background:#0e1626; color:#e2e8f0; }
.article-body pre { padding:1rem; border-radius:.5rem; overflow-x:auto; }
.article-body code { padding:.15rem .4rem; border-radius:.3rem; font-size:.9em; }
.article-body table { width:100%; border-collapse:collapse; margin:1.5rem 0; font-size:.95rem; }
.article-body th, .article-body td { border:1px solid #e2e8f0; padding:.5rem .75rem; text-align:left; }
.article-body th { background:#f8fafc; }
.line-clamp-2 { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.line-clamp-3 { display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }

/* ============================================================
   Impactful, site-wide interactions (added after user feedback:
   hovers/animations were too subtle to notice). Pure CSS, works
   underneath any page's own Tailwind classes — nothing to edit
   per page.
   ============================================================ */

/* Card lift: any card-style block gets a real lift + shadow pop on hover/focus. */
[data-purpose$="-card"], [data-purpose="article-card"], article,
a[class*="rounded-xl"][class*="border"], div[class*="rounded-xl"][class*="border"] {
  transition: transform .32s cubic-bezier(.22,1,.36,1), box-shadow .32s cubic-bezier(.22,1,.36,1), border-color .32s ease;
}
[data-purpose$="-card"]:hover, [data-purpose="article-card"]:hover, article:hover,
a[class*="rounded-xl"][class*="border"]:hover, div[class*="rounded-xl"][class*="border"]:hover {
  transform: translateY(-6px);
  box-shadow: 0 22px 40px -14px rgba(15,23,42,.20), 0 6px 14px -6px rgba(15,23,42,.10);
}

/* Buttons / pill CTAs: lift + shadow pop, and a firm press-down on click. */
a[class*="rounded-full"], button[class*="rounded-full"], a[class*="rounded-lg"][class*="font-bold"], a[class*="rounded-lg"][class*="font-semibold"] {
  transition: transform .22s ease, box-shadow .22s ease, filter .22s ease;
}
a[class*="rounded-full"]:hover, button[class*="rounded-full"]:hover,
a[class*="rounded-lg"][class*="font-bold"]:hover, a[class*="rounded-lg"][class*="font-semibold"]:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 24px -10px rgba(15,23,42,.30);
  filter: brightness(1.06);
}
a[class*="rounded-full"]:active, button[class*="rounded-full"]:active { transform: translateY(0) scale(.97); }

/* Arrow / chevron icons inside a link or button nudge forward on hover — makes every "→" CTA feel alive. */
a svg, button svg { transition: transform .28s cubic-bezier(.34,1.56,.64,1); }
a:hover svg, button:hover svg { transform: translateX(4px); }

/* Nav dropdown chevrons rotate instead of just nudging. */
header [data-purpose="site-navigation"] button:hover svg,
header [data-purpose="site-navigation"] .group:hover svg { transform: translateY(1px) rotate(180deg); }

/* Keyboard focus gets the same visible treatment as hover (accessibility). */
a:focus-visible, button:focus-visible { outline: 2px solid #197376; outline-offset: 3px; border-radius: 4px; }

/* Scroll-reveal: sections rise + fade in as they enter the viewport (see assets/theme.js). */
[data-tb-reveal] { opacity: 0; transform: translateY(28px); transition: opacity .7s cubic-bezier(.22,1,.36,1), transform .7s cubic-bezier(.22,1,.36,1); will-change: opacity, transform; }
[data-tb-reveal].is-visible { opacity: 1; transform: none; }
[data-tb-reveal-stagger] > * { opacity: 0; transform: translateY(20px); transition: opacity .6s ease, transform .6s ease; }
[data-tb-reveal-stagger].is-visible > * { opacity: 1; transform: none; }
[data-tb-reveal-stagger].is-visible > *:nth-child(1) { transition-delay: .03s; }
[data-tb-reveal-stagger].is-visible > *:nth-child(2) { transition-delay: .09s; }
[data-tb-reveal-stagger].is-visible > *:nth-child(3) { transition-delay: .15s; }
[data-tb-reveal-stagger].is-visible > *:nth-child(4) { transition-delay: .21s; }
[data-tb-reveal-stagger].is-visible > *:nth-child(5) { transition-delay: .27s; }
[data-tb-reveal-stagger].is-visible > *:nth-child(6) { transition-delay: .33s; }
[data-tb-reveal-stagger].is-visible > *:nth-child(n+7) { transition-delay: .38s; }
@media (prefers-reduced-motion: reduce) {
  [data-tb-reveal], [data-tb-reveal-stagger] > * { opacity: 1 !important; transform: none !important; transition: none !important; }
}

/* Generic decorative background layer used on application/industry hero sections (values set per page). */
.tb-bg-blob { position: absolute; border-radius: 9999px; filter: blur(64px); will-change: transform, opacity; pointer-events: none; }
@keyframes tbBlobA { 0%,100% { transform: translate(0,0) scale(1); } 50% { transform: translate(-26px,22px) scale(1.1); } }
@keyframes tbBlobB { 0%,100% { transform: translate(0,0) scale(1); } 50% { transform: translate(22px,-18px) scale(1.08); } }
@keyframes tbBlobC { 0%,100% { transform: translate(0,0) scale(1); } 50% { transform: translate(14px,16px) scale(1.12); } }
@media (prefers-reduced-motion: reduce) { .tb-bg-blob { animation: none !important; } }

/* ============================================================
   Meeting scheduler widget (Contact page)
   ============================================================ */
.tb-time-slot.is-selected {
  background-color: #0b2447;
  border-color: #0b2447;
  color: #fff;
}
[data-tb-meeting-submit]:disabled { cursor: not-allowed; }
.tb-time-slot { white-space: nowrap; }
@media (max-width: 340px) { [data-tb-time-grid] { --tb-slot-cols: 3; } }
[data-tb-meeting-submit]:not(:disabled):hover { transform: translateY(-1px); box-shadow: 0 10px 20px -10px rgba(11,36,71,.5); }
.tb-cal-day:focus-visible { outline: 2px solid #197376; outline-offset: 1px; }

/* ============================================================
   Button text alignment (site-wide)
   Pill / call-to-action buttons keep their label on ONE line and centre label + arrow icon together,
   so a long label never breaks into "REQUEST A / DEMO" on a phone.
   ============================================================ */
a[class*="rounded-full"], button[class*="rounded-full"],
a[class*="uppercase"][class*="rounded-md"], a[class*="uppercase"][class*="rounded-lg"], a[class*="uppercase"][class*="rounded-xl"],
a[class*="rounded-md"][class*="font-semibold"][class*="px-"], a[class*="rounded-lg"][class*="font-semibold"][class*="px-"] {
  white-space: nowrap;
  justify-content: center;
  text-align: center;
}
@media (max-width: 480px) {
  a[class*="rounded-full"], button[class*="rounded-full"], a[class*="uppercase"][class*="rounded-md"] { letter-spacing: .02em; }
}

/* ============================================================
   v5 MODERN LAYER — richer hovers, glow, gloss, entrance motion,
   scroll progress, animated header. Pure CSS + assets/theme.js,
   works on every page without per-page edits.
   ============================================================ */
:root { --tb-teal:#197376; --tb-navy:#0b2447; --tb-ease:cubic-bezier(.22,1,.36,1); }

/* Scroll progress bar + back-to-top (injected by theme.js) */
.tb-progress { position:fixed; top:0; left:0; height:3px; width:100%; z-index:100; transform-origin:0 50%; transform:scaleX(0);
  background:linear-gradient(90deg,#197376,#38bdf8,#197376); background-size:200% 100%; animation:tbShift 4s linear infinite; pointer-events:none; }
.tb-top { position:fixed; right:1.25rem; bottom:1.25rem; z-index:70; width:2.75rem; height:2.75rem; border-radius:9999px; border:0; cursor:pointer;
  background:var(--tb-navy); color:#fff; display:flex; align-items:center; justify-content:center; box-shadow:0 12px 28px -10px rgba(11,36,71,.6);
  opacity:0; transform:translateY(16px) scale(.9); pointer-events:none; transition:opacity .3s ease, transform .3s var(--tb-ease), background .2s ease; }
.tb-top.is-on { opacity:1; transform:none; pointer-events:auto; }
.tb-top:hover { background:var(--tb-teal); transform:translateY(-3px); }
.tb-top svg { width:18px; height:18px; transform:none !important; }
@keyframes tbShift { to { background-position:200% 0; } }

/* Header: gains depth + blur once the page scrolls */
header[data-purpose="site-navigation"] > *, header[data-purpose="site-navigation"] { transition: box-shadow .35s ease, background-color .35s ease, backdrop-filter .35s ease; }
header[data-purpose="site-navigation"].is-scrolled > div, header[data-purpose="site-navigation"].is-scrolled > nav {
  box-shadow: 0 18px 40px -18px rgba(11,36,71,.35); backdrop-filter: saturate(160%) blur(14px); -webkit-backdrop-filter: saturate(160%) blur(14px); }
/* Nav links: sliding underline */
header[data-purpose="site-navigation"] nav > a, header[data-purpose="site-navigation"] nav a[class*="text-"] {
  background-image: linear-gradient(var(--tb-teal),var(--tb-teal)); background-repeat:no-repeat; background-position:0 100%; background-size:0 2px;
  padding-bottom:3px; transition: background-size .35s var(--tb-ease), color .2s ease; }
header[data-purpose="site-navigation"] nav > a:hover { background-size:100% 2px; color:var(--tb-teal); }

/* Entrance motion for hero copy on every page */
@keyframes tbRiseIn { from { opacity:0; translate:0 26px; } to { opacity:1; translate:0 0; } }
main h1 { animation: tbRiseIn .9s var(--tb-ease) .05s both; }
main h1 + p, main h1 ~ p:first-of-type { animation: tbRiseIn .9s var(--tb-ease) .2s both; }
main h1 ~ div a[class*="rounded"], main h1 ~ a[class*="rounded"] { animation: tbRiseIn .9s var(--tb-ease) .35s both; }

/* Card reveal uses the independent `translate` property so it never fights the hover transform */
.tb-rise { opacity:0; translate:0 34px; scale:.97; }
.tb-rise.is-in { opacity:1; translate:0 0; scale:1;
  transition: opacity .8s var(--tb-ease) calc(var(--i,0) * 70ms), translate .8s var(--tb-ease) calc(var(--i,0) * 70ms), scale .8s var(--tb-ease) calc(var(--i,0) * 70ms), transform .32s var(--tb-ease), box-shadow .32s var(--tb-ease), border-color .32s ease; }
.tb-rise.is-done { transition: transform .32s var(--tb-ease), box-shadow .32s var(--tb-ease), border-color .32s ease; }

/* Cards: bigger lift, teal ring + glow, image zoom, icon pop */
[data-purpose$="-card"]:hover, [data-purpose="article-card"]:hover, article:hover,
a[class*="rounded-xl"][class*="border"]:hover, div[class*="rounded-xl"][class*="border"]:hover {
  transform: translateY(-8px);
  border-color: rgba(25,115,118,.55);
  box-shadow: 0 0 0 1px rgba(25,115,118,.35), 0 30px 60px -20px rgba(25,115,118,.38), 0 10px 22px -10px rgba(15,23,42,.18);
}
[data-tb-tilt] { transform-style: preserve-3d; will-change: transform; }
.overflow-hidden img, article img, [data-purpose$="-card"] img { transition: transform .8s var(--tb-ease); }
a:hover .overflow-hidden img, article:hover img, [data-purpose$="-card"]:hover img, .overflow-hidden:hover > img { transform: scale(1.07); }
[data-purpose$="-card"]:hover svg, a[class*="rounded-xl"][class*="border"]:hover > div:first-child svg, div[class*="rounded-xl"][class*="border"]:hover > div:first-child svg {
  transform: scale(1.14) rotate(-5deg); }
[data-purpose$="-card"] [class*="rounded"][class*="bg-"], a[class*="rounded-xl"][class*="border"] > div:first-child[class*="rounded"] { transition: background-color .3s ease, transform .4s var(--tb-ease); }
a[class*="rounded-xl"][class*="border"]:hover > div:first-child[class*="rounded"], [data-purpose$="-card"]:hover > div:first-child[class*="rounded"] { transform: scale(1.08) rotate(-3deg); }

/* Pill CTAs: gloss sweep on hover, stronger glow */
a[class*="rounded-full"] { position:relative; overflow:hidden; isolation:isolate; }
a[class*="rounded-full"]::after { content:""; position:absolute; top:0; bottom:0; left:-80%; width:55%; z-index:1; pointer-events:none;
  background:linear-gradient(105deg,transparent,rgba(255,255,255,.45),transparent); transform:skewX(-20deg); transition:left .7s var(--tb-ease); }
a[class*="rounded-full"]:hover::after { left:130%; }
a[class*="rounded-full"]:hover, button[class*="rounded-full"]:hover, a[class*="rounded-lg"][class*="font-bold"]:hover, a[class*="rounded-lg"][class*="font-semibold"]:hover {
  transform: translateY(-3px); box-shadow: 0 18px 32px -12px rgba(25,115,118,.55); }
/* Prominent teal / navy buttons breathe softly so the main CTA draws the eye */
@keyframes tbPulseRing { 0% { box-shadow:0 0 0 0 rgba(25,115,118,.45);} 70%,100% { box-shadow:0 0 0 14px rgba(25,115,118,0);} }
header[data-purpose="site-navigation"] a[class*="rounded-full"][class*="uppercase"], section[data-purpose="hero-banner"] a[class*="rounded-full"][class*="bg-"]:first-of-type { animation: tbPulseRing 2.8s ease-out infinite; }
header[data-purpose="site-navigation"] a[class*="rounded-full"]:hover, section[data-purpose="hero-banner"] a[class*="rounded-full"]:hover { animation: none; }

/* Chips / small tags: pop on hover */
span[class*="rounded-full"][class*="border"], a[class*="rounded-full"][class*="border"] { transition: transform .25s var(--tb-ease), background-color .25s ease, color .25s ease, border-color .25s ease; }
span[class*="rounded-full"][class*="border"]:hover { transform: translateY(-2px) scale(1.05); border-color: var(--tb-teal); }

/* Section headings: gradient accent line that draws in when revealed */
section h2 { position:relative; }
section[data-tb-reveal].is-visible h2:not([class*="text-left"])::after { content:none; }

/* Form fields: glow focus */
input:not([type=checkbox]):not([type=radio]), select, textarea { transition: border-color .2s ease, box-shadow .25s ease, transform .2s ease; }
input:not([type=checkbox]):not([type=radio]):focus, select:focus, textarea:focus { box-shadow: 0 0 0 4px rgba(25,115,118,.16); border-color: var(--tb-teal); outline:none; }
.tb-time-slot { transition: transform .2s var(--tb-ease), background-color .2s ease, border-color .2s ease, color .2s ease; }
.tb-time-slot:hover { transform: translateY(-2px); border-color: var(--tb-teal); }

/* Interactive tab list (home "in motion"): smoother switch + panel fade */
[data-tb-tab] { transition: transform .3s var(--tb-ease), background-color .25s ease, border-color .25s ease, box-shadow .3s ease; }
[data-tb-tab]:hover { transform: translateX(6px); }
[data-tb-panel]:not([hidden]) { animation: tbPanelIn .55s var(--tb-ease) both; }
@keyframes tbPanelIn { from { opacity:0; translate:18px 0; } to { opacity:1; translate:0 0; } }

/* Ambient motion: gentle float on decorative icon tiles in heroes, shimmering gradient text helper */
@keyframes tbFloat { 0%,100% { translate:0 0; } 50% { translate:0 -8px; } }
section[data-purpose="hero-banner"] [data-purpose*="visual"], section[data-purpose="hero-banner"] [class*="shadow-2xl"] { animation: tbFloat 6s ease-in-out infinite; }
.tb-shimmer { background:linear-gradient(90deg,#197376,#38bdf8,#197376); background-size:200% 100%; -webkit-background-clip:text; background-clip:text; color:transparent; animation:tbShift 5s linear infinite; }
section h1 .text-brand-600, section h1 [class*="text-[#197376]"] { background:linear-gradient(90deg,#197376,#2aa5a8,#38bdf8,#197376); background-size:220% 100%; -webkit-background-clip:text; background-clip:text; color:transparent; animation:tbShift 6s linear infinite; }

@media (hover:none) { .tb-top { right:.75rem; bottom:.75rem; } }
@media (prefers-reduced-motion: reduce) {
  main h1, main h1 + p, main h1 ~ p, main h1 ~ div a, .tb-progress, .tb-shimmer, a[class*="rounded-full"], section[data-purpose="hero-banner"] * { animation: none !important; }
  .tb-rise { opacity:1 !important; translate:none !important; scale:none !important; }
  a[class*="rounded-full"]::after { display:none; }
}


/* ============================================================
   v6 ENERGY-SECTOR DESIGN LAYER
   Control-room look: dark glowing heroes + CTA bands with circuit texture and flowing
   energy lines, amber "electric" accents, charged card hovers, gradient buttons.
   Heroes = first section of every page; bands = last (CTA) section and the metric bands.
   Legal pages, posts and the contact page's office grid stay light (body classes tb-plain / tb-noband).
   ============================================================ */
:root { --tb-amber:#fbbf24; --tb-cyan:#67e8f9; --tb-ink:#04101f; --tb-hdr:4.5rem; }

@keyframes tbFlow { to { background-position: 200% 0; } }


/* bright energy line along the bottom (and top of CTA bands) */


/* content sits above the animated canvas */



/* hero sits under the floating header on inner pages (no white strip) */
body:not(.home):not(.tb-plain) #tb-main > section:first-of-type { margin-top: calc(-1 * var(--tb-hdr)); border-top: var(--tb-hdr) solid transparent !important; }

/* ---- text on dark ---- */







/* surfaces become glass */







.tb-spot { background: radial-gradient(420px circle at var(--sx,50%) var(--sy,50%), rgba(103,232,249,.14), transparent 60%) !important; }

/* ---- gradient "electric" buttons (everywhere) ---- */
a[class~="bg-[#197376]"], button[class~="bg-[#197376]"], a[class~="bg-brand-600"], a[class~="bg-brand-500"] {
  background-image: linear-gradient(120deg, #197376 0%, #0f8a86 45%, #0b6bb5 100%); background-size: 160% 100%; background-position: 0 0;
  transition: background-position .5s var(--tb-ease), transform .22s ease, box-shadow .22s ease, filter .22s ease; box-shadow: 0 10px 24px -12px rgba(25,115,118,.65); }
a[class~="bg-[#197376]"]:hover, button[class~="bg-[#197376]"]:hover, a[class~="bg-brand-600"]:hover, a[class~="bg-brand-500"]:hover { background-position: 100% 0; box-shadow: 0 16px 34px -12px rgba(11,107,181,.7), 0 0 0 4px rgba(34,211,238,.14); }

/* ---- eyebrow dash becomes a flowing energy bar ---- */
span.inline-block[class*="h-[2px]"], span.inline-block[class*="h-px"][class*="w-"] {
  background: linear-gradient(90deg,#197376,#38bdf8,#fbbf24,#197376) !important; background-size: 200% 100%; animation: tbFlow 3.5s linear infinite; width: 1.75rem !important; border-radius: 2px; }

/* ---- thin energy line at the top of every light section ---- */
#tb-main > section:not(:first-of-type):not(:last-of-type) { position: relative; }
#tb-main > section:not(:first-of-type):not(:last-of-type)::before { content:""; position:absolute; left:0; right:0; top:0; height:1px; pointer-events:none; z-index:1;
  background: linear-gradient(90deg, transparent 0%, rgba(25,115,118,.45) 30%, rgba(251,191,36,.55) 50%, rgba(25,115,118,.45) 70%, transparent 100%); background-size: 200% 100%; animation: tbFlow 9s linear infinite; }

/* ---- charged cards: gradient bar draws across the top on hover ---- */
[data-purpose$="-card"], [data-purpose="article-card"], .grid > a[class*="rounded-xl"], .grid > div[class*="rounded-xl"], .grid > a[class*="rounded-2xl"], .grid > div[class*="rounded-2xl"] { position: relative; }
[data-purpose$="-card"]:not(.absolute):not(.sticky)::before, .grid > a[class*="rounded-xl"]::before, .grid > div[class*="rounded-xl"]:not(.sticky)::before, .grid > a[class*="rounded-2xl"]::before, .grid > div[class*="rounded-2xl"]:not(.sticky)::before {
  content:""; position:absolute; left:16px; right:16px; top:-1px; height:3px; border-radius:3px; pointer-events:none; z-index:2;
  background: linear-gradient(90deg,#197376,#38bdf8,#fbbf24); transform: scaleX(0); transform-origin: 0 50%; transition: transform .55s var(--tb-ease); }
[data-purpose$="-card"]:hover::before, .grid > a[class*="rounded-xl"]:hover::before, .grid > div[class*="rounded-xl"]:hover::before, .grid > a[class*="rounded-2xl"]:hover::before, .grid > div[class*="rounded-2xl"]:hover::before { transform: scaleX(1); }

/* ---- home domain ticker -> dark power bar with amber diamonds ---- */









/* ---- v6 polish ---- */

/* ghost / text-link buttons inside dark areas */

/* faint technical texture + corner glow on light sections so they are not flat white */



/* chips / pills with a light fill become glass on dark; white buttons stay solid white */





/* ============================================================
   v6.1 fixes + nav dropdown + card hover on custom card classes
   ============================================================ */
/* white buttons on dark: always solid white, dark text, also on hover */



/* custom card classes used on Platform / Resources / etc. get the same charged hover (beats page <style> rules) */
html body .card-clean, html body .card-hover, html body .card-hover-effect, html body .card-lift {
  position: relative; transition: transform .35s cubic-bezier(.22,1,.36,1), box-shadow .35s cubic-bezier(.22,1,.36,1), border-color .3s ease, background-color .3s ease; }
html body .card-clean:hover, html body .card-hover:hover, html body .card-hover-effect:hover, html body .card-lift:hover {
  transform: translateY(-8px); border-color: rgba(25,115,118,.55);
  box-shadow: 0 0 0 1px rgba(25,115,118,.35), 0 30px 60px -20px rgba(25,115,118,.38), 0 10px 22px -10px rgba(15,23,42,.18); }
html body .card-clean::before, html body .card-hover::before, html body .card-hover-effect::before, html body .card-lift::before {
  content:""; position:absolute; left:16px; right:16px; top:-1px; height:3px; border-radius:3px; pointer-events:none; z-index:2;
  background: linear-gradient(90deg,#197376,#38bdf8,#fbbf24); transform: scaleX(0); transform-origin: 0 50%; transition: transform .55s cubic-bezier(.22,1,.36,1); }
html body .card-clean:hover::before, html body .card-hover:hover::before, html body .card-hover-effect:hover::before, html body .card-lift:hover::before { transform: scaleX(1); }
html body .card-clean:hover [class*="rounded-lg"][class*="bg-[#f0f7f7]"], html body .card-hover-effect:hover [class*="rounded-lg"][class*="bg-[#f0f7f7]"] { background: linear-gradient(135deg,#197376,#0b6bb5); color:#fff; transform: scale(1.1) rotate(-4deg); }
.card-clean [class*="rounded-lg"][class*="bg-[#f0f7f7]"], .card-hover-effect [class*="rounded-lg"][class*="bg-[#f0f7f7]"] { transition: background .3s ease, color .3s ease, transform .4s cubic-bezier(.34,1.56,.64,1); }
/* bordered pill/list cells in grids (integration lists, tags) */
.grid > div[class*="rounded-lg"][class*="border"][class*="bg-white"] { transition: transform .3s cubic-bezier(.22,1,.36,1), box-shadow .3s ease, border-color .25s ease; }
.grid > div[class*="rounded-lg"][class*="border"][class*="bg-white"]:hover { transform: translateY(-4px) translateX(2px); border-color: #197376 !important; box-shadow: 0 14px 30px -14px rgba(25,115,118,.5), inset 3px 0 0 #197376 !important; }

/* ---- navigation dropdowns: glass panel, staggered items, charged hover ---- */
@keyframes tbMenuIn { from { opacity:0; transform: translateY(10px) scale(.97); } to { opacity:1; transform: none; } }
@keyframes tbItemIn { from { opacity:0; transform: translateX(-8px); } to { opacity:1; transform: none; } }
header[data-purpose="site-navigation"] .group > div.absolute > div {
  position: relative; overflow: hidden; background: rgba(255,255,255,.985) !important;
  border: 1px solid rgba(25,115,118,.18) !important; border-radius: 1.25rem !important;
  box-shadow: 0 40px 80px -24px rgba(4,16,31,.55), 0 0 0 1px rgba(255,255,255,.6) inset !important; animation: tbMenuIn .28s cubic-bezier(.22,1,.36,1) both; transform-origin: 50% 0; }
header[data-purpose="site-navigation"] .group > div.absolute > div::before {
  content:""; position:absolute; left:0; right:0; top:0; height:3px; background: linear-gradient(90deg,#197376,#38bdf8,#fbbf24,#197376); background-size: 200% 100%; animation: tbFlow 4s linear infinite; }
header[data-purpose="site-navigation"] [class*="group/item"] {
  position: relative; border-radius: .85rem !important; animation: tbItemIn .35s cubic-bezier(.22,1,.36,1) both;
  transition: transform .28s cubic-bezier(.22,1,.36,1), background .25s ease, box-shadow .25s ease; }
header[data-purpose="site-navigation"] [class*="group/item"]:nth-child(1) { animation-delay: .03s; }
header[data-purpose="site-navigation"] [class*="group/item"]:nth-child(2) { animation-delay: .06s; }
header[data-purpose="site-navigation"] [class*="group/item"]:nth-child(3) { animation-delay: .09s; }
header[data-purpose="site-navigation"] [class*="group/item"]:nth-child(4) { animation-delay: .12s; }
header[data-purpose="site-navigation"] [class*="group/item"]:nth-child(5) { animation-delay: .15s; }
header[data-purpose="site-navigation"] [class*="group/item"]:nth-child(n+6) { animation-delay: .18s; }
header[data-purpose="site-navigation"] [class*="group/item"]:hover {
  transform: translateX(6px); background: linear-gradient(90deg, rgba(25,115,118,.14), rgba(56,189,248,.05) 70%, transparent) !important;
  box-shadow: inset 3px 0 0 #197376, 0 10px 24px -14px rgba(25,115,118,.5); }
header[data-purpose="site-navigation"] [class*="group/item"] [class*="rounded-lg"][class*="bg-"] { transition: background .3s ease, color .3s ease, transform .4s cubic-bezier(.34,1.56,.64,1), box-shadow .3s ease; }
header[data-purpose="site-navigation"] [class*="group/item"]:hover [class*="rounded-lg"][class*="bg-"] {
  background: linear-gradient(135deg,#197376,#0b6bb5) !important; color:#fff !important; transform: scale(1.12) rotate(-5deg); box-shadow: 0 8px 18px -6px rgba(11,107,181,.6); }
header[data-purpose="site-navigation"] [class*="group/item"]:hover svg { transform: none; }
header[data-purpose="site-navigation"] .group > div.absolute > div a:not([class*="group/item"]) { transition: letter-spacing .25s ease, color .2s ease; }
header[data-purpose="site-navigation"] .group > div.absolute > div a:not([class*="group/item"]):hover { letter-spacing: .02em; }
header[data-purpose="site-navigation"] nav .group > button { transition: color .2s ease; }
header[data-purpose="site-navigation"] nav .group:hover > button { color: #197376; }
/* platform data-flow panel */
[data-purpose="twin-visualization-banner"] { box-shadow: 0 40px 90px -40px rgba(25,115,118,.55), 0 0 0 1px rgba(103,232,249,.18); border-color: rgba(103,232,249,.25) !important; border-radius: 1.5rem !important; }
@media (prefers-reduced-motion: reduce) { header[data-purpose="site-navigation"] .group > div.absolute > div, header[data-purpose="site-navigation"] [class*="group/item"], header[data-purpose="site-navigation"] .group > div.absolute > div::before { animation: none !important; } }
/* decorative white fade overlays inside dark heroes/bands would wash the dark out */


/* ---- v6.2: footer region chips (UAE · India · Oman · KSA · Singapore) ---- */
.tb-region-chips{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem}
.tb-region-chip{display:inline-flex;align-items:center;gap:.4rem;padding:.38rem .75rem;border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.04em;color:#cbd5e1;text-decoration:none;
  background:rgba(255,255,255,.04);border:1px solid rgba(148,163,184,.22);transition:transform .25s,background .25s,border-color .25s,color .25s,box-shadow .25s}
.tb-region-chip:hover{color:#fff;transform:translateY(-2px);background:rgba(25,115,118,.22);border-color:rgba(45,212,191,.6);box-shadow:0 6px 18px -6px rgba(45,212,191,.45)}
.tb-region-dot{width:6px;height:6px;border-radius:50%;background:#2dd4bf;box-shadow:0 0 0 0 rgba(45,212,191,.6);animation:tbRegionPulse 2.4s infinite}
.tb-region-chip:nth-child(2) .tb-region-dot{animation-delay:.3s}.tb-region-chip:nth-child(3) .tb-region-dot{animation-delay:.6s}.tb-region-chip:nth-child(4) .tb-region-dot{animation-delay:.9s}.tb-region-chip:nth-child(5) .tb-region-dot{animation-delay:1.2s}
@keyframes tbRegionPulse{0%{box-shadow:0 0 0 0 rgba(45,212,191,.55)}70%{box-shadow:0 0 0 7px rgba(45,212,191,0)}100%{box-shadow:0 0 0 0 rgba(45,212,191,0)}}
@media (prefers-reduced-motion:reduce){.tb-region-dot{animation:none}}


/* ============================================================
   v7 LIGHT DESIGN — white sections, soft light tints, infographics.
   Buttons and highlighted text keep their brand colours.
   ============================================================ */
:root { --tb-hdr:4.5rem; --tb-teal:#197376; --tb-ink:#0f2a44; }
body { background:#fff; }
#tb-main > section { background-image:none; }
body:not(.tb-plain):not(.home) #tb-main > section:first-of-type { margin-top: calc(-1 * var(--tb-hdr)); border-top: var(--tb-hdr) solid transparent !important; }
/* one soft light wash for hero + final band */
#tb-main > section:first-of-type, body:not(.tb-plain):not(.tb-noband) #tb-main > section:last-of-type { background-color:#f4fbfb !important; background-image:radial-gradient(60% 80% at 90% 0%, rgba(25,115,118,.10), transparent 65%), radial-gradient(45% 70% at 0% 100%, rgba(56,189,248,.10), transparent 60%) !important; color:#334155; }
/* thin energy line on top of sections */
#tb-main > section:first-of-type::after { content:none; }

/* ---- infographics ---- */
.tb-ig{background:#fff;padding:4.5rem 0;border-bottom:1px solid #e8eef2}
.tb-ig-wrap{max-width:80rem;margin:0 auto;padding:0 1.5rem}
.tb-ig-head{max-width:46rem;margin:0 auto 2.4rem;text-align:center}
.tb-ig-eyebrow{display:inline-flex;align-items:center;gap:.6rem;font-size:11px;font-weight:800;letter-spacing:.18em;color:var(--tb-teal);margin-bottom:.8rem}
.tb-ig-eyebrow i{width:22px;height:2px;background:var(--tb-teal)}
.tb-ig-head h2{margin:0 0 .7rem;font-size:clamp(1.6rem,3.2vw,2.3rem);font-weight:800;letter-spacing:-.02em;color:#0f172a}
.tb-ig-head p{margin:0;color:#475569;line-height:1.7}
.tb-ig-sub{margin:3rem 0 1.4rem;text-align:center;font-size:1.05rem;font-weight:700;color:#0f172a}
/* hub */
.tb-ig-hubwrap{max-width:52rem;margin:0 auto}
.tb-ig-hub{width:100%;height:auto;display:block;overflow:visible}
.tb-ig-orbit{fill:none;stroke:#cfe3e4;stroke-width:1.5;stroke-dasharray:3 7}
.tb-ig-spoke{stroke:#b6d6d7;stroke-width:1.5}
.tb-ig-dot{fill:#197376}
.tb-ig-pulse{fill:rgba(25,115,118,.12);animation:tbIgPulse 2.8s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
@keyframes tbIgPulse{0%,100%{transform:scale(1);opacity:.9}50%{transform:scale(1.18);opacity:.3}}
.tb-ig-ctext{fill:#fff;font:800 15px Inter,system-ui,sans-serif}
.tb-ig-csub{fill:#d6f5f2;font:600 10px Inter,system-ui,sans-serif;letter-spacing:.12em;text-transform:uppercase}
.tb-ig-node rect{fill:#fff;stroke:#cfe3e4;stroke-width:1.5;filter:drop-shadow(0 6px 10px rgba(15,42,68,.08));transition:stroke .25s,fill .25s}
.tb-ig-node{cursor:default}
.tb-ig-node:hover rect{stroke:#197376;fill:#f0fafa}
.tb-ig-badge{fill:#197376}
.tb-ig-num{fill:#fff;font:700 11px Inter,sans-serif}
.tb-ig-label{fill:#0f2a44;font:600 11.5px Inter,system-ui,sans-serif}
.tb-ig-chips{display:none;list-style:none;margin:1rem 0 0;padding:0;gap:.5rem}
.tb-ig-chips li{display:flex;gap:.7rem;align-items:center;padding:.7rem .9rem;border:1px solid #d7e6e7;border-radius:12px;background:#fff;color:#0f2a44;font-weight:600;font-size:14px}
.tb-ig-chips b{flex:none;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:#197376;color:#fff;font-size:12px}
@media (max-width:640px){.tb-ig-hub{display:none}.tb-ig-chips{display:grid}}
/* stats */
.tb-ig-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:1.2rem;max-width:62rem;margin:0 auto}
.tb-ig-stat{position:relative;text-align:center;padding:1.4rem 1rem;border:1px solid #e1ecee;border-radius:18px;background:linear-gradient(180deg,#fff,#f6fbfb);transition:transform .3s,box-shadow .3s,border-color .3s}
.tb-ig-stat:hover{transform:translateY(-4px);border-color:#197376;box-shadow:0 16px 34px -18px rgba(25,115,118,.5)}
.tb-ig-ring{width:64px;height:64px;transform:rotate(-90deg)}
.tb-ig-ring .bg{fill:none;stroke:#e3eff0;stroke-width:9}
.tb-ig-ring .fg{fill:none;stroke:#197376;stroke-width:9;stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:calc(100 - var(--p));animation:tbIgRing 1.6s cubic-bezier(.2,.8,.2,1) both}
.tb-ig-ring-live .fg{stroke-dasharray:6 6;stroke-dashoffset:0;animation:tbIgSpin 14s linear infinite;transform-origin:center}
@keyframes tbIgRing{from{stroke-dashoffset:100}}
@keyframes tbIgSpin{to{transform:rotate(360deg)}}
.tb-ig-statv{margin-top:.9rem;font-weight:800;font-size:1.6rem;line-height:1.1;color:#197376}
.tb-ig-stat p{margin:.5rem 0 0;font-size:13px;line-height:1.55;color:#475569}
/* flow */
.tb-ig-flow{list-style:none;margin:0 auto;padding:0;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));max-width:70rem;counter-reset:s}
.tb-ig-step{position:relative;padding:1.4rem 1.2rem 1.2rem;border:1px solid #dfeaec;border-radius:16px;background:#fff;transition:transform .3s,box-shadow .3s,border-color .3s}
.tb-ig-step:hover{transform:translateY(-4px);border-color:#197376;box-shadow:0 16px 34px -18px rgba(25,115,118,.5)}
.tb-ig-step:not(:last-child)::after{content:"";position:absolute;right:-.85rem;top:2.1rem;width:.7rem;height:.7rem;border-top:3px solid #197376;border-right:3px solid #197376;transform:rotate(45deg);animation:tbIgNudge 1.8s ease-in-out infinite;animation-delay:calc(var(--i)*.2s)}
@keyframes tbIgNudge{50%{transform:translateX(4px) rotate(45deg)}}
.tb-ig-stepn{display:inline-block;margin-bottom:.6rem;padding:.2rem .55rem;border-radius:8px;background:#e8f5f5;color:#197376;font:700 12px "JetBrains Mono",monospace}
.tb-ig-step h3{margin:0 0 .4rem;font-size:1rem;font-weight:700;color:#0f172a}
.tb-ig-step p{margin:0;font-size:13px;line-height:1.6;color:#475569}
@media (max-width:640px){.tb-ig-step:not(:last-child)::after{display:none}}
/* compare */
.tb-ig-compare{display:grid;grid-template-columns:1fr auto 1fr;gap:1.2rem;align-items:stretch;max-width:62rem;margin:0 auto}
.tb-ig-cmp{padding:1.6rem;border-radius:18px;border:1px solid #e1e8ee;background:#f8fafc}
.tb-ig-cmp-b{background:#f0fafa;border-color:#b5dcdd}
.tb-ig-cmp h3{margin:0 0 .9rem;font-size:1.05rem;font-weight:800;color:#0f172a}
.tb-ig-cmp ul{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}
.tb-ig-cmp li{position:relative;padding-left:1.4rem;font-size:14px;line-height:1.55;color:#334155}
.tb-ig-cmp li::before{content:"";position:absolute;left:0;top:.5em;width:8px;height:8px;border-radius:50%;background:#94a3b8}
.tb-ig-cmp-b li::before{background:#197376}
.tb-ig-cmp-mid{display:flex;align-items:center}
@media (max-width:767px){.tb-ig-compare{grid-template-columns:1fr}.tb-ig-cmp-mid{justify-content:center;transform:rotate(90deg)}}
/* stack */
.tb-ig-stack{list-style:none;margin:0 auto;padding:0;display:grid;gap:.7rem;max-width:50rem}
.tb-ig-layer{display:flex;gap:1rem;align-items:center;width:var(--w);margin:0 auto;padding:1rem 1.3rem;border-radius:14px;border:1px solid #cfe3e4;background:linear-gradient(90deg,#fff,#eef8f8);transition:transform .3s,border-color .3s,box-shadow .3s}
.tb-ig-layer:hover{transform:scale(1.02);border-color:#197376;box-shadow:0 14px 30px -18px rgba(25,115,118,.6)}
.tb-ig-layern{flex:none;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;background:#197376;color:#fff;font-weight:800}
.tb-ig-layer h3{margin:0;font-size:1rem;font-weight:700;color:#0f172a}
.tb-ig-layer p{margin:.2rem 0 0;font-size:13px;color:#475569;line-height:1.5}
@media (max-width:640px){.tb-ig-layer{width:100%}}
/* pills */
.tb-ig-pillrow{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem;margin-top:2rem}
.tb-ig-pilllabel{font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#64748b;margin-right:.4rem}
.tb-ig-pill{padding:.4rem .85rem;border-radius:999px;border:1px solid #cfe3e4;background:#f4fbfb;color:#0f2a44;font-size:12.5px;font-weight:600}
@media (prefers-reduced-motion:reduce){.tb-ig *{animation:none !important}}

/* ---- v6.2: Solution Brief — brochure downloads ---- */

.tb-br-crumbs{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;font-size:12px;color:#64748b;margin-bottom:1.6rem;position:relative;z-index:2}
.tb-br-crumbs a{color:#475569;text-decoration:none;transition:color .2s}.tb-br-crumbs a:hover{color:#197376}.tb-br-crumbs strong{color:#0f172a;font-weight:600}
.tb-br-eyebrow{display:flex;align-items:center;gap:.6rem;font-size:11px;font-weight:800;letter-spacing:.18em;color:#197376;margin-bottom:1rem;position:relative;z-index:2}.tb-br-eyebrow i{width:22px;height:2px;background:#197376;display:block}




.tb-br-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:2rem;align-items:start}
@media (min-width:1024px){.tb-br-grid{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:2.5rem}.tb-br-right{position:sticky;top:7rem}}
.tb-br-strip{display:flex;flex-wrap:wrap;align-items:center;gap:.65rem;padding:.9rem 1.1rem;margin-bottom:1.8rem;border-radius:14px;background:#fff;border:1px solid #dbe7e9;font-size:12.5px;font-weight:600;color:#334155}
.tb-br-strip [hidden]{display:none !important}
.tb-br-chip-pdf{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .65rem;border-radius:8px;background:#f1f5f9;border:1px solid #dbe7e9;color:#0f172a}.tb-br-chip-pdf svg{color:#f87171}
.tb-br-sep{color:#64748b}
.tb-br-tag{padding:.25rem .6rem;border-radius:8px;background:#e6f5f5;color:#197376;border:1px solid #b5dcdd}
.tb-br-h2{font-size:1.15rem;font-weight:700;color:#0f172a;margin:0 0 1rem;letter-spacing:.01em}
.tb-br-cards{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem}
@media (min-width:640px){.tb-br-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
.tb-br-card{position:relative;display:block;cursor:pointer;border-radius:18px}
.tb-br-card.is-soon{cursor:not-allowed}
.tb-br-radio{position:absolute;opacity:0;pointer-events:none}
.tb-br-card-in{position:relative;display:flex;flex-direction:column;gap:.55rem;height:100%;padding:1.35rem 1.3rem 1.2rem;border-radius:18px;background:linear-gradient(160deg,#ffffff,#f6fbfb);border:1px solid #dbe7e9;overflow:hidden;transition:transform .35s cubic-bezier(.2,.8,.2,1),border-color .3s,box-shadow .35s,background .3s}
.tb-br-card-in::before{content:"";position:absolute;inset:0;background:radial-gradient(260px 160px at 90% -10%,rgba(25,115,118,.10),transparent 70%);opacity:0;transition:opacity .35s}
.tb-br-card:not(.is-soon):hover .tb-br-card-in{transform:translateY(-5px);border-color:rgba(25,115,118,.5);box-shadow:0 18px 40px -16px rgba(25,115,118,.35)}
.tb-br-card:hover .tb-br-card-in::before,.tb-br-radio:checked + .tb-br-card-in::before{opacity:1}
.tb-br-radio:checked + .tb-br-card-in{border-color:#197376;box-shadow:0 0 0 1px #197376,0 20px 44px -18px rgba(25,115,118,.45);background:linear-gradient(160deg,#e6f5f5,#fff)}
.tb-br-radio:focus-visible + .tb-br-card-in{outline:2px solid #197376;outline-offset:3px}
.tb-br-card.is-soon .tb-br-card-in{opacity:.62}
.tb-br-num{position:absolute;top:1rem;right:1.1rem;font:700 11px/1 "JetBrains Mono",ui-monospace,monospace;color:#64748b;letter-spacing:.1em}
.tb-br-icon{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:12px;color:#197376;background:#e6f5f5;border:1px solid #b5dcdd;transition:transform .35s,background .3s}
.tb-br-card:not(.is-soon):hover .tb-br-icon{transform:scale(1.08) rotate(-4deg);background:rgba(25,115,118,.10)}
.tb-br-title{font-size:1.05rem;font-weight:700;line-height:1.3;color:#0f172a}
.tb-br-desc{font-size:13px;line-height:1.6;color:#475569;flex:1}
.tb-br-foot{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin-top:.4rem}
.tb-br-pill{font-size:11px;font-weight:600;color:#334155;padding:.28rem .6rem;border-radius:999px;background:#f1f5f9;border:1px solid #dbe7e9}
.tb-br-pill-soon{color:#b45309;border-color:#fcd9a0;background:#fffbeb}
.tb-br-pick{font-size:11.5px;font-weight:700;color:#94a3b8}.tb-br-pick-on{display:none;color:#197376}
.tb-br-radio:checked + .tb-br-card-in .tb-br-pick-on{display:inline}.tb-br-radio:checked + .tb-br-card-in .tb-br-pick-off{display:none}
.tb-br-inside{margin-top:1.6rem;padding:1.2rem 1.3rem;border-radius:16px;background:#f8fbfb;border:1px solid #dbe7e9}
.tb-br-inside[hidden]{display:none}
.tb-br-inside h3{font-size:11px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:#7c8ba1;margin:0 0 .8rem}
.tb-br-inside ul{list-style:none;margin:0;padding:0;display:grid;gap:.55rem}
.tb-br-inside li{position:relative;padding-left:1.4rem;font-size:13.5px;line-height:1.55;color:#334155}
.tb-br-inside li::before{content:"";position:absolute;left:0;top:.5em;width:8px;height:8px;border-radius:2px;background:#197376}
.tb-br-form{position:relative;padding:1.8rem 1.6rem 1.5rem;border-radius:22px;background:linear-gradient(160deg,#ffffff,#f6fbfb);border:1px solid #dbe7e9;box-shadow:0 30px 60px -30px rgba(15,42,68,.25)}
.tb-br-kicker{display:inline-block;font-size:10px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:#197376;padding:.3rem .65rem;border-radius:999px;background:#e6f5f5;border:1px solid #b5dcdd}
.tb-br-fh{margin:.8rem 0 .3rem;font-size:1.45rem;line-height:1.25;font-weight:800;color:#0f172a}
.tb-br-fp{margin:0 0 1.2rem;font-size:13px;color:#94a3b8}
.tb-br-form label{display:block;margin:.9rem 0 .35rem;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#334155}
.tb-br-form input[type=text],.tb-br-form input[type=email],.tb-br-form select{width:100%;padding:.75rem .9rem;border-radius:10px;background:#fff;border:1px solid #cbd5e1;color:#0f172a;font-size:14px;transition:border-color .2s,box-shadow .2s}
.tb-br-form input::placeholder{color:#64748b}
.tb-br-form select option{color:#0f172a;background:#fff}
.tb-br-form input:focus,.tb-br-form select:focus{outline:none;border-color:#197376;box-shadow:0 0 0 3px rgba(25,115,118,.2)}
.tb-br-submit{display:flex;align-items:center;justify-content:center;gap:.6rem;width:100%;margin-top:1.4rem;padding:.95rem 1rem;border:0;border-radius:12px;cursor:pointer;font-size:14px;font-weight:700;color:#fff;background:linear-gradient(90deg,#197376,#2aa5a8);box-shadow:0 12px 30px -10px rgba(25,115,118,.6);transition:transform .25s,box-shadow .25s,filter .25s}
.tb-br-submit:hover:not(:disabled){transform:translateY(-2px);filter:brightness(1.07);box-shadow:0 18px 36px -10px rgba(45,212,191,.85)}
.tb-br-submit:disabled{opacity:.5;cursor:not-allowed}
.tb-br-submit svg{transition:transform .25s}.tb-br-submit:hover:not(:disabled) svg{transform:translateY(2px)}
.tb-br-note{margin:.9rem 0 0;text-align:center;font-size:11.5px;color:#64748b}
.tb-br-success,.tb-br-error{display:flex;gap:1rem;align-items:center;margin:0 0 1.8rem;padding:1.1rem 1.3rem;border-radius:16px;font-size:14px;color:#065f46;background:#ecfdf5;border:1px solid #6ee7b7;animation:tbBrIn .5s ease both}
.tb-br-success[hidden],.tb-br-error[hidden]{display:none}
.tb-br-success strong{display:block;color:#064e3b;font-size:15px;margin-bottom:.15rem}.tb-br-success span{color:#047857}.tb-br-success a{color:#065f46;font-weight:700;text-decoration:underline}
.tb-br-success-ic{flex:none;display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:#10b981;color:#fff}
.tb-br-error{color:#991b1b;background:#fef2f2;border-color:#fca5a5}
@keyframes tbBrIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}



.tb-br-cta-row{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:1rem}



.tb-br-empty{color:#475569}
@media (min-width:1024px){.tb-footer-cta>a{flex:none;white-space:nowrap}}

.tb-br-hero{padding:7.5rem 0 3.5rem}
.tb-br-hero h1{font-size:clamp(2rem,4.6vw,3.4rem);line-height:1.1;font-weight:800;letter-spacing:-.02em;color:#0f172a;max-width:46rem;margin:0 0 1rem}
.tb-br-hero h1 span{color:#197376}
.tb-br-hero p{max-width:40rem;font-size:1.05rem;line-height:1.7;color:#475569;margin:0}
.tb-br-section{background:#fff;padding:1rem 0 5rem}
.tb-br-cta{padding:4rem 0;text-align:center}
.tb-br-cta h2{margin:0 0 .7rem;font-size:clamp(1.5rem,3vw,2.1rem);font-weight:800;color:#0f172a}
.tb-br-cta p{margin:0 auto 1.6rem;max-width:38rem;line-height:1.7;color:#475569}
.tb-br-cta-row{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:1rem}
.tb-br-cta-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.85rem 1.6rem;border-radius:999px;background:#197376;color:#fff;font-weight:700;font-size:14px;text-decoration:none;transition:transform .25s,box-shadow .25s}
.tb-br-cta-btn:hover{transform:translateY(-3px);box-shadow:0 14px 30px -10px rgba(25,115,118,.6);color:#fff}
.tb-br-cta-link{color:#197376;font-weight:600;font-size:14px;text-decoration:none;border-bottom:1px solid #197376;padding-bottom:2px}

/* ---- v7: light footer ---- */
footer[data-purpose="site-footer"]{background:#f4fbfb !important;border-top:1px solid #dbe7e9 !important;color:#475569 !important}
footer[data-purpose="site-footer"] .border-slate-800,footer[data-purpose="site-footer"] [class*="border-slate-"]{border-color:#dbe7e9 !important}
footer[data-purpose="site-footer"] img{filter:none !important}
footer[data-purpose="site-footer"] h4{color:#0f2a44 !important}
footer[data-purpose="site-footer"] a:not([class*="bg-[#197376]"]){color:#475569}
footer[data-purpose="site-footer"] a:not([class*="bg-[#197376]"]):hover{color:#197376 !important}
footer[data-purpose="site-footer"] p,footer[data-purpose="site-footer"] li,footer[data-purpose="site-footer"] span:not(.tb-region-dot){color:inherit}
footer[data-purpose="site-footer"] a[class*="bg-[#197376]"],footer[data-purpose="site-footer"] a[class*="bg-[#197376]"] span{color:#fff !important}
footer[data-purpose="site-footer"] .tb-region-chip{background:#fff;border-color:#cfe3e4;color:#0f2a44}
footer[data-purpose="site-footer"] .tb-region-chip:hover{background:#e6f5f5;border-color:#197376;color:#197376 !important;box-shadow:0 6px 18px -8px rgba(25,115,118,.5)}
.tb-region-dot{background:#197376}
@keyframes tbRegionPulse{0%{box-shadow:0 0 0 0 rgba(25,115,118,.5)}70%{box-shadow:0 0 0 7px rgba(25,115,118,0)}100%{box-shadow:0 0 0 0 rgba(25,115,118,0)}}

/* ============================================================
   v7.1 PURE WHITE + LIGHT GRAY BOXES. No patterns, no tints.
   ============================================================ */
:root{--tb-gray:#f3f5f7;--tb-gray-b:#e3e8ee}
html,body{background:#fff !important}
#tb-main > section, #tb-main > section::before, #tb-main > section::after, footer[data-purpose="site-footer"]{background-image:none !important}
#tb-main section:not(.tb-keepbg){background-color:#fff !important}
#tb-main > section:first-of-type, body:not(.tb-plain):not(.tb-noband) #tb-main > section:last-of-type{background:#fff !important}
#tb-main > section:not(:first-of-type):not(:last-of-type)::before{display:none}
.hero-anim-grid,.hero-anim-blob{display:none !important}
/* boxes: any bordered card/box inside content becomes light gray */
#tb-main :is(div,article,li,figure,details)[class*="border"]:is([class~="bg-white"],[class~="bg-slate-50"],[class~="bg-gray-50"],[class~="bg-slate-100"],[class~="bg-brand-lightBg"],[class*="bg-[#f0f7f7]"],[class*="bg-[#FAFCFF]"],[class*="bg-[#f7fafc]"],[class*="bg-white/"],[class*="bg-slate-50/"]){background-color:var(--tb-gray) !important;border-color:var(--tb-gray-b) !important;background-image:none !important}
#tb-main :is(div,article)[class~="bg-white"][class*="shadow"]{background-color:var(--tb-gray) !important}
.tb-ig-stat,.tb-ig-step,.tb-ig-cmp,.tb-ig-layer,.tb-ig-chips li,.tb-br-card-in,.tb-br-form,.tb-br-strip,.tb-br-inside,.card-clean,.card-hover,.card-hover-effect,.card-lift{background:var(--tb-gray) !important;border-color:var(--tb-gray-b) !important}
.tb-ig-cmp-b{background:#eaf4f4 !important;border-color:#c7e1e1 !important}
.tb-br-radio:checked + .tb-br-card-in{background:#eaf4f4 !important;border-color:#197376 !important}
.tb-ig-node rect{fill:var(--tb-gray)}
.tb-ig-pill{background:var(--tb-gray)}
.tb-ig-orbit{stroke:#d5dee5}.tb-ig-spoke{stroke:#c9d6df}
.tb-br-form input,.tb-br-form select{background:#fff !important}
.tb-ig,.tb-br-section,.tb-br-hero,.tb-br-cta{background:#fff !important}
footer[data-purpose="site-footer"]{background:#fff !important;border-top:1px solid var(--tb-gray-b) !important}
footer[data-purpose="site-footer"] .tb-region-chip{background:var(--tb-gray)}
footer.tb-footer-build,[data-tb-build]{background:#fff !important}
header[data-purpose="site-navigation"] > div,header[data-purpose="site-navigation"] nav{background-color:#fff}
/* article page: static, plain, no motion */
body.single-post *, body.single-post *::before, body.single-post *::after{animation:none !important;transition:none !important}
body.single-post [data-tb-reveal],body.single-post .tb-rise{opacity:1 !important;transform:none !important}
body.single-post #tb-main, body.single-post #tb-main section{background:#fff !important;background-image:none !important}

/* ============================================================
   v7.2 infographic additions: pipeline, big ring, tiles, clouds. Animations start when the section scrolls into view.
   ============================================================ */
.tb-bg-blob{display:none !important}
.tb-ig-pipewrap{max-width:60rem;margin:0 auto}
.tb-ig-pipe{width:100%;height:auto;display:block}
.tb-ig-pline{stroke:#c9d6df;stroke-width:3;stroke-dasharray:2 8;stroke-linecap:round}
.tb-ig-pdot{fill:#197376}
.tb-ig-pc{fill:var(--tb-gray,#f3f5f7);stroke:#197376;stroke-width:2.5}
.tb-ig-pnum{font:800 15px "JetBrains Mono",monospace;fill:#197376}
.tb-ig-pt{font:700 12.5px Inter,system-ui,sans-serif;fill:#0f2a44}
.tb-ig-pn{transition:transform .3s}
.tb-ig-pipelist{list-style:none;margin:1.4rem 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));gap:.8rem}
.tb-ig-pipelist li{display:flex;gap:.7rem;padding:.9rem 1rem;border-radius:14px;background:var(--tb-gray,#f3f5f7);border:1px solid var(--tb-gray-b,#e3e8ee)}
.tb-ig-pipelist b{flex:none;width:24px;height:24px;border-radius:50%;background:#197376;color:#fff;font-size:12px;display:flex;align-items:center;justify-content:center}
.tb-ig-pipelist strong{display:block;font-size:13.5px;color:#0f172a}.tb-ig-pipelist span{display:block;font-size:12.5px;line-height:1.5;color:#475569;margin-top:.15rem}
@media (max-width:720px){.tb-ig-pipe{display:none}}
.tb-ig-bigwrap{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:2.5rem;align-items:center;max-width:62rem;margin:0 auto}
@media (max-width:760px){.tb-ig-bigwrap{grid-template-columns:1fr}}
.tb-ig-bigl{position:relative;max-width:300px;margin:0 auto;width:100%}
.tb-ig-bigring{width:100%;height:auto;transform:rotate(-90deg)}
.tb-ig-bigring .bg{fill:none;stroke:#e3e8ee;stroke-width:12}
.tb-ig-bigring .fg{fill:none;stroke:#197376;stroke-width:12;stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:100}
.tb-ig.is-in .tb-ig-bigring .fg{stroke-dashoffset:calc(100 - var(--p));transition:stroke-dashoffset 1.8s cubic-bezier(.2,.8,.2,1)}
.tb-ig-bigv{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:0 18%}
.tb-ig-bigv b{font-size:clamp(1.3rem,3vw,2rem);font-weight:800;color:#197376;line-height:1.1}
.tb-ig-bigv span{margin-top:.4rem;font-size:12px;color:#475569;line-height:1.4}
.tb-ig-pilllabel2{margin:0 0 .9rem;font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#64748b}
.tb-ig-pillcloud{display:flex;flex-wrap:wrap;gap:.55rem}
.tb-ig-cloud{max-width:62rem;margin:0 auto}.tb-ig-cloud .tb-ig-pilllabel2{text-align:center}.tb-ig-cloud .tb-ig-pillcloud{justify-content:center}
.tb-ig-pill{transition:transform .25s,border-color .25s,background .25s,color .25s}
.tb-ig-pill:hover{transform:translateY(-3px);border-color:#197376;background:#e6f2f2;color:#197376}
.tb-ig-tiles{display:grid;grid-template-columns:repeat(var(--cols,3),minmax(0,1fr));gap:1rem;max-width:72rem;margin:0 auto}
@media (max-width:900px){.tb-ig-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.tb-ig-tiles{grid-template-columns:1fr}}
.tb-ig-tile{position:relative;display:block;padding:1.3rem 1.2rem;border-radius:16px;background:var(--tb-gray,#f3f5f7);border:1px solid var(--tb-gray-b,#e3e8ee);text-decoration:none;transition:transform .3s,box-shadow .3s,border-color .3s}
.tb-ig-tile:hover{transform:translateY(-5px);border-color:#197376;box-shadow:0 18px 36px -20px rgba(25,115,118,.55)}
.tb-ig-tile::after{content:"";position:absolute;left:1.2rem;right:1.2rem;top:-1px;height:3px;border-radius:3px;background:linear-gradient(90deg,#197376,#38bdf8);transform:scaleX(0);transform-origin:0 50%;transition:transform .5s}
.tb-ig-tile:hover::after{transform:scaleX(1)}
.tb-ig-tilen{display:inline-block;margin-bottom:.6rem;padding:.2rem .55rem;border-radius:8px;background:#e6f2f2;color:#197376;font:700 12px "JetBrains Mono",monospace}
.tb-ig-tile h3{margin:0 0 .35rem;font-size:1rem;font-weight:700;color:#0f172a}.tb-ig-tile p{margin:0;font-size:13px;line-height:1.6;color:#475569}
.tb-ig-go{display:inline-block;margin-top:.7rem;font-size:12.5px;font-weight:700;color:#197376}
.tb-ig-cta{display:flex;flex-wrap:wrap;justify-content:center;gap:1.5rem;margin:1.6rem 0 0}.tb-ig-cta a{font-weight:700;color:#197376;text-decoration:none}
.tb-ig-disc{max-width:52rem;margin:0 auto;text-align:center;font-size:12.5px;line-height:1.7;color:#64748b}
/* scroll-triggered entrance */
.tb-ig-js .tb-ig .tb-ig-tile,.tb-ig-js .tb-ig .tb-ig-step,.tb-ig-js .tb-ig .tb-ig-stat,.tb-ig-js .tb-ig .tb-ig-layer,.tb-ig-js .tb-ig .tb-ig-pop,.tb-ig-js .tb-ig .tb-ig-cmp,.tb-ig-js .tb-ig .tb-ig-pipelist li{opacity:0;transform:translateY(18px) scale(.97)}
.tb-ig-js .tb-ig.is-in .tb-ig-tile,.tb-ig-js .tb-ig.is-in .tb-ig-step,.tb-ig-js .tb-ig.is-in .tb-ig-stat,.tb-ig-js .tb-ig.is-in .tb-ig-layer,.tb-ig-js .tb-ig.is-in .tb-ig-pop,.tb-ig-js .tb-ig.is-in .tb-ig-cmp,.tb-ig-js .tb-ig.is-in .tb-ig-pipelist li{opacity:1;transform:none;transition:opacity .6s ease,transform .6s cubic-bezier(.2,.8,.2,1);transition-delay:calc(var(--i,0)*90ms)}
.tb-ig-js .tb-ig.is-in .tb-ig-tile:hover,.tb-ig-js .tb-ig.is-in .tb-ig-step:hover,.tb-ig-js .tb-ig.is-in .tb-ig-stat:hover{transform:translateY(-5px);transition-delay:0s;transition-duration:.3s}
.tb-ig-js .tb-ig:not(.is-in) .tb-ig-ring .fg{stroke-dashoffset:100}
.tb-ig-js .tb-ig:not(.is-in) .tb-ig-pdot,.tb-ig-js .tb-ig:not(.is-in) .tb-ig-dot{visibility:hidden}
.tb-ig-js .tb-ig .tb-ig-node,.tb-ig-js .tb-ig .tb-ig-pn{opacity:0}
.tb-ig-js .tb-ig.is-in .tb-ig-node,.tb-ig-js .tb-ig.is-in .tb-ig-pn{opacity:1;transition:opacity .6s ease;transition-delay:calc(var(--i,0)*120ms)}
@media (prefers-reduced-motion:reduce){.tb-ig-js .tb-ig *{opacity:1 !important;transform:none !important;transition:none !important}}

/* ============================================================
   v7.3 light-gray footer + CTA bands, text always stays inside its box
   ============================================================ */
:root{--tb-band:#f7f8fa}
footer[data-purpose="site-footer"],[data-tb-build]{background:var(--tb-band) !important}
html body #tb-main > section:is(:last-of-type,[data-purpose="pre-footer-action"],[data-purpose="quick-cta-banner"],[data-purpose="pre-cta-banner"],[data-purpose="cta-banner"],[data-purpose="request-demo-banner"],[data-purpose="walkthrough-cta"],[data-purpose="pre-form-cta"],[data-purpose="pre-cta-section"],[data-purpose="pre-footer-cta"],[data-purpose="cta-section"],[data-purpose="quick-cta"],[data-purpose="brochure-cta"]),
html body #tb-main > .tb-br-cta{background-color:var(--tb-band) !important;border-top:1px solid #eceff3 !important;border-bottom:1px solid #eceff3 !important}
body.tb-noband #tb-main > section:last-of-type{background-color:#fff !important}
footer[data-purpose="site-footer"]{border-top:1px solid #eceff3 !important}
footer[data-purpose="site-footer"] .tb-region-chip{background:#fff}
/* contain text */
#tb-main :is(h1,h2,h3,h4,h5,p,li,dt,dd,td,th,label,span,a,strong,div),footer[data-purpose="site-footer"] :is(p,li,a,span,h4){overflow-wrap:break-word;min-width:0}
#tb-main :is(div,a,article,li)[class*="rounded"]:not([class*="rounded-full"]){min-width:0}
#tb-main :is(.grid,.flex)>*{min-width:0}
.tb-ig-stat,.tb-ig-step,.tb-ig-tile,.tb-ig-cmp,.tb-ig-layer,.tb-br-card-in,.tb-ig-pipelist li{min-width:0;overflow-wrap:break-word}
.tb-ig-statv{overflow-wrap:anywhere;font-size:clamp(1.05rem,2.2vw,1.5rem)}
.tb-ig-pill,.tb-ig-chips li{max-width:100%;overflow-wrap:anywhere}
.tb-ig-bigv b{overflow-wrap:anywhere;font-size:clamp(1.1rem,2.4vw,1.7rem)}
.tb-region-chip{max-width:100%}
/* big stat numbers shrink instead of spilling out of their cards */
#tb-main [class*="text-4xl"][class*="font-extrabold"],#tb-main [class*="text-3xl"][class*="font-extrabold"],#tb-main [class*="text-5xl"][class*="font-extrabold"],#tb-main [class*="text-4xl"][class*="font-black"],#tb-main [class*="text-3xl"][class*="font-black"]{overflow-wrap:break-word;hyphens:manual;line-height:1.1}
@media (max-width:900px){#tb-main [class*="text-5xl"][class*="font-extrabold"]{font-size:2rem}}
table{max-width:100%}
.overflow-x-auto{max-width:100%}
footer[data-purpose="site-footer"] a[href^="mailto"],footer[data-purpose="site-footer"] a[href^="tel"]{overflow-wrap:anywhere;word-break:break-word;min-width:0}
footer[data-purpose="site-footer"] a[href^="mailto"]{font-size:11px}
#tb-main span[class*="uppercase"][class*="font-semibold"]:not(.block){flex-shrink:0}
#tb-main span.whitespace-nowrap,#tb-main a.whitespace-nowrap:not([class*="bg-[#197376]"]){white-space:normal}
#tb-main span[class*="text-2xl"],#tb-main span[class*="text-xl"][class*="font-mono"]{flex-shrink:0}
#tb-main span[class*="w-12"][class*="h-12"],#tb-main span[class*="w-10"][class*="h-10"],#tb-main div[class*="w-8"][class*="h-8"]{flex-shrink:0}
[data-purpose="domain-ticker"] span{flex:none}
#tb-main [class*="font-mono"]{overflow-wrap:anywhere;min-width:0}
#tb-main button[type="submit"]{flex-shrink:0}
#tb-main form .flex-grow,#tb-main form input{min-width:0}

/* ===== v8.0 modern layer: imagery, depth, rhythm ===== */
:root{--tb-r:22px;--tb-sh:0 1px 2px rgba(15,23,42,.04),0 12px 32px -12px rgba(15,23,42,.14);--tb-sh-lg:0 2px 4px rgba(15,23,42,.05),0 30px 60px -24px rgba(15,23,42,.28)}
body{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
#tb-main h1{letter-spacing:-.035em}
#tb-main h2{letter-spacing:-.025em}
#tb-main section{scroll-margin-top:96px}
/* buttons: softer, with lift */
#tb-main a[class*="bg-brand-500"],#tb-main a[class*="bg-[#197376]"],#tb-main button[type="submit"]{box-shadow:0 8px 20px -8px rgba(13,148,136,.55);transition:transform .25s,box-shadow .25s}
#tb-main a[class*="bg-brand-500"]:hover,#tb-main a[class*="bg-[#197376]"]:hover,#tb-main button[type="submit"]:hover{transform:translateY(-2px);box-shadow:0 14px 26px -10px rgba(13,148,136,.6)}
/* cards: rounder, softer, lift on hover */
#tb-main [class*="rounded-xl"][class*="border"],#tb-main [class*="rounded-2xl"][class*="border"],#tb-main [class*="rounded-lg"][class*="border"]{border-radius:18px;transition:transform .3s,box-shadow .3s,border-color .3s}
#tb-main a[class*="rounded"][class*="border"]:hover,#tb-main div[class*="hover:"][class*="rounded"][class*="border"]:hover{transform:translateY(-4px);box-shadow:var(--tb-sh)}
.tb-ig-wrap,.tb-ig-head{position:relative}
/* section heads */
.tb-vis-head{max-width:720px;margin:0 auto 44px;text-align:center}
.tb-vis-eyebrow{font:600 11px/1 "JetBrains Mono",ui-monospace,monospace;letter-spacing:.16em;text-transform:uppercase;color:#0f766e;margin:0 0 14px;display:flex;align-items:center;gap:10px}
.tb-vis-head .tb-vis-eyebrow{justify-content:center}
.tb-vis-eyebrow:before{content:"";width:26px;height:2px;background:linear-gradient(90deg,#0d9488,#2563eb);border-radius:2px}
.tb-vis h2{font-size:clamp(28px,3.6vw,44px);line-height:1.1;font-weight:800;color:#0b1220;margin:0 0 14px;overflow-wrap:break-word}
.tb-vis-head>p:last-child{font-size:17px;line-height:1.6;color:#475569;margin:0}
.tb-vis{padding:56px 0}
/* banner under hero */
.tb-vis:has(.tb-vis-fig){padding:8px 0 40px}
.tb-vis-fig{position:relative;margin:0;border-radius:28px;overflow:hidden;box-shadow:var(--tb-sh-lg);aspect-ratio:21/8;background:#e9eef2}
.tb-vis-fig img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.tb-vis-fig:hover img{transform:scale(1.04)}
.tb-vis-caps{position:absolute;left:20px;right:20px;bottom:18px;display:flex;flex-wrap:wrap;gap:10px}
.tb-vis-chip{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;background:rgba(255,255,255,.88);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);font:600 12px/1.2 Inter,sans-serif;color:#0f172a;box-shadow:0 6px 18px -8px rgba(15,23,42,.35);max-width:100%}
.tb-vis-chip i{width:7px;height:7px;border-radius:50%;background:#0d9488;flex-shrink:0;box-shadow:0 0 0 4px rgba(13,148,136,.18)}
/* gallery cards */
.tb-vis-grid{display:grid;gap:24px}
.tb-vis-grid.tb-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.tb-vis-grid.tb-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.tb-vis-card{display:flex;flex-direction:column;border-radius:var(--tb-r);overflow:hidden;background:#fff;border:1px solid #e6eaef;box-shadow:var(--tb-sh);transition:transform .35s,box-shadow .35s;min-width:0;text-decoration:none}
.tb-vis-card:hover{transform:translateY(-6px);box-shadow:var(--tb-sh-lg)}
.tb-vis-card-img{position:relative;display:block;aspect-ratio:16/10;overflow:hidden;background:#e9eef2}
.tb-vis-card-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .9s cubic-bezier(.2,.7,.2,1)}
.tb-vis-card:hover .tb-vis-card-img img{transform:scale(1.07)}
.tb-vis-card-img em{position:absolute;left:14px;top:14px;font:600 10px/1 "JetBrains Mono",monospace;letter-spacing:.12em;text-transform:uppercase;font-style:normal;background:rgba(255,255,255,.9);color:#0f766e;padding:7px 10px;border-radius:999px;max-width:calc(100% - 28px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tb-vis-card-body{display:flex;flex-direction:column;gap:8px;padding:20px 22px 22px;min-width:0;flex:1}
.tb-vis-card-body strong{font-size:19px;line-height:1.25;font-weight:700;color:#0b1220;overflow-wrap:break-word}
.tb-vis-card-body span{font-size:14px;line-height:1.55;color:#556274;overflow-wrap:break-word}
.tb-vis-card-body b{margin-top:auto;padding-top:8px;display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:#0f766e}
/* split sections */
.tb-vis-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(32px,6vw,80px);align-items:center}
.tb-vis-split.tb-rev .tb-vis-media{order:-1}
.tb-vis-copy p:not(.tb-vis-eyebrow){font-size:17px;line-height:1.65;color:#475569;margin:0 0 20px}
.tb-vis-copy ul{list-style:none;margin:0 0 26px;padding:0;display:grid;gap:12px}
.tb-vis-copy li{display:flex;gap:12px;align-items:flex-start;font-size:15px;line-height:1.5;color:#1e293b;font-weight:500}
.tb-vis-copy li span{flex-shrink:0;width:22px;height:22px;border-radius:50%;background:#ccfbf1;color:#0f766e;display:grid;place-items:center;margin-top:1px}
.tb-vis-link{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:14px;color:#fff;background:#0f766e;padding:13px 22px;border-radius:999px;box-shadow:0 10px 22px -10px rgba(15,118,110,.7);transition:transform .25s}
.tb-vis-link:hover{transform:translateY(-2px)}
.tb-vis-media{position:relative;border-radius:28px;box-shadow:var(--tb-sh-lg);aspect-ratio:4/3;background:#e9eef2}
.tb-vis-media img{width:100%;height:100%;object-fit:cover;display:block;border-radius:28px}
.tb-vis-float{position:absolute;left:-18px;bottom:28px;background:#fff;border-radius:16px;padding:14px 18px;box-shadow:var(--tb-sh-lg);display:flex;flex-direction:column;gap:2px;font-size:12px;color:#556274;animation:tbfloat 6s ease-in-out infinite;max-width:70%}
.tb-vis-float b{font-size:1.625rem;color:#0f766e;line-height:1.1}
.tb-rev .tb-vis-float{left:auto;right:-18px}
@keyframes tbfloat{50%{transform:translateY(-10px)}}
/* home hero: two columns */
.tb-home-hero{padding-top:128px!important}
.tb-hero-split{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(28px,5vw,72px);align-items:center}
.tb-hero-text{max-width:none;min-width:0}
.tb-hero-text h1{font-size:clamp(34px,4.6vw,62px)!important}
.tb-hero-media{position:relative;min-width:0}
.tb-hero-frame{border-radius:32px;overflow:hidden;aspect-ratio:5/6;box-shadow:var(--tb-sh-lg);background:#e9eef2;transform:rotate(1.5deg)}
.tb-hero-frame img{width:100%;height:100%;object-fit:cover;display:block}
.tb-hero-chip{position:absolute;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);border-radius:16px;padding:12px 16px;box-shadow:var(--tb-sh-lg);display:flex;flex-direction:column;font-size:12px;color:#556274;line-height:1.3;animation:tbfloat 7s ease-in-out infinite;max-width:60%}
.tb-hero-chip b{font-size:22px;color:#0f766e;line-height:1.1}
.tb-hero-chip.tb-c1{left:-24px;top:14%}.tb-hero-chip.tb-c2{right:-14px;top:46%;animation-delay:-2s}.tb-hero-chip.tb-c3{left:6%;bottom:-18px;animation-delay:-4s}
@media (max-width:1023px){
 .tb-hero-split,.tb-vis-row{grid-template-columns:minmax(0,1fr)}
 .tb-vis-split.tb-rev .tb-vis-media{order:0}
 .tb-hero-frame{aspect-ratio:16/10;transform:none}
 .tb-hero-chip.tb-c1{left:10px}.tb-hero-chip.tb-c2{right:10px}
 .tb-vis-grid.tb-cols-3{grid-template-columns:repeat(2,minmax(0,1fr))}
 .tb-vis-fig{aspect-ratio:16/8}.tb-vis-float{left:12px}.tb-rev .tb-vis-float{right:12px;left:auto}
}
@media (max-width:640px){
 .tb-vis-grid.tb-cols-3,.tb-vis-grid.tb-cols-2{grid-template-columns:minmax(0,1fr)}
 .tb-vis-fig{aspect-ratio:4/3;border-radius:20px}.tb-vis-caps{left:12px;right:12px;bottom:12px;gap:6px}.tb-vis-chip{padding:6px 10px;font-size:11px}
 .tb-vis{padding:40px 0}.tb-home-hero{padding-top:104px!important}
}
@media (prefers-reduced-motion:reduce){.tb-vis-float,.tb-hero-chip{animation:none}}
body.single-post .tb-vis-float,body.single-post .tb-hero-chip{animation:none!important}
#tb-main h1,#tb-main h2{hyphens:manual;-webkit-hyphens:manual}

/* v8.1 hero pictures (every page), slider (home), one-line headings */
.tb-has-pic{position:relative}
.tb-hero-pic{display:none;margin:0}
.tb-hero-pic img{width:100%;height:100%;object-fit:cover;display:block}
@media (min-width:1024px){
 .tb-has-pic{--pw:clamp(300px,31vw,460px);min-height:540px}
 .tb-has-pic .tb-hero-pic{display:block;position:absolute;z-index:5;right:max(32px,calc((100vw - 80rem)/2 + 32px));top:50%;transform:translateY(-46%);width:var(--pw);aspect-ratio:4/3;border-radius:26px;overflow:hidden;box-shadow:var(--tb-sh-lg);background:#e9eef2;margin-top:48px}




}
@media (max-width:1023px){
 .tb-has-pic .tb-hero-pic{display:block;position:relative;margin:28px 16px 0;aspect-ratio:16/10;border-radius:22px;overflow:hidden;box-shadow:var(--tb-sh)}
}
.tb-hero-pic .tb-vis-caps{left:12px;right:12px;bottom:12px;gap:6px}
.tb-hero-pic .tb-vis-chip{padding:6px 11px;font-size:11px}
.tb-hero-frame{position:relative}
.tb-hero-frame .tb-slide{position:absolute;inset:0;opacity:0;transition:opacity .9s ease;width:100%;height:100%;object-fit:cover}
.tb-hero-frame .tb-slide.is-on{opacity:1}
.tb-dots{position:absolute;left:0;right:0;bottom:14px;display:flex;justify-content:center;gap:8px;z-index:3}
.tb-dot{width:8px;height:8px;border-radius:99px;border:0;background:rgba(255,255,255,.6);cursor:pointer;padding:0;transition:width .3s,background .3s}
.tb-dot.is-on{width:26px;background:#fff}
.tb-prev,.tb-next{position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:38px;height:38px;border-radius:50%;border:0;background:rgba(255,255,255,.88);color:#0f172a;font-size:22px;line-height:1;cursor:pointer;box-shadow:0 6px 16px -6px rgba(15,23,42,.4)}
.tb-prev{left:12px}.tb-next{right:12px}
.tb-hero-frame{transform:none!important}
.tb-hero-chip{z-index:6}
/* single-line box headings */
#tb-main h3,#tb-main h4,.tb-ig-statv,.tb-ig-tile h3{overflow-wrap:normal}
.tb-ig-statv,.tb-ig-tile h3{white-space:nowrap}
.tb-ig-hub{overflow:visible}
.tb-has-pic [class*="overflow-x-auto"]{overflow:visible!important;flex-wrap:wrap}
.tb-has-pic [class*="overflow-x-auto"] a,.tb-has-pic [class*="overflow-x-auto"] span{flex-shrink:0;white-space:nowrap}

/* ===== v8.2 full-bleed hero images (animations off), unified type scale ===== */
#tb-main section.tb-has-pic,#tb-main section.tb-home-hero{position:relative;overflow:hidden;isolation:isolate;background:#0b1626!important;border-color:transparent!important;display:flex;flex-direction:column;justify-content:center;padding-top:150px!important;padding-bottom:84px!important;min-height:100vh;min-height:100svh}
#tb-main section.tb-home-hero{min-height:100vh;min-height:100svh;padding-top:160px!important}
#tb-main section.tb-has-pic>div[class*="max-w-"],#tb-main section.tb-home-hero>div[class*="max-w-"]{width:100%}
#tb-main .tb-has-pic .tb-hero-pic{display:block!important;position:absolute!important;top:0!important;left:0!important;right:0!important;bottom:0!important;width:100%!important;height:100%!important;aspect-ratio:auto!important;transform:none!important;margin:0!important;border-radius:0!important;box-shadow:none!important;z-index:0!important;overflow:hidden}
.tb-hero-pic img{width:100%;height:100%;object-fit:cover;display:block}
.tb-hero-shade{position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(7,18,34,.86) 0%,rgba(7,18,34,.62) 52%,rgba(7,18,34,.26) 100%),linear-gradient(0deg,rgba(7,18,34,.5),transparent 42%)}
.tb-has-pic>*:not(.tb-hero-pic):not([data-purpose="tb-hero-decor"]),.tb-home-hero>*:not(.tb-hero-bg):not([data-purpose="tb-hero-decor"]){position:relative;z-index:3}
.tb-has-pic [data-purpose="tb-hero-decor"],.tb-home-hero [data-purpose="tb-hero-decor"],.tb-has-pic canvas,.tb-home-hero canvas{display:none!important}
.tb-hero-split{display:block}.tb-hero-text{max-width:46rem}
.tb-hero-bg{position:absolute;inset:0;z-index:0;overflow:hidden}
.tb-hero-bg .tb-slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.1s ease;transform:scale(1.06)}
.tb-hero-bg .tb-slide.is-on{opacity:1;animation:tbkb 9s ease-out both}
@keyframes tbkb{from{transform:scale(1.07)}to{transform:scale(1)}}
.tb-hero-bg .tb-dots{bottom:34px;z-index:4}.tb-hero-bg .tb-prev,.tb-hero-bg .tb-next{z-index:4;background:rgba(255,255,255,.18);color:#fff;backdrop-filter:blur(6px)}
.tb-hero-bg .tb-prev{left:24px}.tb-hero-bg .tb-next{right:24px}
/* hero text on the image */
.tb-has-pic h1,.tb-has-pic h1 *,.tb-home-hero h1{color:#fff!important}
.tb-home-hero h1 span{color:#5eead4!important}
.tb-has-pic p,.tb-home-hero p{color:rgba(255,255,255,.88)!important}
.tb-has-pic [class*="uppercase"][class*="font-mono"],.tb-home-hero [class*="uppercase"][class*="font-mono"]{color:#5eead4!important}
.tb-has-pic [class*="bg-blue-50"],.tb-home-hero [class*="bg-blue-50"]{background:rgba(255,255,255,.1)!important;border-color:rgba(255,255,255,.28)!important}
.tb-has-pic nav a,.tb-has-pic nav span,.tb-has-pic [aria-label*="readcrumb"] *,.tb-has-pic [data-purpose="breadcrumbs"] *{color:rgba(255,255,255,.82)!important}
.tb-has-pic a:not([class*="bg-"]):not([class*="border"]),.tb-home-hero a:not([class*="bg-"]):not([class*="border"]){color:#fff!important}
.tb-has-pic span[class*="text-slate"]:not([class*="bg-"]),.tb-has-pic span[class*="text-gray"]:not([class*="bg-"]){color:rgba(255,255,255,.8)!important}
.tb-has-pic [class*="rounded-full"][class*="bg-"] *,.tb-has-pic a[class*="border"] *{color:inherit!important}
.tb-has-pic a[class*="bg-white"],.tb-has-pic a[class*="bg-slate-50"],.tb-has-pic a[class*="border"]:not([class*="bg-brand"]){color:#0f172a!important}
/* one type scale everywhere */
body:not(.single-post) #tb-main h1{font-size:clamp(2.25rem,4.3vw,3.75rem)!important;line-height:1.08!important;letter-spacing:-.035em}
body:not(.single-post) #tb-main h2{font-size:clamp(1.75rem,2.8vw,2.4rem)!important;line-height:1.15!important;letter-spacing:-.025em}
body:not(.single-post) #tb-main h2+p,body:not(.single-post) #tb-main .tb-ig-head>p,body:not(.single-post) #tb-main .tb-vis-head>p:last-child{font-size:1rem!important;line-height:1.65!important}
body:not(.single-post) #tb-main h3{font-size:1.0625rem!important;line-height:1.3!important}
body:not(.single-post) #tb-main h3+p{font-size:.875rem!important;line-height:1.6!important}
body:not(.single-post) #tb-main h4{font-size:.9375rem!important;line-height:1.3!important}
.tb-statv{font-size:1.625rem!important;line-height:1.1!important;font-weight:800!important}
.tb-cardh{font-size:1.0625rem!important}
.tb-vis-card-body strong{font-size:1.0625rem!important}
@media (max-width:1023px){#tb-main section.tb-has-pic,#tb-main section.tb-home-hero{padding-top:128px!important;padding-bottom:56px!important}.tb-hero-shade{background:linear-gradient(0deg,rgba(7,18,34,.82),rgba(7,18,34,.55))}}

#tb-main section.tb-has-pic>div[class*="max-w-"],#tb-main section.tb-home-hero>div[class*="max-w-"]{max-width:80rem;margin-left:auto;margin-right:auto;padding-left:clamp(16px,3vw,32px);padding-right:clamp(16px,3vw,32px)}
.tb-has-pic p,.tb-home-hero p{max-width:44rem}
.tb-has-pic [class*="uppercase"][class*="font-mono"],.tb-home-hero [class*="uppercase"][class*="font-mono"]{color:#99f6e4!important}
.tb-has-pic .text-center{text-align:left}
.tb-has-pic span[class*="uppercase"]:not([class*="bg-"]):not(.tb-vis-chip){color:#99f6e4!important}
.tb-has-pic a[class*="border"]:not([class*="bg-"]),.tb-has-pic a[class*="border"]:not([class*="bg-"]) *{color:#fff!important;border-color:rgba(255,255,255,.55)!important}
.tb-has-pic a[class*="bg-white"],.tb-has-pic a[class*="bg-white"] *{color:#0f172a!important}
html body:not(.tb-plain) #tb-main>section.tb-has-pic:first-of-type,html body #tb-main>section.tb-home-hero:first-of-type{border-top:0!important}
#tb-main .tb-has-pic a[class*="border-gray"],#tb-main .tb-has-pic a[class*="border-slate"],#tb-main .tb-has-pic a[class*="border-white"],#tb-main .tb-has-pic a[class*="border-gray"] *,#tb-main .tb-has-pic a[class*="border-slate"] *{color:#fff!important;border-color:rgba(255,255,255,.55)!important}
#tb-main .tb-has-pic a[class~="bg-white"],#tb-main .tb-has-pic a[class~="bg-white"] *,#tb-main .tb-has-pic a[class~="bg-slate-50"],#tb-main .tb-has-pic a[class~="bg-slate-50"] *{color:#0f172a!important}
html body.tb-plain #tb-main>section.tb-has-pic:first-of-type{margin-top:calc(-1 * var(--tb-hdr))!important}
#tb-main .tb-has-pic a[class*="border-gray"]:hover,#tb-main .tb-has-pic a[class*="border-slate"]:hover{background:rgba(255,255,255,.16)!important}

/* v8.4 hero: content starts near the top so the H1 is always visible on load */
#tb-main section.tb-has-pic,#tb-main section.tb-home-hero{justify-content:flex-start!important;padding-top:clamp(128px,19vh,190px)!important;padding-bottom:72px!important}
#tb-main section.tb-hero-mid{justify-content:center!important}
#tb-main section.tb-has-pic h1,#tb-main section.tb-home-hero h1{margin-top:0}

/* v8.5 one alignment grid for every section on every page */
:root{--tb-gut:16px}
@media (min-width:640px){:root{--tb-gut:24px}}
@media (min-width:1024px){:root{--tb-gut:32px}}
#tb-main>section:not([class*="max-w-"])>div:not([class*="absolute"]):not(.tb-hero-bg):not([data-purpose="tb-hero-decor"]):not([class*="rounded"]):not([class*="shadow"]):not([class~="border"]),#tb-main>section>.tb-ig-wrap,footer[data-purpose="site-footer"]>div[class*="max-w-"]{max-width:80rem!important;margin-left:auto!important;margin-right:auto!important;padding-left:var(--tb-gut)!important;padding-right:var(--tb-gut)!important;box-sizing:border-box;width:100%}
#tb-main>section:not([class*="max-w-"])>div:not([class*="absolute"]):is([class*="rounded"],[class*="shadow"],[class~="border"]){max-width:calc(80rem - 2 * var(--tb-gut))!important;width:calc(100% - 2 * var(--tb-gut));margin-left:auto!important;margin-right:auto!important;box-sizing:border-box}
#tb-main>section>div[class*="max-w-3xl"]:not(.text-center)>*,#tb-main>section>div[class*="max-w-3xl"]:not(.text-center) .article-body{max-width:48rem;margin-right:auto}
#tb-main>section>div[class*="max-w-3xl"].text-center>*{margin-left:auto;margin-right:auto}
#tb-main>section[class*="max-w-"]{max-width:80rem!important;margin-left:auto!important;margin-right:auto!important;padding-left:var(--tb-gut)!important;padding-right:var(--tb-gut)!important;box-sizing:border-box;width:100%}
/* decorative blobs/grids inside heroes must stay out of the layout (they were pushing the text down) */
#tb-main section.tb-has-pic>div[class*="absolute"],#tb-main section.tb-has-pic>.tb-spot,#tb-main section.tb-home-hero>div[class*="absolute"]:not(.tb-hero-bg){display:none!important}

/* v8.7 footer: link columns span the full grid so the right edge lines up with the page grid; phone/email never wrap */
@media (min-width:1024px){
 footer[data-purpose="site-footer"] .tb-footer-links{grid-template-columns:repeat(4,max-content);justify-content:space-between;gap:2rem}
}
footer[data-purpose="site-footer"] .tb-reach a{white-space:nowrap;align-items:center}
footer[data-purpose="site-footer"] .tb-reach svg{flex:none}
@media (max-width:1023px){footer[data-purpose="site-footer"] .tb-reach a{white-space:normal;word-break:break-word}}

/* v8.8 FAQ sections (AEO) + skip link */
.tb-faq-grid{display:grid;gap:.75rem;grid-template-columns:1fr}
@media (min-width:1024px){.tb-faq-grid{grid-template-columns:1fr 1fr;align-items:start}}
.tb-faq-item{background:var(--tb-gray,#f6f8f9);border:1px solid #e4ebee;border-radius:14px;padding:0;transition:border-color .2s,box-shadow .2s}
.tb-faq-item:hover,.tb-faq-item[open]{border-color:#b8dedf;box-shadow:0 8px 24px -16px rgba(25,115,118,.45)}
.tb-faq-item summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.25rem;font-weight:700;font-size:15px;line-height:1.4;color:#0b1b2b}
.tb-faq-item summary::-webkit-details-marker{display:none}
.tb-faq-item summary::after{content:"";flex:none;width:9px;height:9px;border-right:2px solid #197376;border-bottom:2px solid #197376;transform:rotate(45deg);transition:transform .2s;margin-top:-3px}
.tb-faq-item[open] summary::after{transform:rotate(-135deg);margin-top:3px}
.tb-faq-item summary:focus-visible{outline:2px solid #197376;outline-offset:2px;border-radius:14px}
.tb-faq-a{padding:0 1.25rem 1.1rem;color:#475569;font-size:14px;line-height:1.7}
.tb-faq-a p{margin:0;color:inherit;font-size:inherit}
.tb-skip{position:absolute;left:-9999px;top:8px;z-index:100;background:#197376;color:#fff;padding:.6rem 1rem;border-radius:8px;font-weight:700;font-size:13px}
.tb-skip:focus{left:8px}

/* v8.9 mobile / tablet polish */
@media (max-width:1023px){
  [class*="text-[10px]"],[class*="text-[9px]"],#tb-main em{font-size:11px !important}
  #tb-main .tb-ig-eyebrow,#tb-main [class*="tracking-widest"]{font-size:max(11px,1em)}
}
@media (max-width:1023px){
  /* bigger touch targets without changing the layout: extend the clickable area of small text links */
  #tb-main nav a,#tb-main a[class*="uppercase"]:not([class*="py-"]):not([class*="rounded-full"]){position:relative}
  #tb-main nav a::after,#tb-main a[class*="uppercase"]:not([class*="py-"]):not([class*="rounded-full"])::after{content:"";position:absolute;left:-6px;right:-6px;top:-10px;bottom:-10px}
  #tb-main [class*="rounded-full"][class*="py-1"],#tb-main [class*="rounded-full"][class*="py-1.5"]{min-height:36px;display:inline-flex;align-items:center}
  .tb-faq-item summary{min-height:48px}
  footer[data-purpose="site-footer"] a{display:inline-block;padding-block:4px}
  footer[data-purpose="site-footer"] .tb-region-chip{display:inline-flex}
}
@media (max-width:480px){
  #tb-main a[class*="rounded-full"][class*="px-"]{max-width:100%}
  #tb-main .flex-wrap>a{flex:0 1 auto}
}
html,body{max-width:100%;overflow-x:clip}
.tb-br-kicker{font-size:11px !important}
@media (max-width:767px){.tb-home-hero .tb-prev,.tb-home-hero .tb-next{display:none !important}}   /* swipe + dots on phones; arrows covered the text */
@media (max-width:767px){
  #tb-main section.tb-has-pic:not(.tb-home-hero){min-height:80svh !important}
}
#tb-main section.tb-has-pic [class*="text-[#197376]"],#tb-main section.tb-has-pic [class*="text-brand-teal"],#tb-main section.tb-home-hero [class*="text-[#197376]"]{color:#9ee6e8 !important}
#tb-main section.tb-has-pic [class*="bg-[#197376]"]:not(a):not(button){background-color:#9ee6e8 !important}
