/*
Theme Name: Peptogenesis
Theme URI: https://peptogenesis.com
Author: Peptogenesis
Author URI: https://peptogenesis.com
Description: Premium laboratory research block theme for Peptogenesis. Deep navy and gold design system built on theme.json with full WooCommerce compatibility.
Requires at least: 6.6
Tested up to: 7.0
Requires PHP: 8.1
Version: 4.85.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: peptogenesis
Tags: full-site-editing, block-patterns, e-commerce, accessibility-ready
*/

/**
 * Peptogenesis global styles.
 *
 * Design tokens (color, typography, spacing, layout) live in theme.json and must
 * be edited there, not here. This file is reserved for the small set of rules
 * theme.json cannot express: motion primitives and reduced-motion handling.
 *
 * Component styles (buttons, cards, badges, forms, icons) arrive in Phase 2.
 */

/*
 * Shared motion primitives.
 *
 * The Brand Guide fixes animation at 200-300ms with smooth easing and no abrupt
 * motion. Every component in Phase 2 consumes these tokens rather than declaring
 * its own timing, so animation stays consistent across the site.
 */
:root {
	--pg-duration-fast: var( --wp--custom--duration--fast, 200ms );
	--pg-duration-base: var( --wp--custom--duration--base, 250ms );
	--pg-duration-slow: var( --wp--custom--duration--slow, 300ms );
	--pg-easing: var( --wp--custom--easing--standard, cubic-bezier( 0.4, 0, 0.2, 1 ) );
}

/*
 * Accessibility: honour the operating system's reduced-motion preference.
 *
 * The Brand Guide calls for scroll and hover animation throughout. Users who ask
 * their OS to reduce motion must still get a complete, usable site, so all motion
 * collapses to near-instant rather than being removed outright (a 0s duration can
 * break scripts that listen for transitionend).
 */
@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;
	}
}

/*
 * Keyboard focus.
 *
 * Gold focus ring on every interactive element, meeting the Master Prompt's
 * keyboard-navigation requirement. Uses :focus-visible so the ring appears for
 * keyboard users without firing on mouse clicks.
 */
:where( a, button, input, select, textarea, [tabindex]:not( [tabindex="-1"] ) ):focus-visible {
	outline: 2px solid var( --wp--preset--color--gold );
	outline-offset: 2px;
	border-radius: var( --wp--custom--radius--sm );
}

/*
 * Skip link.
 *
 * Visually hidden until focused, then anchored to the top of the viewport above
 * the sticky header (Phase 3).
 */
.skip-link:focus {
	z-index: 100000;
}
