/*
 * Atomic utility classes.
 */

.cz-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

/* Text */
.cz-text-center { text-align: center; }
.cz-text-start  { text-align: start; }
.cz-text-end    { text-align: end; }
.cz-text-muted  { color: var(--cz-muted); }
.cz-text-red    { color: var(--cz-red); }
.cz-text-ink    { color: var(--cz-ink); }
.cz-text-sm     { font-size: var(--cz-fs-sm); }
.cz-text-xs     { font-size: var(--cz-fs-xs); }
.cz-text-lg     { font-size: var(--cz-fs-lg); }
.cz-text-bold   { font-weight: var(--cz-fw-bold); }
.cz-text-medium { font-weight: var(--cz-fw-medium); }

/* Display */
.cz-hidden    { display: none !important; }
.cz-block     { display: block; }
.cz-inline    { display: inline; }
.cz-inline-block { display: inline-block; }
.cz-flex      { display: flex; }
.cz-inline-flex { display: inline-flex; }
.cz-grid      { display: grid; }

.cz-items-center  { align-items: center; }
.cz-items-start   { align-items: flex-start; }
.cz-items-end     { align-items: flex-end; }
.cz-justify-center  { justify-content: center; }
.cz-justify-between { justify-content: space-between; }
.cz-justify-end     { justify-content: flex-end; }
.cz-flex-wrap    { flex-wrap: wrap; }
.cz-flex-col     { flex-direction: column; }
.cz-flex-1       { flex: 1; }
.cz-gap-1 { gap: var(--cz-sp-1); }
.cz-gap-2 { gap: var(--cz-sp-2); }
.cz-gap-3 { gap: var(--cz-sp-3); }
.cz-gap-4 { gap: var(--cz-sp-4); }
.cz-gap-5 { gap: var(--cz-sp-5); }
.cz-gap-6 { gap: var(--cz-sp-6); }

/* Spacing */
.cz-m-0 { margin: 0; }
.cz-mt-1 { margin-block-start: var(--cz-sp-1); }
.cz-mt-2 { margin-block-start: var(--cz-sp-2); }
.cz-mt-3 { margin-block-start: var(--cz-sp-3); }
.cz-mt-4 { margin-block-start: var(--cz-sp-4); }
.cz-mt-6 { margin-block-start: var(--cz-sp-6); }
.cz-mt-8 { margin-block-start: var(--cz-sp-8); }
.cz-mb-1 { margin-block-end: var(--cz-sp-1); }
.cz-mb-2 { margin-block-end: var(--cz-sp-2); }
.cz-mb-3 { margin-block-end: var(--cz-sp-3); }
.cz-mb-4 { margin-block-end: var(--cz-sp-4); }
.cz-mb-6 { margin-block-end: var(--cz-sp-6); }
.cz-mb-8 { margin-block-end: var(--cz-sp-8); }
.cz-p-0 { padding: 0; }
.cz-p-2 { padding: var(--cz-sp-2); }
.cz-p-3 { padding: var(--cz-sp-3); }
.cz-p-4 { padding: var(--cz-sp-4); }
.cz-p-6 { padding: var(--cz-sp-6); }

/* Width / Height */
.cz-w-full { width: 100%; }
.cz-h-full { height: 100%; }

/* Position */
.cz-relative { position: relative; }
.cz-absolute { position: absolute; }
.cz-sticky   { position: sticky; }

/* Border radius */
.cz-rounded    { border-radius: var(--cz-radius-md); }
.cz-rounded-lg { border-radius: var(--cz-radius-lg); }
.cz-rounded-pill { border-radius: var(--cz-radius-pill); }

/* Shadow */
.cz-shadow-sm { box-shadow: var(--cz-shadow-sm); }
.cz-shadow-md { box-shadow: var(--cz-shadow-md); }
.cz-shadow-lg { box-shadow: var(--cz-shadow-lg); }

/* Responsive helpers */
@media (max-width: 768px) {
	.cz-hidden-mobile { display: none !important; }
}
@media (min-width: 769px) {
	.cz-hidden-desktop { display: none !important; }
}
