/*
Theme Name: The Digital Briefing Pro
Theme URI: http://thedigitalbriefing/
Author: The Digital Briefing
Description: Custom coded WordPress news/blog theme for The Digital Briefing. Built for staging and Hostinger.
Version: 2.0.0-dev
License: GPL-2.0-or-later
Text Domain: tech-briefing
*/

:root {
  --background: 0 0% 98%;
  --foreground: 224 71% 4%;
  --muted: 210 40% 96%;
  --muted-foreground: 215 16% 47%;
  --card: 0 0% 100%;
  --card-foreground: 224 71% 4%;
  --border: 220 13% 91%;
  --primary: 220 69% 46%;
  --primary-dark: 220 69% 38%;
  --primary-foreground: 0 0% 100%;
  --secondary: 0 0% 15%;
  --secondary-foreground: 0 0% 100%;
  --radius: 0.75rem;
  --shadow: 0 10px 30px rgba(15, 23, 42, 0.08);
  --shadow-lg: 0 20px 50px rgba(15, 23, 42, 0.12);
  --container: 1180px;
  --tb-hero-min-height: 520px;
  --tb-hero-image-opacity: 0.58;
  --tb-hero-image-blur: 1.2px;
  --tb-hero-image-scale: 1.015;
  --tb-hero-overlay-top: 0.78;
  --tb-hero-overlay-middle: 0.66;
  --tb-hero-overlay-bottom: 0.93;
  --tb-hero-overlay-wash: 0.28;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background: hsl(var(--background));
  color: hsl(var(--foreground));
  min-height: 100vh;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; height: auto; }
button, input { font: inherit; }

.tb-container {
  width: min(var(--container), calc(100% - 32px));
  margin-inline: auto;
}
.tb-main { min-height: 60vh; }

/* Header */
.tb-site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: hsl(var(--background) / 0.95);
  border-bottom: 1px solid hsl(var(--border));
  backdrop-filter: blur(12px);
}
.tb-nav-row {
  min-height: 56px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}
.tb-logo {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: hsl(var(--foreground));
}
.tb-logo-mark {
  width: 24px;
  height: 24px;
  display: inline-grid;
  place-items: center;
  border-radius: 10px;
  background: hsl(var(--primary) / 0.12);
  color: hsl(var(--primary));
}
.tb-logo:hover .tb-logo-mark { background: hsl(var(--primary) / 0.2); }
.tb-logo-text { font-size: 15px; line-height: 1; }
.tb-primary-nav {
  display: flex;
  align-items: center;
  gap: 30px;
  flex: 1 1 auto;
  justify-content: center;
}
.tb-logo { flex: 0 0 auto; }
.tb-locale-switcher { flex: 0 0 auto; }
.tb-primary-nav a {
  font-size: 13px;
  font-weight: 650;
  color: hsl(var(--muted-foreground));
  transition: color .2s ease;
}
.tb-primary-nav a:hover,
.tb-primary-nav a.is-active { color: hsl(var(--primary)); }
.tb-menu-toggle { display: none; border: 0; background: transparent; padding: 8px; color: hsl(var(--foreground)); }
.tb-menu-toggle span { display:block; width:22px; height:2px; background: currentColor; margin:5px 0; border-radius:2px; }

/* Buttons */
.tb-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 42px;
  padding: 0 24px;
  border-radius: 999px;
  border: 1px solid transparent;
  font-size: 13px;
  font-weight: 800;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
  cursor: pointer;
}
.tb-btn:hover { transform: translateY(-1px); }
.tb-btn-primary {
  color: hsl(var(--primary-foreground));
  background: hsl(var(--primary));
  box-shadow: 0 12px 26px hsl(var(--primary) / .24);
}
.tb-btn-primary:hover { background: hsl(var(--primary-dark)); }
.tb-btn-secondary {
  color: hsl(var(--secondary-foreground));
  background: hsl(var(--secondary));
}
.tb-btn-outline {
  color: hsl(var(--foreground));
  background: hsl(var(--card));
  border-color: hsl(var(--border));
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.04);
}

/* Home hero */
.tb-hero {
  position: relative;
  min-height: max(var(--tb-hero-min-height), calc(100vh - 58px));
  display: grid;
  place-items: center;
  overflow: hidden;
  border-bottom: 1px solid hsl(var(--border) / .45);
}
.tb-hero-bg { position: absolute; inset: 0; z-index: 0; background: hsl(var(--background)); }
.tb-hero-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  filter: saturate(.82) blur(var(--tb-hero-image-blur));
  transform: scale(var(--tb-hero-image-scale));
  opacity: var(--tb-hero-image-opacity);
}
.tb-hero-bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(to bottom, hsl(var(--background) / var(--tb-hero-overlay-top)) 0%, hsl(var(--background) / var(--tb-hero-overlay-middle)) 48%, hsl(var(--background) / var(--tb-hero-overlay-bottom)) 100%),
    hsl(var(--background) / var(--tb-hero-overlay-wash));
}
.tb-hero-content {
  position: relative;
  z-index: 1;
  width: min(900px, calc(100% - 32px));
  margin-inline: auto;
  text-align: center;
  padding: 84px 0 72px;
}
.tb-hero h1 {
  max-width: 840px;
  margin: 0 auto 24px;
  font-size: clamp(38px, 5.1vw, 66px);
  line-height: 1.05;
  letter-spacing: -0.025em;
  font-weight: 800;
}
.tb-hero p {
  max-width: 700px;
  margin: 0 auto 28px;
  font-size: clamp(17px, 1.55vw, 20px);
  line-height: 1.5;
  color: hsl(var(--muted-foreground));
  font-weight: 500;
}
.tb-hero-actions { display: flex; align-items: center; justify-content: center; gap: 14px; flex-wrap: wrap; }

/* Sections */
.tb-section { padding: 92px 0; }
.tb-section-muted { background: hsl(var(--muted) / .65); border-block: 1px solid hsl(var(--border) / .55); }
.tb-section-title-row { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 48px; }
.tb-section-kicker {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .08em;
  font-weight: 900;
  color: hsl(var(--primary));
  margin-bottom: 20px;
}
.tb-section-kicker .tb-icon-chip { width: 34px; height: 34px; }
.tb-section h2, .tb-section-title {
  margin: 0 0 14px;
  font-size: clamp(30px, 3.2vw, 38px);
  line-height: 1.15;
  letter-spacing: -0.022em;
  font-weight: 750;
}
.tb-lead {
  color: hsl(var(--muted-foreground));
  line-height: 1.75;
  font-size: 16px;
  max-width: 700px;
}

.tb-analysis-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(420px, .82fr);
  gap: 64px;
  align-items: center;
}
.tb-stack { display: grid; gap: 16px; margin-top: 28px; }
.tb-mini-card {
  display: grid;
  grid-template-columns: 44px 1fr;
  gap: 16px;
  align-items: start;
  background: hsl(var(--card));
  border: 1px solid hsl(var(--border) / .78);
  border-radius: 16px;
  padding: 16px;
  box-shadow: 0 6px 18px rgba(15, 23, 42, .04);
}
.tb-icon-chip {
  width: 42px;
  height: 42px;
  display: inline-grid;
  place-items: center;
  border-radius: 12px;
  background: hsl(var(--primary) / .12);
  color: hsl(var(--primary));
  flex: 0 0 auto;
}

.tb-mini-card .tb-icon-chip {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  margin-top: 2px;
  background: hsl(var(--primary) / .10);
  color: hsl(var(--primary));
}
.tb-mini-card .tb-icon-chip svg { width: 22px; height: 22px; }

.tb-mini-card strong { display:block; font-size: 15px; margin-bottom: 4px; }
.tb-mini-card span { display:block; font-size: 13px; color: hsl(var(--muted-foreground)); line-height: 1.45; }
.tb-subscribe-card {
  background: hsl(var(--card));
  border: 1px solid hsl(var(--border));
  border-radius: 18px;
  box-shadow: var(--shadow-lg);
  padding: 30px;
}
.tb-subscribe-card h3 { margin: 0 0 12px; font-size: 24px; letter-spacing: -.03em; }
.tb-subscribe-card p { margin: 0 0 22px; color: hsl(var(--muted-foreground)); line-height: 1.65; }
.tb-subscribe-form { display: grid; gap: 12px; }
.tb-subscribe-form input,
.tb-search-input {
  width: 100%;
  min-height: 44px;
  border: 1px solid hsl(var(--border));
  border-radius: 8px;
  background: hsl(var(--card));
  padding: 0 14px;
  outline: none;
  color: hsl(var(--foreground));
}
.tb-subscribe-form input:focus,
.tb-search-input:focus { border-color: hsl(var(--primary)); box-shadow: 0 0 0 3px hsl(var(--primary) / .15); }
.tb-subscribe-form button { border: 0; border-radius: 8px; min-height: 44px; background: hsl(var(--primary)); color: white; font-weight: 800; }

/* Cards */
.tb-post-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 30px;
}
.tb-post-card {
  overflow: hidden;
  border: 1px solid hsl(var(--border));
  border-radius: 14px;
  background: hsl(var(--card));
  box-shadow: 0 6px 18px rgba(15, 23, 42, .04);
  display: flex;
  flex-direction: column;
  min-height: 100%;
  transition: transform .25s ease, box-shadow .25s ease;
}
.tb-post-card:hover { transform: translateY(-3px); box-shadow: var(--shadow); }
.tb-card-image { aspect-ratio: 16 / 9; position: relative; overflow: hidden; background: hsl(var(--muted)); }
.tb-card-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s ease; }
.tb-post-card:hover .tb-card-image img { transform: scale(1.05); }
.tb-badge {
  display: inline-flex;
  align-items: center;
  border-radius: 7px;
  padding: 6px 10px;
  font-size: 11px;
  font-weight: 900;
  line-height: 1;
  background: hsl(var(--primary));
  color: hsl(var(--primary-foreground));
}
.tb-card-image .tb-badge { position: absolute; top: 14px; left: 14px; }
.tb-card-body { padding: 22px 22px 10px; flex: 1; display: flex; flex-direction: column; }
.tb-card-title { margin: 0 0 6px; font-size: 19px; line-height: 1.25; letter-spacing: 0; }
.tb-card-title a:hover { color: hsl(var(--primary)); }
.tb-card-excerpt { margin: 0; color: hsl(var(--muted-foreground)); line-height: 1.65; font-size: 14px; }
.tb-card-meta {
  padding: 16px 22px;
  border-top: 1px solid hsl(var(--border));
  display: flex;
  justify-content: space-between;
  gap: 16px;
  color: hsl(var(--muted-foreground));
  font-size: 13px;
}
.tb-meta-item { display:flex; align-items:center; gap:8px; min-width: 0; }
.tb-meta-item svg { flex: 0 0 auto; }

/* Blog page */
.tb-page-hero {
  background: hsl(var(--muted) / .65);
  padding: 80px 0;
  border-bottom: 1px solid hsl(var(--border) / .65);
}
.tb-page-hero h1 {
  max-width: 900px;
  margin: 0 0 18px;
  font-size: clamp(36px, 4.2vw, 56px);
  line-height: 1.08;
  letter-spacing: -0.025em;
  font-weight: 800;
}
.tb-page-hero p { margin: 0; max-width: 720px; color: hsl(var(--muted-foreground)); font-size: 18px; line-height: 1.65; }
.tb-toolbar {
  display: flex;
  gap: 24px;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 48px;
  flex-wrap: nowrap;
}
/* Single-result layout is handled by the solver (1 column, card flexes to a
 * max of 400 and centers within a comfortable toolbar) — no special grid. */
.tb-search-form {
  width: min(380px, 100%);
  flex: 0 0 380px;
  position: relative;
}
.tb-search-form .tb-search-icon {
  position: absolute;
  left: 14px;
  top: 50%;
  transform: translateY(-50%);
  color: hsl(var(--muted-foreground));
  pointer-events: none;
}
.tb-search-form .tb-search-input { padding-left: 44px; }
.tb-filter-row {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
  flex: 1 1 auto;
  max-width: 720px;
}
.tb-filter-pill:hover { background: hsl(var(--muted)); transform: translateY(-1px); }
.tb-filter-pill.is-active { background: hsl(var(--primary)); border-color: hsl(var(--primary)); color: white; }
[data-tb-card].is-hidden { display: none !important; }
.tb-live-empty { display: none; margin-top: 24px; }
.tb-live-empty.is-visible { display: block; }

/* Single */
.tb-single-header { padding: 76px 0 62px; background: hsl(var(--muted) / .55); border-bottom: 1px solid hsl(var(--border)); }
.tb-single-head-inner { width: min(850px, calc(100% - 32px)); margin-inline: auto; }
.tb-breadcrumb { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 28px; color: hsl(var(--muted-foreground)); font-size: 13px; }
.tb-breadcrumb a:hover { color: hsl(var(--primary)); }
.tb-single-title { font-size: clamp(42px, 6vw, 70px); line-height: 1.05; letter-spacing: -0.025em; margin: 18px 0 30px; font-weight: 800; }
.tb-single-meta { display:flex; flex-wrap: wrap; align-items:center; gap: 24px; color: hsl(var(--muted-foreground)); font-size: 14px; font-weight: 700; }
.tb-article-wrap { width: min(850px, calc(100% - 32px)); margin: 0 auto; padding: 50px 0 110px; }
.tb-featured-image { margin-bottom: 58px; border-radius: 18px; overflow: hidden; box-shadow: var(--shadow-lg); border: 1px solid hsl(var(--border) / .55); background: hsl(var(--muted)); }
.tb-featured-image img { display: block; width: 100%; aspect-ratio: 2 / 1; object-fit: cover; }
.tb-prose { color: hsl(var(--muted-foreground)); font-size: 17px; line-height: 1.9; }
.tb-prose p { margin: 0 0 28px; }
.tb-prose h2, .tb-prose h3 { color: hsl(var(--foreground)); letter-spacing: -.035em; line-height: 1.2; }
.tb-author-box { margin-top: 54px; padding-top: 38px; border-top: 1px solid hsl(var(--border)); }
.tb-author-card { display:flex; gap:18px; padding:24px; border:1px solid hsl(var(--border)); border-radius: 16px; background: hsl(var(--muted)); box-shadow: 0 2px 10px rgba(15, 23, 42, .03); }
.tb-author-card img { width:64px; height:64px; border-radius: 14px; object-fit: cover; }
.tb-author-card h3 { margin: 0 0 6px; font-size: 18px; }
.tb-author-card p { margin:0; color: hsl(var(--muted-foreground)); line-height: 1.55; font-size: 14px; }

/* About */
.tb-about-grid { display:grid; grid-template-columns: 1fr 1fr; gap: 70px; align-items:center; }
.tb-about-image { border-radius: 28px; overflow:hidden; border: 1px solid hsl(var(--border) / .6); box-shadow: var(--shadow-lg); position: relative; }
.tb-about-image img { width: 100%; aspect-ratio: 4/5; object-fit: cover; filter: saturate(.85); }
.tb-about-image::after { content:""; position:absolute; inset:0; background: linear-gradient(to top, hsl(var(--background) / .45), transparent); }
.tb-about-coverage { background: hsl(var(--card)); border-block: 1px solid hsl(var(--border) / .5); }
.tb-coverage-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 52px 78px;
}
.tb-coverage-item {
  display: grid;
  grid-template-columns: 58px 1fr;
  gap: 24px;
  align-items: start;
}
.tb-coverage-item .tb-icon-chip {
  width: 58px;
  height: 58px;
  border-radius: 16px;
  background: hsl(var(--muted));
  border: 1px solid hsl(var(--border) / .65);
  color: hsl(var(--foreground));
  transition: background .2s ease, color .2s ease, border-color .2s ease, transform .2s ease;
}
.tb-coverage-item .tb-icon-chip svg { width: 30px; height: 30px; }
.tb-coverage-item:hover .tb-icon-chip {
  background: hsl(var(--primary) / .10);
  border-color: hsl(var(--primary) / .22);
  color: hsl(var(--primary));
  transform: translateY(-1px);
}
.tb-coverage-item h3 { margin: 0 0 12px; font-size: 20px; letter-spacing: -.025em; }
.tb-coverage-item p { margin:0; color: hsl(var(--muted-foreground)); line-height: 1.72; font-size: 16px; }
.tb-cta-center { text-align:center; max-width: 700px; margin-inline:auto; }

/* Footer */
.tb-footer { background: hsl(var(--muted)); color: hsl(var(--muted-foreground)); border-top: 1px solid hsl(var(--border)); }
.tb-footer-top { padding: 48px 0; display:grid; grid-template-columns: 1.5fr .8fr 1fr; gap: 80px; }
.tb-footer p { line-height: 1.6; font-size: 14px; margin: 18px 0 0; }
.tb-footer h4 { margin: 0 0 16px; color: hsl(var(--foreground)); font-size: 13px; }
.tb-footer ul { padding:0; margin:0; list-style:none; display:grid; gap: 12px; }
.tb-footer a { font-size: 14px; }
.tb-footer a:hover { color: hsl(var(--primary)); }
.tb-socials { display:flex; gap: 14px; align-items:center; }
.tb-footer-bottom { border-top: 1px solid hsl(var(--border)); padding: 26px 0; display:flex; justify-content:space-between; align-items:center; gap:20px; font-size: 13px; }
.tb-footer-legal { display:flex; gap: 28px; }

/* Utility */
.tb-empty { padding: 38px; border: 1px dashed hsl(var(--border)); border-radius: 16px; background: hsl(var(--card)); color: hsl(var(--muted-foreground)); }
.screen-reader-text { position:absolute; left:-9999px; }

@media (max-width: 900px) {
  .tb-primary-nav { display:none; position:absolute; top:64px; left:0; right:0; background: hsl(var(--background)); border-bottom:1px solid hsl(var(--border)); padding:20px 16px; flex-direction:column; align-items:flex-start; gap:18px; }
  .tb-toolbar { flex-direction: column; align-items: stretch; flex-wrap: nowrap; }
  .tb-search-form { width: 100%; flex-basis: auto; }
  .tb-filter-row { justify-content: flex-start; }
  .tb-primary-nav.is-open { display:flex; }
  .tb-menu-toggle { display:block; }
  /* Nav collapses to the hamburger here, so pin the language switcher to the
     right (next to the toggle) instead of letting items cluster by the logo. */
  .tb-locale-switcher { margin-left: auto; }
  .tb-analysis-grid, .tb-about-grid { grid-template-columns: 1fr; gap: 40px; }
  .tb-post-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .tb-coverage-grid { grid-template-columns: 1fr; }
  .tb-footer-top { grid-template-columns: 1fr; gap: 36px; }
}
@media (max-width: 640px) {
  .tb-container { width: min(100% - 24px, var(--container)); }
  .tb-hero { min-height: 590px; }
  .tb-hero h1 { font-size: 40px; }
  .tb-section { padding: 68px 0; }
  .tb-post-grid { grid-template-columns: 1fr; }
  .tb-card-meta { align-items:flex-start; flex-direction:column; gap:8px; }
  .tb-author-card { flex-direction: column; }
  .tb-footer-bottom { flex-direction: column; align-items:flex-start; }
}

/* v1.0.5 matching refinements */
.tb-section-muted { background: hsl(var(--muted) / .58); }
.tb-section-muted .tb-section-title,
.tb-section-muted h2 { max-width: 620px; }
.tb-analysis-grid .tb-lead { max-width: 620px; }
.tb-subscribe-card { max-width: 520px; justify-self: end; }
.tb-page-hero .tb-container { max-width: var(--container); }
.tb-page-hero h1 { max-width: 760px; }
.tb-page-hero p { max-width: 640px; }
.tb-toolbar { align-items: center; }
.tb-filter-row { white-space: normal; }
.tb-post-grid { gap: 28px; }
.tb-card-body { padding: 24px 24px 10px; }
.tb-card-title { font-size: 18px; line-height: 1.28; }
.tb-coverage-item .tb-icon-chip svg,
.tb-mini-card .tb-icon-chip svg { display: block; }
@media (min-width: 901px) {
  .tb-toolbar { flex-direction: row; }
  .tb-filter-row { flex-wrap: nowrap; }
}
@media (max-width: 1180px) and (min-width: 901px) {
  .tb-toolbar { align-items: flex-start; }
  .tb-filter-row { flex-wrap: wrap; }
}

/* v1.0.6 exact-match refinements and bug fixes */
:root {
  --container: 1180px;
}

.tb-logo-text,
.tb-footer .tb-logo-text {
  font-size: 15px;
}

.tb-hero {
  min-height: max(var(--tb-hero-min-height), calc(100vh - 58px));
}

.tb-hero-content {
  width: min(860px, calc(100% - 32px));
  padding: 64px 0 54px;
}

.tb-hero h1 {
  max-width: 840px;
  font-size: clamp(38px, 4.35vw, 58px);
  line-height: 1.055;
  font-weight: 800;
  letter-spacing: -0.03em;
  margin-bottom: 22px;
}

.tb-hero p {
  max-width: 690px;
  font-size: clamp(16px, 1.25vw, 18px);
  line-height: 1.5;
  margin-bottom: 26px;
}

.tb-section {
  padding: 84px 0;
}

.tb-section-muted {
  background: hsl(var(--muted) / .62);
  padding-top: 80px;
  padding-bottom: 80px;
}

.tb-analysis-grid {
  grid-template-columns: minmax(0, 1fr) minmax(440px, 0.88fr);
  gap: 68px;
  align-items: center;
}

.tb-section h2,
.tb-section-title {
  font-size: clamp(28px, 2.6vw, 34px);
  line-height: 1.12;
  letter-spacing: -0.03em;
}

.tb-analysis-grid h2 {
  max-width: 520px;
}

.tb-analysis-grid .tb-lead {
  max-width: 650px;
  font-size: 16px;
  line-height: 1.72;
}

.tb-stack {
  max-width: 650px;
  gap: 16px;
}

.tb-mini-card {
  grid-template-columns: 44px minmax(0, 1fr);
  align-items: center;
  min-height: 68px;
  padding: 13px 18px;
  gap: 16px;
}

.tb-mini-card > div,
.tb-mini-card strong,
.tb-mini-card span {
  min-width: 0;
}

.tb-mini-card .tb-icon-chip {
  width: 38px;
  height: 38px;
  border-radius: 10px;
  margin-top: 0;
}

.tb-mini-card .tb-icon-chip svg {
  width: 19px;
  height: 19px;
}

.tb-mini-card strong {
  font-size: 14px;
  margin-bottom: 3px;
}

.tb-mini-card span {
  font-size: 13px;
  white-space: normal;
}

.tb-subscribe-card {
  max-width: 520px;
  width: 100%;
  justify-self: end;
  padding: 30px;
}

.tb-subscribe-message {
  display: none;
  margin: 0;
  padding: 10px 12px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 700;
}

.tb-subscribe-message.is-visible {
  display: block;
}

.tb-subscribe-message.is-error {
  background: #fef2f2;
  color: #991b1b;
  border: 1px solid #fecaca;
}

.tb-subscribe-message.is-success {
  background: hsl(var(--primary) / .12);
  color: hsl(var(--primary-dark));
  border: 1px solid hsl(var(--primary) / .22);
}

.tb-page-hero {
  padding: 76px 0 86px;
}

.tb-page-hero h1 {
  font-size: clamp(34px, 3.65vw, 46px);
  max-width: 760px;
  line-height: 1.08;
}

.tb-page-hero p {
  max-width: 640px;
  font-size: 16px;
  line-height: 1.6;
}

.tb-toolbar {
  display: grid;
  grid-template-columns: minmax(260px, 360px) minmax(0, 1fr);
  gap: 64px;
  align-items: center;
  margin-bottom: 48px;
}

.tb-search-form {
  width: 100%;
  flex: none;
}

.tb-filter-row {
  max-width: none;
  flex-wrap: nowrap;
  justify-content: flex-end;
  gap: 8px;
}


.tb-card-body {
  padding: 22px 22px 10px;
}

.tb-about-coverage {
  background: hsl(var(--card));
}

.tb-coverage-grid {
  gap: 48px 76px;
}

.tb-coverage-item {
  grid-template-columns: 56px minmax(0, 1fr);
  gap: 24px;
}

.tb-coverage-item .tb-icon-chip {
  width: 56px;
  height: 56px;
  border-radius: 14px;
  color: #020817;
  background: hsl(var(--muted));
}

.tb-coverage-item .tb-icon-chip svg {
  width: 28px;
  height: 28px;
}

.tb-coverage-item:hover .tb-icon-chip {
  color: hsl(var(--primary));
  background: hsl(var(--primary) / .12);
}

@media (min-width: 901px) {
  .tb-toolbar { flex-direction: unset; }
  .tb-filter-row { flex-wrap: nowrap; }
}

@media (max-width: 1180px) and (min-width: 901px) {
  .tb-toolbar {
    grid-template-columns: minmax(240px, 340px) minmax(0, 1fr);
    gap: 36px;
  }
  .tb-filter-row { flex-wrap: wrap; }
}

@media (max-width: 900px) {
  .tb-toolbar {
    display: grid;
    grid-template-columns: 1fr;
    gap: 18px;
  }
  .tb-filter-row {
    justify-content: flex-start;
    flex-wrap: wrap;
  }
  .tb-analysis-grid {
    grid-template-columns: 1fr;
  }
  .tb-subscribe-card {
    justify-self: stretch;
    max-width: none;
  }
}

/* v1.0.7 non-developer handoff fixes */
:root {
  --container: 1320px;
  --tb-hero-min-height: 640px;
  --tb-hero-image-opacity: 0.54;
  --tb-hero-overlay-middle: 0.68;
  --tb-hero-overlay-wash: 0.20;
}

.tb-container {
  width: min(var(--container), calc(100% - 44px));
}

.tb-nav-row {
  min-height: 58px;
}

.tb-hero-content {
  width: min(820px, calc(100% - 44px));
  padding: 54px 0 42px;
}

.tb-hero h1 {
  max-width: 800px;
  font-size: clamp(34px, 4.0vw, 54px);
  line-height: 1.05;
  font-weight: 800;
  letter-spacing: -0.035em;
  margin-bottom: 20px;
}

.tb-hero p {
  max-width: 650px;
  font-size: clamp(15px, 1.15vw, 17px);
  line-height: 1.55;
  margin-bottom: 24px;
}

.tb-section {
  padding: 78px 0;
}

.tb-section-muted {
  padding-top: 76px;
  padding-bottom: 76px;
}

.tb-analysis-grid {
  grid-template-columns: minmax(0, 1fr) minmax(420px, .82fr);
  gap: 62px;
  align-items: center;
}

.tb-analysis-copy {
  min-width: 0;
}

.tb-analysis-grid h2,
.tb-section h2,
.tb-section-title {
  font-size: clamp(26px, 2.25vw, 32px);
  line-height: 1.13;
}

.tb-analysis-grid .tb-lead {
  font-size: 15.5px;
  line-height: 1.72;
  max-width: 620px;
}

.tb-stack {
  max-width: 620px;
}

.tb-mini-card {
  display: flex;
  align-items: center;
  min-height: 66px;
  gap: 16px;
  padding: 13px 16px;
  overflow: hidden;
}

.tb-mini-card .tb-icon-chip {
  align-self: center;
  flex: 0 0 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  margin: 0;
}

.tb-mini-card .tb-icon-chip svg {
  display: block;
  width: 19px;
  height: 19px;
}

.tb-mini-card > div {
  min-width: 0;
  display: grid;
  gap: 2px;
}

.tb-mini-card strong,
.tb-mini-card span {
  display: block;
  white-space: normal;
  overflow: visible;
}

.tb-subscribe-card {
  max-width: 500px;
  padding: 28px;
}

.tb-page-hero {
  padding: 70px 0 78px;
}

.tb-page-hero h1 {
  font-size: clamp(32px, 3.2vw, 42px);
  line-height: 1.08;
  max-width: 760px;
}

.tb-page-hero p {
  font-size: 15.5px;
}

.tb-blog-section {
  padding-top: 70px;
}

.tb-toolbar {
  display: grid;
  grid-template-columns: minmax(280px, 360px) minmax(0, 1fr);
  gap: 54px;
  align-items: start;
  margin-bottom: 46px;
}

.tb-filter-row {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 8px;
  max-width: none;
}


.tb-post-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 26px;
}

.tb-card-image {
  height: 210px;
}

.tb-card-body {
  padding: 22px 22px 12px;
}

.tb-card-title {
  font-size: 17px;
  line-height: 1.28;
}

.tb-card-excerpt {
  font-size: 14px;
  line-height: 1.65;
}

.tb-badge {
  font-size: 11px;
  font-weight: 900;
}

.tb-coverage-item .tb-icon-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #020817;
  background: hsl(var(--muted));
  transition: color .2s ease, background .2s ease, transform .2s ease;
}

.tb-coverage-item:hover .tb-icon-chip {
  color: hsl(var(--primary));
  background: hsl(var(--primary) / .14);
  transform: translateY(-1px);
}

.tb-subscribe-form button:disabled {
  cursor: not-allowed;
  opacity: .7;
}

@media (max-width: 1150px) and (min-width: 901px) {
  .tb-toolbar {
    grid-template-columns: 1fr;
    gap: 18px;
  }
  .tb-filter-row { justify-content: flex-start; }
}

@media (max-width: 900px) {
  .tb-container { width: min(100% - 28px, var(--container)); }
  .tb-analysis-grid { grid-template-columns: 1fr; gap: 40px; }
  .tb-toolbar { grid-template-columns: 1fr; gap: 18px; }
  .tb-filter-row { justify-content: flex-start; }
  .tb-post-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
  .tb-hero { min-height: 560px; }
  .tb-hero h1 { font-size: 36px; }
  .tb-post-grid { grid-template-columns: 1fr; }
}

/* v1.0.9 local image + wider layout + dynamic category polish */
:root {
  --container: 1320px;
  --tb-hero-min-height: 640px;
}

.tb-container {
  width: min(var(--container), calc(100% - 40px));
}

.tb-hero-content {
  width: min(850px, calc(100% - 40px));
  padding: 72px 0 56px;
}

.tb-hero h1 {
  max-width: 820px;
  font-size: clamp(34px, 3.65vw, 54px);
  line-height: 1.06;
}

.tb-hero p {
  max-width: 680px;
  font-size: clamp(15px, 1.12vw, 17px);
}

.tb-section-muted {
  padding-top: 82px;
  padding-bottom: 82px;
}

.tb-analysis-grid {
  grid-template-columns: minmax(0, 1fr) minmax(420px, .84fr);
  gap: 72px;
}

.tb-analysis-grid h2 {
  font-size: clamp(26px, 2.15vw, 32px);
  max-width: 600px;
}

.tb-mini-card {
  display: grid !important;
  grid-template-columns: 44px minmax(0, 1fr);
  align-items: center !important;
  min-height: 68px;
  padding: 13px 18px;
}

.tb-mini-card .tb-icon-chip {
  align-self: center !important;
  justify-self: center !important;
  display: inline-grid !important;
  place-items: center !important;
  width: 40px;
  height: 40px;
  margin: 0 !important;
}

.tb-mini-card .tb-icon-chip svg {
  width: 19px;
  height: 19px;
}

.tb-page-hero {
  padding: 70px 0 80px;
}

.tb-page-hero h1 {
  font-size: clamp(30px, 3vw, 42px);
  max-width: 780px;
}

.tb-toolbar {
  grid-template-columns: minmax(260px, 350px) minmax(0, 1fr);
  gap: 48px;
  align-items: center;
}

.tb-filter-row {
  justify-content: flex-end;
  gap: 8px;
}

.tb-filter-pill:hover,
.tb-filter-pill:focus-visible {
  background: hsl(var(--primary) / .12);
  border-color: hsl(var(--primary));
  color: hsl(var(--primary-dark));
  transform: translateY(-1px);
}

.tb-filter-pill.is-active,
.tb-filter-pill.is-active:hover {
  background: hsl(var(--primary));
  border-color: hsl(var(--primary));
  color: #fff;
}

.tb-post-grid {
  gap: 28px;
}

.tb-card-image {
  height: auto;
  aspect-ratio: 16 / 9;
}

@media (max-width: 1200px) and (min-width: 901px) {
  .tb-toolbar {
    grid-template-columns: 1fr;
    gap: 18px;
  }
  .tb-filter-row {
    justify-content: flex-start;
  }
}

@media (max-width: 640px) {
  .tb-hero {
    min-height: 620px;
  }
}

