/**
 * Havenlytics Enhanced Grid System
 * Custom grid with hvn-theme-* prefix to avoid conflicts
 */

/* Reset and Box Sizing */
.hvn-theme-container *,
.hvn-theme-container-fluid *,
.hvn-theme-row * {
  box-sizing: border-box;
}

/* Fixed Container */
.hvn-theme-container {
  width: 100%;
  max-width: var(--hvn-theme-container-max-width);
  margin: 0 auto;
  padding: 0 var(--hvn-theme-container-padding);
}

/* Fluid Container */
.hvn-theme-container-fluid {
  width: 100%;
  margin: 0 auto;
  padding: 0 var(--hvn-theme-container-padding);
}

/* Responsive container padding */
@media (max-width: 768px) {
  .hvn-theme-container,
  .hvn-theme-container-fluid {
    padding: 0 calc(var(--hvn-theme-container-padding) * 0.75);
  }
}

@media (max-width: 480px) {
  .hvn-theme-container,
  .hvn-theme-container-fluid {
    padding: 0 calc(var(--hvn-theme-container-padding) * 0.5);
  }
}

/* Grid Row - CSS Grid based */
/* Grid Row - CSS Grid based */
.hvn-theme-row {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    gap: var(--hvn-theme-space-md);
    margin: 0 calc(var(--hvn-theme-space-md) * -0.5);
    align-items: start; /* This is essential for sticky sidebar */
}

/* Base column */
.hvn-theme-col {
  grid-column: span 12;
  padding: 0 calc(var(--hvn-theme-space-md) * 0.5);
}

/* Auto column */
.hvn-theme-col-auto {
  grid-column: auto;
  padding: 0 calc(var(--hvn-theme-space-md) * 0.5);
}

/* Column spans - Base (mobile first) */
.hvn-theme-col-1 { grid-column: span 1; }
.hvn-theme-col-2 { grid-column: span 2; }
.hvn-theme-col-3 { grid-column: span 3; }
.hvn-theme-col-4 { grid-column: span 4; }
.hvn-theme-col-5 { grid-column: span 5; }
.hvn-theme-col-6 { grid-column: span 6; }
.hvn-theme-col-7 { grid-column: span 7; }
.hvn-theme-col-8 { grid-column: span 8; }
.hvn-theme-col-9 { grid-column: span 9; }
.hvn-theme-col-10 { grid-column: span 10; }
.hvn-theme-col-11 { grid-column: span 11; }
.hvn-theme-col-12 { grid-column: span 12; }

/* Offset classes */
.hvn-theme-offset-0 { margin-left: 0; }
.hvn-theme-offset-1 { margin-left: 8.333333%; }
.hvn-theme-offset-2 { margin-left: 16.666667%; }
.hvn-theme-offset-3 { margin-left: 25%; }
.hvn-theme-offset-4 { margin-left: 33.333333%; }
.hvn-theme-offset-5 { margin-left: 41.666667%; }
.hvn-theme-offset-6 { margin-left: 50%; }
.hvn-theme-offset-7 { margin-left: 58.333333%; }
.hvn-theme-offset-8 { margin-left: 66.666667%; }
.hvn-theme-offset-9 { margin-left: 75%; }
.hvn-theme-offset-10 { margin-left: 83.333333%; }
.hvn-theme-offset-11 { margin-left: 91.666667%; }

/* =========================================
   RESPONSIVE BREAKPOINTS
   ========================================= */

/* Extra Small (480px and up) */
@media (min-width: 480px) {
  .hvn-theme-col-xs-1 { grid-column: span 1; }
  .hvn-theme-col-xs-2 { grid-column: span 2; }
  .hvn-theme-col-xs-3 { grid-column: span 3; }
  .hvn-theme-col-xs-4 { grid-column: span 4; }
  .hvn-theme-col-xs-5 { grid-column: span 5; }
  .hvn-theme-col-xs-6 { grid-column: span 6; }
  .hvn-theme-col-xs-7 { grid-column: span 7; }
  .hvn-theme-col-xs-8 { grid-column: span 8; }
  .hvn-theme-col-xs-9 { grid-column: span 9; }
  .hvn-theme-col-xs-10 { grid-column: span 10; }
  .hvn-theme-col-xs-11 { grid-column: span 11; }
  .hvn-theme-col-xs-12 { grid-column: span 12; }
  
  .hvn-theme-offset-xs-0 { margin-left: 0; }
  .hvn-theme-offset-xs-1 { margin-left: 8.333333%; }
  .hvn-theme-offset-xs-2 { margin-left: 16.666667%; }
  .hvn-theme-offset-xs-3 { margin-left: 25%; }
  .hvn-theme-offset-xs-4 { margin-left: 33.333333%; }
  .hvn-theme-offset-xs-5 { margin-left: 41.666667%; }
  .hvn-theme-offset-xs-6 { margin-left: 50%; }
  .hvn-theme-offset-xs-7 { margin-left: 58.333333%; }
  .hvn-theme-offset-xs-8 { margin-left: 66.666667%; }
  .hvn-theme-offset-xs-9 { margin-left: 75%; }
  .hvn-theme-offset-xs-10 { margin-left: 83.333333%; }
  .hvn-theme-offset-xs-11 { margin-left: 91.666667%; }
}

