/* ===================================
    INSPIRED UTILITY CLASSES
   =================================== */

/* ===================================
   SPACING UTILITIES
   =================================== */

/* Margin utilities */
.rec-m-0 { margin: var(--bigplace-spacing-0) !important; }
.rec-m-1 { margin: var(--bigplace-spacing-1) !important; }
.rec-m-2 { margin: var(--bigplace-spacing-2) !important; }
.rec-m-3 { margin: var(--bigplace-spacing-3) !important; }
.rec-m-4 { margin: var(--bigplace-spacing-4) !important; }
.rec-m-5 { margin: var(--bigplace-spacing-5) !important; }
.rec-m-6 { margin: var(--bigplace-spacing-6) !important; }
.rec-m-8 { margin: var(--bigplace-spacing-8) !important; }
.rec-m-10 { margin: var(--bigplace-spacing-10) !important; }
.rec-m-12 { margin: var(--bigplace-spacing-12) !important; }
.rec-m-16 { margin: var(--bigplace-spacing-16) !important; }
.rec-m-20 { margin: var(--bigplace-spacing-20) !important; }

/* Margin Top */
.rec-mt-0 { margin-top: var(--bigplace-spacing-0) !important; }
.rec-mt-1 { margin-top: var(--bigplace-spacing-1) !important; }
.rec-mt-2 { margin-top: var(--bigplace-spacing-2) !important; }
.rec-mt-3 { margin-top: var(--bigplace-spacing-3) !important; }
.rec-mt-4 { margin-top: var(--bigplace-spacing-4) !important; }
.rec-mt-5 { margin-top: var(--bigplace-spacing-5) !important; }
.rec-mt-6 { margin-top: var(--bigplace-spacing-6) !important; }
.rec-mt-8 { margin-top: var(--bigplace-spacing-8) !important; }
.rec-mt-10 { margin-top: var(--bigplace-spacing-10) !important; }
.rec-mt-12 { margin-top: var(--bigplace-spacing-12) !important; }
.rec-mt-16 { margin-top: var(--bigplace-spacing-16) !important; }
.rec-mt-20 { margin-top: var(--bigplace-spacing-20) !important; }

/* Margin Bottom */
.rec-mb-0 { margin-bottom: var(--bigplace-spacing-0) !important; }
.rec-mb-1 { margin-bottom: var(--bigplace-spacing-1) !important; }
.rec-mb-2 { margin-bottom: var(--bigplace-spacing-2) !important; }
.rec-mb-3 { margin-bottom: var(--bigplace-spacing-3) !important; }
.rec-mb-4 { margin-bottom: var(--bigplace-spacing-4) !important; }
.rec-mb-5 { margin-bottom: var(--bigplace-spacing-5) !important; }
.rec-mb-6 { margin-bottom: var(--bigplace-spacing-6) !important; }
.rec-mb-8 { margin-bottom: var(--bigplace-spacing-8) !important; }
.rec-mb-10 { margin-bottom: var(--bigplace-spacing-10) !important; }
.rec-mb-12 { margin-bottom: var(--bigplace-spacing-12) !important; }
.rec-mb-16 { margin-bottom: var(--bigplace-spacing-16) !important; }
.rec-mb-20 { margin-bottom: var(--bigplace-spacing-20) !important; }

/* Margin Left */
.rec-ml-0 { margin-left: var(--bigplace-spacing-0) !important; }
.rec-ml-1 { margin-left: var(--bigplace-spacing-1) !important; }
.rec-ml-2 { margin-left: var(--bigplace-spacing-2) !important; }
.rec-ml-3 { margin-left: var(--bigplace-spacing-3) !important; }
.rec-ml-4 { margin-left: var(--bigplace-spacing-4) !important; }
.rec-ml-5 { margin-left: var(--bigplace-spacing-5) !important; }
.rec-ml-6 { margin-left: var(--bigplace-spacing-6) !important; }
.rec-ml-8 { margin-left: var(--bigplace-spacing-8) !important; }
.rec-ml-10 { margin-left: var(--bigplace-spacing-10) !important; }
.rec-ml-12 { margin-left: var(--bigplace-spacing-12) !important; }
.rec-ml-16 { margin-left: var(--bigplace-spacing-16) !important; }
.rec-ml-20 { margin-left: var(--bigplace-spacing-20) !important; }

