/*
Theme Name: Idaho Tribune
Theme URI: https://idahotribune.org
Description: Investigative magazine theme for Idaho Tribune. Layout patterns inspired by Unlimited Hangout–style long-form journalism; brand tokens for Idaho Tribune.
Author: Idaho Tribune
Version: 0.3.0
License: GPL-2.0-or-later
Text Domain: idaho-tribune
Requires at least: 6.0
Requires PHP: 8.0
*/

/* ---------- Tokens (swap accent when brand assets finalized) ---------- */
:root {
	--idt-bg: #f7f7f5;
	--idt-paper: #ffffff;
	--idt-ink: #121212;
	--idt-ink-soft: #2a2a2a;
	--idt-muted: #6a6a6a;
	--idt-faint: #9a9a9a;
	--idt-rule: #e2e2de;
	--idt-rule-strong: #c8c8c2;
	--idt-header: #0a0a0a;
	--idt-header-text: #f5f5f3;
	--idt-header-muted: #a3a3a0;
	--idt-accent: #b42318;
	--idt-accent-hover: #8f1c13;
	--idt-accent-soft: rgba(180, 35, 24, 0.08);
	--idt-focus: #1d4ed8;

	--idt-font-ui: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
	--idt-font-display: "Newsreader", "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;
	--idt-font-body: "Newsreader", Georgia, "Times New Roman", serif;

	--idt-measure: 42rem;
	--idt-wide: 72rem;
	--idt-radius: 2px;
	--idt-header-h: 3.5rem;
}

*,
*::before,
*::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
	margin: 0;
	font-family: var(--idt-font-body);
	font-size: 1.0625rem;
	line-height: 1.65;
	color: var(--idt-ink);
	background: var(--idt-bg);
	-webkit-font-smoothing: antialiased;
}

img {
	max-width: 100%;
	height: auto;
	display: block;
}
/* Override HTML width/height attributes from imports */
img[width],
img[height] {
	max-width: 100%;
	height: auto;
}
iframe,
video,
embed,
object {
	max-width: 100%;
}
a { color: var(--idt-accent); text-decoration-thickness: 1px; text-underline-offset: 0.15em; }
a:hover { color: var(--idt-accent-hover); }
:focus-visible { outline: 2px solid var(--idt-focus); outline-offset: 2px; }

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

.idt-wrap {
	width: min(100% - 2rem, var(--idt-wide));
	margin-inline: auto;
}

.idt-wrap--narrow {
	width: min(100% - 2rem, var(--idt-measure));
	margin-inline: auto;
}

/* ---------- Utility nav + masthead ---------- */
.idt-util {
	background: #000;
	color: var(--idt-header-muted);
	font-family: var(--idt-font-ui);
	font-size: 0.72rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}
.idt-util__inner {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 0.25rem 1.1rem;
	flex-wrap: wrap;
	padding: 0.45rem 0;
}
.idt-util a {
	color: var(--idt-header-muted);
	text-decoration: none;
}
.idt-util a:hover { color: #fff; }
.idt-util a.idt-util__cta {
	color: #fff;
	background: var(--idt-accent);
	padding: 0.28rem 0.65rem;
	border-radius: var(--idt-radius);
	letter-spacing: 0.08em;
}
.idt-util a.idt-util__cta:hover {
	background: var(--idt-accent-hover);
	color: #fff;
}

.idt-mast {
	background: var(--idt-header);
	color: var(--idt-header-text);
	position: sticky;
	top: 0;
	z-index: 100;
	border-bottom: 1px solid #1f1f1f;
}
.idt-mast__inner {
	display: flex;
	align-items: center;
	gap: 1.25rem;
	min-height: var(--idt-header-h);
	padding: 0.5rem 0;
}
.idt-brand {
	display: flex;
	flex-direction: column;
	text-decoration: none;
	color: inherit;
	margin-right: auto;
	line-height: 1.1;
}
.idt-brand__name {
	font-family: var(--idt-font-display);
	font-weight: 600;
	font-size: 1.35rem;
	letter-spacing: 0.01em;
	color: #fff;
}
/*
 * Official wordmark. The supplied artwork sets "Tribune" in black, which would
 * disappear against the dark masthead, so the greyscale ink is reversed out to
 * near-white in the asset itself; the red stays exactly as drawn.
 */
.idt-brand__logo {
	display: block;
	height: 1.6rem;
	width: auto;
	max-width: min(60vw, 260px);
	object-fit: contain;
}
@media (max-width: 640px) {
	.idt-brand__logo { height: 1.35rem; }
}
.idt-brand__tag {
	font-family: var(--idt-font-ui);
	font-size: 0.62rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--idt-header-muted);
	margin-top: 0.2rem;
}

.idt-nav {
	display: flex;
	align-items: center;
	gap: 0.15rem;
	font-family: var(--idt-font-ui);
	font-size: 0.78rem;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}
