/**
 * AI Gear Stack — editorial component styles.
 *
 * Design intent: a technical publication, not a deals site. Strong typography,
 * generous white space, restrained colour, real tables. The only saturated
 * colour on the page is the purchase button, which is what makes the split
 * between editorial links and commercial actions legible at a glance.
 *
 * Everything here is plain CSS with custom properties. No framework, no
 * runtime, no layout-shifting web font swap.
 */

/* =====================================================================
   Tokens
   ================================================================== */

.aigs-block,
.aigs-card,
.aigs-table-wrap,
.aigs-verdict,
.aigs-picks,
.aigs-faq,
.aigs-takeaways,
.aigs-related,
.aigs-sources,
.aigs-byline,
.aigs-breadcrumbs,
.aigs-disclosure,
.aigs-sticky,
.aigs-associates-notice {
	--aigs-ink:        #0f1720;
	--aigs-ink-soft:   #4a5763;
	--aigs-ink-faint:  #6b7885;
	--aigs-line:       #e2e7ec;
	--aigs-line-soft:  #eef1f4;
	--aigs-surface:    #ffffff;
	--aigs-surface-2:  #f7f9fb;
	--aigs-accent:     #1b4fd8;
	--aigs-accent-ink: #143caa;
	--aigs-cta:        #b45309;
	--aigs-cta-hover:  #8f4107;
	--aigs-pro:        #0f6f47;
	--aigs-con:        #a3341f;
	--aigs-award-bg:   #10233d;
	--aigs-radius:     10px;
	--aigs-radius-sm:  6px;
	--aigs-shadow:     0 1px 2px rgba(15, 23, 32, .06), 0 8px 24px -16px rgba(15, 23, 32, .28);
	--aigs-gap:        clamp(1rem, 2.5vw, 1.75rem);
}

@media (prefers-color-scheme: dark) {
	.aigs-block, .aigs-card, .aigs-table-wrap, .aigs-verdict, .aigs-picks,
	.aigs-faq, .aigs-takeaways, .aigs-related, .aigs-sources, .aigs-byline,
	.aigs-breadcrumbs, .aigs-disclosure, .aigs-sticky, .aigs-associates-notice {
		--aigs-ink:        #e8edf2;
		--aigs-ink-soft:   #a8b4c0;
		--aigs-ink-faint:  #8592a0;
		--aigs-line:       #263140;
		--aigs-line-soft:  #1c2634;
		--aigs-surface:    #131b25;
		--aigs-surface-2:  #18212d;
		--aigs-accent:     #7ba4ff;
		--aigs-accent-ink: #9dbcff;
		--aigs-cta:        #d97a1c;
		--aigs-cta-hover:  #ef8f2e;
		--aigs-pro:        #4bbd8a;
		--aigs-con:        #e58573;
		--aigs-award-bg:   #24406b;
		--aigs-shadow:     0 1px 2px rgba(0, 0, 0, .4), 0 8px 24px -16px rgba(0, 0, 0, .7);
	}
}

/* Blocksy's colour-mode switch sets an explicit attribute; honour it so a
   manual toggle wins over the OS preference in both directions. */
[data-theme="dark"] .aigs-block, [data-theme="dark"] .aigs-card,
[data-theme="dark"] .aigs-table-wrap, [data-theme="dark"] .aigs-verdict,
[data-theme="dark"] .aigs-picks, [data-theme="dark"] .aigs-faq,
[data-theme="dark"] .aigs-takeaways, [data-theme="dark"] .aigs-related,
[data-theme="dark"] .aigs-sources, [data-theme="dark"] .aigs-byline,
[data-theme="dark"] .aigs-breadcrumbs, [data-theme="dark"] .aigs-disclosure,
[data-theme="dark"] .aigs-sticky, [data-theme="dark"] .aigs-associates-notice {
	--aigs-ink: #e8edf2; --aigs-ink-soft: #a8b4c0; --aigs-ink-faint: #8592a0;
	--aigs-line: #263140; --aigs-line-soft: #1c2634;
	--aigs-surface: #131b25; --aigs-surface-2: #18212d;
	--aigs-accent: #7ba4ff; --aigs-accent-ink: #9dbcff;
	--aigs-cta: #d97a1c; --aigs-cta-hover: #ef8f2e;
	--aigs-pro: #4bbd8a; --aigs-con: #e58573; --aigs-award-bg: #24406b;
}