/* Margin Right */
.rec-mr-0 { margin-right: var(--bigplace-spacing-0) !important; }
.rec-mr-1 { margin-right: var(--bigplace-spacing-1) !important; }
.rec-mr-2 { margin-right: var(--bigplace-spacing-2) !important; }
.rec-mr-3 { margin-right: var(--bigplace-spacing-3) !important; }
.rec-mr-4 { margin-right: var(--bigplace-spacing-4) !important; }
.rec-mr-5 { margin-right: var(--bigplace-spacing-5) !important; }
.rec-mr-6 { margin-right: var(--bigplace-spacing-6) !important; }
.rec-mr-8 { margin-right: var(--bigplace-spacing-8) !important; }
.rec-mr-10 { margin-right: var(--bigplace-spacing-10) !important; }
.rec-mr-12 { margin-right: var(--bigplace-spacing-12) !important; }
.rec-mr-16 { margin-right: var(--bigplace-spacing-16) !important; }
.rec-mr-20 { margin-right: var(--bigplace-spacing-20) !important; }

/* Padding utilities */
.rec-p-0 { padding: var(--bigplace-spacing-0) !important; }
.rec-p-1 { padding: var(--bigplace-spacing-1) !important; }
.rec-p-2 { padding: var(--bigplace-spacing-2) !important; }
.rec-p-3 { padding: var(--bigplace-spacing-3) !important; }
.rec-p-4 { padding: var(--bigplace-spacing-4) !important; }
.rec-p-5 { padding: var(--bigplace-spacing-5) !important; }
.rec-p-6 { padding: var(--bigplace-spacing-6) !important; }
.rec-p-8 { padding: var(--bigplace-spacing-8) !important; }
.rec-p-10 { padding: var(--bigplace-spacing-10) !important; }
.rec-p-12 { padding: var(--bigplace-spacing-12) !important; }
.rec-p-16 { padding: var(--bigplace-spacing-16) !important; }
.rec-p-20 { padding: var(--bigplace-spacing-20) !important; }

/* Padding Top */
.rec-pt-0 { padding-top: var(--bigplace-spacing-0) !important; }
.rec-pt-1 { padding-top: var(--bigplace-spacing-1) !important; }
.rec-pt-2 { padding-top: var(--bigplace-spacing-2) !important; }
.rec-pt-3 { padding-top: var(--bigplace-spacing-3) !important; }
.rec-pt-4 { padding-top: var(--bigplace-spacing-4) !important; }
.rec-pt-5 { padding-top: var(--bigplace-spacing-5) !important; }
.rec-pt-6 { padding-top: var(--bigplace-spacing-6) !important; }
.rec-pt-8 { padding-top: var(--bigplace-spacing-8) !important; }
.rec-pt-10 { padding-top: var(--bigplace-spacing-10) !important; }
.rec-pt-12 { padding-top: var(--bigplace-spacing-12) !important; }
.rec-pt-16 { padding-top: var(--bigplace-spacing-16) !important; }
.rec-pt-20 { padding-top: var(--bigplace-spacing-20) !important; }

/* Padding Bottom */
.rec-pb-0 { padding-bottom: var(--bigplace-spacing-0) !important; }
.rec-pb-1 { padding-bottom: var(--bigplace-spacing-1) !important; }
.rec-pb-2 { padding-bottom: var(--bigplace-spacing-2) !important; }
.rec-pb-3 { padding-bottom: var(--bigplace-spacing-3) !important; }
.rec-pb-4 { padding-bottom: var(--bigplace-spacing-4) !important; }
.rec-pb-5 { padding-bottom: var(--bigplace-spacing-5) !important; }
.rec-pb-6 { padding-bottom: var(--bigplace-spacing-6) !important; }
.rec-pb-8 { padding-bottom: var(--bigplace-spacing-8) !important; }
.rec-pb-10 { padding-bottom: var(--bigplace-spacing-10) !important; }
.rec-pb-12 { padding-bottom: var(--bigplace-spacing-12) !important; }
.rec-pb-16 { padding-bottom: var(--bigplace-spacing-16) !important; }
.rec-pb-20 { padding-bottom: var(--bigplace-spacing-20) !important; }

/* Padding Left */
.rec-pl-0 { padding-left: var(--bigplace-spacing-0) !important; }
.rec-pl-1 { padding-left: var(--bigplace-spacing-1) !important; }
.rec-pl-2 { padding-left: var(--bigplace-spacing-2) !important; }
.rec-pl-3 { padding-left: var(--bigplace-spacing-3) !important; }
.rec-pl-4 { padding-left: var(--bigplace-spacing-4) !important; }
.rec-pl-5 { padding-left: var(--bigplace-spacing-5) !important; }
.rec-pl-6 { padding-left: var(--bigplace-spacing-6) !important; }
.rec-pl-8 { padding-left: var(--bigplace-spacing-8) !important; }
.rec-pl-10 { padding-left: var(--bigplace-spacing-10) !important; }
.rec-pl-12 { padding-left: var(--bigplace-spacing-12) !important; }
.rec-pl-16 { padding-left: var(--bigplace-spacing-16) !important; }
.rec-pl-20 { padding-left: var(--bigplace-spacing-20) !important; }

