/* GENERATED by design-system/build.mjs — do not edit.
 * Default element + form-control states (buttons, links, inputs), consuming the
 * scheme roles (--ftm-scheme-*) + design tokens. Enqueued front + editor. */

:root {
	/* single source for state tuning */
	--ftm-state-hover-mix: 14%;
	--ftm-state-active-mix: 24%;
	--ftm-focus-ring: 0 0 0 3px color-mix(in srgb, var(--ftm-scheme-accent) 45%, transparent);
	--ftm-disabled-opacity: 0.55;
	--ftm-ease: var(--wp--custom--easing--standard, ease);
	--ftm-dur: var(--wp--custom--duration--fast, 120ms);
}

/* ---------------------------------------------------------------- Buttons */
.wp-element-button,
.wp-block-button__link {
	background-color: var(--ftm-scheme-accent);
	color: var(--ftm-scheme-accent-text);
	border: var(--wp--custom--border-width--hairline) solid transparent;
	border-radius: var(--wp--custom--radius--md);
	transition: background-color var(--ftm-dur) var(--ftm-ease),
		color var(--ftm-dur) var(--ftm-ease),
		box-shadow var(--ftm-dur) var(--ftm-ease),
		transform var(--ftm-dur) var(--ftm-ease);
}
.wp-element-button:hover,
.wp-block-button__link:hover {
	background-color: color-mix(in srgb, var(--ftm-scheme-accent), #000 var(--ftm-state-hover-mix));
	color: var(--ftm-scheme-accent-text);
}
.wp-element-button:focus-visible,
.wp-block-button__link:focus-visible {
	outline: none;
	box-shadow: var(--ftm-focus-ring);
}
.wp-element-button:active,
.wp-block-button__link:active {
	background-color: color-mix(in srgb, var(--ftm-scheme-accent), #000 var(--ftm-state-active-mix));
	transform: translateY(1px);
}
.wp-element-button:disabled,
.wp-element-button[aria-disabled="true"],
.wp-block-button__link:disabled,
.wp-block-button__link[aria-disabled="true"] {
	opacity: var(--ftm-disabled-opacity);
	cursor: not-allowed;
	transform: none;
}

/* Outline button style variant */
.wp-block-button.is-style-outline .wp-block-button__link {
	background-color: transparent;
	color: var(--ftm-scheme-accent);
	border-color: var(--ftm-scheme-accent);
}
.wp-block-button.is-style-outline .wp-block-button__link:hover {
	background-color: var(--ftm-scheme-accent);
	color: var(--ftm-scheme-accent-text);
}

/* Button style variations (registered via register_block_style → .is-style-ftm-*) */

/* Pill — fill with a full radius */
.wp-block-button.is-style-ftm-pill .wp-block-button__link {
	border-radius: var(--wp--custom--radius--pill);
}

/* Ghost — transparent, accent text, faint hover wash */
.wp-block-button.is-style-ftm-ghost .wp-block-button__link {
	background-color: transparent;
	color: var(--ftm-scheme-accent);
	border-color: transparent;
}
.wp-block-button.is-style-ftm-ghost .wp-block-button__link:hover {
	background-color: color-mix(in srgb, var(--ftm-scheme-accent), transparent 88%);
	color: var(--ftm-scheme-accent);
}

/* Subtle — accent-tinted surface, accent text */
.wp-block-button.is-style-ftm-subtle .wp-block-button__link {
	background-color: color-mix(in srgb, var(--ftm-scheme-accent), var(--ftm-scheme-bg) 85%);
	color: var(--ftm-scheme-accent);
}
.wp-block-button.is-style-ftm-subtle .wp-block-button__link:hover {
	background-color: color-mix(in srgb, var(--ftm-scheme-accent), var(--ftm-scheme-bg) 75%);
	color: var(--ftm-scheme-accent);
}

/* Elevated — fill with a shadow */
.wp-block-button.is-style-ftm-elevated .wp-block-button__link {
	box-shadow: var(--wp--preset--shadow--md);
}
.wp-block-button.is-style-ftm-elevated .wp-block-button__link:hover {
	box-shadow: var(--wp--preset--shadow--lg);
	transform: translateY(-1px);
}

/* Secondary — neutral surface for the lower-emphasis action in a pair */
.wp-block-button.is-style-ftm-secondary .wp-block-button__link {
	background-color: var(--wp--custom--color--neutral--100, #f8f8f8);
	color: var(--ftm-scheme-heading);
	border-color: var(--ftm-scheme-border);
}
.wp-block-button.is-style-ftm-secondary .wp-block-button__link:hover {
	background-color: color-mix(in srgb, var(--wp--custom--color--neutral--100, #f8f8f8), #000 6%);
	color: var(--ftm-scheme-heading);
}

/* ------------------------------------------------------------------ Links */
.ftps-page-section-inner a:where(:not(.wp-element-button):not(.wp-block-button__link)),
.entry-content a:where(:not(.wp-element-button):not(.wp-block-button__link)) {
	color: var(--ftm-scheme-link);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.15em;
	transition: color var(--ftm-dur) var(--ftm-ease);
}
.ftps-page-section-inner a:where(:not(.wp-element-button):not(.wp-block-button__link)):hover,
.entry-content a:where(:not(.wp-element-button):not(.wp-block-button__link)):hover {
	color: color-mix(in srgb, var(--ftm-scheme-link), #000 var(--ftm-state-hover-mix));
	text-decoration-thickness: 2px;
}
.ftps-page-section-inner a:where(:not(.wp-element-button):not(.wp-block-button__link)):focus-visible,
.entry-content a:where(:not(.wp-element-button):not(.wp-block-button__link)):focus-visible {
	outline: none;
	border-radius: var(--wp--custom--radius--sm);
	box-shadow: var(--ftm-focus-ring);
}

/* ---------------------------------------------------------- Form controls */
input:where([type="text"], [type="email"], [type="url"], [type="search"], [type="tel"], [type="number"], [type="password"], [type="date"]),
textarea,
select {
	background-color: var(--ftm-scheme-bg);
	color: var(--ftm-scheme-text);
	border: var(--wp--custom--border-width--hairline) solid var(--ftm-scheme-border);
	border-radius: var(--wp--custom--radius--sm);
	padding: 0.5em 0.75em;
	transition: border-color var(--ftm-dur) var(--ftm-ease),
		box-shadow var(--ftm-dur) var(--ftm-ease);
}
input:where([type="text"], [type="email"], [type="url"], [type="search"], [type="tel"], [type="number"], [type="password"], [type="date"]):focus-visible,
textarea:focus-visible,
select:focus-visible {
	outline: none;
	border-color: var(--ftm-scheme-accent);
	box-shadow: var(--ftm-focus-ring);
}
input::placeholder,
textarea::placeholder {
	color: var(--ftm-scheme-muted);
	opacity: 1;
}
input:disabled,
textarea:disabled,
select:disabled {
	opacity: var(--ftm-disabled-opacity);
	cursor: not-allowed;
}
input[type="checkbox"],
input[type="radio"] {
	accent-color: var(--ftm-scheme-accent);
}