/* =====================================================================
   Accessibility primitives
   ================================================================== */

.aigs-block .screen-reader-text,
.aigs-cta .screen-reader-text,
.aigs-sticky .screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0);
	white-space: nowrap; border: 0;
}

.aigs-block :focus-visible,
.aigs-byline :focus-visible,
.aigs-breadcrumbs :focus-visible,
.aigs-related :focus-visible,
.aigs-sources :focus-visible,
.aigs-sticky :focus-visible,
.aigs-verdict :focus-visible {
	outline: 3px solid var(--aigs-accent);
	outline-offset: 2px;
	border-radius: 3px;
}

/* =====================================================================
   Purchase CTA
   ================================================================== */

.aigs-cta {
	display: inline-flex;
	align-items: center;
	gap: .5em;
	padding: .72em 1.25em;
	background: var(--aigs-cta);
	color: #fff;
	font-weight: 650;
	font-size: .95rem;
	line-height: 1.25;
	letter-spacing: .005em;
	text-decoration: none;
	border: 1px solid transparent;
	border-radius: var(--aigs-radius-sm);
	transition: background-color .15s ease, transform .15s ease;
}

.aigs-cta:hover,
.aigs-cta:focus { background: var(--aigs-cta-hover); color: #fff; text-decoration: none; }
.aigs-cta:active { transform: translateY(1px); }

.aigs-cta__icon { flex: none; opacity: .85; }

.aigs-cta--secondary {
	background: transparent;
	color: var(--aigs-cta);
	border-color: currentColor;
}
.aigs-cta--secondary:hover,
.aigs-cta--secondary:focus { background: color-mix(in srgb, var(--aigs-cta) 10%, transparent); color: var(--aigs-cta); }

.aigs-cta--link {
	background: none; border: 0; padding: 0;
	color: var(--aigs-cta); text-decoration: underline; text-underline-offset: .18em;
}

.aigs-cta--sm { padding: .5em .85em; font-size: .85rem; }
.aigs-cta--lg { padding: .9em 1.6em; font-size: 1.05rem; }
.aigs-cta--block { display: flex; width: 100%; justify-content: center; }

@media (prefers-reduced-motion: reduce) {
	.aigs-cta { transition: none; }
	.aigs-cta:active { transform: none; }
}

/* =====================================================================
   Recommendation card
   ================================================================== */

.aigs-card {
	display: grid;
	grid-template-columns: minmax(0, 260px) minmax(0, 1fr);
	gap: var(--aigs-gap);
	padding: var(--aigs-gap);
	margin: 2rem 0;
	background: var(--aigs-surface);
	border: 1px solid var(--aigs-line);
	border-radius: var(--aigs-radius);
	box-shadow: var(--aigs-shadow);
	color: var(--aigs-ink);
}

.aigs-card__media { align-self: start; }

.aigs-card__img {
	width: 100%; height: auto;
	border-radius: var(--aigs-radius-sm);
	background: var(--aigs-surface-2);
}

.aigs-card__noimage {
	aspect-ratio: 4 / 3;
	border-radius: var(--aigs-radius-sm);
	background: var(--aigs-surface-2);
	border: 1px dashed var(--aigs-line);
}

.aigs-card__body { min-width: 0; }

.aigs-card__head {
	display: flex; align-items: flex-start; justify-content: space-between;
	gap: 1rem; margin-bottom: .5rem;
}

.aigs-card__title {
	margin: 0;
	font-size: clamp(1.2rem, 2.2vw, 1.45rem);
	line-height: 1.25;
	letter-spacing: -.01em;
}

.aigs-award {
	display: inline-block;
	margin: 0 0 .65rem;
	padding: .3em .7em;
	background: var(--aigs-award-bg);
	color: #fff;
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .07em;
	text-transform: uppercase;
	border-radius: 3px;
}

.aigs-score-chip {
	flex: none;
	margin: 0;
	padding: .35em .6em;
	background: var(--aigs-surface-2);
	border: 1px solid var(--aigs-line);
	border-radius: var(--aigs-radius-sm);
	font-variant-numeric: tabular-nums;
	line-height: 1;
}
.aigs-score-chip__value { font-size: 1.25rem; font-weight: 700; }
.aigs-score-chip__scale { font-size: .8rem; color: var(--aigs-ink-faint); }

.aigs-card__bestfor { margin: 0 0 .6rem; font-size: .95rem; color: var(--aigs-ink-soft); }
.aigs-card__bestfor-label {
	font-size: .72rem; font-weight: 700; letter-spacing: .07em;
	text-transform: uppercase; color: var(--aigs-ink-faint); margin-right: .4em;
}

.aigs-card__verdict { margin: 0 0 1rem; line-height: 1.6; }

/* Key specifications */
.aigs-kspecs {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
	gap: .1rem 1rem;
	margin: 0 0 1.15rem;
	padding: .8rem 0;
	border-top: 1px solid var(--aigs-line-soft);
	border-bottom: 1px solid var(--aigs-line-soft);
}
.aigs-kspec { min-width: 0; }
.aigs-kspec__k {
	font-size: .7rem; font-weight: 700; letter-spacing: .07em;
	text-transform: uppercase; color: var(--aigs-ink-faint);
}
.aigs-kspec__v {
	margin: .1rem 0 0; font-size: .98rem; font-weight: 600;
	font-variant-numeric: tabular-nums;
}

.aigs-card__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; }
.aigs-card__readmore { font-size: .92rem; color: var(--aigs-accent); text-decoration: underline; text-underline-offset: .18em; }