/* Padding Right */
.rec-pr-0 { padding-right: var(--bigplace-spacing-0) !important; }
.rec-pr-1 { padding-right: var(--bigplace-spacing-1) !important; }
.rec-pr-2 { padding-right: var(--bigplace-spacing-2) !important; }
.rec-pr-3 { padding-right: var(--bigplace-spacing-3) !important; }
.rec-pr-4 { padding-right: var(--bigplace-spacing-4) !important; }
.rec-pr-5 { padding-right: var(--bigplace-spacing-5) !important; }
.rec-pr-6 { padding-right: var(--bigplace-spacing-6) !important; }
.rec-pr-8 { padding-right: var(--bigplace-spacing-8) !important; }
.rec-pr-10 { padding-right: var(--bigplace-spacing-10) !important; }
.rec-pr-12 { padding-right: var(--bigplace-spacing-12) !important; }
.rec-pr-16 { padding-right: var(--bigplace-spacing-16) !important; }
.rec-pr-20 { padding-right: var(--bigplace-spacing-20) !important; }

/* ===================================
   TYPOGRAPHY UTILITIES
   =================================== */

/* Font Size */
.rec-text-xs { font-size: var(--bigplace-font-size-xs) !important; }
.rec-text-sm { font-size: var(--bigplace-font-size-sm) !important; }
.rec-text-base { font-size: var(--bigplace-font-size-base) !important; }
.rec-text-lg { font-size: var(--bigplace-font-size-lg) !important; }
.rec-text-xl { font-size: var(--bigplace-font-size-xl) !important; }
.rec-text-2xl { font-size: var(--bigplace-font-size-2xl) !important; }
.rec-text-3xl { font-size: var(--bigplace-font-size-3xl) !important; }
.rec-text-4xl { font-size: var(--bigplace-font-size-4xl) !important; }
.rec-text-5xl { font-size: var(--bigplace-font-size-5xl) !important; }

/* Font Weight */
.rec-font-light { font-weight: var(--bigplace-font-weight-light) !important; }
.rec-font-normal { font-weight: var(--bigplace-font-weight-normal) !important; }
.rec-font-medium { font-weight: var(--bigplace-font-weight-medium) !important; }
.rec-font-semibold { font-weight: var(--bigplace-font-weight-semibold) !important; }
.rec-font-bold { font-weight: var(--bigplace-font-weight-bold) !important; }

/* Line Height */
.rec-leading-tight { line-height: var(--bigplace-line-height-tight) !important; }
.rec-leading-normal { line-height: var(--bigplace-line-height-normal) !important; }
.rec-leading-relaxed { line-height: var(--bigplace-line-height-relaxed) !important; }

/* Text Alignment */
.rec-text-left { text-align: left !important; }
.rec-text-center { text-align: center !important; }
.rec-text-right { text-align: right !important; }
.rec-text-justify { text-align: justify !important; }

/* Text Color */
.rec-text-primary { color: var(--bigplace-primary) !important; }
.rec-text-secondary { color: var(--bigplace-secondary) !important; }
.rec-text-success { color: var(--bigplace-success) !important; }
.rec-text-warning { color: var(--bigplace-warning) !important; }
.rec-text-danger { color: var(--bigplace-danger) !important; }
.rec-text-info { color: var(--bigplace-info) !important; }
.rec-text-gray-50 { color: var(--bigplace-gray-50) !important; }
.rec-text-gray-100 { color: var(--bigplace-gray-100) !important; }
.rec-text-gray-200 { color: var(--bigplace-gray-200) !important; }
.rec-text-gray-300 { color: var(--bigplace-gray-300) !important; }
.rec-text-gray-400 { color: var(--bigplace-gray-400) !important; }
.rec-text-gray-500 { color: var(--bigplace-gray-500) !important; }
.rec-text-gray-600 { color: var(--bigplace-gray-600) !important; }
.rec-text-gray-700 { color: var(--bigplace-gray-700) !important; }
.rec-text-gray-800 { color: var(--bigplace-gray-800) !important; }
.rec-text-gray-900 { color: var(--bigplace-gray-900) !important; }
.rec-text-white { color: var(--bigplace-white) !important; }

/* ===================================
   BACKGROUND UTILITIES
   =================================== */

