/*
Theme Name: ZAD Tools Hallmark
Theme URI: https://zad.tools/
Description: Hallmark identity layer for the ZAD AI Operations Lab.
Author: ZAD STACK
Version: 1.4.6
Template: zad-journal-100
Text Domain: zad-tools-hallmark

Hallmark · genre: modern-minimal · macrostructure: Workbench · design-system: design.md · designed-as-app
Theme: custom ZAD green · tone: technical operational · anchor hue: 145 · nav: N8 · footer: Ft5
Hallmark · pre-emit critique: P5 H5 E4 S5 R5 V5
*/

@font-face {
	font-family: "Zad";
	font-style: normal;
	font-weight: 300;
	font-display: swap;
	src: url("fonts/Zad-Light.woff2") format("woff2");
}

@font-face {
	font-family: "Zad";
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("fonts/Zad-Regular.woff2") format("woff2");
}

@font-face {
	font-family: "Zad";
	font-style: normal;
	font-weight: 500;
	font-display: swap;
	src: url("fonts/Zad-Medium.woff2") format("woff2");
}

@font-face {
	font-family: "Zad";
	font-style: normal;
	font-weight: 600;
	font-display: swap;
	src: url("fonts/Zad-SemiBold.woff2") format("woff2");
}

@font-face {
	font-family: "Zad";
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url("fonts/Zad-Bold.woff2") format("woff2");
}

html,
body {
	overflow-x: clip;
}

:root {
	--ops-bg: var(--color-paper);
	--ops-paper: var(--color-paper-2);
	--ops-ink: var(--color-ink);
	--ops-ink-soft: var(--color-ink-2);
	--ops-muted: var(--color-muted);
	--ops-line: var(--color-rule);
	--ops-line-dark: var(--color-rule-dark);
	--ops-signal: var(--color-accent);
	--ops-signal-dark: var(--color-accent-dark);
	--ops-on-dark: var(--color-on-dark);
	--zad-canvas: var(--color-paper);
	--zad-paper: var(--color-paper-2);
	--zad-surface: var(--color-paper-2);
	--zad-ink: var(--color-ink);
	--zad-ink-soft: var(--color-ink-2);
	--zad-muted: var(--color-muted);
	--zad-faint: var(--color-neutral);
	--zad-line: var(--color-rule);
	--zad-line-strong: var(--color-rule-dark);
	--zad-cobalt: var(--color-accent-dark);
	--zad-cobalt-soft: var(--color-accent-soft);
	--zad-cobalt-quiet: var(--color-accent-dark);
	--zad-accent: var(--color-accent-dark);
	--zad-radius: var(--radius-control);
	--zad-transition: var(--dur-short) var(--ease-out);
}

body {
	background: var(--color-paper) !important;
	color: var(--color-ink) !important;
	font-family: var(--font-body) !important;
}

h1,
h2,
h3,
h4,
.zad-hero-title,
.zad-ops-section-head h2,
.zad-footer-brand {
	font-family: var(--font-display) !important;
	font-style: normal !important;
	overflow-wrap: anywhere;
	min-width: 0;
}

.zad-header,
.zad-footer,
.zad-ops-lab,
.zad-newsletter-section {
	background: var(--color-ink) !important;
	color: var(--color-on-dark) !important;
}

.zad-header {
	border-bottom: var(--rule-heavy) solid var(--color-accent) !important;
	box-shadow: none !important;
}

.zad-brand strong,
.zad-footer-brand {
	color: var(--color-on-dark) !important;
}

.zad-brand small,
.zad-menu a,
.zad-footer a,
.zad-footer p {
	color: var(--color-on-dark-muted) !important;
}

.zad-brand::after,
.zad-ops-label::after,
.zad-status-dot {
	background: var(--color-accent) !important;
}

.zad-menu a,
.zad-search button,
.zad-button,
.zad-button-primary,
.wp-element-button,
button,
input[type="submit"] {
	min-height: 44px;
	border-radius: var(--radius-control) !important;
	white-space: nowrap;
	transition: transform var(--dur-micro) var(--ease-out), background-color var(--dur-short) var(--ease-out), color var(--dur-short) var(--ease-out), border-color var(--dur-short) var(--ease-out) !important;
}