/* v1.1.0 unified theme-color hover states */
:root {
  --tb-theme-accent: #21c4ad;
  --tb-control-height: 42px;
  --tb-pill-height: 34px;
  --tb-hover-lift: -1px;
}

.tb-btn,
.tb-subscribe-form button,

.tb-btn {
  min-height: var(--tb-control-height);
}

/* Resting accent-fill consolidated into the canonical block in the v1.4.8 section;
   only the hover/focus states remain in this v1.1.0 section. */
.tb-btn-primary:hover,
.tb-btn-primary:focus-visible,
.tb-subscribe-form button:hover,
.tb-subscribe-form button:focus-visible {
  background-color: var(--tb-theme-accent) !important;
  filter: brightness(1.07);
  transform: translateY(var(--tb-hover-lift));
  box-shadow: 0 14px 28px color-mix(in srgb, var(--tb-theme-accent) 30%, transparent);
}

.tb-btn-secondary:hover,
.tb-btn-secondary:focus-visible {
  filter: brightness(1.10);
  transform: translateY(var(--tb-hover-lift));
  box-shadow: 0 12px 24px rgba(15, 23, 42, .12);
}

.tb-btn-outline {
  min-height: var(--tb-control-height);
  padding-inline: 22px;
  border-color: hsl(var(--border));
  background: #fff;
  color: hsl(var(--foreground));
}

.tb-btn-outline:hover,
.tb-btn-outline:focus-visible {
  background-color: var(--tb-theme-accent) !important;
  border-color: var(--tb-theme-accent) !important;
  color: #fff !important;
  transform: translateY(var(--tb-hover-lift));
  box-shadow: 0 10px 22px color-mix(in srgb, var(--tb-theme-accent) 24%, transparent);
}


.tb-filter-pill:hover,
.tb-filter-pill:focus-visible {
  background-color: var(--tb-theme-accent) !important;
  border-color: var(--tb-theme-accent) !important;
  color: #fff !important;
  transform: translateY(var(--tb-hover-lift));
  box-shadow: 0 8px 18px color-mix(in srgb, var(--tb-theme-accent) 22%, transparent);
}

.tb-icon-chip,
.tb-logo-mark,
.tb-section-kicker,
.tb-card-title a:hover,
.tb-primary-nav a:hover,
.tb-primary-nav a.is-active,
.tb-footer a:hover {
  color: var(--tb-theme-accent);
}

.tb-logo-mark,
.tb-icon-chip {
  background: color-mix(in srgb, var(--tb-theme-accent) 13%, white);
}

.tb-subscribe-form input:hover,
.tb-search-input:hover {
  background: #fff;
  border-color: color-mix(in srgb, var(--tb-theme-accent) 30%, hsl(var(--border)));
}

.tb-subscribe-form input:focus,
.tb-search-input:focus {
  border-color: var(--tb-theme-accent);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--tb-theme-accent) 16%, transparent);
}

/* Make the homepage CTA row and featured CTA behave like one design system */
.tb-hero-actions .tb-btn,
.tb-section-title-row .tb-btn {
  height: var(--tb-control-height);
  line-height: 1;
}

/* v1.2.0 handoff fixes: dynamic categories, ads, comments, Turnstile */
.tb-logo-image,
.tb-logo-image .custom-logo-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  flex: 0 0 auto;
}
.tb-logo-image img {
  max-width: 28px;
  max-height: 28px;
  width: auto;
  height: auto;
  display: block;
}

.tb-toolbar {
  display: grid;
  grid-template-columns: 1fr;
  gap: 22px;
  align-items: start;
  margin-bottom: 52px;
}
.tb-search-form {
  width: min(420px, 100%);
  max-width: 100%;
  flex: none;
}
.tb-filter-row {
  max-width: 100%;
  justify-content: flex-start;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
}
.tb-filter-pill:hover,
.tb-filter-pill:focus-visible,
.tb-filter-pill.is-active {
  background: hsl(var(--primary));
  border-color: hsl(var(--primary));
  color: #fff;
  box-shadow: 0 8px 18px hsl(var(--primary) / .16);
}

.tb-btn-outline:hover,
.tb-btn-outline:focus-visible {
  background: hsl(var(--primary));
  border-color: hsl(var(--primary));
  color: #fff;
  box-shadow: 0 10px 24px hsl(var(--primary) / .18);
}
.tb-subscribe-form button:hover,
.tb-subscribe-form button:focus-visible,
.tb-btn-secondary:hover,
.tb-btn-secondary:focus-visible {
  filter: brightness(1.08);
  transform: translateY(-1px);
}

.tb-turnstile {
  margin: 4px 0;
  min-height: 65px;
}

.tb-single-layout {
  width: min(1360px, calc(100% - 32px));
  margin: 0 auto;
  padding: 50px 0 110px;
  display: grid;
  grid-template-columns: minmax(150px, 1fr) minmax(0, 850px) minmax(150px, 1fr);
  gap: 28px;
  align-items: start;
}
.tb-single-layout .tb-article-wrap {
  grid-column: 2;
  width: 100%;
  margin: 0;
  padding: 0;
}
.tb-article-ad {
  border: 1px solid hsl(var(--border));
  border-radius: 14px;
  background: hsl(var(--card));
  min-height: 260px;
  padding: 14px;
  box-shadow: 0 4px 16px rgba(15, 23, 42, .04);
  overflow: hidden;
}
.tb-article-ad-left { grid-column: 1; position: sticky; top: 92px; }
.tb-article-ad-right { grid-column: 3; position: sticky; top: 92px; }
.tb-article-ad-mobile { display: none; margin: 48px 0 0; min-height: 120px; }
.tb-ad-label {
  display: block;
  margin-bottom: 10px;
  font-size: 10px;
  line-height: 1;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: hsl(var(--muted-foreground));
  font-weight: 800;
}
.tb-article-ad ins,
.tb-article-ad iframe,
.tb-article-ad img {
  max-width: 100%;
}

.tb-comments-section {
  margin-top: 58px;
  padding-top: 42px;
  border-top: 1px solid hsl(var(--border));
}
.tb-comments-title,
.tb-comment-reply-title {
  margin: 0 0 20px;
  font-size: clamp(20px, 2.2vw, 26px);
  line-height: 1.2;
  letter-spacing: -.02em;
  font-weight: 800;
  color: hsl(var(--foreground));
}
.tb-comment-list,
.tb-comment-list .children {
  margin: 0;
  padding: 0;
  list-style: none;
}
.tb-comment-list {
  margin: 0 0 42px;
  display: grid;
  gap: 16px;
}
.tb-comment-list .children {
  margin: 16px 0 0;
  padding-left: clamp(16px, 4vw, 40px);
  display: grid;
  gap: 16px;
}
.tb-comment-list .comment-body {
  border: 1px solid hsl(var(--border));
  background: hsl(var(--card));
  border-radius: 14px;
  padding: 18px 20px;
}
.tb-comment-list .comment-author {
  display: flex;
  align-items: center;
  gap: 10px;
}
.tb-comment-list .comment-author .avatar {
  border-radius: 50%;
  flex: 0 0 auto;
}
.tb-comment-list .comment-author .fn {
  font-weight: 700;
  font-style: normal;
  font-size: 15px;
  color: hsl(var(--foreground));
}
.tb-comment-list .comment-author .says {
  display: none;
}
.tb-comment-list .comment-metadata {
  margin: 6px 0 10px;
}
.tb-comment-list .comment-metadata a,
.tb-comment-list .comment-metadata,
.tb-comment-list .comment-meta {
  color: hsl(var(--muted-foreground));
  font-size: 12px;
  text-decoration: none;
}
.tb-comment-list .comment-content {
  color: hsl(var(--foreground));
  font-size: 15px;
  line-height: 1.7;
}
.tb-comment-list .comment-content p {
  margin: 0 0 10px;
}
.tb-comment-list .comment-content p:last-child {
  margin-bottom: 0;
}
.tb-comment-list .reply {
  margin-top: 10px;
}
.tb-comment-list .reply a,
.tb-comment-list .comment-reply-link {
  display: inline-block;
  font-size: 13px;
  font-weight: 700;
  color: hsl(var(--primary));
  text-decoration: none;
}
.tb-comment-list .reply a:hover,
.tb-comment-list .comment-reply-link:hover {
  text-decoration: underline;
}
.tb-comments .comment-form {
  display: grid;
  gap: 14px;
}
.tb-comments .comment-form label {
  display: block;
  margin-bottom: 6px;
  font-weight: 800;
  font-size: 13px;
}
.tb-comments .comment-form input[type="text"],
.tb-comments .comment-form input[type="email"],
.tb-comments .comment-form input[type="url"],
.tb-comments .comment-form textarea {
  width: 100%;
  border: 1px solid hsl(var(--border));
  background: hsl(var(--card));
  border-radius: 10px;
  padding: 12px 14px;
  color: hsl(var(--foreground));
  font: inherit;
}
.tb-comments .comment-form textarea {
  min-height: 150px;
  resize: vertical;
}
.tb-comment-submit,
.tb-comments .submit {
  border: 0;
  border-radius: 999px;
  min-height: 44px;
  padding: 0 22px;
  background: hsl(var(--primary));
  color: #fff;
  font-weight: 900;
  cursor: pointer;
  box-shadow: 0 10px 24px hsl(var(--primary) / .18);
}
.tb-comment-submit:hover,
.tb-comments .submit:hover {
  filter: brightness(1.08);
}