.idt-nav a {
	color: var(--idt-header-text);
	text-decoration: none;
	padding: 0.45rem 0.7rem;
	border-radius: var(--idt-radius);
}
.idt-nav a:hover,
.idt-nav a.is-current {
	color: #fff;
	background: rgba(255, 255, 255, 0.08);
}

.idt-burger {
	display: none;
	margin-left: auto;
	background: transparent;
	border: 1px solid #444;
	color: #fff;
	padding: 0.4rem 0.65rem;
	font-family: var(--idt-font-ui);
	font-size: 0.75rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	cursor: pointer;
	border-radius: var(--idt-radius);
}

/* ---------- Section furniture ---------- */
.idt-section {
	padding: 2.75rem 0;
}
.idt-section + .idt-section {
	border-top: 1px solid var(--idt-rule);
}
.idt-section__head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: 1.35rem;
	flex-wrap: wrap;
}
.idt-section__title {
	font-family: var(--idt-font-ui);
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--idt-ink);
	margin: 0;
}
.idt-section__more {
	font-family: var(--idt-font-ui);
	font-size: 0.78rem;
	text-decoration: none;
	color: var(--idt-muted);
}
.idt-section__more:hover { color: var(--idt-accent); }

/* ---------- Cards ---------- */
.idt-kicker {
	font-family: var(--idt-font-ui);
	font-size: 0.68rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--idt-accent);
	text-decoration: none;
	display: inline-block;
}
.idt-kicker:hover { color: var(--idt-accent-hover); }

.idt-meta {
	font-family: var(--idt-font-ui);
	font-size: 0.78rem;
	color: var(--idt-muted);
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem 0.75rem;
	align-items: center;
}
.idt-meta a {
	color: inherit;
	text-decoration: none;
}
.idt-meta a:hover { color: var(--idt-accent); }
.idt-meta__sep::before {
	content: "·";
	color: var(--idt-faint);
	margin-right: 0.75rem;
}

.idt-card {
	display: flex;
	flex-direction: column;
	gap: 0.65rem;
	height: 100%;
}
.idt-card__media {
	position: relative;
	overflow: hidden;
	background: #ddd;
	aspect-ratio: 16 / 10;
	border-radius: var(--idt-radius);
}
.idt-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.idt-card__title {
	font-family: var(--idt-font-display);
	font-weight: 600;
	font-size: 1.2rem;
	line-height: 1.25;
	margin: 0;
	color: var(--idt-ink);
}
.idt-card__title a {
	color: inherit;
	text-decoration: none;
}
.idt-card__title a:hover { color: var(--idt-accent); }
.idt-card__excerpt {
	font-size: 0.98rem;
	line-height: 1.5;
	color: var(--idt-ink-soft);
	margin: 0;
}
.idt-card--compact .idt-card__title { font-size: 1.05rem; }

/* Lead + rail on homepage */
.idt-latest {
	display: grid;
	grid-template-columns: 1.4fr 1fr;
	gap: 2rem;
	align-items: start;
}
.idt-lead {
	display: grid;
	gap: 1rem;
}
.idt-lead__media {
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: #ddd;
	border-radius: var(--idt-radius);
}
.idt-lead__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.idt-lead__title {
	font-family: var(--idt-font-display);
	font-weight: 600;
	font-size: clamp(1.75rem, 3.2vw, 2.45rem);
	line-height: 1.12;
	margin: 0.15rem 0 0;
}
.idt-lead__title a {
	color: inherit;
	text-decoration: none;
}
.idt-lead__title a:hover { color: var(--idt-accent); }
.idt-lead__excerpt {
	font-size: 1.1rem;
	color: var(--idt-ink-soft);
	max-width: 38rem;
	margin: 0;
}

.idt-rail {
	display: flex;
	flex-direction: column;
	gap: 0;
	border-top: 1px solid var(--idt-rule);
}
.idt-rail__item {
	padding: 1rem 0;
	border-bottom: 1px solid var(--idt-rule);
	display: grid;
	grid-template-columns: 6.5rem 1fr;
	gap: 1rem;
	align-items: center;
}
.idt-rail__thumb {
	display: block;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	border-radius: var(--idt-radius);
	background: #ddd;
}
.idt-rail__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.idt-rail__thumb--empty {
	background: var(--idt-rule);
}
.idt-rail__body {
	display: grid;
	gap: 0.4rem;
}
.idt-rail__title {
	font-family: var(--idt-font-display);
	font-weight: 600;
	font-size: 1.05rem;
	line-height: 1.3;
	margin: 0;
}
.idt-rail__title a {
	color: inherit;
	text-decoration: none;
}
.idt-rail__title a:hover { color: var(--idt-accent); }

