:root {
  --tgvs-ink:#0b1220;
  --tgvs-ink-2:#263244;
  --tgvs-muted:#667085;
  --tgvs-line:#dfe5ec;
  --tgvs-soft:#f5f7fa;
  --tgvs-surface:#ffffff;
  --tgvs-brand:#0866d6;
  --tgvs-brand-dark:#064ea6;
  --tgvs-brand-soft:#eaf3ff;
  --tgvs-accent:#f59e0b;
  --tgvs-radius-sm:12px;
  --tgvs-radius:18px;
  --tgvs-radius-lg:28px;
  --tgvs-shadow:0 16px 44px rgba(15,23,42,.08);
  --tgvs-shadow-sm:0 8px 24px rgba(15,23,42,.06);
  --tgvs-shell:min(1240px, calc(100vw - 40px));
  --tgvs-reading:76ch;
}

body.tg-vs-active { background:#fff; color:var(--tgvs-ink); }
body.tg-vs-active, body.tg-vs-active button, body.tg-vs-active input { font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif; }
body.tg-vs-active a { text-underline-offset:.16em; }
body.tg-vs-active :focus-visible { outline:3px solid rgba(8,102,214,.35)!important; outline-offset:3px!important; }
.tg-vs-shell { width:var(--tgvs-shell); margin-inline:auto; }
.tg-vs-page { min-height:60vh; }
.tg-vs-eyebrow { color:var(--tgvs-brand-dark); font-size:.76rem; font-weight:850; letter-spacing:.085em; text-transform:uppercase; }

/* Header and site chrome */
body.tg-vs-active .site-header { position:sticky; top:0; z-index:1000; background:rgba(255,255,255,.95); backdrop-filter:saturate(140%) blur(12px); border-bottom:1px solid rgba(223,229,236,.85); }
body.tg-vs-active.admin-bar .site-header { top:32px; }
body.tg-vs-active .ast-primary-header-bar { background:transparent; border-bottom:0; }
body.tg-vs-active .site-primary-header-wrap { min-height:72px; }
body.tg-vs-active .site-logo-img img, body.tg-vs-active .custom-logo { max-height:48px; width:auto; }
body.tg-vs-active .main-header-menu > .menu-item > a { color:var(--tgvs-ink-2); font-weight:700; letter-spacing:-.01em; }
body.tg-vs-active .main-header-menu > .current-menu-item > a, body.tg-vs-active .main-header-menu > .menu-item > a:hover { color:var(--tgvs-brand); }
body.tg-vs-active .site-footer { border-top:1px solid var(--tgvs-line); background:#f8fafc; }
body.tg-vs-active .techgears-amazon-associate-disclosure { background:#f8fafc!important; border-top:1px solid var(--tgvs-line)!important; color:#596579!important; }

/* Global content width: wider components, readable text measure */
body.tg-vs-content-post .site-content .ast-container { max-width:1360px!important; width:min(1360px, calc(100% - 40px))!important; }
body.tg-vs-content-post .content-area, body.tg-vs-content-post .site-main, body.tg-vs-content-post article.ast-article-single { width:100%!important; max-width:none!important; }
body.tg-vs-content-post .entry-header { width:min(1120px,100%); margin-inline:auto; margin-bottom:1.6rem; }
body.tg-vs-content-post .entry-title { max-width:940px; font-size:clamp(2rem,4vw,3.35rem); line-height:1.03; letter-spacing:-.045em; color:var(--tgvs-ink); }
body.tg-vs-content-post .entry-meta { color:var(--tgvs-muted); }
body.tg-vs-content-post .entry-content { width:100%; }
body.tg-vs-content-post .entry-content > .tg-review { max-width:1080px!important; }
body.tg-vs-content-post .entry-content > .tg-growth-article { max-width:1180px!important; }
body.tg-vs-content-post .entry-content > .tg-first-look { max-width:1080px!important; margin-inline:auto; }
body.tg-vs-content-post .tg-review p, body.tg-vs-content-post .tg-review > ul, body.tg-vs-content-post .tg-growth-section > p, body.tg-vs-content-post .tg-growth-methodology p, body.tg-vs-content-post .tg-first-look p { max-width:var(--tgvs-reading); }
body.tg-vs-content-post .tg-review, body.tg-vs-content-post .tg-growth-article { color:var(--tgvs-ink); line-height:1.66; }
body.tg-vs-content-post .tg-review h2, body.tg-vs-content-post .tg-growth-article h2 { letter-spacing:-.025em; color:var(--tgvs-ink); }

/* Sticky, scrollable on-page navigation: progressive disclosure without tabs */
.tg-vs-onpage { position:sticky; top:78px; z-index:30; display:flex; align-items:center; gap:.45rem; overflow-x:auto; scrollbar-width:none; margin:1rem 0 1.5rem; padding:.55rem; border:1px solid rgba(223,229,236,.92); border-radius:999px; background:rgba(255,255,255,.95); box-shadow:0 10px 28px rgba(15,23,42,.06); backdrop-filter:blur(10px); }
.admin-bar .tg-vs-onpage { top:110px; }
.tg-vs-onpage::-webkit-scrollbar { display:none; }
.tg-vs-onpage__label { flex:0 0 auto; padding:.45rem .65rem; color:var(--tgvs-muted); font-size:.75rem; font-weight:800; text-transform:uppercase; letter-spacing:.06em; }
.tg-vs-onpage a { flex:0 0 auto; min-height:38px; display:inline-flex; align-items:center; padding:.45rem .72rem; border-radius:999px; color:var(--tgvs-ink-2)!important; font-size:.82rem; font-weight:700; text-decoration:none!important; }
.tg-vs-onpage a:hover { background:var(--tgvs-brand-soft); color:var(--tgvs-brand-dark)!important; }

/* Commerce remains conspicuous but no longer dominates editorial hierarchy */
body.tg-vs-active .single-post .tg-growth-affiliate-disclosure, body.tg-vs-active .single-post .tg-amazon-affiliate-disclosure { border:1px solid #ecd9a5!important; border-left:0!important; background:#fffaf0!important; box-shadow:none!important; padding:.72rem .9rem!important; font-size:.8rem!important; }
body.tg-vs-active .single-post a.tg-growth-affiliate-cta, body.tg-vs-active .single-post a.tg-amazon-cta__button, body.tg-vs-active .single-post a.tg-universal-amazon-cta { min-height:44px!important; border-radius:10px!important; background:#f6a800!important; border-color:#d78a00!important; box-shadow:none!important; font-size:.86rem!important; padding:.7rem .9rem!important; }
body.tg-vs-active .single-post a.tg-growth-affiliate-cta:hover, body.tg-vs-active .single-post a.tg-amazon-cta__button:hover { background:#ffb92e!important; transform:none!important; box-shadow:none!important; }
body.tg-vs-active .single-post .tg-growth-product-card .tg-growth-affiliate-cta { width:auto!important; justify-self:start!important; }
body.tg-vs-active .single-post .tg-growth-commerce-action { gap:.2rem; }
body.tg-vs-active .single-post .tg-growth-affiliate-label { font-size:.62rem!important; opacity:.85; }

/* Growth content: make wide modules actually use desktop space */
body.tg-vs-content-post .tg-growth-hero { border:1px solid var(--tgvs-line); border-radius:24px; background:linear-gradient(135deg,#f8fbff 0%,#edf5ff 54%,#fff 100%); box-shadow:none; }
body.tg-vs-content-post .tg-growth-dek { max-width:72ch; font-size:1.08rem; }
body.tg-vs-content-post .tg-growth-product-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
body.tg-vs-content-post .tg-growth-product-card { border-color:var(--tgvs-line); border-radius:18px; box-shadow:var(--tgvs-shadow-sm); }
body.tg-vs-content-post .tg-growth-product-media { aspect-ratio:16/9.2; }
body.tg-vs-content-post .tg-growth-product-card__body { padding:1rem; }
body.tg-vs-content-post .tg-growth-product-card h3 { font-size:1.08rem; }
body.tg-vs-content-post .tg-growth-matrix { border-radius:18px; box-shadow:none; }
body.tg-vs-content-post .tg-growth-table-scroll { scroll-snap-type:x proximity; }
body.tg-vs-content-post .tg-growth-matrix th:first-child { position:sticky; left:0; z-index:2; box-shadow:1px 0 0 var(--tgvs-line); }
body.tg-vs-content-post .tg-growth-section { padding:.25rem 0 1.35rem; }
body.tg-vs-content-post .tg-growth-final-choice.tg-growth-final-decision-shell { border-radius:22px!important; }

/* Review content */
body.tg-vs-content-post .tg-verdict-card { border-radius:22px; box-shadow:var(--tgvs-shadow-sm); }
body.tg-vs-content-post .tg-scorecard, body.tg-vs-content-post .tg-data-chart, body.tg-vs-content-post .tg-related-reviews { border-radius:18px; }
body.tg-vs-content-post .tg-review-nav { position:sticky; top:78px; z-index:30; border-radius:999px; overflow-x:auto; flex-wrap:nowrap; scrollbar-width:none; box-shadow:0 10px 28px rgba(15,23,42,.05); }
body.tg-vs-content-post .tg-review-nav a { flex:0 0 auto; }

/* Remove duplicate theme-level related-post blocks on TechGears content; editorial renderer owns relevance */
body.tg-vs-content-post .ast-related-posts-wrapper, body.tg-vs-content-post .ast-single-related-posts-container, body.tg-vs-content-post .ast-related-post-featured-section, body.tg-vs-content-post .related-posts { display:none!important; }

/* Category and homepage shared */
.tg-vs-category-hero, .tg-vs-home-hero { background:radial-gradient(circle at 84% 16%,rgba(8,102,214,.10),transparent 30%),linear-gradient(180deg,#f8fbff 0%,#fff 100%); border-bottom:1px solid var(--tgvs-line); }
.tg-vs-category-hero .tg-vs-shell { padding:clamp(3rem,7vw,6.2rem) 0 clamp(2.8rem,6vw,5rem); }
.tg-vs-category-hero h1, .tg-vs-home-hero h1 { max-width:850px; margin:.45rem 0 .85rem; font-size:clamp(2.7rem,6.5vw,5.6rem); line-height:.96; letter-spacing:-.055em; color:var(--tgvs-ink); }
.tg-vs-category-hero p, .tg-vs-home-hero__copy > p { max-width:720px; margin:0; color:#536074; font-size:clamp(1.05rem,2vw,1.28rem); line-height:1.55; }
.tg-vs-trust-row { display:flex; flex-wrap:wrap; gap:.45rem; margin-top:1.35rem; }
.tg-vs-trust-row span { display:inline-flex; align-items:center; min-height:32px; padding:.35rem .62rem; border:1px solid #cfdae7; border-radius:999px; background:#fff; color:#42516a; font-size:.74rem; font-weight:750; }
.tg-vs-category-content { padding:3rem 0 5rem; }
.tg-vs-start-here { margin-bottom:4rem; }
.tg-vs-library { margin-top:1rem; }
.tg-vs-section-heading { display:flex; align-items:end; justify-content:space-between; gap:2rem; margin-bottom:1.35rem; }
.tg-vs-section-heading h2 { margin:.28rem 0 0; font-size:clamp(1.7rem,3.4vw,2.65rem); line-height:1.05; letter-spacing:-.035em; }
.tg-vs-section-heading > p { max-width:480px; margin:0; color:var(--tgvs-muted); }

.tg-vs-filterbar { display:flex; gap:.5rem; overflow-x:auto; padding:0 0 .9rem; margin-bottom:.7rem; scrollbar-width:none; }
.tg-vs-filterbar::-webkit-scrollbar { display:none; }
.tg-vs-filterbar button { flex:0 0 auto; min-height:42px; padding:.55rem .85rem; border:1px solid var(--tgvs-line); border-radius:999px; background:#fff; color:var(--tgvs-ink-2); font-size:.84rem; font-weight:750; cursor:pointer; }
.tg-vs-filterbar button:hover, .tg-vs-filterbar button.is-active { border-color:var(--tgvs-brand); background:var(--tgvs-brand-soft); color:var(--tgvs-brand-dark); }

.tg-vs-card-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.15rem; }
.tg-vs-card-grid--featured { grid-template-columns:repeat(3,minmax(0,1fr)); }
.tg-vs-card { min-width:0; overflow:hidden; display:flex; flex-direction:column; border:1px solid var(--tgvs-line); border-radius:20px; background:#fff; box-shadow:0 10px 28px rgba(15,23,42,.045); }
.tg-vs-card[hidden] { display:none!important; }
.tg-vs-card--featured { display:grid; grid-template-columns:minmax(330px,.9fr) minmax(0,1.1fr); min-height:360px; border-radius:26px; }
.tg-vs-card__media { min-height:190px; display:block; background:#edf3fa; overflow:hidden; text-decoration:none!important; }
.tg-vs-card--featured .tg-vs-card__media { min-height:100%; }
.tg-vs-card__media img { display:block; width:100%; height:100%; min-height:190px; object-fit:cover; }
.tg-vs-card-placeholder { height:100%; min-height:190px; display:flex; flex-direction:column; justify-content:flex-end; gap:.35rem; padding:1.2rem; background:radial-gradient(circle at 80% 18%,rgba(255,255,255,.28),transparent 25%),linear-gradient(135deg,#0c3568,#0a6ed1); color:#fff; }
.tg-vs-card-placeholder span { font-size:.74rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; opacity:.8; }
.tg-vs-card-placeholder strong { font-size:1.35rem; }
.tg-vs-card__body { flex:1; display:flex; flex-direction:column; padding:1.15rem; }
.tg-vs-card--featured .tg-vs-card__body { justify-content:center; padding:clamp(1.5rem,3vw,2.4rem); }
.tg-vs-card__meta { display:flex; align-items:center; justify-content:space-between; gap:.6rem; color:var(--tgvs-muted); font-size:.72rem; }
.tg-vs-type-pill { display:inline-flex; align-items:center; min-height:28px; padding:.25rem .55rem; border-radius:999px; background:var(--tgvs-brand-soft); color:var(--tgvs-brand-dark); font-weight:800; }
.tg-vs-card__title { margin:.7rem 0 .55rem; font-size:1.2rem; line-height:1.18; letter-spacing:-.025em; }
.tg-vs-card--featured .tg-vs-card__title { font-size:clamp(1.65rem,3vw,2.55rem); }
.tg-vs-card__title a { color:var(--tgvs-ink)!important; text-decoration:none!important; }
.tg-vs-card__body > p { margin:0 0 1rem; color:#596579; line-height:1.55; }
.tg-vs-card__cta { margin-top:auto; display:inline-flex; align-items:center; gap:.35rem; width:fit-content; min-height:40px; color:var(--tgvs-brand-dark)!important; font-weight:800; text-decoration:none!important; }
.tg-vs-card:hover { border-color:#cbd8e8; box-shadow:var(--tgvs-shadow-sm); }
.tg-vs-empty { padding:2rem; border:1px dashed var(--tgvs-line); border-radius:16px; color:var(--tgvs-muted); text-align:center; }

/* Homepage */
.tg-vs-home-hero__grid { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr); gap:clamp(2rem,5vw,5rem); align-items:center; padding:clamp(4rem,9vw,8rem) 0; }
.tg-vs-home-hero__proof { padding:1.35rem; border:1px solid var(--tgvs-line); border-radius:24px; background:rgba(255,255,255,.9); box-shadow:var(--tgvs-shadow); }
.tg-vs-home-hero__proof ol { list-style:none; margin:1rem 0 0; padding:0; counter-reset:tgstep; }
.tg-vs-home-hero__proof li { counter-increment:tgstep; display:grid; grid-template-columns:36px 1fr; gap:.8rem; padding:.8rem 0; border-bottom:1px solid #edf0f4; }
.tg-vs-home-hero__proof li:last-child { border-bottom:0; }
.tg-vs-home-hero__proof li:before { content:counter(tgstep); display:grid; place-items:center; width:32px; height:32px; border-radius:50%; background:var(--tgvs-brand); color:#fff; font-weight:850; }
.tg-vs-home-hero__proof li strong, .tg-vs-home-hero__proof li span { display:block; }
.tg-vs-home-hero__proof li span { margin-top:.2rem; color:var(--tgvs-muted); font-size:.88rem; line-height:1.45; }
.tg-vs-hero-actions { display:flex; flex-wrap:wrap; gap:.7rem; margin-top:1.35rem; }
.tg-vs-primary, .tg-vs-secondary { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:.78rem 1rem; border-radius:12px; font-weight:800; text-decoration:none!important; }
.tg-vs-primary { background:var(--tgvs-brand); color:#fff!important; }
.tg-vs-secondary { border:1px solid var(--tgvs-line); background:#fff; color:var(--tgvs-ink)!important; }
.tg-vs-home-categories, .tg-vs-home-featured, .tg-vs-home-latest { padding:4.5rem 0; }
.tg-vs-home-featured { border-top:1px solid var(--tgvs-line); }
.tg-vs-category-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; }
.tg-vs-category-tile { min-height:190px; display:flex; flex-direction:column; padding:1.25rem; border:1px solid var(--tgvs-line); border-radius:20px; background:#fff; color:var(--tgvs-ink)!important; text-decoration:none!important; box-shadow:0 8px 22px rgba(15,23,42,.035); }
.tg-vs-category-tile > span { font-size:1.25rem; font-weight:850; letter-spacing:-.025em; }
.tg-vs-category-tile p { color:var(--tgvs-muted); line-height:1.5; }
.tg-vs-category-tile strong { margin-top:auto; color:var(--tgvs-brand-dark); }
.tg-vs-category-tile:hover { transform:translateY(-2px); box-shadow:var(--tgvs-shadow-sm); }
.tg-vs-home-trust { padding:5rem 0; background:#0b1220; color:#fff; }
.tg-vs-home-trust .tg-vs-eyebrow { color:#9ac8ff; }
.tg-vs-home-trust .tg-vs-section-heading h2 { color:#fff; }
.tg-vs-home-trust .tg-vs-section-heading p { color:#b7c1d0; }
.tg-vs-trust-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.tg-vs-trust-grid article { padding:1.2rem; border:1px solid rgba(255,255,255,.14); border-radius:18px; background:rgba(255,255,255,.055); }
.tg-vs-trust-grid strong { font-size:1.08rem; }
.tg-vs-trust-grid p { margin:.5rem 0 0; color:#c5cfdd; line-height:1.55; }

/* Preview badge */
body.tg-vs-preview::after { content:"PRIVATE VISUAL PREVIEW"; position:fixed; right:14px; bottom:14px; z-index:99999; padding:.45rem .7rem; border-radius:999px; background:#0b1220; color:#fff; font:800 11px/1.2 ui-sans-serif,sans-serif; letter-spacing:.08em; box-shadow:0 8px 20px rgba(0,0,0,.22); }

@media (max-width:1020px) {
  .tg-vs-card-grid, .tg-vs-card-grid--featured { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .tg-vs-category-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .tg-vs-home-hero__grid { grid-template-columns:1fr; }
  body.tg-vs-content-post .tg-growth-product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width:782px) {
  body.tg-vs-active.admin-bar .site-header { top:46px; }
  .admin-bar .tg-vs-onpage { top:114px; }
  .tg-vs-shell { width:min(100% - 28px,1240px); }
  .tg-vs-category-hero .tg-vs-shell { padding:2.6rem 0 2.4rem; }
  .tg-vs-section-heading { align-items:start; flex-direction:column; gap:.55rem; }
  .tg-vs-section-heading > p { max-width:680px; }
  .tg-vs-card--featured { grid-template-columns:1fr; min-height:0; }
  .tg-vs-card--featured .tg-vs-card__media { min-height:220px; }
  body.tg-vs-content-post .entry-title { font-size:clamp(2rem,8vw,3rem); }
}

@media (max-width:640px) {
  :root { --tgvs-shell:min(100% - 24px,1240px); }
  body.tg-vs-active .site-primary-header-wrap { min-height:62px; }
  body.tg-vs-content-post .site-content .ast-container { width:calc(100% - 24px)!important; }
  .tg-vs-card-grid, .tg-vs-card-grid--featured, .tg-vs-category-grid, .tg-vs-trust-grid { grid-template-columns:1fr; }
  .tg-vs-home-categories, .tg-vs-home-featured, .tg-vs-home-latest { padding:3.2rem 0; }
  .tg-vs-home-hero__grid { padding:3.4rem 0; }
  .tg-vs-onpage { top:66px; margin-inline:-2px; border-radius:14px; }
  .admin-bar .tg-vs-onpage { top:112px; }
  body.tg-vs-content-post .tg-growth-product-grid { grid-template-columns:1fr; }
  body.tg-vs-content-post .tg-growth-matrix th:first-child { position:static; box-shadow:none; }
  body.tg-vs-content-post .tg-review-nav { top:66px; border-radius:14px; }
  .tg-vs-filterbar button, .tg-vs-primary, .tg-vs-secondary, .tg-vs-card__cta { min-height:44px; }
}

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

/* --------------------------------------------------------------------------
   Visual System 0.2.0 — live-preview refinements
   -------------------------------------------------------------------------- */
:root { --tgvs-shell:min(1360px, calc(100vw - 56px)); --tgvs-reading:72ch; }

/* Use more of large desktop canvases without sacrificing text measure. */
body.tg-vs-active .site-primary-header-wrap .ast-builder-grid-row,
body.tg-vs-active .ast-primary-header-bar .site-primary-header-wrap { max-width:1360px; margin-inline:auto; }
body.tg-vs-active .main-header-menu > .menu-item > a { font-size:.92rem; }
body.tg-vs-active .site-logo-img img, body.tg-vs-active .custom-logo { max-height:52px; }

/* Homepage: reduce dead space and fix the proof-card grid placement. */
.tg-vs-home-hero__grid { grid-template-columns:minmax(0,1.18fr) minmax(390px,.82fr); gap:clamp(2.5rem,5vw,5.25rem); padding:clamp(4rem,7vw,6.6rem) 0; }
.tg-vs-home-hero__copy { max-width:820px; }
.tg-vs-home-hero__proof { padding:1.5rem 1.6rem; border-radius:22px; box-shadow:0 16px 42px rgba(15,23,42,.07); }
.tg-vs-home-hero__proof li { grid-template-columns:36px minmax(0,1fr); column-gap:.9rem; row-gap:.12rem; }
.tg-vs-home-hero__proof li::before { grid-column:1; grid-row:1 / span 2; }
.tg-vs-home-hero__proof li strong { grid-column:2; grid-row:1; }
.tg-vs-home-hero__proof li span { grid-column:2; grid-row:2; min-width:0; }
.tg-vs-home-categories, .tg-vs-home-featured, .tg-vs-home-latest { padding:4rem 0; }

/* Branded but content-type-specific editorial art, avoiding a wall of identical blue cards. */
.tg-vs-card-placeholder { position:relative; isolation:isolate; overflow:hidden; min-height:190px; background:#0b3b77; }
.tg-vs-card-placeholder::before, .tg-vs-card-placeholder::after { content:""; position:absolute; pointer-events:none; z-index:-1; }
.tg-vs-card-placeholder::before { width:170px; height:170px; right:-38px; top:-48px; border:1px solid rgba(255,255,255,.24); border-radius:50%; box-shadow:0 0 0 26px rgba(255,255,255,.05),0 0 0 54px rgba(255,255,255,.035); }
.tg-vs-card-placeholder::after { inset:auto 0 0 0; height:58%; background:linear-gradient(180deg,transparent,rgba(0,0,0,.16)); }
.tg-vs-card-placeholder span, .tg-vs-card-placeholder strong, .tg-vs-card-placeholder em { position:relative; z-index:1; }
.tg-vs-card-placeholder strong { font-size:1.42rem; letter-spacing:-.025em; }
.tg-vs-card-placeholder em { font-style:normal; font-size:.72rem; font-weight:700; opacity:.74; }
.tg-vs-card-placeholder--hub { background:radial-gradient(circle at 74% 32%,rgba(255,255,255,.18) 0 5px,transparent 6px),radial-gradient(circle at 86% 47%,rgba(255,255,255,.16) 0 4px,transparent 5px),linear-gradient(135deg,#082b59,#075fb8); }
.tg-vs-card-placeholder--guide { background:repeating-linear-gradient(0deg,rgba(255,255,255,.035) 0 1px,transparent 1px 34px),linear-gradient(135deg,#123a5d,#0b78a6); }
.tg-vs-card-placeholder--comparison { background:linear-gradient(90deg,rgba(0,0,0,.16) 0 49.6%,rgba(255,255,255,.14) 50% 50.4%,transparent 50.4%),linear-gradient(135deg,#10376d,#0871cc); }
.tg-vs-card-placeholder--explainer { background:radial-gradient(circle at 78% 28%,transparent 0 22px,rgba(255,255,255,.20) 23px 24px,transparent 25px 45px,rgba(255,255,255,.10) 46px 47px,transparent 48px),linear-gradient(135deg,#173b68,#0866d6); }
.tg-vs-card-placeholder--review { background:linear-gradient(135deg,#082f61,#0b6fc6); }
.tg-vs-card-placeholder--first-look { background:linear-gradient(135deg,#364152,#0877b8); }
.tg-vs-card--hub .tg-vs-type-pill { background:#eaf1ff; }
.tg-vs-card--guide .tg-vs-type-pill { background:#eef8f5; color:#16644f; }
.tg-vs-card--comparison .tg-vs-type-pill { background:#f0efff; color:#5147a8; }
.tg-vs-card--explainer .tg-vs-type-pill { background:#edf6ff; color:#075da8; }
.tg-vs-card__title { display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.tg-vs-card__body > p { display:-webkit-box; -webkit-line-clamp:4; -webkit-box-orient:vertical; overflow:hidden; }
.tg-vs-card--featured .tg-vs-card__title, .tg-vs-card--featured .tg-vs-card__body > p { display:block; overflow:visible; }

/* Category discovery: fuller width, stronger orientation and more stable scanning. */
.tg-vs-category-hero .tg-vs-shell { padding:clamp(3.2rem,6vw,5.4rem) 0 clamp(2.6rem,5vw,4.3rem); }
.tg-vs-category-hero h1 { max-width:920px; }
.tg-vs-category-content { padding:2.7rem 0 5rem; }
.tg-vs-start-here { margin-bottom:3.5rem; }
.tg-vs-filterbar { position:sticky; top:73px; z-index:25; margin-inline:-.45rem; padding:.7rem .45rem .85rem; background:rgba(255,255,255,.94); backdrop-filter:blur(10px); border-bottom:1px solid rgba(223,229,236,.72); }
.admin-bar .tg-vs-filterbar { top:105px; }

/* Review pages: turn unused desktop whitespace into a persistent decision rail. */
body.tg-vs-content-post .entry-content > .tg-review { max-width:1160px!important; }
body.tg-vs-content-post .tg-review > .tg-review-header,
body.tg-vs-content-post .tg-review > .tg-media-asset,
body.tg-vs-content-post .tg-review > .tg-media-slot,
body.tg-vs-content-post .tg-review > .tg-method-disclosure,
body.tg-vs-content-post .tg-review > .tg-amazon-affiliate-disclosure { max-width:1160px; }
.tg-vs-review-layout { display:grid; grid-template-columns:minmax(0,1fr) 238px; gap:clamp(1.8rem,3.3vw,3rem); align-items:start; margin-top:1rem; }
.tg-vs-review-main { min-width:0; }
.tg-vs-review-rail { position:sticky; top:92px; align-self:start; }
.admin-bar .tg-vs-review-rail { top:124px; }
.tg-vs-review-rail .tg-review-nav { position:static!important; display:flex!important; flex-direction:column; align-items:stretch; gap:.35rem; margin:0!important; padding:.7rem!important; border-radius:18px!important; box-shadow:0 10px 28px rgba(15,23,42,.045)!important; }
.tg-vs-review-rail .tg-review-nav::before { content:"Jump to"; padding:.3rem .55rem .4rem; color:var(--tgvs-muted); font-size:.72rem; font-weight:850; letter-spacing:.08em; text-transform:uppercase; }
.tg-vs-review-rail .tg-review-nav a { width:100%; min-height:40px; justify-content:flex-start; border:0!important; background:transparent!important; color:var(--tgvs-ink-2)!important; }
.tg-vs-review-rail .tg-review-nav a:hover { background:var(--tgvs-brand-soft)!important; color:var(--tgvs-brand-dark)!important; }
.tg-vs-review-main > .tg-verdict-card { margin-top:0; }
.tg-vs-review-main > .tg-product-identity,
.tg-vs-review-main > .tg-specs,
.tg-vs-review-main > .tg-scorecard,
.tg-vs-review-main > .tg-related-reviews,
.tg-vs-review-main > .tg-methodology { margin-top:1.65rem; }
.tg-vs-review-main > .tg-review-section { padding:1.7rem 0 .45rem; border-top:1px solid #edf0f4; }
.tg-vs-review-main > .tg-review-section h2 { margin-top:0!important; }
.tg-vs-review-main > .tg-methodology { padding:1.45rem; border:1px solid var(--tgvs-line); border-radius:18px; background:#f8fafc; }
body.tg-vs-content-post .tg-scorecard { background:#f4f8fd; }
body.tg-vs-content-post .tg-product-identity dl, body.tg-vs-content-post .tg-table-wrap { border-color:#dfe6ef; }

@media (min-width:1420px) {
  .tg-vs-card-grid { gap:1.3rem; }
  .tg-vs-card__body { padding:1.25rem; }
  .tg-vs-category-tile { min-height:178px; }
}

@media (max-width:1100px) {
  :root { --tgvs-shell:min(100% - 36px,1240px); }
  .tg-vs-review-layout { grid-template-columns:1fr; gap:1rem; }
  .tg-vs-review-rail { position:static; order:-1; }
  .tg-vs-review-rail .tg-review-nav { flex-direction:row; overflow-x:auto; border-radius:14px!important; }
  .tg-vs-review-rail .tg-review-nav::before { display:none; }
  .tg-vs-review-rail .tg-review-nav a { width:auto; flex:0 0 auto; }
}

@media (max-width:782px) {
  .tg-vs-filterbar { top:63px; margin-inline:-14px; padding-inline:14px; }
  .admin-bar .tg-vs-filterbar { top:109px; }
}

@media (max-width:640px) {
  :root { --tgvs-shell:min(100% - 24px,1240px); }
  .tg-vs-home-hero__grid { padding:3rem 0; }
  .tg-vs-home-hero__proof { padding:1.15rem; }
  .tg-vs-card-placeholder strong { font-size:1.25rem; }
}


/* --------------------------------------------------------------------------
   Visual System 0.3.0 — hub navigation, comparison readability, mobile polish
   -------------------------------------------------------------------------- */

/* Explicit width fixes: the renderer's own legacy widths should not trap the
   redesign inside a narrow column. Paragraph measure remains independently capped. */
body.tg-vs-content-post .entry-content > .tg-review,
body.tg-vs-content-post .entry-content > .tg-growth-article,
body.tg-vs-content-post .entry-content > .tg-first-look {
  width:100%!important;
  margin-inline:auto!important;
}
body.tg-vs-content-post .entry-content > .tg-growth-article { max-width:1180px!important; }
body.tg-vs-content-post .entry-content > .tg-review { max-width:1160px!important; }

/* Topic hub: visually behave like a decision map rather than a long article. */
body.tg-vs-topic-hub-page .entry-content > .tg-topic-hub { max-width:1220px!important; }
.tg-vs-hub-enhanced > .tg-growth-hero { padding:clamp(1.4rem,2.5vw,2rem)!important; }
.tg-vs-hub-enhanced .tg-vs-onpage { margin-bottom:1.2rem; }
.tg-vs-hub-orientation {
  display:grid!important;
  grid-template-columns:minmax(190px,.55fr) minmax(0,1.45fr);
  gap:1.2rem 2rem;
  align-items:start;
  padding:1.45rem 1.55rem!important;
  border:1px solid var(--tgvs-line)!important;
  border-radius:20px!important;
  background:linear-gradient(135deg,#f8fbff,#fff)!important;
  box-shadow:none!important;
}
.tg-vs-hub-orientation > h2 { grid-column:1; margin:0!important; font-size:clamp(1.45rem,2vw,1.9rem)!important; }
.tg-vs-hub-orientation > p,
.tg-vs-hub-orientation > ul { grid-column:2; margin-top:0!important; max-width:none!important; }
.tg-vs-hub-orientation > ul { padding-left:1.2rem; columns:1; }
.tg-vs-hub-products {
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:1.1rem!important;
  margin:1.35rem 0 2.2rem!important;
}
.tg-vs-hub-products .tg-growth-product-card {
  display:flex!important;
  flex-direction:column!important;
  min-width:0!important;
  overflow:hidden!important;
  border:1px solid var(--tgvs-line)!important;
  border-radius:18px!important;
  background:#fff!important;
  box-shadow:var(--tgvs-shadow-sm)!important;
}
.tg-vs-hub-products .tg-growth-product-image {
  width:100%!important;
  aspect-ratio:16/9!important;
  object-fit:cover!important;
  object-position:center!important;
  display:block!important;
  margin:0!important;
}
.tg-vs-hub-products .tg-growth-product-card__body {
  display:flex!important;
  flex:1 1 auto!important;
  flex-direction:column!important;
  gap:.7rem!important;
  padding:1rem!important;
}
.tg-vs-hub-products .tg-growth-product-card h3 { margin:0!important; font-size:1.05rem!important; line-height:1.25!important; }
.tg-vs-hub-products .tg-growth-final-actions { margin-top:auto!important; display:grid!important; gap:.55rem!important; }
.tg-vs-hub-products .tg-growth-affiliate-cta { width:100%!important; justify-content:center!important; }

.tg-vs-hub-editorial-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1rem;
  margin:2rem 0;
}
.tg-vs-hub-editorial-grid > .tg-growth-section {
  margin:0!important;
  padding:1.25rem 1.3rem!important;
  border:1px solid var(--tgvs-line)!important;
  border-radius:18px!important;
  background:#fff!important;
}
.tg-vs-hub-editorial-grid > .tg-growth-section h2 { font-size:1.2rem!important; margin:0 0 .55rem!important; }
.tg-vs-hub-editorial-grid > .tg-growth-section p { max-width:none!important; margin-bottom:0!important; }

.tg-vs-hub-coverage { margin:2.4rem 0; padding:1.55rem; border-radius:24px; background:#f5f8fc; border:1px solid #e2e8f0; }
.tg-vs-hub-coverage__head { display:grid; grid-template-columns:minmax(0,1fr) minmax(260px,.78fr); gap:.2rem 2rem; align-items:end; margin-bottom:1rem; }
.tg-vs-hub-coverage__head > span { grid-column:1 / -1; color:var(--tgvs-brand-dark); font-size:.72rem; font-weight:850; letter-spacing:.08em; text-transform:uppercase; }
.tg-vs-hub-coverage__head h2 { margin:.2rem 0 0!important; font-size:clamp(1.45rem,2.1vw,2rem)!important; }
.tg-vs-hub-coverage__head p { margin:0!important; color:var(--tgvs-muted); max-width:52ch!important; }
.tg-vs-hub-coverage-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.85rem; }
.tg-vs-hub-coverage-grid > .tg-growth-related { margin:0!important; padding:1rem!important; border:1px solid var(--tgvs-line)!important; border-radius:16px!important; background:#fff!important; }
.tg-vs-hub-coverage-grid h2 { margin:0 0 .65rem!important; font-size:1.02rem!important; }
.tg-vs-hub-coverage-grid ul { margin:0!important; padding-left:1.1rem!important; }
.tg-vs-hub-coverage-grid li + li { margin-top:.48rem; }
.tg-vs-hub-final { margin-top:2.2rem!important; }
.tg-vs-hub-methodology,
.tg-vs-hub-sources { margin-top:1.2rem!important; padding:1.2rem 1.3rem!important; border:1px solid var(--tgvs-line)!important; border-radius:18px!important; background:#fafbfd!important; }
.tg-vs-hub-sources ul { columns:2; column-gap:2rem; }

/* Comparison / buying guide tables: preserve scannability instead of squeezing. */
.tg-vs-table-hint { display:none; margin:.1rem 0 .65rem; color:var(--tgvs-muted); font-size:.78rem; font-weight:750; }
body.tg-vs-content-post .tg-growth-matrix { overflow:hidden; border:1px solid var(--tgvs-line)!important; }
body.tg-vs-content-post .tg-growth-matrix table { width:100%; }
body.tg-vs-content-post .tg-growth-matrix th,
body.tg-vs-content-post .tg-growth-matrix td { vertical-align:top; }
body.tg-vs-content-post .tg-growth-matrix thead th { background:#f5f8fc; }
body.tg-vs-content-post .tg-growth-commerce-row td { background:#fffdf8; }

/* Review polish: use the promised desktop canvas, but keep prose comfortable. */
body.tg-vs-content-post .tg-review > .tg-review-header,
body.tg-vs-content-post .tg-review > .tg-media-asset,
body.tg-vs-content-post .tg-review > .tg-media-slot,
body.tg-vs-content-post .tg-review > .tg-method-disclosure,
body.tg-vs-content-post .tg-review > .tg-amazon-affiliate-disclosure { width:100%; }
.tg-vs-review-main > .tg-review-section > p,
.tg-vs-review-main > .tg-methodology p { max-width:72ch!important; }
.tg-vs-review-main .tg-verdict-card,
.tg-vs-review-main .tg-scorecard,
.tg-vs-review-main .tg-related-reviews { border-radius:18px!important; }

/* Tablet and mobile: information-rich, not desktop squeezed into a phone. */
@media (max-width:900px) {
  .tg-vs-hub-orientation { grid-template-columns:1fr; gap:.8rem; }
  .tg-vs-hub-orientation > h2,
  .tg-vs-hub-orientation > p,
  .tg-vs-hub-orientation > ul { grid-column:1; }
  .tg-vs-hub-products { grid-template-columns:repeat(2,minmax(0,1fr))!important; }
  .tg-vs-hub-editorial-grid { grid-template-columns:1fr; }
  .tg-vs-hub-coverage__head { grid-template-columns:1fr; gap:.45rem; }
  .tg-vs-hub-coverage-grid { grid-template-columns:1fr; }
  .tg-vs-hub-sources ul { columns:1; }
}

@media (max-width:640px) {
  .tg-vs-hub-products { grid-template-columns:1fr!important; gap:.8rem!important; }
  .tg-vs-hub-products .tg-growth-product-card { border-radius:15px!important; }
  .tg-vs-hub-coverage { padding:1rem; border-radius:18px; }
  .tg-vs-hub-editorial-grid > .tg-growth-section { padding:1rem!important; border-radius:15px!important; }
  .tg-vs-table-hint { display:block; }
  body.tg-vs-content-post .tg-growth-table-scroll { overflow-x:auto!important; -webkit-overflow-scrolling:touch; }
  body.tg-vs-content-post .tg-growth-matrix table { min-width:680px; font-size:.84rem; }
  body.tg-vs-content-post .tg-growth-matrix th,
  body.tg-vs-content-post .tg-growth-matrix td { padding:.72rem!important; }
  body.tg-vs-content-post .tg-growth-affiliate-cta,
  body.tg-vs-content-post .tg-amazon-cta__button { min-height:48px!important; }
  .tg-vs-filterbar { display:flex; overflow-x:auto; flex-wrap:nowrap!important; scrollbar-width:none; scroll-snap-type:x proximity; }
  .tg-vs-filterbar::-webkit-scrollbar { display:none; }
  .tg-vs-filterbar button { flex:0 0 auto; scroll-snap-align:start; }
}

/* --------------------------------------------------------------------------
   Visual System 0.4.0 — hierarchy, hub readability, mobile-first + ad readiness
   -------------------------------------------------------------------------- */

/* Stronger editorial hierarchy. Long pages need obvious landmarks, especially
   when a user arrives from search directly into the middle of a decision flow. */
body.tg-vs-content-post .entry-title {
  font-weight:820;
  text-wrap:balance;
}
body.tg-vs-content-post .tg-review h2,
body.tg-vs-content-post .tg-growth-article h2,
body.tg-vs-content-post .tg-first-look h2 {
  margin-top:clamp(1.7rem,3vw,2.8rem);
  margin-bottom:.72rem;
  font-size:clamp(1.65rem,2.55vw,2.2rem)!important;
  line-height:1.08!important;
  font-weight:850!important;
  letter-spacing:-.035em!important;
  text-wrap:balance;
}
body.tg-vs-content-post .tg-review h3,
body.tg-vs-content-post .tg-growth-article h3,
body.tg-vs-content-post .tg-first-look h3 {
  font-size:clamp(1.16rem,1.7vw,1.4rem)!important;
  line-height:1.2!important;
  font-weight:800!important;
  letter-spacing:-.018em;
  text-wrap:balance;
}
body.tg-vs-content-post .tg-review p,
body.tg-vs-content-post .tg-growth-article p,
body.tg-vs-content-post .tg-first-look p,
body.tg-vs-content-post li {
  overflow-wrap:break-word;
}

/* The first hub orientation block should read as one coherent briefing, not a
   headline stranded in a left column beside a wall of text. */
.tg-vs-hub-orientation {
  display:block!important;
  padding:clamp(1.15rem,2vw,1.6rem)!important;
}
.tg-vs-hub-orientation > h2 {
  margin:0 0 .8rem!important;
  font-size:clamp(1.75rem,2.4vw,2.25rem)!important;
  font-weight:850!important;
}
.tg-vs-hub-orientation > p {
  max-width:88ch!important;
  margin:0 0 1.05rem!important;
  color:#334155;
  font-size:1rem;
  line-height:1.65;
}
.tg-vs-hub-orientation > ul {
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.75rem!important;
  margin:0!important;
  padding:0!important;
  list-style:none!important;
}
.tg-vs-hub-orientation > ul > li {
  position:relative;
  min-width:0;
  margin:0!important;
  padding:.95rem 1rem .95rem 2.55rem!important;
  border:1px solid #dce5f0;
  border-radius:14px;
  background:#fff;
  color:#253249;
  line-height:1.55;
  box-shadow:0 5px 16px rgba(15,23,42,.035);
}
.tg-vs-hub-orientation > ul > li::before {
  content:"→";
  position:absolute;
  left:.9rem;
  top:.93rem;
  display:grid;
  place-items:center;
  width:1.15rem;
  height:1.15rem;
  border-radius:50%;
  background:var(--tgvs-brand-soft);
  color:var(--tgvs-brand-dark);
  font-size:.78rem;
  font-weight:900;
}
.tg-vs-hub-orientation a { font-weight:750; }

/* Avoid an odd final half-card leaving a visually accidental empty cell. */
.tg-vs-hub-editorial-grid > .tg-growth-section:last-child:nth-child(odd) {
  grid-column:1 / -1;
}
.tg-vs-hub-editorial-grid > .tg-growth-section h2 {
  font-size:clamp(1.28rem,1.75vw,1.55rem)!important;
  font-weight:820!important;
}
.tg-vs-hub-coverage-grid h2 { font-weight:820!important; }

/* AdSense-ready landmarks. No ads are inserted by this plugin. Empty landmarks
   are invisible on the public site, so we do not manufacture blank whitespace.
   Private preview shows the proposed locations. When a responsive ad unit is
   later inserted into one of these landmarks it becomes a stable layout block. */
.tg-vs-ad-slot:empty { display:none; }
body.tg-vs-preview .tg-vs-ad-slot:empty {
  width:min(970px, calc(100% - 40px));
  min-height:108px;
  margin:clamp(2.2rem,4vw,3.8rem) auto;
  display:grid;
  place-items:center;
  padding:1rem;
  border:1px dashed #b9c7d8;
  border-radius:14px;
  background:repeating-linear-gradient(135deg,#fafcff 0 12px,#f5f8fc 12px 24px);
  color:#64748b;
  text-align:center;
}
body.tg-vs-preview .tg-vs-ad-slot:empty::before {
  content:attr(data-tg-ad-label) " · planning preview only";
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.035em;
}
.tg-vs-ad-slot:not(:empty) {
  display:block;
  width:min(970px,100%);
  margin:clamp(2.2rem,4vw,3.8rem) auto;
  text-align:center;
}
.tg-vs-ad-slot:not(:empty) ins.adsbygoogle { width:100%; }

/* Article-specific ad landmarks added by JS sit between major evidence regions,
   never inside navigation, product CTAs, or interactive comparison controls. */
body.tg-vs-content-post .tg-vs-ad-slot { clear:both; }

/* Mobile is a first-class layout, not a squeezed desktop version. */
@media (max-width:900px) {
  .tg-vs-hub-orientation > ul { grid-template-columns:1fr; }
}

@media (max-width:640px) {
  :root { --tgvs-reading:100%; }
  body.tg-vs-content-post .site-content .ast-container {
    width:calc(100% - 20px)!important;
  }
  body.tg-vs-content-post .entry-header { margin-bottom:1.05rem; }
  body.tg-vs-content-post .entry-title {
    font-size:clamp(1.85rem,8.4vw,2.5rem)!important;
    line-height:1.02!important;
    letter-spacing:-.04em!important;
  }
  body.tg-vs-content-post .tg-review h2,
  body.tg-vs-content-post .tg-growth-article h2,
  body.tg-vs-content-post .tg-first-look h2 {
    margin-top:1.7rem;
    font-size:clamp(1.45rem,6.2vw,1.78rem)!important;
    line-height:1.1!important;
  }
  body.tg-vs-content-post .tg-review h3,
  body.tg-vs-content-post .tg-growth-article h3,
  body.tg-vs-content-post .tg-first-look h3 {
    font-size:1.16rem!important;
  }
  .tg-vs-onpage {
    top:66px;
    margin-inline:-4px;
    border-radius:14px;
    padding:.45rem;
  }
  .admin-bar .tg-vs-onpage { top:112px; }
  .tg-vs-onpage__label { padding-inline:.45rem; }
  .tg-vs-onpage a { min-height:42px; }
  .tg-vs-hub-orientation {
    padding:1rem!important;
    border-radius:16px!important;
  }
  .tg-vs-hub-orientation > h2 { font-size:1.7rem!important; }
  .tg-vs-hub-orientation > p { font-size:.96rem; }
  .tg-vs-hub-orientation > ul { gap:.6rem!important; }
  .tg-vs-hub-orientation > ul > li {
    padding:.85rem .9rem .85rem 2.35rem!important;
    font-size:.94rem;
  }
  .tg-vs-hub-orientation > ul > li::before { left:.8rem; top:.84rem; }
  .tg-vs-hub-editorial-grid { gap:.7rem; }
  .tg-vs-hub-editorial-grid > .tg-growth-section:last-child:nth-child(odd) { grid-column:auto; }
  .tg-vs-hub-products .tg-growth-product-image { aspect-ratio:16/9.6!important; }
  .tg-vs-section-heading h2 { font-size:clamp(1.55rem,7vw,2rem); }
  .tg-vs-category-hero h1, .tg-vs-home-hero h1 {
    font-size:clamp(2.5rem,12vw,3.8rem);
  }
  .tg-vs-card__title { font-size:1rem; }
  .tg-vs-ad-slot:not(:empty),
  body.tg-vs-preview .tg-vs-ad-slot:empty {
    width:calc(100% - 20px);
    min-height:96px;
    margin:2rem auto;
    border-radius:12px;
  }
}

/* --------------------------------------------------------------------------
   Visual System 0.5.0 — Visual Evidence Layer 1
   -------------------------------------------------------------------------- */
.tg-vs-review-evidence-map,
.tg-vs-cluster-map {
  margin:clamp(2rem,4vw,3.2rem) 0;
  padding:clamp(1.1rem,2.2vw,1.55rem);
  border:1px solid #dce5f0;
  border-radius:20px;
  background:linear-gradient(180deg,#fbfdff,#f6f9fd);
  box-shadow:0 8px 26px rgba(15,23,42,.035);
}
.tg-vs-evidence-map__head,
.tg-vs-cluster-map__head {
  display:grid;
  grid-template-columns:minmax(0,1.3fr) minmax(260px,.7fr);
  gap:.45rem 2rem;
  align-items:end;
  margin-bottom:1.05rem;
}
.tg-vs-evidence-map__head > span,
.tg-vs-cluster-map__head > span {
  grid-column:1/-1;
  color:var(--tgvs-brand-dark);
  font-size:.72rem;
  font-weight:900;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.tg-vs-evidence-map__head h2,
.tg-vs-cluster-map__head h2 {
  margin:0!important;
  font-size:clamp(1.45rem,2.1vw,1.9rem)!important;
}
.tg-vs-evidence-map__head p,
.tg-vs-cluster-map__head p { margin:0!important; color:var(--tgvs-muted); line-height:1.5; }
.tg-vs-evidence-map__grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.75rem; }
.tg-vs-evidence-map__card {
  display:grid;
  grid-template-columns:42px minmax(0,1fr);
  gap:.3rem .75rem;
  align-items:start;
  min-height:138px;
  padding:.9rem;
  border:1px solid #dce5f0;
  border-radius:14px;
  background:#fff;
  color:var(--tgvs-ink)!important;
  text-decoration:none!important;
  box-shadow:0 4px 14px rgba(15,23,42,.025);
}
.tg-vs-evidence-map__card:hover { transform:translateY(-1px); border-color:#b9cde5; box-shadow:0 8px 18px rgba(15,23,42,.055); }
.tg-vs-evidence-map__icon { grid-row:1 / span 2; display:grid; place-items:center; width:42px; height:42px; border-radius:12px; background:#eaf3ff; color:var(--tgvs-brand-dark); }
.tg-vs-evidence-icon { width:24px; height:24px; }
.tg-vs-evidence-map__card strong { align-self:end; font-size:1rem; line-height:1.2; }
.tg-vs-evidence-map__card em { grid-column:2; color:var(--tgvs-muted); font-size:.82rem; font-style:normal; line-height:1.45; }

/* Give long review sections a visual anchor without pretending we have product photography. */
.tg-vs-review-section--visual { position:relative; padding-top:.2rem; }
.tg-vs-review-section--visual > h2 { display:flex; align-items:center; gap:.65rem; }
.tg-vs-section-icon { flex:0 0 auto; display:grid; place-items:center; width:38px; height:38px; border-radius:11px; background:#eef5ff; color:var(--tgvs-brand-dark); }
.tg-vs-section-icon .tg-vs-evidence-icon { width:22px; height:22px; }

/* Topic hub: an actual cluster diagram, generated from the live internal links. */
.tg-vs-cluster-map__canvas { position:relative; display:grid; gap:.85rem; }
.tg-vs-cluster-map__core {
  position:relative;
  z-index:2;
  width:min(560px,100%);
  margin:0 auto;
  padding:1rem 1.2rem;
  border-radius:16px;
  background:linear-gradient(135deg,#073d7f,#0877cb);
  color:#fff;
  text-align:center;
  box-shadow:0 10px 28px rgba(7,61,127,.15);
}
.tg-vs-cluster-map__core small,
.tg-vs-cluster-map__core strong { display:block; }
.tg-vs-cluster-map__core small { opacity:.78; font-weight:750; letter-spacing:.04em; }
.tg-vs-cluster-map__core strong { margin-top:.2rem; font-size:1.08rem; }
.tg-vs-cluster-map__products,
.tg-vs-cluster-map__routes { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.7rem; }
.tg-vs-cluster-map__products::before,
.tg-vs-cluster-map__routes::before { content:""; position:absolute; left:50%; width:1px; background:#bfd3e9; transform:translateX(-50%); pointer-events:none; }
.tg-vs-cluster-map__products::before { top:66px; height:32px; }
.tg-vs-cluster-map__routes::before { display:none; }
.tg-vs-cluster-node {
  min-width:0;
  padding:.82rem .9rem;
  border:1px solid #d8e3ef;
  border-radius:13px;
  background:#fff;
  color:var(--tgvs-ink)!important;
  text-decoration:none!important;
}
.tg-vs-cluster-node span,
.tg-vs-cluster-node strong { display:block; }
.tg-vs-cluster-node span { color:var(--tgvs-brand-dark); font-size:.7rem; font-weight:850; letter-spacing:.065em; text-transform:uppercase; }
.tg-vs-cluster-node strong { margin-top:.22rem; font-size:.91rem; line-height:1.25; }
.tg-vs-cluster-node--route { background:#f8fbff; }

/* Media contract: real photography is only shown when a rights-safe asset is supplied.
   Until then, these data-driven visuals prevent fake or scraped product imagery. */
body[data-tg-visual-media-contract="rights-safe"] .tg-vs-rights-safe-media { border-radius:16px; overflow:hidden; }

@media (max-width:900px) {
  .tg-vs-evidence-map__head,
  .tg-vs-cluster-map__head { grid-template-columns:1fr; gap:.35rem; }
  .tg-vs-evidence-map__grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .tg-vs-cluster-map__products,
  .tg-vs-cluster-map__routes { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width:640px) {
  .tg-vs-review-evidence-map,
  .tg-vs-cluster-map { margin:1.6rem 0; padding:.9rem; border-radius:16px; }
  .tg-vs-evidence-map__head h2,
  .tg-vs-cluster-map__head h2 { font-size:1.42rem!important; }
  .tg-vs-evidence-map__grid {
    display:flex;
    overflow-x:auto;
    gap:.65rem;
    padding-bottom:.25rem;
    scroll-snap-type:x mandatory;
    scrollbar-width:none;
  }
  .tg-vs-evidence-map__grid::-webkit-scrollbar { display:none; }
  .tg-vs-evidence-map__card { flex:0 0 84%; min-height:124px; scroll-snap-align:start; }
  .tg-vs-review-section--visual > h2 { align-items:flex-start; }
  .tg-vs-section-icon { width:34px; height:34px; border-radius:10px; }
  .tg-vs-cluster-map__products,
  .tg-vs-cluster-map__routes {
    display:flex;
    overflow-x:auto;
    gap:.6rem;
    padding-bottom:.2rem;
    scroll-snap-type:x mandatory;
    scrollbar-width:none;
  }
  .tg-vs-cluster-map__products::-webkit-scrollbar,
  .tg-vs-cluster-map__routes::-webkit-scrollbar { display:none; }
  .tg-vs-cluster-node { flex:0 0 78%; scroll-snap-align:start; min-height:92px; }
  .tg-vs-cluster-map__products::before { display:none; }
}


/* --------------------------------------------------------------------------
   Visual System 0.5.1 — real-phone spacing and mobile release-candidate fix
   -------------------------------------------------------------------------- */

/* The first real-device validation exposed excess Astra vertical spacing
   between the post header/meta and the TechGears article body. Keep the
   desktop breathing room, but remove the mobile dead zone. */
@media (max-width:640px) {
  body.tg-vs-content-post .site-content,
  body.tg-vs-content-post .site-content > .ast-container,
  body.tg-vs-content-post #primary,
  body.tg-vs-content-post .site-main,
  body.tg-vs-content-post article.ast-article-single {
    margin-top:0!important;
    padding-top:0!important;
  }

  body.tg-vs-content-post .entry-header {
    margin-top:0!important;
    margin-bottom:.8rem!important;
    padding-top:1.1rem!important;
    padding-bottom:0!important;
  }

  body.tg-vs-content-post .entry-content {
    margin-top:0!important;
    padding-top:0!important;
  }

  body.tg-vs-content-post .entry-content > .tg-review,
  body.tg-vs-content-post .entry-content > .tg-growth-article,
  body.tg-vs-content-post .entry-content > .tg-first-look {
    margin-top:0!important;
    padding-top:0!important;
  }

  /* Strong but not billboard-sized mobile titles: the user's real handset
     showed a four-line hub title consuming too much of the first screen. */
  body.tg-vs-content-post .entry-title {
    font-size:clamp(2rem,9vw,2.35rem)!important;
    line-height:1.02!important;
    letter-spacing:-.042em!important;
  }
  body.tg-vs-content-post .entry-meta {
    font-size:.94rem!important;
    line-height:1.4!important;
  }

  /* Compact the real mobile header without changing desktop identity. */
  body.tg-vs-active .site-primary-header-wrap { min-height:66px!important; }
  body.tg-vs-active .site-logo-img img,
  body.tg-vs-active .custom-logo {
    max-height:42px!important;
    max-width:170px!important;
  }
  body.tg-vs-active .ast-mobile-header-wrap .menu-toggle,
  body.tg-vs-active .ast-header-break-point .main-header-menu-toggle {
    min-width:48px!important;
    min-height:48px!important;
  }

  /* Prevent accidental page-level sideways drift while preserving deliberate
     horizontal scrollers for tables, filters, evidence cards and cluster maps. */
  body.tg-vs-active { overflow-x:clip; }
  .tg-vs-filterbar,
  .tg-vs-onpage,
  .tg-vs-evidence-map__grid,
  .tg-vs-cluster-map__products,
  .tg-vs-cluster-map__routes,
  .tg-growth-table-scroll { overscroll-behavior-inline:contain; }

  /* Preview chrome must never cover article text during phone QA. */
  body.tg-vs-preview::after {
    right:8px;
    bottom:8px;
    padding:.34rem .5rem;
    font-size:9px;
    opacity:.78;
  }

  /* Ad planning is content-width on mobile. Live responsive units remain free
     to choose their own height; we intentionally do not reserve a fixed slot. */
  .tg-vs-ad-slot:not(:empty),
  body.tg-vs-preview .tg-vs-ad-slot:empty {
    width:100%;
    max-width:100%;
    min-height:84px;
    margin:1.7rem auto;
  }
}

@media (max-width:420px) {
  body.tg-vs-content-post .site-content .ast-container { width:calc(100% - 24px)!important; }
  body.tg-vs-content-post .entry-title { font-size:clamp(1.92rem,9.3vw,2.22rem)!important; }
  body.tg-vs-content-post .tg-review h2,
  body.tg-vs-content-post .tg-growth-article h2,
  body.tg-vs-content-post .tg-first-look h2 { font-size:clamp(1.42rem,6.6vw,1.68rem)!important; }
  .tg-vs-hub-orientation > h2 { font-size:1.58rem!important; }
  .tg-vs-review-evidence-map,
  .tg-vs-cluster-map { margin:1.35rem 0; }
}


/* --------------------------------------------------------------------------
   Visual System 0.5.2 — mobile homepage decision-model hotfix
   -------------------------------------------------------------------------- */

/* 0.2.0 intentionally widened the desktop hero after the original responsive
   rules. On narrow screens that later desktop declaration could win the
   cascade and squeeze the hero copy beside a 390px proof card. Reassert the
   single-column contract at the END of the stylesheet so phone browsers always
   receive a real one-column hero rather than a compressed desktop grid. */
@media (max-width:1020px) {
  .tg-vs-home-hero__grid {
    grid-template-columns:minmax(0,1fr)!important;
    gap:clamp(1.35rem,4vw,2.2rem)!important;
  }
  .tg-vs-home-hero__copy,
  .tg-vs-home-hero__proof {
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
  }
}

@media (max-width:640px) {
  .tg-vs-home-hero__grid {
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    padding:2.55rem 0 2.8rem!important;
  }
  .tg-vs-home-hero__copy h1 {
    width:100%!important;
    max-width:100%!important;
    font-size:clamp(2.45rem,12vw,3.25rem)!important;
    line-height:.97!important;
    letter-spacing:-.052em!important;
  }
  .tg-vs-home-hero__proof {
    margin-top:.35rem!important;
    padding:1rem 1rem .9rem!important;
    border-radius:18px!important;
  }
  .tg-vs-home-hero__proof ol { margin-top:.65rem!important; }
  .tg-vs-home-hero__proof li {
    display:grid!important;
    grid-template-columns:34px minmax(0,1fr)!important;
    column-gap:.75rem!important;
    row-gap:.08rem!important;
    padding:.7rem 0!important;
  }
  .tg-vs-home-hero__proof li::before {
    grid-column:1!important;
    grid-row:1 / span 2!important;
    width:30px!important;
    height:30px!important;
    align-self:start!important;
  }
  .tg-vs-home-hero__proof li strong {
    grid-column:2!important;
    grid-row:1!important;
    min-width:0!important;
    font-size:.96rem!important;
    line-height:1.25!important;
  }
  .tg-vs-home-hero__proof li span {
    grid-column:2!important;
    grid-row:2!important;
    min-width:0!important;
    margin-top:.12rem!important;
    font-size:.86rem!important;
    line-height:1.42!important;
    overflow-wrap:anywhere;
  }
}

@media (max-width:420px) {
  .tg-vs-home-hero__copy h1 {
    font-size:clamp(2.3rem,11.5vw,2.9rem)!important;
  }
  .tg-vs-home-hero__proof {
    padding:.9rem!important;
  }
}

/* --------------------------------------------------------------------------
   Visual System 0.6.0 — rights-safe visual media and evidence snapshots
   -------------------------------------------------------------------------- */
body.tg-vs-content-post .tg-media-asset--product_photo,
body.tg-vs-content-post .tg-media-asset--detail_photo,
body.tg-vs-content-post .tg-media-asset--feature_graphic {
  margin:clamp(1.4rem,3vw,2.4rem) 0;
  padding:clamp(.55rem,1vw,.8rem);
  border:1px solid var(--tgvs-line);
  border-radius:24px;
  background:#fff;
  box-shadow:0 14px 36px rgba(15,23,42,.06);
  overflow:hidden;
}
body.tg-vs-content-post .tg-media-asset--product_photo img,
body.tg-vs-content-post .tg-media-asset--detail_photo img,
body.tg-vs-content-post .tg-media-asset--feature_graphic img {
  display:block;
  width:100%;
  max-height:620px;
  object-fit:contain;
  border-radius:18px;
  background:#f7f9fc;
}
body.tg-vs-content-post .tg-media-asset--feature_graphic img { max-height:none; }
body.tg-vs-content-post .tg-media-asset--product_photo figcaption,
body.tg-vs-content-post .tg-media-asset--detail_photo figcaption,
body.tg-vs-content-post .tg-media-asset--feature_graphic figcaption {
  margin:.6rem .35rem .12rem;
  color:var(--tgvs-muted);
  font-size:.78rem;
  line-height:1.45;
}
body.tg-vs-content-post .tg-media-asset--product_photo { background:linear-gradient(180deg,#fff 0%,#f7fbff 100%); }

.tg-vs-card--review .tg-vs-card__media img,
.tg-vs-card--first-look .tg-vs-card__media img { object-fit:cover; object-position:center; }

.tg-vs-tradeoff-snapshot {
  margin:clamp(1.5rem,3vw,2.5rem) 0;
  padding:clamp(1.2rem,2.5vw,1.8rem);
  border-radius:24px;
  background:linear-gradient(135deg,#08182d 0%,#0d2c50 100%);
  color:#fff;
  box-shadow:0 18px 44px rgba(7,20,38,.12);
}
.tg-vs-tradeoff-snapshot__head > span,
.tg-vs-explainer-snapshot__head > span {
  display:block;
  margin-bottom:.35rem;
  color:#78bfff;
  font-size:.7rem;
  font-weight:850;
  letter-spacing:.09em;
  text-transform:uppercase;
}
.tg-vs-tradeoff-snapshot__head h2 { margin:0!important; color:#fff!important; }
.tg-vs-tradeoff-snapshot__head p { margin:.35rem 0 0!important; max-width:64ch; color:#cad7e7!important; }
.tg-vs-tradeoff-snapshot__grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.9rem; margin-top:1rem; }
.tg-vs-tradeoff-snapshot__card { padding:1rem 1.05rem; border:1px solid rgba(255,255,255,.13); border-radius:18px; background:rgba(255,255,255,.06); }
.tg-vs-tradeoff-snapshot__card strong { display:block; margin-bottom:.5rem; font-size:1.04rem; }
.tg-vs-tradeoff-snapshot__card ul { margin:0; padding-left:1.12rem; }
.tg-vs-tradeoff-snapshot__card li { margin:.36rem 0; color:#eef5fb; line-height:1.45; }
.tg-vs-tradeoff-snapshot__card.is-strength { border-top:3px solid #2bd19b; }
.tg-vs-tradeoff-snapshot__card.is-tradeoff { border-top:3px solid #ff7a7a; }

.tg-vs-explainer-snapshot {
  margin:clamp(1.4rem,3vw,2.3rem) 0;
  padding:clamp(1.15rem,2.4vw,1.65rem);
  border:1px solid #cfe1f5;
  border-radius:24px;
  background:linear-gradient(135deg,#f4f9ff 0%,#fff 72%);
}
.tg-vs-explainer-snapshot__head h2 { margin:0!important; }
.tg-vs-explainer-snapshot__grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.8rem; margin-top:1rem; }
.tg-vs-explainer-snapshot__card { min-width:0; padding:1rem; border:1px solid #dbe7f3; border-radius:17px; background:#fff; }
.tg-vs-explainer-snapshot__card b { display:grid; place-items:center; width:34px; height:34px; margin-bottom:.65rem; border-radius:50%; background:var(--tgvs-brand); color:#fff; font-size:.74rem; letter-spacing:.04em; }
.tg-vs-explainer-snapshot__card p { margin:0!important; color:#334155!important; line-height:1.5; }

@media (max-width:782px) {
  .tg-vs-tradeoff-snapshot__grid { grid-template-columns:1fr; }
  .tg-vs-explainer-snapshot__grid {
    display:flex;
    overflow-x:auto;
    scroll-snap-type:x proximity;
    gap:.75rem;
    padding-bottom:.35rem;
  }
  .tg-vs-explainer-snapshot__card { flex:0 0 min(82vw,310px); scroll-snap-align:start; }
  body.tg-vs-content-post .tg-media-asset--product_photo,
  body.tg-vs-content-post .tg-media-asset--detail_photo,
  body.tg-vs-content-post .tg-media-asset--feature_graphic { border-radius:18px; margin:1.25rem 0; }
}
