/**
 * Rajgir Parent Theme
 *
 * Design System — Spacing Tokens
 *
 * Canonical path:
 * assets/css/tokens/spacing.css
 *
 * Responsibility:
 * - Centralized spacing tokens.
 * - Component internal spacing.
 * - Component-to-component spacing.
 * - Section spacing.
 * - Layout spacing.
 * - Page-level spacing.
 *
 * This file does NOT:
 * - style components;
 * - define page-specific spacing;
 * - define responsive breakpoints;
 * - contain layout rules;
 * - contain business logic;
 * - introduce arbitrary repeated spacing values.
 *
 * @package Rajgir
 */

:root {

	/* ==============================================================
	   BASE SPACING SCALE
	   ============================================================== */

	/*
	 * The approved source defines the conceptual scale:
	 *
	 * XS → SM → MD → LG → XL → 2XL
	 *
	 * Exact numerical values are intentionally not invented here.
	 *
	 * The custom properties below are therefore designed as the
	 * centralized contract points for the approved Design System.
	 */


	--rajgir-space-xs:
		var(--wp--preset--spacing--xs, initial);

	--rajgir-space-sm:
		var(--wp--preset--spacing--sm, initial);

	--rajgir-space-md:
		var(--wp--preset--spacing--md, initial);

	--rajgir-space-lg:
		var(--wp--preset--spacing--lg, initial);

	--rajgir-space-xl:
		var(--wp--preset--spacing--xl, initial);

	--rajgir-space-2xl:
		var(--wp--preset--spacing--2xl, initial);


	/* ==============================================================
	   SEMANTIC SPACING ROLES
	   ============================================================== */

	/*
	 * These semantic aliases prevent components from inventing
	 * their own spacing vocabulary.
	 */


	--rajgir-space-component-internal:
		var(--rajgir-space-md);

	--rajgir-space-component-gap:
		var(--rajgir-space-sm);

	--rajgir-space-section-gap:
		var(--rajgir-space-xl);

	--rajgir-space-layout-gap:
		var(--rajgir-space-lg);

	--rajgir-space-page:
		var(--rajgir-space-2xl);


	/* ==============================================================
	   COMPONENT MICRO-SPACING
	   ============================================================== */

	--rajgir-space-icon-gap:
		var(--rajgir-space-xs);

	--rajgir-space-label-gap:
		var(--rajgir-space-xs);

	--rajgir-space-content-gap:
		var(--rajgir-space-sm);


	/* ==============================================================
	   CARD / CONTAINER INTERNAL SPACING
	   ============================================================== */

	--rajgir-space-card-padding:
		var(--rajgir-space-md);

	--rajgir-space-card-content-gap:
		var(--rajgir-space-sm);


	/* ==============================================================
	   SECTION SPACING
	   ============================================================== */

	--rajgir-space-section-padding:
		var(--rajgir-space-lg);

	--rajgir-space-section-content-gap:
		var(--rajgir-space-md);


	/* ==============================================================
	   LAYOUT SPACING
	   ============================================================== */

	--rajgir-space-layout-padding:
		var(--rajgir-space-lg);

	--rajgir-space-layout-content-gap:
		var(--rajgir-space-lg);

	--rajgir-space-grid-gap:
		var(--rajgir-space-md);


	/* ==============================================================
	   PAGE SPACING
	   ============================================================== */

	--rajgir-space-page-padding:
		var(--rajgir-space-xl);

	--rajgir-space-page-section-gap:
		var(--rajgir-space-xl);


	/* ==============================================================
	   ZERO
	   ============================================================== */

	--rajgir-space-none:
		0;

}


/* ================================================================
   SPACING GOVERNANCE
   ================================================================ */

/*
 * Preferred:
 *
 * padding:
 *     var(--rajgir-space-md);
 *
 * gap:
 *     var(--rajgir-space-sm);
 *
 * margin-block-start:
 *     var(--rajgir-space-section-gap);
 *
 *
 * Avoid repeated arbitrary values such as:
 *
 * padding: 13px;
 * margin: 27px;
 * gap: 19px;
 *
 * when an approved spacing token is available.
 */


/* ================================================================
   TOKEN HIERARCHY
   ================================================================ */

/*
 *
 * ELEMENT
 *    ↓
 * COMPONENT
 *    ↓
 * SECTION
 *    ↓
 * LAYOUT
 *    ↓
 * PAGE
 *
 *
 * Internal and external spacing are intentionally separated.
 */


/* ================================================================
   INTERNAL SPACING
   ================================================================ */

/*
 * Component internals should primarily consume:
 *
 * --rajgir-space-component-internal
 * --rajgir-space-component-gap
 * --rajgir-space-content-gap
 * --rajgir-space-icon-gap
 * --rajgir-space-label-gap
 */


/* ================================================================
   EXTERNAL SPACING
   ================================================================ */

/*
 * Component / section relationships should primarily consume:
 *
 * --rajgir-space-section-gap
 * --rajgir-space-layout-gap
 * --rajgir-space-page-section-gap
 */


/* ================================================================
   DESIGN SYSTEM BOUNDARY
   ================================================================ */

/*
 * Exact numerical spacing values must come from the approved
 * Rajgir Design System / Typography-UI-UX authority.
 *
 * This file must not become a place for developer preference.
 *
 * No new spacing token should be introduced merely to avoid using
 * an existing approved token.
 */