/* Featured hero carousel */
.idt-section--hero {
	padding-top: 1.5rem;
}
.idt-hero {
	position: relative;
}
.idt-hero__track {
	position: relative;
	aspect-ratio: 16 / 8;
	overflow: hidden;
	border-radius: var(--idt-radius);
	background: var(--idt-header);
}
.idt-hero__slide {
	position: absolute;
	inset: 0;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.55s ease, visibility 0.55s;
}
.idt-hero__slide.is-active {
	opacity: 1;
	visibility: visible;
}
.idt-hero__media {
	display: block;
	position: absolute;
	inset: 0;
}
.idt-hero__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.idt-hero__panel {
	position: absolute;
	inset: auto 0 0 0;
	padding: 3.5rem 1.75rem 1.5rem;
	background: linear-gradient(to top, rgba(10, 10, 10, 0.88) 0%, rgba(10, 10, 10, 0.55) 55%, rgba(10, 10, 10, 0) 100%);
	display: grid;
	gap: 0.5rem;
	justify-items: start;
}
.idt-hero__panel .idt-kicker {
	background: var(--idt-accent);
	color: #fff;
	padding: 0.25rem 0.55rem;
	border-radius: var(--idt-radius);
}
.idt-hero__panel .idt-kicker:hover {
	background: var(--idt-accent-hover);
	color: #fff;
}
.idt-hero__title {
	font-family: var(--idt-font-display);
	font-weight: 600;
	font-size: clamp(1.4rem, 3vw, 2.2rem);
	line-height: 1.12;
	margin: 0;
	max-width: 42rem;
}
.idt-hero__title a {
	color: var(--idt-header-text);
	text-decoration: none;
}
.idt-hero__title a:hover { text-decoration: underline; text-decoration-thickness: 2px; }
.idt-hero__panel .idt-meta,
.idt-hero__panel .idt-meta a {
	color: var(--idt-header-muted);
}
.idt-hero__panel .idt-meta a:hover { color: var(--idt-header-text); }
.idt-hero__controls {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1rem;
	margin-top: 0.85rem;
}
.idt-hero__arrow {
	font-family: var(--idt-font-ui);
	font-size: 1rem;
	line-height: 1;
	padding: 0.45rem 0.7rem;
	border: 1px solid var(--idt-rule-strong);
	border-radius: var(--idt-radius);
	background: var(--idt-paper);
	color: var(--idt-ink);
	cursor: pointer;
}
.idt-hero__arrow:hover {
	border-color: var(--idt-accent);
	color: var(--idt-accent);
}
.idt-hero__dots {
	display: flex;
	gap: 0.5rem;
}
.idt-hero__dot {
	width: 0.55rem;
	height: 0.55rem;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--idt-rule-strong);
	cursor: pointer;
}
.idt-hero__dot:hover { background: var(--idt-muted); }
.idt-hero__dot.is-active { background: var(--idt-accent); }

/* Card grids */
.idt-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.75rem 1.5rem;
}
.idt-grid--2 { grid-template-columns: repeat(2, 1fr); }
.idt-grid--4 { grid-template-columns: repeat(4, 1fr); }

/* Compact list */
.idt-list {
	list-style: none;
	margin: 0;
	padding: 0;
	border-top: 1px solid var(--idt-rule);
}
.idt-list li {
	display: grid;
	grid-template-columns: 6.5rem 1fr;
	gap: 1rem;
	padding: 0.85rem 0;
	border-bottom: 1px solid var(--idt-rule);
	align-items: center;
	font-family: var(--idt-font-ui);
}
.idt-list__thumb {
	display: block;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	border-radius: var(--idt-radius);
	background: #ddd;
}
.idt-list__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.idt-list__thumb--empty {
	background: var(--idt-rule);
}
.idt-list__body {
	display: grid;
	gap: 0.25rem;
}
.idt-list__date {
	font-size: 0.78rem;
	color: var(--idt-muted);
}
.idt-list__title {
	font-family: var(--idt-font-display);
	font-size: 1.05rem;
	font-weight: 600;
	margin: 0;
	line-height: 1.3;
}
.idt-list__title a {
	color: inherit;
	text-decoration: none;
}
.idt-list__title a:hover { color: var(--idt-accent); }

/* Contact / tip form */
.idt-form {
	display: grid;
	gap: 1.1rem;
	margin: 1.5rem 0;
	font-family: var(--idt-font-ui);
}
.idt-form__hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}
.idt-form__field {
	display: grid;
	gap: 0.35rem;
	margin: 0;
}
.idt-form__field label {
	font-size: 0.8rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	color: var(--idt-ink-soft);
}
.idt-form__field input,
.idt-form__field textarea {
	font: inherit;
	font-size: 0.95rem;
	color: var(--idt-ink);
	background: var(--idt-paper);
	border: 1px solid var(--idt-rule-strong);
	border-radius: var(--idt-radius);
	padding: 0.6rem 0.75rem;
	width: 100%;
}
.idt-form__field input:focus,
.idt-form__field textarea:focus {
	outline: 2px solid var(--idt-focus);
	outline-offset: 1px;
	border-color: var(--idt-focus);
}
.idt-form__field textarea {
	resize: vertical;
	min-height: 10rem;
}
.idt-form__actions {
	margin: 0;
}
.idt-form__actions .idt-btn {
	border: 0;
	font: inherit;
	font-weight: 600;
	cursor: pointer;
}
.idt-form__notice {
	margin: 0;
	padding: 0.75rem 1rem;
	border-radius: var(--idt-radius);
	font-size: 0.92rem;
}
.idt-form__notice--ok {
	background: #eaf5ec;
	border: 1px solid #b7dcc0;
	color: #1e5c2e;
}
.idt-form__notice--err {
	background: var(--idt-accent-soft);
	border: 1px solid var(--idt-accent);
	color: var(--idt-accent-hover);
}

