/**
 * REFINED_MOVEMENT - Global Utility Classes
 * Reusable styling patterns enforcing design system consistency
 * Last updated: December 2024
 */

/* ========================================
   HERO TYPOGRAPHY
   ======================================== */

/**
 * Standard Hero Title
 * Usage: All hero H1 elements across the site
 * Pattern: Large, uppercase, fluid scaling (36px-72px)
 * Scales smoothly from mobile to desktop using clamp()
 */
.hero-title {
  font-family: var(--font-display);
  font-size: var(--font-size-h1);  /* Fluid: 36px → 72px */
  font-weight: var(--font-weight-bold);  /* 700 */
  line-height: var(--line-height-tight);  /* 1.1 */
  text-transform: uppercase;
  letter-spacing: -0.01em;
  color: var(--text-primary);
  margin: 0;
}

/**
 * Hero Title on Dark Background
 * Usage: Hero sections with dark backgrounds or overlays
 * Same sizing as .hero-title but optimized for dark BG
 */
.hero-title-on-dark {
  font-family: var(--font-display);
  font-size: var(--font-size-h1);  /* Fluid: 36px → 72px */
  font-weight: var(--font-weight-bold);  /* 700 */
  line-height: var(--line-height-tight);  /* 1.1 */
  text-transform: uppercase;
  letter-spacing: -0.01em;
  color: var(--color-white);
  margin: 0;
}

/**
 * Hero Subtitle
 * Usage: Subheading text below hero titles
 */
.hero-subtitle {
  font-family: var(--font-body);
  font-size: var(--font-size-body-large);
  font-weight: var(--font-weight-regular);
  line-height: var(--line-height-body);
  color: var(--text-secondary);
  margin-top: var(--space-md);
}

/* ========================================
   SECTION HEADERS
   ======================================== */

/**
 * Primary Section Header
 * Usage: Main section titles (H2)
 * Example: "OUR CLASSES", "PRICING", "ABOUT US"
 */
.section-header-title {
  font-family: var(--font-display);
  font-size: var(--font-size-h2);
  font-weight: var(--font-weight-bold);
  line-height: var(--line-height-heading);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: var(--text-primary);
  margin-bottom: var(--space-md);
}

/**
 * Section Subtitle
 * Usage: Supporting text below section headers
 */
.section-subtitle {
  font-family: var(--font-body);
  font-size: var(--font-size-body);
  line-height: var(--line-height-body);
  color: var(--text-secondary);
}

/**
 * Secondary Section Header
 * Usage: Subsection titles (H3)
 */
.section-subheader {
  font-family: var(--font-display);
  font-size: var(--font-size-h3);
  font-weight: var(--font-weight-semibold);
  line-height: var(--line-height-heading);
  color: var(--text-primary);
  margin-bottom: var(--space-md);
}

/* ========================================
   CARD COMPONENTS
   ======================================== */

/**
 * Standard Card Container
 * Usage: All card-based layouts (classes, pricing, features)
 * Features: Rounded corners, soft shadow, warm border, hover effects
 */
.card-standard {
  background: var(--color-white);
  border: 1px solid rgba(201, 168, 118, 0.15);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  transition: all var(--transition-base);
  overflow: hidden;
}

.card-standard:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-xl);
  border-color: rgba(201, 168, 118, 0.3);
}

/**
 * Card with Subtle Accent Border
 * Usage: Cards that need visual emphasis
 */
.card-accent {
  background: var(--color-white);
  border: 1px solid rgba(201, 168, 118, 0.25);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-md);
  transition: all var(--transition-base);
  position: relative;
  overflow: hidden;
}

.card-accent::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, transparent, var(--color-gold), transparent);
  opacity: 0;
  transition: opacity var(--transition-base);
}

.card-accent:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-xl);
  border-color: rgba(201, 168, 118, 0.4);
}

.card-accent:hover::before {
  opacity: 1;
}

/**
 * Card Title
 * Usage: H3 elements within cards
 */
.card-title {
  font-family: var(--font-display);
  font-size: 22px;
  font-weight: 600;
  color: var(--text-primary);
  line-height: 1.3;
  margin-bottom: var(--space-md);
}

