/* ============================================
   RESPONSIVE UTILITIES - LIGHTWEIGHT
   Only CSS variables + optional classes
   Does NOT modify existing styles
   ============================================ */

:root {
  /* Typography variables (optional to use) */
  --text-xs: 12px;
  --text-sm: 14px;
  --text-base: 16px;
  --text-lg: 18px;
  --text-xl: 20px;
  --text-2xl: 24px;
  --text-3xl: 30px;
  --text-4xl: 36px;
  --text-5xl: 42px;
  --text-6xl: 48px;

  /* Spacing variables */
  --space-xs: 4px;
  --space-sm: 8px;
  --space-md: 12px;
  --space-base: 16px;
  --space-lg: 20px;
  --space-xl: 24px;
  --space-2xl: 32px;
  --space-3xl: 40px;
  --space-4xl: 48px;
  --space-5xl: 56px;
  --space-6xl: 64px;
}

/* ============================================
   OPTIONAL UTILITY CLASSES (Use explicitly)
   ============================================ */

.text-responsive {
  font-size: clamp(12px, 2vw, 24px);
}

.heading-responsive {
  font-size: clamp(24px, 5vw, 56px);
  line-height: 1.2;
}

.grid-auto-fit {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 1.5rem;
}

.aspect-video {
  aspect-ratio: 16 / 9;
}

.aspect-square {
  aspect-ratio: 1 / 1;
}

.img-responsive {
  max-width: 100%;
  height: auto;
  display: block;
}

.video-responsive {
  position: relative;
  width: 100%;
  padding-bottom: 56.25%;
  height: 0;
  overflow: hidden;
}

.video-responsive iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: none;
}

.show-mobile {
  display: none;
}

@media (max-width: 768px) {
  .show-mobile {
    display: block !important;
  }
  .hide-mobile {
    display: none !important;
  }
}

/* prefers-reduced-motion handled in utilities.css and modals.css */