/* Payment forms (subscribe / donate) */
.idt-pay__tiers {
	border: 0;
	padding: 0;
	margin: 0;
	display: grid;
	gap: 0.6rem;
}
.idt-pay__tiers legend {
	font-family: var(--idt-font-ui);
	font-size: 0.8rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	color: var(--idt-ink-soft);
	padding: 0;
	margin-bottom: 0.5rem;
}
.idt-pay__tier {
	display: flex;
	align-items: center;
	gap: 0.65rem;
	padding: 0.75rem 1rem;
	border: 1px solid var(--idt-rule-strong);
	border-radius: var(--idt-radius);
	background: var(--idt-paper);
	cursor: pointer;
	font-family: var(--idt-font-ui);
	font-size: 1rem;
}
.idt-pay__tier:hover {
	border-color: var(--idt-accent);
}
.idt-pay__tier:has(input:checked) {
	border-color: var(--idt-accent);
	background: var(--idt-accent-soft);
}
.idt-pay__tier input[type="radio"] {
	accent-color: var(--idt-accent);
}
.idt-pay__custom input {
	font: inherit;
	width: 7rem;
	border: 1px solid var(--idt-rule-strong);
	border-radius: var(--idt-radius);
	padding: 0.25rem 0.5rem;
	margin-left: 0.25rem;
}
.idt-pay__fine {
	font-family: var(--idt-font-ui);
	font-size: 0.8rem;
	color: var(--idt-muted);
	margin: 0;
}

/* BTCPay + crypto addresses */
.idt-btcpay {
	display: grid;
	gap: 0.6rem;
	margin: 1rem 0 1.5rem;
	font-family: var(--idt-font-ui);
}
.idt-btcpay__row {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	align-items: stretch;
}
.idt-btcpay__amount {
	display: flex;
	border: 1px solid var(--idt-rule-strong);
	border-radius: var(--idt-radius);
	overflow: hidden;
	background: var(--idt-paper);
}
.idt-btcpay__step {
	font: inherit;
	font-size: 1.1rem;
	width: 2.4rem;
	border: 0;
	background: transparent;
	color: var(--idt-ink);
	cursor: pointer;
}
.idt-btcpay__step:hover { color: var(--idt-accent); }
.idt-btcpay__price {
	font: inherit;
	font-size: 1.05rem;
	width: 6rem;
	text-align: center;
	border: 0;
	border-left: 1px solid var(--idt-rule);
	border-right: 1px solid var(--idt-rule);
	-moz-appearance: textfield;
}
.idt-btcpay__price::-webkit-outer-spin-button,
.idt-btcpay__price::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}
.idt-btcpay .idt-btn {
	border: 0;
	font: inherit;
	font-weight: 600;
	cursor: pointer;
}
.idt-crypto {
	display: grid;
	gap: 0.75rem;
	margin: 1rem 0;
}
.idt-crypto__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr));
	gap: 0.9rem;
}
.idt-crypto__item {
	border: 1px solid var(--idt-rule);
	border-radius: var(--idt-radius);
	background: var(--idt-paper);
	padding: 0.85rem 1rem;
	display: grid;
	gap: 0.5rem;
	font-family: var(--idt-font-ui);
}
.idt-crypto__head {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 0.5rem;
}
.idt-crypto__label {
	font-weight: 600;
	font-size: 0.95rem;
}
.idt-crypto__network {
	font-size: 0.72rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--idt-muted);
}
.idt-crypto__addr {
	font-size: 0.78rem;
	word-break: break-all;
	background: var(--idt-bg);
	border-radius: var(--idt-radius);
	padding: 0.5rem 0.6rem;
	cursor: pointer;
	position: relative;
}
.idt-crypto__addr:hover { outline: 1px solid var(--idt-accent); }
.idt-crypto__addr.is-copied::after {
	content: "Copied";
	position: absolute;
	right: 0.4rem;
	top: 0.35rem;
	font-family: var(--idt-font-ui);
	font-size: 0.7rem;
	font-weight: 600;
	color: var(--idt-accent);
	background: var(--idt-paper);
	padding: 0 0.3rem;
	border-radius: var(--idt-radius);
}
.idt-crypto__open {
	font-size: 0.8rem;
	justify-self: start;
}