.zad-button-primary,
.zad-search button,
.wp-element-button,
input[type="submit"] {
	border-color: var(--color-accent) !important;
	background: var(--color-accent) !important;
	color: var(--color-accent-ink) !important;
}

.zad-button,
.zad-button-light {
	border-color: var(--color-rule-dark) !important;
	background: transparent !important;
	color: inherit !important;
}

.zad-hero,
.zad-section,
.zad-content-index,
.zad-editorial-section {
	background: var(--color-paper) !important;
	color: var(--color-ink) !important;
}

.zad-hero-card,
.zad-card,
.zad-path-card,
.zad-tool-card,
.zad-index-card,
.zad-protocol-item {
	border-color: var(--color-rule-dark) !important;
	border-radius: var(--radius-card) !important;
	background: var(--color-paper-2) !important;
	color: var(--color-ink) !important;
	box-shadow: none !important;
}

.zad-content-index a[aria-current="page"],
.zad-card:hover,
.zad-path-card:hover,
.zad-tool-card:hover {
	background: var(--color-accent-soft) !important;
	color: var(--color-ink) !important;
}

.zad-ops-label,
.zad-card-meta,
.zad-card-metrics,
.zad-kicker,
.zad-eyebrow,
.zad-section-label,
time {
	color: var(--color-accent-dark) !important;
	font-variant-numeric: tabular-nums;
}

.zad-ops-lab .zad-ops-label,
.zad-ops-lab .zad-card-meta,
.zad-ops-lab .zad-card-metrics {
	color: var(--color-accent) !important;
}

.zad-newsletter-callout,
.zad-newsletter-banner {
	border-color: var(--color-rule-dark) !important;
	background: var(--color-accent) !important;
	color: var(--color-accent-ink) !important;
}

.zad-newsletter__tier--premium {
	border-color: var(--color-accent-dark) !important;
	border-top: var(--rule-heavy) solid var(--color-accent) !important;
	background: var(--color-ink-2) !important;
	color: var(--color-on-dark) !important;
}

.zad-newsletter__tier--premium p,
.zad-newsletter__tier--premium li,
.zad-newsletter__tier--premium label {
	color: var(--color-on-dark-muted) !important;
}

.zad-newsletter__tier--premium h2,
.zad-newsletter__tier--premium strong {
	color: var(--color-on-dark) !important;
}

input,
textarea,
select {
	min-height: 44px;
	border: var(--rule-hair) solid var(--color-rule-dark) !important;
	border-radius: var(--radius-input) !important;
	outline: 2px solid transparent;
	outline-offset: 1px;
	background: var(--color-paper-2) !important;
	color: var(--color-ink) !important;
}

:focus-visible {
	outline: 2px solid var(--color-focus) !important;
	outline-offset: 2px !important;
}

input[aria-invalid="true"],
textarea[aria-invalid="true"],
select[aria-invalid="true"] {
	border-color: var(--color-error) !important;
}

button:disabled,
input:disabled,
textarea:disabled,
select:disabled,
[aria-disabled="true"] {
	opacity: .55;
	cursor: not-allowed;
}

@media (hover: hover) and (pointer: fine) {
	.zad-menu a:hover,
	.zad-footer a:hover {
		color: var(--color-accent) !important;
	}

	.zad-button:hover,
	.zad-button-primary:hover,
	.wp-element-button:hover,
	button:hover {
		transform: translateY(-1px);
	}
}

.zad-button:active,
.zad-button-primary:active,
.wp-element-button:active,
button:active {
	transform: translateY(1px);
}

@media (pointer: coarse) {
	a,
	button,
	input,
	select {
		min-height: 48px;
	}
}

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

