/*!
 * AI Executive Core — shared component CSS.
 * Loads on every platform. Only rules that are correct on every child
 * belong here: primitives and the conversion component skeletons.
 * Platform look (colors beyond the token slugs, radii, shadows,
 * hero and section treatments) lives in each child stylesheet.
 */

/* ============================================================
   A11Y — GLOBAL FOUNDATIONS
   ============================================================ */

/* Offset anchor scrolls past a sticky masthead */
html {
	scroll-padding-top: 90px;
}

/* Visually-hidden utility */
.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-to-content link */
.skip-link {
	position: absolute;
	top: -48px;
	left: 0;
	z-index: 100;
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
	padding: 12px 20px;
	font-size: 13px;
	font-weight: 600;
	text-decoration: none;
	border-radius: 0 0 4px 0;
	transition: top 160ms ease-out;
}
.skip-link:focus {
	top: 0;
	clip: auto;
	clip-path: none;
	height: auto;
	width: auto;
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: -2px;
}

/* Global keyboard focus */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: 3px;
	border-radius: 2px;
}

/* ============================================================
   PRIMITIVES — shared block patterns + style variations
   ============================================================ */

/* Mono meta line — labels, price lines, consent notes.
   Class: .is-style-text-mono */
.is-style-text-mono {
	font-family: var(--wp--preset--font-family--mono);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	font-weight: 500;
}

/* Subtitle under a section heading. Class: .is-style-text-subtitle */
.is-style-text-subtitle {
	color: var(--wp--preset--color--meta);
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.5;
	max-width: 58ch;
}
.is-style-text-subtitle strong {
	color: var(--wp--preset--color--contrast);
	font-weight: 600;
}

/* Lede paragraph. Class: .is-style-lede */
.is-style-lede {
	font-size: clamp(18px, 1.4vw, 21px);
	line-height: 1.55;
	color: var(--wp--preset--color--meta);
	max-width: 62ch;
}
.is-style-lede strong {
	color: var(--wp--preset--color--contrast);
	font-weight: 500;
}

/* Kicker — small uppercase accent label with optional leading rule.
   Pattern: aiexec-core/kicker. Class: .is-style-kicker */
.is-style-kicker {
	display: inline-flex;
	align-items: center;
	gap: 12px;
}
.is-style-kicker__rule {
	display: inline-block;
	width: 32px;
	height: 1px;
	background: currentColor;
	opacity: 0.55;
}

/* Hairline separator — 1px rule, no shadow, no bulk.
   Pattern: aiexec-core/hairline. Class: .is-style-hairline */
.wp-block-separator.is-style-hairline {
	border: 0;
	height: 1px;
	opacity: 1;
	max-width: none;
	width: 100%;
	background: var(--wp--preset--color--rule);
}

/* Through-line callout — accent-left-border display set-piece.
   Pattern: aiexec-core/throughline. Class: .is-style-throughline */
.is-style-throughline {
	max-width: 64ch;
}
.is-style-throughline__label {
	display: inline-flex;
	align-items: center;
	margin-bottom: 8px;
}
.is-style-throughline__body {
	font-family: var(--wp--preset--font-family--display);
	color: var(--wp--preset--color--contrast);
	margin: 0;
}
.is-style-throughline__body em {
	color: var(--wp--preset--color--accent);
	font-weight: 500;
}

/* Section header — flex row: small uppercase label left, "view all" right.
   Pattern: aiexec-core/section-header. Class: .is-style-section-header */
.is-style-section-header {
	border-top: 1px solid var(--wp--preset--color--rule);
	padding-top: 16px;
	margin-bottom: 24px;
}
.is-style-section-header__label {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	margin: 0;
}
.is-style-section-header__rule {
	display: inline-block;
	width: 32px;
	height: 1px;
	background: var(--wp--preset--color--accent);
	opacity: 0.55;
}
.is-style-section-header__all { margin: 0; }
.is-style-section-header__all a {
	color: inherit;
	text-decoration: none;
	position: relative;
	padding-bottom: 2px;
	transition: color 160ms ease;
}
.is-style-section-header__all a::after {
	content: "";
	position: absolute;
	left: 0; right: 100%;
	bottom: 0;
	height: 1px;
	background: currentColor;
	transition: right 260ms cubic-bezier(.2,.8,.2,1);
}
.is-style-section-header__all a:hover { color: var(--wp--preset--color--contrast); }
.is-style-section-header__all a:hover::after { right: 0; }

/* Accent rule for display/section headings — <em> renders in accent color */
.is-style-display em,
.is-style-section em,
.is-style-list em {
	font-style: italic;
	color: var(--wp--preset--color--accent);
	font-weight: 500;
}

/* Empty state text for Query Loops with no posts */
.aiexec-empty {
	margin: 0;
	font-family: var(--wp--preset--font-family--mono);
	font-size: 12px;
	letter-spacing: 0.04em;
	color: var(--wp--preset--color--meta);
}

/* ============================================================
   REDUCED MOTION
   ============================================================ */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		transition: none !important;
		animation: none !important;
	}
}
