/* ==========================================================
   FitHarvest — Responsive CSS
   All breakpoints for mobile/tablet/desktop
   ========================================================== */

/* =============================================
   LARGE DESKTOP (1400px+)
   ============================================= */
@media (min-width: 1400px) {
  .fh-container,
  .fh-section {
    padding-left: 80px;
    padding-right: 80px;
  }

  .fh-hero {
    padding-left: 80px;
    padding-right: 80px;
  }

  .fh-hero-title {
    font-size: 80px;
  }
}

/* =============================================
   DESKTOP (1200px – 1399px)
   ============================================= */
@media (max-width: 1399px) {
  .fh-float-card-1 {
    left: -20px;
  }

  .fh-float-card-2 {
    right: -20px;
  }
}

/* =============================================
   TABLET LANDSCAPE (1024px – 1199px)
   ============================================= */
@media (max-width: 1199px) {
  .fh-nav-inner {
    padding: 16px 40px;
  }

  .fh-hero {
    padding: 120px 40px 60px;
    gap: 40px;
  }

  .fh-hero-title {
    font-size: clamp(40px, 5vw, 60px);
    letter-spacing: -2px;
  }

  .fh-float-card-1,
  .fh-float-card-2 {
    display: none;
  }

  .fh-stats-strip {
    padding: 28px 40px;
    gap: 24px;
  }

  .fh-how {
    padding: 80px 40px;
  }

  .fh-section {
    padding: 80px 40px;
  }

  .fh-features {
    padding: 0 40px 80px;
  }

  .fh-programs {
    padding: 0 40px 80px;
  }

  .fh-pricing {
    padding: 0 40px 80px;
  }

  .fh-testimonials {
    padding: 0 40px 80px;
  }

  .fh-cta-banner {
    margin: 0 40px 80px;
    padding: 60px;
    gap: 40px;
  }

  .fh-footer-inner {
    padding: 48px 40px 32px;
  }

  .fh-blog-wrap {
    padding: 100px 40px 60px;
  }

  .fh-single-wrap {
    padding: 100px 40px 60px;
  }

  .fh-single-inner {
    gap: 40px;
  }

  .fh-footer-top {
    gap: 40px;
  }
}

/* =============================================
   TABLET PORTRAIT (768px – 1023px)
   ============================================= */
@media (max-width: 1023px) {

  /* Nav */
  .fh-nav-links {
    display: none;
  }

  .fh-hamburger {
    display: flex;
  }

  .fh-mobile-menu {
    display: block;
  }

  .fh-nav-cta {
    display: none;
  }

  .fh-nav-inner {
    padding: 14px 24px;
  }

  /* Hero — stack columns */
  .fh-hero {
    grid-template-columns: 1fr;
    padding: 110px 24px 60px;
    gap: 48px;
    text-align: center;
  }

  .fh-hero-badge {
    margin-left: auto;
    margin-right: auto;
  }

  .fh-hero-sub {
    margin-left: auto;
    margin-right: auto;
  }

  .fh-hero-actions {
    justify-content: center;
  }

  .fh-hero-visual {
    order: -1;
  }

  .fh-dashboard-card {
    max-width: 400px;
    margin: 0 auto;
  }

  /* Stats */
  .fh-stats-strip {
    padding: 28px 24px;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
  }

  /* How it works */
  .fh-how {
    padding: 80px 24px;
  }

  .fh-steps {
    grid-template-columns: 1fr;
  }

  .fh-step {
    border-right: none;
    border-bottom: 1px solid var(--fh-border);
  }

  .fh-step:last-child {
    border-bottom: none;
  }

  /* Features */
  .fh-features {
    padding: 0 24px 80px;
  }

  .fh-features-grid {
    grid-template-columns: 1fr;
  }

  .fh-feature-main {
    padding: 36px;
  }

  .fh-big-num {
    font-size: 60px;
  }

  /* Programs */
  .fh-programs {
    padding: 0 24px 80px;
  }

  .fh-programs-grid {
    grid-template-columns: 1fr;
    max-width: 480px;
    margin-left: auto;
    margin-right: auto;
  }

  .fh-programs-header {
    flex-direction: column;
    align-items: flex-start;
  }

  /* Pricing */
  .fh-pricing {
    padding: 0 24px 80px;
  }

  .fh-pricing-grid {
    grid-template-columns: 1fr;
    max-width: 420px;
    margin-left: auto;
    margin-right: auto;
  }

  .fh-price-card.fh-featured {
    order: -1;
  }

  /* Testimonials */
  .fh-testimonials {
    padding: 0 24px 80px;
  }

  .fh-testi-grid {
    grid-template-columns: 1fr;
    max-width: 480px;
    margin-left: auto;
    margin-right: auto;
  }

  /* CTA */
  .fh-cta-banner {
    margin: 0 24px 80px;
    padding: 48px;
    grid-template-columns: 1fr;
    text-align: center;
  }

  .fh-cta-actions {
    width: 100%;
  }

  .fh-cta-actions .fh-btn-primary {
    width: 100%;
    justify-content: center;
  }

  /* Footer */
  .fh-footer-inner {
    padding: 48px 24px 32px;
  }

  .fh-footer-top {
    grid-template-columns: 1fr 1fr;
    gap: 32px;
  }

  .fh-footer-brand {
    grid-column: 1 / -1;
  }

  /* Blog */
  .fh-blog-wrap {
    padding: 100px 24px 60px;
  }

  .fh-blog-grid {
    grid-template-columns: 1fr;
  }

  .fh-sidebar {
    position: static;
  }

  /* Single */
  .fh-single-wrap {
    padding: 100px 24px 60px;
  }

  .fh-single-inner {
    grid-template-columns: 1fr;
  }

  .fh-sidebar {
    order: 1;
  }

  /* 404 */
  .fh-404 {
    padding: 100px 24px;
  }
}