/**
 * Card Body Text
 * Usage: Paragraph text within cards
 */
.card-body {
  font-family: var(--font-body);
  font-size: 15px;
  line-height: 1.6;
  color: var(--text-secondary);
}

/* ========================================
   BADGES & LABELS
   ======================================== */

/**
 * Gold Accent Badge
 * Usage: Feature highlights, "Popular", "Best Value" labels
 */
.badge-gold {
  background: rgba(201, 168, 118, 0.12);
  color: var(--color-gold);
  padding: 8px 18px;
  font-family: var(--font-body);
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1.2;
  border-radius: 4px;
  border: 1px solid rgba(201, 168, 118, 0.25);
  white-space: nowrap;
}

/**
 * Dark Badge
 * Usage: Alternative badge style for dark emphasis
 */
.badge-dark {
  background: var(--color-charcoal);
  color: var(--color-white);
  padding: 6px 16px;
  font-family: var(--font-body);
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1.2;
  border-radius: 4px;
}

/**
 * Eyebrow Label
 * Usage: Small labels above main headings
 */
.eyebrow {
  font-family: var(--font-location);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--accent-primary);
  display: block;
  margin-bottom: var(--space-sm);
}

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

/**
 * Section Container
 * Usage: Main content wrapper for sections
 */
.section-container {
  max-width: var(--container-max-width);
  margin: 0 auto;
  padding: 0 var(--container-padding);
}

/**
 * Section with Light Background
 */
.section-light {
  background-color: var(--bg-primary);
  padding: var(--space-xxxl) var(--container-padding);
}

/**
 * Section with Secondary Background
 */
.section-secondary {
  background-color: var(--bg-secondary);
  padding: var(--space-xxxl) var(--container-padding);
}

/**
 * Section with Dark Background
 */
.section-dark {
  background-color: var(--bg-dark);
  color: var(--text-on-dark);
  padding: var(--space-xxxl) var(--container-padding);
}

/* ========================================
   TEXT UTILITIES
   ======================================== */

/**
 * Body Text Large
 * Usage: Emphasized paragraph text
 */
.text-large {
  font-size: var(--font-size-body-large);
  line-height: var(--line-height-body);
}

/**
 * Body Text Standard
 */
.text-body {
  font-size: var(--font-size-body);
  line-height: var(--line-height-body);
}

/**
 * Small Text
 * Usage: Disclaimers, footnotes
 */
.text-small {
  font-size: var(--font-size-small);
  line-height: var(--line-height-body);
}

/**
 * Text Color Utilities
 */
.text-primary {
  color: var(--text-primary);
}

.text-secondary {
  color: var(--text-secondary);
}

.text-accent {
  color: var(--accent-primary);
}

/**
 * Text Alignment
 */
.text-center {
  text-align: center;
}

.text-left {
  text-align: left;
}

.text-right {
  text-align: right;
}

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

/**
 * Margin Bottom Utilities
 */
.mb-xs { margin-bottom: var(--space-xs); }
.mb-sm { margin-bottom: var(--space-sm); }
.mb-md { margin-bottom: var(--space-md); }
.mb-lg { margin-bottom: var(--space-lg); }
.mb-xl { margin-bottom: var(--space-xl); }
.mb-xxl { margin-bottom: var(--space-xxl); }
.mb-xxxl { margin-bottom: var(--space-xxxl); }

/**
 * Margin Top Utilities
 */
.mt-xs { margin-top: var(--space-xs); }
.mt-sm { margin-top: var(--space-sm); }
.mt-md { margin-top: var(--space-md); }
.mt-lg { margin-top: var(--space-lg); }
.mt-xl { margin-top: var(--space-xl); }
.mt-xxl { margin-top: var(--space-xxl); }
.mt-xxxl { margin-top: var(--space-xxxl); }

/* ========================================
   RESPONSIVE OVERRIDES
   Note: Typography scales fluidly with clamp()
   Only override spacing/layout properties
   ======================================== */

@media (max-width: 767px) {
  .badge-gold {
    font-size: 11px;
    padding: 6px 14px;
  }
}