/* Staff grid */
.idt-staff {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(13rem, 1fr));
	gap: 2.25rem 1.75rem;
	margin: 1.5rem 0;
}
.idt-staff__member {
	margin: 0;
	display: grid;
	gap: 0.65rem;
	align-content: start;
}
.idt-staff__member img,
.idt-staff__member img.idt-content-img {
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	border-radius: var(--idt-radius);
	background: #ddd;
}
.idt-staff__member figcaption {
	display: grid;
	gap: 0.2rem;
}
.idt-staff__name {
	font-family: var(--idt-font-display);
	font-size: 1.1rem;
	font-weight: 600;
	line-height: 1.25;
}
.idt-staff__role {
	font-family: var(--idt-font-ui);
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--idt-accent);
}
.idt-staff__bio {
	font-size: 0.95rem;
	line-height: 1.45;
	color: var(--idt-muted);
}

/* Hubs strip */
.idt-hubs {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}
.idt-hubs a {
	font-family: var(--idt-font-ui);
	font-size: 0.78rem;
	letter-spacing: 0.04em;
	text-decoration: none;
	color: var(--idt-ink);
	border: 1px solid var(--idt-rule-strong);
	background: var(--idt-paper);
	padding: 0.45rem 0.8rem;
	border-radius: var(--idt-radius);
}
.idt-hubs a:hover {
	border-color: var(--idt-ink);
	color: var(--idt-ink);
}

/* Support CTA */
.idt-cta {
	background: var(--idt-header);
	color: var(--idt-header-text);
	padding: 2.5rem 0;
}
.idt-cta__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	flex-wrap: wrap;
}
.idt-cta h2 {
	font-family: var(--idt-font-display);
	font-size: 1.65rem;
	font-weight: 600;
	margin: 0 0 0.35rem;
	color: #fff;
}
.idt-cta p {
	margin: 0;
	color: var(--idt-header-muted);
	font-family: var(--idt-font-ui);
	font-size: 0.95rem;
	max-width: 28rem;
}
.idt-cta__actions {
	display: flex;
	gap: 0.65rem;
	flex-wrap: wrap;
}
.idt-btn {
	font-family: var(--idt-font-ui);
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	text-decoration: none;
	padding: 0.7rem 1.1rem;
	border-radius: var(--idt-radius);
	display: inline-block;
	border: 1px solid transparent;
}
.idt-btn--primary {
	background: var(--idt-accent);
	color: #fff;
}
.idt-btn--primary:hover {
	background: var(--idt-accent-hover);
	color: #fff;
}
.idt-btn--ghost {
	background: transparent;
	color: #fff;
	border-color: #555;
}
.idt-btn--ghost:hover {
	border-color: #fff;
	color: #fff;
}

/* ---------- Single / page reading ---------- */
.idt-article {
	padding: 2.5rem 0 3.5rem;
}
.idt-article__header {
	margin-bottom: 1.75rem;
}
.idt-article__title {
	font-family: var(--idt-font-display);
	font-weight: 600;
	font-size: clamp(2rem, 4vw, 2.75rem);
	line-height: 1.12;
	margin: 0.5rem 0 1rem;
	color: var(--idt-ink);
}
.idt-article__thumb {
	margin: 1.5rem 0 1.75rem;
	border-radius: var(--idt-radius);
	overflow: hidden;
	background: #ddd;
}
.idt-article__thumb img {
	width: 100%;
	height: auto;
}
.idt-content {
	font-size: 1.125rem;
	line-height: 1.75;
	overflow-wrap: anywhere;
	word-wrap: break-word;
}
.idt-content > *:first-child { margin-top: 0; }
.idt-content h2,
.idt-content h3,
.idt-content h4 {
	font-family: var(--idt-font-display);
	font-weight: 600;
	line-height: 1.25;
	margin: 2rem 0 0.75rem;
	color: var(--idt-ink);
}
.idt-content h2 { font-size: 1.55rem; }
.idt-content h3 { font-size: 1.3rem; }
.idt-content p,
.idt-content ul,
.idt-content ol,
.idt-content blockquote {
	margin: 0 0 1.15rem;
}
.idt-content ul,
.idt-content ol { padding-left: 1.35rem; }
.idt-content blockquote {
	border-left: 3px solid var(--idt-accent);
	padding: 0.15rem 0 0.15rem 1.15rem;
	color: var(--idt-ink-soft);
	font-style: italic;
	margin-left: 0;
}
.idt-content figure,
.idt-content .wp-block-image,
.idt-content .wp-caption {
	margin: 1.75rem 0;
	max-width: 100%;
}
.idt-content figcaption,
.idt-content .wp-caption-text {
	font-family: var(--idt-font-ui);
	font-size: 0.8rem;
	color: var(--idt-muted);
	margin-top: 0.4rem;
}

