/* ══════════════════════════════════════════════════════
   Enfoca — Shared Design System CSS
   Loaded by all pages. Source of truth for utilities.
   ══════════════════════════════════════════════════════ */

/* ── Base ────────────────────────────────────────────── */
html { scroll-behavior: smooth; }
:root {
  --enfoca-nav-logo-height: 17px;
  --enfoca-nav-cta-bg: #30312e;
  --enfoca-nav-cta-bg-hover: #404944;
  --enfoca-nav-cta-color: #f2f0ed;
  --enfoca-home-hero-size-sm: 3rem;
  --enfoca-home-hero-size-md: 4.5rem;
  --enfoca-home-hero-size-lg: 5.5rem;
  --enfoca-home-hero-leading: 1.05;
  --enfoca-home-hero-tracking: -0.025em;
  --enfoca-home-feature-size-sm: 2.25rem;
  --enfoca-home-feature-size-lg: 3rem;
  --enfoca-home-feature-leading: 1.25;
  --enfoca-home-feature-tracking: -0.025em;
  --enfoca-home-section-size: 2.25rem;
  --enfoca-home-section-leading: 2.5rem;
  --enfoca-home-section-tracking: -0.025em;
  --enfoca-home-step-size: 1.5rem;
  --enfoca-home-step-leading: 2rem;
  --enfoca-home-step-tracking: -0.025em;
  --enfoca-home-counter-size: 2.25rem;
  --enfoca-home-counter-leading: 2.5rem;
  --enfoca-home-cta-title-size-sm: 1.875rem;
  --enfoca-home-cta-title-size-md: 2.25rem;
  --enfoca-home-cta-title-leading-sm: 2.25rem;
  --enfoca-home-cta-title-leading-md: 2.5rem;
  --enfoca-home-cta-title-tracking: -0.025em;
  --enfoca-catalog-hero-size-sm: 3rem;
  --enfoca-catalog-hero-size-md: 5rem;
  --enfoca-catalog-hero-leading: 0.95;
  --enfoca-catalog-hero-tracking: -0.05em;
  --enfoca-catalog-suite-size-sm: 1.875rem;
  --enfoca-catalog-suite-size-md: 2.25rem;
  --enfoca-catalog-suite-leading-sm: 2.25rem;
  --enfoca-catalog-suite-leading-md: 2.5rem;
  --enfoca-catalog-suite-tracking: -0.05em;
  --enfoca-product-hero-size-sm: 3rem;
  --enfoca-product-hero-size-md: 4.75rem;
  --enfoca-product-hero-leading: 0.98;
  --enfoca-product-hero-tracking: -0.025em;
  --enfoca-product-section-size-sm: 1.5rem;
  --enfoca-product-section-size-md: 1.875rem;
  --enfoca-product-section-leading-sm: 2rem;
  --enfoca-product-section-leading-md: 2.25rem;
  --enfoca-product-section-tracking: -0.025em;
  --enfoca-product-panel-size: 1.5rem;
  --enfoca-product-panel-leading: 2rem;
  --enfoca-product-panel-tracking: -0.025em;
  --enfoca-product-card-size: 1.25rem;
  --enfoca-product-card-leading: 1.75rem;
  --enfoca-product-card-tracking: -0.025em;
  --enfoca-product-mini-size: 1.125rem;
  --enfoca-product-mini-leading: 1.75rem;
  --enfoca-product-mini-tracking: -0.025em;
  --enfoca-checkout-title-size-sm: 1.25rem;
  --enfoca-checkout-title-size-md: 1.5rem;
  --enfoca-checkout-title-leading-sm: 1.75rem;
  --enfoca-checkout-title-leading-md: 2rem;
  --enfoca-checkout-title-tracking: -0.025em;
  --enfoca-success-title-size-sm: 2.25rem;
  --enfoca-success-title-size-md: 3rem;
  --enfoca-success-title-leading-sm: 2.5rem;
  --enfoca-success-title-leading-md: 1;
  --enfoca-success-title-tracking: -0.025em;
  --enfoca-success-panel-size: 1.5rem;
  --enfoca-success-panel-leading: 2rem;
  --enfoca-success-panel-tracking: -0.025em;
}
body {
  font-family: 'Inter', system-ui, sans-serif;
  line-height: 1.5;
}