/* Small (768px and up) */
@media (min-width: 768px) {
  .hvn-theme-col-sm-1 { grid-column: span 1; }
  .hvn-theme-col-sm-2 { grid-column: span 2; }
  .hvn-theme-col-sm-3 { grid-column: span 3; }
  .hvn-theme-col-sm-4 { grid-column: span 4; }
  .hvn-theme-col-sm-5 { grid-column: span 5; }
  .hvn-theme-col-sm-6 { grid-column: span 6; }
  .hvn-theme-col-sm-7 { grid-column: span 7; }
  .hvn-theme-col-sm-8 { grid-column: span 8; }
  .hvn-theme-col-sm-9 { grid-column: span 9; }
  .hvn-theme-col-sm-10 { grid-column: span 10; }
  .hvn-theme-col-sm-11 { grid-column: span 11; }
  .hvn-theme-col-sm-12 { grid-column: span 12; }
  
  .hvn-theme-offset-sm-0 { margin-left: 0; }
  .hvn-theme-offset-sm-1 { margin-left: 8.333333%; }
  .hvn-theme-offset-sm-2 { margin-left: 16.666667%; }
  .hvn-theme-offset-sm-3 { margin-left: 25%; }
  .hvn-theme-offset-sm-4 { margin-left: 33.333333%; }
  .hvn-theme-offset-sm-5 { margin-left: 41.666667%; }
  .hvn-theme-offset-sm-6 { margin-left: 50%; }
  .hvn-theme-offset-sm-7 { margin-left: 58.333333%; }
  .hvn-theme-offset-sm-8 { margin-left: 66.666667%; }
  .hvn-theme-offset-sm-9 { margin-left: 75%; }
  .hvn-theme-offset-sm-10 { margin-left: 83.333333%; }
  .hvn-theme-offset-sm-11 { margin-left: 91.666667%; }
}

/* Medium (992px and up) */
@media (min-width: 992px) {
  .hvn-theme-col-md-1 { grid-column: span 1; }
  .hvn-theme-col-md-2 { grid-column: span 2; }
  .hvn-theme-col-md-3 { grid-column: span 3; }
  .hvn-theme-col-md-4 { grid-column: span 4; }
  .hvn-theme-col-md-5 { grid-column: span 5; }
  .hvn-theme-col-md-6 { grid-column: span 6; }
  .hvn-theme-col-md-7 { grid-column: span 7; }
  .hvn-theme-col-md-8 { grid-column: span 8; }
  .hvn-theme-col-md-9 { grid-column: span 9; }
  .hvn-theme-col-md-10 { grid-column: span 10; }
  .hvn-theme-col-md-11 { grid-column: span 11; }
  .hvn-theme-col-md-12 { grid-column: span 12; }
  
  .hvn-theme-offset-md-0 { margin-left: 0; }
  .hvn-theme-offset-md-1 { margin-left: 8.333333%; }
  .hvn-theme-offset-md-2 { margin-left: 16.666667%; }
  .hvn-theme-offset-md-3 { margin-left: 25%; }
  .hvn-theme-offset-md-4 { margin-left: 33.333333%; }
  .hvn-theme-offset-md-5 { margin-left: 41.666667%; }
  .hvn-theme-offset-md-6 { margin-left: 50%; }
  .hvn-theme-offset-md-7 { margin-left: 58.333333%; }
  .hvn-theme-offset-md-8 { margin-left: 66.666667%; }
  .hvn-theme-offset-md-9 { margin-left: 75%; }
  .hvn-theme-offset-md-10 { margin-left: 83.333333%; }
  .hvn-theme-offset-md-11 { margin-left: 91.666667%; }
}

/* Large (1200px and up) */
@media (min-width: 1200px) {
  .hvn-theme-col-lg-1 { grid-column: span 1; }
  .hvn-theme-col-lg-2 { grid-column: span 2; }
  .hvn-theme-col-lg-3 { grid-column: span 3; }
  .hvn-theme-col-lg-4 { grid-column: span 4; }
  .hvn-theme-col-lg-5 { grid-column: span 5; }
  .hvn-theme-col-lg-6 { grid-column: span 6; }
  .hvn-theme-col-lg-7 { grid-column: span 7; }
  .hvn-theme-col-lg-8 { grid-column: span 8; }
  .hvn-theme-col-lg-9 { grid-column: span 9; }
  .hvn-theme-col-lg-10 { grid-column: span 10; }
  .hvn-theme-col-lg-11 { grid-column: span 11; }
  .hvn-theme-col-lg-12 { grid-column: span 12; }
  
  .hvn-theme-offset-lg-0 { margin-left: 0; }
  .hvn-theme-offset-lg-1 { margin-left: 8.333333%; }
  .hvn-theme-offset-lg-2 { margin-left: 16.666667%; }
  .hvn-theme-offset-lg-3 { margin-left: 25%; }
  .hvn-theme-offset-lg-4 { margin-left: 33.333333%; }
  .hvn-theme-offset-lg-5 { margin-left: 41.666667%; }
  .hvn-theme-offset-lg-6 { margin-left: 50%; }
  .hvn-theme-offset-lg-7 { margin-left: 58.333333%; }
  .hvn-theme-offset-lg-8 { margin-left: 66.666667%; }
  .hvn-theme-offset-lg-9 { margin-left: 75%; }
  .hvn-theme-offset-lg-10 { margin-left: 83.333333%; }
  .hvn-theme-offset-lg-11 { margin-left: 91.666667%; }
}

