/* =========================================== */
/* MOBILE FLUID TYPOGRAPHY & SPACING */
/* Responsive typography and spacing that scales with viewport */
/* =========================================== */

/* ===== FLUID TYPOGRAPHY ===== */
:root {
  /* Base font sizes */
  --fluid-min-width: 320px;
  --fluid-max-width: 1200px;
  
  /* Typography scale */
  --fluid-h1-min: 1.5rem;
  --fluid-h1-max: 2.5rem;
  --fluid-h2-min: 1.25rem;
  --fluid-h2-max: 2rem;
  --fluid-h3-min: 1.125rem;
  --fluid-h3-max: 1.5rem;
  --fluid-body-min: 0.875rem;
  --fluid-body-max: 1rem;
  --fluid-small-min: 0.75rem;
  --fluid-small-max: 0.875rem;
}

/* Fluid typography function */
h1 {
  font-size: clamp(var(--fluid-h1-min), 5vw, var(--fluid-h1-max));
  line-height: 1.2;
  font-weight: 900;
}

h2 {
  font-size: clamp(var(--fluid-h2-min), 4vw, var(--fluid-h2-max));
  line-height: 1.3;
  font-weight: 800;
}

h3 {
  font-size: clamp(var(--fluid-h3-min), 3vw, var(--fluid-h3-max));
  line-height: 1.4;
  font-weight: 700;
}

p,
body {
  font-size: clamp(var(--fluid-body-min), 2.5vw, var(--fluid-body-max));
  line-height: 1.6;
}

small,
.small {
  font-size: clamp(var(--fluid-small-min), 2vw, var(--fluid-small-max));
}

/* ===== RESPONSIVE SPACING ===== */
:root {
  /* Spacing scale */
  --spacing-xs: clamp(0.25rem, 1vw, 0.5rem);
  --spacing-sm: clamp(0.5rem, 2vw, 1rem);
  --spacing-md: clamp(1rem, 3vw, 1.5rem);
  --spacing-lg: clamp(1.5rem, 4vw, 2.5rem);
  --spacing-xl: clamp(2rem, 5vw, 4rem);
  --spacing-xxl: clamp(3rem, 7vw, 6rem);
}

/* Section spacing */
.section {
  padding: var(--spacing-xl) var(--spacing-md);
}

@media (max-width: 768px) {
  .section {
    padding: var(--spacing-lg) var(--spacing-sm);
  }
}

/* Card spacing */
.card,
.artwork-card {
  margin-bottom: var(--spacing-md);
  padding: var(--spacing-sm);
}

@media (max-width: 768px) {
  .card,
  .artwork-card {
    margin-bottom: var(--spacing-sm);
    padding: var(--spacing-xs);
  }
}

/* Container padding */
.container {
  padding-left: var(--spacing-md);
  padding-right: var(--spacing-md);
}

@media (max-width: 768px) {
  .container {
    padding-left: var(--spacing-sm);
    padding-right: var(--spacing-sm);
  }
}

/* ===== RESPONSIVE GRID GAPS ===== */
.gallery-grid,
.artwork-grid {
  gap: clamp(0.5rem, 2vw, 1rem);
}

@media (max-width: 768px) {
  .gallery-grid,
  .artwork-grid {
    gap: clamp(0.5rem, 1.5vw, 0.75rem);
  }
}

/* ===== RESPONSIVE BUTTON SIZING ===== */
.btn {
  padding: clamp(0.5rem, 2vw, 0.75rem) clamp(1rem, 3vw, 1.5rem);
  font-size: clamp(0.875rem, 2.5vw, 1rem);
}

.btn-lg {
  padding: clamp(0.75rem, 2.5vw, 1rem) clamp(1.5rem, 4vw, 2rem);
  font-size: clamp(1rem, 3vw, 1.25rem);
}

.btn-sm {
  padding: clamp(0.375rem, 1.5vw, 0.5rem) clamp(0.75rem, 2vw, 1rem);
  font-size: clamp(0.75rem, 2vw, 0.875rem);
}

/* ===== RESPONSIVE NAVBAR ===== */
.navbar {
  padding: var(--spacing-sm) var(--spacing-md);
  height: clamp(60px, 8vw, 70px);
}

.nav-link {
  padding: var(--spacing-xs) var(--spacing-sm);
  font-size: clamp(0.875rem, 2.5vw, 1rem);
}

/* ===== RESPONSIVE HERO SECTION ===== */
.hero-section {
  padding: var(--spacing-xl) var(--spacing-md);
  min-height: clamp(100vh, 100vh, 120vh);
}

@media (max-width: 768px) {
  .hero-section {
    padding: var(--spacing-lg) var(--spacing-sm);
    min-height: 100vh;
  }
}

/* ===== RESPONSIVE FOOTER ===== */
.footer {
  padding: var(--spacing-xl) var(--spacing-md);
}

@media (max-width: 768px) {
  .footer {
    padding: var(--spacing-lg) var(--spacing-sm);
  }
}

/* ===== RESPONSIVE IMAGES ===== */
img {
  max-width: 100%;
  height: auto;
}

/* ===== RESPONSIVE CONTAINER MAX-WIDTHS ===== */
.container {
  max-width: clamp(100%, 90vw, 1200px);
}

@media (max-width: 768px) {
  .container {
    max-width: 100%;
  }
}

