/**
 * DriverMarket base — provisional tokens (Phase 1 §3.2) pending design HTML.
 * Fonts are self-hosted woff2 (no Google CDN).
 */

@font-face {
	font-family: "Source Sans 3";
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("../fonts/source-sans-3-latin-400-normal.woff2") format("woff2");
}

@font-face {
	font-family: "Source Sans 3";
	font-style: normal;
	font-weight: 600;
	font-display: swap;
	src: url("../fonts/source-sans-3-latin-600-normal.woff2") format("woff2");
}

@font-face {
	font-family: "Source Sans 3";
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url("../fonts/source-sans-3-latin-700-normal.woff2") format("woff2");
}

@font-face {
	font-family: "Source Serif 4";
	font-style: normal;
	font-weight: 600;
	font-display: swap;
	src: url("../fonts/source-serif-4-latin-600-normal.woff2") format("woff2");
}

@font-face {
	font-family: "Source Serif 4";
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url("../fonts/source-serif-4-latin-700-normal.woff2") format("woff2");
}

:root {
	--dm-surface: #ffffff;
	--dm-surface-muted: #f5f7fa;
	--dm-navy: #0b1f3a;
	--dm-green: #1f7a4d;
	--dm-green-hover: #17633e;
	--dm-warn: #9a6700;
	--dm-danger: #b32d2e;
	--dm-body: #3d4654;
	--dm-muted: #6b7280;
	--dm-border: #d9dee6;
	--dm-radius: 4px;
	--dm-shadow: 0 1px 2px rgba(11, 31, 58, 0.06);
	--dm-font-body: "Source Sans 3", "Segoe UI", system-ui, sans-serif;
	--dm-font-heading: "Source Serif 4", "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;
	--dm-space: 1rem;
	--dm-wide: 1120px;
	--dm-focus: 2px solid var(--dm-green);
	--dm-touch: 44px;
}

*,
*::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(--dm-font-body);
	font-size: 1rem;
	line-height: 1.6;
	color: var(--dm-body);
	background: var(--dm-surface);
}

h1,
h2,
h3,
h4,
h5,
h6 {
	font-family: var(--dm-font-heading);
	color: var(--dm-navy);
	line-height: 1.25;
	margin: 0 0 0.6em;
	font-weight: 600;
}

a {
	color: var(--dm-green);
	text-decoration-thickness: 1px;
	text-underline-offset: 2px;
}

a:hover {
	color: var(--dm-green-hover);
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible,
[role="option"]:focus-visible,
[role="button"]:focus-visible,
[tabindex]:focus-visible {
	outline: var(--dm-focus);
	outline-offset: 2px;
}

img {
	max-width: 100%;
	height: auto;
	display: block;
}

.dm-container,
.driver-card__title,
.driver-row__title,
.page-title,
.dm-code,
.driver-single__links a,
.driver-card__meta,
.driver-meta {
	overflow-wrap: anywhere;
	word-break: break-word;
}

html.dm-nav-open,
html.dm-nav-open body,
html.dm-filter-open,
html.dm-filter-open body {
	overflow: hidden;
}

.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;
}

.skip-link:focus {
	clip: auto;
	clip-path: none;
	height: auto;
	width: auto;
	left: var(--dm-space);
	top: var(--dm-space);
	z-index: 100000;
	padding: 0.75rem 1rem;
	background: var(--dm-navy);
	color: #fff;
	text-decoration: none;
}

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

.dm-button {
	min-height: var(--dm-touch);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.35rem;
	padding: 0.65rem 1.1rem;
	border: 1px solid transparent;
	border-radius: var(--dm-radius);
	background: var(--dm-green);
	color: #fff;
	font: inherit;
	font-weight: 600;
	text-decoration: none;
	cursor: pointer;
	transition: background 160ms ease, transform 160ms ease;
}

.dm-button:hover {
	background: var(--dm-green-hover);
	color: #fff;
}

.dm-button:active {
	transform: translateY(1px);
}

.dm-button--secondary {
	background: transparent;
	color: var(--dm-navy);
	border-color: var(--dm-border);
}

.dm-button--secondary:hover {
	background: var(--dm-surface-muted);
	color: var(--dm-navy);
}

.dm-button--download {
	font-size: 1.05rem;
	padding: 0.85rem 1.4rem;
}

.dm-link {
	font-weight: 600;
}

.dm-chip-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.dm-chip-list--inline {
	margin: 0.5rem 0;
}

.dm-chip {
	display: inline-block;
	padding: 0.2rem 0.55rem;
	border: 1px solid var(--dm-border);
	border-radius: var(--dm-radius);
	background: var(--dm-surface);
	color: var(--dm-body);
	font-size: 0.85rem;
	text-decoration: none;
}

.dm-badge {
	display: inline-block;
	padding: 0.2rem 0.5rem;
	border-radius: var(--dm-radius);
	background: var(--dm-surface-muted);
	font-size: 0.85rem;
	font-weight: 600;
}

.dm-badge--verified {
	background: rgba(31, 122, 77, 0.12);
	color: var(--dm-green);
}

.dm-code {
	font-family: ui-monospace, "Cascadia Code", "Source Code Pro", Menlo, monospace;
	font-size: 0.9em;
	background: var(--dm-surface-muted);
	padding: 0.15rem 0.4rem;
	border-radius: var(--dm-radius);
}

.dm-code--block {
	display: block;
	padding: 1rem;
	overflow: auto;
	white-space: pre-wrap;
}

.dm-hp {
	position: absolute;
	left: -9999px;
	height: 0;
	overflow: hidden;
}

.dm-notice {
	padding: 0.75rem 1rem;
	border: 1px solid var(--dm-border);
	border-radius: var(--dm-radius);
	background: var(--dm-surface-muted);
}

.dm-notice--success {
	border-color: rgba(31, 122, 77, 0.35);
	background: rgba(31, 122, 77, 0.08);
}