/* =============================================
   MOBILE LARGE (600px – 767px)
   ============================================= */
@media (max-width: 767px) {
  .fh-hero {
    padding: 100px 20px 48px;
  }

  .fh-hero-title {
    font-size: clamp(36px, 10vw, 52px);
    letter-spacing: -1.5px;
  }

  .fh-hero-sub {
    font-size: 15px;
  }

  .fh-btn-primary,
  .fh-btn-ghost {
    font-size: 14px;
    padding: 14px 24px;
  }

  .fh-hero-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .fh-hero-actions .fh-btn-primary,
  .fh-hero-actions .fh-btn-ghost {
    width: 100%;
    justify-content: center;
  }

  .fh-stats-strip {
    grid-template-columns: repeat(2, 1fr);
    padding: 24px 20px;
    gap: 20px;
  }

  .fh-stat-num {
    font-size: 32px;
  }

  .fh-section-title {
    font-size: clamp(26px, 7vw, 40px);
    letter-spacing: -1px;
  }

  .fh-how {
    padding: 60px 20px;
  }

  .fh-features {
    padding: 0 20px 60px;
  }

  .fh-feature-main {
    padding: 28px;
  }

  .fh-feature-card {
    padding: 24px;
  }

  .fh-big-num {
    font-size: 52px;
    letter-spacing: -3px;
  }

  .fh-programs {
    padding: 0 20px 60px;
  }

  .fh-pricing {
    padding: 0 20px 60px;
  }

  .fh-testimonials {
    padding: 0 20px 60px;
  }

  .fh-cta-banner {
    margin: 0 20px 60px;
    padding: 40px 28px;
    border-radius: 14px;
  }

  .fh-cta-title {
    font-size: clamp(24px, 7vw, 34px);
  }

  .fh-footer-inner {
    padding: 40px 20px 28px;
  }

  .fh-footer-top {
    grid-template-columns: 1fr 1fr;
    gap: 24px;
  }

  .fh-blog-wrap {
    padding: 90px 20px 48px;
  }

  .fh-single-wrap {
    padding: 90px 20px 48px;
  }

  .fh-single-title {
    font-size: clamp(26px, 7vw, 40px);
    letter-spacing: -1px;
  }

  .fh-single-content {
    font-size: 15px;
  }

  .fh-404-num {
    font-size: clamp(80px, 20vw, 140px);
  }
}

/* =============================================
   MOBILE SMALL (< 480px)
   ============================================= */
@media (max-width: 479px) {
  .fh-hero {
    padding: 90px 16px 40px;
  }

  .fh-hero-title {
    font-size: clamp(32px, 11vw, 44px);
    letter-spacing: -1px;
  }

  .fh-dashboard-card {
    padding: 20px;
  }

  .fh-dash-metrics {
    grid-template-columns: 1fr 1fr 1fr;
    gap: 6px;
  }

  .fh-metric-val {
    font-size: 18px;
  }

  .fh-stats-strip {
    grid-template-columns: 1fr 1fr;
    padding: 20px 16px;
    gap: 16px;
  }

  .fh-stat-num {
    font-size: 28px;
  }

  .fh-step {
    padding: 32px 24px;
  }

  .fh-feature-main {
    padding: 24px;
  }

  .fh-price-card {
    padding: 28px 22px;
  }

  .fh-cta-banner {
    margin: 0 16px 48px;
    padding: 32px 20px;
  }

  .fh-footer-top {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .fh-footer-legal {
    flex-direction: column;
    gap: 10px;
  }

  .fh-blog-wrap,
  .fh-single-wrap {
    padding-left: 16px;
    padding-right: 16px;
  }

  .fh-404 {
    padding: 80px 16px;
  }
}

/* =============================================
   PRINT
   ============================================= */
@media print {
  .fh-header,
  .fh-footer,
  .fh-hamburger,
  .fh-mobile-menu,
  .fh-cta-banner,
  .fh-sidebar {
    display: none !important;
  }

  body {
    background: #fff;
    color: #000;
  }

  .fh-single-inner {
    grid-template-columns: 1fr;
  }

  a {
    color: #000;
    text-decoration: underline;
  }
}

/* =============================================
   REDUCED MOTION
   ============================================= */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }

  .fh-dashboard-card,
  .fh-float-card,
  .fh-float-card-1,
  .fh-float-card-2 {
    animation: none !important;
  }
}