/* Complete child-theme templates */
.zth-body { margin: 0; }
.zth-shell { width: min(calc(100% - clamp(2rem, 6vw, 6rem)), 84rem); margin-inline: auto; }
.zth-skip { position: fixed; inset-inline-start: var(--space-md); top: -6rem; z-index: 1000; padding: var(--space-sm) var(--space-md); background: var(--color-accent); color: var(--color-accent-ink); }
.zth-skip:focus { top: var(--space-md); }

.zth-header { position: sticky; top: 0; z-index: 300; border-bottom: var(--rule-heavy) solid var(--color-accent); background: var(--color-ink); color: var(--color-on-dark); }
body.admin-bar .zth-header { top: 32px; }
.zth-header__row { min-height: 4.75rem; display: grid; grid-template-columns: auto auto; align-items: center; gap: var(--space-md); }
.zth-brand { width: max-content; display: inline-flex; align-items: center; gap: var(--space-sm); color: var(--color-on-dark); text-decoration: none; white-space: nowrap; }
.zth-brand > span:last-child { display: grid; line-height: 1; }
.zth-brand strong { font-size: var(--text-xl); }
.zth-brand small { margin-block-start: var(--space-2xs); color: var(--color-on-dark-muted); font-size: var(--text-xs); letter-spacing: .08em; }
.zth-brand__mark { width: 2rem; display: grid; gap: var(--space-2xs); transform: skewY(-6deg); }
.zth-brand__mark i { height: .34rem; display: block; background: var(--color-on-dark); }
.zth-brand__mark i:nth-child(2) { width: 70%; margin-inline-start: auto; background: var(--color-accent); }
.zth-menu-toggle { justify-self: end; min-width: 44px; padding: var(--space-xs) var(--space-sm); border: var(--rule-hair) solid var(--color-accent); background: transparent; color: var(--color-on-dark); font-weight: 700; cursor: pointer; }
.zth-nav { display: none; grid-column: 1 / -1; border-top: var(--rule-hair) solid var(--color-rule-dark); }
.zth-nav.is-open { display: grid; }
.zth-nav a { min-height: 44px; display: flex; align-items: center; border-bottom: var(--rule-hair) solid var(--color-rule-dark); color: var(--color-on-dark-muted); font-weight: 700; text-decoration: none; white-space: nowrap; }
.zth-nav__company { color: var(--color-accent) !important; }

.zth-main { min-height: 60svh; background: var(--color-paper); }
.zth-page-head, .zth-article__head { padding-block: var(--space-2xl) var(--space-3xl); border-bottom: var(--rule-heavy) solid var(--color-rule-dark); }
.zth-page-head h1, .zth-not-found h1 { max-width: 15ch; font-size: var(--text-display); line-height: 1.05; letter-spacing: -.04em; }
.zth-article__head .zth-shell { width: min(calc(100% - clamp(2rem, 8vw, 8rem)), 72rem); }
.zth-article__head h1 { max-width: 18ch; font-size: clamp(3rem, 4.3vw, 5.25rem); line-height: 1.08; letter-spacing: -.035em; text-wrap: balance; }
.zth-label { margin: 0 0 var(--space-md); color: var(--color-accent-dark); font-size: var(--text-xs); font-weight: 700; letter-spacing: .08em; }
.zth-page-desc, .zth-article__lead { max-width: 62ch; margin-block-start: var(--space-lg); color: var(--color-ink-2); font-size: var(--text-lg); }
.zth-content { padding-block: var(--space-2xl) var(--space-3xl); }
.zth-article .zth-content { width: min(calc(100% - clamp(2rem, 8vw, 8rem)), 72rem); }
.zth-prose { width: min(100%, 68ch); margin-inline: auto; font-size: 1.0625rem; line-height: 1.9; }
.zth-prose > * + * { margin-block-start: var(--space-lg); }
.zth-prose h2 { margin-block-start: var(--space-2xl); font-size: var(--text-2xl); }
.zth-prose h3 { margin-block-start: var(--space-xl); font-size: var(--text-xl); }
.zth-prose a { color: var(--color-accent-dark); text-decoration-thickness: var(--rule-hair); text-underline-offset: .2em; }
.zth-prose blockquote { margin-inline: 0; padding: var(--space-lg); border-inline-start: var(--rule-heavy) solid var(--color-accent); background: var(--color-paper-2); }
.zth-prose pre { max-width: 100%; overflow: auto; padding: var(--space-lg); background: var(--color-ink); color: var(--color-on-dark); }
.zth-featured { margin-block: var(--space-2xl) 0; }
.zth-featured img { width: 100%; height: auto; border: var(--rule-hair) solid var(--color-rule-dark); }