@media (max-width: 700px) {
	.aigs-card { grid-template-columns: 1fr; }
	.aigs-card__media { max-width: 300px; }
	.aigs-card__head { flex-direction: column-reverse; align-items: flex-start; gap: .5rem; }
}

/* =====================================================================
   Pros / cons
   ================================================================== */

.aigs-proscons {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
	gap: 1rem 2rem;
	margin: 0 0 1.15rem;
}

.aigs-proscons__title {
	margin: 0 0 .5rem;
	font-size: .75rem; font-weight: 700; letter-spacing: .08em;
	text-transform: uppercase;
}
.aigs-proscons__col--pro .aigs-proscons__title { color: var(--aigs-pro); }
.aigs-proscons__col--con .aigs-proscons__title { color: var(--aigs-con); }

.aigs-proscons__list { margin: 0; padding: 0; list-style: none; }
.aigs-proscons__list li {
	position: relative;
	padding-left: 1.5em;
	margin-bottom: .4rem;
	font-size: .94rem;
	line-height: 1.5;
}
.aigs-proscons__list li::before {
	position: absolute; left: 0; top: 0;
	font-weight: 700;
}
.aigs-proscons__col--pro li::before { content: "+"; color: var(--aigs-pro); }
.aigs-proscons__col--con li::before { content: "−"; color: var(--aigs-con); }

/* =====================================================================
   Tables
   ================================================================== */

.aigs-table-wrap { margin: 2rem 0; overflow-x: auto; -webkit-overflow-scrolling: touch; }

.aigs-table {
	width: 100%;
	border-collapse: collapse;
	font-size: .94rem;
	color: var(--aigs-ink);
	background: var(--aigs-surface);
}

.aigs-table__caption {
	caption-side: top;
	text-align: left;
	padding: 0 0 .75rem;
	font-size: .82rem;
	font-weight: 600;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--aigs-ink-faint);
}

.aigs-table th,
.aigs-table td {
	padding: .8rem .9rem;
	border-bottom: 1px solid var(--aigs-line);
	text-align: left;
	vertical-align: top;
}

.aigs-table thead th {
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .07em;
	text-transform: uppercase;
	color: var(--aigs-ink-faint);
	background: var(--aigs-surface-2);
	border-bottom: 2px solid var(--aigs-line);
	white-space: nowrap;
}

.aigs-table tbody tr:hover { background: var(--aigs-surface-2); }

.aigs-table__product { min-width: 170px; }
.aigs-table__name { display: block; font-weight: 650; line-height: 1.3; }
.aigs-table__maker { display: block; font-size: .8rem; color: var(--aigs-ink-faint); margin-top: .15rem; }
.aigs-table td { font-variant-numeric: tabular-nums; }
.aigs-table__cta { white-space: nowrap; }

/* Specification table grouping */
.aigs-spec__grouprow th {
	background: var(--aigs-surface-2);
	font-size: .72rem; font-weight: 700; letter-spacing: .07em;
	text-transform: uppercase; color: var(--aigs-ink-faint);
}
.aigs-table--spec th[scope="row"] { width: 34%; font-weight: 600; color: var(--aigs-ink-soft); }

