/*
Theme Name: ACL Trace
Theme URI: https://ashcreativelabs.com/acl-trace
Author: Ashe Creative Labs
Author URI: https://ashcreativelabs.com
Description: A performance-first WordPress block theme for communities, blogs, and stores. Lightweight, accessible, and built entirely on Full Site Editing with zero render-blocking resources.
Requires at least: 6.9
Tested up to: 6.9
Requires PHP: 8.0
Version: 2.0.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: acl-trace
Tags: full-site-editing, block-patterns, wide-blocks, one-column, custom-colors, custom-logo, custom-menu, editor-style, translation-ready, blog, e-commerce

ACL Trace WordPress Theme, (C) 2026 Ashe Creative Labs
ACL Trace is distributed under the terms of the GNU GPL v2 or later.
*/

/*
 * ============================================================
 * ACL Trace — Performance-first supplemental styles.
 *
 * Most styling is handled via theme.json. This file provides
 * only what theme.json cannot express: transitions, animations,
 * print styles, and a few utility classes.
 * ============================================================
 */

/* --- Smooth transitions for interactive elements --- */
a,
button,
input,
.wp-block-button__link,
.wp-block-navigation-item__content {
	transition: color var(--wp--custom--transition--fast),
	            background-color var(--wp--custom--transition--fast),
	            border-color var(--wp--custom--transition--fast),
	            box-shadow var(--wp--custom--transition--fast);
}

/* --- Skip link for accessibility --- */
.skip-link {
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	width: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	word-wrap: normal;
	z-index: 100000;
}

.skip-link:focus {
	clip: auto;
	clip-path: none;
	display: block;
	height: auto;
	width: auto;
	padding: 1rem 1.5rem;
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--primary);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	text-decoration: none;
	box-shadow: var(--wp--preset--shadow--md);
	border-radius: 0 0 0.5rem 0;
	left: 0;
	top: 0;
	z-index: 100000;
}

/* --- Focus-visible for keyboard-only focus rings --- */
*:focus-visible {
	outline: 2px solid var(--wp--preset--color--primary);
	outline-offset: 2px;
}

*:focus:not(:focus-visible) {
	outline: none;
}

/* --- Featured image aspect ratios --- */
.wp-block-post-featured-image img {
	aspect-ratio: 16 / 9;
	object-fit: cover;
	width: 100%;
	height: auto;
}

/* --- Card pattern helper --- */
.is-style-acl-card {
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 0.75rem;
	padding: var(--wp--preset--spacing--50);
	box-shadow: var(--wp--preset--shadow--sm);
	transition: box-shadow var(--wp--custom--transition--normal),
	            border-color var(--wp--custom--transition--normal);
}

.is-style-acl-card:hover {
	box-shadow: var(--wp--preset--shadow--md);
	border-color: var(--wp--preset--color--border-strong);
}

/* --- Reduce motion for users who prefer it --- */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
	}
}

/* --- Print styles --- */
@media print {
	body {
		background: #fff !important;
		color: #000 !important;
		font-size: 12pt;
	}

	a[href]::after {
		content: " (" attr(href) ")";
		font-size: 0.8em;
		font-weight: normal;
	}

	.wp-block-navigation,
	.wp-block-search,
	.wp-block-query-pagination,
	footer {
		display: none !important;
	}

	img {
		max-width: 100% !important;
		page-break-inside: avoid;
	}

	h1, h2, h3, h4 {
		page-break-after: avoid;
	}
}