/* ---- Responsive images in article/page body ---- */
.idt-content img,
.idt-content .idt-content-img,
.idt-content .alignnone,
.idt-content .aligncenter,
.idt-content .alignleft,
.idt-content .alignright,
.idt-content .size-full,
.idt-content .size-large,
.idt-content .wp-post-image {
	max-width: 100% !important;
	width: auto !important;
	height: auto !important;
	border-radius: var(--idt-radius);
}
.idt-content img.aligncenter,
.idt-content .aligncenter {
	display: block;
	margin-left: auto;
	margin-right: auto;
}
.idt-content img.alignleft,
.idt-content .alignleft {
	float: left;
	margin: 0.35rem 1.25rem 1rem 0;
	max-width: min(46%, 280px) !important;
}
.idt-content img.alignright,
.idt-content .alignright {
	float: right;
	margin: 0.35rem 0 1rem 1.25rem;
	max-width: min(46%, 280px) !important;
}
.idt-content::after {
	content: "";
	display: table;
	clear: both;
}
/* Full-bleed-friendly: images that are alone in a paragraph */
.idt-content p > img:only-child,
.idt-content p > a:only-child > img:only-child {
	display: block;
	margin: 0.25rem auto 0.5rem;
	max-width: 100% !important;
	height: auto !important;
}
/* Tables / pre that might overflow */
.idt-content table {
	display: block;
	width: 100%;
	max-width: 100%;
	overflow-x: auto;
}
.idt-content pre {
	max-width: 100%;
	overflow-x: auto;
}

/* ---- Squarespace Fluid Engine → readable responsive flow ---- */
.idt-content .sections,
.idt-content .page-section,
.idt-content .content-wrapper,
.idt-content .content,
.idt-content .section-border,
.idt-content .section-background {
	display: block;
	width: 100%;
	max-width: 100%;
	position: relative;
	height: auto;
	min-height: 0;
}
.idt-content .fluid-engine,
.idt-content [data-fluid-engine="true"] {
	display: block !important;
	position: relative !important;
	width: 100% !important;
	max-width: 100% !important;
	height: auto !important;
	min-height: 0 !important;
	grid-template-columns: none !important;
	grid-template-rows: none !important;
	gap: 0 !important;
	overflow: visible !important;
	padding: 0 !important;
	margin: 0 0 1.5rem !important;
}
/* Kill SQSP absolute/grid placement — flow content top-to-bottom */
.idt-content .fe-block {
	display: block !important;
	position: relative !important;
	inset: auto !important;
	top: auto !important;
	left: auto !important;
	right: auto !important;
	bottom: auto !important;
	grid-area: auto !important;
	width: 100% !important;
	max-width: 100% !important;
	height: auto !important;
	min-height: 0 !important;
	margin: 0 0 0.85rem !important;
	padding: 0 !important;
	z-index: auto !important;
	transform: none !important;
}
.idt-content .sqs-block,
.idt-content .sqs-block-content,
.idt-content .sqs-html-content,
.idt-content .image-block,
.idt-content .html-block,
.idt-content .button-block {
	display: block !important;
	width: 100% !important;
	max-width: 100% !important;
	height: auto !important;
	position: relative !important;
}
.idt-content .sqs-block-image img,
.idt-content .image-block img {
	margin: 0 auto 0.75rem;
	max-width: min(100%, 120px) !important;
	height: auto !important;
}
.idt-content .sqs-block-button-element,
.idt-content .sqs-block-button a {
	display: inline-block;
	margin: 0.35rem 0.35rem 0 0;
	padding: 0.55rem 0.9rem;
	font-family: var(--idt-font-ui);
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	text-decoration: none;
	color: #fff !important;
	background: var(--idt-accent);
	border-radius: var(--idt-radius);
}
.idt-content .sqs-block-button-element:hover,
.idt-content .sqs-block-button a:hover {
	background: var(--idt-accent-hover);
	color: #fff !important;
}

/* Hide empty SQSP chrome */
.idt-content .section-background:empty,
.idt-content .section-border:empty {
	display: none !important;
}

/* ---- Toolkit clean layout (page-toolkit.php) ---- */
.idt-page--wide .idt-article__inner {
	width: min(100% - 2rem, var(--idt-wide));
	margin-inline: auto;
}
.idt-toolkit-intro {
	font-size: 1.15rem;
	color: var(--idt-ink-soft);
	max-width: 40rem;
	margin: 0 0 2rem;
}
.idt-toolkit-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.25rem;
	margin: 0;
	padding: 0;
	list-style: none;
}
.idt-toolkit-card {
	display: flex;
	flex-direction: column;
	gap: 0.65rem;
	background: var(--idt-paper);
	border: 1px solid var(--idt-rule);
	border-radius: var(--idt-radius);
	padding: 1.35rem 1.25rem 1.25rem;
	height: 100%;
}
.idt-toolkit-card__icon {
	width: 72px;
	height: 72px;
	object-fit: contain;
	margin: 0;
}
.idt-toolkit-card__title {
	font-family: var(--idt-font-display);
	font-size: 1.25rem;
	font-weight: 600;
	margin: 0;
	line-height: 1.2;
	color: var(--idt-ink);
}
.idt-toolkit-card__desc {
	font-size: 0.98rem;
	line-height: 1.5;
	color: var(--idt-ink-soft);
	margin: 0;
	flex: 1;
}
.idt-toolkit-card__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.45rem;
	margin-top: 0.35rem;
}
.idt-toolkit-card__actions a {
	font-family: var(--idt-font-ui);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	text-decoration: none;
	color: #fff;
	background: var(--idt-accent);
	padding: 0.5rem 0.8rem;
	border-radius: var(--idt-radius);
}
.idt-toolkit-card__actions a:hover {
	background: var(--idt-accent-hover);
	color: #fff;
}
.idt-toolkit-card__actions a.idt-btn-secondary {
	background: transparent;
	color: var(--idt-ink);
	border: 1px solid var(--idt-rule-strong);
}
.idt-toolkit-card__actions a.idt-btn-secondary:hover {
	border-color: var(--idt-ink);
	background: var(--idt-bg);
	color: var(--idt-ink);
}