.rec-bg-primary { background-color: var(--bigplace-primary) !important; }
.rec-bg-secondary { background-color: var(--bigplace-secondary) !important; }
.rec-bg-success { background-color: var(--bigplace-success) !important; }
.rec-bg-warning { background-color: var(--bigplace-warning) !important; }
.rec-bg-danger { background-color: var(--bigplace-danger) !important; }
.rec-bg-info { background-color: var(--bigplace-info) !important; }
.rec-bg-gray-50 { background-color: var(--bigplace-gray-50) !important; }
.rec-bg-gray-100 { background-color: var(--bigplace-gray-100) !important; }
.rec-bg-gray-200 { background-color: var(--bigplace-gray-200) !important; }
.rec-bg-gray-300 { background-color: var(--bigplace-gray-300) !important; }
.rec-bg-gray-400 { background-color: var(--bigplace-gray-400) !important; }
.rec-bg-gray-500 { background-color: var(--bigplace-gray-500) !important; }
.rec-bg-gray-600 { background-color: var(--bigplace-gray-600) !important; }
.rec-bg-gray-700 { background-color: var(--bigplace-gray-700) !important; }
.rec-bg-gray-800 { background-color: var(--bigplace-gray-800) !important; }
.rec-bg-gray-900 { background-color: var(--bigplace-gray-900) !important; }
.rec-bg-white { background-color: var(--bigplace-white) !important; }

/* ===================================
   BORDER UTILITIES
   =================================== */

.rec-border { border: 1px solid var(--bigplace-gray-200) !important; }
.rec-border-0 { border: none !important; }
.rec-border-t { border-top: 1px solid var(--bigplace-gray-200) !important; }
.rec-border-b { border-bottom: 1px solid var(--bigplace-gray-200) !important; }
.rec-border-l { border-left: 1px solid var(--bigplace-gray-200) !important; }
.rec-border-r { border-right: 1px solid var(--bigplace-gray-200) !important; }

.rec-border-primary { border-color: var(--bigplace-primary) !important; }
.rec-border-secondary { border-color: var(--bigplace-secondary) !important; }
.rec-border-success { border-color: var(--bigplace-success) !important; }
.rec-border-warning { border-color: var(--bigplace-warning) !important; }
.rec-border-danger { border-color: var(--bigplace-danger) !important; }
.rec-border-info { border-color: var(--bigplace-info) !important; }
.rec-border-gray-200 { border-color: var(--bigplace-gray-200) !important; }
.rec-border-gray-300 { border-color: var(--bigplace-gray-300) !important; }

/* Border Radius */
.rec-rounded { border-radius: var(--bigplace-border-radius) !important; }
.rec-rounded-sm { border-radius: var(--bigplace-border-radius-sm) !important; }
.rec-rounded-lg { border-radius: var(--bigplace-border-radius-lg) !important; }
.rec-rounded-xl { border-radius: var(--bigplace-border-radius-xl) !important; }
.rec-rounded-full { border-radius: var(--bigplace-border-radius-full) !important; }
.rec-rounded-0 { border-radius: 0 !important; }

/* ===================================
   SHADOW UTILITIES
   =================================== */

.rec-shadow-sm { box-shadow: var(--bigplace-shadow-sm) !important; }
.rec-shadow { box-shadow: var(--bigplace-shadow) !important; }
.rec-shadow-lg { box-shadow: var(--bigplace-shadow-lg) !important; }
.rec-shadow-xl { box-shadow: var(--bigplace-shadow-xl) !important; }
.rec-shadow-none { box-shadow: none !important; }

/* ===================================
   DISPLAY UTILITIES
   =================================== */

.rec-block { display: block !important; }
.rec-inline { display: inline !important; }
.rec-inline-block { display: inline-block !important; }
.rec-flex { display: flex !important; }
.rec-inline-flex { display: inline-flex !important; }
.rec-grid { display: grid !important; }
.rec-hidden { display: none !important; }

/* ===================================
   FLEXBOX UTILITIES
   =================================== */

.rec-flex-row { flex-direction: row !important; }
.rec-flex-row-reverse { flex-direction: row-reverse !important; }
.rec-flex-col { flex-direction: column !important; }
.rec-flex-col-reverse { flex-direction: column-reverse !important; }

.rec-flex-wrap { flex-wrap: wrap !important; }
.rec-flex-nowrap { flex-wrap: nowrap !important; }

.rec-justify-start { justify-content: flex-start !important; }
.rec-justify-end { justify-content: flex-end !important; }
.rec-justify-center { justify-content: center !important; }
.rec-justify-between { justify-content: space-between !important; }
.rec-justify-around { justify-content: space-around !important; }
.rec-justify-evenly { justify-content: space-evenly !important; }