.zth-index { padding-block: var(--space-xl) var(--space-3xl); }
.zth-index__row { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: var(--space-lg); padding-block: var(--space-xl); border-bottom: var(--rule-hair) solid var(--color-rule); }
.zth-index__row > span { color: var(--color-accent-dark); font-variant-numeric: tabular-nums; }
.zth-index__row h2 { font-size: var(--text-xl); }
.zth-index__row h2 a { text-decoration: none; }
.zth-index__row p:last-child { max-width: 62ch; margin-block-start: var(--space-xs); color: var(--color-muted); }
.zth-index__arrow { min-width: 44px; min-height: 44px; display: grid; place-items: center; color: var(--color-accent-dark); text-decoration: none; }

.zth-not-found { display: grid; align-items: center; padding-block: var(--space-3xl); }
.zth-not-found p:not(.zth-label) { max-width: 55ch; margin-block: var(--space-lg); color: var(--color-ink-2); }
.zth-button { min-height: 48px; width: max-content; display: inline-flex; align-items: center; padding: var(--space-sm) var(--space-lg); border: var(--rule-heavy) solid var(--color-ink); background: var(--color-ink); color: var(--color-on-dark); font-weight: 700; text-decoration: none; white-space: nowrap; }

.zth-footer { border-top: var(--rule-heavy) solid var(--color-accent); background: var(--color-ink); color: var(--color-on-dark); }
.zth-footer__grid { display: grid; gap: var(--space-2xl); padding-block: var(--space-3xl) var(--space-xl); }
.zth-footer__statement { max-width: 30ch; margin: 0; font-family: var(--font-display); font-size: clamp(2rem, 5vw, 4.5rem); font-weight: 700; line-height: 1.05; letter-spacing: -.04em; }
.zth-footer__nav, .zth-footer__meta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-md); }
.zth-footer a { color: var(--color-on-dark-muted); white-space: nowrap; }
.zth-footer__meta { grid-column: 1 / -1; padding-block-start: var(--space-lg); border-top: var(--rule-hair) solid var(--color-rule-dark); color: var(--color-on-dark-muted); font-size: var(--text-sm); }

@media (hover: hover) and (pointer: fine) {
	.zth-nav a:hover, .zth-footer a:hover { color: var(--color-accent); }
	.zth-index__row:hover { background: var(--color-accent-soft); }
}

@media (min-width: 60rem) {
	.zth-header__row { grid-template-columns: auto minmax(0, 1fr); }
	.zth-menu-toggle { display: none; }
	.zth-nav { display: flex; grid-column: auto; justify-content: flex-end; align-items: center; gap: var(--space-xl); border: 0; }
	.zth-nav a { border: 0; }
	.zth-footer__grid { grid-template-columns: minmax(0, 1fr) auto; align-items: end; }
}

@media (max-width: 48rem) {
	body.admin-bar .zth-header { top: 46px; }
	.zth-shell { width: min(calc(100% - 2rem), 84rem); }
	.zth-page-head, .zth-article__head { padding-block: var(--space-2xl); }
	.zth-article__head .zth-shell, .zth-article .zth-content { width: min(calc(100% - 2rem), 84rem); }
	.zth-article__head h1 { max-width: none; font-size: clamp(2.15rem, 11vw, 3.2rem); line-height: 1.08; }
	.zth-index__row { grid-template-columns: auto minmax(0, 1fr); }
	.zth-index__arrow { grid-column: 2; justify-self: start; }
}