@media (max-width: 900px) {
	.idt-toolkit-grid { grid-template-columns: repeat(2, 1fr); }
	.idt-content img.alignleft,
	.idt-content .alignleft,
	.idt-content img.alignright,
	.idt-content .alignright {
		float: none;
		display: block;
		margin: 0.75rem auto;
		max-width: 100% !important;
	}
}
@media (max-width: 560px) {
	.idt-toolkit-grid { grid-template-columns: 1fr; }
}

/* ---- Section hubs (News / Schools / Libraries / Legislature) ---- */
.idt-topic-chips a.is-active {
	background: var(--idt-ink);
	color: #fff;
	border-color: var(--idt-ink);
}
.idt-hub-topics {
	padding-bottom: 0.5rem;
}
.idt-topic-chips {
	gap: 0.45rem;
}
.idt-topic-chips a {
	font-size: 0.74rem;
}

.idt-author-box {
	margin-top: 2.5rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--idt-rule);
	font-family: var(--idt-font-ui);
}
.idt-author-box__label {
	font-size: 0.68rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--idt-muted);
	margin: 0 0 0.35rem;
}
.idt-author-box__name {
	font-family: var(--idt-font-display);
	font-size: 1.15rem;
	font-weight: 600;
	margin: 0;
}
.idt-author-box__name a {
	color: inherit;
	text-decoration: none;
}
.idt-author-box__name a:hover { color: var(--idt-accent); }

.idt-related {
	padding: 2rem 0 3rem;
	border-top: 1px solid var(--idt-rule);
	background: var(--idt-paper);
}

/* Archive header */
.idt-archive-head {
	padding: 2.25rem 0 0.5rem;
}
.idt-archive-head h1 {
	font-family: var(--idt-font-display);
	font-size: clamp(1.85rem, 3vw, 2.4rem);
	font-weight: 600;
	margin: 0.35rem 0 0.5rem;
}
.idt-archive-head p {
	color: var(--idt-muted);
	margin: 0;
	font-family: var(--idt-font-ui);
	font-size: 0.95rem;
}

/* Pagination */
.idt-pagination {
	margin: 2rem 0 0;
	font-family: var(--idt-font-ui);
	font-size: 0.9rem;
}
.idt-pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	align-items: center;
}
.idt-pagination a,
.idt-pagination span {
	padding: 0.4rem 0.7rem;
	border: 1px solid var(--idt-rule);
	background: var(--idt-paper);
	text-decoration: none;
	color: var(--idt-ink);
	border-radius: var(--idt-radius);
}
.idt-pagination .current {
	background: var(--idt-ink);
	color: #fff;
	border-color: var(--idt-ink);
}

/* Footer */
.idt-footer {
	background: var(--idt-header);
	color: var(--idt-header-muted);
	font-family: var(--idt-font-ui);
	font-size: 0.85rem;
	padding: 2.5rem 0 2rem;
	margin-top: 0;
}
.idt-footer a {
	color: var(--idt-header-text);
	text-decoration: none;
}
.idt-footer a:hover { color: #fff; }
.idt-footer__grid {
	display: grid;
	grid-template-columns: 1.4fr 1fr 1fr;
	gap: 2rem;
	margin-bottom: 2rem;
}
.idt-footer__brand {
	font-family: var(--idt-font-display);
	font-size: 1.25rem;
	font-weight: 600;
	color: #fff;
	display: block;
	margin-bottom: 0.5rem;
	text-decoration: none;
}
.idt-footer__tag {
	margin: 0;
	max-width: 22rem;
	line-height: 1.5;
}
.idt-footer__col h3 {
	font-size: 0.68rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--idt-header-muted);
	margin: 0 0 0.75rem;
	font-weight: 600;
}
.idt-footer__col ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 0.45rem;
}
.idt-footer__base {
	border-top: 1px solid #222;
	padding-top: 1.25rem;
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	flex-wrap: wrap;
	font-size: 0.78rem;
}

/* Empty state */
.idt-empty {
	padding: 3rem 0;
	text-align: center;
	color: var(--idt-muted);
	font-family: var(--idt-font-ui);
}

