/*
Theme Name: Nirmal
Theme URI: https://www.nirmal.com.au/
Author: Nirmal Gyanwali
Author URI: https://www.nirmal.com.au/
Description: Custom block theme for nirmal.com.au in the approved 2026 design. Built to the agentic site standard: semantic, accessible, fast, translation-ready. Design tokens live in theme.json.
Version: 0.3.0
Requires at least: 6.9
Tested up to: 7.1
Requires PHP: 8.0
Text Domain: nirmal
License: Proprietary
*/

/*
 * Global rules that theme.json cannot express. Keep this file small:
 * component styles live with their blocks in src/blocks/.
 */

/* Visible focus on every interactive element (AGT-2.x, WCAG 2.2). */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: var(--wp--custom--focus--width) solid var(--wp--preset--color--eggshell);
	outline-offset: var(--wp--custom--focus--offset);
}

/* On light bands the eggshell ring is 1.6:1; Midnight is 16:1 (2026-10-22, IR-009). */
:where(.bg-white, .bg-paper, .bg-egg, .bg-eggshell, .bg-cream, .nirmal-testimonial) :where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline-color: #0E132E;
}

/* Rank Math HTML sitemap: links on white need the accessible orange (5.7:1), not brand orange (2.1:1). */
.rank-math-html-sitemap a { color: #A34F00; }

/* Minimum touch target for buttons. */
.wp-element-button,
.wp-block-button__link {
	min-height: var(--wp--custom--touch-target);
}

/* Mobile menu open and close buttons: core draws them 24px square; give them the full touch target. */
.wp-block-navigation__responsive-container-open,
.wp-block-navigation__responsive-container-close {
	align-items: center;
	justify-content: center;
	min-height: var(--wp--custom--touch-target);
	min-width: var(--wp--custom--touch-target);
}

/* Pagination numbers are small text links: give each one a full touch target (WCAG 2.5.8). */
.wp-block-query-pagination-numbers .page-numbers,
.wp-block-query-pagination > a {
	align-items: center;
	display: inline-flex;
	justify-content: center;
	min-height: var(--wp--custom--touch-target);
	min-width: var(--wp--custom--touch-target);
}

/* Motion: opacity and transform only, and never for users who opt out. */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
	}
}

/* Header wordmark: the name as text, never an image (layout system C01). */
.nirmal-header__mark {
	font-size: 21px;
	line-height: 1.2;
	margin: 0;
	white-space: nowrap;
}

.nirmal-header__mark a {
	color: var(--wp--preset--color--white);
	text-decoration: none;
}