.tb-footer-connect { display: flex; flex-direction: column; align-items: flex-start; }
.tb-footer-connect .tb-partner-badges { margin-bottom: 22px; }
.tb-partner-badges {
  display: flex;
  flex-direction: column;
  gap: 10px;
  align-items: flex-start;
  padding: 0;
  max-width: 240px;
}
.tb-partner-heading {
  color: hsl(var(--muted-foreground));
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.tb-partner-badge {
  min-height: 48px;
  min-width: 170px;
  max-width: 220px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid hsl(var(--border));
  border-radius: 14px;
  background: #fff;
  padding: 10px 14px;
  box-shadow: 0 10px 24px rgba(15,23,42,.08);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
  overflow: hidden;
}
.tb-partner-badge:hover {
  transform: translateY(-2px);
  border-color: hsl(var(--primary) / .45);
  box-shadow: 0 14px 34px rgba(15,23,42,.12);
}
.tb-partner-badge img,
.tb-partner-badge svg {
  max-height: 42px;
  max-width: 190px;
  width: auto;
  display: block;
}
.tb-partner-fallback {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-size: 13px;
  font-weight: 900;
  line-height: 1.05;
  color: hsl(var(--foreground));
}
.tb-partner-badge.has-image .tb-partner-fallback { display: none; }
.tb-partner-badge-image.is-loaded + .tb-partner-fallback { display: none; }
.tb-partner-badge-image:not(.is-loaded) { display: none; }
.tb-partner-text-badge { gap: 10px; }
.tb-partner-google-mark { color: #4285f4; font-weight: 900; font-size: 17px; letter-spacing: -.03em; }
.tb-partner-meta-mark {
  color: #0866ff;
  font-weight: 900;
  font-size: 18px;
  letter-spacing: -.03em;
}

@media (max-width: 1180px) {
  .tb-single-layout {
    grid-template-columns: 1fr;
    width: min(900px, calc(100% - 32px));
    gap: 0;
  }
  .tb-single-layout .tb-article-wrap { grid-column: 1; }
  .tb-article-ad-left,
  .tb-article-ad-right { display: none; }
  .tb-article-ad-mobile { display: block; }
}

@media (max-width: 700px) {
  .tb-single-layout { padding-top: 34px; padding-bottom: 78px; }
  .tb-toolbar { gap: 18px; margin-bottom: 36px; }
  .tb-filter-row { gap: 8px; }
  .tb-filter-pill { min-height: 32px; font-size: 11px; padding: 7px 10px; }
  .tb-article-ad-mobile { margin-top: 34px; }
}

/* v1.2.6 partner badges: local image assets, no text fallback. */
.tb-footer-connect .tb-partner-badges { margin-bottom: 22px; }
.tb-partner-badges { max-width: 260px; }
.tb-partner-badge {
  min-height: 54px;
  min-width: 198px;
  max-width: 260px;
  padding: 7px 10px;
  background: #fff;
}
.tb-partner-badge-image {
  display: block !important;
  width: 100%;
  max-width: 232px;
  max-height: 62px;
  height: auto;
}
.tb-partner-badge-google .tb-partner-badge-image { max-width: 210px; }
.tb-partner-badge-meta .tb-partner-badge-image { max-width: 230px; }
.tb-partner-fallback { display: none !important; }

/* v1.2.7 footer partner badge layout: use local badge image assets only. */
.tb-footer-connect {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.tb-footer-connect .tb-partner-badges {
  order: 1;
  margin: 0 0 22px;
  max-width: 240px;
}
.tb-footer-connect .tb-socials {
  order: 2;
  margin-top: 0;
}
.tb-partner-badges {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
  padding: 0;
}
.tb-partner-heading {
  display: block;
  margin-bottom: 1px;
  color: hsl(var(--muted-foreground));
  font-size: 11px;
  line-height: 1;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.tb-partner-badge {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  width: auto;
  min-width: 0;
  min-height: 0;
  max-width: none;
  padding: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  overflow: visible;
  line-height: 0;
  transition: transform .18s ease, opacity .18s ease;
}
.tb-partner-badge:hover {
  transform: translateY(-2px);
  border-color: transparent;
  box-shadow: none;
  opacity: .94;
}
.tb-partner-badge-image {
  display: block !important;
  height: auto;
  object-fit: contain;
}
.tb-partner-badge-google .tb-partner-badge-image {
  width: 118px;
  max-width: 118px;
  max-height: none;
}
.tb-partner-badge-meta .tb-partner-badge-image {
  width: 180px;
  max-width: 180px;
  max-height: none;
}
@media (max-width: 700px) {
  .tb-footer-connect .tb-partner-badges { margin-bottom: 18px; }
  .tb-partner-badge-google .tb-partner-badge-image { width: 104px; max-width: 104px; }
  .tb-partner-badge-meta .tb-partner-badge-image { width: 168px; max-width: 168px; }
}

/* v1.2.8 footer layout: social links move under brand description, badges stay in right column. */
.tb-footer-layout-v128 {
  grid-template-columns: 1.45fr .8fr 1fr;
  align-items: start;
}
.tb-footer-brand .tb-footer-connect-under-desc {
  margin-top: 26px;
}
.tb-footer-connect-under-desc h4 {
  margin-bottom: 14px;
}
.tb-footer-connect-under-desc .tb-socials {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 0;
}
.tb-footer-partner-column {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.tb-footer-partner-column .tb-partner-badges {
  margin: 0;
  max-width: 260px;
}
.tb-footer-partner-column .tb-partner-heading {
  margin-bottom: 12px;
}
.tb-footer-partner-column .tb-partner-badge-google .tb-partner-badge-image {
  width: 128px;
  max-width: 128px;
}
.tb-footer-partner-column .tb-partner-badge-meta .tb-partner-badge-image {
  width: 182px;
  max-width: 182px;
}
@media (max-width: 900px) {
  .tb-footer-layout-v128 {
    grid-template-columns: 1fr;
    gap: 34px;
  }
  .tb-footer-brand .tb-footer-connect-under-desc {
    margin-top: 22px;
  }
  .tb-footer-partner-column .tb-partner-badge-google .tb-partner-badge-image {
    width: 112px;
    max-width: 112px;
  }
  .tb-footer-partner-column .tb-partner-badge-meta .tb-partner-badge-image {
    width: 170px;
    max-width: 170px;
  }
}

/* v1.2.9 dynamic category and footer badge polish. */
.tb-filter-row {
  justify-content: flex-start;
  align-items: center;
  gap: 12px;
  row-gap: 14px;
}
/* Consolidated filter-pill base (was 6 scattered standalone rules). Shared grouped rules
   (hover/focus accent sweep, word-break, transition, blog-listing context) are unchanged. */
.tb-filter-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: var(--tb-pill-height);
  padding: 7px 12px;
  border-radius: 7px;
  border: 1px solid hsl(var(--border));
  background: hsl(var(--card));
  color: hsl(var(--foreground));
  font-weight: 800;
  font-size: 11.5px;
  cursor: pointer;
  box-shadow: 0 2px 7px rgba(15, 23, 42, .04);
  transition: background-color .18s ease, color .18s ease, border-color .18s ease, box-shadow .18s ease, transform .18s ease, filter .18s ease;
}
.tb-filter-pill:hover,
.tb-filter-pill:focus-visible {
  background: hsl(var(--primary));
  color: hsl(var(--primary-foreground));
  border-color: hsl(var(--primary));
  box-shadow: 0 10px 24px hsl(var(--primary) / .20);
}
.tb-footer-partner-column .tb-partner-heading,
.tb-partner-heading {
  margin: 0 0 16px !important;
  color: hsl(var(--foreground)) !important;
  font-size: 13px !important;
  line-height: 1.2 !important;
  font-weight: 800 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}
.tb-footer-partner-column .tb-partner-badges {
  max-width: 270px;
}
.tb-partner-badge {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  border-radius: 0 !important;
  min-height: 0 !important;
  width: auto !important;
  max-width: 260px;
}
.tb-partner-badge:hover {
  transform: translateY(-1px);
  box-shadow: none !important;
}
.tb-footer-partner-column .tb-partner-badge-google .tb-partner-badge-image {
  width: 126px !important;
  max-width: 126px !important;
  height: auto !important;
  object-fit: contain !important;
  display: block !important;
}
.tb-footer-partner-column .tb-partner-badge-meta .tb-partner-badge-image {
  width: 206px !important;
  max-width: 206px !important;
  height: auto !important;
  object-fit: contain !important;
  display: block !important;
}
@media (max-width: 900px) {
  .tb-footer-partner-column .tb-partner-badge-google .tb-partner-badge-image {
    width: 116px !important;
    max-width: 116px !important;
  }
  .tb-footer-partner-column .tb-partner-badge-meta .tb-partner-badge-image {
    width: 190px !important;
    max-width: 190px !important;
  }
}

/* v1.3.0 footer heading and partner badge polish */
.tb-footer h4,
.tb-footer .tb-partner-heading,
.tb-footer-connect-under-desc h4 {
  color: hsl(var(--foreground));
  font-size: 16px;
  line-height: 1.15;
  font-weight: 900;
  letter-spacing: -0.035em;
  text-transform: none;
  margin: 0 0 16px;
}
.tb-footer-partner-column .tb-partner-badges {
  margin: 0;
  max-width: 280px;
  gap: 14px;
}
.tb-footer-partner-column .tb-partner-heading {
  margin-bottom: 14px;
}
.tb-footer .tb-partner-badge {
  display: inline-flex;
  width: auto;
  min-width: 0;
  min-height: 0;
  max-width: none;
  padding: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
  border-radius: 0;
  line-height: 0;
  overflow: visible;
}
.tb-footer .tb-partner-badge:hover {
  transform: translateY(-2px);
  opacity: .96;
  box-shadow: none;
  border-color: transparent;
}
.tb-footer .tb-partner-badge-image {
  display: block !important;
  width: 224px;
  max-width: 224px;
  height: auto;
  max-height: none;
  object-fit: contain;
}
.tb-footer-partner-column .tb-partner-badge-google .tb-partner-badge-image,
.tb-footer-partner-column .tb-partner-badge-meta .tb-partner-badge-image {
  width: 224px;
  max-width: 224px;
  max-height: none;
}
@media (max-width: 700px) {
  .tb-footer h4,
  .tb-footer .tb-partner-heading,
  .tb-footer-connect-under-desc h4 {
    font-size: 15px;
  }
  .tb-footer .tb-partner-badge-image,
  .tb-footer-partner-column .tb-partner-badge-google .tb-partner-badge-image,
  .tb-footer-partner-column .tb-partner-badge-meta .tb-partner-badge-image {
    width: 210px;
    max-width: 210px;
  }
}

/* v1.3.1 footer reset: restore clean original footer hierarchy + uniform partner badges */
.tb-footer h4,
.tb-footer .tb-partner-heading,
.tb-footer-connect-under-desc h4 {
  margin: 0 0 16px !important;
  color: hsl(var(--muted-foreground)) !important;
  font-size: 11px !important;
  line-height: 1.1 !important;
  font-weight: 900 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
}

.tb-footer-layout-v128 {
  grid-template-columns: 1.45fr .8fr 1fr;
  align-items: start;
  gap: 80px;
}

.tb-footer-partner-column,
.tb-footer-partner-column .tb-partner-badges {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.tb-footer-partner-column .tb-partner-badges {
  margin: 0;
  gap: 12px;
  max-width: 280px;
}

.tb-footer .tb-partner-badge,
.tb-footer-partner-column .tb-partner-badge {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  width: auto !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: none !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  line-height: 0 !important;
  overflow: visible !important;
  transition: transform .18s ease, opacity .18s ease !important;
}

.tb-footer .tb-partner-badge:hover,
.tb-footer-partner-column .tb-partner-badge:hover {
  transform: translateY(-2px) !important;
  opacity: .96 !important;
  box-shadow: none !important;
  border-color: transparent !important;
}

.tb-footer .tb-partner-badge-image,
.tb-footer-partner-column .tb-partner-badge-google .tb-partner-badge-image,
.tb-footer-partner-column .tb-partner-badge-meta .tb-partner-badge-image {
  display: block !important;
  width: 210px !important;
  max-width: 210px !important;
  height: auto !important;
  max-height: none !important;
  object-fit: contain !important;
  background: transparent !important;
}

.tb-footer .tb-partner-fallback { display: none !important; }

@media (max-width: 900px) {
  .tb-footer-layout-v128 {
    grid-template-columns: 1fr;
    gap: 34px;
  }
  .tb-footer .tb-partner-badge-image,
  .tb-footer-partner-column .tb-partner-badge-google .tb-partner-badge-image,
  .tb-footer-partner-column .tb-partner-badge-meta .tb-partner-badge-image {
    width: 200px !important;
    max-width: 200px !important;
  }
}

@media (max-width: 700px) {
  .tb-footer h4,
  .tb-footer .tb-partner-heading,
  .tb-footer-connect-under-desc h4 {
    font-size: 11px !important;
  }
  .tb-footer .tb-partner-badge-image,
  .tb-footer-partner-column .tb-partner-badge-google .tb-partner-badge-image,
  .tb-footer-partner-column .tb-partner-badge-meta .tb-partner-badge-image {
    width: 190px !important;
    max-width: 190px !important;
  }
}

/* v1.3.2 badge cleanup: clean horizontal SVG badges without grey outer layer */
.tb-footer .tb-partner-badge,
.tb-footer-partner-column .tb-partner-badge {
  background: transparent !important;
  box-shadow: none !important;
  border: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
}

.tb-footer .tb-partner-badge-image,
.tb-footer-partner-column .tb-partner-badge-google .tb-partner-badge-image,
.tb-footer-partner-column .tb-partner-badge-meta .tb-partner-badge-image {
  width: 230px !important;
  max-width: 230px !important;
  height: auto !important;
  display: block !important;
  background: transparent !important;
  box-shadow: none !important;
  border: 0 !important;
  filter: none !important;
}

.tb-footer-partner-column .tb-partner-badges {
  gap: 14px !important;
}

@media (max-width: 700px) {
  .tb-footer .tb-partner-badge-image,
  .tb-footer-partner-column .tb-partner-badge-google .tb-partner-badge-image,
  .tb-footer-partner-column .tb-partner-badge-meta .tb-partner-badge-image {
    width: 218px !important;
    max-width: 218px !important;
  }
}

/* v1.3.3 final badge controls: Customizer URLs + Customizer widths, clean images only */
.tb-footer h4,
.tb-footer .tb-partner-heading,
.tb-footer-connect-under-desc h4 {
  color: hsl(var(--muted-foreground)) !important;
  font-size: 11px !important;
  font-weight: 900 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
}
.tb-footer .tb-partner-badges { gap: 13px !important; }
.tb-footer .tb-partner-badge,
.tb-footer-partner-column .tb-partner-badge {
  display:inline-flex !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  border-radius: 0 !important;
  overflow: visible !important;
  line-height: 0 !important;
}
.tb-footer .tb-partner-badge-image {
  display:block !important;
  height:auto !important;
  object-fit:contain !important;
  background: transparent !important;
  box-shadow:none !important;
  border:0 !important;
  filter:none !important;
}
.tb-footer .tb-partner-badge-google .tb-partner-badge-image { width: var(--tb-google-badge-width, 230px) !important; max-width: var(--tb-google-badge-width, 230px) !important; }
.tb-footer .tb-partner-badge-meta .tb-partner-badge-image { width: var(--tb-meta-badge-width, 230px) !important; max-width: var(--tb-meta-badge-width, 230px) !important; }
@media (max-width:700px){
  .tb-footer .tb-partner-badge-google .tb-partner-badge-image,
  .tb-footer .tb-partner-badge-meta .tb-partner-badge-image { max-width: min(100%, 230px) !important; }
}

/* v1.3.4 final handoff polish: clean editable partner badges and dynamic coverage stability */
.tb-footer h4,
.tb-footer .tb-partner-heading,
.tb-footer-connect-under-desc h4 {
  margin: 0 0 14px !important;
  color: hsl(var(--muted-foreground)) !important;
  font-size: 12px !important;
  line-height: 1.2 !important;
  text-transform: uppercase !important;
  letter-spacing: .09em !important;
  font-weight: 900 !important;
}
.tb-footer .tb-partner-badges {
  display: grid !important;
  gap: 12px !important;
  align-items: start !important;
  justify-items: start !important;
}
.tb-footer .tb-partner-badge,
.tb-footer-partner-column .tb-partner-badge {
  display: inline-flex !important;
  width: auto !important;
  max-width: 100% !important;
  min-height: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  overflow: visible !important;
}
.tb-footer .tb-partner-badge:hover,
.tb-footer-partner-column .tb-partner-badge:hover {
  transform: translateY(-1px) !important;
  box-shadow: none !important;
}
.tb-footer .tb-partner-badge-image,
.tb-footer-partner-column .tb-partner-badge-image {
  display: block !important;
  height: auto !important;
  object-fit: contain !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.tb-footer .tb-partner-badge-google .tb-partner-badge-image {
  width: var(--tb-google-badge-width, 210px) !important;
  max-width: min(100%, var(--tb-google-badge-width, 210px)) !important;
}
.tb-footer .tb-partner-badge-meta .tb-partner-badge-image {
  width: var(--tb-meta-badge-width, 210px) !important;
  max-width: min(100%, var(--tb-meta-badge-width, 210px)) !important;
}
.tb-about-coverage .tb-coverage-grid:empty::after {
  content: "Add categories from Posts → Categories to show Areas of Coverage.";
  color: hsl(var(--muted-foreground));
}

/* v1.3.5 final stability: admin-settings support, badge height controls, responsive subscribe section, back-to-top */
html { scroll-behavior: smooth; }
*, *::before, *::after { box-sizing: border-box; }
body { overflow-x: hidden; }
.tb-container, .tb-section, .tb-section-muted { min-width: 0; }

.tb-footer .tb-partner-badge-google .tb-partner-badge-image {
  width: var(--tb-google-badge-width, 210px) !important;
  height: var(--tb-google-badge-height, 56px) !important;
  max-width: min(100%, var(--tb-google-badge-width, 210px)) !important;
  object-fit: contain !important;
}
.tb-footer .tb-partner-badge-meta .tb-partner-badge-image {
  width: var(--tb-meta-badge-width, 210px) !important;
  height: var(--tb-meta-badge-height, 56px) !important;
  max-width: min(100%, var(--tb-meta-badge-width, 210px)) !important;
  object-fit: contain !important;
}

.tb-back-to-top {
  position: fixed;
  right: 22px;
  bottom: 22px;
  z-index: 80;
  width: 46px;
  height: 46px;
  border: 0;
  border-radius: 999px;
  background: hsl(var(--primary));
  color: #fff;
  display: grid;
  place-items: center;
  cursor: pointer;
  box-shadow: 0 16px 34px rgba(15, 23, 42, .18);
  opacity: 0;
  visibility: hidden;
  transform: translateY(14px) rotate(-90deg);
  transition: opacity .2s ease, visibility .2s ease, transform .2s ease, background .2s ease;
}
.tb-back-to-top.is-visible { opacity: 1; visibility: visible; transform: translateY(0) rotate(-90deg); }
.tb-back-to-top:hover { background: hsl(var(--primary-hover)); }
.tb-back-to-top svg { width: 19px; height: 19px; }

@media (max-width: 1024px) {
  .tb-analysis-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 34px !important;
    align-items: start !important;
  }
  .tb-analysis-copy,
  .tb-subscribe-card,
  .tb-analysis-grid .tb-lead,
  .tb-stack,
  .tb-mini-card {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
  }
  .tb-subscribe-card {
    justify-self: stretch !important;
    margin: 0 !important;
    padding: 30px !important;
    overflow: hidden !important;
  }
  .tb-mini-card { display: flex !important; align-items: center !important; }
}

@media (max-width: 700px) {
  .tb-section { padding: 64px 0 !important; }
  .tb-section-muted { overflow: hidden !important; }
  .tb-analysis-grid { gap: 26px !important; }
  .tb-analysis-grid h2 { font-size: clamp(30px, 9vw, 42px) !important; line-height: 1.08 !important; }
  .tb-analysis-grid .tb-lead { font-size: 16px !important; line-height: 1.65 !important; }
  .tb-mini-card { padding: 14px !important; gap: 12px !important; }
  .tb-mini-card .tb-icon-chip { flex: 0 0 42px !important; width: 42px !important; height: 42px !important; }
  .tb-mini-card strong { font-size: 15px !important; }
  .tb-mini-card span { font-size: 13px !important; line-height: 1.45 !important; }
  .tb-subscribe-card { padding: 24px !important; border-radius: 20px !important; }
  .tb-subscribe-card h3 { font-size: clamp(23px, 7vw, 30px) !important; line-height: 1.12 !important; }
  .tb-subscribe-card p { font-size: 15px !important; line-height: 1.6 !important; }
  .tb-subscribe-form input,
  .tb-subscribe-form button { width: 100% !important; min-width: 0 !important; }
  .tb-back-to-top { right: 16px; bottom: 16px; width: 42px; height: 42px; }
}

/* v1.4.0 cleanup: one admin panel, repeatable coverage items, safer mobile layout */
html, body { max-width: 100%; overflow-x: hidden; }
.tb-analysis-grid, .tb-section-title-row, .tb-post-grid, .tb-footer-top { min-width: 0; }
.tb-subscribe-card, .tb-analysis-copy, .tb-mini-card, .tb-card { min-width: 0; box-sizing: border-box; }
.tb-subscribe-form input, .tb-subscribe-form button { width: 100%; max-width: 100%; box-sizing: border-box; }
.tb-coverage-icon-img { width: 28px; height: 28px; object-fit: contain; display: block; }
.tb-coverage-text p { margin: 0; }
.tb-coverage-text p + p { margin-top: 8px; }

/* Partner badges are rendered as HTML/CSS cards, with separate logo sizing. */
.tb-footer .tb-partner-badges { gap: 12px !important; width: 100%; max-width: 260px; }
.tb-footer .tb-partner-badge,
.tb-footer-partner-column .tb-partner-badge {
  width: var(--tb-badge-width, 210px) !important;
  height: var(--tb-badge-height, 56px) !important;
  max-width: 100% !important;
  padding: 8px 12px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 10px !important;
  background: #fff !important;
  border: 1px solid #dfe7f1 !important;
  border-radius: 10px !important;
  box-shadow: none !important;
  overflow: hidden !important;
  text-decoration: none !important;
  line-height: 1 !important;
}
.tb-footer .tb-partner-badge:hover,
.tb-footer-partner-column .tb-partner-badge:hover {
  border-color: var(--tb-theme-accent, #21c4ad) !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 10px 22px rgba(15, 23, 42, .08) !important;
}
.tb-partner-logo {
  width: var(--tb-logo-size, 36px) !important;
  height: var(--tb-logo-size, 36px) !important;
  min-width: var(--tb-logo-size, 36px) !important;
  max-width: var(--tb-logo-size, 36px) !important;
  object-fit: contain !important;
  display: block !important;
}
.tb-partner-label {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
  color: #020617;
  font-size: 14px;
  letter-spacing: -.03em;
}
.tb-partner-label strong { font-size: 15px; font-weight: 900; color: #020617; line-height: .95; white-space: nowrap; }
.tb-google-word { font-size: 13px; font-weight: 900; line-height: 1; white-space: nowrap; }
.tb-google-word span:nth-child(1), .tb-google-word span:nth-child(4) { color:#4285F4; }
.tb-google-word span:nth-child(2), .tb-google-word span:nth-child(6) { color:#DB4437; }
.tb-google-word span:nth-child(3) { color:#F4B400; }
.tb-google-word span:nth-child(5) { color:#0F9D58; }
.tb-meta-word { color:#0866FF; font-size: 16px; font-weight: 900; line-height: .95; white-space: nowrap; }

.tb-back-to-top {
  background: #0f172a !important;
  color: #fff !important;
  border: 1px solid rgba(255,255,255,.18) !important;
  box-shadow: 0 18px 40px rgba(15,23,42,.22) !important;
}
.tb-back-to-top:hover,
.tb-back-to-top:focus-visible {
  background: var(--tb-theme-accent, #21c4ad) !important;
  color: #fff !important;
  transform: translateY(-2px) !important;
}

@media (max-width: 900px) {
  .tb-analysis-grid { grid-template-columns: 1fr !important; gap: 28px !important; }
  .tb-analysis-copy { max-width: 100% !important; }
  .tb-subscribe-card { width: 100% !important; max-width: 100% !important; padding: 28px !important; }
  .tb-subscribe-card h3 { font-size: clamp(22px, 6vw, 30px) !important; line-height: 1.1 !important; }
  .tb-mini-card { align-items: center !important; }
  .tb-section-title-row { align-items: flex-start !important; }
}
@media (max-width: 640px) {
  .tb-section { padding-left: 0 !important; padding-right: 0 !important; }
  .tb-container { width: min(100% - 32px, var(--tb-container, 1120px)) !important; }
  .tb-analysis-copy h2, .tb-section-title { font-size: clamp(28px, 9vw, 38px) !important; line-height: 1.08 !important; }
  .tb-lead { font-size: 16px !important; line-height: 1.7 !important; }
  .tb-section-title-row { flex-direction: column !important; gap: 18px !important; }
  .tb-section-title-row .tb-btn { align-self: flex-start !important; width: auto !important; max-width: 100% !important; padding: 11px 15px !important; font-size: 13px !important; white-space: nowrap !important; }
  .tb-mini-card { grid-template-columns: 48px 1fr !important; padding: 14px !important; }
  .tb-mini-card .tb-icon-chip { width: 42px !important; height: 42px !important; }
  .tb-subscribe-card { padding: 24px 18px !important; border-radius: 18px !important; }
  .tb-footer .tb-partner-badges { max-width: 100%; align-items: flex-start; }
  .tb-footer .tb-partner-badge, .tb-footer-partner-column .tb-partner-badge { max-width: min(100%, 230px) !important; }
}

/* v1.4.1: in-content article ad support */
.tb-article-ad-inline {
  margin: 34px 0;
  min-height: 120px;
  width: 100%;
  box-sizing: border-box;
}
.tb-prose .tb-article-ad-inline,
.tb-article-wrap .tb-article-ad-inline {
  clear: both;
}
@media (max-width: 640px) {
  .tb-article-ad-inline {
    margin: 26px 0;
    min-height: 100px;
    padding: 12px;
  }
}

/* v1.4.2 final cleanup: controlled partner badges, shortcode ads, mobile polish */
html, body { max-width: 100%; overflow-x: hidden; }
.tb-main, .tb-section, .tb-container { min-width: 0; }

.tb-footer-description p { margin: 0 0 22px; color: hsl(var(--muted-foreground)); line-height: 1.65; }

.tb-footer .tb-partner-badges,
.tb-footer-partner-column .tb-partner-badges {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 14px !important;
  max-width: 100% !important;
}
.tb-footer .tb-partner-heading,
.tb-footer h4 {
  font-size: 12px !important;
  line-height: 1.2 !important;
  letter-spacing: .12em !important;
  text-transform: uppercase !important;
  color: hsl(var(--muted-foreground)) !important;
  font-weight: 800 !important;
  margin: 0 0 16px !important;
}
.tb-footer .tb-partner-badge,
.tb-footer-partner-column .tb-partner-badge {
  width: var(--tb-badge-width, 210px) !important;
  height: var(--tb-badge-height, 56px) !important;
  max-width: 100% !important;
  display: grid !important;
  grid-template-columns: minmax(36px, 50px) minmax(0, 1fr) !important;
  align-items: center !important;
  gap: 10px !important;
  padding: 0 14px !important;
  border-radius: 10px !important;
  border: 1px solid hsl(var(--border)) !important;
  background: #fff !important;
  box-shadow: 0 7px 16px rgba(15,23,42,.05) !important;
  overflow: hidden !important;
}
.tb-footer .tb-partner-badge:hover,
.tb-footer-partner-column .tb-partner-badge:hover {
  transform: translateY(-1px) !important;
  box-shadow: 0 12px 24px rgba(15,23,42,.09) !important;
}
.tb-footer .tb-partner-logo,
.tb-footer-partner-column .tb-partner-logo {
  width: var(--tb-logo-size, 32px) !important;
  height: var(--tb-logo-size, 32px) !important;
  min-width: var(--tb-logo-size, 32px) !important;
  max-width: var(--tb-logo-size, 32px) !important;
  object-fit: contain !important;
  justify-self: center !important;
  display: block !important;
}
.tb-footer .tb-partner-label,
.tb-footer-partner-column .tb-partner-label {
  min-width: 0 !important;
  overflow: hidden !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  color: #020617 !important;
  line-height: 1 !important;
}
.tb-footer .tb-google-word {
  font-size: 13px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  color: #4285f4 !important;
}
.tb-footer .tb-meta-word {
  color: #0866ff !important;
  font-size: 15px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
}
.tb-footer .tb-partner-label strong {
  font-size: 15px !important;
  font-weight: 900 !important;
  color: #020617 !important;
  line-height: 1 !important;
  white-space: normal !important;
}

.tb-back-to-top {
  background: #0f172a !important;
  color: #fff !important;
  border: 1px solid rgba(255,255,255,.18) !important;
}
.tb-back-to-top:hover,
.tb-back-to-top:focus-visible {
  background: hsl(var(--primary)) !important;
  color: #fff !important;
  transform: translateY(-2px) rotate(-90deg) !important;
}
.tb-back-to-top.is-visible { transform: translateY(0) rotate(-90deg) !important; }
.tb-back-to-top.is-visible:hover,
.tb-back-to-top.is-visible:focus-visible { transform: translateY(-2px) rotate(-90deg) !important; }

.tb-article-ad-inline {
  margin: 34px 0 !important;
  width: 100% !important;
  min-height: 120px;
  clear: both;
}

@media (max-width: 1024px) {
  .tb-analysis-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 30px !important;
    overflow: hidden !important;
  }
  .tb-analysis-copy, .tb-subscribe-card, .tb-stack, .tb-mini-card {
    min-width: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
  }
  .tb-subscribe-card {
    justify-self: stretch !important;
    margin: 0 !important;
    overflow: hidden !important;
  }
}

@media (max-width: 700px) {
  .tb-container { width: min(100% - 32px, var(--container)) !important; }
  .tb-section-title-row {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 18px !important;
  }
  .tb-section-title-row .tb-btn {
    width: auto !important;
    max-width: 100% !important;
    align-self: flex-start !important;
    white-space: normal !important;
    text-align: center !important;
    justify-content: center !important;
    line-height: 1.1 !important;
  }
  .tb-subscribe-card {
    padding: 24px 18px !important;
    border-radius: 18px !important;
  }
  .tb-subscribe-card h3 { font-size: clamp(22px, 7vw, 30px) !important; line-height: 1.1 !important; }
  .tb-subscribe-card p { font-size: 15px !important; line-height: 1.6 !important; }
  .tb-subscribe-form input, .tb-subscribe-form button { width: 100% !important; min-width: 0 !important; }
  .tb-footer .tb-partner-badge, .tb-footer-partner-column .tb-partner-badge {
    width: min(100%, var(--tb-badge-width, 210px)) !important;
  }
}

/* v1.4.5 stability fixes: one-line partner badges, clean mobile layout, ad test mode. */
.tb-footer .tb-partner-badges,
.tb-footer-partner-column .tb-partner-badges {
  width: 100% !important;
  max-width: 320px !important;
  gap: 12px !important;
  align-items: flex-start !important;
}
.tb-footer .tb-partner-badge,
.tb-footer-partner-column .tb-partner-badge {
  width: max(var(--tb-badge-width, 275px), 260px) !important;
  height: var(--tb-badge-height, 56px) !important;
  max-width: 100% !important;
  padding: 8px 14px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 12px !important;
  overflow: visible !important;
  white-space: nowrap !important;
}
.tb-partner-logo-wrap {
  width: var(--tb-logo-size, 36px) !important;
  min-width: var(--tb-logo-size, 36px) !important;
  height: var(--tb-logo-size, 36px) !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: visible !important;
  flex: 0 0 var(--tb-logo-size, 36px) !important;
}
.tb-partner-logo {
  width: var(--tb-logo-size, 36px) !important;
  height: var(--tb-logo-size, 36px) !important;
  max-width: var(--tb-logo-size, 36px) !important;
  max-height: var(--tb-logo-size, 36px) !important;
  object-fit: contain !important;
  display: block !important;
}
.tb-partner-label,
.tb-partner-label strong,
.tb-google-word,
.tb-meta-word {
  display: inline !important;
  white-space: nowrap !important;
  min-width: max-content !important;
  line-height: 1 !important;
}
.tb-partner-label {
  font-size: 15px !important;
  font-weight: 900 !important;
  color: #020617 !important;
  letter-spacing: -.035em !important;
  flex: 0 0 auto !important;
}
.tb-partner-label-google::first-letter { color: #4285F4; }
.tb-partner-label-meta { color: #020617 !important; }
.tb-partner-badge-meta .tb-partner-logo { width: calc(var(--tb-logo-size, 42px) * 1.25) !important; max-width: calc(var(--tb-logo-size, 42px) * 1.25) !important; }

@media (max-width: 900px) {
  .tb-analysis-grid { grid-template-columns: minmax(0, 1fr) !important; }
  .tb-analysis-copy,
  .tb-subscribe-card,
  .tb-stack,
  .tb-mini-card { max-width: 100% !important; min-width: 0 !important; }
}
@media (max-width: 640px) {
  .tb-section-title-row { display: flex !important; flex-direction: column !important; align-items: flex-start !important; gap: 18px !important; }
  .tb-section-title-row .tb-btn {
    width: 100% !important;
    max-width: 240px !important;
    min-height: 44px !important;
    justify-content: center !important;
    white-space: normal !important;
    text-align: center !important;
  }
  .tb-footer .tb-partner-badge,
  .tb-footer-partner-column .tb-partner-badge {
    width: min(100%, max(var(--tb-badge-width, 275px), 260px)) !important;
  }
}
.tb-back-to-top:hover,
.tb-back-to-top:focus-visible {
  background: #111827 !important;
  color: #ffffff !important;
  border-color: var(--tb-theme-accent, #21c4ad) !important;
  transform: translateY(-2px) rotate(-90deg) !important;
}
.tb-test-ad {
  display: grid;
  place-items: center;
  gap: 4px;
  min-height: 90px;
  padding: 18px;
  border: 2px dashed var(--tb-theme-accent, #21c4ad);
  border-radius: 14px;
  background: rgba(33,196,173,.08);
  color: #0f172a;
  text-align: center;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .02em;
}
.tb-test-ad span { font-size: 11px; color: #64748b; font-weight: 700; }

/* v1.4.6 stable polish: theme-color buttons, back-to-top hover, and fixed partner logo column. */
:root {
  --tb-badge-logo-column: 60px;
}

/* Resting accent-fill for these controls is consolidated into the canonical block
   in the v1.4.8 section below; only the hover/focus states remain here. */
.tb-btn-primary:hover,
.tb-btn-primary:focus-visible,
.tb-subscribe-form button:hover,
.tb-subscribe-form button:focus-visible,
.tb-comment-submit:hover,
.tb-comment-submit:focus-visible,
.tb-comments .submit:hover,
.tb-comments .submit:focus-visible,
.tb-btn-outline:hover,
.tb-btn-outline:focus-visible,
.tb-filter-pill:hover,
.tb-filter-pill:focus-visible {
  background: var(--tb-theme-accent, #21c4ad) !important;
  border-color: var(--tb-theme-accent, #21c4ad) !important;
  color: #fff !important;
  box-shadow: 0 12px 26px color-mix(in srgb, var(--tb-theme-accent, #21c4ad) 24%, transparent) !important;
}

.tb-search-input:focus,
.tb-comments .comment-form input[type="text"]:focus,
.tb-comments .comment-form input[type="email"]:focus,
.tb-comments .comment-form input[type="url"]:focus,
.tb-comments .comment-form textarea:focus {
  outline: 0 !important;
  border-color: var(--tb-theme-accent, #21c4ad) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--tb-theme-accent, #21c4ad) 16%, transparent) !important;
}

.tb-primary-nav a:hover,
.tb-primary-nav a.is-active,
.tb-card-title a:hover,
.tb-footer a:hover,
.tb-section-kicker,
.tb-logo-mark {
  color: var(--tb-theme-accent, #21c4ad) !important;
}

.tb-logo-mark {
  background: color-mix(in srgb, var(--tb-theme-accent, #21c4ad) 13%, white) !important;
}

.tb-coverage-item:hover .tb-icon-chip {
  background: color-mix(in srgb, var(--tb-theme-accent, #21c4ad) 12%, white) !important;
  border-color: color-mix(in srgb, var(--tb-theme-accent, #21c4ad) 32%, hsl(var(--border))) !important;
  color: var(--tb-theme-accent, #21c4ad) !important;
  transform: translateY(-1px) !important;
}

/* Back-to-top: default stays dark, hover fill changes to the main theme color, not just the outline. */
.tb-back-to-top {
  background: #0f172a !important;
  color: #fff !important;
  border: 1px solid rgba(255,255,255,.18) !important;
  box-shadow: 0 18px 40px rgba(15,23,42,.22) !important;
}
.tb-back-to-top:hover,
.tb-back-to-top:focus-visible,
.tb-back-to-top.is-visible:hover,
.tb-back-to-top.is-visible:focus-visible {
  background: var(--tb-theme-accent, #21c4ad) !important;
  border-color: var(--tb-theme-accent, #21c4ad) !important;
  color: #fff !important;
  box-shadow: 0 18px 40px color-mix(in srgb, var(--tb-theme-accent, #21c4ad) 32%, transparent) !important;
  transform: translateY(-2px) rotate(-90deg) !important;
}

/* Partner badges: fixed logo column means changing logo size no longer moves the text. */
.tb-footer .tb-partner-badges,
.tb-footer-partner-column .tb-partner-badges {
  width: 100% !important;
  max-width: 330px !important;
  gap: 12px !important;
  align-items: flex-start !important;
}
.tb-footer .tb-partner-badge,
.tb-footer-partner-column .tb-partner-badge {
  width: min(100%, max(var(--tb-badge-width, 275px), 260px)) !important;
  height: var(--tb-badge-height, 56px) !important;
  display: grid !important;
  grid-template-columns: var(--tb-badge-logo-column, 60px) minmax(0, 1fr) !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 8px 14px !important;
  overflow: hidden !important;
  white-space: nowrap !important;
  background: #fff !important;
  border: 1px solid hsl(var(--border)) !important;
  border-radius: 10px !important;
  box-shadow: 0 7px 16px rgba(15,23,42,.05) !important;
  text-decoration: none !important;
}
.tb-footer .tb-partner-badge:hover,
.tb-footer-partner-column .tb-partner-badge:hover {
  border-color: var(--tb-theme-accent, #21c4ad) !important;
  box-shadow: 0 12px 24px rgba(15,23,42,.09) !important;
  transform: translateY(-1px) !important;
}
.tb-partner-logo-wrap,
.tb-footer .tb-partner-logo-wrap,
.tb-footer-partner-column .tb-partner-logo-wrap {
  width: var(--tb-badge-logo-column, 60px) !important;
  min-width: var(--tb-badge-logo-column, 60px) !important;
  max-width: var(--tb-badge-logo-column, 60px) !important;
  height: 100% !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: visible !important;
}
.tb-footer .tb-partner-logo,
.tb-footer-partner-column .tb-partner-logo {
  width: var(--tb-logo-size, 34px) !important;
  height: var(--tb-logo-size, 34px) !important;
  max-width: var(--tb-badge-logo-column, 60px) !important;
  max-height: calc(var(--tb-badge-height, 56px) - 14px) !important;
  object-fit: contain !important;
  display: block !important;
}
.tb-footer .tb-partner-badge-meta .tb-partner-logo,
.tb-footer-partner-column .tb-partner-badge-meta .tb-partner-logo {
  width: min(calc(var(--tb-logo-size, 42px) * 1.38), var(--tb-badge-logo-column, 60px)) !important;
  height: min(var(--tb-logo-size, 42px), calc(var(--tb-badge-height, 56px) - 14px)) !important;
  max-width: var(--tb-badge-logo-column, 60px) !important;
}
.tb-partner-label,
.tb-footer .tb-partner-label,
.tb-footer-partner-column .tb-partner-label {
  min-width: 0 !important;
  display: inline-flex !important;
  align-items: baseline !important;
  gap: 4px !important;
  overflow: hidden !important;
  white-space: nowrap !important;
  color: #020617 !important;
  font-size: 15px !important;
  line-height: 1 !important;
  letter-spacing: -.035em !important;
  font-weight: 900 !important;
}
.tb-partner-brand,
.tb-partner-suffix,
.tb-google-letter,
.tb-partner-label-text {
  display: inline-block !important;
  line-height: 1 !important;
  font-weight: 900 !important;
  white-space: nowrap !important;
}
.tb-partner-suffix,
.tb-partner-label-text {
  color: #020617 !important;
}
.tb-meta-brand {
  color: #0866ff !important;
}
.tb-google-letter-blue { color: #4285F4 !important; }
.tb-google-letter-red { color: #DB4437 !important; }
.tb-google-letter-yellow { color: #F4B400 !important; }
.tb-google-letter-green { color: #0F9D58 !important; }

@media (max-width: 640px) {
  .tb-footer .tb-partner-badge,
  .tb-footer-partner-column .tb-partner-badge {
    width: min(100%, max(var(--tb-badge-width, 275px), 260px)) !important;
  }
  .tb-partner-label,
  .tb-footer .tb-partner-label,
  .tb-footer-partner-column .tb-partner-label {
    font-size: 14px !important;
  }
}

/* v1.4.7 stable: shared badge sizing and one-line Google/Meta Partner badges. */
.tb-footer .tb-partner-badges,
.tb-footer-partner-column .tb-partner-badges {
  max-width: calc(var(--tb-partner-badge-width, 275px) + 24px) !important;
}

.tb-footer .tb-partner-badge,
.tb-footer-partner-column .tb-partner-badge {
  width: min(100%, var(--tb-badge-width, var(--tb-partner-badge-width, 275px))) !important;
  height: var(--tb-badge-height, var(--tb-partner-badge-height, 56px)) !important;
  min-height: var(--tb-badge-height, var(--tb-partner-badge-height, 56px)) !important;
  grid-template-columns: var(--tb-badge-logo-column, 60px) minmax(0, 1fr) !important;
  gap: 8px !important;
  padding: 8px 14px !important;
}

.tb-footer .tb-partner-logo-wrap,
.tb-footer-partner-column .tb-partner-logo-wrap {
  width: var(--tb-badge-logo-column, 60px) !important;
  min-width: var(--tb-badge-logo-column, 60px) !important;
  max-width: var(--tb-badge-logo-column, 60px) !important;
  flex: 0 0 var(--tb-badge-logo-column, 60px) !important;
}

.tb-footer .tb-partner-label,
.tb-footer-partner-column .tb-partner-label {
  display: inline-flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: flex-start !important;
  flex-wrap: nowrap !important;
  gap: 4px !important;
  min-width: 0 !important;
  max-width: 100% !important;
  overflow: hidden !important;
  white-space: nowrap !important;
  text-overflow: clip !important;
  font-size: 15px !important;
  line-height: 1 !important;
  letter-spacing: -0.035em !important;
}

.tb-footer .tb-partner-brand,
.tb-footer .tb-partner-suffix,
.tb-footer .tb-google-letter,
.tb-footer .tb-partner-label-text,
.tb-footer-partner-column .tb-partner-brand,
.tb-footer-partner-column .tb-partner-suffix,
.tb-footer-partner-column .tb-google-letter,
.tb-footer-partner-column .tb-partner-label-text {
  display: inline-block !important;
  white-space: nowrap !important;
  flex: 0 0 auto !important;
  line-height: 1 !important;
  font-weight: 900 !important;
}

.tb-footer .tb-partner-suffix,
.tb-footer .tb-partner-label-text,
.tb-footer-partner-column .tb-partner-suffix,
.tb-footer-partner-column .tb-partner-label-text {
  color: #020617 !important;
}

.tb-footer .tb-meta-brand,
.tb-footer-partner-column .tb-meta-brand {
  color: #0866ff !important;
}

.tb-footer .tb-partner-badge:hover,
.tb-footer-partner-column .tb-partner-badge:hover {
  border-color: var(--tb-theme-accent, #21c4ad) !important;
}

@media (max-width: 640px) {
  .tb-footer .tb-partner-badges,
  .tb-footer-partner-column .tb-partner-badges {
    max-width: 100% !important;
  }

  .tb-footer .tb-partner-badge,
  .tb-footer-partner-column .tb-partner-badge {
    width: min(100%, var(--tb-badge-width, var(--tb-partner-badge-width, 275px))) !important;
  }
}

/* v1.4.8 final stable: services page, homepage services, blog-post-only side rail ads, global color cleanup. */
.tb-section-kicker,
.tb-primary-nav a:hover,
.tb-primary-nav a.is-active,
.tb-breadcrumb a:hover,
.tb-card-title a:hover,
.tb-footer a:hover,
.tb-icon-chip,
.tb-logo-mark,
.tb-mini-card .tb-icon-chip,
.tb-coverage-item .tb-icon-chip {
  color: var(--tb-theme-accent, #21c4ad) !important;
}
.tb-icon-chip,
.tb-logo-mark,
.tb-mini-card .tb-icon-chip,
.tb-coverage-item .tb-icon-chip {
  background: color-mix(in srgb, var(--tb-theme-accent, #21c4ad) 12%, white) !important;
  border-color: color-mix(in srgb, var(--tb-theme-accent, #21c4ad) 26%, hsl(var(--border))) !important;
}
/* Canonical accent-fill for all "primary" controls. Consolidated from three
   identical !important blocks (formerly v1.1.0 ~L1162, v1.4.6 ~L2571, and here);
   this single block carries the union of every selector those three matched, so
   the resting computed style of each control is unchanged. */
.tb-badge,
.tb-btn-primary,
.tb-subscribe-form button,
.tb-comment-submit,
.tb-comments .submit,
.tb-filter-pill.is-active,
.tb-filter-pill.is-active:hover,
.tb-filter-pill.is-active:focus-visible {
  background: var(--tb-theme-accent, #21c4ad) !important;
  border-color: var(--tb-theme-accent, #21c4ad) !important;
  color: #fff !important;
}
.tb-btn-primary:hover,
.tb-btn-primary:focus-visible,
.tb-btn-outline:hover,
.tb-btn-outline:focus-visible,
.tb-subscribe-form button:hover,
.tb-subscribe-form button:focus-visible,
.tb-comment-submit:hover,
.tb-comment-submit:focus-visible,
.tb-comments .submit:hover,
.tb-comments .submit:focus-visible,
.tb-filter-pill:hover,
.tb-filter-pill:focus-visible {
  background: var(--tb-theme-accent, #21c4ad) !important;
  border-color: var(--tb-theme-accent, #21c4ad) !important;
  color: #fff !important;
  box-shadow: 0 12px 26px color-mix(in srgb, var(--tb-theme-accent, #21c4ad) 26%, transparent) !important;
}
.tb-search-input:focus,
.tb-subscribe-form input:focus,
.tb-comments .comment-form input:focus,
.tb-comments .comment-form textarea:focus {
  border-color: var(--tb-theme-accent, #21c4ad) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--tb-theme-accent, #21c4ad) 16%, transparent) !important;
}

.tb-back-to-top {
  right: var(--tb-back-top-desktop-right, 22px) !important;
  bottom: var(--tb-back-top-desktop-bottom, 22px) !important;
  background: #0f172a !important;
  color: #fff !important;
}
.tb-back-to-top:hover,
.tb-back-to-top:focus-visible,
.tb-back-to-top.is-visible:hover,
.tb-back-to-top.is-visible:focus-visible {
  background: var(--tb-theme-accent, #21c4ad) !important;
  border-color: var(--tb-theme-accent, #21c4ad) !important;
}

.tb-home-services { background: hsl(var(--background)); }
.tb-services-title-row .tb-lead { max-width: 760px; }
.tb-home-service-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}
.tb-home-service-card {
  background: #fff;
  border: 1px solid hsl(var(--border));
  border-radius: 20px;
  padding: 22px;
  box-shadow: 0 8px 24px rgba(15,23,42,.05);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
  min-width: 0;
}
.tb-home-service-card:hover {
  transform: translateY(-3px);
  border-color: color-mix(in srgb, var(--tb-theme-accent, #21c4ad) 36%, hsl(var(--border)));
  box-shadow: 0 18px 42px rgba(15,23,42,.1);
}
.tb-home-service-top { display:flex; align-items:center; gap:14px; margin-bottom: 14px; }
.tb-home-service-top .tb-icon-chip { flex: 0 0 44px; width:44px; height:44px; }
.tb-home-service-card h3 { margin:0; font-size:18px; line-height:1.2; letter-spacing:-.03em; }
.tb-home-service-card p { margin:0 0 16px; color:hsl(var(--muted-foreground)); line-height:1.65; font-size:14px; }
.tb-service-badges { display:flex; flex-wrap:wrap; gap:8px; }
.tb-service-badges span {
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:5px 10px;
  border-radius:999px;
  background: color-mix(in srgb, var(--tb-theme-accent, #21c4ad) 9%, white);
  border:1px solid color-mix(in srgb, var(--tb-theme-accent, #21c4ad) 18%, hsl(var(--border)));
  color:#0f172a;
  font-size:12px;
  font-weight:800;
}

.tb-services-hero {
  position: relative;
  overflow: hidden;
  padding: 94px 0 84px;
  background:
    radial-gradient(circle at 86% 10%, color-mix(in srgb, var(--tb-theme-accent, #21c4ad) 18%, transparent), transparent 34%),
    linear-gradient(135deg, #f8fafc 0%, #eef4fb 100%);
  border-bottom: 1px solid hsl(var(--border));
}
.tb-services-hero-grid {
  display:grid;
  grid-template-columns: minmax(0, 1fr) minmax(360px, 520px);
  gap: 54px;
  align-items:center;
}
.tb-services-hero h1 {
  margin:0 0 22px;
  font-size: clamp(40px, 5.2vw, 72px);
  line-height: .98;
  letter-spacing: -.055em;
  font-weight: 900;
  color:#020617;
}
.tb-services-hero p {
  margin:0 0 28px;
  max-width: 720px;
  color:hsl(var(--muted-foreground));
  font-size:18px;
  line-height:1.7;
  font-weight:500;
}
.tb-services-actions { justify-content:flex-start; }
.tb-services-hero-panel {
  min-height: 360px;
  border: 1px solid hsl(var(--border));
  border-radius: 32px;
  background: rgba(255,255,255,.82);
  box-shadow: var(--shadow-lg);
  display:grid;
  place-items:center;
  padding:28px;
  position:relative;
  overflow:hidden;
}
.tb-services-hero-panel::before {
  content:"";
  position:absolute;
  inset:-40% -20%;
  background: conic-gradient(from 160deg, transparent, color-mix(in srgb, var(--tb-theme-accent, #21c4ad) 22%, transparent), transparent 38%);
  animation: tbServicesSpin 16s linear infinite;
}
@keyframes tbServicesSpin { to { transform: rotate(360deg); } }
.tb-services-orbit {
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns: repeat(2, minmax(120px, 1fr));
  gap:14px;
  width:100%;
}
.tb-services-orbit span {
  min-height:64px;
  display:grid;
  place-items:center;
  text-align:center;
  background:#fff;
  border:1px solid hsl(var(--border));
  border-radius:18px;
  font-weight:900;
  color:#0f172a;
  box-shadow:0 8px 20px rgba(15,23,42,.06);
}
.tb-services-intro-grid { display:grid; grid-template-columns: minmax(0, 1fr) 320px; gap:34px; align-items:center; }
.tb-service-proof {
  background:#fff;
  border:1px solid hsl(var(--border));
  border-radius:24px;
  padding:26px;
  box-shadow:var(--shadow);
}
.tb-service-proof strong { display:block; font-size:50px; line-height:1; letter-spacing:-.06em; color:var(--tb-theme-accent, #21c4ad); }
.tb-service-proof span { display:block; margin-top:10px; color:hsl(var(--muted-foreground)); line-height:1.55; font-weight:650; }
.tb-services-category-list { display:grid; gap:32px; }
.tb-service-category {
  display:grid;
  grid-template-columns: minmax(300px, 42%) minmax(0, 1fr);
  gap:34px;
  align-items:center;
  border:1px solid hsl(var(--border));
  background:#fff;
  border-radius:30px;
  padding:24px;
  box-shadow:0 14px 46px rgba(15,23,42,.08);
  overflow:hidden;
}
.tb-service-category.is-reverse { grid-template-columns: minmax(0, 1fr) minmax(300px, 42%); }
.tb-service-category.is-reverse .tb-service-visual { order:2; }
.tb-service-visual {
  border-radius:24px;
  overflow:hidden;
  background:linear-gradient(135deg, #eff6ff, #fff);
  border:1px solid hsl(var(--border));
  min-height:290px;
  display:grid;
  place-items:center;
}
.tb-service-visual img { width:100%; height:100%; min-height:290px; object-fit:cover; }
.tb-service-content { padding:16px; min-width:0; }
.tb-service-content .tb-icon-chip { width:48px; height:48px; margin-bottom:18px; }
.tb-service-content h2 { margin:0 0 12px; font-size: clamp(26px, 3vw, 38px); line-height:1.08; letter-spacing:-.045em; }
.tb-service-content p { color:hsl(var(--muted-foreground)); font-size:16px; line-height:1.7; margin:0 0 18px; }
.tb-service-bullets { margin:20px 0 22px; padding:0; list-style:none; display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap:10px; }
.tb-service-bullets li { position:relative; padding-left:24px; color:#0f172a; font-weight:700; font-size:14px; line-height:1.45; }
.tb-service-bullets li::before { content:""; position:absolute; left:0; top:.55em; width:9px; height:9px; border-radius:99px; background:var(--tb-theme-accent, #21c4ad); box-shadow:0 0 0 4px color-mix(in srgb, var(--tb-theme-accent, #21c4ad) 14%, transparent); }
.tb-process-grid { display:grid; grid-template-columns: repeat(5, minmax(0,1fr)); gap:16px; }
.tb-process-card { background:#fff; border:1px solid hsl(var(--border)); border-radius:20px; padding:22px; box-shadow:0 8px 24px rgba(15,23,42,.05); }
.tb-process-card span { color:var(--tb-theme-accent, #21c4ad); font-weight:900; font-size:13px; letter-spacing:.12em; }
.tb-process-card h3 { margin:12px 0 8px; font-size:18px; }
.tb-process-card p { margin:0; color:hsl(var(--muted-foreground)); line-height:1.6; font-size:14px; }
.tb-services-final-cta { padding-top:40px; }
.tb-services-cta-card { border-radius:30px; padding:44px; text-align:center; color:#fff; background:linear-gradient(135deg, #0f172a, color-mix(in srgb, var(--tb-theme-accent, #21c4ad) 42%, #0f172a)); box-shadow:var(--shadow-lg); }
.tb-services-cta-card h2 { margin:0 0 12px; font-size:clamp(30px, 4vw, 48px); letter-spacing:-.045em; }
.tb-services-cta-card p { margin:0 auto 24px; max-width:720px; color:rgba(255,255,255,.82); line-height:1.7; }
.tb-services-cta-card .tb-btn-primary { background:#fff !important; color:#0f172a !important; border-color:#fff !important; }

.tb-single-layout {
  grid-template-columns: minmax(var(--tb-article-side-ad-width, 180px), 1fr) minmax(0, 850px) minmax(var(--tb-article-side-ad-width, 180px), 1fr) !important;
}
.tb-article-ad-left,
.tb-article-ad-right {
  position: sticky !important;
  top: var(--tb-article-side-ad-top, 92px) !important;
  min-height: var(--tb-article-side-ad-min-height, 600px) !important;
  width: min(100%, var(--tb-article-side-ad-width, 180px)) !important;
}
.tb-article-ad-left { justify-self:end; }
.tb-article-ad-right { justify-self:start; }

/* When the side rails are NOT active (ads off / no fill / viewport too tight / before JS runs),
   the article must keep its full readable width. The reserved rail gutters otherwise squeeze the
   850px column on ~1181-1266px. Collapse the gutters so the column always centres at up to 850px.
   Scoped to >1180px only (below that the layout is already single-column); rails-active layouts
   use display:block (JS-positioned) and are unaffected. (audit #57) */
@media (min-width: 1181px) {
  body:not(.tb-article-rails-active) .tb-single-layout {
    grid-template-columns: minmax(0, 1fr) minmax(0, 850px) minmax(0, 1fr) !important;
  }
}

@media (max-width: 1180px) {
  .tb-single-layout { grid-template-columns: 1fr !important; }
}
@media (max-width: 1024px) {
  .tb-home-service-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tb-services-hero-grid,
  .tb-services-intro-grid,
  .tb-service-category,
  .tb-service-category.is-reverse { grid-template-columns: 1fr; }
  .tb-service-category.is-reverse .tb-service-visual { order:0; }
  .tb-process-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 700px) {
  .tb-back-to-top { right: var(--tb-back-top-mobile-right, 16px) !important; bottom: var(--tb-back-top-mobile-bottom, 16px) !important; }
  .tb-home-service-grid { grid-template-columns: 1fr; }
  .tb-services-hero { padding:72px 0 62px; }
  .tb-services-hero h1 { font-size: clamp(36px, 13vw, 56px); }
  .tb-services-hero-panel { min-height:280px; border-radius:24px; }
  .tb-services-orbit { grid-template-columns:1fr; }
  .tb-services-orbit span { min-height:52px; }
  .tb-service-category { padding:16px; border-radius:24px; }
  .tb-service-visual, .tb-service-visual img { min-height:210px; }
  .tb-service-content { padding:8px 4px 4px; }
  .tb-service-bullets { grid-template-columns:1fr; }
  .tb-process-grid { grid-template-columns:1fr; }
  .tb-services-cta-card { padding:32px 20px; border-radius:24px; }
}

/* v1.4.9 service design polish: grouped platform badges, premium visuals, cleaner services hero. */
.tb-services-hero {
  background:
    radial-gradient(circle at 88% 12%, color-mix(in srgb, var(--tb-theme-accent, #132a63) 22%, transparent), transparent 34%),
    radial-gradient(circle at 15% 88%, rgba(37, 99, 235, .10), transparent 32%),
    linear-gradient(135deg, #f8fafc 0%, #edf4fb 100%) !important;
}
.tb-services-hero-panel {
  align-content:center;
  gap:18px;
  background: linear-gradient(145deg, rgba(255,255,255,.92), rgba(248,250,252,.82)) !important;
  border: 1px solid rgba(148,163,184,.28) !important;
}
.tb-services-stack-label {
  position:relative;
  z-index:1;
  justify-self:start;
  margin-left:6px;
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:var(--tb-theme-accent, #132a63);
  font-size:12px;
  line-height:1;
  font-weight:900;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.tb-services-stack-label::before {
  content:"";
  width:9px;
  height:9px;
  border-radius:99px;
  background:var(--tb-theme-accent, #132a63);
  box-shadow:0 0 0 6px color-mix(in srgb, var(--tb-theme-accent, #132a63) 12%, transparent);
}
.tb-services-orbit {
  align-self:start;
  gap:12px !important;
}
.tb-services-orbit span {
  min-height:62px !important;
  padding:10px 14px;
  background:rgba(255,255,255,.96) !important;
  border-color:rgba(148,163,184,.26) !important;
  box-shadow:0 12px 24px rgba(15,23,42,.07) !important;
  font-size:15px;
  letter-spacing:-.02em;
}
.tb-services-orbit span:nth-child(1),
.tb-services-orbit span:nth-child(3),
.tb-services-orbit span:nth-child(5) {
  border-color: color-mix(in srgb, var(--tb-theme-accent, #132a63) 28%, rgba(148,163,184,.24)) !important;
}
.tb-service-visual {
  background:
    linear-gradient(135deg, rgba(255,255,255,.92), rgba(239,246,255,.9)),
    radial-gradient(circle at 80% 12%, color-mix(in srgb, var(--tb-theme-accent, #132a63) 16%, transparent), transparent 36%) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.86), 0 14px 38px rgba(15,23,42,.06);
}
.tb-service-visual img {
  display:block;
  object-fit:cover;
  background:#f8fafc;
}
.tb-service-badges span {
  background: color-mix(in srgb, var(--tb-theme-accent, #132a63) 7%, white) !important;
  border-color: color-mix(in srgb, var(--tb-theme-accent, #132a63) 18%, hsl(var(--border))) !important;
}
.tb-service-category:hover {
  border-color: color-mix(in srgb, var(--tb-theme-accent, #132a63) 22%, hsl(var(--border)));
  box-shadow:0 22px 56px rgba(15,23,42,.11);
}
@media (max-width:700px) {
  .tb-services-stack-label { justify-self:center; margin-left:0; }
  .tb-services-orbit { grid-template-columns:1fr 1fr !important; }
  .tb-services-orbit span { min-height:48px !important; font-size:13px; }
}
.tb-service-visual img {
  object-fit: contain !important;
  padding: 0 !important;
}

/* v1.5.0 service editor + content refinements */
.tb-service-description {
  color: hsl(var(--muted-foreground));
  line-height: 1.7;
  font-size: 0.98rem;
}
.tb-service-description p {
  margin: 0 0 0.8rem;
}
.tb-service-description p:last-child {
  margin-bottom: 0;
}

/* v1.5.1 stable: service motion, blog listing ads, and true floating side rails */
.tb-reveal-on-scroll,
.tb-home-service-card,
.tb-service-category,
.tb-process-card,
.tb-services-hero-panel,
.tb-service-proof {
  will-change: transform, opacity;
}
body.tb-animate-ready .tb-reveal-on-scroll {
  opacity: 0;
  transform: translateY(22px) scale(.985);
  transition: opacity .7s ease, transform .7s cubic-bezier(.22, 1, .36, 1), box-shadow .25s ease, border-color .25s ease;
}
body.tb-animate-ready .tb-reveal-on-scroll.is-visible {
  opacity: 1;
  transform: translateY(0) scale(1);
}
.tb-service-category:hover,
.tb-home-service-card:hover,
.tb-process-card:hover {
  transform: translateY(-5px);
  border-color: color-mix(in srgb, var(--tb-theme-accent, #21c4ad) 32%, hsl(var(--border))) !important;
  box-shadow: 0 22px 54px rgba(15,23,42,.12) !important;
}
.tb-service-visual {
  position: relative;
  isolation: isolate;
}
.tb-service-visual::before {
  content:"";
  position:absolute;
  inset:-30%;
  background: radial-gradient(circle, color-mix(in srgb, var(--tb-theme-accent, #21c4ad) 16%, transparent), transparent 54%);
  opacity:.65;
  transform: translate3d(-12%, -8%, 0);
  transition: transform .7s ease, opacity .4s ease;
  z-index:-1;
}
.tb-service-category:hover .tb-service-visual::before {
  opacity:.9;
  transform: translate3d(8%, 6%, 0) scale(1.08);
}
.tb-service-category:hover .tb-service-visual img {
  transform: scale(1.025);
}
.tb-service-visual img {
  transition: transform .7s cubic-bezier(.22, 1, .36, 1);
}
.tb-service-badges span {
  transition: transform .2s ease, background .2s ease, border-color .2s ease;
}
.tb-service-badges span:hover {
  transform: translateY(-2px);
  background: color-mix(in srgb, var(--tb-theme-accent, #21c4ad) 15%, white);
  border-color: color-mix(in srgb, var(--tb-theme-accent, #21c4ad) 34%, hsl(var(--border)));
}
.tb-services-orbit span {
  animation: tbServiceBadgeFloat 5.8s ease-in-out infinite;
}
.tb-services-orbit span:nth-child(2n) { animation-delay: .65s; }
.tb-services-orbit span:nth-child(3n) { animation-delay: 1.2s; }
@keyframes tbServiceBadgeFloat {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-6px); }
}

.tb-listing-inline-ad {
  grid-column: 1 / -1;
  border: 1px solid hsl(var(--border));
  border-radius: 18px;
  background: #fff;
  min-height: 120px;
  padding: 16px;
  box-shadow: 0 8px 24px rgba(15, 23, 42, .055);
  overflow: hidden;
}
.tb-listing-inline-ad ins,
.tb-listing-inline-ad iframe,
.tb-listing-inline-ad img,
.tb-blog-listing-side-ad ins,
.tb-blog-listing-side-ad iframe,
.tb-blog-listing-side-ad img {
  max-width: 100%;
}
.tb-listing-inline-ad-desktop,
.tb-listing-inline-ad-tablet,
.tb-listing-inline-ad-mobile { display: none; }
@media (min-width: 1025px) {
  .tb-listing-inline-ad-desktop { display: block; }
}
@media (min-width: 701px) and (max-width: 1024px) {
  .tb-listing-inline-ad-tablet { display: block; }
}
@media (max-width: 700px) {
  .tb-listing-inline-ad-mobile { display: block; }
}

.tb-side-rail-ad {
  z-index: 35;
}

@media (prefers-reduced-motion: reduce) {
  body.tb-animate-ready .tb-reveal-on-scroll,
  .tb-services-orbit span,
  .tb-service-visual img,
  .tb-service-category,
  .tb-home-service-card,
  .tb-process-card {
    animation: none !important;
    transition: none !important;
    transform: none !important;
    opacity: 1 !important;
  }
}

/* v1.5.2 interaction polish: sticky service jump menu, count-up proof, process flow animation, separate rail controls. */
.tb-services-category-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, 280px);
  gap: 28px;
  align-items: start;
}
.tb-services-category-layout .tb-services-category-list {
  min-width: 0;
}
.tb-service-jump-nav {
  position: sticky;
  top: calc(var(--tb-header-offset, 96px) + 20px);
  order: 2;
  align-self: start;
  background: rgba(255,255,255,.92);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: 1px solid rgba(148,163,184,.24);
  border-radius: 24px;
  box-shadow: 0 18px 48px rgba(15,23,42,.08);
  padding: 16px;
  max-height: calc(100vh - 140px);
  overflow: auto;
}
.admin-bar .tb-service-jump-nav { top: 124px; }
.tb-service-jump-nav strong {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .12em;
  color: hsl(var(--muted-foreground));
  margin-bottom: 12px;
}
.tb-service-jump-nav strong::before {
  content: "";
  width: 9px;
  height: 9px;
  border-radius: 999px;
  background: var(--tb-theme-accent, #21c4ad);
  box-shadow: 0 0 0 6px color-mix(in srgb, var(--tb-theme-accent, #21c4ad) 12%, transparent);
}
.tb-service-jump-nav div {
  display: grid;
  gap: 7px;
}
.tb-service-jump-nav a {
  display: block;
  text-decoration: none;
  color: #0f172a;
  font-weight: 800;
  font-size: 13px;
  line-height: 1.25;
  padding: 10px 12px;
  border-radius: 14px;
  border: 1px solid transparent;
  background: rgba(248,250,252,.8);
  transition: transform .18s ease, border-color .18s ease, background .18s ease, color .18s ease;
}
.tb-service-jump-nav a.is-active,
.tb-service-jump-nav a[aria-current="true"] {
  color: var(--tb-theme-accent, #21c4ad);
  border-color: color-mix(in srgb, var(--tb-theme-accent, #21c4ad) 24%, hsl(var(--border)));
  background: color-mix(in srgb, var(--tb-theme-accent, #21c4ad) 8%, #fff);
  transform: translateX(-2px);
}
@media (hover: hover) and (pointer: fine) {
  .tb-service-jump-nav a:hover {
    color: var(--tb-theme-accent, #21c4ad);
    border-color: color-mix(in srgb, var(--tb-theme-accent, #21c4ad) 24%, hsl(var(--border)));
    background: color-mix(in srgb, var(--tb-theme-accent, #21c4ad) 8%, #fff);
    transform: translateX(-2px);
  }
}
.tb-service-jump-nav a:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--tb-theme-accent, #21c4ad) 54%, transparent);
  outline-offset: 3px;
}
.tb-service-proof strong span[data-tb-count-up] {
  display: inline-block;
  min-width: 1.55em;
  font-variant-numeric: tabular-nums;
}
body.tb-animations-enabled .tb-service-proof strong span[data-tb-count-up] {
  filter: drop-shadow(0 10px 20px color-mix(in srgb, var(--tb-theme-accent, #21c4ad) 18%, transparent));
}
.tb-process-grid {
  position: relative;
}
@media (min-width: 1025px) {
  .tb-process-grid::before {
    content: "";
    position: absolute;
    left: 9%;
    right: 9%;
    top: 30px;
    height: 2px;
    background: linear-gradient(90deg, color-mix(in srgb, var(--tb-theme-accent, #21c4ad) 10%, transparent), color-mix(in srgb, var(--tb-theme-accent, #21c4ad) 50%, transparent), color-mix(in srgb, var(--tb-theme-accent, #21c4ad) 10%, transparent));
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform 1.1s cubic-bezier(.22,1,.36,1);
    pointer-events: none;
  }
  body.tb-animate-ready .tb-process-grid.is-visible::before,
  .tb-process-grid.is-visible::before {
    transform: scaleX(1);
  }
}
.tb-process-card {
  position: relative;
  isolation: isolate;
  overflow: hidden;
}
.tb-process-card::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 18% 10%, color-mix(in srgb, var(--tb-theme-accent, #21c4ad) 12%, transparent), transparent 44%);
  opacity: 0;
  transition: opacity .25s ease;
  z-index: -1;
}
.tb-process-card:hover::before { opacity: 1; }
.tb-process-card span {
  display: inline-grid;
  place-items: center;
  min-width: 38px;
  height: 32px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--tb-theme-accent, #21c4ad) 9%, #fff);
  border: 1px solid color-mix(in srgb, var(--tb-theme-accent, #21c4ad) 20%, hsl(var(--border)));
}
body.tb-animations-enabled .tb-process-card.is-visible span {
  animation: tbProcessBadgePop .55s cubic-bezier(.22,1,.36,1) both;
}
@keyframes tbProcessBadgePop {
  0% { transform: scale(.82); opacity: .35; }
  70% { transform: scale(1.08); opacity: 1; }
  100% { transform: scale(1); opacity: 1; }
}
body.tb-animations-disabled .tb-services-orbit span,
body.tb-animations-disabled .tb-service-visual::before,
body.tb-animations-disabled .tb-process-card.is-visible span {
  animation: none !important;
}
@media (max-width: 1180px) {
  .tb-services-category-layout { grid-template-columns: 1fr; }
  .tb-service-jump-nav {
    position: sticky;
    top: 72px;
    z-index: 20;
    order: -1;
    max-height: none;
    overflow: visible;
    padding: 12px;
    border-radius: 20px;
  }
  .admin-bar .tb-service-jump-nav { top: 104px; }
  .tb-service-jump-nav div {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding-bottom: 2px;
    scroll-snap-type: x proximity;
  }
  .tb-service-jump-nav a {
    white-space: nowrap;
    scroll-snap-align: start;
  }
}
@media (max-width: 700px) {
  .tb-service-jump-nav { top: 64px; margin-left: -4px; margin-right: -4px; }
  .admin-bar .tb-service-jump-nav { top: 96px; }
  .tb-service-jump-nav strong { margin-bottom: 10px; }
  .tb-service-jump-nav a { font-size: 12px; padding: 9px 10px; }
}
@media (prefers-reduced-motion: reduce) {
  .tb-process-grid::before,
  .tb-service-jump-nav a,
  .tb-process-card::before,
  .tb-process-card span {
    animation: none !important;
    transition: none !important;
    transform: none !important;
  }
}

/* v1.5.3 stable: moving desktop services navigator and stronger scroll spy state. */
.tb-service-jump-nav-shell {
  order: 2;
  position: relative;
  align-self: stretch;
  min-width: 0;
}
.tb-service-jump-nav a[aria-current="true"] {
  color: var(--tb-theme-accent, #21c4ad);
  border-color: color-mix(in srgb, var(--tb-theme-accent, #21c4ad) 28%, hsl(var(--border)));
  background: color-mix(in srgb, var(--tb-theme-accent, #21c4ad) 10%, #fff);
}
@media (min-width: 1181px) {
  .tb-services-category-layout {
    align-items: stretch;
  }
  .tb-services-category-layout .tb-services-category-list {
    align-self: start;
  }
  .tb-service-jump-nav-shell {
    min-height: 100%;
  }
  .tb-service-jump-nav {
    will-change: left, top, width;
  }
  .tb-service-jump-nav.is-fixed {
    position: fixed !important;
    top: calc(var(--tb-header-offset, 96px) + 20px) !important;
    left: var(--tb-service-nav-fixed-left, auto) !important;
    right: auto !important;
    width: var(--tb-service-nav-fixed-width, 280px) !important;
    z-index: 42;
    max-height: calc(100vh - var(--tb-header-offset, 96px) - 52px);
  }
  .admin-bar .tb-service-jump-nav.is-fixed {
    top: 124px !important;
    max-height: calc(100vh - 156px);
  }
  .tb-service-jump-nav.is-bottom {
    position: absolute !important;
    top: auto !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
  }
}
@media (max-width: 1180px) {
  .tb-service-jump-nav-shell {
    order: -1;
    position: sticky;
    top: 72px;
    z-index: 20;
  }
  .admin-bar .tb-service-jump-nav-shell {
    top: 104px;
  }
  .tb-service-jump-nav-shell .tb-service-jump-nav {
    position: static !important;
    top: auto !important;
    width: auto !important;
  }
}
@media (max-width: 700px) {
  .tb-service-jump-nav-shell {
    top: 64px;
    margin-left: -4px;
    margin-right: -4px;
  }
  .admin-bar .tb-service-jump-nav-shell {
    top: 96px;
  }
}

/* v1.5.4 stable: wider service cards, centered moving service nav, edge rail controls, and rail start polish. */
@media (min-width: 1181px) {
  #service-categories > .tb-container.tb-services-category-layout {
    width: min(100% - 56px, 1420px);
    max-width: 1420px;
    grid-template-columns: minmax(0, 1fr) minmax(270px, 320px);
    gap: 44px;
  }
  .tb-services-category-list {
    gap: 40px;
  }
  .tb-service-category {
    padding: 34px;
    gap: 46px;
    grid-template-columns: minmax(360px, 43%) minmax(0, 1fr);
  }
  .tb-service-category.is-reverse {
    grid-template-columns: minmax(0, 1fr) minmax(360px, 43%);
  }
  .tb-service-content {
    padding: 22px;
  }
  .tb-service-jump-nav {
    padding: 18px;
  }
  .tb-service-jump-nav.is-fixed {
    top: 50% !important;
    transform: translateY(-50%);
    max-height: calc(100vh - 120px);
  }
  .admin-bar .tb-service-jump-nav.is-fixed {
    top: calc(50% + 16px) !important;
    max-height: calc(100vh - 148px);
  }
  .tb-service-jump-nav.is-bottom {
    transform: none !important;
  }
}

.tb-side-rail-ad.tb-rail-managed {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(10px);
  transition: opacity .2s ease, transform .2s ease, visibility .2s ease;
}
@media (prefers-reduced-motion: reduce) {
  .tb-side-rail-ad.tb-rail-managed {
    transition: none !important;
    transform: none !important;
  }
}

/* v1.5.5 stable: smoother service navigator and rail start behavior. */
@media (min-width: 1181px) {
  .tb-service-jump-nav-shell {
    position: sticky;
    top: 50vh;
    transform: translateY(-50%);
    align-self: start;
    max-height: calc(100vh - 96px);
    transition: none !important;
  }
  .admin-bar .tb-service-jump-nav-shell {
    top: calc(50vh + 16px);
  }
  .tb-service-jump-nav-shell .tb-service-jump-nav,
  .tb-service-jump-nav,
  .tb-service-jump-nav.is-fixed,
  .tb-service-jump-nav.is-bottom {
    position: static !important;
    top: auto !important;
    bottom: auto !important;
    left: auto !important;
    right: auto !important;
    width: 100% !important;
    transform: none !important;
    will-change: auto !important;
  }
  .tb-service-jump-nav {
    max-height: min(680px, calc(100vh - 130px));
    overflow: auto;
    scroll-behavior: smooth;
  }
  .admin-bar .tb-service-jump-nav {
    max-height: min(660px, calc(100vh - 156px));
  }
}

.tb-side-rail-ad.tb-rail-managed {
  /* Rails should begin only after the blog main content starts, then stay available while scrolling. */
  transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
}

/* v1.5.6 stable: reliable smooth desktop Browse Services navigator. */
@media (min-width: 1181px) {
  .tb-service-jump-nav-shell {
    order: 2 !important;
    position: relative !important;
    top: auto !important;
    transform: none !important;
    align-self: stretch !important;
    min-height: 100% !important;
  }
  .tb-service-jump-nav,
  .tb-service-jump-nav.is-fixed,
  .tb-service-jump-nav.is-bottom {
    position: sticky !important;
    top: clamp(128px, 30vh, 260px) !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    width: auto !important;
    transform: none !important;
    z-index: 30 !important;
    max-height: min(680px, calc(100vh - clamp(128px, 30vh, 260px) - 28px)) !important;
    overflow: auto !important;
    scroll-behavior: smooth;
  }
  .admin-bar .tb-service-jump-nav,
  .admin-bar .tb-service-jump-nav.is-fixed,
  .admin-bar .tb-service-jump-nav.is-bottom {
    top: clamp(150px, calc(30vh + 32px), 292px) !important;
    max-height: min(650px, calc(100vh - clamp(150px, calc(30vh + 32px), 292px) - 28px)) !important;
  }
}

/* v1.5.7 stable: single shared blog ad code, visible rail start, and JS-managed service navigator. */
@media (min-width: 1181px) {
  .tb-service-jump-nav-shell {
    order: 2 !important;
    position: relative !important;
    top: auto !important;
    transform: none !important;
    align-self: stretch !important;
  }
  .tb-service-jump-nav {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    width: 100% !important;
    transform: none !important;
    z-index: 30 !important;
    max-height: min(680px, calc(100vh - 120px)) !important;
    overflow: auto !important;
    scroll-behavior: smooth;
  }
  .tb-service-jump-nav.is-fixed {
    position: fixed !important;
    top: var(--tb-service-nav-fixed-top, 160px) !important;
    left: var(--tb-service-nav-fixed-left, auto) !important;
    right: auto !important;
    bottom: auto !important;
    width: var(--tb-service-nav-fixed-width, 280px) !important;
    max-height: var(--tb-service-nav-max-height, calc(100vh - 190px)) !important;
    transform: none !important;
    z-index: 60 !important;
  }
  .tb-service-jump-nav.is-bottom {
    position: absolute !important;
    top: auto !important;
    bottom: 0 !important;
    left: 0 !important;
    right: auto !important;
    width: 100% !important;
    transform: none !important;
    z-index: 30 !important;
  }
}
.tb-side-rail-ad.tb-rail-managed {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  transform: none !important;
}
@media (min-width: 1181px) {
  .tb-side-rail-ad.tb-rail-managed {
    transition: top .12s linear !important;
  }
}
@media (prefers-reduced-motion: reduce) {
  .tb-side-rail-ad.tb-rail-managed {
    transition: none !important;
  }
}

/* v1.6.4 stable: desktop Browse Services stays visible at top, middle and end. */
@media (min-width: 1181px) {
  .tb-service-jump-nav {
    transition: opacity .18s ease, visibility .18s ease !important;
  }
  .tb-service-jump-nav.is-hidden {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
  }
  .tb-service-jump-nav.is-fixed.is-hidden {
    position: fixed !important;
  }
}
@media (prefers-reduced-motion: reduce) {
  .tb-service-jump-nav {
    transition: none !important;
  }
}

/* v1.5.9 stable: smooth tablet/mobile service menu and extra homepage/about animations. */
.tb-analysis-copy.tb-reveal-on-scroll,
.tb-subscribe-card.tb-reveal-on-scroll,
.tb-mini-card.tb-reveal-on-scroll,
.tb-coverage-item.tb-reveal-on-scroll {
  will-change: transform, opacity;
}
body.tb-animate-ready .tb-mini-card.tb-reveal-on-scroll,
body.tb-animate-ready .tb-coverage-item.tb-reveal-on-scroll {
  transform: translateY(18px) scale(.99);
}
body.tb-animate-ready .tb-mini-card.tb-reveal-on-scroll.is-visible,
body.tb-animate-ready .tb-coverage-item.tb-reveal-on-scroll.is-visible {
  transform: translateY(0) scale(1);
}
.tb-mini-card,
.tb-coverage-item {
  transition: transform .28s cubic-bezier(.22,1,.36,1), box-shadow .28s ease, border-color .28s ease, background .28s ease;
}
.tb-mini-card:hover,
.tb-coverage-item:hover {
  transform: translateY(-4px);
  border-color: color-mix(in srgb, var(--tb-theme-accent, #21c4ad) 28%, hsl(var(--border))) !important;
  box-shadow: 0 18px 44px rgba(15,23,42,.10);
}
.tb-mini-card .tb-icon-chip,
.tb-coverage-item .tb-icon-chip {
  transition: transform .28s cubic-bezier(.22,1,.36,1), background .28s ease, color .28s ease;
}
.tb-mini-card:hover .tb-icon-chip,
.tb-coverage-item:hover .tb-icon-chip {
  transform: scale(1.06) rotate(-3deg);
  background: color-mix(in srgb, var(--tb-theme-accent, #21c4ad) 13%, #fff) !important;
  color: var(--tb-theme-accent, #21c4ad) !important;
}

@media (max-width: 1180px) {
  .tb-service-jump-nav-shell {
    order: -1 !important;
    position: relative !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    transform: none !important;
    z-index: 5 !important;
    margin: 0 0 22px !important;
    min-height: 0 !important;
  }
  .admin-bar .tb-service-jump-nav-shell {
    top: auto !important;
  }
  .tb-service-jump-nav-shell .tb-service-jump-nav,
  .tb-service-jump-nav,
  .tb-service-jump-nav.is-fixed,
  .tb-service-jump-nav.is-bottom,
  .tb-service-jump-nav.is-hidden {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    width: 100% !important;
    max-height: none !important;
    overflow: visible !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: none !important;
    transition: border-color .2s ease, box-shadow .2s ease !important;
  }
  .tb-service-jump-nav {
    padding: 14px !important;
    border-radius: 22px !important;
  }
  .tb-service-jump-nav div {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 9px !important;
    overflow: visible !important;
    padding-bottom: 0 !important;
    scroll-snap-type: none !important;
  }
  .tb-service-jump-nav a {
    white-space: normal !important;
    scroll-snap-align: none !important;
    min-height: 46px;
    display: flex !important;
    align-items: center;
  }
}
@media (max-width: 700px) {
  .tb-service-jump-nav-shell {
    margin-left: 0 !important;
    margin-right: 0 !important;
    margin-bottom: 18px !important;
  }
  .tb-service-jump-nav {
    padding: 12px !important;
  }
  .tb-service-jump-nav div {
    grid-template-columns: 1fr !important;
    gap: 8px !important;
  }
  .tb-service-jump-nav a {
    font-size: 12.5px !important;
    line-height: 1.25 !important;
    min-height: 42px;
    padding: 10px 12px !important;
  }
}
@media (prefers-reduced-motion: reduce) {
  .tb-mini-card,
  .tb-coverage-item,
  .tb-mini-card .tb-icon-chip,
  .tb-coverage-item .tb-icon-chip {
    animation: none !important;
    transition: none !important;
    transform: none !important;
  }
}

/* v1.6.6 stable: final Browse Services behavior. Visible at the top, fixed while browsing, parked at the last service card, never hidden. */
@media (min-width: 1181px) {
  .tb-service-jump-nav,
  .tb-service-jump-nav.is-fixed,
  .tb-service-jump-nav.is-bottom,
  .tb-service-jump-nav.is-hidden {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
  }
  .tb-service-jump-nav.is-bottom {
    position: absolute !important;
    top: auto !important;
    bottom: 0 !important;
    left: 0 !important;
    width: 100% !important;
    transform: none !important;
  }
}

/* v1.6.7 stable: restore simple homepage mini-card hover, no popout/lift. */
.tb-mini-card {
  box-shadow: none !important;
}
.tb-mini-card:hover {
  transform: none !important;
  box-shadow: none !important;
  background: hsl(var(--card)) !important;
  border-color: hsl(var(--border) / .65) !important;
}
.tb-mini-card .tb-icon-chip {
  background: hsl(var(--muted)) !important;
  border-color: hsl(var(--border) / .65) !important;
  color: hsl(var(--foreground)) !important;
}
.tb-mini-card:hover .tb-icon-chip {
  transform: none !important;
  background: color-mix(in srgb, var(--tb-theme-accent, #21c4ad) 12%, #fff) !important;
  border-color: color-mix(in srgb, var(--tb-theme-accent, #21c4ad) 28%, hsl(var(--border))) !important;
  color: var(--tb-theme-accent, #21c4ad) !important;
}
@media (prefers-reduced-motion: reduce) {
  .tb-mini-card,
  .tb-mini-card .tb-icon-chip {
    transition: none !important;
  }
}

/* v1.6.8 stable: Browse Services parks beside the last service card and never disappears. */
@media (min-width: 1181px) {
  .tb-service-jump-nav-shell {
    position: relative !important;
  }
  .tb-service-jump-nav,
  .tb-service-jump-nav.is-fixed,
  .tb-service-jump-nav.is-bottom,
  .tb-service-jump-nav.is-hidden {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
  }
  .tb-service-jump-nav.is-bottom {
    position: absolute !important;
    top: var(--tb-service-nav-park-top, auto) !important;
    bottom: auto !important;
    left: 0 !important;
    right: auto !important;
    width: 100% !important;
    transform: none !important;
  }
}

/* v1.7.0 stable: Areas of Coverage icons return to clean black default, theme color only on hover, no popout/shadow. */
.tb-coverage-item {
  transform: none !important;
  box-shadow: none !important;
  background: transparent !important;
  border-color: transparent !important;
}
.tb-coverage-item:hover {
  transform: none !important;
  box-shadow: none !important;
  background: transparent !important;
  border-color: transparent !important;
}
.tb-coverage-item .tb-icon-chip {
  background: #ffffff !important;
  border: 1px solid #020817 !important;
  color: #020817 !important;
  box-shadow: none !important;
  transform: none !important;
  transition: background .2s ease, color .2s ease, border-color .2s ease !important;
}
.tb-coverage-item .tb-icon-chip svg {
  color: inherit !important;
  stroke: currentColor !important;
}
.tb-coverage-item:hover .tb-icon-chip {
  background: color-mix(in srgb, var(--tb-theme-accent, #1e2a78) 10%, #ffffff) !important;
  border-color: var(--tb-theme-accent, #1e2a78) !important;
  color: var(--tb-theme-accent, #1e2a78) !important;
  transform: none !important;
  box-shadow: none !important;
}
@media (prefers-reduced-motion: reduce) {
  .tb-coverage-item,
  .tb-coverage-item .tb-icon-chip {
    transition: none !important;
  }
}

/* v1.7.0 stable: filtered blog ads stay after visible posts only */
.tb-listing-inline-ad.is-filter-hidden {
  display: none !important;
}

.tb-filter-pill:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--tb-theme-accent, #2437d8) 35%, transparent);
  outline-offset: 3px;
}

/* v1.7.2 stable: current feature polish before new features.
   Removes newsletter stack visual, fixes mobile/tablet gutters and touch behavior,
   and makes service navigation reliable on tablet/mobile. */
.tb-subscribe-card.tb-subscribe-hub {
  max-width: 560px !important;
  width: 100% !important;
  margin-inline: auto !important;
  padding: clamp(22px, 3vw, 32px) !important;
  display: block !important;
  gap: 0 !important;
  border-radius: 22px !important;
  box-shadow: 0 18px 44px rgba(15, 23, 42, .07) !important;
  transition: transform .28s ease, border-color .28s ease, box-shadow .28s ease !important;
}
.tb-subscribe-card.tb-subscribe-hub::before {
  inset: 12px !important;
  border-radius: 17px !important;
}
.tb-subscribe-content { position: relative; z-index: 1; }
.tb-subscribe-card.tb-subscribe-hub:hover {
  transform: translateY(-3px);
  box-shadow: 0 22px 54px rgba(15, 23, 42, .09) !important;
}
.tb-subscribe-hub .tb-subscribe-form {
  grid-template-columns: minmax(0, 1fr) auto !important;
}
@media (max-width: 1179px) {
  .tb-analysis-grid {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 30px !important;
  }
  .tb-subscribe-card.tb-subscribe-hub {
    max-width: 720px !important;
    justify-self: stretch !important;
  }
  .tb-service-jump-nav-shell {
    position: static !important;
    top: auto !important;
    transform: none !important;
    order: -1 !important;
    width: 100% !important;
    margin: 0 0 22px !important;
    z-index: auto !important;
  }
  .tb-service-jump-nav,
  .tb-service-jump-nav.is-fixed,
  .tb-service-jump-nav.is-bottom,
  .tb-service-jump-nav.is-hidden {
    position: relative !important;
    top: auto !important;
    bottom: auto !important;
    left: auto !important;
    right: auto !important;
    width: 100% !important;
    max-height: none !important;
    overflow: visible !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: none !important;
  }
  .tb-service-jump-nav div {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
    overflow: visible !important;
    padding: 0 !important;
    scroll-snap-type: none !important;
  }
  .tb-service-jump-nav a {
    white-space: normal !important;
    min-height: 44px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    padding: 11px 12px !important;
  }
}
@media (max-width: 720px) {
  .tb-section-muted { overflow: visible !important; }
  .tb-analysis-grid { gap: 24px !important; }
  .tb-subscribe-card.tb-subscribe-hub {
    width: calc(100% - 4px) !important;
    max-width: calc(100vw - 32px) !important;
    margin: 0 auto !important;
    padding: 22px 18px !important;
    border-radius: 20px !important;
    box-shadow: 0 12px 28px rgba(15, 23, 42, .055) !important;
  }
  .tb-subscribe-card.tb-subscribe-hub::before {
    inset: 10px !important;
    border-radius: 16px !important;
  }
  .tb-subscribe-card.tb-subscribe-hub:hover { transform: none !important; }
  .tb-subscribe-card.tb-subscribe-hub h3 {
    font-size: clamp(25px, 8vw, 32px) !important;
    line-height: 1.08 !important;
  }
  .tb-subscribe-card.tb-subscribe-hub p {
    font-size: 15.5px !important;
    line-height: 1.62 !important;
  }
  .tb-subscribe-points { gap: 9px !important; }
  .tb-subscribe-hub .tb-subscribe-form {
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }
  .tb-subscribe-hub .tb-subscribe-form input,
  .tb-subscribe-hub .tb-subscribe-form button {
    width: 100% !important;
    min-width: 0 !important;
  }
  .tb-service-jump-nav-shell { margin-bottom: 18px !important; }
  .tb-service-jump-nav div {
    grid-template-columns: 1fr !important;
  }
}
@media (hover: none) and (pointer: coarse) {
  .tb-btn:hover,
  .tb-card:hover,
  .tb-service-category:hover,
  .tb-subscribe-card.tb-subscribe-hub:hover,
  .tb-mini-card:hover,
  .tb-coverage-item:hover {
    transform: none !important;
  }
  .tb-service-jump-nav a,
  .tb-filter-pill,
  .tb-btn,
  .tb-subscribe-form button {
    -webkit-tap-highlight-color: color-mix(in srgb, var(--tb-theme-accent, #2437d8) 16%, transparent);
    touch-action: manipulation;
  }
}
@media (prefers-reduced-motion: reduce) {
  .tb-subscribe-card.tb-subscribe-hub {
    transition: none !important;
    transform: none !important;
  }
}

/* v1.7.6 stable: tablet centering, legal pages, lightweight cookie notice, logo-friendly defaults. */
@media (min-width: 721px) and (max-width: 1179px) {
  .tb-analysis-copy,
  .tb-subscribe-card.tb-subscribe-hub {
    justify-self: center !important;
    width: min(100%, 760px) !important;
  }
  .tb-analysis-copy {
    text-align: left !important;
  }
  .tb-analysis-copy .tb-lead,
  .tb-analysis-copy .tb-stack {
    max-width: 760px !important;
  }
  .tb-subscribe-card.tb-subscribe-hub {
    margin-top: 4px !important;
  }
}
@media (max-width: 720px) {
  .tb-section-muted .tb-container {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }
  .tb-subscribe-card.tb-subscribe-hub {
    max-width: 100% !important;
    width: 100% !important;
  }
}
.tb-legal-page .tb-page-hero {
  background: linear-gradient(135deg, hsl(var(--muted)) 0%, color-mix(in srgb, var(--tb-theme-accent, #2437d8) 7%, #fff) 100%);
  border-bottom: 1px solid hsl(var(--border));
}
.tb-legal-page .tb-page-hero h1 {
  letter-spacing: -.045em;
}
.tb-legal-shell {
  max-width: 980px;
  margin: 0 auto;
  display: grid;
  gap: 18px;
}
.tb-legal-shell > p:first-child {
  border: 1px solid hsl(var(--border));
  background: #fff;
  border-radius: 18px;
  padding: 22px 24px;
  margin: 0 0 4px !important;
  box-shadow: 0 12px 34px rgba(15, 23, 42, .055);
}
.tb-legal-shell h2 {
  margin: 22px 0 0 !important;
  padding: 20px 22px 0;
  border: 1px solid hsl(var(--border));
  border-bottom: 0;
  border-radius: 18px 18px 0 0;
  background: #fff;
  box-shadow: 0 12px 34px rgba(15, 23, 42, .045);
  font-size: clamp(22px, 2vw, 30px);
  letter-spacing: -.035em;
}
.tb-legal-shell h2 + p {
  margin: 0 !important;
  padding: 8px 22px 22px;
  border: 1px solid hsl(var(--border));
  border-top: 0;
  border-radius: 0 0 18px 18px;
  background: #fff;
  color: hsl(var(--muted-foreground));
  line-height: 1.75;
  box-shadow: 0 18px 38px rgba(15, 23, 42, .04);
}

/* v1.7.8 stable: legal action cleanup, stable subscribe card, and silent fallback assets.
   v2.2.19: transform/animation reset removed so the Briefing Hub can float smoothly. */

.tb-legal-hero {
  background:
    radial-gradient(circle at 82% 12%, color-mix(in srgb, var(--tb-theme-accent, #2437d8) 15%, transparent) 0, transparent 34%),
    linear-gradient(135deg, #f8fafc 0%, #eef4fb 100%) !important;
  border-bottom: 1px solid hsl(var(--border));
}

.tb-page-hero-text {
  max-width: 720px;
  margin: 14px 0 0;
  color: hsl(var(--muted-foreground));
  font-size: clamp(16px, 1.45vw, 19px);
  line-height: 1.7;
}

.tb-legal-section {
  background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
}

.tb-legal-prose {
  max-width: 1080px !important;
  margin: 0 auto;
}

.tb-legal-shell {
  max-width: 1040px !important;
  margin: 0 auto !important;
  display: block !important;
  padding: clamp(26px, 4.2vw, 54px) !important;
  border: 1px solid hsl(var(--border));
  border-radius: 30px;
  background:
    radial-gradient(circle at 92% 0%, color-mix(in srgb, var(--tb-theme-accent, #2437d8) 7%, transparent) 0, transparent 34%),
    #ffffff;
  box-shadow: 0 24px 70px rgba(15, 23, 42, .075);
}

.tb-legal-shell > p:first-child,
.tb-legal-shell p,
.tb-legal-shell h2,
.tb-legal-shell h2 + p {
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.tb-legal-shell > p:first-child {
  margin: 0 0 24px !important;
  padding: 0 0 24px !important;
  border-bottom: 1px solid hsl(var(--border)) !important;
  color: hsl(var(--muted-foreground));
  font-size: 16px;
  line-height: 1.8;
}

.tb-legal-shell h2 {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 30px 0 10px !important;
  padding: 0 !important;
  color: hsl(var(--foreground));
  font-size: clamp(22px, 2vw, 30px) !important;
  line-height: 1.14;
  letter-spacing: -.04em;
}

.tb-legal-shell h2::before {
  content: '';
  width: 11px;
  height: 11px;
  border-radius: 99px;
  background: var(--tb-theme-accent, #2437d8);
  box-shadow: 0 0 0 6px color-mix(in srgb, var(--tb-theme-accent, #2437d8) 11%, transparent);
  flex: 0 0 auto;
}

.tb-legal-shell h2 + p,
.tb-legal-shell p {
  margin: 0 0 16px !important;
  padding: 0 !important;
  color: hsl(var(--muted-foreground)) !important;
  font-size: 16px;
  line-height: 1.8 !important;
}

.tb-legal-actions {
  max-width: 1040px;
  margin: 26px auto 0;
  display: flex;
  justify-content: center;
}

@media (max-width: 720px) {
  .tb-legal-shell {
    padding: 24px 18px !important;
    border-radius: 22px;
  }
  .tb-legal-shell h2 {
    font-size: 22px !important;
  }
  .tb-page-hero-text {
    font-size: 15.5px;
  }
}

@media (prefers-reduced-motion: reduce) {
}

/* v1.7.8 final cleanup: legal pages use one bottom action only. */
.tb-legal-actions {
  max-width: 1040px;
  margin: 34px auto 0;
  display: flex;
  justify-content: center;
}

.tb-legal-actions .tb-btn {
  min-height: 48px;
  padding: 0 22px;
  border-radius: 999px;
  color: #ffffff !important;
  background: var(--tb-theme-accent, #2437d8) !important;
  border: 1px solid color-mix(in srgb, var(--tb-theme-accent, #2437d8) 84%, #000 16%) !important;
  box-shadow: 0 14px 34px color-mix(in srgb, var(--tb-theme-accent, #2437d8) 24%, transparent);
}

.tb-legal-actions .tb-btn:hover {
  transform: translateY(-1px);
  color: #ffffff !important;
}

@media (hover: none), (pointer: coarse) {
  .tb-legal-actions .tb-btn:hover {
    transform: none;
  }
}

/* v1.8.2 stable: restore preferred Briefing Hub design from original homepage. */
.tb-subscribe-card.tb-subscribe-hub {
  max-width: 720px !important;
  width: min(100%, 720px) !important;
  margin-inline: auto !important;
  padding: clamp(26px, 3vw, 36px) !important;
  border-radius: 24px !important;
  border: 1px solid hsl(var(--border)) !important;
  background:
    radial-gradient(circle at 88% 10%, color-mix(in srgb, var(--tb-theme-accent, #2437d8) 16%, transparent) 0, transparent 36%),
    linear-gradient(145deg, #ffffff 0%, #f8fbff 100%) !important;
  box-shadow: 0 22px 56px rgba(15, 23, 42, .075) !important;
  /* v2.2.19: transform/animation are left free for the smooth float animation. */
  overflow: hidden !important;
}
.tb-subscribe-card.tb-subscribe-hub::before {
  content: "" !important;
  position: absolute !important;
  inset: 12px !important;
  border-radius: 18px !important;
  border: 1px solid color-mix(in srgb, var(--tb-theme-accent, #2437d8) 20%, hsl(var(--border))) !important;
  pointer-events: none !important;
}
.tb-subscribe-card.tb-subscribe-hub:hover,
body.tb-animate-ready .tb-subscribe-card.tb-subscribe-hub.is-visible {
  /* v2.2.19: keep the card stable but do not kill the CSS float animation. */
}
.tb-subscribe-card.tb-subscribe-hub h3 {
  font-size: clamp(30px, 3vw, 42px) !important;
  line-height: 1.08 !important;
  margin: 18px 0 14px !important;
  letter-spacing: -.045em !important;
}
.tb-subscribe-card.tb-subscribe-hub p {
  max-width: 620px !important;
  margin: 0 0 20px !important;
  font-size: clamp(16px, 1.35vw, 19px) !important;
  line-height: 1.65 !important;
}
.tb-subscribe-points {
  list-style: none !important;
  margin: 0 0 24px !important;
  padding: 0 !important;
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 10px 26px !important;
}
.tb-subscribe-points li {
  display: flex !important;
  align-items: center !important;
  gap: 9px !important;
  margin: 0 !important;
  padding: 0 !important;
  color: hsl(var(--muted-foreground)) !important;
  font-weight: 800 !important;
  line-height: 1.25 !important;
}
.tb-subscribe-points li::marker { content: "" !important; }
.tb-subscribe-points li > span {
  flex: 0 0 auto !important;
  width: 13px !important;
  height: 13px !important;
  border-radius: 999px !important;
  background: var(--tb-theme-accent, #2437d8) !important;
  box-shadow: 0 0 0 5px color-mix(in srgb, var(--tb-theme-accent, #2437d8) 13%, transparent) !important;
}
.tb-subscribe-hub .tb-subscribe-form {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 12px !important;
  align-items: stretch !important;
}
.tb-subscribe-hub .tb-subscribe-form input {
  min-height: 58px !important;
  border-radius: 999px !important;
  padding-inline: 26px !important;
  font-size: 16px !important;
}
.tb-subscribe-hub .tb-subscribe-form button {
  min-height: 58px !important;
  border-radius: 999px !important;
  padding-inline: 30px !important;
  box-shadow: 0 18px 36px color-mix(in srgb, var(--tb-theme-accent, #2437d8) 24%, transparent) !important;
}
@media (max-width: 720px) {
  .tb-subscribe-card.tb-subscribe-hub {
    width: 100% !important;
    max-width: 100% !important;
    padding: 24px 18px !important;
    border-radius: 20px !important;
  }
  .tb-subscribe-card.tb-subscribe-hub::before {
    inset: 10px !important;
    border-radius: 16px !important;
  }
  .tb-subscribe-card.tb-subscribe-hub h3 {
    font-size: clamp(27px, 8vw, 34px) !important;
  }
  .tb-subscribe-points {
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }
  .tb-subscribe-hub .tb-subscribe-form {
    grid-template-columns: 1fr !important;
  }
  .tb-subscribe-hub .tb-subscribe-form input,
  .tb-subscribe-hub .tb-subscribe-form button {
    width: 100% !important;
  }
}

/* v1.8.4 stable: global-color cleanup, Briefing Hub animated accent wash and toast-style subscribe messages. */
.tb-subscribe-card.tb-subscribe-hub {
  position: relative !important;
  background:
    linear-gradient(145deg, rgba(255,255,255,.96), rgba(248,251,255,.90)) !important;
}
.tb-subscribe-card.tb-subscribe-hub::after {
  content: "";
  position: absolute;
  width: 320px;
  height: 320px;
  right: -105px;
  top: -120px;
  border-radius: 999px;
  background: radial-gradient(circle, color-mix(in srgb, var(--tb-theme-accent, #2437d8) 22%, transparent) 0%, color-mix(in srgb, var(--tb-theme-accent, #2437d8) 10%, transparent) 38%, transparent 70%);
  filter: blur(2px);
  opacity: .92;
  transform: translate3d(0,0,0);
  animation: tbBriefingAccentOrbit 14s ease-in-out infinite;
  pointer-events: none;
  z-index: 0;
}
.tb-subscribe-card.tb-subscribe-hub::before { z-index: 1; }
.tb-subscribe-card.tb-subscribe-hub > * { position: relative; z-index: 2; }
@keyframes tbBriefingAccentOrbit {
  0%, 100% { transform: translate3d(0, 0, 0) scale(1); opacity: .86; }
  35% { transform: translate3d(-52px, 46px, 0) scale(1.08); opacity: .62; }
  70% { transform: translate3d(-12px, 84px, 0) scale(.96); opacity: .74; }
}
.tb-subscribe-message { display: none !important; }
.tb-site-toast {
  position: fixed;
  left: auto;
  right: 24px;
  /* Lift the toast higher on the page and make it a bit narrower so it sits neatly between the cookie banner and the back‑to‑top arrow */
  bottom: 90px;
  z-index: 9999;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  width: min(320px, calc(100vw - 32px));
  padding: 14px 16px;
  border: 1px solid hsl(var(--foreground));
  border-radius: 18px;
  background: rgba(255,255,255,.98);
  color: hsl(var(--foreground));
  box-shadow: 0 22px 70px rgba(15,23,42,.20);
  transform: translate3d(0, 22px, 0) scale(.98);
  opacity: 0;
  pointer-events: none;
  transition: opacity .22s ease, transform .22s ease;
}
.tb-site-toast.is-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1);
  pointer-events: auto;
}
.tb-site-toast-icon {
  width: 12px;
  height: 12px;
  border-radius: 99px;
  background: var(--tb-theme-accent, #2437d8);
  box-shadow: 0 0 0 6px color-mix(in srgb, var(--tb-theme-accent, #2437d8) 13%, transparent);
}
.tb-site-toast-text {
  min-width: 0;
  font-size: 14px;
  line-height: 1.45;
  font-weight: 800;
}
.tb-site-toast-close {
  border: 0;
  width: 30px;
  height: 30px;
  border-radius: 999px;
  background: hsl(var(--muted));
  color: hsl(var(--muted-foreground));
  cursor: pointer;
  font-weight: 900;
}
.tb-site-toast.is-error {
  /* Use the global accent colour for error states instead of the default red */
  border-color: var(--tb-theme-accent, #2437d8) !important;
}
.tb-site-toast.is-error .tb-site-toast-icon {
  background: var(--tb-theme-accent, #2437d8) !important;
  box-shadow: 0 0 0 6px color-mix(in srgb, var(--tb-theme-accent, #2437d8) 13%, transparent) !important;
}
.tb-site-toast.is-success { border-color: hsl(var(--foreground)); }
.tb-site-toast.is-success .tb-site-toast-icon { background: #10b981; box-shadow: 0 0 0 6px rgba(16,185,129,.12); }
.tb-btn-primary,
.tb-subscribe-form button,
.tb-filter-pill.is-active,
.tb-card-category,
.tb-legal-actions .tb-btn,
button[type="submit"] {
  background-color: var(--tb-theme-accent, #2437d8) !important;
  border-color: var(--tb-theme-accent, #2437d8) !important;
}
.tb-primary-nav a:hover,
.tb-primary-nav a.is-active,
.tb-card-title a:hover,
.tb-breadcrumb a:hover,
.tb-footer a:hover,
.tb-section-kicker,
.tb-logo-mark,
.tb-icon-chip {
  color: var(--tb-theme-accent, #2437d8) !important;
}
.tb-logo-mark,
.tb-icon-chip {
  background: color-mix(in srgb, var(--tb-theme-accent, #2437d8) 12%, #fff) !important;
}
.tb-search-input:focus,
.tb-subscribe-hub .tb-subscribe-form input:focus {
  border-color: var(--tb-theme-accent, #2437d8) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--tb-theme-accent, #2437d8) 16%, transparent) !important;
}
@media (max-width: 720px), (prefers-reduced-motion: reduce) {
  .tb-subscribe-card.tb-subscribe-hub::after { animation: none; opacity: .55; transform: none; }
  /* On mobile screens, position the toast higher so it doesn’t overlap with the back‑to‑top arrow. */
  .tb-site-toast { bottom: 72px; border-radius: 16px; }
}

/* v1.8.4 final global accent guard: remove fixed blue wash from services hero backgrounds. */
.tb-services-hero {
  background:
    radial-gradient(circle at 88% 12%, color-mix(in srgb, var(--tb-theme-accent, #2437d8) 22%, transparent), transparent 34%),
    radial-gradient(circle at 15% 88%, color-mix(in srgb, var(--tb-theme-accent, #2437d8) 10%, transparent), transparent 32%),
    linear-gradient(135deg, #f8fafc 0%, #edf4fb 100%) !important;
}


/* Email toast: wider, responsive, and positioned beside the back-to-top arrow. */
.tb-site-toast {
  right: 76px !important;
  bottom: 20px !important;
  width: clamp(280px, 28vw, 360px) !important;
  max-width: calc(100vw - 112px) !important;
  min-height: 58px !important;
  padding: 12px 14px !important;
  border-radius: 16px !important;
  border-color: var(--tb-theme-accent, #2437d8) !important;
  z-index: 99991 !important;
}
.tb-site-toast-text {
  font-size: 14px !important;
  line-height: 1.35 !important;
}
.tb-site-toast-close {
  width: 30px !important;
  height: 30px !important;
}
.tb-site-toast.is-error {
  border-color: var(--tb-theme-accent, #2437d8) !important;
}

@media (max-width: 620px) {
  .tb-site-toast {
    right: 68px !important;
    bottom: 18px !important;
    width: calc(100vw - 92px) !important;
    max-width: calc(100vw - 92px) !important;
  }
}

/* v2.3.5: non-breaking listing, card, service and adaptive home refinements. */
.tb-service-description {
  text-align: justify;
  text-justify: inter-word;
}
.tb-service-description + .tb-service-badges,
.tb-service-description + [class*="badge"] {
  margin-top: 20px !important;
}
.tb-listing-status {
  min-height: 1.5em;
  margin-top: 12px;
  color: hsl(var(--muted-foreground));
  font-size: 13px;
}
[data-tb-listing-root].is-loading [data-tb-post-grid] {
  opacity: 1;
}
[data-tb-listing-root] [data-tb-post-grid] {
  transition: none;
}
body.home .tb-home-portfolio-grid.tb-home-portfolio-cols-3 .tb-portfolio-extra,
body.page-template-front-page .tb-home-portfolio-grid.tb-home-portfolio-cols-3 .tb-portfolio-extra,
body.home .tb-home-portfolio-grid.tb-home-portfolio-cols-1 .tb-portfolio-extra,
body.page-template-front-page .tb-home-portfolio-grid.tb-home-portfolio-cols-1 .tb-portfolio-extra {
  display: none !important;
}
body.home .tb-home-portfolio-grid.tb-home-portfolio-cols-2 .tb-portfolio-extra,
body.page-template-front-page .tb-home-portfolio-grid.tb-home-portfolio-cols-2 .tb-portfolio-extra {
  display: flex !important;
}
.tb-post-grid > .tb-post-card,
.tb-portfolio-grid > .tb-portfolio-card {
  min-width: 0;
}
@media (max-width: 700px) {
  .tb-service-description { text-align: left; }
}

/* Respect visitors who request less motion. */
@media (prefers-reduced-motion: reduce) {
  .tb-subscribe-card.tb-subscribe-hub {
    animation: none !important;
    top: 0 !important;
    translate: 0 0 !important;
  }
  .tb-subscribe-card.tb-subscribe-hub::after {
    animation: none !important;
    rotate: 0deg !important;
    opacity: .55 !important;
  }
}

/* Ad size controls from admin: responsive remains default; fixed mode constrains the ad unit container. */
.tb-ad-fixed-size {
  display: grid !important;
  place-items: center !important;
}
.tb-ad-fixed-size ins.adsbygoogle,
.tb-ad-fixed-size .adsbygoogle {
  width: min(100%, var(--tb-ad-fixed-width, 300px)) !important;
  height: var(--tb-ad-fixed-height, 250px) !important;
  max-width: 100% !important;
}
.tb-ad-responsive-size ins.adsbygoogle,
.tb-ad-responsive-size .adsbygoogle {
  max-width: 100% !important;
}


/* Service image fallback: prevents broken image alt text from showing as huge text if an SVG/image URL fails. */
.tb-service-visual {
  position: relative !important;
}
.tb-service-visual::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 20% 20%, color-mix(in srgb, var(--tb-theme-accent, #2437d8) 18%, transparent), transparent 34%),
    linear-gradient(135deg, #eff6ff, #ffffff);
  z-index: 0;
}
.tb-service-visual::after {
  content: "";
  position: relative;
  z-index: 1;
  width: 84px;
  height: 84px;
  border-radius: 24px;
  background: color-mix(in srgb, var(--tb-theme-accent, #2437d8) 13%, #ffffff);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--tb-theme-accent, #2437d8) 24%, transparent);
  opacity: 0;
}
.tb-service-visual img {
  position: relative;
  z-index: 2;
}
.tb-service-visual img.is-broken {
  display: none !important;
}
.tb-service-visual:has(img.is-broken)::after {
  opacity: 1;
}
@supports not selector(:has(*)) {
  .tb-service-visual.is-image-broken::after {
    opacity: 1;
  }
}

/* Final blog listing ad: one clean full-width ad before the footer. */
.tb-listing-end-ad {
  grid-column: 1 / -1;
  width: 100%;
  min-height: 120px;
  display: block;
  margin-top: 10px;
}
.tb-listing-end-ad:not(.is-filter-hidden) {
  display: block !important;
}
.tb-listing-end-ad.is-filter-hidden {
  display: none !important;
}

/* tb-v38-smart-home-layout
   Final active responsive layer: home sections share one measured line, cards calculate columns without over-stretching, and narrow layouts stack cleanly. */
:root {
  --tb-home-inner-width: 1180px;
  --tb-home-gutter: clamp(18px, 4vw, 56px);
  --tb-home-card-gap: clamp(18px, 2.2vw, 26px);
  --tb-home-service-card-min: 255px;
  --tb-home-service-card-max: 320px;
  --tb-home-feature-card-min: 255px;
  --tb-blog-rail-edge-gap: 5px;
  --tb-blog-rail-gap: 14px;
  --tb-blog-card-min: 260px;
  --tb-blog-card-max-one-col: 430px;
  --tb-blog-listing-side-ad-width: 300px;
  --tb-blog-listing-side-ad-top: 112px;
  --tb-blog-listing-side-ad-min-height: 600px;
  /* Height reserved at the viewport bottom for the borderless anchor ad shown on
     short / landscape viewports (the rail-to-bottom-ad fallback). */
  --tb-bottom-ad-reserve: 116px;
}

body.home .tb-section-muted > .tb-container,
body.home .tb-home-services > .tb-container,
body.home .tb-home-featured-section > .tb-container,
body.home .tb-home-portfolio-section > .tb-container,
body.page-template-front-page .tb-section-muted > .tb-container,
body.page-template-front-page .tb-home-services > .tb-container,
body.page-template-front-page .tb-home-featured-section > .tb-container,
body.page-template-front-page .tb-home-portfolio-section > .tb-container {
  width: min(var(--tb-home-inner-width), calc(100% - (var(--tb-home-gutter) * 2))) !important;
  max-width: var(--tb-home-inner-width) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  box-sizing: border-box !important;
}

body.home .tb-analysis-grid,
body.page-template-front-page .tb-analysis-grid {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(360px, .9fr) !important;
  align-items: center !important;
  gap: clamp(32px, 5vw, 72px) !important;
}

body.home .tb-analysis-copy,
body.page-template-front-page .tb-analysis-copy,
body.home .tb-analysis-copy .tb-lead,
body.page-template-front-page .tb-analysis-copy .tb-lead {
  max-width: 100% !important;
}

body.home .tb-section-title-row,
body.page-template-front-page .tb-section-title-row {
  width: 100% !important;
  max-width: 100% !important;
  display: flex !important;
  align-items: flex-end !important;
  justify-content: space-between !important;
  gap: clamp(18px, 3vw, 38px) !important;
  margin-bottom: clamp(30px, 4vw, 48px) !important;
  box-sizing: border-box !important;
}

body.home .tb-services-title-row > div,
body.home .tb-home-featured-section .tb-section-title-row > div,
body.home .tb-home-portfolio-section .tb-section-title-row > div,
body.page-template-front-page .tb-services-title-row > div,
body.page-template-front-page .tb-home-featured-section .tb-section-title-row > div,
body.page-template-front-page .tb-home-portfolio-section .tb-section-title-row > div {
  min-width: 0 !important;
  max-width: 780px !important;
}

body.home .tb-services-title-row .tb-lead,
body.home .tb-home-featured-section .tb-section-title-row .tb-lead,
body.home .tb-home-portfolio-section .tb-section-title-row .tb-lead,
body.page-template-front-page .tb-services-title-row .tb-lead,
body.page-template-front-page .tb-home-featured-section .tb-section-title-row .tb-lead,
body.page-template-front-page .tb-home-portfolio-section .tb-section-title-row .tb-lead {
  max-width: 760px !important;
}

body.home .tb-section-title-row .tb-btn,
body.page-template-front-page .tb-section-title-row .tb-btn {
  flex: 0 0 auto !important;
  white-space: nowrap !important;
}

body.home .tb-home-service-grid,
body.page-template-front-page .tb-home-service-grid {
  width: 100% !important;
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--tb-home-service-card-min)), 1fr)) !important;
  gap: var(--tb-home-card-gap) !important;
  align-items: stretch !important;
  justify-content: center !important;
  justify-items: stretch !important;
}

body.home .tb-home-service-card,
body.page-template-front-page .tb-home-service-card {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  margin: 0 !important;
  box-sizing: border-box !important;
}

body.home .tb-home-service-top,
body.page-template-front-page .tb-home-service-top {
  align-items: flex-start !important;
}

body.home .tb-home-service-card h3,
body.page-template-front-page .tb-home-service-card h3 {
  font-size: clamp(16px, 1.35vw, 19px) !important;
  line-height: 1.18 !important;
}

body.home .tb-home-service-card p,
body.page-template-front-page .tb-home-service-card p {
  font-size: clamp(13px, 1vw, 14px) !important;
  line-height: 1.62 !important;
}

body.home .tb-home-featured-section .tb-post-grid,
body.home .tb-home-portfolio-grid,
body.page-template-front-page .tb-home-portfolio-grid,
body.page-template-front-page .tb-home-featured-section .tb-post-grid {
  width: 100% !important;
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--tb-home-feature-card-min)), 1fr)) !important;
  gap: var(--tb-home-card-gap) !important;
  align-items: stretch !important;
  justify-content: center !important;
  justify-items: stretch !important;
}

body.home .tb-home-featured-section .tb-post-card,
body.home .tb-home-portfolio-section .tb-portfolio-card,
body.page-template-front-page .tb-home-portfolio-section .tb-portfolio-card,
body.page-template-front-page .tb-home-featured-section .tb-post-card {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  box-sizing: border-box !important;
}

@media (min-width: 1120px) {
  body.home .tb-home-service-grid,
  body.page-template-front-page .tb-home-service-grid,
  body.home .tb-home-portfolio-grid,
  body.page-template-front-page .tb-home-portfolio-grid,
  body.home .tb-home-featured-section .tb-post-grid,
  body.page-template-front-page .tb-home-featured-section .tb-post-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }
}

@media (min-width: 820px) and (max-width: 1119px) {
  body.home .tb-home-service-grid,
  body.page-template-front-page .tb-home-service-grid,
  body.home .tb-home-portfolio-grid,
  body.page-template-front-page .tb-home-portfolio-grid,
  body.home .tb-home-featured-section .tb-post-grid,
  body.page-template-front-page .tb-home-featured-section .tb-post-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

@media (min-width: 641px) and (max-width: 819px) {
  body.home .tb-home-service-grid,
  body.page-template-front-page .tb-home-service-grid,
  body.home .tb-home-portfolio-grid,
  body.page-template-front-page .tb-home-portfolio-grid,
  body.home .tb-home-featured-section .tb-post-grid,
  body.page-template-front-page .tb-home-featured-section .tb-post-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 760px) {
  body.home .tb-home-featured-section .tb-post-grid,
  body.home .tb-home-portfolio-grid,
  body.page-template-front-page .tb-home-portfolio-grid,
  body.page-template-front-page .tb-home-featured-section .tb-post-grid {
    grid-template-columns: minmax(0, min(100%, 430px)) !important;
  }
  body.home .tb-home-featured-section .tb-post-card,
  body.home .tb-home-portfolio-section .tb-portfolio-card,
  body.page-template-front-page .tb-home-portfolio-section .tb-portfolio-card,
  body.page-template-front-page .tb-home-featured-section .tb-post-card {
    max-width: 430px !important;
    margin-inline: auto !important;
  }
}

@media (max-width: 640px) {
  body.home .tb-section-muted > .tb-container,
  body.home .tb-home-services > .tb-container,
  body.home .tb-home-featured-section > .tb-container,
  body.home .tb-home-portfolio-section > .tb-container,
  body.page-template-front-page .tb-section-muted > .tb-container,
  body.page-template-front-page .tb-home-services > .tb-container,
  body.page-template-front-page .tb-home-featured-section > .tb-container,
  body.page-template-front-page .tb-home-portfolio-section > .tb-container {
    width: min(430px, calc(100% - 28px)) !important;
  }
  body.home .tb-analysis-grid,
  body.page-template-front-page .tb-analysis-grid,
  body.home .tb-home-service-grid,
  body.home .tb-home-portfolio-grid,
  body.page-template-front-page .tb-home-portfolio-grid,
  body.page-template-front-page .tb-home-service-grid {
    grid-template-columns: minmax(0, 1fr) !important;
  }
  body.home .tb-section-title-row,
  body.page-template-front-page .tb-section-title-row {
    align-items: flex-start !important;
    flex-direction: column !important;
  }
  body.home .tb-section-title-row .tb-btn,
  body.page-template-front-page .tb-section-title-row .tb-btn {
    width: auto !important;
    max-width: 100% !important;
  }
}

@media (max-width: 900px) {
  body.home .tb-analysis-grid,
  body.page-template-front-page .tb-analysis-grid {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 30px !important;
  }
}

/* Blog listing keeps the v37 anti-abuse rail behaviour, but the home grid above is now separate and measured. */
body.tb-blog-listing-page .tb-blog-ad-layout {
  display: block !important;
  width: 100% !important;
  margin-inline: auto !important;
}

body.tb-blog-listing-page .tb-blog-main-column {
  width: min(calc(100% - 32px), var(--tb-blog-content-available, 1256px)) !important;
  max-width: 1256px !important;
  margin-inline: auto !important;
  padding-inline: 0 !important;
}

/* Listing pagination (blog + portfolio, 12 per page) */
.tb-pagination {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
  margin: 32px 0 8px;
}
.tb-pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 12px;
  border-radius: 10px;
  border: 1px solid hsl(var(--border, 220 13% 91%));
  background: #fff;
  color: hsl(var(--foreground, 222 47% 11%));
  font-weight: 700;
  text-decoration: none;
  transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.tb-pagination a.page-numbers:hover {
  border-color: var(--tb-theme-accent, #2437d8);
  color: var(--tb-theme-accent, #2437d8);
}
.tb-pagination .page-numbers.current {
  background: var(--tb-theme-accent, #2437d8);
  border-color: var(--tb-theme-accent, #2437d8);
  color: #fff;
}
.tb-pagination .page-numbers.dots {
  border-color: transparent;
  background: transparent;
}

body.tb-blog-listing-page .tb-toolbar {
  width: 100% !important;
  max-width: 100% !important;
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 18px !important;
  overflow: visible !important;
}

body.tb-blog-listing-page .tb-search-form {
  width: min(100%, 460px) !important;
  max-width: 460px !important;
}

body.tb-blog-listing-page .tb-filter-row {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: flex-start !important;
  gap: 10px 10px !important;
  padding: 0 !important;
  max-width: 100% !important;
  overflow: visible !important;
  scrollbar-width: none !important;
}

body.tb-blog-listing-page .tb-filter-row::-webkit-scrollbar { display: none !important; }

body.tb-blog-listing-page .tb-filter-row .tb-filter-pill {
  flex: 0 0 auto !important;
  white-space: nowrap !important;
}

/* Default-hide listing rails until the JS solver activates them (prevents a
 * flash of unstyled rails before the layout commits). Grid, card and
 * main-column geometry are owned by the CANONICAL LISTING GEOMETRY block. */
body.tb-blog-listing-page .tb-blog-ad-rail { display: none !important; }

body.tb-blog-listing-page.tb-blog-rails-two-active .tb-blog-ad-rail,
body.tb-blog-listing-page.tb-blog-rails-one-active .tb-blog-ad-rail-right {
  display: block !important;
  position: fixed !important;
  top: var(--tb-blog-dynamic-rail-top, var(--tb-blog-listing-side-ad-top, 112px)) !important;
  width: var(--tb-blog-active-rail-width, var(--tb-blog-listing-side-ad-width, 300px)) !important;
  min-width: var(--tb-blog-active-rail-width, var(--tb-blog-listing-side-ad-width, 300px)) !important;
  min-height: var(--tb-blog-listing-side-ad-min-height, 600px) !important;
  max-height: none !important;
  overflow: visible !important;
  overscroll-behavior: auto !important;
  z-index: 35 !important;
  opacity: 1 !important;
  transform: translate3d(0,0,0) !important;
  transition: top .14s linear, transform .14s linear !important;
  pointer-events: auto !important;
}

body.admin-bar.tb-blog-listing-page.tb-blog-rails-two-active .tb-blog-ad-rail,
body.admin-bar.tb-blog-listing-page.tb-blog-rails-one-active .tb-blog-ad-rail-right {
  top: calc(var(--tb-blog-dynamic-rail-top, var(--tb-blog-listing-side-ad-top, 112px)) + 32px) !important;
  max-height: none !important;
}

body.tb-blog-listing-page.tb-blog-rails-two-active .tb-blog-ad-rail-left { left: var(--tb-blog-rail-edge-gap, 5px) !important; right: auto !important; }
body.tb-blog-listing-page.tb-blog-rails-two-active .tb-blog-ad-rail-right,
body.tb-blog-listing-page.tb-blog-rails-one-active .tb-blog-ad-rail-right { right: var(--tb-blog-rail-edge-gap, 5px) !important; left: auto !important; }
body.tb-blog-listing-page.tb-blog-rails-one-active .tb-blog-ad-rail-left { display: none !important; }

body.tb-blog-listing-page .tb-blog-ad-rail .tb-blog-listing-side-ad,
body.tb-blog-listing-page .tb-blog-ad-rail .tb-side-rail-ad {
  position: static !important;
  inset: auto !important;
  width: 100% !important;
  min-width: 100% !important;
  max-width: 100% !important;
  min-height: var(--tb-blog-listing-side-ad-min-height, 600px) !important;
  max-height: none !important;
  transform: none !important;
  opacity: 1 !important;
}

@media (max-width: 700px) {
  body.tb-blog-listing-page .tb-filter-row .tb-filter-pill {
    font-size: 11px !important;
    padding: 8px 11px !important;
  }
}

@media (any-hover: hover) and (any-pointer: fine) and (max-width: 640px) {
  body.tb-blog-listing-page.tb-blog-rails-one-active .tb-blog-main-column {
    margin-left: 10px !important;
    margin-right: calc(var(--tb-blog-active-rail-width, 180px) + 10px) !important;
    width: var(--tb-blog-content-available, calc(100% - 142px)) !important;
  }
  body.tb-blog-listing-page.tb-blog-rails-one-active .tb-search-form { max-width: 100% !important; }
  body.tb-blog-listing-page.tb-blog-rails-one-active .tb-filter-row .tb-filter-pill { font-size: 10px !important; padding: 7px 9px !important; }
}

@media (min-width: 1181px) {
  #service-categories > .tb-container.tb-services-category-layout {
    width: min(1560px, calc(100% - 48px)) !important;
    max-width: 1560px !important;
    grid-template-columns: minmax(0, 1fr) minmax(285px, 330px) !important;
    gap: 38px !important;
  }
  #service-categories .tb-service-category {
    padding: 38px !important;
    gap: 48px !important;
    grid-template-columns: minmax(420px, 45%) minmax(0, 1fr) !important;
  }
  #service-categories .tb-service-category.is-reverse {
    grid-template-columns: minmax(0, 1fr) minmax(420px, 45%) !important;
  }
}

.tb-service-proof strong span[data-tb-count-up] {
  display: inline-block !important;
  min-width: 1.55em !important;
  font-variant-numeric: tabular-nums !important;
}

body.tb-motion-ready .tb-subscribe-card.tb-subscribe-hub,
body.tb-motion-ready .tb-services-hero-panel {
  position: relative !important;
  overflow: hidden !important;
  isolation: isolate !important;
  transform-style: preserve-3d !important;
}

body.tb-motion-ready .tb-subscribe-card.tb-subscribe-hub > :not(.tb-center-beam),
body.tb-motion-ready .tb-services-hero-panel > :not(.tb-center-beam) {
  position: relative !important;
  z-index: 2 !important;
}

body.tb-motion-ready .tb-subscribe-card.tb-subscribe-hub::before,
body.tb-motion-ready .tb-subscribe-card.tb-subscribe-hub::after,
body.tb-motion-ready .tb-services-hero-panel::before,
body.tb-motion-ready .tb-services-hero-panel::after,
body.tb-motion-ready .tb-services-hero-panel .tb-motion-beam {
  display: none !important;
}

body.tb-motion-ready .tb-center-beam {
  position: absolute !important;
  left: 50% !important;
  top: 50% !important;
  width: 150% !important;
  height: 150% !important;
  border-radius: 999px !important;
  transform-origin: 50% 50% !important;
  pointer-events: none !important;
  z-index: 1 !important;
  opacity: .45 !important;
  filter: blur(10px) !important;
  mix-blend-mode: multiply !important;
  background:
    conic-gradient(from -32deg at 50% 50%,
      transparent 0deg 296deg,
      color-mix(in srgb, var(--tb-theme-accent, #2421c4) 5%, transparent) 310deg,
      color-mix(in srgb, var(--tb-theme-accent, #2421c4) 30%, transparent) 332deg,
      color-mix(in srgb, var(--tb-theme-accent, #2421c4) 9%, transparent) 352deg,
      transparent 360deg) !important;
  will-change: transform !important;
}

body.tb-motion-ready .tb-subscribe-card.tb-subscribe-hub > .tb-center-beam { opacity: .40 !important; }
body.tb-motion-ready .tb-services-hero-panel > .tb-center-beam { opacity: .42 !important; }
body.tb-motion-ready.tb-beam-disabled .tb-center-beam,
body.tb-motion-ready.tb-service-beam-disabled .tb-services-hero-panel > .tb-center-beam { display: none !important; }

body.tb-motion-ready .tb-services-orbit span {
  animation: tbServiceMiniFloat 5.8s ease-in-out infinite !important;
}
body.tb-motion-ready .tb-services-orbit span:nth-child(2n) { animation-delay: .65s !important; }
body.tb-motion-ready .tb-services-orbit span:nth-child(3n) { animation-delay: 1.2s !important; }

@keyframes tbServiceMiniFloat {
  0%, 100% { transform: translate3d(0,0,0); }
  50% { transform: translate3d(0,-6px,0); }
}

@media (prefers-reduced-motion: reduce) {
  body.tb-motion-ready .tb-center-beam,
  body.tb-motion-ready .tb-services-orbit span {
    animation: none !important;
    transform: none !important;
  }
}

.tb-socials a[aria-label="Fiverr"] svg {
  width: 18px !important;
  height: 18px !important;
  display: block !important;
  fill: currentColor !important;
  stroke: none !important;
}

/* tb-v39-home-max-three-smart-grid
   Final active home card rule: homepage service and featured grids never use a 4-card row. They choose 3/2/1 based on usable width, and featured articles only render up to three posts from PHP. */
:root {
  --tb-home-inner-width: 1180px;
  --tb-home-card-gap: clamp(18px, 2.2vw, 28px);
  --tb-home-three-card-min: 250px;
  --tb-home-two-card-min: 260px;
  --tb-home-one-card-max: 430px;
}

body.home .tb-home-service-grid,
body.page-template-front-page .tb-home-service-grid,
body.home .tb-home-featured-section .tb-post-grid,
body.page-template-front-page .tb-home-featured-section .tb-post-grid {
  width: 100% !important;
  display: grid !important;
  gap: var(--tb-home-card-gap) !important;
  align-items: stretch !important;
  justify-content: center !important;
  justify-items: stretch !important;
  grid-template-columns: repeat(3, minmax(var(--tb-home-three-card-min), 1fr)) !important;
}

body.home .tb-home-service-card,
body.page-template-front-page .tb-home-service-card,
body.home .tb-home-featured-section .tb-post-card,
body.page-template-front-page .tb-home-featured-section .tb-post-card {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  margin: 0 !important;
  box-sizing: border-box !important;
}

@media (max-width: 940px) {
  body.home .tb-home-service-grid,
  body.page-template-front-page .tb-home-service-grid,
  body.home .tb-home-featured-section .tb-post-grid,
  body.page-template-front-page .tb-home-featured-section .tb-post-grid {
    grid-template-columns: repeat(2, minmax(var(--tb-home-two-card-min), 1fr)) !important;
  }
}

@media (max-width: 640px) {
  body.home .tb-home-service-grid,
  body.page-template-front-page .tb-home-service-grid,
  body.home .tb-home-featured-section .tb-post-grid,
  body.page-template-front-page .tb-home-featured-section .tb-post-grid {
    grid-template-columns: minmax(0, min(100%, var(--tb-home-one-card-max))) !important;
  }

  body.home .tb-home-service-card,
  body.page-template-front-page .tb-home-service-card,
  body.home .tb-home-featured-section .tb-post-card,
  body.page-template-front-page .tb-home-featured-section .tb-post-card {
    max-width: var(--tb-home-one-card-max) !important;
    margin-inline: auto !important;
  }
}

/* tb-v40-final-smart-layout-seo-sitemap
   Active final layout rules. Blog listing never uses 4 columns. Home featured renders four posts but displays the 4th only in 2 x 2 mode. */
body.home .tb-home-featured-section .tb-post-grid,
body.page-template-front-page .tb-home-featured-section .tb-post-grid {
  display: grid !important;
  gap: var(--tb-home-card-gap, clamp(18px, 2.2vw, 28px)) !important;
  align-items: stretch !important;
  justify-content: center !important;
  width: 100% !important;
}

body.home .tb-home-featured-section .tb-post-grid.tb-home-featured-cols-3,
body.page-template-front-page .tb-home-featured-section .tb-post-grid.tb-home-featured-cols-3 {
  grid-template-columns: repeat(3, minmax(250px, 1fr)) !important;
}

body.home .tb-home-featured-section .tb-post-grid.tb-home-featured-cols-2,
body.page-template-front-page .tb-home-featured-section .tb-post-grid.tb-home-featured-cols-2 {
  grid-template-columns: repeat(2, minmax(260px, 1fr)) !important;
}

body.home .tb-home-featured-section .tb-post-grid.tb-home-featured-cols-1,
body.page-template-front-page .tb-home-featured-section .tb-post-grid.tb-home-featured-cols-1 {
  grid-template-columns: minmax(0, min(100%, var(--tb-home-one-card-max, 430px))) !important;
}

body.home .tb-home-featured-section .tb-post-grid.tb-home-featured-cols-3 .tb-featured-extra,
body.page-template-front-page .tb-home-featured-section .tb-post-grid.tb-home-featured-cols-3 .tb-featured-extra,
body.home .tb-home-featured-section .tb-post-grid.tb-home-featured-cols-1 .tb-featured-extra,
body.page-template-front-page .tb-home-featured-section .tb-post-grid.tb-home-featured-cols-1 .tb-featured-extra {
  display: none !important;
}

body.home .tb-home-featured-section .tb-post-grid.tb-home-featured-cols-2 .tb-featured-extra,
body.page-template-front-page .tb-home-featured-section .tb-post-grid.tb-home-featured-cols-2 .tb-featured-extra {
  display: flex !important;
}

/* Home portfolio grid: mirror the featured grid's smart column sizing so a short
   row of cards (e.g. 3) fills the width instead of squeezing into a wider track. */
body.home .tb-home-portfolio-grid.tb-home-portfolio-cols-3,
body.page-template-front-page .tb-home-portfolio-grid.tb-home-portfolio-cols-3 {
  grid-template-columns: repeat(3, minmax(250px, 1fr)) !important;
}

body.home .tb-home-portfolio-grid.tb-home-portfolio-cols-2,
body.page-template-front-page .tb-home-portfolio-grid.tb-home-portfolio-cols-2 {
  grid-template-columns: repeat(2, minmax(260px, 1fr)) !important;
}

body.home .tb-home-portfolio-grid.tb-home-portfolio-cols-1,
body.page-template-front-page .tb-home-portfolio-grid.tb-home-portfolio-cols-1 {
  grid-template-columns: minmax(0, min(100%, var(--tb-home-one-card-max, 430px))) !important;
}

@media (max-width: 640px) {
  body.home .tb-home-featured-section .tb-post-grid,
  body.page-template-front-page .tb-home-featured-section .tb-post-grid {
    grid-template-columns: minmax(0, min(100%, var(--tb-home-one-card-max, 430px))) !important;
  }
}

/* tb-v41-smart-desktop-monetization-rails
   Desktop is detected by pointer/hover capability in JS. On desktop browser resize,
   one compact rail is kept when possible instead of dropping monetization completely. */
body.single-post.tb-article-rails-active .tb-side-rail-ad {
  display: none !important;
}

body.single-post.tb-article-rails-two-active .tb-side-rail-ad,
body.single-post.tb-article-rails-one-active .tb-side-rail-ad-right {
  display: block !important;
  position: fixed !important;
  top: var(--tb-article-dynamic-rail-top, var(--tb-article-side-ad-top, 112px)) !important;
  width: var(--tb-article-active-rail-width, var(--tb-compact-desktop-rail-width, 180px)) !important;
  min-width: var(--tb-article-active-rail-width, var(--tb-compact-desktop-rail-width, 180px)) !important;
  min-height: var(--tb-article-side-ad-min-height, 600px) !important;
  max-height: none !important;
  overflow: visible !important;
  overscroll-behavior: auto !important;
  z-index: 36 !important;
  opacity: 1 !important;
  transform: translate3d(0,0,0) !important;
  pointer-events: auto !important;
}

body.admin-bar.single-post.tb-article-rails-two-active .tb-side-rail-ad,
body.admin-bar.single-post.tb-article-rails-one-active .tb-side-rail-ad-right {
  top: calc(var(--tb-article-dynamic-rail-top, var(--tb-article-side-ad-top, 112px)) + 32px) !important;
  max-height: none !important;
}

body.single-post.tb-article-rails-one-active .tb-side-rail-ad-left { display: none !important; }
body.single-post.tb-article-rails-two-active .tb-side-rail-ad-left { left: var(--tb-article-side-ad-edge-gap, 5px) !important; right: auto !important; }
body.single-post.tb-article-rails-two-active .tb-side-rail-ad-right,
body.single-post.tb-article-rails-one-active .tb-side-rail-ad-right { right: var(--tb-article-side-ad-edge-gap, 5px) !important; left: auto !important; }

body.single-post.tb-article-rails-active .tb-single-layout {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  margin-inline: 0 !important;
}

body.single-post.tb-article-rails-one-active .tb-single-layout {
  padding-left: 14px !important;
  padding-right: calc(var(--tb-article-active-rail-width, var(--tb-compact-desktop-rail-width, 180px)) + 24px) !important;
}

body.single-post.tb-article-rails-two-active .tb-single-layout {
  padding-left: calc(var(--tb-article-active-rail-width, var(--tb-compact-desktop-rail-width, 180px)) + 24px) !important;
  padding-right: calc(var(--tb-article-active-rail-width, var(--tb-compact-desktop-rail-width, 180px)) + 24px) !important;
}

body.single-post.tb-article-rails-active .tb-article-wrap {
  width: min(850px, var(--tb-article-content-available, calc(100% - 32px))) !important;
  max-width: 100% !important;
}

body.single-post.tb-article-rails-one-active .tb-article-wrap { margin-left: 0 !important; margin-right: auto !important; }
body.single-post.tb-article-rails-two-active .tb-article-wrap { margin-inline: auto !important; }

body.single-post.tb-article-rails-active .tb-article-ad-mobile {
  display: none !important;
}

@media (any-hover: hover) and (any-pointer: fine) and (max-width: 560px) {
  body.single-post.tb-article-rails-one-active .tb-single-layout {
    padding-left: 10px !important;
    padding-right: calc(var(--tb-article-active-rail-width, 160px) + 14px) !important;
  }
  body.single-post.tb-article-rails-active .tb-prose {
    font-size: 15px !important;
    line-height: 1.75 !important;
  }
  body.single-post.tb-article-rails-active .tb-featured-image {
    margin-bottom: 34px !important;
  }
}

/* tb-v42-smart-tablet-rails-and-email-copy
   Adds optional tablet rail monetization and copy-to-clipboard email interaction. */
body.single-post.tb-article-rail-tablet-input .tb-side-rail-ad-right,
body.tb-blog-listing-page.tb-blog-rail-tablet.tb-blog-rails-one-active .tb-blog-ad-rail-right {
  width: var(--tb-blog-active-rail-width, var(--tb-article-active-rail-width, var(--tb-tablet-rail-width, 160px))) !important;
  min-width: var(--tb-blog-active-rail-width, var(--tb-article-active-rail-width, var(--tb-tablet-rail-width, 160px))) !important;
}

body.single-post.tb-article-rail-tablet-input .tb-single-layout {
  padding-right: calc(var(--tb-article-active-rail-width, var(--tb-tablet-rail-width, 160px)) + 18px) !important;
}

body.single-post.tb-article-rail-tablet-input .tb-article-wrap {
  width: min(820px, var(--tb-article-content-available, calc(100% - 24px))) !important;
}

body.single-post.tb-article-rail-tablet-input .tb-prose {
  font-size: clamp(15px, 1.45vw, 18px) !important;
}

.tb-socials a[data-tb-copy-email] {
  cursor: copy;
}
/* Keep all connect icons (Fiverr, LinkedIn, email) on the same baseline — the inline
   email SVG was sitting higher than the others. */
.tb-socials a { display: inline-flex; align-items: center; justify-content: center; line-height: 1; }
.tb-socials a svg { display: block; }

/* tb-v43-about-contact-form-and-live-ready-polish */
.tb-about-contact-section {
  padding-top: clamp(48px, 7vw, 96px);
}
.tb-about-contact-card {
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(320px, 1.1fr);
  gap: clamp(22px, 4vw, 44px);
  align-items: stretch;
  background: linear-gradient(135deg, hsl(var(--card)) 0%, hsl(var(--muted)) 100%);
  border: 1px solid hsl(var(--border));
  border-radius: calc(var(--radius) * 2.1);
  padding: clamp(24px, 4vw, 44px);
  box-shadow: var(--shadow-lg);
}
.tb-about-contact-card::before {
  content: "";
  position: absolute;
  width: 360px;
  height: 360px;
  right: -150px;
  top: -170px;
  background: radial-gradient(circle, color-mix(in srgb, var(--tb-theme-accent, #2421c4) 22%, transparent) 0%, transparent 68%);
  pointer-events: none;
}
.tb-about-contact-copy,
.tb-about-contact-form {
  position: relative;
  z-index: 1;
}
.tb-about-contact-copy h2 {
  margin: 14px 0 14px;
  font-size: clamp(2rem, 4vw, 3.5rem);
  line-height: .98;
  letter-spacing: -.055em;
  color: var(--tb-text-color-1, hsl(var(--foreground)));
}
.tb-about-contact-copy p {
  margin: 0;
  max-width: 560px;
  color: var(--tb-text-color-2, hsl(var(--muted-foreground)));
  font-size: clamp(1rem, 1.25vw, 1.14rem);
  line-height: 1.75;
}
.tb-about-contact-meta {
  display: grid;
  gap: 10px;
  margin-top: 24px;
  color: var(--tb-text-color-2, hsl(var(--muted-foreground)));
  font-weight: 800;
}
.tb-about-contact-meta span {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.tb-about-contact-meta svg {
  width: 18px;
  height: 18px;
  color: var(--tb-theme-accent, #2421c4);
}
.tb-about-contact-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  background: rgba(255,255,255,.74);
  border: 1px solid hsl(var(--border));
  border-radius: calc(var(--radius) * 1.5);
  padding: clamp(18px, 3vw, 28px);
  box-shadow: 0 14px 42px rgba(15, 23, 42, .08);
  backdrop-filter: blur(14px);
}
.tb-about-contact-form label {
  display: grid;
  gap: 8px;
  color: var(--tb-text-color-1, hsl(var(--foreground)));
  font-size: .86rem;
  font-weight: 900;
}
.tb-about-contact-form input,
.tb-about-contact-form textarea {
  width: 100%;
  border: 1px solid hsl(var(--border));
  border-radius: 16px;
  background: #fff;
  padding: 14px 15px;
  color: var(--tb-text-color-1, hsl(var(--foreground)));
  font: inherit;
  box-shadow: 0 6px 18px rgba(15, 23, 42, .04);
  transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.tb-about-contact-form input:focus,
.tb-about-contact-form textarea:focus {
  outline: none;
  border-color: color-mix(in srgb, var(--tb-theme-accent, #2421c4) 52%, hsl(var(--border)));
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--tb-theme-accent, #2421c4) 12%, transparent);
}
.tb-contact-wide,
.tb-contact-form-actions {
  grid-column: 1 / -1;
}
.tb-contact-form-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px;
}
.tb-contact-form-message {
  margin: 0;
  color: var(--tb-text-color-2, hsl(var(--muted-foreground)));
  font-weight: 800;
  font-size: .92rem;
}
.tb-contact-form-message.is-error { color: #b42318; }
.tb-contact-form-message.is-success { color: #047857; }
.tb-contact-hp {
  position: absolute !important;
  left: -10000px !important;
  top: auto !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}
@media (max-width: 860px) {
  .tb-about-contact-card,
  .tb-about-contact-form {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 640px) {
  .tb-about-contact-card {
    padding: 20px;
    border-radius: 24px;
  }
  .tb-about-contact-form {
    padding: 16px;
  }
}
body.single-post.tb-article-rail-tablet-input .tb-side-rail-ad-right,
body.tb-blog-listing-page.tb-blog-rail-tablet.tb-blog-rails-one-active .tb-blog-ad-rail-right {
  right: var(--tb-article-side-ad-edge-gap, 5px) !important;
}
@media (max-width: 739px) {
  body.single-post.tb-article-rail-tablet-input .tb-single-layout {
    padding-left: 10px !important;
    padding-right: calc(var(--tb-article-active-rail-width, var(--tb-tablet-rail-width, 160px)) + 14px) !important;
  }
  body.single-post.tb-article-rail-tablet-input .tb-prose {
    font-size: 15px !important;
    line-height: 1.72 !important;
  }
}

/* v2.2.15: wider rail slots for better AdSense sizing/fill. */
body.single-post.tb-article-rails-active .tb-side-rail-ad ins.adsbygoogle,
body.single-tb_portfolio.tb-article-rails-active .tb-side-rail-ad ins.adsbygoogle,
body.tb-blog-listing-page.tb-blog-rails-active .tb-blog-ad-rail ins.adsbygoogle,
body.tb-blog-listing-page.tb-blog-rails-active .tb-blog-listing-side-ad ins.adsbygoogle {
  display: block !important;
  width: 100% !important;
  min-width: 100% !important;
  min-height: 280px !important;
}

body.single-post.tb-article-rails-active .tb-side-rail-ad iframe,
body.single-tb_portfolio.tb-article-rails-active .tb-side-rail-ad iframe,
body.tb-blog-listing-page.tb-blog-rails-active .tb-blog-ad-rail iframe,
body.tb-blog-listing-page.tb-blog-rails-active .tb-blog-listing-side-ad iframe {
  max-width: 100% !important;
}

/* v2.2.15: collapse AdSense slots when Google marks them unfilled, so users do not see giant blank ad boxes. */
.tb-article-ad.tb-ad-unfilled,
.tb-listing-inline-ad.tb-ad-unfilled {
  display: none !important;
  min-height: 0 !important;
  height: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  box-shadow: none !important;
  overflow: hidden !important;
}

.tb-ad-unfilled-rail {
  display: block !important;
  min-height: var(--tb-blog-listing-side-ad-min-height, 600px) !important;
  height: auto !important;
  overflow: visible !important;
}

.tb-ad-unfilled-rail .tb-ad-label,
.tb-ad-unfilled-rail ins.adsbygoogle {
  display: none !important;
}

ins.adsbygoogle[data-ad-status="unfilled"] {
  display: none !important;
  min-height: 0 !important;
  height: 0 !important;
}

.tb-listing-end-ad.tb-ad-responsive-size,
.tb-listing-inline-ad.tb-ad-responsive-size {
  min-height: 120px;
}

.tb-listing-end-ad.tb-ad-fixed-size,
.tb-listing-inline-ad.tb-ad-fixed-size {
  min-height: calc(var(--tb-ad-fixed-height, 250px) + 54px) !important;
}

/* v2.2.18 admin cleanup hardening, post reading time, contact Turnstile layout and smoother homepage motion */
.tb-contact-kicker {
  margin-bottom: 14px !important;
  justify-content: flex-start !important;
}
.tb-contact-turnstile-row {
  grid-column: 1 / -1;
  display: flex;
  justify-content: flex-start;
  min-height: 0;
}
.tb-contact-turnstile-row .tb-turnstile {
  margin: 0 !important;
}
.tb-read-time-meta svg,
.tb-post-end-meta svg {
  width: 16px;
  height: 16px;
}
.tb-post-end-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  margin: 44px 0 0;
  padding-top: 20px;
  border-top: 1px solid hsl(var(--border));
  color: var(--tb-text-color-2, hsl(var(--muted-foreground)));
  font-size: .92rem;
  font-weight: 800;
}
.tb-post-end-meta span + span::before {
  content: "•";
  margin-right: 10px;
  color: color-mix(in srgb, var(--tb-theme-accent, #2421c4) 55%, hsl(var(--muted-foreground)));
}
/* Linked tag chips under the article — internal links to the tag/topic archives. */
.tb-post-tags {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin: 20px 0 0;
}
.tb-post-tags-label {
  font-size: .85rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: hsl(var(--muted-foreground));
  margin-right: 2px;
}
.tb-post-tag {
  display: inline-block;
  padding: 5px 12px;
  border: 1px solid hsl(var(--border));
  border-radius: 999px;
  background: color-mix(in srgb, var(--tb-theme-accent, #2421c4) 5%, #fff);
  color: hsl(var(--foreground));
  font-size: .85rem;
  font-weight: 600;
  text-decoration: none;
  transition: background .15s, border-color .15s, color .15s;
}
.tb-post-tag:hover,
.tb-post-tag:focus {
  background: var(--tb-theme-accent, #2421c4);
  border-color: var(--tb-theme-accent, #2421c4);
  color: #fff;
}
.tb-read-more-articles {
  margin: 34px 0 42px;
  padding: clamp(22px, 3vw, 30px);
  border: 1px solid hsl(var(--border));
  border-radius: 26px;
  background: linear-gradient(135deg, #fff, color-mix(in srgb, var(--tb-theme-accent, #2421c4) 4%, #fff));
  box-shadow: 0 16px 42px rgba(15, 23, 42, .06);
}
.tb-read-more-articles h2 {
  margin: 12px 0 18px;
  font-size: clamp(1.45rem, 2vw, 2rem);
  letter-spacing: -.035em;
}
.tb-read-more-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}
.tb-read-more-card {
  display: grid;
  gap: 8px;
  padding: 16px;
  border: 1px solid hsl(var(--border));
  border-radius: 18px;
  background: rgba(255,255,255,.86);
  color: inherit;
  text-decoration: none;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.tb-read-more-card:hover,
.tb-read-more-card:focus-visible {
  transform: translateY(-3px);
  border-color: color-mix(in srgb, var(--tb-theme-accent, #2421c4) 34%, hsl(var(--border)));
  box-shadow: 0 12px 28px rgba(15, 23, 42, .1);
}
.tb-read-more-card span {
  color: var(--tb-theme-accent, #2421c4);
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.tb-read-more-card strong {
  font-size: 1rem;
  line-height: 1.35;
  letter-spacing: -.02em;
}
.tb-read-more-card small {
  color: var(--tb-text-color-2, hsl(var(--muted-foreground)));
  font-weight: 800;
}
body.tb-motion-ready .tb-subscribe-card.tb-subscribe-hub {
  will-change: transform !important;
  animation: tbBriefingSmoothFloat 10.5s ease-in-out infinite !important;
}
body.tb-motion-ready.tb-briefing-float-disabled .tb-subscribe-card.tb-subscribe-hub,
body.tb-animations-disabled .tb-subscribe-card.tb-subscribe-hub {
  animation: none !important;
  transform: none !important;
}
@keyframes tbBriefingSmoothFloat {
  0%, 100% { transform: translate3d(0, 0, 0); }
  50% { transform: translate3d(0, -5px, 0); }
}
body.tb-motion-ready .tb-center-beam {
  width: 190% !important;
  height: 190% !important;
}
body.tb-motion-ready .tb-subscribe-card.tb-subscribe-hub > .tb-center-beam {
  opacity: .36 !important;
}
@media (max-width: 860px) {
  .tb-read-more-grid { grid-template-columns: 1fr; }
  .tb-contact-turnstile-row { justify-content: flex-start; }
}
@media (max-width: 640px) {
  body.tb-motion-ready .tb-center-beam {
    width: 285% !important;
    height: 285% !important;
    top: 58% !important;
  }
  .tb-about-contact-card::before {
    width: 520px !important;
    height: 520px !important;
    right: -260px !important;
    top: -230px !important;
  }
  .tb-read-more-articles {
    padding: 18px;
    border-radius: 22px;
  }
}
@media (prefers-reduced-motion: reduce) {
  body.tb-motion-ready .tb-subscribe-card.tb-subscribe-hub {
    animation: none !important;
    transform: none !important;
  }
}

/* v2.2.19 post layout polish, card read time, top most-read box and Briefing Hub motion fix */
.tb-single-head-inner.has-top-read-more {
  width: min(1160px, calc(100% - 32px));
  display: grid;
  grid-template-columns: minmax(0, 850px) minmax(260px, 330px);
  gap: clamp(30px, 5vw, 58px);
  align-items: center;
}
.tb-single-head-main { min-width: 0; }
.tb-top-read-more {
  align-self: center;
  border: 1px solid hsl(var(--border));
  border-radius: 24px;
  padding: 20px;
  background: linear-gradient(145deg, #fff, color-mix(in srgb, var(--tb-theme-accent, #2421c4) 5%, #fff));
  box-shadow: 0 16px 42px rgba(15, 23, 42, .055);
}
.tb-top-read-more-kicker {
  margin: 0 0 14px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--tb-theme-accent, #2421c4);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.tb-top-read-more-kicker svg { width: 16px; height: 16px; }
.tb-top-read-more h2 {
  margin: 0 0 14px;
  font-size: 18px;
  line-height: 1.18;
  letter-spacing: -.035em;
}
.tb-top-read-more-list {
  display: grid;
  gap: 12px;
}
.tb-top-read-more-link {
  display: grid;
  gap: 4px;
  padding: 0 0 12px;
  border-bottom: 1px solid hsl(var(--border) / .8);
  color: inherit;
  text-decoration: none;
}
.tb-top-read-more-link:last-child { padding-bottom: 0; border-bottom: 0; }
.tb-top-read-more-link strong {
  font-size: 14px;
  line-height: 1.35;
  letter-spacing: -.02em;
}
.tb-top-read-more-link:hover strong,
.tb-top-read-more-link:focus-visible strong { color: var(--tb-theme-accent, #2421c4); }
.tb-top-read-more-link small {
  color: var(--tb-text-color-2, hsl(var(--muted-foreground)));
  font-size: 12px;
  font-weight: 800;
}
.tb-card-read-time {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin: 0 0 12px;
  color: color-mix(in srgb, var(--tb-theme-accent, #2421c4) 62%, hsl(var(--muted-foreground)));
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .01em;
}
.tb-card-read-time svg { width: 14px; height: 14px; }
.tb-card-title + .tb-card-read-time + .tb-card-excerpt { margin-top: 0; }
body.tb-briefing-float-enabled:not(.tb-animations-disabled) .tb-subscribe-card.tb-subscribe-hub,
body.tb-motion-ready.tb-briefing-float-enabled:not(.tb-animations-disabled) .tb-subscribe-card.tb-subscribe-hub,
body.tb-animate-ready.tb-briefing-float-enabled:not(.tb-animations-disabled) .tb-subscribe-card.tb-subscribe-hub.is-visible {
  animation: tbBriefingFloatV2219 8.8s ease-in-out infinite !important;
  will-change: transform !important;
}
body.tb-briefing-float-disabled .tb-subscribe-card.tb-subscribe-hub,
body.tb-animations-disabled .tb-subscribe-card.tb-subscribe-hub {
  animation: none !important;
  transform: none !important;
}
@keyframes tbBriefingFloatV2219 {
  0%, 100% { transform: translate3d(0, 0, 0); }
  50% { transform: translate3d(0, -8px, 0); }
}
body.tb-motion-ready .tb-subscribe-card.tb-subscribe-hub::after {
  display: block !important;
  width: 460px !important;
  height: 460px !important;
  right: -175px !important;
  bottom: -210px !important;
  top: auto !important;
  opacity: .66 !important;
  background: radial-gradient(circle, color-mix(in srgb, var(--tb-theme-accent, #2421c4) 22%, transparent) 0%, color-mix(in srgb, var(--tb-theme-accent, #2421c4) 10%, transparent) 42%, transparent 72%) !important;
  animation: tbBriefingAccentOrbit 16s ease-in-out infinite !important;
}
body.tb-motion-ready .tb-subscribe-card.tb-subscribe-hub > .tb-center-beam {
  width: 225% !important;
  height: 225% !important;
  top: 55% !important;
  opacity: .42 !important;
}
/* Keep the spotlight beam a perfect circle so its conic cone never distorts or
   looks cropped when a card grows taller. Width stays a % of card width and the
   height matches it (aspect-ratio:1) instead of scaling with card height. */
body.tb-motion-ready .tb-subscribe-card.tb-subscribe-hub > .tb-center-beam,
body.tb-motion-ready .tb-services-hero-panel > .tb-center-beam {
  height: auto !important;
  aspect-ratio: 1 / 1 !important;
}
.tb-subscribe-hub .tb-subscribe-form { margin-top: 4px !important; }
@media (max-width: 1120px) {
  .tb-single-head-inner.has-top-read-more {
    width: min(850px, calc(100% - 32px));
    display: block;
  }
  .tb-top-read-more { display: none; }
}
@media (max-width: 720px) {
  .tb-card-read-time {
    margin-bottom: 10px;
  }
  .tb-subscribe-card.tb-subscribe-hub {
    padding-bottom: 32px !important;
  }
  .tb-subscribe-hub .tb-subscribe-form {
    gap: 14px !important;
  }
  body.tb-motion-ready .tb-subscribe-card.tb-subscribe-hub::after {
    width: 620px !important;
    height: 620px !important;
    right: -320px !important;
    bottom: -315px !important;
    opacity: .72 !important;
  }
  body.tb-motion-ready .tb-subscribe-card.tb-subscribe-hub > .tb-center-beam {
    width: 360% !important;
    height: 360% !important;
    top: 63% !important;
    opacity: .45 !important;
  }
}
@media (prefers-reduced-motion: reduce) {
  body.tb-briefing-float-enabled .tb-subscribe-card.tb-subscribe-hub,
  body.tb-motion-ready.tb-briefing-float-enabled .tb-subscribe-card.tb-subscribe-hub,
  body.tb-animate-ready.tb-briefing-float-enabled .tb-subscribe-card.tb-subscribe-hub.is-visible {
    animation: none !important;
    transform: none !important;
  }
}

/* v2.3.0: Language selector, portfolio, blog CTA, print wall, ad stack */
.tb-locale-switcher {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px;
  border: 1px solid hsl(var(--border));
  border-radius: 999px;
  background: hsl(var(--card));
}
.tb-locale-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 34px;
  height: 28px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 900;
  color: hsl(var(--muted-foreground));
}
.tb-locale-link.is-active {
  background: hsl(var(--primary));
  color: hsl(var(--primary-foreground));
}
.tb-portfolio-section .tb-filter-row,
.tb-portfolio-filter-row { margin-bottom: 26px; }
.tb-portfolio-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 26px;
}
.tb-portfolio-card {
  background: hsl(var(--card));
  border: 1px solid hsl(var(--border));
  border-radius: 24px;
  overflow: hidden;
  box-shadow: var(--shadow);
  display: flex;
  flex-direction: column;
  min-height: 100%;
  transition: transform .25s ease, box-shadow .25s ease;
}
.tb-portfolio-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-lg); }
.tb-portfolio-card:hover .tb-card-image img { transform: scale(1.05); }
.tb-portfolio-card .tb-card-body { padding: 22px; }
.tb-portfolio-stack {
  margin: 8px 0 10px;
  color: hsl(var(--muted-foreground));
  font-size: 13px;
  line-height: 1.5;
}
.tb-portfolio-card-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: hsl(var(--primary));
  font-weight: 900;
  font-size: 13px;
  margin-top: auto;
}
.tb-portfolio-single-layout { grid-template-columns: minmax(0, 920px); justify-content: center; }
.tb-stack-meta { max-width: 100%; }
.tb-blog-service-cta {
  margin: 34px 0;
  padding: 28px;
  border: 1px solid hsl(var(--primary) / .22);
  border-radius: 24px;
  background: linear-gradient(135deg, hsl(var(--primary) / .09), hsl(var(--card)) 58%);
  box-shadow: var(--shadow);
}
.tb-blog-service-cta h2 { margin: 0 0 8px; font-size: clamp(22px, 3vw, 32px); letter-spacing: -0.04em; }
.tb-blog-service-cta p { color: hsl(var(--muted-foreground)); margin: 0; }
.tb-blog-cta-form {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) auto;
  gap: 12px;
  align-items: center;
  margin-top: 18px;
}
.tb-blog-cta-form input[type="text"] {
  width: 100%;
  height: 46px;
  border: 1px solid hsl(var(--border));
  border-radius: 999px;
  padding: 0 16px;
  background: #fff;
}
.tb-blog-cta-turnstile {
  grid-column: 1 / -1;
  justify-self: start;
  margin: 2px 0 0;
}
.tb-blog-cta-form .tb-contact-form-message { grid-column: 1 / -1; margin: 2px 0 0; font-size: 13px; font-weight: 700; }
.tb-contact-form-message.is-success { color: #15803d; }
.tb-contact-form-message.is-error { color: #b91c1c; }
.tb-contact-hp { position:absolute!important; left:-9999px!important; width:1px!important; height:1px!important; overflow:hidden!important; }
.tb-ad-network-stack,
.tb-ad-provider,
.tb-ad-provider.is-active {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}
.tb-ad-provider {
  overflow: hidden;
}
.tb-ad-provider ins.adsbygoogle {
  display: block;
  width: 100%;
  max-width: 100%;
}
.tb-ad-provider iframe,
.tb-ad-provider img,
.tb-ad-provider video {
  max-width: 100%;
}
.tb-ad-provider[hidden] { display: none !important; }
/* Printing is disabled site-wide: printed output is blank (no content, no
 * subscription/print message). */
@media print {
  html, body { display: none !important; }
}
@media (max-width: 860px) {
  .tb-portfolio-grid { grid-template-columns: 1fr; }
  .tb-blog-cta-form { grid-template-columns: 1fr; }
  .tb-blog-cta-form .tb-btn { width: 100%; }
  .tb-locale-switcher { margin-left: auto; }
}
@media (max-width: 760px) {
  /* Keep logo at the left and the language switcher + hamburger grouped on the right.
     (Previously order:3 reordered the toggle next to the logo, splitting the corner.) */
  .tb-nav-row { flex-wrap: nowrap; }
  .tb-primary-nav.is-open + .tb-locale-switcher { display: inline-flex; }
  .tb-locale-switcher { margin-left: auto; order: 0; }
  .tb-menu-toggle { order: 0; }
}
.tb-contact-form-actions .tb-contact-turnstile-row { flex: 0 0 100%; }

/* v2.3.1: card title line cap + row alignment */
.tb-card-title {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: var(--tb-card-title-row-lines, var(--tb-card-title-max-lines, 3));
  line-clamp: var(--tb-card-title-row-lines, var(--tb-card-title-max-lines, 3));
  overflow: hidden;
}
.tb-card-title a { display: inline; }
.tb-card-title[data-tb-title-lines-ready="1"] {
  min-height: var(--tb-card-title-row-height, calc(var(--tb-card-title-row-lines, 1) * 1.28em));
}
.tb-card-read-time { flex-shrink: 0; }

/* v2.3.2 portfolio parity, cache tools and admin polish */
body.tb-portfolio-listing-page .tb-toolbar {
  width: 100% !important;
  max-width: 100% !important;
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 18px !important;
}
body.tb-portfolio-listing-page .tb-search-form {
  width: min(100%, 460px) !important;
  max-width: 460px !important;
}
/* Portfolio listing grid/cards are governed by the canonical geometry block. */
body.single-tb_portfolio.tb-article-rails-active .tb-side-rail-ad { display: none !important; }
body.single-tb_portfolio.tb-article-rails-two-active .tb-side-rail-ad,
body.single-tb_portfolio.tb-article-rails-one-active .tb-side-rail-ad-right {
  display: block !important;
  position: fixed !important;
  top: var(--tb-article-dynamic-rail-top, var(--tb-article-side-ad-top, 112px)) !important;
  width: var(--tb-article-active-rail-width, var(--tb-compact-desktop-rail-width, 180px)) !important;
  min-width: var(--tb-article-active-rail-width, var(--tb-compact-desktop-rail-width, 180px)) !important;
  min-height: var(--tb-article-side-ad-min-height, 600px) !important;
  max-height: none !important;
  overflow: visible !important;
  overscroll-behavior: auto !important;
  z-index: 36 !important;
  opacity: 1 !important;
  transform: translate3d(0,0,0) !important;
  pointer-events: auto !important;
}
body.admin-bar.single-tb_portfolio.tb-article-rails-two-active .tb-side-rail-ad,
body.admin-bar.single-tb_portfolio.tb-article-rails-one-active .tb-side-rail-ad-right {
  top: calc(var(--tb-article-dynamic-rail-top, var(--tb-article-side-ad-top, 112px)) + 32px) !important;
  max-height: none !important;
}
body.single-tb_portfolio.tb-article-rails-one-active .tb-side-rail-ad-left { display: none !important; }
body.single-tb_portfolio.tb-article-rails-two-active .tb-side-rail-ad-left { left: var(--tb-article-side-ad-edge-gap, 5px) !important; right: auto !important; }
body.single-tb_portfolio.tb-article-rails-two-active .tb-side-rail-ad-right,
body.single-tb_portfolio.tb-article-rails-one-active .tb-side-rail-ad-right { right: var(--tb-article-side-ad-edge-gap, 5px) !important; left: auto !important; }
body.single-tb_portfolio.tb-article-rails-active .tb-single-layout {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  margin-inline: 0 !important;
}
body.single-tb_portfolio.tb-article-rails-one-active .tb-single-layout {
  padding-left: 14px !important;
  padding-right: calc(var(--tb-article-active-rail-width, var(--tb-compact-desktop-rail-width, 180px)) + 24px) !important;
}
body.single-tb_portfolio.tb-article-rails-two-active .tb-single-layout {
  padding-left: calc(var(--tb-article-active-rail-width, var(--tb-compact-desktop-rail-width, 180px)) + 24px) !important;
  padding-right: calc(var(--tb-article-active-rail-width, var(--tb-compact-desktop-rail-width, 180px)) + 24px) !important;
}
body.single-tb_portfolio.tb-article-rails-active .tb-article-wrap {
  width: min(850px, var(--tb-article-content-available, calc(100% - 32px))) !important;
  max-width: 100% !important;
}
body.single-tb_portfolio.tb-article-rails-one-active .tb-article-wrap { margin-left: 0 !important; margin-right: auto !important; }
body.single-tb_portfolio.tb-article-rails-two-active .tb-article-wrap { margin-inline: auto !important; }
body.single-tb_portfolio.tb-article-rails-active .tb-article-ad-mobile { display: none !important; }
body.single-tb_portfolio .tb-portfolio-single-layout { grid-template-columns: minmax(0, 920px); }
body.single-tb_portfolio .tb-blog-service-cta { margin-top: 42px; }

/* v2.3.3 strict visual validation polish */
.tb-read-more-card strong.tb-card-title,
.tb-read-more-card .tb-read-more-title {
  margin: 0;
  font-size: 1rem;
  line-height: 1.35;
  letter-spacing: -.02em;
}
.tb-read-more-card .tb-read-more-title[data-tb-title-lines-ready="1"] {
  min-height: calc(var(--tb-card-title-row-lines, 1) * 1.35em);
}
.tb-footer .tb-logo-image img {
  width: 28px;
  height: 28px;
  object-fit: contain;
  display: block;
}

/* Flexible language and responsive hardening */
html,
body {
  max-width: 100%;
  overflow-x: hidden;
}
.tb-page,
.tb-container,
.tb-section,
.tb-card,
.tb-post-card,
.tb-portfolio-card,
.tb-card-body,
.tb-article-wrap,
.tb-article-content,
.tb-prose,
.tb-single-head,
.tb-service-category-card,
.tb-service-jump-nav,
.tb-blog-service-cta,
.tb-subscribe-card {
  min-width: 0;
}
.tb-article-content,
.tb-article-content p,
.tb-article-content li,
.tb-prose,
.tb-page-hero h1,
.tb-page-hero p,
.tb-card-title,
.tb-card-title a,
.tb-card-excerpt,
.tb-portfolio-stack,
.tb-service-jump-nav a,
.tb-btn,
.tb-filter-pill,
.tb-subscribe-form input,
.tb-blog-cta-form input,
.tb-contact-form input,
.tb-contact-form textarea {
  overflow-wrap: anywhere;
  word-break: normal;
}
.tb-article-content img,
.tb-article-content iframe,
.tb-prose img,
.tb-prose iframe,
.tb-card-image img {
  max-width: 100%;
}
.tb-btn,
.tb-filter-pill,
.tb-service-jump-nav a {
  white-space: normal;
}

/* v2.3.4 final validation polish: editable labels, portfolio ad loader parity, portfolio SEO fields. */

/* v2.3.6 portfolio column overrides removed — superseded by the canonical
 * solver-driven geometry block (cards + rails sized together). */

/* Mobile content resilience: TinyMCE content, cards, buttons and embeds must not clip on narrow phones. */
.tb-prose,
.tb-prose *,
.tb-card-title,
.tb-card-title a,
.tb-portfolio-stack,
.tb-card-excerpt,
.tb-btn,
.tb-filter-pill,
.tb-portfolio-card-link,
.tb-single-title,
.tb-section-title,
.tb-page-hero h1 {
  overflow-wrap: break-word;
  word-break: normal;
  hyphens: auto;
}

.tb-prose img,
.tb-prose video,
.tb-prose iframe,
.tb-prose embed,
.tb-prose object,
.tb-article-wrap img,
.tb-card-image img {
  max-width: 100%;
  height: auto;
}

/* Content media containment: authors insert full-size images and [caption] blocks whose
   wrapper carries an inline width (e.g. style="width:1210px"), which broke out of the
   article column into the ad rails. Cap every media block AND its WordPress wrapper to the
   column (max-width beats the inline width), style captions, and support the align buttons. */
.tb-prose figure,
.tb-prose .wp-caption,
.tb-prose .wp-block-image,
.tb-article-content figure,
.tb-article-content .wp-caption,
.tb-article-content .wp-block-image {
  max-width: 100% !important;
  height: auto;
}
.tb-prose figure,
.tb-prose .wp-caption,
.tb-prose .aligncenter,
.tb-prose img.aligncenter,
.tb-article-content figure,
.tb-article-content .wp-caption,
.tb-article-content .aligncenter,
.tb-article-content img.aligncenter {
  margin-left: auto !important;
  margin-right: auto !important;
}
.tb-prose .wp-caption-text,
.tb-prose figcaption,
.tb-article-content .wp-caption-text,
.tb-article-content figcaption {
  /* display:block !important overrides WordPress core's `.wp-block-image figcaption
     { display: table-caption }`. Core assumes the figure is display:table, but this
     theme renders figures as display:block, leaving the caption with no table
     context — it collapsed to a ~1-character column (worsened by overflow-wrap:
     anywhere) and stacked every letter vertically. Block flow fills the figure width. */
  display: block !important;
  overflow-wrap: break-word;
  width: auto;
  font-size: 14px;
  line-height: 1.5;
  color: hsl(var(--muted-foreground));
  text-align: center;
  margin-top: 8px;
}
/* Caption text follows the image's Align choice (Left / Center / Right / None) — the
   Align buttons in the Image-details dialog are the control. Center is the default above. */
.tb-prose .alignleft .wp-caption-text,
.tb-prose .alignleft figcaption,
.tb-prose .alignnone .wp-caption-text,
.tb-prose .alignnone figcaption,
.tb-article-content .alignleft .wp-caption-text,
.tb-article-content .alignleft figcaption,
.tb-article-content .alignnone .wp-caption-text,
.tb-article-content .alignnone figcaption {
  text-align: left;
}
.tb-prose .alignright .wp-caption-text,
.tb-prose .alignright figcaption,
.tb-article-content .alignright .wp-caption-text,
.tb-article-content .alignright figcaption {
  text-align: right;
}
.tb-prose .alignleft,
.tb-article-content .alignleft {
  float: left;
  margin: 6px 24px 16px 0;
  max-width: min(50%, 100%);
}
.tb-prose .alignright,
.tb-article-content .alignright {
  float: right;
  margin: 6px 0 16px 24px;
  max-width: min(50%, 100%);
}
.tb-prose .alignnone,
.tb-prose .aligncenter,
.tb-article-content .alignnone,
.tb-article-content .aligncenter {
  display: block;
}
/* A center-aligned figure must shrink to the image's own width so the existing
   margin:auto can actually center it (and its caption) in the column. Without a
   width, display:block spans full-width and margin:auto has nothing to center —
   which pushed the image and caption to the left. */
.tb-prose figure.aligncenter,
.tb-article-content figure.aligncenter {
  width: fit-content;
  max-width: 100%;
}

.tb-prose table,
.tb-prose pre,
.tb-prose code {
  max-width: 100%;
}

.tb-prose table,
.tb-prose pre {
  overflow-x: auto;
  display: block;
}

@media (max-width: 520px) {
  .tb-article-wrap,
  .tb-single-head-inner,
  .tb-page-hero .tb-container,
  .tb-container {
    min-width: 0;
  }

  .tb-prose {
    font-size: 16px;
    line-height: 1.82;
    padding-inline: 2px;
  }

  .tb-btn,
  .tb-filter-pill,
  .tb-portfolio-card-link {
    max-width: 100%;
    white-space: normal;
  }
}

/* Hide the server-rendered article/portfolio side rails whenever the rail engine
   is NOT in its active (pair) state — otherwise, on a medium-wide article that
   falls to the bottom-ad state, the default-grid rails would show alongside the
   bottom ad. Scoped to the single templates so listing rails are unaffected. */
body.single-post:not(.tb-article-rails-active) .tb-side-rail-ad,
body.single-tb_portfolio:not(.tb-article-rails-active) .tb-side-rail-ad {
  display: none !important;
}

/* Stabilization layer: shared rails, cards and public empty-ad behavior. */
body.tb-blog-rails-active .tb-blog-ad-rail,
body.tb-article-rails-active .tb-side-rail-ad {
  display: block !important;
  width: var(--tb-blog-active-rail-width, var(--tb-article-active-rail-width, 300px)) !important;
  max-width: var(--tb-blog-active-rail-width, var(--tb-article-active-rail-width, 300px)) !important;
  min-width: var(--tb-blog-active-rail-width, var(--tb-article-active-rail-width, 300px)) !important;
  overflow: visible !important;
}

/* Primary/right and secondary/left rails size independently. */
body.tb-blog-rails-active .tb-blog-ad-rail.tb-blog-ad-rail-right {
  width: var(--tb-blog-primary-rail-width, 300px) !important;
  min-width: var(--tb-blog-primary-rail-width, 300px) !important;
  max-width: var(--tb-blog-primary-rail-width, 300px) !important;
}
body.tb-blog-rails-two-active .tb-blog-ad-rail.tb-blog-ad-rail-left {
  width: var(--tb-blog-secondary-rail-width, 300px) !important;
  min-width: var(--tb-blog-secondary-rail-width, 300px) !important;
  max-width: var(--tb-blog-secondary-rail-width, 300px) !important;
}
body.tb-article-rails-active .tb-side-rail-ad.tb-side-rail-ad-right {
  width: var(--tb-article-primary-rail-width, 300px) !important;
  min-width: var(--tb-article-primary-rail-width, 300px) !important;
  max-width: var(--tb-article-primary-rail-width, 300px) !important;
}
body.tb-article-rails-two-active .tb-side-rail-ad.tb-side-rail-ad-left {
  width: var(--tb-article-secondary-rail-width, 300px) !important;
  min-width: var(--tb-article-secondary-rail-width, 300px) !important;
  max-width: var(--tb-article-secondary-rail-width, 300px) !important;
}
body.single-post.tb-article-rails-two-active .tb-single-layout,
body.single-tb_portfolio.tb-article-rails-two-active .tb-single-layout {
  padding-left: calc(var(--tb-article-secondary-rail-width, 300px) + var(--tb-article-effective-edge-gap, 16px) + var(--tb-article-effective-rail-gap, 24px)) !important;
  padding-right: calc(var(--tb-article-primary-rail-width, 300px) + var(--tb-article-effective-edge-gap, 16px) + var(--tb-article-effective-rail-gap, 24px)) !important;
}
body.tb-blog-rails-two-active .tb-blog-ad-rail.tb-blog-ad-rail-left {
  left: var(--tb-blog-effective-edge-gap, 16px) !important;
  right: auto !important;
}
body.tb-blog-rails-active .tb-blog-ad-rail.tb-blog-ad-rail-right {
  right: var(--tb-blog-effective-edge-gap, 16px) !important;
  left: auto !important;
}
/* Old margin-based one-rail offsets removed — the canonical geometry block
 * positions the content column via var-driven margins that clear to auto when
 * no rail is active (no residual spacing behind a hidden rail). */
body.tb-blog-rails-one-active.tb-blog-rail-dock-left .tb-blog-ad-rail.is-active-single-rail {
  left: var(--tb-blog-single-rail-left, 16px) !important;
  right: auto !important;
}
body.tb-article-rails-two-active .tb-side-rail-ad.tb-side-rail-ad-left {
  left: var(--tb-article-effective-edge-gap, 16px) !important;
  right: auto !important;
}
body.tb-article-rails-active .tb-side-rail-ad.tb-side-rail-ad-right {
  right: var(--tb-article-effective-edge-gap, 16px) !important;
  left: auto !important;
}
body.single-post.tb-article-rails-one-active .tb-single-layout,
body.single-tb_portfolio.tb-article-rails-one-active .tb-single-layout {
  padding-left: var(--tb-article-effective-edge-gap, 16px) !important;
  padding-right: calc(var(--tb-article-primary-rail-width, 300px) + var(--tb-article-effective-edge-gap, 16px) + var(--tb-article-effective-rail-gap, 24px)) !important;
}
body.tb-article-rails-one-active.tb-article-rail-dock-left .tb-side-rail-ad.tb-side-rail-ad-right {
  left: var(--tb-article-effective-edge-gap, 16px) !important;
  right: auto !important;
}
body.single-post.tb-article-rails-one-active.tb-article-rail-dock-left .tb-single-layout,
body.single-tb_portfolio.tb-article-rails-one-active.tb-article-rail-dock-left .tb-single-layout {
  padding-left: calc(var(--tb-article-primary-rail-width, 300px) + var(--tb-article-effective-edge-gap, 16px) + var(--tb-article-effective-rail-gap, 24px)) !important;
  padding-right: var(--tb-article-effective-edge-gap, 16px) !important;
}

/* === CANONICAL LISTING GEOMETRY (single source of truth) ===
 * The JS solver sizes cards and rails together in one pass and exposes the
 * result through CSS variables. The content column width is the available
 * space MINUS the rail block; the rails are position:fixed at the viewport
 * edges. Margins are var-driven (auto when no rail) so a hidden rail can never
 * leave residual spacing. This rule set carries the highest specificity for
 * .tb-blog-main-column, so it alone decides the column geometry. */
body.tb-blog-listing-page .tb-blog-main-column,
body.tb-portfolio-listing-page .tb-blog-main-column,
body.tb-blog-listing-page.tb-blog-rails-one-active .tb-blog-main-column,
body.tb-portfolio-listing-page.tb-blog-rails-one-active .tb-blog-main-column,
body.tb-blog-listing-page.tb-blog-rails-one-active.tb-blog-rail-dock-left .tb-blog-main-column,
body.tb-portfolio-listing-page.tb-blog-rails-one-active.tb-blog-rail-dock-left .tb-blog-main-column,
body.tb-blog-listing-page.tb-blog-rails-two-active .tb-blog-main-column,
body.tb-portfolio-listing-page.tb-blog-rails-two-active .tb-blog-main-column {
  box-sizing: border-box;
  width: var(--tb-blog-content-available, calc(100% - 32px)) !important;
  max-width: calc(100% - 32px) !important;
  margin-left: var(--tb-listing-main-margin-left, auto) !important;
  margin-right: var(--tb-listing-main-margin-right, auto) !important;
  padding-inline: 0 !important;
}

body.tb-blog-listing-page .tb-toolbar,
body.tb-portfolio-listing-page .tb-toolbar,
body.tb-blog-listing-page .tb-post-grid,
body.tb-portfolio-listing-page .tb-portfolio-grid,
body.tb-blog-listing-page [data-tb-listing-pagination-slot],
body.tb-portfolio-listing-page [data-tb-listing-pagination-slot] {
  box-sizing: border-box;
  width: 100% !important;
  max-width: 100% !important;
  margin-inline: auto !important;
}

body.tb-blog-listing-page .tb-post-grid,
body.tb-portfolio-listing-page .tb-portfolio-grid {
  grid-template-columns: repeat(var(--tb-listing-columns, 1), minmax(var(--tb-listing-card-min, 0px), var(--tb-listing-card-max, 400px))) !important;
  justify-content: center !important;
  align-items: stretch;
  gap: 20px !important;
}

body.tb-blog-listing-page .tb-post-card,
body.tb-portfolio-listing-page .tb-portfolio-card {
  width: 100% !important;
  max-width: var(--tb-listing-card-max, 400px) !important;
  min-width: 0 !important;
  margin-inline: 0 !important;
}

[data-tb-listing-root].is-loading [data-tb-post-grid] {
  min-height: max(220px, var(--tb-listing-loading-height, 220px)) !important;
}
[data-tb-listing-root].is-loading [data-tb-search-input] {
  pointer-events: auto !important;
}

[data-tb-listing-root].tb-listing-has-no-results [data-tb-post-grid] {
  display: block !important;
  min-height: 0 !important;
}
[data-tb-listing-root].tb-listing-has-no-results [data-tb-listing-empty] {
  width: 100%;
  margin-inline: auto;
  text-align: center;
}

body.tb-blog-rails-none .tb-blog-ad-rail,
body:not(.tb-blog-rails-active) .tb-blog-ad-rail.tb-rail-managed {
  display: none !important;
}

body.tb-blog-listing-page.tb-blog-rails-one-active .tb-blog-ad-rail,
body.tb-portfolio-listing-page.tb-blog-rails-one-active .tb-blog-ad-rail {
  display: none !important;
}
body.tb-blog-listing-page.tb-blog-rails-one-active .tb-blog-ad-rail.is-active-single-rail,
body.tb-portfolio-listing-page.tb-blog-rails-one-active .tb-blog-ad-rail.is-active-single-rail,
body.tb-blog-listing-page.tb-blog-rails-one-active.tb-blog-rail-dock-left .tb-blog-ad-rail.is-active-single-rail,
body.tb-portfolio-listing-page.tb-blog-rails-one-active.tb-blog-rail-dock-left .tb-blog-ad-rail.is-active-single-rail {
  display: block !important;
  position: fixed !important;
  top: var(--tb-blog-dynamic-rail-top, 112px) !important;
  left: var(--tb-blog-single-rail-left) !important;
  right: auto !important;
  width: var(--tb-blog-primary-rail-width, 300px) !important;
  min-width: var(--tb-blog-primary-rail-width, 300px) !important;
  max-width: var(--tb-blog-primary-rail-width, 300px) !important;
}

body.tb-blog-listing-page.tb-blog-rails-two-active .tb-blog-ad-rail-left,
body.tb-portfolio-listing-page.tb-blog-rails-two-active .tb-blog-ad-rail-left {
  display: block !important;
  position: fixed !important;
  left: var(--tb-blog-left-rail-left) !important;
  right: auto !important;
}
body.tb-blog-listing-page.tb-blog-rails-two-active .tb-blog-ad-rail-right,
body.tb-portfolio-listing-page.tb-blog-rails-two-active .tb-blog-ad-rail-right {
  display: block !important;
  position: fixed !important;
  left: var(--tb-blog-right-rail-left) !important;
  right: auto !important;
}

/* Floating utility controls stay opposite the active single rail. */
body.tb-blog-rails-one-active:not(.tb-blog-rail-dock-left) .tb-rail-dock-button,
body.tb-article-rails-one-active:not(.tb-article-rail-dock-left) .tb-rail-dock-button {
  top: auto !important;
  left: 16px !important;
  right: auto !important;
  bottom: 72px !important;
}
body.tb-blog-rails-one-active:not(.tb-blog-rail-dock-left) .tb-back-to-top,
body.tb-article-rails-one-active:not(.tb-article-rail-dock-left) .tb-back-to-top {
  left: 16px !important;
  right: auto !important;
  bottom: 16px !important;
}
body.tb-blog-rails-one-active.tb-blog-rail-dock-left .tb-rail-dock-button,
body.tb-article-rails-one-active.tb-article-rail-dock-left .tb-rail-dock-button {
  top: auto !important;
  left: auto !important;
  right: 16px !important;
  bottom: 72px !important;
}
body.tb-blog-rails-one-active.tb-blog-rail-dock-left .tb-back-to-top,
body.tb-article-rails-one-active.tb-article-rail-dock-left .tb-back-to-top {
  left: auto !important;
  right: 16px !important;
  bottom: 16px !important;
}

/* Live listing and rail contract. */
.tb-listing-status {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
[data-tb-listing-root] [data-tb-post-grid] {
  position: relative;
  min-height: 220px;
  transition: none !important;
}
[data-tb-listing-root].is-loading [data-tb-post-grid] {
  opacity: 1 !important;
  pointer-events: none;
}
[data-tb-listing-root].is-loading [data-tb-post-grid]::after {
  content: "";
  position: absolute;
  z-index: 20;
  top: 32px;
  left: 50%;
  width: 34px;
  height: 34px;
  margin-left: -17px;
  border: 4px solid rgba(36, 55, 216, .18);
  border-top-color: var(--tb-theme-accent, #2437d8);
  border-radius: 50%;
  animation: tb-listing-loader-spin .7s linear infinite;
  box-shadow: 0 4px 18px rgba(15, 23, 42, .12);
}
[data-tb-listing-root].is-loading [data-tb-filter],
[data-tb-listing-root].is-loading [data-tb-search-input] {
  pointer-events: none !important;
}
@keyframes tb-listing-loader-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
  [data-tb-listing-root].is-loading [data-tb-post-grid]::after { animation-duration: 1.5s; }
}
body.tb-blog-listing-page .tb-post-grid,
body.tb-portfolio-listing-page .tb-portfolio-grid {
  gap: 20px !important;
}
/* Fixed-width cols-class grids removed: the solver now flexes card width in
 * [card-min..card-max] via --tb-listing-card-min/max so cards shrink to make
 * rails fit instead of being pinned to a fixed 300-400 track. */
body.tb-blog-listing-page .tb-listing-inline-ad,
body.tb-portfolio-listing-page .tb-listing-inline-ad {
  grid-column: 1 / -1 !important;
  box-sizing: border-box;
  width: 100% !important;
  max-width: none !important;
  min-height: 250px;
  margin-inline: 0 !important;
}
body.tb-blog-listing-page .tb-listing-end-ad,
body.tb-portfolio-listing-page .tb-listing-end-ad {
  width: 100% !important;
  max-width: var(--tb-blog-content-available, 100%) !important;
}
/* Medium-height tier: snap the rail slot to an exact 300x250 box (the JS sets
   --tb-active-rail-height to 250 here) so Google serves a real medium rectangle
   instead of a stretched-to-fit creative. min = height = max keeps it exact. */
body.tb-rail-height-short.tb-blog-rails-active .tb-blog-ad-rail,
body.tb-rail-height-short.tb-article-rails-active .tb-side-rail-ad,
body.tb-rail-height-short.tb-blog-rails-active .tb-blog-ad-rail ins.adsbygoogle,
body.tb-rail-height-short.tb-article-rails-active .tb-side-rail-ad ins.adsbygoogle {
  min-height: var(--tb-active-rail-height, 250px) !important;
  height: var(--tb-active-rail-height, 250px) !important;
  max-height: var(--tb-active-rail-height, 250px) !important;
}

/* ── Rail-to-bottom-ad fallback ───────────────────────────────────────────────
   On short / landscape viewports (or zoom > ~150%) the side rails are dropped and
   a single borderless ad is anchored at the viewport bottom (see the bottomAd
   path in tbSolveListingLayout / the article updateRails). The listing uses a
   dedicated .tb-listing-bottom-ad container; the article reuses the inline mobile
   slot (.tb-article-ad-mobile). Both are hidden until the layout engine adds the
   body flag, then pinned to the bottom with no border or divider line. */
.tb-listing-bottom-ad { display: none; }

body.tb-rails-bottom-ad .tb-listing-bottom-ad,
body.tb-article-rails-bottom-ad .tb-article-ad-mobile {
  display: flex !important;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  position: fixed !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 6px 12px calc(6px + env(safe-area-inset-bottom, 0px)) !important;
  box-sizing: border-box !important;
  height: var(--tb-bottom-ad-reserve, 116px) !important;
  min-height: var(--tb-bottom-ad-reserve, 116px) !important;
  background: hsl(var(--background)) !important;
  border: 0 !important;
  box-shadow: none !important;
  z-index: 60 !important; /* under the floating utility buttons (z-index 80) */
  overflow: hidden !important;
}

/* --- Ad presentation polish --- */

/* Match the bottom anchor ad to the bordered-card look of the side rails / inline ads
   (the base rule above renders it as a borderless full-width bar). */
body.tb-rails-bottom-ad .tb-listing-bottom-ad,
body.tb-article-rails-bottom-ad .tb-article-ad-mobile {
  left: 50% !important;
  right: auto !important;
  transform: translateX(-50%) !important;
  width: min(970px, calc(100% - 24px)) !important;
  max-width: min(970px, calc(100% - 24px)) !important;
  border: 1px solid hsl(var(--border)) !important;
  border-radius: 14px !important;
  background: hsl(var(--card)) !important;
  box-shadow: 0 -2px 16px rgba(15, 23, 42, .08) !important;
}

/* Reserve bottom space so the last card / article text is never covered. */
body.tb-rails-bottom-ad,
body.tb-article-rails-bottom-ad {
  padding-bottom: var(--tb-bottom-ad-reserve, 116px) !important;
}

/* Centre and cap the creative to the anchor-banner zone. */
body.tb-rails-bottom-ad .tb-listing-bottom-ad ins.adsbygoogle,
body.tb-rails-bottom-ad .tb-listing-bottom-ad .tb-test-ad,
body.tb-article-rails-bottom-ad .tb-article-ad-mobile ins.adsbygoogle,
body.tb-article-rails-bottom-ad .tb-article-ad-mobile .tb-test-ad {
  display: block !important;
  width: 100% !important;
  max-width: 970px !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: calc(var(--tb-bottom-ad-reserve, 116px) - 28px) !important;
  margin: 0 auto !important;
}

/* Float the back-to-top control above the anchored bottom ad. */
body.tb-rails-bottom-ad .tb-back-to-top,
body.tb-article-rails-bottom-ad .tb-back-to-top {
  bottom: calc(22px + var(--tb-bottom-ad-reserve, 116px)) !important;
}


body.tb-article-rails-active .tb-side-rail-ad {
  width: var(--tb-article-active-rail-width, 300px) !important;
  max-width: var(--tb-article-active-rail-width, 300px) !important;
  min-width: var(--tb-article-active-rail-width, 300px) !important;
  top: var(--tb-article-dynamic-rail-top, var(--tb-article-side-ad-top, 112px)) !important;
}

body.tb-blog-rails-active .tb-blog-ad-rail {
  top: var(--tb-blog-dynamic-rail-top, var(--tb-blog-listing-side-ad-top, 112px)) !important;
}

body.tb-portfolio-listing-page.tb-blog-rails-active .tb-blog-ad-rail ins.adsbygoogle,
body.tb-portfolio-listing-page.tb-blog-rails-active .tb-blog-listing-side-ad ins.adsbygoogle {
  display: block !important;
  width: 100% !important;
  min-width: 100% !important;
  min-height: 280px !important;
}

body:not(.logged-in) .tb-ad-unfilled,
body:not(.logged-in) .tb-ad-unfilled .tb-ad-label,
body:not(.logged-in) .tb-ad-unfilled-rail .tb-ad-label,
body:not(.logged-in) .tb-ad-unfilled-rail ins.adsbygoogle {
  display: none !important;
}

body.tb-blog-rails-active:not(.logged-in) .tb-ad-unfilled-rail,
body.tb-article-rails-active:not(.logged-in) .tb-ad-unfilled-rail {
  display: block !important;
  height: auto !important;
  min-height: var(--tb-blog-listing-side-ad-min-height, 600px) !important;
  padding: 0 !important;
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}

.tb-card-title[data-tb-title-lines-ready="1"] {
  min-height: var(--tb-card-title-row-height) !important;
  margin-bottom: 8px !important;
}

.tb-post-card .tb-card-read-time,
.tb-portfolio-card .tb-card-read-time,
.tb-read-more-card .tb-card-read-time {
  margin-top: 0 !important;
}

.tb-prose,
.tb-prose *,
.tb-card-title,
.tb-section-title,
.tb-page-hero h1,
.tb-btn,
.tb-filter-pill,
.tb-portfolio-card-link {
  overflow-wrap: anywhere;
  word-break: normal;
}

.tb-home-portfolio-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

@media (max-width: 920px) {
  .tb-home-portfolio-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .tb-home-portfolio-grid {
    grid-template-columns: 1fr;
  }
}

/* v2.3.3: stable rails, measured card rows, consent controls and listing rhythm. */
.tb-toolbar {
  margin-bottom: 24px !important;
}
.tb-portfolio-section .tb-filter-row,
.tb-portfolio-filter-row {
  margin-bottom: 0 !important;
}
body.single-post:not(.tb-article-rails-ready) .tb-side-rail-ad.tb-rail-managed,
body.single-tb_portfolio:not(.tb-article-rails-ready) .tb-side-rail-ad.tb-rail-managed,
body.tb-blog-listing-page:not(.tb-blog-rails-ready) .tb-blog-ad-rail.tb-rail-managed,
body.tb-portfolio-listing-page:not(.tb-blog-rails-ready) .tb-blog-ad-rail.tb-rail-managed {
  display: none !important;
}
.tb-test-ad small {
  display: block;
  max-width: 28ch;
  margin-top: 8px;
  font-size: 11px;
  line-height: 1.35;
  font-weight: 600;
  text-transform: none;
}
.tb-ad-consent-blocked[hidden] {
  display: none !important;
}

@media (max-width: 700px) {
  .tb-toolbar { margin-bottom: 18px !important; }
}


/* v2.3.7 cols-class grids removed — geometry is solver/variable driven now. */
body.tb-blog-listing-page .tb-post-card,
body.tb-portfolio-listing-page .tb-portfolio-card,
body.home .tb-post-card,
body.home .tb-portfolio-card,
body.page-template-front-page .tb-post-card,
body.page-template-front-page .tb-portfolio-card {
  width: 100% !important;
  max-width: 400px !important;
}
body.home .tb-home-featured-section .tb-post-grid,
body.page-template-front-page .tb-home-featured-section .tb-post-grid,
body.home .tb-home-portfolio-grid,
body.page-template-front-page .tb-home-portfolio-grid {
  justify-content: center !important;
  justify-items: center !important;
}
.tb-card-title[data-tb-title-lines-ready="1"] {
  margin-bottom: 6px !important;
}

/* Single-page one-rail visitor docking control. */
.tb-rail-dock-button {
  position: fixed;
  top: 8px;
  left: auto;
  right: 8px;
  z-index: 60;
  width: 46px;
  height: 46px;
  transform: none;
  border: 0;
  border-radius: 999px;
  background: hsl(var(--primary));
  color: #fff;
  display: grid;
  place-items: center;
  box-shadow: 0 16px 34px rgba(15, 23, 42, .18);
  font-size: 22px;
  line-height: 1;
  font-weight: 800;
  cursor: pointer;
  transition: background .2s ease, transform .2s ease;
}
.tb-rail-dock-button:hover { background: hsl(var(--primary-hover)); }
.tb-rail-dock-button[hidden] { display: none !important; }
.tb-rail-dock-button:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--tb-theme-accent, #2421c4) 35%, transparent);
  outline-offset: 2px;
}
body.tb-article-rails-one-active.tb-article-rail-dock-left .tb-side-rail-ad-right {
  left: var(--tb-article-side-ad-edge-gap, 5px) !important;
  right: auto !important;
}
body.tb-article-rails-one-active.tb-article-rail-dock-left .tb-rail-dock-button {
  left: calc(var(--tb-article-side-ad-edge-gap, 5px) + 8px);
  right: auto;
  border-radius: 999px;
}
body.single-post.tb-article-rails-one-active .tb-single-layout,
body.single-tb_portfolio.tb-article-rails-one-active .tb-single-layout {
  box-sizing: border-box;
}
body.single-post.tb-article-rails-one-active .tb-article-wrap,
body.single-tb_portfolio.tb-article-rails-one-active .tb-article-wrap {
  box-sizing: border-box;
  width: min(850px, 100%) !important;
  max-width: min(850px, 100%) !important;
}
body.single-post.tb-article-rails-one-active.tb-article-rail-dock-left .tb-single-layout,
body.single-tb_portfolio.tb-article-rails-one-active.tb-article-rail-dock-left .tb-single-layout {
  padding-left: calc(var(--tb-article-active-rail-width, 180px) + 24px) !important;
  padding-right: 14px !important;
}
body.single-post.tb-article-rails-one-active.tb-article-rail-dock-left .tb-article-wrap,
body.single-tb_portfolio.tb-article-rails-one-active.tb-article-rail-dock-left .tb-article-wrap {
  width: min(850px, 100%) !important;
  max-width: min(850px, 100%) !important;
  margin-left: auto !important;
  margin-right: 0 !important;
}
body.single-post .tb-article-wrap,
body.single-tb_portfolio .tb-article-wrap {
  max-width: 850px !important;
}

/* Canonical one-rail controls live outside provider markup. */
body.tb-article-rails-one-active .tb-article-rail-dock-button {
  top: max(8px, calc(var(--tb-article-dynamic-rail-top, 112px) - 42px));
  right: calc(var(--tb-article-side-ad-edge-gap, 5px) + 8px);
}
body.admin-bar.tb-article-rails-one-active .tb-article-rail-dock-button {
  top: max(40px, calc(var(--tb-article-dynamic-rail-top, 112px) - 10px));
}
body.tb-article-rails-one-active.tb-article-rail-dock-left .tb-article-rail-dock-button {
  left: calc(var(--tb-article-side-ad-edge-gap, 5px) + 8px);
  right: auto;
}

body.tb-blog-listing-page.tb-blog-rails-one-active .tb-blog-ad-rail {
  display: none !important;
}
body.tb-portfolio-listing-page.tb-blog-rails-one-active .tb-blog-ad-rail {
  display: none !important;
}
body.tb-blog-listing-page.tb-blog-rails-one-active .tb-blog-ad-rail.is-active-single-rail {
  display: block !important;
  position: fixed !important;
  top: var(--tb-blog-dynamic-rail-top, var(--tb-blog-listing-side-ad-top, 112px)) !important;
  width: var(--tb-blog-primary-rail-width, 300px) !important;
  min-width: var(--tb-blog-primary-rail-width, 300px) !important;
  right: auto !important;
  left: var(--tb-blog-single-rail-left) !important;
}
body.tb-portfolio-listing-page.tb-blog-rails-one-active .tb-blog-ad-rail.is-active-single-rail {
  display: block !important;
  position: fixed !important;
  top: var(--tb-blog-dynamic-rail-top, var(--tb-blog-listing-side-ad-top, 112px)) !important;
  width: var(--tb-blog-primary-rail-width, 300px) !important;
  min-width: var(--tb-blog-primary-rail-width, 300px) !important;
  right: auto !important;
  left: var(--tb-blog-single-rail-left) !important;
}
body.tb-blog-listing-page.tb-blog-rails-one-active.tb-blog-rail-dock-left .tb-blog-ad-rail.is-active-single-rail {
  left: var(--tb-blog-single-rail-left) !important;
  right: auto !important;
}
body.tb-portfolio-listing-page.tb-blog-rails-one-active.tb-blog-rail-dock-left .tb-blog-ad-rail.is-active-single-rail {
  left: var(--tb-blog-single-rail-left) !important;
  right: auto !important;
}
/* main-column margins are governed solely by the canonical geometry block */
body.tb-blog-listing-page.tb-blog-rails-one-active .tb-listing-rail-dock-button {
  top: max(8px, calc(var(--tb-blog-dynamic-rail-top, 112px) - 42px));
  right: calc(var(--tb-blog-rail-edge-gap, 5px) + 8px);
}
body.tb-portfolio-listing-page.tb-blog-rails-one-active .tb-listing-rail-dock-button {
  top: max(8px, calc(var(--tb-blog-dynamic-rail-top, 112px) - 42px));
  right: calc(var(--tb-blog-rail-edge-gap, 5px) + 8px);
}
body.admin-bar.tb-blog-listing-page.tb-blog-rails-one-active .tb-listing-rail-dock-button {
  top: max(40px, calc(var(--tb-blog-dynamic-rail-top, 112px) - 10px));
}
body.admin-bar.tb-portfolio-listing-page.tb-blog-rails-one-active .tb-listing-rail-dock-button {
  top: max(40px, calc(var(--tb-blog-dynamic-rail-top, 112px) - 10px));
}
body.tb-blog-listing-page.tb-blog-rails-one-active.tb-blog-rail-dock-left .tb-listing-rail-dock-button {
  left: calc(var(--tb-blog-rail-edge-gap, 5px) + 8px);
  right: auto;
}
body.tb-portfolio-listing-page.tb-blog-rails-one-active.tb-blog-rail-dock-left .tb-listing-rail-dock-button {
  left: calc(var(--tb-blog-rail-edge-gap, 5px) + 8px);
  right: auto;
}

/* Controls wrap at word boundaries; prose and titles retain resilient wrapping. */
.tb-btn,
.tb-filter-pill,
.tb-service-jump-nav a,
.tb-portfolio-card-link {
  overflow-wrap: normal !important;
  word-break: normal !important;
  hyphens: none !important;
}
.tb-blog-main-column {
  scroll-margin-top: 90px;
}

/* Standard ad envelopes: reserve proven sizes without scaling provider creatives. */
body.tb-rail-size-300.tb-blog-rails-active .tb-blog-ad-rail,
body.tb-rail-size-300.tb-article-rails-active .tb-side-rail-ad {
  width: 300px !important;
  min-width: 300px !important;
  max-width: 300px !important;
}
body.tb-rail-size-160.tb-blog-rails-active .tb-blog-ad-rail,
body.tb-rail-size-160.tb-article-rails-active .tb-side-rail-ad {
  width: 160px !important;
  min-width: 160px !important;
  max-width: 160px !important;
}
body.tb-blog-rails-active .tb-blog-ad-rail,
body.tb-article-rails-active .tb-side-rail-ad {
  box-sizing: border-box;
  min-height: 600px !important;
}
body.tb-blog-rails-active .tb-blog-ad-rail ins.adsbygoogle,
body.tb-article-rails-active .tb-side-rail-ad ins.adsbygoogle {
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  min-height: 600px !important;
}
body.tb-blog-rails-active .tb-blog-ad-rail iframe,
body.tb-article-rails-active .tb-side-rail-ad iframe,
body.tb-blog-rails-active .tb-blog-ad-rail img,
body.tb-article-rails-active .tb-side-rail-ad img {
  max-width: 100% !important;
}

.tb-article-ad-inline,
.tb-listing-inline-ad {
  box-sizing: border-box;
  width: min(100%, 300px);
  min-height: 250px;
  margin-inline: auto;
  overflow: visible;
}
.tb-article-ad-inline.tb-inline-envelope-336,
.tb-listing-inline-ad.tb-inline-envelope-336 {
  width: min(100%, 336px);
  min-height: 280px;
}
.tb-article-ad-inline.tb-inline-envelope-custom-fixed,
.tb-listing-inline-ad.tb-inline-envelope-custom-fixed {
  width: var(--tb-ad-fixed-width, 300px);
  max-width: none;
  min-height: var(--tb-ad-fixed-height, 250px);
}
.tb-article-ad-inline.tb-ad-fixed-size,
.tb-listing-inline-ad.tb-ad-fixed-size {
  width: var(--tb-ad-fixed-width, 300px);
  max-width: none;
}
.tb-article-ad-inline.tb-ad-fixed-size iframe,
.tb-listing-inline-ad.tb-ad-fixed-size iframe,
.tb-article-ad-inline.tb-ad-fixed-size img,
.tb-listing-inline-ad.tb-ad-fixed-size img {
  max-width: none !important;
}
.tb-fixed-ad-does-not-fit {
  display: none !important;
}
.tb-article-ad-inline iframe,
.tb-listing-inline-ad iframe,
.tb-article-ad-inline img,
.tb-listing-inline-ad img {
  max-width: 100%;
}

/* Final rail geometry: renderer and eligibility math use the same safe gaps. */
body.tb-blog-rails-two-active .tb-blog-ad-rail.tb-blog-ad-rail-left {
  left: var(--tb-blog-left-rail-left) !important;
  right: auto !important;
}
body.tb-blog-rails-active .tb-blog-ad-rail.tb-blog-ad-rail-right {
  left: var(--tb-blog-right-rail-left, var(--tb-blog-single-rail-left)) !important;
  right: auto !important;
}
body.tb-blog-rails-one-active .tb-blog-main-column {
  margin-inline: auto !important;
}
body.tb-blog-rails-one-active.tb-blog-rail-dock-left .tb-blog-ad-rail.is-active-single-rail {
  left: var(--tb-blog-single-rail-left) !important;
  right: auto !important;
}
body.tb-blog-rails-one-active.tb-blog-rail-dock-left .tb-blog-main-column {
  margin-inline: auto !important;
}
body.single-post.tb-article-rails-one-active .tb-single-layout,
body.single-tb_portfolio.tb-article-rails-one-active .tb-single-layout {
  padding-left: var(--tb-article-effective-edge-gap, 16px) !important;
  padding-right: calc(var(--tb-article-primary-rail-width, 300px) + var(--tb-article-effective-edge-gap, 16px) + var(--tb-article-effective-rail-gap, 24px)) !important;
}
body.single-post.tb-article-rails-one-active.tb-article-rail-dock-left .tb-single-layout,
body.single-tb_portfolio.tb-article-rails-one-active.tb-article-rail-dock-left .tb-single-layout {
  padding-left: calc(var(--tb-article-primary-rail-width, 300px) + var(--tb-article-effective-edge-gap, 16px) + var(--tb-article-effective-rail-gap, 24px)) !important;
  padding-right: var(--tb-article-effective-edge-gap, 16px) !important;
}

/* === ARTICLE WRAPPER ALIGNMENT (single source of truth — issues #8/#9) ===
 * The header, featured image, article body and inline ads share ONE article
 * wrapper that is centred together with its rail. The rail is measured as part
 * of the wrapper but rendered OUTSIDE it (position:fixed at a computed offset),
 * so it never pulls the body left. The header inner aligns to the exact same
 * left edge as the body, so the hero and content stop diverging. Extra space
 * centres the whole wrapper, not the article content. The JS article engine
 * sets --tb-article-content-available / -content-left / -rail-left per width. */
body.single-post.tb-article-rails-active .tb-article-wrap,
body.single-tb_portfolio.tb-article-rails-active .tb-article-wrap,
body.single-post.tb-article-rails-one-active.tb-article-rail-dock-left .tb-article-wrap,
body.single-tb_portfolio.tb-article-rails-one-active.tb-article-rail-dock-left .tb-article-wrap,
body.single-post.tb-article-rails-active .tb-single-head-inner:not(.has-top-read-more),
body.single-tb_portfolio.tb-article-rails-active .tb-single-head-inner:not(.has-top-read-more),
body.single-post.tb-article-rails-one-active.tb-article-rail-dock-left .tb-single-head-inner:not(.has-top-read-more),
body.single-tb_portfolio.tb-article-rails-one-active.tb-article-rail-dock-left .tb-single-head-inner:not(.has-top-read-more) {
  box-sizing: border-box !important;
  width: var(--tb-article-content-available, min(850px, calc(100% - 32px))) !important;
  max-width: var(--tb-article-content-available, min(850px, calc(100% - 32px))) !important;
  margin-left: var(--tb-article-content-left, auto) !important;
  margin-right: auto !important;
}

/* The layout no longer reserves rail space with padding — the wrapper margin
 * positions the content and the fixed rail sits at its own computed offset. */
body.single-post.tb-article-rails-active .tb-single-layout,
body.single-tb_portfolio.tb-article-rails-active .tb-single-layout,
body.single-post.tb-article-rails-one-active.tb-article-rail-dock-left .tb-single-layout,
body.single-tb_portfolio.tb-article-rails-one-active.tb-article-rail-dock-left .tb-single-layout {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  margin-inline: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Article rails: rendered outside the centred wrapper at JS-computed offsets. */
body.tb-article-rails-active .tb-side-rail-ad.tb-side-rail-ad-right,
body.tb-article-rails-one-active.tb-article-rail-dock-left .tb-side-rail-ad.tb-side-rail-ad-right {
  left: var(--tb-article-rail-left, auto) !important;
  right: auto !important;
}
body.tb-article-rails-two-active .tb-side-rail-ad.tb-side-rail-ad-left {
  left: var(--tb-article-rail2-left, var(--tb-article-effective-edge-gap, 16px)) !important;
  right: auto !important;
}

/* --- Mobile/tablet overflow guards (placed last so they win the cascade) --- */

/* Article side rails must never sit in the normal content flow when the rail pair isn't active
   (mobile, tablet, narrow desktop, or no creative). They are position:fixed only while active. */
body:not(.tb-article-rails-active) .tb-side-rail-ad.tb-rail-managed { display: none !important; }

/* Below the article rail breakpoint (rails need >=1450px), force the reading column to the
   viewport and constrain all embedded media — even if a desktop content-width variable lingers —
   so an inserted full-size image or table can never push the page wider than the screen. */
@media (max-width: 1180px) {
  body.single-post .tb-single-layout,
  body.single-tb_portfolio .tb-single-layout { grid-template-columns: 1fr !important; }
  body.single-post.tb-article-rails-active .tb-single-layout .tb-article-wrap,
  body.single-tb_portfolio.tb-article-rails-active .tb-single-layout .tb-article-wrap,
  body.single-post .tb-single-layout .tb-article-wrap,
  body.single-tb_portfolio .tb-single-layout .tb-article-wrap {
    width: min(850px, calc(100% - 24px)) !important;
    max-width: 100% !important;
    margin-inline: auto !important;
    grid-column: 1 !important;
  }
  .tb-prose img,
  .tb-prose figure,
  .tb-prose iframe,
  .tb-prose video,
  .tb-prose table,
  .tb-featured-image img { max-width: 100% !important; height: auto; }
}

/* Newsletter status landing pages (subscribe-confirm / unsubscribe outcomes). */
.tb-status-page { max-width: 640px; margin: 0 auto; padding: 72px 20px 96px; }
.tb-status-card { text-align: center; background: hsl(var(--card)); border: 1px solid hsl(var(--border) / .6); border-radius: 20px; padding: 48px 36px; box-shadow: var(--shadow-lg); }
.tb-status-brand { display: flex; align-items: center; justify-content: center; gap: 10px; margin: 0 0 20px; }
.tb-status-logo { display: block; width: 40px; height: auto; border-radius: 10px; margin: 0; }
.tb-status-brandname { font-size: 17px; font-weight: 800; color: hsl(var(--foreground)); letter-spacing: .01em; }
.tb-status-icon { width: 64px; height: 64px; margin: 0 auto 22px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 30px; font-weight: 800; color: #fff; background: hsl(var(--primary)); }
.tb-status-error .tb-status-icon { background: #dc2626; }
.tb-status-title { font-size: 28px; line-height: 1.2; margin: 0 0 14px; }
.tb-status-body { color: hsl(var(--muted-foreground)); font-size: 16px; line-height: 1.7; }
.tb-status-body p { margin: 0 0 12px; }
.tb-status-actions { margin: 28px 0 0; display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; align-items: center; }
/* Explicit pill styling so BOTH buttons match regardless of the theme's contextual button rules. */
.tb-status-actions .tb-btn-primary,
.tb-status-actions .tb-btn-ghost { display: inline-flex; align-items: center; justify-content: center; padding: 12px 22px; border-radius: 999px; font-weight: 700; line-height: 1; text-decoration: none; border: 1px solid transparent; }
.tb-status-actions .tb-btn-primary { background: hsl(var(--primary)); color: #fff; }
.tb-status-actions .tb-btn-primary:hover { background: hsl(var(--primary-dark)); color: #fff; }
.tb-status-actions .tb-btn-ghost { border-color: hsl(var(--border)); color: hsl(var(--foreground)); background: transparent; }
.tb-status-actions .tb-btn-ghost:hover { background: hsl(var(--muted)); }
@media (max-width: 640px) { .tb-status-card { padding: 36px 22px; } .tb-status-title { font-size: 23px; } }

/* CRM admin: lead-status column select + read-only subscriber meta block. */
.tb-lead-status-select { font-weight:700; }
.tb-lead-status-form { margin:0; }
.tb-subscriber-readonly-field input[readonly] { background:#f1f5f9; color:#64748b; cursor:default; }


/* Consultation popup (site-wide lead modal, shown once per session). */
.tb-consult-overlay {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: rgba(2, 6, 23, .55);
  opacity: 0;
  visibility: hidden;
  transition: opacity .25s ease, visibility .25s ease;
}
.tb-consult-overlay[hidden] { display: none; }
.tb-consult-overlay.is-open { opacity: 1; visibility: visible; }
.tb-consult-modal {
  width: 100%;
  max-width: 440px;
  max-height: calc(100vh - 40px);
  overflow: auto;
  position: relative;
  padding: 28px 26px 26px;
  background: hsl(var(--card));
  color: hsl(var(--card-foreground));
  border: 1px solid hsl(var(--border));
  border-radius: var(--radius);
  box-shadow: 0 24px 60px rgba(2, 6, 23, .35);
  transform: translateY(12px) scale(.98);
  transition: transform .25s ease;
}
.tb-consult-overlay.is-open .tb-consult-modal { transform: none; }
.tb-consult-close {
  position: absolute;
  top: 10px;
  right: 12px;
  width: 34px;
  height: 34px;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: hsl(var(--muted-foreground));
  font-size: 26px;
  line-height: 1;
  cursor: pointer;
  display: grid;
  place-items: center;
}
.tb-consult-close:hover { background: hsl(var(--muted)); color: hsl(var(--foreground)); }
.tb-consult-title { margin: 0 0 8px; font-size: 22px; line-height: 1.25; padding-right: 24px; }
.tb-consult-text { margin: 0 0 18px; color: hsl(var(--muted-foreground)); font-size: 15px; line-height: 1.6; }
.tb-consult-form { display: flex; flex-direction: column; gap: 12px; }
.tb-consult-field { display: flex; flex-direction: column; gap: 6px; font-size: 13px; font-weight: 600; }
.tb-consult-field input {
  width: 100%;
  padding: 11px 13px;
  border: 1px solid hsl(var(--border));
  border-radius: 10px;
  background: hsl(var(--background));
  color: hsl(var(--foreground));
  font-size: 15px;
  font-weight: 400;
}
.tb-consult-field input:focus {
  outline: none;
  border-color: hsl(var(--primary));
  box-shadow: 0 0 0 3px hsl(var(--primary) / .18);
}
.tb-consult-submit { width: 100%; justify-content: center; margin-top: 4px; }
.tb-consult-message { margin: 6px 0 0; font-size: 14px; }
.tb-consult-turnstile:empty { display: none; }
@media (max-width: 480px) {
  .tb-consult-modal { padding: 24px 18px 20px; }
  .tb-consult-title { font-size: 20px; }
}
.tb-consult-brand {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 14px;
}
.tb-consult-brand svg,
.tb-consult-brand img {
  height: 30px;
  width: auto;
  max-width: 40px;
}
.tb-consult-brand-name {
  font-size: 18px;
  font-weight: 800;
  letter-spacing: -.01em;
  color: hsl(var(--foreground));
}