/*
 * Below 720px a wide comparison table stops being a table and becomes a stack
 * of labelled cards. Sideways scrolling on a phone is how affiliate tables
 * normally fail, and the data-label attributes make this restack possible
 * without shipping a second copy of the markup.
 */
@media (max-width: 720px) {
	.aigs-table--compare thead { display: none; }

	/* The table itself becomes a block, so the caption must too — otherwise it
	   inherits the width of the first cell and breaks one word per line. */
	.aigs-table--compare .aigs-table__caption {
		display: block;
		width: 100%;
		letter-spacing: 0.03em;
	}

	.aigs-table--compare,
	.aigs-table--compare tbody,
	.aigs-table--compare tr,
	.aigs-table--compare th,
	.aigs-table--compare td { display: block; width: 100%; }

	.aigs-table--compare tr {
		margin-bottom: 1.25rem;
		border: 1px solid var(--aigs-line);
		border-radius: var(--aigs-radius);
		overflow: hidden;
	}

	.aigs-table--compare th[scope="row"] {
		background: var(--aigs-surface-2);
		border-bottom: 1px solid var(--aigs-line);
	}

	.aigs-table--compare td {
		display: flex;
		justify-content: space-between;
		gap: 1rem;
		border-bottom: 1px solid var(--aigs-line-soft);
	}

	.aigs-table--compare td::before {
		content: attr(data-label);
		flex: none;
		font-size: .72rem; font-weight: 700; letter-spacing: .06em;
		text-transform: uppercase; color: var(--aigs-ink-faint);
	}

	.aigs-table--compare td:last-child { border-bottom: 0; }
	.aigs-table--compare .aigs-table__cta { display: block; }
	.aigs-table--compare .aigs-table__cta::before { display: block; margin-bottom: .5rem; }
}

/* =====================================================================
   Verdict box
   ================================================================== */

.aigs-verdict {
	margin: 2.5rem 0;
	padding: var(--aigs-gap);
	background: var(--aigs-surface-2);
	border: 1px solid var(--aigs-line);
	border-radius: var(--aigs-radius);
	color: var(--aigs-ink);
}

.aigs-verdict__head {
	display: flex; align-items: baseline; justify-content: space-between;
	gap: 1rem; flex-wrap: wrap;
	padding-bottom: .9rem; margin-bottom: 1.1rem;
	border-bottom: 2px solid var(--aigs-line);
}

.aigs-verdict__title { margin: 0; font-size: clamp(1.25rem, 2.4vw, 1.55rem); letter-spacing: -.01em; }

.aigs-verdict__score { margin: 0; line-height: 1; font-variant-numeric: tabular-nums; }
.aigs-verdict__score-value { font-size: clamp(2rem, 5vw, 2.75rem); font-weight: 750; letter-spacing: -.02em; }
.aigs-verdict__score-scale { font-size: 1rem; color: var(--aigs-ink-faint); }

.aigs-verdict__body { margin: 0 0 1.5rem; font-size: 1.05rem; line-height: 1.65; }

.aigs-verdict__subtitle {
	margin: 0 0 .6rem;
	font-size: .75rem; font-weight: 700; letter-spacing: .08em;
	text-transform: uppercase; color: var(--aigs-ink-faint);
}

.aigs-verdict__scores { margin-bottom: 1.5rem; }

.aigs-scorebars { margin: 0; display: grid; gap: .55rem; }
.aigs-scorebar { display: grid; grid-template-columns: minmax(110px, 200px) 1fr; gap: 1rem; align-items: center; }
.aigs-scorebar__label { font-size: .9rem; color: var(--aigs-ink-soft); }
.aigs-scorebar__value { margin: 0; display: flex; align-items: center; gap: .75rem; }

.aigs-scorebar__track {
	flex: 1; height: 7px; min-width: 60px;
	background: var(--aigs-line);
	border-radius: 99px; overflow: hidden;
}
.aigs-scorebar__fill { display: block; height: 100%; background: var(--aigs-accent); border-radius: 99px; }
.aigs-scorebar__num { flex: none; width: 2.2em; font-size: .9rem; font-weight: 650; font-variant-numeric: tabular-nums; }

.aigs-verdict__fit {
	display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
	gap: 1.25rem 2rem; margin-bottom: 1.5rem;
}
.aigs-verdict__fit-col p { margin: 0; font-size: .96rem; line-height: 1.6; }

