/* InfinityNews Next — design tokens & base */
@font-face {
	font-family: "Manrope";
	src: url("../fonts/manrope-500.woff2") format("woff2");
	font-weight: 500;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "Manrope";
	src: url("../fonts/manrope-600.woff2") format("woff2");
	font-weight: 600;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "Manrope";
	src: url("../fonts/manrope-700.woff2") format("woff2");
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "Source Serif 4";
	src: url("../fonts/source-serif-400.woff2") format("woff2");
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "Source Serif 4";
	src: url("../fonts/source-serif-600.woff2") format("woff2");
	font-weight: 600;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "Source Serif 4";
	src: url("../fonts/source-serif-700.woff2") format("woff2");
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}

:root {
	--inn-ink: #10131a;
	--inn-ink-muted: #5a6170;
	--inn-paper: #ffffff;
	--inn-canvas: #eceff4;
	--inn-navy: #0a1360;
	--inn-navy-deep: #070e45;
	--inn-accent: #b01234;
	--inn-line: #d3d8e2;
	--inn-soft: #f4f6fa;
	--inn-radius: 8px;
	--inn-shadow: 0 1px 2px rgba(16, 19, 26, 0.05), 0 8px 24px rgba(16, 19, 26, 0.04);
	--inn-container: 1280px;
	--inn-gap: clamp(1rem, 2vw, 2rem);
	--inn-font-sans: "Manrope", "Avenir Next", "Segoe UI", sans-serif;
	--inn-font-display: "Source Serif 4", "Iowan Old Style", Georgia, serif;
	--inn-header-h: 4.5rem;
	--inn-focus: 0 0 0 3px rgba(10, 19, 96, 0.28);
	color-scheme: light;
}

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

html { scroll-behavior: smooth; }

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

body {
	margin: 0;
	font-family: var(--inn-font-sans);
	font-size: 1.0625rem;
	font-weight: 500;
	line-height: 1.65;
	color: var(--inn-ink);
	background:
		radial-gradient(900px 320px at 50% -8%, rgba(10, 19, 96, 0.08), transparent 55%),
		linear-gradient(180deg, #f5f7fb 0%, var(--inn-canvas) 45%, #e4e8f0 100%);
	min-height: 100vh;
	-webkit-font-smoothing: antialiased;
}

img, video, iframe { max-width: 100%; height: auto; }

a {
	color: var(--inn-navy);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.15em;
	transition: color 0.15s ease;
}
a:hover { color: var(--inn-accent); }
a:focus-visible,
button:focus-visible,
input:focus-visible,
summary:focus-visible {
	outline: none;
	box-shadow: var(--inn-focus);
}

h1, h2, h3, h4 {
	font-family: var(--inn-font-display);
	line-height: 1.18;
	letter-spacing: -0.015em;
	color: var(--inn-ink);
	margin: 0 0 0.55em;
	font-weight: 700;
}

p { margin: 0 0 1em; }

.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	word-wrap: normal !important;
}
.screen-reader-text:focus {
	background: #fff;
	clip: auto !important;
	clip-path: none;
	color: var(--inn-ink);
	display: block;
	font-size: 1rem;
	height: auto;
	left: 0.5rem;
	line-height: normal;
	padding: 0.75rem 1rem;
	top: 0.5rem;
	width: auto;
	z-index: 100000;
}

.inn-skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 100000;
	background: var(--inn-navy);
	color: #fff;
	padding: 0.75rem 1rem;
}
.inn-skip-link:focus {
	left: 0.5rem;
	top: 0.5rem;
	color: #fff;
}

.inn-container {
	width: min(100% - 2rem, var(--inn-container));
	margin-inline: auto;
}

.inn-kicker {
	display: inline-block;
	font-family: var(--inn-font-sans);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--inn-accent);
	text-decoration: none;
	margin-bottom: 0.35rem;
}
.inn-kicker:hover { color: var(--inn-navy); }

.inn-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.4rem;
	min-height: 44px;
	padding: 0.65rem 1.2rem;
	border: 1px solid var(--inn-navy);
	border-radius: 999px;
	background: var(--inn-navy);
	color: #fff;
	font: inherit;
	font-weight: 700;
	font-size: 0.92rem;
	text-decoration: none;
	cursor: pointer;
	transition: transform 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
}
.inn-btn:hover { background: var(--inn-navy-deep); color: #fff; box-shadow: 0 6px 18px rgba(10, 19, 96, 0.22); }
.inn-btn:active { transform: translateY(1px); }
.inn-btn--ghost {
	background: transparent;
	color: var(--inn-navy);
}
.inn-btn--ghost:hover { background: var(--inn-soft); color: var(--inn-navy); box-shadow: none; }
.inn-btn[disabled],
.inn-btn[aria-busy="true"] {
	opacity: 0.65;
	cursor: wait;
}