/* ---------- Responsive ---------- */
@media (max-width: 900px) {
	.idt-latest { grid-template-columns: 1fr; }
	.idt-hero__track { aspect-ratio: 16 / 10; }
	.idt-grid { grid-template-columns: repeat(2, 1fr); }
	.idt-grid--4 { grid-template-columns: repeat(2, 1fr); }
	.idt-footer__grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 720px) {
	.idt-burger { display: inline-block; }
	.idt-nav {
		display: none;
		position: absolute;
		left: 0; right: 0;
		top: 100%;
		background: #111;
		flex-direction: column;
		align-items: stretch;
		padding: 0.5rem 1rem 1rem;
		border-bottom: 1px solid #222;
	}
	.idt-nav.is-open { display: flex; }
	.idt-mast { position: sticky; }
	.idt-mast__inner { position: relative; flex-wrap: wrap; }
	.idt-grid,
	.idt-grid--2,
	.idt-grid--4 { grid-template-columns: 1fr; }
	.idt-hero__track { aspect-ratio: 4 / 3; }
	.idt-hero__panel { padding: 2.5rem 1rem 1rem; }
	.idt-list li { grid-template-columns: 5rem 1fr; gap: 0.75rem; }
	.idt-footer__grid { grid-template-columns: 1fr; }
	.idt-util__inner { justify-content: center; }
}

/* —— Evidence photo galleries (.image-gallery-wrapper → .idt-gallery) —— */
.image-gallery-wrapper,
.idt-gallery {
	margin: 1.75rem 0 2rem;
	background: var(--idt-paper);
	border: 1px solid var(--idt-rule);
	border-radius: 4px;
	overflow: hidden;
}
.idt-gallery--single img {
	display: block;
	width: 100%;
	height: auto;
	margin: 0;
}
.idt-gallery__stage {
	position: relative;
	background: #0a0a0a;
	aspect-ratio: 4 / 3;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}
.idt-gallery__main {
	display: block;
	max-width: 100%;
	max-height: 100%;
	width: auto;
	height: auto;
	object-fit: contain;
	margin: 0;
}
.idt-gallery__nav {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 2;
	width: 2.5rem;
	height: 2.5rem;
	border: 0;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.92);
	color: var(--idt-ink);
	font-size: 1.65rem;
	line-height: 1;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.25);
	padding: 0 0 0.1rem;
	transition: background 0.15s, color 0.15s;
}
.idt-gallery__nav:hover {
	background: #fff;
	color: var(--idt-accent);
}
.idt-gallery__nav--prev { left: 0.65rem; }
.idt-gallery__nav--next { right: 0.65rem; }
.idt-gallery__counter {
	position: absolute;
	right: 0.75rem;
	bottom: 0.65rem;
	z-index: 2;
	padding: 0.2rem 0.55rem;
	border-radius: 999px;
	background: rgba(0, 0, 0, 0.65);
	color: #fff;
	font-family: var(--idt-font-ui);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.02em;
}
.idt-gallery__strip-wrap {
	display: grid;
	grid-template-columns: 2rem 1fr 2rem;
	align-items: center;
	gap: 0.25rem;
	padding: 0.55rem 0.4rem 0.65rem;
	background: var(--idt-bg);
	border-top: 1px solid var(--idt-rule);
}
.idt-gallery__strip {
	display: flex;
	gap: 0.4rem;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: thin;
	padding: 0.15rem 0.1rem;
	-webkit-overflow-scrolling: touch;
}
.idt-gallery__strip::-webkit-scrollbar {
	height: 6px;
}
.idt-gallery__strip::-webkit-scrollbar-thumb {
	background: var(--idt-rule-strong);
	border-radius: 999px;
}
.idt-gallery__thumb {
	flex: 0 0 auto;
	width: 4.5rem;
	height: 3.35rem;
	padding: 0;
	border: 2px solid transparent;
	border-radius: 3px;
	overflow: hidden;
	background: #ddd;
	cursor: pointer;
	scroll-snap-align: start;
	opacity: 0.72;
	transition: opacity 0.15s, border-color 0.15s;
}
.idt-gallery__thumb img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	margin: 0;
}
.idt-gallery__thumb:hover {
	opacity: 1;
}
.idt-gallery__thumb.is-active {
	opacity: 1;
	border-color: var(--idt-accent);
}
.idt-gallery__strip-nav {
	width: 1.85rem;
	height: 1.85rem;
	border: 1px solid var(--idt-rule);
	border-radius: 999px;
	background: var(--idt-paper);
	color: var(--idt-ink);
	font-size: 1.25rem;
	line-height: 1;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0 0 0.1rem;
}
.idt-gallery__strip-nav:hover {
	border-color: var(--idt-accent);
	color: var(--idt-accent);
}
@media (max-width: 720px) {
	.idt-gallery__stage { aspect-ratio: 1 / 1; }
	.idt-gallery__nav {
		width: 2.15rem;
		height: 2.15rem;
		font-size: 1.4rem;
	}
	.idt-gallery__thumb {
		width: 3.75rem;
		height: 2.85rem;
	}
}