/* Extra Large (1400px and up) */
@media (min-width: 1400px) {
  .hvn-theme-col-xl-1 { grid-column: span 1; }
  .hvn-theme-col-xl-2 { grid-column: span 2; }
  .hvn-theme-col-xl-3 { grid-column: span 3; }
  .hvn-theme-col-xl-4 { grid-column: span 4; }
  .hvn-theme-col-xl-5 { grid-column: span 5; }
  .hvn-theme-col-xl-6 { grid-column: span 6; }
  .hvn-theme-col-xl-7 { grid-column: span 7; }
  .hvn-theme-col-xl-8 { grid-column: span 8; }
  .hvn-theme-col-xl-9 { grid-column: span 9; }
  .hvn-theme-col-xl-10 { grid-column: span 10; }
  .hvn-theme-col-xl-11 { grid-column: span 11; }
  .hvn-theme-col-xl-12 { grid-column: span 12; }
  
  .hvn-theme-offset-xl-0 { margin-left: 0; }
  .hvn-theme-offset-xl-1 { margin-left: 8.333333%; }
  .hvn-theme-offset-xl-2 { margin-left: 16.666667%; }
  .hvn-theme-offset-xl-3 { margin-left: 25%; }
  .hvn-theme-offset-xl-4 { margin-left: 33.333333%; }
  .hvn-theme-offset-xl-5 { margin-left: 41.666667%; }
  .hvn-theme-offset-xl-6 { margin-left: 50%; }
  .hvn-theme-offset-xl-7 { margin-left: 58.333333%; }
  .hvn-theme-offset-xl-8 { margin-left: 66.666667%; }
  .hvn-theme-offset-xl-9 { margin-left: 75%; }
  .hvn-theme-offset-xl-10 { margin-left: 83.333333%; }
  .hvn-theme-offset-xl-11 { margin-left: 91.666667%; }
}

/* =========================================
   GAP UTILITIES
   ========================================= */
.hvn-theme-gap-0 { gap: 0; }
.hvn-theme-gap-1 { gap: var(--hvn-theme-space-xs); }
.hvn-theme-gap-2 { gap: var(--hvn-theme-space-sm); }
.hvn-theme-gap-3 { gap: var(--hvn-theme-space-md); }
.hvn-theme-gap-4 { gap: var(--hvn-theme-space-lg); }
.hvn-theme-gap-5 { gap: var(--hvn-theme-space-xl); }
.hvn-theme-gap-6 { gap: var(--hvn-theme-space-2xl); }

/* No Gutters */
.hvn-theme-no-gutters {
  margin: 0;
  gap: 0;
}

.hvn-theme-no-gutters > [class*="hvn-theme-col"] {
  padding: 0;
}

/* =========================================
   ALIGNMENT UTILITIES
   ========================================= */
.hvn-theme-align-start { align-items: flex-start; }
.hvn-theme-align-center { align-items: center; }
.hvn-theme-align-end { align-items: flex-end; }
.hvn-theme-align-stretch { align-items: stretch; }

.hvn-theme-justify-start { justify-content: flex-start; }
.hvn-theme-justify-center { justify-content: center; }
.hvn-theme-justify-end { justify-content: flex-end; }
.hvn-theme-justify-between { justify-content: space-between; }
.hvn-theme-justify-around { justify-content: space-around; }

/* =========================================
   ORDER UTILITIES
   ========================================= */
.hvn-theme-order-first { order: -1; }
.hvn-theme-order-last { order: 999; }
.hvn-theme-order-0 { order: 0; }
.hvn-theme-order-1 { order: 1; }
.hvn-theme-order-2 { order: 2; }
.hvn-theme-order-3 { order: 3; }

/* =========================================
   VISIBILITY UTILITIES
   ========================================= */
.hvn-theme-visible {
  visibility: visible;
}

.hvn-theme-invisible {
  visibility: hidden;
}

.hvn-theme-hidden {
  display: none !important;
}

/* Responsive visibility */
@media (max-width: 767px) {
  .hvn-theme-hidden-mobile {
    display: none !important;
  }
}

@media (min-width: 768px) and (max-width: 991px) {
  .hvn-theme-hidden-tablet {
    display: none !important;
  }
}

@media (min-width: 992px) {
  .hvn-theme-hidden-desktop {
    display: none !important;
  }
}