/* ============================================================
   Today SEO World — Hub pages (Agencies, Tools, AI Search Optimization, Resources)
   File:   woodmart-child/assets/css/tsw-hubs.css
   Loaded: hub pages only (see "TSW HUB PAGES v1" in functions.php)
   Prefix: tswx-
   ============================================================ */

.tswx {
	--tswx-ink: #0f172a;
	--tswx-text: #334155;
	--tswx-muted: #64748b;
	--tswx-line: #e2e8f0;
	--tswx-blue: #1d4ed8;
	--tswx-blue-d: #1e40af;
	--tswx-orange: #ea580c;
	--tswx-orange-d: #c2410c;
	--tswx-navy: #0a2463;
	--tswx-soft: #f3f7ff;
	--tswx-shadow: 0 1px 2px rgba(15, 23, 42, .04), 0 6px 20px rgba(15, 23, 42, .06);
	--tswx-shadow-hover: 0 2px 4px rgba(15, 23, 42, .05), 0 14px 32px rgba(15, 23, 42, .1);
	--tswx-title: var(--wd-title-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif);
	--tswx-body: var(--wd-text-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif);

	/* full width, whatever container the theme puts around the page */
	display: block;
	box-sizing: border-box;
	flex: none;
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	background: #fff;
	color: var(--tswx-text);
	font-family: var(--tswx-body);
	font-size: 15px;
	line-height: 1.6;
}
.tswx *, .tswx *::before, .tswx *::after { box-sizing: border-box; }
.tswx ul, .tswx ol { list-style: none; margin: 0; padding: 0; }
.tswx li { margin: 0; }
.tswx p { margin: 0; }
.tswx img { max-width: 100%; height: auto; }
.tswx h1, .tswx h2, .tswx h3, .tswx a, .tswx button, .tswx summary { text-transform: none; }
.tswx a { text-decoration: none; }

/* Woodmart: page starts straight under the header; no sideways scroll from the full-width page */
body.tswx-page { overflow-x: hidden; }
@supports (overflow: clip) { body.tswx-page { overflow-x: clip; } }
body.tswx-page .whb-header { margin-bottom: 0; }
body.tswx-page .main-page-wrapper { padding-top: 0; margin-top: 0; }

.tswx-wrap { max-width: 1222px; margin: 0 auto; padding: 0 15px; }
.tswx-sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.tswx a:focus-visible, .tswx button:focus-visible, .tswx summary:focus-visible { outline: 3px solid rgba(29, 78, 216, .45); outline-offset: 2px; }
.tswx .tswh-ico { flex: none; display: block; transition: transform .18s ease; }