.rec-items-start { align-items: flex-start !important; }
.rec-items-end { align-items: flex-end !important; }
.rec-items-center { align-items: center !important; }
.rec-items-baseline { align-items: baseline !important; }
.rec-items-stretch { align-items: stretch !important; }

.rec-flex-1 { flex: 1 1 0% !important; }
.rec-flex-auto { flex: 1 1 auto !important; }
.rec-flex-initial { flex: 0 1 auto !important; }
.rec-flex-none { flex: none !important; }

/* ===================================
   POSITION UTILITIES
   =================================== */

.rec-static { position: static !important; }
.rec-fixed { position: fixed !important; }
.rec-absolute { position: absolute !important; }
.rec-relative { position: relative !important; }
.rec-sticky { position: sticky !important; }

/* ===================================
   TRANSITION & ANIMATION UTILITIES
   =================================== */

.rec-transition { transition: all var(--bigplace-transition) !important; }
.rec-transition-fast { transition: all var(--bigplace-transition-fast) !important; }
.rec-transition-slow { transition: all var(--bigplace-transition-slow) !important; }

.rec-hover-lift:hover {
  transform: translateY(-2px);
  box-shadow: var(--bigplace-shadow);
}

.rec-hover-scale:hover {
  transform: scale(1.05);
}

.rec-hover-fade:hover {
  opacity: 0.8;
}

/* ===================================
   LAYOUT UTILITIES
   =================================== */

.rec-w-full { width: 100% !important; }
.rec-h-full { height: 100% !important; }
.rec-w-auto { width: auto !important; }
.rec-h-auto { height: auto !important; }

.rec-max-w-xs { max-width: 20rem !important; }
.rec-max-w-sm { max-width: 24rem !important; }
.rec-max-w-md { max-width: 28rem !important; }
.rec-max-w-lg { max-width: 32rem !important; }
.rec-max-w-xl { max-width: 36rem !important; }
.rec-max-w-2xl { max-width: 42rem !important; }
.rec-max-w-3xl { max-width: 48rem !important; }
.rec-max-w-4xl { max-width: 56rem !important; }
.rec-max-w-5xl { max-width: 64rem !important; }
.rec-max-w-6xl { max-width: 72rem !important; }
.rec-max-w-7xl { max-width: 80rem !important; }
.rec-max-w-full { max-width: 100% !important; }

.rec-min-h-screen { min-height: 100vh !important; }

/* ===================================
   COMPONENT SPECIFIC UTILITIES
   =================================== */

/* Card styles */
.rec-card-hover:hover {
  transform: translateY(-4px);
  box-shadow: var(--bigplace-shadow-lg);
}

.rec-card-compact .card-body {
  padding: var(--bigplace-spacing-4);
}

.rec-card-spacious .card-body {
  padding: var(--bigplace-spacing-8);
}

/* Button styles */
.rec-btn-ghost {
  background-color: transparent;
  border: 1px solid transparent;
  color: var(--bigplace-gray-700);
}

.rec-btn-ghost:hover {
  background-color: var(--bigplace-gray-50);
  color: var(--bigplace-gray-900);
}

.rec-btn-ghost.active {
  background-color: var(--bigplace-primary-bg);
  color: var(--bigplace-primary);
}

/* Input group styles */
.rec-input-group-lg .form-control,
.rec-input-group-lg .input-group-text {
  padding: var(--bigplace-spacing-4) var(--bigplace-spacing-5);
  font-size: var(--bigplace-font-size-lg);
}

.rec-input-group-sm .form-control,
.rec-input-group-sm .input-group-text {
  padding: var(--bigplace-spacing-1) var(--bigplace-spacing-3);
  font-size: var(--bigplace-font-size-sm);
}

/* ===================================
   RESPONSIVE UTILITIES
   =================================== */

@media (max-width: 575.98px) {
  .rec-d-none-sm { display: none !important; }
  .rec-d-block-sm { display: block !important; }
  .rec-d-flex-sm { display: flex !important; }
}

@media (min-width: 576px) and (max-width: 767.98px) {
  .rec-d-none-md { display: none !important; }
  .rec-d-block-md { display: block !important; }
  .rec-d-flex-md { display: flex !important; }
}

@media (min-width: 768px) and (max-width: 991.98px) {
  .rec-d-none-lg { display: none !important; }
  .rec-d-block-lg { display: block !important; }
  .rec-d-flex-lg { display: flex !important; }
}

@media (min-width: 992px) {
  .rec-d-none-xl { display: none !important; }
  .rec-d-block-xl { display: block !important; }
  .rec-d-flex-xl { display: flex !important; }
}
