/**
 * Responsive Utilities
 * Responsive helpers and breakpoints
 */

/* Responsive Display Utilities */
.hvn-theme-hide-xs {
  display: block;
}

.hvn-theme-show-xs {
  display: none;
}

@media (max-width: 479px) {
  .hvn-theme-hide-xs {
    display: none !important;
  }
  
  .hvn-theme-show-xs {
    display: block !important;
  }
}

@media (min-width: 480px) and (max-width: 767px) {
  .hvn-theme-hide-sm {
    display: none !important;
  }
  
  .hvn-theme-show-sm {
    display: block !important;
  }
}

@media (min-width: 768px) and (max-width: 991px) {
  .hvn-theme-hide-md {
    display: none !important;
  }
  
  .hvn-theme-show-md {
    display: block !important;
  }
}

@media (min-width: 992px) and (max-width: 1199px) {
  .hvn-theme-hide-lg {
    display: none !important;
  }
  
  .hvn-theme-show-lg {
    display: block !important;
  }
}

@media (min-width: 1200px) {
  .hvn-theme-hide-xl {
    display: none !important;
  }
  
  .hvn-theme-show-xl {
    display: block !important;
  }
}

/* Responsive Text Alignment */
@media (max-width: 767px) {
  .hvn-theme-text-xs-left {
    text-align: left !important;
  }
  
  .hvn-theme-text-xs-center {
    text-align: center !important;
  }
  
  .hvn-theme-text-xs-right {
    text-align: right !important;
  }
}

@media (min-width: 768px) and (max-width: 991px) {
  .hvn-theme-text-sm-left {
    text-align: left !important;
  }
  
  .hvn-theme-text-sm-center {
    text-align: center !important;
  }
  
  .hvn-theme-text-sm-right {
    text-align: right !important;
  }
}

@media (min-width: 992px) {
  .hvn-theme-text-md-left {
    text-align: left !important;
  }
  
  .hvn-theme-text-md-center {
    text-align: center !important;
  }
  
  .hvn-theme-text-md-right {
    text-align: right !important;
  }
}

/* Responsive Spacing */
@media (max-width: 767px) {
  .hvn-theme-p-xs-0 { padding: 0 !important; }
  .hvn-theme-p-xs-1 { padding: var(--hvn-theme-space-xs) !important; }
  .hvn-theme-p-xs-2 { padding: var(--hvn-theme-space-sm) !important; }
  .hvn-theme-p-xs-3 { padding: var(--hvn-theme-space-md) !important; }
  .hvn-theme-p-xs-4 { padding: var(--hvn-theme-space-lg) !important; }
  .hvn-theme-p-xs-5 { padding: var(--hvn-theme-space-xl) !important; }
  
  .hvn-theme-m-xs-0 { margin: 0 !important; }
  .hvn-theme-m-xs-1 { margin: var(--hvn-theme-space-xs) !important; }
  .hvn-theme-m-xs-2 { margin: var(--hvn-theme-space-sm) !important; }
  .hvn-theme-m-xs-3 { margin: var(--hvn-theme-space-md) !important; }
  .hvn-theme-m-xs-4 { margin: var(--hvn-theme-space-lg) !important; }
  .hvn-theme-m-xs-5 { margin: var(--hvn-theme-space-xl) !important; }
}

/* Responsive Font Sizes */
@media (max-width: 767px) {
  h1, .hvn-theme-h1 {
    font-size: calc(var(--hvn-theme-font-size-4xl) * 0.8) !important;
  }
  
  h2, .hvn-theme-h2 {
    font-size: calc(var(--hvn-theme-font-size-3xl) * 0.8) !important;
  }
  
  h3, .hvn-theme-h3 {
    font-size: calc(var(--hvn-theme-font-size-2xl) * 0.85) !important;
  }
  
  h4, .hvn-theme-h4 {
    font-size: calc(var(--hvn-theme-font-size-xl) * 0.9) !important;
  }
}

/* Responsive Images */
img {
  max-width: 100%;
  height: auto;
}

/* Responsive Embeds */
embed,
iframe,
object {
  max-width: 100%;
}

/* Responsive Tables */
@media (max-width: 767px) {
  .hvn-theme-table-responsive {
    overflow-x: auto;
    display: block;
    white-space: nowrap;
  }
  
  .hvn-theme-table-responsive table {
    width: 100%;
  }
}

/* Responsive Flex Utilities */
@media (max-width: 767px) {
  .hvn-theme-flex-xs-column {
    flex-direction: column !important;
  }
  
  .hvn-theme-flex-xs-wrap {
    flex-wrap: wrap !important;
  }
  
  .hvn-theme-flex-xs-nowrap {
    flex-wrap: nowrap !important;
  }
}

/* Responsive Grid Gap */
@media (max-width: 767px) {
  .hvn-theme-gap-xs-0 { gap: 0 !important; }
  .hvn-theme-gap-xs-1 { gap: var(--hvn-theme-space-xs) !important; }
  .hvn-theme-gap-xs-2 { gap: var(--hvn-theme-space-sm) !important; }
  .hvn-theme-gap-xs-3 { gap: var(--hvn-theme-space-md) !important; }

  .hvn-theme-site-main {
  
    padding: 20px 15px;
}
}