.aigs-verdict__actions { margin-top: 1.5rem; }

@media (max-width: 560px) {
	.aigs-scorebar { grid-template-columns: 1fr; gap: .25rem; }
}

/* =====================================================================
   Quick picks
   ================================================================== */

.aigs-picks {
	margin: 2rem 0; padding: var(--aigs-gap);
	background: var(--aigs-surface);
	border: 1px solid var(--aigs-line);
	border-left: 4px solid var(--aigs-accent);
	border-radius: var(--aigs-radius);
	color: var(--aigs-ink);
}

.aigs-picks__title { margin: 0 0 1.1rem; font-size: clamp(1.15rem, 2.2vw, 1.4rem); }
.aigs-picks__list { margin: 0; padding: 0; list-style: none; display: grid; gap: .9rem; }

.aigs-picks__item {
	display: grid;
	grid-template-columns: minmax(120px, 170px) minmax(0, 1fr) auto;
	gap: 1rem; align-items: center;
	padding-bottom: .9rem;
	border-bottom: 1px solid var(--aigs-line-soft);
}
.aigs-picks__item:last-child { border-bottom: 0; padding-bottom: 0; }

.aigs-picks__label .aigs-award { margin: 0; }
.aigs-picks__name { margin: 0; font-weight: 650; line-height: 1.3; }
.aigs-picks__reason { margin: .2rem 0 0; font-size: .9rem; color: var(--aigs-ink-soft); line-height: 1.5; }

@media (max-width: 700px) {
	.aigs-picks__item { grid-template-columns: 1fr; gap: .5rem; }
	.aigs-picks__action { justify-self: start; }
}

/* =====================================================================
   Key takeaways
   ================================================================== */

.aigs-takeaways {
	margin: 2rem 0; padding: var(--aigs-gap);
	background: var(--aigs-surface-2);
	border: 1px solid var(--aigs-line);
	border-radius: var(--aigs-radius);
	color: var(--aigs-ink);
}
.aigs-takeaways__title { margin: 0 0 .8rem; font-size: 1.05rem; letter-spacing: -.005em; }
.aigs-takeaways__list { margin: 0; padding-left: 1.2em; display: grid; gap: .5rem; }
.aigs-takeaways__list li { line-height: 1.6; }

/* =====================================================================
   FAQ
   ================================================================== */

.aigs-faq { margin: 2.5rem 0; color: var(--aigs-ink); }
.aigs-faq__title { margin: 0 0 1rem; }
.aigs-faq__list { border-top: 1px solid var(--aigs-line); }

.aigs-faq__item { border-bottom: 1px solid var(--aigs-line); }

.aigs-faq__q {
	padding: .95rem 2rem .95rem 0;
	font-weight: 620; font-size: 1.02rem; line-height: 1.45;
	cursor: pointer; position: relative; list-style: none;
}
.aigs-faq__q::-webkit-details-marker { display: none; }
.aigs-faq__q::after {
	content: "+"; position: absolute; right: .25rem; top: .8rem;
	font-size: 1.4rem; font-weight: 400; color: var(--aigs-ink-faint); line-height: 1;
}
.aigs-faq__item[open] .aigs-faq__q::after { content: "−"; }

.aigs-faq__a { padding: 0 0 1.1rem; line-height: 1.7; color: var(--aigs-ink-soft); }
.aigs-faq__a p:first-child { margin-top: 0; }
.aigs-faq__a p:last-child { margin-bottom: 0; }

/* =====================================================================
   Breadcrumbs
   ================================================================== */

.aigs-breadcrumbs { margin: 0 0 1rem; font-size: .85rem; color: var(--aigs-ink-faint); }
.aigs-breadcrumbs__list { margin: 0; padding: 0; list-style: none; display: flex; flex-wrap: wrap; align-items: center; gap: .3rem; }
.aigs-breadcrumbs__item { display: inline-flex; align-items: center; gap: .3rem; }
.aigs-breadcrumbs a { color: var(--aigs-ink-soft); text-decoration: none; }
.aigs-breadcrumbs a:hover { color: var(--aigs-accent); text-decoration: underline; }
.aigs-breadcrumbs__sep { color: var(--aigs-line); }
.aigs-breadcrumbs [aria-current="page"] { color: var(--aigs-ink); font-weight: 550; }

/* =====================================================================
   Byline & provenance
   ================================================================== */

