/**
 * PCRN Theme - Utility Classes
 */

/* Flexbox Utilities */
.pcrn-flex { display: flex; }
.pcrn-flex-col { display: flex; flex-direction: column; }
.pcrn-items-center { align-items: center; }
.pcrn-items-start { align-items: flex-start; }
.pcrn-items-end { align-items: flex-end; }
.pcrn-justify-between { justify-content: space-between; }
.pcrn-justify-center { justify-content: center; }
.pcrn-justify-end { justify-content: flex-end; }
.pcrn-flex-wrap { flex-wrap: wrap; }

/* Grid Utilities */
.pcrn-grid { display: grid; }
.pcrn-grid-1 { grid-template-columns: repeat(1, 1fr); }
.pcrn-grid-2 { grid-template-columns: repeat(2, 1fr); }
.pcrn-grid-3 { grid-template-columns: repeat(3, 1fr); }
.pcrn-grid-4 { grid-template-columns: repeat(4, 1fr); }

.pcrn-gap-sm { gap: var(--pcrn-space-sm); }
.pcrn-gap-md { gap: var(--pcrn-space-md); }
.pcrn-gap-lg { gap: var(--pcrn-space-lg); }
.pcrn-gap-xl { gap: var(--pcrn-space-xl); }
.pcrn-gap-2xl { gap: var(--pcrn-space-2xl); }

/* Text Utilities */
.pcrn-text-center { text-align: center; }
.pcrn-text-left { text-align: left; }
.pcrn-text-right { text-align: right; }

.pcrn-text-uppercase { text-transform: uppercase; letter-spacing: 0.1em; }
.pcrn-font-heading { font-family: var(--pcrn-font-heading); }
.pcrn-font-body { font-family: var(--pcrn-font-body); }

.pcrn-color-gold { color: var(--pcrn-gold); }
.pcrn-color-red { color: var(--pcrn-red); }
.pcrn-color-muted { color: var(--pcrn-mid-gray); }

/* Background Colors */
.pcrn-bg-cream { background-color: var(--pcrn-cream); }
.pcrn-bg-white { background-color: var(--pcrn-white); }
.pcrn-bg-gold-light { background-color: var(--pcrn-gold-bg); }
.pcrn-bg-obsidian { background-color: var(--pcrn-obsidian); color: var(--pcrn-white); }
.pcrn-bg-red { background-color: var(--pcrn-red); color: var(--pcrn-white); }

/* Spacing Utilities */
.pcrn-py-sm { padding-top: var(--pcrn-space-sm); padding-bottom: var(--pcrn-space-sm); }
.pcrn-py-md { padding-top: var(--pcrn-space-md); padding-bottom: var(--pcrn-space-md); }
.pcrn-py-lg { padding-top: var(--pcrn-space-lg); padding-bottom: var(--pcrn-space-lg); }
.pcrn-py-xl { padding-top: var(--pcrn-space-xl); padding-bottom: var(--pcrn-space-xl); }
.pcrn-py-2xl { padding-top: var(--pcrn-space-2xl); padding-bottom: var(--pcrn-space-2xl); }
.pcrn-py-3xl { padding-top: var(--pcrn-space-3xl); padding-bottom: var(--pcrn-space-3xl); }

/* Badges */
.pcrn-badge {
  display: inline-block;
  padding: 3px 8px;
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  border-radius: var(--pcrn-radius-sm);
}

.pcrn-badge-new { background-color: var(--pcrn-obsidian); color: var(--pcrn-white); }
.pcrn-badge-sale { background-color: var(--pcrn-red); color: var(--pcrn-white); }
.pcrn-badge-gold { background-color: var(--pcrn-gold); color: var(--pcrn-white); }