/* ── Material Symbols ────────────────────────────────── */
.material-symbols-outlined {
  font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
}

/* ── Typography Helpers ──────────────────────────────── */
.serif-tight {
  font-family: 'Noto Serif', serif;
  letter-spacing: -0.02em;
}
.label-font {
  font-family: 'Inter', system-ui, sans-serif;
}

.enfoca-nav-logo {
  height: var(--enfoca-nav-logo-height);
  width: auto;
  object-fit: contain;
  flex-shrink: 0;
}

.enfoca-nav-cta {
  align-items: center;
  background-color: var(--enfoca-nav-cta-bg);
  border-radius: 9999px;
  color: var(--enfoca-nav-cta-color);
  display: inline-flex;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 10px;
  font-weight: 700;
  justify-content: center;
  letter-spacing: 0.2em;
  padding: 0.625rem 1.5rem;
  text-transform: uppercase;
  transition: background-color 0.3s ease, color 0.3s ease;
}

.enfoca-nav-cta:hover {
  background-color: var(--enfoca-nav-cta-bg-hover);
  color: var(--enfoca-nav-cta-color);
}

.enfoca-home-hero {
  font-size: var(--enfoca-home-hero-size-sm);
  line-height: var(--enfoca-home-hero-leading);
  letter-spacing: var(--enfoca-home-hero-tracking);
}

.enfoca-home-feature-title {
  font-size: var(--enfoca-home-feature-size-sm);
  line-height: var(--enfoca-home-feature-leading);
  letter-spacing: var(--enfoca-home-feature-tracking);
}

.enfoca-home-section-title {
  font-size: var(--enfoca-home-section-size);
  line-height: var(--enfoca-home-section-leading);
  letter-spacing: var(--enfoca-home-section-tracking);
}

.enfoca-home-step-title {
  font-size: var(--enfoca-home-step-size);
  line-height: var(--enfoca-home-step-leading);
  letter-spacing: var(--enfoca-home-step-tracking);
}

.enfoca-home-counter {
  font-size: var(--enfoca-home-counter-size);
  line-height: var(--enfoca-home-counter-leading);
}

.enfoca-home-cta-title {
  font-size: var(--enfoca-home-cta-title-size-sm);
  line-height: var(--enfoca-home-cta-title-leading-sm);
  letter-spacing: var(--enfoca-home-cta-title-tracking);
}

.enfoca-catalog-hero {
  font-size: var(--enfoca-catalog-hero-size-sm);
  line-height: var(--enfoca-catalog-hero-leading);
  letter-spacing: var(--enfoca-catalog-hero-tracking);
}

.enfoca-catalog-suite-title {
  font-size: var(--enfoca-catalog-suite-size-sm);
  line-height: var(--enfoca-catalog-suite-leading-sm);
  letter-spacing: var(--enfoca-catalog-suite-tracking);
}

.enfoca-product-hero {
  font-size: var(--enfoca-product-hero-size-sm);
  line-height: var(--enfoca-product-hero-leading);
  letter-spacing: var(--enfoca-product-hero-tracking);
}

.enfoca-product-section-title {
  font-size: var(--enfoca-product-section-size-sm);
  line-height: var(--enfoca-product-section-leading-sm);
  letter-spacing: var(--enfoca-product-section-tracking);
}

.enfoca-product-panel-title {
  font-size: var(--enfoca-product-panel-size);
  line-height: var(--enfoca-product-panel-leading);
  letter-spacing: var(--enfoca-product-panel-tracking);
}

.enfoca-product-card-title {
  font-size: var(--enfoca-product-card-size);
  line-height: var(--enfoca-product-card-leading);
  letter-spacing: var(--enfoca-product-card-tracking);
}

.enfoca-product-mini-title {
  font-size: var(--enfoca-product-mini-size);
  line-height: var(--enfoca-product-mini-leading);
  letter-spacing: var(--enfoca-product-mini-tracking);
}

.enfoca-checkout-title {
  font-size: var(--enfoca-checkout-title-size-sm);
  line-height: var(--enfoca-checkout-title-leading-sm);
  letter-spacing: var(--enfoca-checkout-title-tracking);
}

.enfoca-success-title {
  font-size: var(--enfoca-success-title-size-sm);
  line-height: var(--enfoca-success-title-leading-sm);
  letter-spacing: var(--enfoca-success-title-tracking);
}