.aigs-byline {
	/* Rendered outside .entry-content, so it needs the reading measure applied
	   explicitly or it spans the full viewport width. */
	max-width: var(--aigs-measure-wide, 54rem);
	margin: 0 auto 1.75rem;
	padding-bottom: 1.1rem;
	border-bottom: 1px solid var(--aigs-line);
	color: var(--aigs-ink);
}

.aigs-sources,
.aigs-related {
	max-width: var(--aigs-measure-wide, 54rem);
	margin-inline: auto;
}

.aigs-byline__meta {
	display: flex; flex-wrap: wrap; gap: .35rem 1.25rem;
	font-size: .88rem; color: var(--aigs-ink-soft);
}
.aigs-byline__item a { color: var(--aigs-ink); text-decoration: none; font-weight: 550; }
.aigs-byline__item a:hover { color: var(--aigs-accent); text-decoration: underline; }
.aigs-byline__item--updated { color: var(--aigs-ink); font-weight: 550; }

.aigs-byline__basis {
	margin: .85rem 0 0;
	padding: .7rem .9rem;
	background: var(--aigs-surface-2);
	border-left: 3px solid var(--aigs-accent);
	border-radius: 0 var(--aigs-radius-sm) var(--aigs-radius-sm) 0;
	font-size: .87rem; line-height: 1.55; color: var(--aigs-ink-soft);
}
.aigs-byline__basis[data-basis="hands-on"] { border-left-color: var(--aigs-pro); }
.aigs-byline__basis strong { color: var(--aigs-ink); }

/* =====================================================================
   Disclosure
   ================================================================== */

.aigs-disclosure {
	display: flex; gap: .7rem; align-items: flex-start;
	margin: 0 0 1.75rem; padding: .8rem 1rem;
	background: var(--aigs-surface-2);
	border: 1px solid var(--aigs-line);
	border-radius: var(--aigs-radius-sm);
	font-size: .87rem; line-height: 1.55; color: var(--aigs-ink-soft);
}
.aigs-disclosure__icon { flex: none; margin-top: .15rem; color: var(--aigs-ink-faint); }
.aigs-disclosure__text { margin: 0; }
.aigs-disclosure a { color: var(--aigs-accent); }

.aigs-associates-notice {
	padding: 1rem 1.25rem;
	background: var(--aigs-surface-2);
	border-top: 1px solid var(--aigs-line);
	color: var(--aigs-ink-faint);
	font-size: .8rem; line-height: 1.6; text-align: center;
}
.aigs-associates-notice__inner { max-width: 70ch; margin: 0 auto; }
.aigs-associates-notice p { margin: 0; }

/* =====================================================================
   Related content
   ================================================================== */

.aigs-related { margin: 3rem 0 0; padding-top: 2rem; border-top: 1px solid var(--aigs-line); color: var(--aigs-ink); }
.aigs-related__title { margin: 0 0 1.25rem; font-size: 1.2rem; }

.aigs-related__grid {
	margin: 0; padding: 0; list-style: none;
	display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: .9rem;
}

.aigs-related__link {
	display: block; height: 100%;
	padding: .95rem 1rem;
	background: var(--aigs-surface);
	border: 1px solid var(--aigs-line);
	border-radius: var(--aigs-radius-sm);
	text-decoration: none; color: var(--aigs-ink);
	transition: border-color .15s ease, transform .15s ease;
}
.aigs-related__link:hover { border-color: var(--aigs-accent); transform: translateY(-1px); }

.aigs-related__kind {
	display: block; margin-bottom: .3rem;
	font-size: .68rem; font-weight: 700; letter-spacing: .08em;
	text-transform: uppercase; color: var(--aigs-accent);
}
.aigs-related__headline { display: block; font-weight: 600; line-height: 1.4; }

@media (prefers-reduced-motion: reduce) {
	.aigs-related__link { transition: none; }
	.aigs-related__link:hover { transform: none; }
}

/* =====================================================================
   Sources
   ================================================================== */

.aigs-sources { margin: 2.5rem 0 0; padding-top: 1.5rem; border-top: 1px solid var(--aigs-line); color: var(--aigs-ink); }
.aigs-sources__title { margin: 0 0 .7rem; font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--aigs-ink-faint); }
.aigs-sources__list { margin: 0; padding-left: 1.2em; font-size: .89rem; line-height: 1.7; color: var(--aigs-ink-soft); }
.aigs-sources__list a { color: var(--aigs-accent); }