/* Colour tones for icon tiles */
.tswx-tone-blue { background: #e0ecff; color: #1d4ed8; }
.tswx-tone-indigo { background: #e8e7ff; color: #4f46e5; }
.tswx-tone-purple { background: #f1e8ff; color: #7c3aed; }
.tswx-tone-green { background: #dcfce7; color: #15803d; }
.tswx-tone-teal { background: #d5f5ee; color: #0f8a74; }
.tswx-tone-red { background: #ffe4e6; color: #e11d48; }
.tswx-tone-orange { background: #ffedd5; color: #ea580c; }
.tswx-tone-amber { background: #fef3c7; color: #d97706; }

.tswx-ic { flex: none; width: 46px; height: 46px; display: inline-flex; align-items: center; justify-content: center; border-radius: 12px; }
.tswx-ic--lg { width: 56px; height: 56px; border-radius: 14px; }
.tswx-ic--round { border-radius: 50%; }

/* Buttons */
.tswx .tswx-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	padding: 12px 20px; border: 1px solid transparent; border-radius: 10px;
	font-family: var(--tswx-body); font-size: 14.5px; font-weight: 700; line-height: 1; white-space: nowrap;
	transition: background-color .15s ease, border-color .15s ease, color .15s ease, transform .15s ease;
}
.tswx .tswx-btn:hover { transform: translateY(-1px); }
.tswx .tswx-btn:hover .tswh-ico { transform: translateX(2px); }
.tswx .tswx-btn--orange { background: var(--tswx-orange); color: #fff; box-shadow: 0 6px 16px -6px rgba(234, 88, 12, .55); }
.tswx .tswx-btn--orange:hover { background: var(--tswx-orange-d); color: #fff; }
.tswx .tswx-btn--ghost { background: #fff; color: var(--tswx-blue); border-color: #bcd0f7; }
.tswx .tswx-btn--ghost:hover { border-color: var(--tswx-blue); color: var(--tswx-blue-d); }
.tswx .tswx-btn--block { width: 100%; }

.tswx-stretch::after { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: inherit; }

/* Stars (--p = % filled) */
.tswx .tswh-stars { position: relative; display: inline-block; font-size: 14px; letter-spacing: 1.5px; line-height: 1; white-space: nowrap; color: #e2e8f0; }
.tswx .tswh-stars::before { content: "★★★★★"; }
.tswx .tswh-stars::after { content: "★★★★★"; position: absolute; left: 0; top: 0; width: var(--p, 0%); overflow: hidden; color: #f59e0b; }

.tswx-rating { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: 13px; line-height: 1.4; color: var(--tswx-muted); }
.tswx-rating strong { color: var(--tswx-ink); }
.tswx-rating.is-empty span::after { content: "·"; margin-left: 6px; color: #cbd5e1; }
.tswx .tswx-rating.is-empty a { font-weight: 600; color: var(--tswx-blue); }

/* Logos */
.tswx-logo { flex: none; width: 54px; height: 54px; overflow: hidden; display: flex; align-items: center; justify-content: center; background: #fff; border: 1px solid #eef2f7; border-radius: 12px; }
.tswx-logo img { width: 100%; height: 100%; object-fit: contain; padding: 6px; }
.tswx-logo--sm { width: 42px; height: 42px; border-radius: 10px; }
.tswx-logo.is-initials { border: 0; color: #fff; font-family: var(--tswx-title); font-size: 18px; font-weight: 800; }
.tswx-logo--sm.is-initials { font-size: 15px; }
.tswx .is-initials.tswh-tone-blue { background: linear-gradient(135deg, #2563eb, #1d4ed8); }
.tswx .is-initials.tswh-tone-indigo { background: linear-gradient(135deg, #6366f1, #4338ca); }
.tswx .is-initials.tswh-tone-teal { background: linear-gradient(135deg, #0e9f8a, #0f766e); }
.tswx .is-initials.tswh-tone-orange { background: linear-gradient(135deg, #f97316, #c2410c); }
.tswx .is-initials.tswh-tone-navy { background: linear-gradient(135deg, #1e3a8a, #0a2463); }

/* Small blue tags */
.tswx .tswx-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.tswx .tswx-tags li, .tswx .tswx-tags a { display: inline-block; padding: 3px 9px; font-size: 12px; font-weight: 600; line-height: 1.45; color: var(--tswx-blue); background: #eff6ff; border: 1px solid #dbeafe; border-radius: 6px; }
.tswx .tswx-tags li:has(a) { padding: 0; border: 0; background: none; }
.tswx .tswx-tags a:hover { background: #dbeafe; }

/* ============ HERO ============ */
.tswx-hero {
	position: relative; overflow: hidden;
	padding: 18px 0 48px;
	background:
		radial-gradient(800px 380px at 85% 40%, rgba(59, 130, 246, .12), transparent 65%),
		linear-gradient(180deg, #edf3ff 0%, #f4f8ff 70%, #f8fbff 100%);
	border-bottom: 1px solid #e3ecfb;
}
.tswx .tswx-crumbs { display: flex; align-items: center; gap: 6px; margin-bottom: 18px; font-size: 13px; color: var(--tswx-muted); }
.tswx .tswx-crumbs a { color: var(--tswx-blue); }
.tswx .tswx-crumbs a:hover { text-decoration: underline; }
.tswx-hero-grid { display: grid; grid-template-columns: minmax(0, 1fr) 480px; gap: 36px; align-items: center; }
.tswx-hero-copy { min-width: 0; }
.tswx .tswx-h1 {
	margin: 0 0 14px; max-width: 640px;
	font-family: var(--tswx-title); font-size: clamp(30px, 3.2vw, 42px); font-weight: 800; line-height: 1.12; letter-spacing: -.02em; color: var(--tswx-ink);
}
.tswx-lead { max-width: 600px; margin-bottom: 22px !important; font-size: 16px; line-height: 1.6; color: var(--tswx-text); }

.tswx .tswx-search {
	display: flex; align-items: center; gap: 10px;
	max-width: 620px; margin: 0 0 14px; padding: 6px 6px 6px 16px;
	color: #94a3b8; background: #fff; border: 1px solid #d9e3f3; border-radius: 12px;
	box-shadow: 0 10px 30px -8px rgba(29, 78, 216, .18);
}
.tswx .tswx-search:focus-within { border-color: #9db8f2; box-shadow: 0 0 0 4px rgba(29, 78, 216, .1), 0 10px 30px -8px rgba(29, 78, 216, .18); }
.tswx .tswx-search input[type="search"] {
	flex: 1; min-width: 0; height: 46px; margin: 0; padding: 0 !important;
	background: transparent !important; border: 0 !important; border-radius: 0; box-shadow: none !important; outline: 0;
	font-family: var(--tswx-body); font-size: 15px; color: var(--tswx-ink);
}
.tswx .tswx-search input[type="search"]::placeholder { color: #94a3b8; opacity: 1; }
.tswx .tswx-search .tswx-search-btn {
	display: inline-flex; align-items: center; gap: 8px; min-height: 46px; margin: 0; padding: 0 20px;
	background: var(--tswx-orange); color: #fff; border: 0; border-radius: 9px;
	font-family: var(--tswx-body); font-size: 14.5px; font-weight: 700; line-height: 1; letter-spacing: 0; cursor: pointer;
	box-shadow: 0 6px 16px -6px rgba(234, 88, 12, .6); transition: background-color .15s ease;
}
.tswx .tswx-search .tswx-search-btn:hover { background: var(--tswx-orange-d); color: #fff; }

.tswx-popular { display: flex; align-items: flex-start; gap: 10px; }
.tswx-popular-label { flex: none; padding-top: 4px; font-size: 13px; font-weight: 700; color: var(--tswx-ink); }
.tswx .tswx-popular ul { display: flex; flex-wrap: wrap; gap: 8px; }
.tswx .tswx-popular a { display: inline-block; padding: 4px 11px; font-size: 12.5px; font-weight: 500; line-height: 1.45; color: var(--tswx-text); background: #fff; border: 1px solid #dbe4f3; border-radius: 999px; transition: border-color .15s ease, color .15s ease; }
.tswx .tswx-popular a:hover { border-color: #9db8f2; color: var(--tswx-blue); }

/* Right side: dotted map, number bubbles, agency card */
.tswx-hero-art { position: relative; height: 300px; }
.tswx-map {
	position: absolute; inset: -20px -30px -20px 0; opacity: .7;
	background-image: radial-gradient(#9cb6ec 1.5px, transparent 1.8px); background-size: 13px 13px;
	-webkit-mask-image: radial-gradient(ellipse 60% 55% at 55% 50%, #000 35%, transparent 75%);
	mask-image: radial-gradient(ellipse 60% 55% at 55% 50%, #000 35%, transparent 75%);
}
.tswx-bubble {
	position: absolute; z-index: 2; display: flex; align-items: center; gap: 10px;
	padding: 10px 14px 10px 10px; background: #fff; border: 1px solid #e3ebfa; border-radius: 14px; box-shadow: var(--tswx-shadow);
}
.tswx-bubble-ic { flex: none; width: 36px; height: 36px; display: flex; align-items: center; justify-content: center; color: var(--tswx-blue); background: #e0ecff; border-radius: 50%; }
.tswx-bubble strong { display: block; font-family: var(--tswx-title); font-size: 18px; font-weight: 800; line-height: 1.1; color: var(--tswx-ink); }
.tswx-bubble small { display: block; font-size: 12px; color: var(--tswx-muted); }
.tswx-bubble--agencies { top: 0; right: 0; }
.tswx-bubble--countries { bottom: 4px; left: 30px; }
.tswx-bubble--reviews { bottom: 4px; right: 10px; }
.tswx-bubble--reviews .tswx-bubble-ic { color: #0f8a74; background: #d5f5ee; }
.tswx-hero-card {
	position: absolute; z-index: 3; top: 56px; left: 40px; width: 330px;
	padding: 18px; background: #fff; border: 1px solid #e3ebfa; border-radius: 16px;
	box-shadow: 0 24px 50px -20px rgba(29, 78, 216, .35), 0 6px 16px rgba(15, 23, 42, .06);
}
.tswx-hero-chip {
	position: absolute; top: -14px; left: 16px; display: inline-flex; align-items: center; gap: 6px;
	padding: 5px 10px; font-size: 12px; font-weight: 700; color: #15803d; background: #fff;
	border: 1px solid #bbf7d0; border-radius: 999px; box-shadow: 0 4px 12px rgba(15, 23, 42, .08);
}
.tswx-hero-chip.is-sponsored { color: var(--tswx-orange-d); border-color: #fed7aa; }
.tswx-hero-card-top { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.tswx .tswx-hero-card-name { display: block; margin-bottom: 2px; font-family: var(--tswx-title); font-size: 16px; font-weight: 700; color: var(--tswx-ink); }
.tswx .tswx-hero-card-name:hover { color: var(--tswx-blue); }

/* ============ SECTIONS ============ */
.tswx-sec { padding: 48px 0 0; }
.tswx-sec--tight { padding-top: 36px; }
.tswx-sec--band { margin-top: 48px; padding: 40px 0; background: linear-gradient(180deg, #f3f7ff, #f8fbff); border-top: 1px solid #e6eefc; border-bottom: 1px solid #e6eefc; }
.tswx-sec--band + .tswx-sec { padding-top: 40px; }
.tswx-sec--last { padding-bottom: 56px; }
.tswx-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 20px; }
.tswx .tswx-h2 { margin: 0 0 4px; font-family: var(--tswx-title); font-size: clamp(21px, 2vw, 25px); font-weight: 800; line-height: 1.25; letter-spacing: -.01em; color: var(--tswx-ink); }
.tswx-sub { font-size: 14.5px; line-height: 1.55; color: var(--tswx-muted); }
.tswx .tswx-more-link { flex: none; display: inline-flex; align-items: center; gap: 6px; padding-bottom: 2px; font-size: 13.5px; font-weight: 700; white-space: nowrap; color: var(--tswx-blue); }
.tswx .tswx-more-link:hover { color: var(--tswx-blue-d); }
.tswx .tswx-more-link:hover .tswh-ico { transform: translateX(3px); }
.tswx-note { margin-top: 14px !important; font-size: 12.5px; color: var(--tswx-muted); }
.tswx .tswx-edit { margin-left: 6px; font-weight: 600; color: var(--tswx-blue); text-decoration: underline; }

/* Services grid */
.tswx .tswx-svc-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.tswx .tswx-svc, .tswx .tswx-ai-card {
	display: flex; align-items: flex-start; gap: 14px; height: 100%; padding: 16px;
	background: #fff; border: 1px solid var(--tswx-line); border-radius: 14px; box-shadow: 0 1px 2px rgba(15, 23, 42, .04);
	transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.tswx .tswx-svc:hover, .tswx .tswx-ai-card:hover { border-color: #c7d7f7; box-shadow: var(--tswx-shadow-hover); transform: translateY(-2px); }
.tswx-svc-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.tswx-svc-title { font-size: 15px; font-weight: 700; line-height: 1.3; color: var(--tswx-ink); }
.tswx-svc-count { font-size: 12.5px; font-weight: 600; color: var(--tswx-blue); }
.tswx-svc-desc { margin-top: 2px; font-size: 13px; line-height: 1.45; color: var(--tswx-muted); }
.tswx .tswx-svc-more {
	grid-column: span 3; display: flex; align-items: center; gap: 16px; padding: 18px 20px;
	background: linear-gradient(90deg, #fff4ea, #fff9f3); border: 1px solid #fed7aa; border-radius: 14px;
}
.tswx-svc-more-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; font-size: 13.5px; color: var(--tswx-muted); }
.tswx-svc-more-txt strong { font-size: 15.5px; color: var(--tswx-ink); }

/* All categories (opens from "View All Categories") */
.tswx-allcats { margin-top: 14px; background: #fff; border: 1px solid var(--tswx-line); border-radius: 14px; }
.tswx .tswx-allcats summary { display: flex; align-items: center; justify-content: space-between; padding: 14px 18px; font-size: 14.5px; font-weight: 700; color: var(--tswx-ink); cursor: pointer; list-style: none; }
.tswx .tswx-allcats summary::-webkit-details-marker { display: none; }
.tswx-allcats[open] summary .tswh-ico { transform: rotate(180deg); }
.tswx-allcats-grid { columns: 4 220px; column-gap: 28px; padding: 4px 18px 18px; border-top: 1px solid var(--tswx-line); }
.tswx-allcats-col { break-inside: avoid; padding-top: 14px; }
.tswx .tswx-allcats-main { display: block; margin-bottom: 4px; font-size: 14px; font-weight: 700; color: var(--tswx-ink); }
.tswx .tswx-allcats a:hover { color: var(--tswx-blue); }
.tswx .tswx-allcats-col li a { display: block; padding: 2px 0; font-size: 13.5px; color: var(--tswx-text); }
.tswx .tswx-allcats a span { font-size: 12px; font-weight: 500; color: #94a3b8; }

/* Specialisation chips */
.tswx .tswx-chips { display: flex; flex-wrap: wrap; gap: 10px; }
.tswx .tswx-chips a { display: inline-block; padding: 8px 16px; font-size: 13.5px; font-weight: 600; line-height: 1.3; color: var(--tswx-blue); background: #fff; border: 1px solid #c7d7f7; border-radius: 8px; transition: background-color .15s ease, border-color .15s ease; }
.tswx .tswx-chips a:hover { background: #eff6ff; border-color: var(--tswx-blue); }

/* AI agencies */
.tswx .tswx-ai-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 16px; }
.tswx .tswx-ai-card { padding: 20px; }

/* Featured agencies */
.tswx-feat-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.tswx-feat {
	position: relative; display: flex; flex-direction: column; gap: 12px; min-width: 0; padding: 20px;
	background: #fff; border: 1px solid var(--tswx-line); border-radius: 16px; box-shadow: 0 1px 2px rgba(15, 23, 42, .04);
	transition: border-color .18s ease, box-shadow .18s ease;
}
.tswx-feat:hover { border-color: #cfdcf5; box-shadow: var(--tswx-shadow-hover); }
.tswx-flag { position: absolute; top: 16px; right: 16px; padding: 3px 9px; font-size: 11.5px; font-weight: 700; line-height: 1.3; color: var(--tswx-blue); background: #dbeafe; border-radius: 6px; }
.tswx-flag.is-sponsored { color: #fff; background: var(--tswx-orange); }
.tswx-feat-top { display: flex; align-items: flex-start; gap: 14px; }
.tswx-feat-id { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.tswx-feat.has-flag .tswx-feat-name { padding-right: 84px; }
.tswx .tswx-feat-name { display: flex; align-items: center; gap: 6px; margin: 2px 0 0; font-family: var(--tswx-title); font-size: 17px; font-weight: 700; line-height: 1.25; }
.tswx .tswx-feat-name a { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--tswx-ink); }
.tswx .tswx-feat-name a:hover { color: var(--tswx-blue); }
.tswx-verified { flex: none; display: inline-flex; color: var(--tswx-blue); }
.tswx-loc-line { display: flex; align-items: center; gap: 5px; font-size: 13px; color: var(--tswx-muted); }
.tswx-feat-desc { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-size: 14px; line-height: 1.55; color: var(--tswx-text); }
.tswx-feat .tswx-btn--block { margin-top: auto; }

/* Top rated */
.tswx .tswx-rated { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px; }
.tswx-rated-card {
	position: relative; display: flex; align-items: center; gap: 12px; padding: 14px;
	background: #fff; border: 1px solid var(--tswx-line); border-radius: 14px; transition: border-color .18s ease, box-shadow .18s ease;
}
.tswx-rated-card:hover { border-color: #cfdcf5; box-shadow: var(--tswx-shadow-hover); }
.tswx-rated-txt { min-width: 0; display: flex; flex-direction: column; gap: 1px; font-size: 12.5px; color: var(--tswx-muted); }
.tswx .tswx-rated-txt > a { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 14.5px; font-weight: 700; color: var(--tswx-ink); }
.tswx-rated-card:hover .tswx-rated-txt > a { color: var(--tswx-blue); }
.tswx-rated-score { display: inline-flex; align-items: center; gap: 4px; font-weight: 700; color: var(--tswx-ink); }
.tswx-rated-score .tswh-ico { color: #f59e0b; fill: #f59e0b; }
.tswx-rated-score em { font-style: normal; font-weight: 500; color: var(--tswx-muted); }
.tswx-rated-loc { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* Cost numbers */
.tswx .tswx-stats4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.tswx .tswx-stats4--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.tswx .tswx-stats4--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.tswx .tswx-stats4--1 { grid-template-columns: minmax(0, 1fr); max-width: 420px; }
.tswx-stat { display: flex; align-items: flex-start; gap: 14px; padding: 18px; background: #fff; border: 1px solid var(--tswx-line); border-radius: 14px; }
.tswx-stat-txt { min-width: 0; display: flex; flex-direction: column; }
.tswx-stat-txt strong { font-family: var(--tswx-title); font-size: 19px; font-weight: 800; line-height: 1.25; color: var(--tswx-ink); }
.tswx-stat-label { font-size: 13.5px; font-weight: 600; color: var(--tswx-text); }
.tswx-stat-txt small { margin-top: 4px; font-size: 12px; color: var(--tswx-muted); }

/* Steps */
.tswx .tswx-steps { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px; }
.tswx-step { display: flex; flex-direction: column; gap: 8px; padding: 18px; background: #fff; border: 1px solid var(--tswx-line); border-radius: 14px; }
.tswx .tswx-step-title { margin: 4px 0 0; font-family: var(--tswx-title); font-size: 15px; font-weight: 700; line-height: 1.3; color: var(--tswx-ink); }
.tswx-step p { font-size: 13px; line-height: 1.5; color: var(--tswx-muted); }
.tswx .tswx-links-row { display: flex; flex-wrap: wrap; gap: 8px 24px; margin-top: 16px; }
.tswx .tswx-links-row a { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 700; color: var(--tswx-blue); }
.tswx .tswx-links-row a:hover .tswh-ico { transform: translateX(3px); }

/* Locations */
.tswx .tswx-locs { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 14px; }
.tswx .tswx-loc { display: flex; align-items: center; gap: 12px; height: 100%; padding: 14px; background: #fff; border: 1px solid var(--tswx-line); border-radius: 14px; transition: border-color .18s ease, box-shadow .18s ease; }
.tswx .tswx-loc:hover { border-color: #c7d7f7; box-shadow: var(--tswx-shadow-hover); }
.tswx-loc-code { flex: none; width: 40px; height: 30px; display: flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 800; letter-spacing: .04em; color: var(--tswx-navy); background: #eef3ff; border: 1px solid #dbe6fb; border-radius: 6px; }
.tswx-loc-txt { min-width: 0; display: flex; flex-direction: column; line-height: 1.3; }
.tswx-loc-txt strong { font-size: 14px; color: var(--tswx-ink); }
.tswx-loc-txt small { font-size: 12.5px; color: var(--tswx-muted); }

/* How listings work */
.tswx .tswx-info4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.tswx-info { display: flex; align-items: flex-start; gap: 14px; padding: 18px; background: #fff; border: 1px solid var(--tswx-line); border-radius: 14px; }
.tswx .tswx-info-title { margin: 0 0 6px; font-family: var(--tswx-title); font-size: 15px; font-weight: 700; line-height: 1.3; color: var(--tswx-ink); }
.tswx-info p { margin-bottom: 8px !important; font-size: 13px; line-height: 1.5; color: var(--tswx-muted); }
.tswx .tswx-info a { font-size: 13px; font-weight: 700; color: var(--tswx-blue); }
.tswx .tswx-info a:hover { text-decoration: underline; }

/* Guides */
.tswx-posts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.tswx-post { position: relative; display: flex; align-items: center; gap: 14px; padding: 12px; background: #fff; border: 1px solid var(--tswx-line); border-radius: 14px; transition: border-color .18s ease, box-shadow .18s ease; }
.tswx-post:hover { border-color: #cfdcf5; box-shadow: var(--tswx-shadow-hover); }
.tswx-post-img { flex: 0 0 120px; height: 84px; overflow: hidden; display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, #e0ecff, #f1f6ff); border-radius: 10px; }
.tswx-post-img img { width: 100%; height: 100%; object-fit: cover; }
.tswx-post-ph { color: #6b8fe0; }
.tswx-post-body { min-width: 0; }
.tswx .tswx-post-title { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; margin: 0 0 6px; font-family: var(--tswx-title); font-size: 14.5px; font-weight: 700; line-height: 1.35; }
.tswx .tswx-post-title a { color: var(--tswx-ink); }
.tswx-post:hover .tswx-post-title a { color: var(--tswx-blue); }
.tswx-post-meta { font-size: 12px; color: var(--tswx-muted); }

/* FAQ */
.tswx-faq { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 16px; align-items: start; }
.tswx-faq-item { background: #fff; border: 1px solid var(--tswx-line); border-radius: 12px; }
.tswx .tswx-faq-item summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 16px; cursor: pointer; list-style: none; color: var(--tswx-ink); }
.tswx .tswx-faq-item summary::-webkit-details-marker { display: none; }
.tswx .tswx-faq-item summary h3 { margin: 0; font-family: var(--tswx-body); font-size: 14.5px; font-weight: 600; line-height: 1.4; color: var(--tswx-ink); }
.tswx-faq-item[open] summary .tswh-ico { transform: rotate(180deg); }
.tswx-faq-item[open] { border-color: #c7d7f7; }
.tswx-faq-item p { padding: 0 16px 16px; font-size: 14px; line-height: 1.6; color: var(--tswx-text); }

/* Extra content typed in the page editor */
.tswx-prose { max-width: 860px; font-size: 15.5px; line-height: 1.75; }
.tswx-prose h2 { margin: 28px 0 10px; font-size: 22px; color: var(--tswx-ink); }
.tswx-prose h3 { margin: 22px 0 8px; font-size: 18px; color: var(--tswx-ink); }
.tswx-prose p, .tswx-prose ul, .tswx-prose ol { margin: 0 0 14px; }
.tswx-prose ul { list-style: disc; padding-left: 20px; }
.tswx-prose ol { list-style: decimal; padding-left: 20px; }
.tswx-prose a { color: var(--tswx-blue); text-decoration: underline; }

/* For agencies */
.tswx-cta { display: flex; align-items: center; gap: 20px; padding: 24px 28px; background: linear-gradient(135deg, #e8f0ff, #f4f8ff); border: 1px solid #d6e3fb; border-radius: 18px; }
.tswx-cta-ic { flex: none; width: 64px; height: 64px; display: flex; align-items: center; justify-content: center; color: var(--tswx-blue); background: #fff; border-radius: 16px; box-shadow: var(--tswx-shadow); }
.tswx-cta-txt { flex: 1; min-width: 0; }
.tswx .tswx-cta-title { margin: 0 0 4px; font-family: var(--tswx-title); font-size: 21px; font-weight: 800; line-height: 1.25; color: var(--tswx-ink); }
.tswx-cta-txt p { font-size: 14.5px; color: var(--tswx-muted); }
.tswx-cta-actions { display: flex; flex-wrap: wrap; gap: 10px; }

/* ============ RESPONSIVE ============ */
@media (max-width: 1180px) {
	.tswx-hero-grid { grid-template-columns: minmax(0, 1fr) 420px; gap: 24px; }
	.tswx-hero-card { left: 10px; width: 310px; }
	.tswx .tswx-rated { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.tswx .tswx-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.tswx .tswx-info4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 1024px) {
	.tswx-hero-grid { grid-template-columns: minmax(0, 1fr); }
	.tswx-hero-art { height: auto; display: flex; flex-wrap: wrap; gap: 12px; margin-top: 4px; }
	.tswx-map { display: none; }
	.tswx-bubble { position: static; }
	.tswx-hero-card { position: relative; top: auto; left: auto; order: -1; width: 100%; max-width: 420px; margin-top: 14px; }
	.tswx .tswx-svc-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.tswx .tswx-svc-more { grid-column: span 2; }
	.tswx-feat-grid, .tswx-posts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tswx-feat-grid > :last-child:nth-child(odd), .tswx-posts > :last-child:nth-child(odd) { grid-column: 1 / -1; }
	.tswx .tswx-stats4, .tswx .tswx-stats4--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tswx-cta { flex-wrap: wrap; }
	.tswx-cta-actions { flex: 1 1 100%; }
}

@media (max-width: 760px) {
	.tswx { font-size: 14.5px; }
	.tswx-wrap { padding: 0 16px; }
	.tswx-hero { padding: 14px 0 32px; }
	.tswx .tswx-h1 { font-size: 28px; }
	.tswx-lead { font-size: 15px; }
	.tswx .tswx-search { flex-wrap: wrap; padding: 6px 6px 6px 14px; }
	.tswx .tswx-search input[type="search"] { font-size: 16px; }
	.tswx .tswx-search .tswx-search-btn { flex: 1 1 100%; justify-content: center; }
	.tswx-sec { padding-top: 40px; }
	.tswx-sec--band { margin-top: 40px; padding: 32px 0; }
	.tswx-head { flex-direction: column; align-items: flex-start; gap: 8px; }
	.tswx .tswx-svc-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
	.tswx .tswx-svc { flex-direction: column; gap: 10px; padding: 14px; }
	.tswx .tswx-svc .tswx-ic { width: 40px; height: 40px; border-radius: 10px; }
	.tswx-svc-title { font-size: 14px; }
	.tswx-svc .tswx-svc-desc { display: none; }
	.tswx .tswx-ai-grid { grid-template-columns: minmax(0, 1fr); gap: 10px; }
	.tswx .tswx-svc-more { grid-column: 1 / -1; flex-wrap: wrap; }
	.tswx .tswx-svc-more .tswx-btn { flex: 1 1 100%; }
	.tswx-feat-grid, .tswx-posts, .tswx-faq { grid-template-columns: minmax(0, 1fr); }
	.tswx-feat-grid > :last-child:nth-child(odd), .tswx-posts > :last-child:nth-child(odd) { grid-column: auto; }
	.tswx .tswx-rated { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
	.tswx .tswx-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
	.tswx .tswx-locs { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
	.tswx .tswx-info4 { grid-template-columns: minmax(0, 1fr); gap: 10px; }
	.tswx-allcats-grid { columns: 2 150px; }
	.tswx-cta { padding: 20px; }
	.tswx-cta-actions .tswx-btn { flex: 1 1 auto; }
	.tswx-sec--last { padding-bottom: 44px; }
}

@media (max-width: 480px) {
	.tswx .tswx-stats4, .tswx .tswx-stats4--3, .tswx .tswx-stats4--2 { grid-template-columns: minmax(0, 1fr); }
	.tswx .tswx-steps { grid-template-columns: minmax(0, 1fr); }
	.tswx .tswx-rated { grid-template-columns: minmax(0, 1fr); }
	.tswx-post-img { flex-basis: 96px; height: 72px; }
	.tswx-bubble { flex: 1 1 140px; }
}

@media (prefers-reduced-motion: reduce) {
	.tswx *, .tswx *::before, .tswx *::after { transition: none !important; }
	.tswx .tswx-svc:hover, .tswx .tswx-ai-card:hover, .tswx .tswx-btn:hover { transform: none; }
}

/* ============================================================
   TOOLS · AI SEARCH OPTIMIZATION · RESOURCES
   ============================================================ */

/* Shared bits */
.tswx-kicker { display: inline-block; margin-bottom: 4px; font-size: 11.5px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--tswx-blue); }
.tswx-ph { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; color: #6b8fe0; background: linear-gradient(135deg, #e0ecff, #f1f6ff); }
.tswx-ic--sm { width: 30px; height: 30px; border-radius: 8px; }
.tswx-logo--xs { width: 26px; height: 26px; border-radius: 7px; }
.tswx-logo--xs img { padding: 3px; }
.tswx-logo--xs.is-initials { font-size: 11px; }
.tswx .tswx-h3 { margin: 0; font-family: var(--tswx-title); font-size: 17.5px; font-weight: 800; line-height: 1.3; color: var(--tswx-ink); }
.tswx .tswx-h3--ic { display: flex; align-items: center; gap: 10px; }
.tswx .tswx-h1-blue { display: block; color: var(--tswx-blue); }
.tswx .tswx-h1-blue.is-inline { display: inline; }
.tswx-h1-sep { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
.tswx-free { display: inline-block; padding: 2px 8px; font-size: 11.5px; font-weight: 700; line-height: 1.5; white-space: nowrap; color: #15803d; background: #dcfce7; border-radius: 6px; }
.tswx-free.is-trial { color: #b45309; background: #fef3c7; }
.tswx-price { font-size: 13px; font-weight: 700; color: var(--tswx-ink); }
.tswx-flag.is-inline { position: static; display: inline-block; }
.tswx-line { display: block; height: 8px; border-radius: 6px; background: #e2e8f0; }
.tswx-line.w90 { width: 90%; } .tswx-line.w80 { width: 80%; } .tswx-line.w75 { width: 75%; } .tswx-line.w60 { width: 60%; } .tswx-line.w55 { width: 55%; }

/* Quick links under the search box */
.tswx .tswx-quick { display: flex; flex-wrap: wrap; gap: 8px; }
.tswx .tswx-quick a { display: inline-flex; align-items: center; gap: 6px; padding: 6px 13px; font-size: 13px; font-weight: 600; line-height: 1.3; color: var(--tswx-blue); background: #fff; border: 1px solid #c7d7f7; border-radius: 999px; transition: background-color .15s ease, border-color .15s ease; }
.tswx .tswx-quick a:hover { background: #eff6ff; border-color: var(--tswx-blue); }

/* Hero: tool window with real logos, real numbers underneath */
.tswx .tswx-hero-art--win { height: auto; display: flex; flex-direction: column; align-items: stretch; }
.tswx-win { position: relative; z-index: 2; padding-bottom: 16px; background: #fff; border: 1px solid #e3ebfa; border-radius: 16px; box-shadow: 0 24px 50px -22px rgba(29, 78, 216, .35), 0 6px 16px rgba(15, 23, 42, .06); }
.tswx-hero-art--win .tswx-win { margin: 0 12px; padding-bottom: 46px; }
.tswx-win-bar { display: flex; align-items: center; gap: 6px; padding: 11px 14px; border-bottom: 1px solid #eef2f7; }
.tswx-win-bar i { width: 9px; height: 9px; border-radius: 50%; background: #fda4af; }
.tswx-win-bar i:nth-child(2) { background: #fcd34d; }
.tswx-win-bar i:nth-child(3) { background: #86efac; }
.tswx-win-bar span { margin-left: 8px; font-size: 12.5px; font-weight: 700; color: var(--tswx-muted); }
.tswx-win-title { padding: 12px 16px 10px; font-size: 12.5px; font-weight: 700; color: var(--tswx-muted); }
.tswx .tswx-win-logos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; padding: 0 16px; }
.tswx .tswx-win-logos a { display: flex; flex-direction: column; align-items: center; gap: 6px; min-width: 0; padding: 10px 6px; font-size: 12.5px; font-weight: 600; line-height: 1.3; text-align: center; color: var(--tswx-ink); border: 1px solid #eef2f7; border-radius: 12px; transition: border-color .15s ease, color .15s ease; }
.tswx .tswx-win-logos a:hover { border-color: #c7d7f7; color: var(--tswx-blue); }
.tswx-win-logos .tswx-logo { width: 38px; height: 38px; border-radius: 10px; }
.tswx-win-logos .tswx-logo.is-initials { font-size: 14px; }
.tswx-win-logos span:not(.tswx-logo) { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tswx .tswx-win-pills { display: flex; flex-wrap: wrap; gap: 8px; padding: 12px 16px 0; }
.tswx-win-pills li { display: inline-flex; align-items: center; gap: 5px; padding: 4px 10px; font-size: 12px; font-weight: 600; color: #15803d; background: #f0fdf4; border: 1px solid #bbf7d0; border-radius: 999px; }
.tswx-win-pills li.is-1 { color: #7c3aed; background: #f5f0ff; border-color: #e4d5fd; }
.tswx-hero-stats { position: relative; z-index: 3; display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }
.tswx-hero-stats.is-under { margin-top: -30px; }
.tswx .tswx-hero-stats .tswx-bubble { position: static; }

/* Browse tools by category */
.tswx .tswx-groups { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.tswx-group { display: flex; flex-direction: column; gap: 8px; padding: 18px; background: #fff; border: 1px solid var(--tswx-line); border-radius: 14px; box-shadow: 0 1px 2px rgba(15, 23, 42, .04); transition: border-color .18s ease, box-shadow .18s ease; }
.tswx-group:hover { border-color: #cfdcf5; box-shadow: var(--tswx-shadow-hover); }
.tswx-group-head { display: flex; align-items: center; gap: 12px; }
.tswx-group-id { min-width: 0; display: flex; flex-direction: column; }
.tswx .tswx-group-title { margin: 0; font-family: var(--tswx-title); font-size: 16px; font-weight: 700; line-height: 1.3; color: var(--tswx-ink); }
.tswx .tswx-group-title a { color: var(--tswx-ink); }
.tswx .tswx-group-title a:hover { color: var(--tswx-blue); }
.tswx-group-desc { font-size: 13px; line-height: 1.5; color: var(--tswx-muted); }
.tswx .tswx-group-links { margin-top: 2px; }
.tswx .tswx-group-links a { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; padding: 6px 0; font-size: 13.5px; line-height: 1.35; color: var(--tswx-text); border-top: 1px dashed #e8edf5; }
.tswx .tswx-group-links a:hover { color: var(--tswx-blue); }
.tswx .tswx-group-links span { flex: none; font-size: 12px; font-weight: 600; color: #94a3b8; }
.tswx .tswx-allcats-flat { columns: 4 200px; column-gap: 28px; padding: 14px 18px 18px; border-top: 1px solid var(--tswx-line); }
.tswx .tswx-allcats-flat li { break-inside: avoid; }
.tswx .tswx-allcats-flat a { display: block; padding: 3px 0; font-size: 13.5px; color: var(--tswx-text); }

/* Popular tools */
.tswx .tswx-tools { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 14px; }
.tswx .tswx-tools--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.tswx .tswx-tools--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.tswx .tswx-tools--3, .tswx .tswx-tools--2, .tswx .tswx-tools--1 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.tswx-tool { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 5px; min-width: 0; padding: 16px; background: #fff; border: 1px solid var(--tswx-line); border-radius: 16px; box-shadow: 0 1px 2px rgba(15, 23, 42, .04); transition: border-color .18s ease, box-shadow .18s ease; }
.tswx-tool:hover { border-color: #cfdcf5; box-shadow: var(--tswx-shadow-hover); }
.tswx-tool .tswx-flag { top: 14px; right: 14px; }
.tswx-tool > .tswx-logo { margin-bottom: 6px; }
.tswx .tswx-tool-name { display: flex; align-items: center; gap: 5px; max-width: 100%; margin: 0; font-family: var(--tswx-title); font-size: 15.5px; font-weight: 700; line-height: 1.3; }
.tswx .tswx-tool-name a { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--tswx-ink); }
.tswx .tswx-tool-name a:hover { color: var(--tswx-blue); }
.tswx-tool-cat { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12.5px; color: var(--tswx-muted); }
.tswx .tswx-rating.is-none a { font-size: 12.5px; font-weight: 600; color: var(--tswx-blue); }
.tswx-tool-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.tswx-tool > :nth-last-child(2) { margin-bottom: 8px; }
.tswx .tswx-tool .tswx-btn { margin-top: auto; padding: 10px 14px; font-size: 13.5px; }

/* Free tools */
.tswx .tswx-minis { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.tswx-mini { position: relative; display: flex; align-items: center; gap: 12px; padding: 12px 14px; background: #fff; border: 1px solid var(--tswx-line); border-radius: 14px; transition: border-color .18s ease, box-shadow .18s ease; }
.tswx-mini:hover { border-color: #cfdcf5; box-shadow: var(--tswx-shadow-hover); }
.tswx-mini-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; line-height: 1.35; }
.tswx .tswx-mini-txt a { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 14.5px; font-weight: 700; color: var(--tswx-ink); }
.tswx-mini:hover .tswx-mini-txt a { color: var(--tswx-blue); }
.tswx-mini-txt small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12.5px; color: var(--tswx-muted); }

/* Tool stacks */
.tswx-stacks { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.tswx-stack { display: flex; flex-direction: column; gap: 8px; padding: 18px; background: #fff; border: 1px solid var(--tswx-line); border-radius: 16px; }
.tswx .tswx-stack-title { margin: 4px 0 0; font-family: var(--tswx-title); font-size: 15.5px; font-weight: 700; line-height: 1.3; color: var(--tswx-ink); }
.tswx-stack > p { font-size: 13px; line-height: 1.5; color: var(--tswx-muted); }
.tswx .tswx-stack-tools { display: flex; flex-direction: column; gap: 6px; margin-top: auto; padding-top: 6px; }
.tswx .tswx-stack-tools a { display: flex; align-items: center; gap: 9px; padding: 6px 8px; font-size: 13.5px; font-weight: 600; color: var(--tswx-ink); border: 1px solid #eef2f7; border-radius: 10px; transition: border-color .15s ease, color .15s ease; }
.tswx .tswx-stack-tools a:hover { border-color: #c7d7f7; color: var(--tswx-blue); }

/* Tables (pricing, SEO vs GEO) with a side box */
.tswx-price-grid { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 18px; align-items: start; }
.tswx-table-wrap { overflow-x: auto; background: #fff; border: 1px solid var(--tswx-line); border-radius: 14px; -webkit-overflow-scrolling: touch; }
.tswx .tswx-table { width: 100%; margin: 0; border: 0; border-collapse: collapse; font-size: 14px; line-height: 1.45; color: var(--tswx-text); background: none; }
.tswx .tswx-table th, .tswx .tswx-table td { padding: 13px 16px; text-align: left; vertical-align: top; border: 0; border-bottom: 1px solid var(--tswx-line); background: none; text-transform: none; letter-spacing: 0; }
.tswx .tswx-table thead th { font-size: 12.5px; font-weight: 700; color: var(--tswx-muted); background: #f8fafc; white-space: nowrap; }
.tswx .tswx-table thead td { background: #f8fafc; }
.tswx .tswx-table tbody tr:last-child > * { border-bottom: 0; }
.tswx .tswx-table tbody th { font-weight: 700; color: var(--tswx-ink); }
.tswx .tswx-table tbody th a { color: var(--tswx-blue); }
.tswx .tswx-table tbody th a:hover { text-decoration: underline; }
.tswx .tswx-table td strong { font-family: var(--tswx-title); font-size: 15px; color: var(--tswx-ink); }
.tswx .tswx-table--cmp { min-width: 760px; font-size: 13.5px; }
.tswx .tswx-table--cmp thead th { font-family: var(--tswx-title); font-size: 15px; font-weight: 800; color: var(--tswx-blue); }
.tswx .tswx-table--cmp tbody th { width: 150px; font-size: 13px; color: var(--tswx-muted); }
.tswx-side { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; padding: 20px; background: linear-gradient(180deg, #f3f7ff, #fff); border: 1px solid #dbe6fb; border-radius: 14px; }
.tswx .tswx-side-title { margin: 2px 0 0; font-family: var(--tswx-title); font-size: 16px; font-weight: 700; line-height: 1.3; color: var(--tswx-ink); }
.tswx-side > p { font-size: 12.5px; line-height: 1.5; color: var(--tswx-muted); }
.tswx .tswx-ticks li { position: relative; margin-bottom: 8px; padding-left: 22px; font-size: 13px; line-height: 1.5; color: var(--tswx-text); }
.tswx .tswx-ticks li::before { content: ""; position: absolute; left: 2px; top: 5px; width: 11px; height: 6px; border-left: 2px solid #16a34a; border-bottom: 2px solid #16a34a; transform: rotate(-45deg); }
.tswx-ticks strong { color: var(--tswx-ink); }

/* Compare pairs */
.tswx .tswx-pairs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.tswx-pair { position: relative; display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 18px 14px; text-align: center; background: #fff; border: 1px solid var(--tswx-line); border-radius: 14px; transition: border-color .18s ease, box-shadow .18s ease; }
.tswx-pair:hover { border-color: #cfdcf5; box-shadow: var(--tswx-shadow-hover); }
.tswx-pair-logos { display: flex; align-items: center; gap: 8px; }
.tswx-vs { padding: 3px 8px; font-size: 11px; font-weight: 800; text-transform: uppercase; color: var(--tswx-muted); background: #f1f5f9; border-radius: 999px; }
.tswx .tswx-pair-name { font-family: var(--tswx-title); font-size: 15px; font-weight: 700; line-height: 1.3; color: var(--tswx-ink); }
.tswx-pair:hover .tswx-pair-name { color: var(--tswx-blue); }
.tswx-pair-go { display: inline-flex; align-items: center; gap: 4px; font-size: 13px; font-weight: 700; color: var(--tswx-blue); }
.tswx .tswx-note a { font-weight: 600; color: var(--tswx-blue); text-decoration: underline; }

/* ---------- AI Search Optimization ---------- */
.tswx-byline { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; font-size: 13.5px; color: var(--tswx-muted); }
.tswx-byline-who { display: inline-flex; align-items: center; gap: 8px; }
.tswx .tswx-avatar { width: 32px; height: 32px; border-radius: 50%; }
.tswx .tswx-byline a { font-weight: 600; color: var(--tswx-blue); }
.tswx-byline strong { color: var(--tswx-ink); }
.tswx-byline-item { display: inline-flex; align-items: center; gap: 6px; }
.tswx-byline-item.is-reviewed { color: #15803d; }

.tswx .tswx-hero-art--ai { height: auto; display: flex; flex-direction: column; gap: 14px; }
.tswx-win--ai { position: relative; top: auto; left: auto; right: auto; }
.tswx-ask { display: flex; align-items: center; gap: 8px; margin: 14px 16px 0; padding: 10px 14px; font-size: 13.5px; font-weight: 600; color: var(--tswx-ink); background: #f1f5f9; border-radius: 12px; }
.tswx-ask .tswh-ico { color: var(--tswx-muted); }
.tswx-answer { display: flex; gap: 12px; margin: 12px 16px 0; padding: 14px; background: linear-gradient(180deg, #f8fbff, #fff); border: 1px solid #e3ebfa; border-radius: 12px; }
.tswx-answer > div { flex: 1; min-width: 0; }
.tswx-answer-ic { flex: none; width: 30px; height: 30px; display: flex; align-items: center; justify-content: center; color: #7c3aed; background: #f1e8ff; border-radius: 50%; }
.tswx-answer p { display: flex; flex-direction: column; gap: 6px; margin-bottom: 10px; }
.tswx-answer p:last-child { margin-bottom: 0; }
.tswx .tswx-answer .tswx-brand { display: block; font-size: 13.5px; color: var(--tswx-text); }
.tswx-brand span { padding: 1px 6px; font-weight: 700; color: var(--tswx-blue); background: #dbeafe; border-radius: 5px; }
.tswx-brand em { font-size: 11px; font-style: normal; font-weight: 700; vertical-align: super; color: var(--tswx-blue); }
.tswx .tswx-answer .tswx-sources { flex-direction: row; flex-wrap: wrap; gap: 6px; }
.tswx-sources span { padding: 2px 9px; font-size: 11.5px; color: var(--tswx-muted); background: #fff; border: 1px solid var(--tswx-line); border-radius: 999px; }
.tswx .tswx-plat-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.tswx .tswx-plat-chips a { display: inline-flex; align-items: center; gap: 7px; padding: 4px 12px 4px 4px; font-size: 13px; font-weight: 600; color: var(--tswx-ink); background: #fff; border: 1px solid #dbe4f3; border-radius: 999px; transition: border-color .15s ease, color .15s ease; }
.tswx .tswx-plat-chips a:hover { border-color: #9db8f2; color: var(--tswx-blue); }
.tswx-plat-chips .tswx-logo--xs { border-radius: 50%; }

.tswx-def-grid { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 18px; align-items: stretch; }
.tswx-def { display: flex; align-items: flex-start; gap: 16px; padding: 22px 24px; background: linear-gradient(135deg, #eef4ff, #f8fbff); border: 1px solid #d6e3fb; border-radius: 16px; }
.tswx .tswx-def-title { margin: 0 0 8px; font-family: var(--tswx-title); font-size: 20px; font-weight: 800; line-height: 1.3; color: var(--tswx-ink); }
.tswx-def p { font-size: 15px; line-height: 1.7; color: var(--tswx-text); }
.tswx-toc { padding: 18px 20px; background: #fff; border: 1px solid var(--tswx-line); border-radius: 16px; }
.tswx-toc-title { margin-bottom: 8px !important; font-size: 13px; font-weight: 700; color: var(--tswx-ink); }
.tswx .tswx-toc ol { counter-reset: tswx-toc; }
.tswx .tswx-toc li { counter-increment: tswx-toc; }
.tswx .tswx-toc a { display: flex; align-items: center; gap: 10px; padding: 4px 0; font-size: 14px; color: var(--tswx-text); }
.tswx .tswx-toc a::before { content: counter(tswx-toc); flex: none; width: 22px; height: 22px; display: flex; align-items: center; justify-content: center; font-size: 11.5px; font-weight: 700; color: var(--tswx-blue); background: #eff6ff; border-radius: 50%; }
.tswx .tswx-toc a:hover { color: var(--tswx-blue); }
.tswx .tswx-explore { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-top: 18px; }
.tswx .tswx-explore--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.tswx .tswx-explore--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.tswx .tswx-explore--1 { grid-template-columns: minmax(0, 1fr); }
.tswx .tswx-explore .tswx-ai-card { padding: 16px; }

.tswx .tswx-plats { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; }
.tswx-plat { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 3px; padding: 16px 14px; background: #fff; border: 1px solid var(--tswx-line); border-radius: 14px; transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.tswx-plat:hover { border-color: #c7d7f7; box-shadow: var(--tswx-shadow-hover); transform: translateY(-2px); }
.tswx-plat > .tswx-logo { margin-bottom: 8px; }
.tswx .tswx-plat-name { font-family: var(--tswx-title); font-size: 15px; font-weight: 700; line-height: 1.3; color: var(--tswx-ink); }
.tswx-plat small { font-size: 12.5px; color: var(--tswx-muted); }
.tswx-plat-go { display: inline-flex; align-items: center; gap: 4px; margin-top: auto; padding-top: 8px; font-size: 12.5px; font-weight: 700; color: var(--tswx-blue); }

.tswx .tswx-nsteps { columns: 2; column-gap: 16px; }
.tswx .tswx-nstep { display: flex; align-items: flex-start; gap: 14px; margin-bottom: 12px; padding: 16px 18px; break-inside: avoid; background: #fff; border: 1px solid var(--tswx-line); border-radius: 14px; }
.tswx-nstep-n { flex: none; width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; font-family: var(--tswx-title); font-size: 15px; font-weight: 800; color: #fff; background: linear-gradient(135deg, #2563eb, #1d4ed8); border-radius: 50%; box-shadow: 0 6px 14px -6px rgba(29, 78, 216, .6); }
.tswx-nstep .tswx-step-title { margin: 4px 0 4px; }
.tswx-nstep p { font-size: 13.5px; line-height: 1.55; color: var(--tswx-muted); }

.tswx-cols { display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; }
.tswx-cols--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.tswx-cols--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.tswx-cols--top { align-items: start; }
.tswx-col { min-width: 0; }
.tswx-col--box { padding: 18px 20px; background: #fff; border: 1px solid var(--tswx-line); border-radius: 16px; }
.tswx .tswx-head--col { align-items: center; margin-bottom: 12px; }
.tswx .tswx-col-more { margin-top: 12px; }
.tswx .tswx-rows { display: flex; flex-direction: column; gap: 10px; }
.tswx-row { position: relative; display: flex; align-items: center; gap: 12px; padding: 12px 14px; background: #fff; border: 1px solid var(--tswx-line); border-radius: 14px; transition: border-color .18s ease, box-shadow .18s ease; }
.tswx-row:hover { border-color: #cfdcf5; box-shadow: var(--tswx-shadow-hover); }
.tswx-row-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; line-height: 1.35; }
.tswx .tswx-row-txt a { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 14.5px; font-weight: 700; color: var(--tswx-ink); }
.tswx-row:hover .tswx-row-txt a { color: var(--tswx-blue); }
.tswx-row-txt small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12.5px; color: var(--tswx-muted); }
.tswx-row-end { flex: none; display: flex; align-items: center; font-size: 12.5px; }
.tswx .tswx-plain-item { position: relative; display: flex; align-items: center; gap: 12px; padding: 10px 0; border-top: 1px solid #f1f5f9; }
.tswx .tswx-plain-item:first-child { padding-top: 0; border-top: 0; }
.tswx-plain-img { flex: 0 0 56px; height: 56px; overflow: hidden; border-radius: 10px; }
.tswx-plain-img img { width: 100%; height: 100%; object-fit: cover; }
.tswx-plain-img .tswx-ph .tswh-ico { width: 20px; height: 20px; }
.tswx-plain-item > div:last-child { min-width: 0; }
.tswx .tswx-plain-item a { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-size: 14px; font-weight: 600; line-height: 1.4; color: var(--tswx-ink); }
.tswx .tswx-plain-item:hover a { color: var(--tswx-blue); }
.tswx-plain-item small { display: block; margin-top: 2px; font-size: 12px; color: var(--tswx-muted); }
.tswx .tswx-measure li { display: flex; align-items: flex-start; gap: 12px; padding: 12px 0; border-top: 1px solid #f1f5f9; }
.tswx .tswx-measure li:first-child { padding-top: 0; border-top: 0; }
.tswx .tswx-measure .tswx-ic { width: 38px; height: 38px; }
.tswx .tswx-measure-title { margin: 0 0 2px; font-family: var(--tswx-title); font-size: 14.5px; font-weight: 700; line-height: 1.35; color: var(--tswx-ink); }
.tswx-measure p { font-size: 13px; line-height: 1.5; color: var(--tswx-muted); }
.tswx-col-links { margin-top: 12px !important; padding-top: 12px; font-size: 13px; line-height: 1.6; color: var(--tswx-muted); border-top: 1px solid #f1f5f9; }
.tswx-col-links strong { color: var(--tswx-ink); }
.tswx .tswx-col-links a { font-weight: 600; color: var(--tswx-blue); }
.tswx .tswx-faq--stack { grid-template-columns: minmax(0, 1fr); gap: 8px; }
.tswx .tswx-faq--stack summary { padding: 12px 14px; }
.tswx .tswx-faq--stack summary h3 { font-size: 14px; }
.tswx .tswx-faq--stack .tswx-faq-item p { padding: 0 14px 14px; font-size: 13.5px; }

/* ---------- Resources ---------- */
.tswx-hero-art--book { height: 310px; }
.tswx-book {
	position: absolute; z-index: 2; top: 26px; left: 50%; width: 230px; height: 256px;
	display: flex; flex-direction: column; gap: 9px; padding: 24px 22px 22px 32px; overflow: hidden;
	color: #fff; background: linear-gradient(160deg, #2563eb 0%, #1d4ed8 45%, #0a2463 100%);
	border-radius: 8px 16px 16px 8px; transform: translateX(-50%) rotate(-3deg);
	box-shadow: 0 28px 50px -20px rgba(10, 36, 99, .55), 0 6px 16px rgba(15, 23, 42, .1);
}
.tswx-book::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 12px; background: rgba(0, 0, 0, .18); }
.tswx-book-ic { width: 54px; height: 54px; display: flex; align-items: center; justify-content: center; margin-bottom: 6px; background: rgba(255, 255, 255, .16); border-radius: 14px; }
.tswx-book-kicker { font-size: 11.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; opacity: .8; }
.tswx-book-title { margin-bottom: 8px; font-family: var(--tswx-title); font-size: 23px; font-weight: 800; line-height: 1.15; }
.tswx-book .tswx-line { height: 7px; background: rgba(255, 255, 255, .25); }
.tswx .tswx-book-pills li { position: absolute; z-index: 3; }
.tswx .tswx-book-pills a { display: inline-flex; align-items: center; gap: 9px; padding: 6px 14px 6px 6px; font-size: 13.5px; font-weight: 700; white-space: nowrap; color: var(--tswx-ink); background: #fff; border: 1px solid #e3ebfa; border-radius: 999px; box-shadow: var(--tswx-shadow); transition: border-color .15s ease, color .15s ease; }
.tswx .tswx-book-pills a:hover { border-color: #9db8f2; color: var(--tswx-blue); }
.tswx-book-pills .tswx-bubble-ic { width: 30px; height: 30px; }
.tswx-book-pills .is-0 { top: 8px; left: 0; }
.tswx-book-pills .is-1 { top: 64px; right: 0; }
.tswx-book-pills .is-2 { bottom: 54px; left: 10px; }
.tswx-book-pills .is-3 { bottom: 4px; right: 24px; }
.tswx-book-pills .is-1 .tswx-bubble-ic { color: #7c3aed; background: #f1e8ff; }
.tswx-book-pills .is-2 .tswx-bubble-ic { color: #0f8a74; background: #d5f5ee; }
.tswx-book-pills .is-3 .tswx-bubble-ic { color: #ea580c; background: #ffedd5; }

.tswx-start { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.tswx-start--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.tswx-start--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.tswx-start--1 { grid-template-columns: minmax(0, 420px); }
.tswx-start-card, .tswx-card { position: relative; display: flex; flex-direction: column; overflow: hidden; background: #fff; border: 1px solid var(--tswx-line); border-radius: 16px; transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.tswx-start-card:hover, .tswx-card:hover { border-color: #cfdcf5; box-shadow: var(--tswx-shadow-hover); transform: translateY(-2px); }
.tswx-start-img { aspect-ratio: 16 / 8; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.tswx-start-img img, .tswx-card-img img { width: 100%; height: 100%; object-fit: cover; }
.tswx-start-body, .tswx-card-body { flex: 1; display: flex; flex-direction: column; gap: 4px; padding: 16px; }
.tswx .tswx-start-title, .tswx .tswx-card-title { margin: 0; font-family: var(--tswx-title); font-size: 16px; font-weight: 700; line-height: 1.35; }
.tswx .tswx-start-title a, .tswx .tswx-card-title a { color: var(--tswx-ink); }
.tswx-start-card:hover .tswx-start-title a, .tswx-card:hover .tswx-card-title a { color: var(--tswx-blue); }
.tswx-start-body p, .tswx-card-body p { font-size: 13.5px; line-height: 1.5; color: var(--tswx-muted); }
.tswx-cards4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.tswx-card-img { aspect-ratio: 16 / 9; overflow: hidden; }
.tswx .tswx-card-title { font-size: 15px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.tswx-card-body p { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.tswx-card-meta { margin-top: auto; padding-top: 6px; font-size: 12px; color: var(--tswx-muted); }

.tswx .tswx-freebies { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 14px; }
.tswx-freebie { display: flex; align-items: center; gap: 14px; padding: 18px; background: #fff; border: 1px solid var(--tswx-line); border-radius: 14px; }
.tswx-freebie-txt { flex: 1; min-width: 0; }
.tswx-freebie-txt p { font-size: 13px; line-height: 1.5; color: var(--tswx-muted); }

.tswx-banner { display: flex; align-items: center; gap: 18px; padding: 22px 26px; background: linear-gradient(135deg, #eef2ff, #f8faff); border: 1px solid #dfe3fb; border-radius: 18px; }
.tswx-banner-txt { flex: 1; min-width: 0; }
.tswx-banner-txt p { font-size: 14.5px; color: var(--tswx-muted); }
.tswx-soon { flex: none; padding: 7px 14px; font-size: 13px; font-weight: 700; color: #4f46e5; background: #fff; border: 1px dashed #c7c9f7; border-radius: 999px; }
.tswx-banner--news { flex-wrap: wrap; background: linear-gradient(135deg, #e8f0ff, #f4f8ff); border-color: #d6e3fb; }
.tswx-banner-form { flex: 1 1 320px; min-width: 0; }

.tswx-cta--grid { display: grid; grid-template-columns: 330px minmax(0, 1fr); gap: 20px; align-items: center; }
.tswx-cta-lead { display: flex; align-items: center; gap: 16px; }
.tswx .tswx-grow { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.tswx .tswx-grow-item { display: flex; align-items: flex-start; gap: 10px; height: 100%; padding: 14px; color: var(--tswx-blue); background: #fff; border: 1px solid #d6e3fb; border-radius: 12px; transition: border-color .15s ease, transform .15s ease; }
.tswx .tswx-grow-item:hover { border-color: var(--tswx-blue); transform: translateY(-1px); }
.tswx-grow-item > span { min-width: 0; display: flex; flex-direction: column; line-height: 1.35; }
.tswx-grow-item strong { font-size: 14px; color: var(--tswx-ink); }
.tswx-grow-item small { font-size: 12.5px; color: var(--tswx-muted); }
.tswx .tswx-grow-item.is-primary { color: #fff; background: var(--tswx-orange); border-color: var(--tswx-orange); box-shadow: 0 6px 16px -6px rgba(234, 88, 12, .55); }
.tswx .tswx-grow-item.is-primary:hover { background: var(--tswx-orange-d); border-color: var(--tswx-orange-d); }
.tswx-grow-item.is-primary strong, .tswx-grow-item.is-primary small { color: #fff; }

/* ---------- Responsive (Tools · AI · Resources) ---------- */
@media (max-width: 1180px) {
	.tswx .tswx-tools, .tswx .tswx-tools--5, .tswx .tswx-tools--4 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.tswx-stacks { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tswx-cta--grid { grid-template-columns: minmax(0, 1fr); }
	.tswx .tswx-grow { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

@media (max-width: 1024px) {
	.tswx .tswx-groups { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tswx .tswx-minis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tswx .tswx-pairs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tswx-price-grid, .tswx-def-grid { grid-template-columns: minmax(0, 1fr); }
	.tswx .tswx-explore { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tswx-cols--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tswx-cols--3 > :last-child { grid-column: 1 / -1; }
	.tswx-start, .tswx-start--3, .tswx-cards4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tswx .tswx-grow { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	/* hero art flows under the text */
	.tswx-hero-art--win, .tswx-hero-art--book { height: auto; }
	.tswx-hero-art--win { width: 100%; max-width: 560px; }
	.tswx-hero-art--win .tswx-win { margin: 0; }
	.tswx-hero-stats { justify-content: flex-start; }
	.tswx-hero-stats.is-under { justify-content: center; }
	.tswx-hero-art--book { flex-direction: column; align-items: flex-start; }
	.tswx-book { display: none; }
	.tswx .tswx-book-pills { display: flex; flex-wrap: wrap; gap: 10px; }
	.tswx .tswx-book-pills li { position: static; }
}

@media (max-width: 760px) {
	.tswx .tswx-tools, .tswx .tswx-tools--5, .tswx .tswx-tools--4, .tswx .tswx-tools--3, .tswx .tswx-tools--2, .tswx .tswx-tools--1 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
	.tswx-tool { padding: 14px; }
	.tswx .tswx-plats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
	.tswx .tswx-nsteps { columns: 1; }
	.tswx-cols--2, .tswx-cols--3 { grid-template-columns: minmax(0, 1fr); }
	.tswx-cols--3 > :last-child { grid-column: auto; }
	.tswx-def { flex-direction: column; gap: 12px; padding: 18px; }
	.tswx .tswx-def-title { font-size: 18px; }
	.tswx-banner { flex-wrap: wrap; padding: 20px; }
	.tswx-win-logos .tswx-logo { width: 30px; height: 30px; }
	.tswx .tswx-allcats-flat { columns: 2 140px; }
	/* price table becomes one card per row */
	.tswx .tswx-table:not(.tswx-table--cmp) thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); }
	.tswx .tswx-table:not(.tswx-table--cmp) tr { display: block; padding: 12px 14px; border-bottom: 1px solid var(--tswx-line); }
	.tswx .tswx-table:not(.tswx-table--cmp) tbody tr:last-child { border-bottom: 0; }
	.tswx .tswx-table:not(.tswx-table--cmp) th, .tswx .tswx-table:not(.tswx-table--cmp) td { display: flex; justify-content: space-between; gap: 12px; padding: 3px 0; border: 0; }
	.tswx .tswx-table:not(.tswx-table--cmp) tbody th { padding-bottom: 6px; font-size: 15px; }
	.tswx .tswx-table:not(.tswx-table--cmp) td::before { content: attr(data-label); font-size: 12.5px; color: var(--tswx-muted); }
}

@media (max-width: 600px) {
	.tswx .tswx-groups, .tswx .tswx-minis, .tswx-stacks { grid-template-columns: minmax(0, 1fr); }
	.tswx-freebie { flex-wrap: wrap; }
	.tswx-freebie .tswx-btn { flex: 1 1 100%; }
	.tswx .tswx-win-logos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 480px) {
	.tswx .tswx-explore, .tswx .tswx-explore--3, .tswx .tswx-explore--2 { grid-template-columns: minmax(0, 1fr); }
	.tswx-start, .tswx-start--3, .tswx-start--2, .tswx-cards4 { grid-template-columns: minmax(0, 1fr); }
	.tswx .tswx-grow { grid-template-columns: minmax(0, 1fr); }
	.tswx .tswx-pairs { gap: 10px; }
	.tswx-pair { padding: 14px 10px; }
}

@media (prefers-reduced-motion: reduce) {
	.tswx .tswx-plat:hover, .tswx .tswx-start-card:hover, .tswx .tswx-card:hover, .tswx .tswx-grow-item:hover { transform: none; }
}

@media (max-width: 600px) {
	.tswx-hero-art--win .tswx-win { display: none; }
	.tswx-hero-stats.is-under { margin-top: 0; justify-content: flex-start; }
	.tswx .tswx-stack-tools { flex-direction: row; flex-wrap: wrap; }
}
@media (max-width: 480px) {
	.tswx .tswx-hero-stats .tswx-bubble { flex: 1 1 0; min-width: 0; padding: 10px 12px; }
	.tswx-hero-stats .tswx-bubble-ic { display: none; }
}

@media (max-width: 760px) {
	/* SEO vs GEO table: one card per row, each term labelled */
	.tswx .tswx-table--cmp { min-width: 0; }
	.tswx .tswx-table--cmp thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); }
	.tswx .tswx-table--cmp tr { display: block; padding: 12px 14px; border-bottom: 1px solid var(--tswx-line); }
	.tswx .tswx-table--cmp tbody tr:last-child { border-bottom: 0; }
	.tswx .tswx-table--cmp tbody th { display: block; width: auto; padding: 0 0 6px; font-size: 14px; color: var(--tswx-ink); border: 0; }
	.tswx .tswx-table--cmp td { display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 8px; padding: 4px 0; border: 0; }
	.tswx .tswx-table--cmp td::before { content: attr(data-label); font-weight: 800; color: var(--tswx-blue); }
}
@media (max-width: 600px) {
	.tswx-win--ai { display: none; }
}
@media (max-width: 600px) {
	/* Start Here and list cards: image on the left to save space */
	.tswx-start-card, .tswx-card { flex-direction: row; }
	.tswx-start-img, .tswx-card-img { flex: 0 0 104px; aspect-ratio: auto; min-height: 104px; }
	.tswx-start-img .tswh-ico { width: 26px; height: 26px; }
	.tswx-start-body, .tswx-card-body { padding: 12px 14px; }
	.tswx .tswx-start-title, .tswx .tswx-card-title { font-size: 15px; }
	.tswx-start-body p { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-size: 13px; }
}
/* hero without a picture (nothing to show yet): text uses the full width */
.tswx-hero-grid:not(:has(> .tswx-hero-art)) { grid-template-columns: minmax(0, 1fr); }
@media (max-width: 1024px) {
	.tswx .tswx-hero-art--ai { width: 100%; max-width: 560px; }
}