.enfoca-success-panel-title {
  font-size: var(--enfoca-success-panel-size);
  line-height: var(--enfoca-success-panel-leading);
  letter-spacing: var(--enfoca-success-panel-tracking);
}

@media (min-width: 768px) {
  .enfoca-home-hero {
    font-size: var(--enfoca-home-hero-size-md);
  }

  .enfoca-home-cta-title {
    font-size: var(--enfoca-home-cta-title-size-md);
    line-height: var(--enfoca-home-cta-title-leading-md);
  }

  .enfoca-catalog-hero {
    font-size: var(--enfoca-catalog-hero-size-md);
  }

  .enfoca-catalog-suite-title {
    font-size: var(--enfoca-catalog-suite-size-md);
    line-height: var(--enfoca-catalog-suite-leading-md);
  }

  .enfoca-product-hero {
    font-size: var(--enfoca-product-hero-size-md);
  }

  .enfoca-product-section-title {
    font-size: var(--enfoca-product-section-size-md);
    line-height: var(--enfoca-product-section-leading-md);
  }

  .enfoca-checkout-title {
    font-size: var(--enfoca-checkout-title-size-md);
    line-height: var(--enfoca-checkout-title-leading-md);
  }

  .enfoca-success-title {
    font-size: var(--enfoca-success-title-size-md);
    line-height: var(--enfoca-success-title-leading-md);
  }
}

@media (min-width: 1024px) {
  .enfoca-home-hero {
    font-size: var(--enfoca-home-hero-size-lg);
  }

  .enfoca-home-feature-title {
    font-size: var(--enfoca-home-feature-size-lg);
  }
}

/* ── Shadows ─────────────────────────────────────────── */
.soft-shadow {
  box-shadow: 0 40px 60px -20px rgba(0, 53, 39, 0.08);
}
.editorial-shadow {
  box-shadow: 0 10px 40px -15px rgba(27, 28, 26, 0.06);
}
.editorial-shadow-lg {
  box-shadow: 0 20px 60px -20px rgba(27, 28, 26, 0.1);
}

/* ── Scrollbar Hide ──────────────────────────────────── */
.no-scrollbar::-webkit-scrollbar { display: none; }
.no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }

/* ── Video Hover Effect ──────────────────────────────── */
.video-grayscale {
  filter: grayscale(100%);
  transition: filter 0.7s ease;
}
.group:hover .video-grayscale {
  filter: grayscale(0%);
}

/* ── Entrance Animations ─────────────────────────────── */
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: translateY(0); }
}
.fade-up { animation: fadeUp 0.8s ease-out both; }
.fade-up-delay-1 { animation-delay: 0.1s; }
.fade-up-delay-2 { animation-delay: 0.2s; }
.fade-up-delay-3 { animation-delay: 0.3s; }
.fade-up-delay-4 { animation-delay: 0.4s; }

/* ── Pricing Tiers (products page) ───────────────────── */
.tier-card {
  transition: all 0.3s ease;
}
.tier-card:hover {
  box-shadow: 0 20px 60px -15px rgba(6, 78, 59, 0.15);
  transform: translateY(-2px);
}

/* ── UI Polish: Micro-Interactions ───────────────────── */
.hover-lift {
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}
.hover-lift:hover {
  transform: translateY(-6px);
  box-shadow: 0 24px 48px -12px rgba(6, 78, 59, 0.12);
}

.accent-top-border {
  border-top: 4px solid var(--accent, #064E3B);
}

.hover-accent-border {
  border-top: 4px solid transparent;
  transition: border-color 0.4s ease, transform 0.4s ease, box-shadow 0.4s ease;
}
.hover-accent-border:hover {
  border-top-color: var(--accent, #064E3B);
}

/* ── Accessibility: Reduced Motion ──────────────────── */
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }

  .fade-up,
  .fade-up-delay-1,
  .fade-up-delay-2,
  .fade-up-delay-3,
  .fade-up-delay-4 {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
  }

  .tier-card:hover,
  .hover-lift:hover,
  .hover-accent-border:hover,
  .group:hover .video-grayscale {
    transform: none !important;
    box-shadow: inherit !important;
    filter: none !important;
  }
}