/* =====================================================================
   Mobile sticky purchase bar
   ================================================================== */

.aigs-sticky {
	position: fixed;
	left: 0; right: 0; bottom: 0;
	z-index: 90;
	padding: .6rem .9rem calc(.6rem + env(safe-area-inset-bottom));
	background: var(--aigs-surface);
	border-top: 1px solid var(--aigs-line);
	box-shadow: 0 -4px 20px -8px rgba(15, 23, 32, .35);
	color: var(--aigs-ink);
}
.aigs-sticky[hidden] { display: none; }

.aigs-sticky__inner { display: flex; align-items: center; gap: .75rem; max-width: 720px; margin: 0 auto; }

.aigs-sticky__name {
	flex: 1; min-width: 0; margin: 0;
	font-size: .88rem; font-weight: 600; line-height: 1.3;
	overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}

.aigs-sticky__close {
	flex: none;
	width: 32px; height: 32px;
	display: grid; place-items: center;
	background: none; border: 1px solid var(--aigs-line); border-radius: 50%;
	color: var(--aigs-ink-faint); font-size: 1.1rem; line-height: 1; cursor: pointer;
}
.aigs-sticky__close:hover { color: var(--aigs-ink); border-color: var(--aigs-ink-faint); }

/* Desktop has room for CTAs in the flow; the bar is a small-screen affordance. */
@media (min-width: 782px) { .aigs-sticky { display: none; } }

/* =====================================================================
   Editor-only placeholder
   ================================================================== */

.aigs-block-placeholder {
	padding: 1.25rem;
	border: 1px dashed var(--aigs-line, #ccd3da);
	border-radius: 8px;
	color: var(--aigs-ink-faint, #6b7885);
	font-size: .9rem;
	text-align: center;
}

/* =====================================================================
   Print
   ================================================================== */

@media print {
	.aigs-sticky, .aigs-cta, .aigs-related { display: none !important; }
	.aigs-card, .aigs-verdict, .aigs-picks { border: 1px solid #999; box-shadow: none; }
}

/* =====================================================================
   Forms
   ================================================================== */

.aigs-form { max-width: 34rem; margin: 2rem 0; }

.aigs-field { margin-bottom: 1.25rem; }

.aigs-field__label {
	display: block;
	margin-bottom: 0.35rem;
	font-size: 0.9rem;
	font-weight: 600;
	color: var(--aigs-ink, #0f1720);
}

.aigs-field__required { color: #a3341f; margin-left: 0.15em; }

.aigs-field__input {
	display: block;
	width: 100%;
	padding: 0.7em 0.85em;
	font: inherit;
	font-size: 1rem;
	color: var(--aigs-ink, #0f1720);
	background: var(--aigs-surface, #fff);
	border: 1px solid var(--aigs-line, #e2e7ec);
	border-radius: var(--aigs-radius-sm, 6px);
}

.aigs-field__input:focus-visible {
	outline: 3px solid var(--aigs-accent, #1b4fd8);
	outline-offset: 1px;
	border-color: transparent;
}

.aigs-field__input[aria-invalid="true"] { border-color: #a3341f; }

.aigs-field__help,
.aigs-field__error {
	margin: 0.35rem 0 0;
	font-size: 0.85rem;
	line-height: 1.45;
}

.aigs-field__help  { color: var(--aigs-ink-faint, #6b7885); }
.aigs-field__error { color: #a3341f; font-weight: 550; }

.aigs-form__note {
	margin: 1rem 0 0;
	font-size: 0.83rem;
	color: var(--aigs-ink-faint, #6b7885);
}

.aigs-form-status {
	padding: 1rem 1.15rem;
	margin-bottom: 1.5rem;
	border-radius: var(--aigs-radius-sm, 6px);
	border: 1px solid;
}
.aigs-form-status p:first-child { margin-top: 0; }
.aigs-form-status p:last-child  { margin-bottom: 0; }

.aigs-form-status--ok    { border-color: #0f6f47; background: rgba(15, 111, 71, 0.06); }
.aigs-form-status--error { border-color: #a3341f; background: rgba(163, 52, 31, 0.06); }
.aigs-form-status ul { margin: 0.5rem 0 0 1.1rem; }

/* Honeypot: removed from the visual and accessibility trees without using
   display:none, which some automated submitters check for. */
.aigs-hp {
	position: absolute !important;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}
