/*
Theme Name: Interfyre
Theme URI: https://interfyre.com
Author: Interfyre
Author URI: https://interfyre.com
Description: A block theme built as a publish target for the Interfyre AI builder. Layout is composed from a fixed library of registered block patterns rather than hand-written markup, so an agent picks a pattern and fills its content instead of authoring HTML. See README.md for the pattern contract.
Requires at least: 6.6
Tested up to: 6.8
Requires PHP: 8.1
Version: 0.1.2
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: interfyre
Tags: block-patterns, full-site-editing, blog, business, one-column, wide-blocks, block-styles
*/

/*
 * Nearly everything lives in theme.json. Only rules that theme.json genuinely cannot
 * express belong here, and each one should say why it is not a token.
 */

/* theme.json has no control for the eyebrow treatment used across patterns: a small
   uppercase label above a heading. Registered as a block style rather than baked into
   patterns so it can be removed from a single place. */
.is-style-eyebrow {
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent);
}

/* Constrains running prose to a comfortable measure. theme.json's contentSize is a
   layout-wide value, so a per-block opt-in needs its own class. */
.is-style-measured {
	max-width: var(--wp--custom--measure--prose);
}

/* Balanced headline wrapping. No theme.json equivalent for text-wrap. */
h1, h2, h3,
.wp-block-post-title {
	text-wrap: balance;
}

p {
	text-wrap: pretty;
}

/* Cards used by the feature, pricing, and team patterns. Expressed as a block style so
   the agent applies it by name and never by inline styling. */
.is-style-card {
	background-color: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--wp--custom--radius--medium);
	padding: var(--wp--preset--spacing--40);
}

.is-style-card-surface {
	background-color: var(--wp--preset--color--surface);
	border-radius: var(--wp--custom--radius--medium);
	padding: var(--wp--preset--spacing--40);
}

/* The FAQ pattern uses core/details. theme.json cannot reach the summary marker or the
   open state, both of which need real selectors. */
.wp-block-details {
	border-bottom: 1px solid var(--wp--preset--color--line);
	padding-block: var(--wp--preset--spacing--30);
}

.wp-block-details summary {
	cursor: pointer;
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 600;
	list-style: none;
}

.wp-block-details summary::-webkit-details-marker {
	display: none;
}

.wp-block-details summary::after {
	content: "+";
	float: right;
	font-weight: 400;
	color: var(--wp--preset--color--muted);
}

.wp-block-details[open] summary::after {
	content: "\2013";
}

/* Visible keyboard focus everywhere, not only on buttons where theme.json sets it. */
:where(a, button, summary, input, textarea, select):focus-visible {
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: 2px;
}

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