/* ============================================================
   Atelier — Responsive CSS
   Mobile-first breakpoints: 320px, 768px, 1024px, 1440px
   ============================================================ */

/* ── Base (Mobile — 320px+) ──────────────────────────────────── */

/* Navigation */
.nav-links { display: none; }
.nav-cta   { display: none; }
.hamburger { display: flex; }
.mobile-nav { display: block; }

/* Hero */
.hero-inner {
  grid-template-columns: 1fr;
  text-align: center;
  gap: 2.5rem;
  padding: 3rem 0 5rem;
}
.hero-title { font-size: clamp(1.75rem, 6vw, 2.5rem); }
.hero-subtitle { margin: 0 auto 2rem; }
.hero-cta { justify-content: center; }
.hero-stats { justify-content: center; gap: 1.5rem; }

/* Problem / Solution */
.problem-grid, .solution-grid { grid-template-columns: 1fr; gap: 1rem; }

/* Features grid */
.features-grid { grid-template-columns: 1fr; }

/* Timeline — vertical */
.timeline {
  grid-template-columns: 1fr;
  gap: 0;
}
.timeline::before { display: none; }
.timeline-progress { display: none; }
.timeline-step {
  flex-direction: row;
  align-items: flex-start;
  text-align: left;
  padding: 0 0 2rem;
  position: relative;
}
.timeline-step::after {
  content: '';
  position: absolute;
  left: 27px;
  top: 56px;
  bottom: 0;
  width: 2px;
  background: var(--color-border);
}
.timeline-step:last-child::after { display: none; }
.timeline-circle {
  margin-bottom: 0;
  margin-right: 1.25rem;
  flex-shrink: 0;
}
.timeline-content { padding-top: 0.75rem; }

/* Pricing */
.pricing-grid {
  grid-template-columns: 1fr;
  max-width: 360px;
  margin: 3rem auto 0;
}
.pricing-card.popular { transform: scale(1); }

/* Testimonials */
.testimonial-slide { grid-template-columns: 1fr; }

/* Newsletter form */
.newsletter-form { flex-direction: column; }

/* Footer */
.footer-inner {
  grid-template-columns: 1fr;
  gap: 2rem;
}
.footer-bottom {
  flex-direction: column;
  gap: 1rem;
  text-align: center;
}
.footer-bottom-links { justify-content: center; }

/* Feature rows (features.html) */
.feature-row, .feature-row.reverse {
  grid-template-columns: 1fr;
  gap: 2rem;
  direction: ltr;
}

/* Comparison table — scroll */
.comparison-table-wrapper {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  border-radius: var(--radius-card);
  box-shadow: var(--shadow-card);
}
.comparison-table { min-width: 580px; }

/* CTA buttons */
.cta-buttons { flex-direction: column; align-items: center; }

/* Demo calendly */
.calendly-wrapper { min-height: 580px; }

/* Hero visual — hide on very small screens or scale down */
.hero-visual { max-width: 100%; }
.mockup-browser { transform: scale(0.92); transform-origin: top center; }
.mockup-screen  { height: 260px; }
.mockup-stat-cards { grid-template-columns: repeat(2, 1fr); }
.mockup-sidebar { width: 120px; }

/* ── Tablet (768px+) ────────────────────────────────────────── */
@media (min-width: 768px) {
  /* Navigation */
  .hamburger { display: none; }
  .nav-links  { display: flex; }
  .nav-cta    { display: flex; }
  .mobile-nav { display: none !important; }

  /* Hero */
  .hero-inner {
    grid-template-columns: 1fr 1fr;
    text-align: left;
    padding: 5rem 0;
  }
  .hero-subtitle { margin: 0 0 2rem; }
  .hero-cta  { justify-content: flex-start; }
  .hero-stats { justify-content: flex-start; }

  /* Grids */
  .problem-grid, .solution-grid { grid-template-columns: repeat(3, 1fr); }
  .features-grid { grid-template-columns: repeat(2, 1fr); }

  /* Timeline — horizontal */
  .timeline { grid-template-columns: repeat(4, 1fr); gap: 0; }
  .timeline::before { display: block; }
  .timeline-progress { display: block; }
  .timeline-step {
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 0 1rem;
  }
  .timeline-step::after { display: none; }
  .timeline-circle {
    margin-right: 0;
    margin-bottom: 1.25rem;
  }

  /* Pricing */
  .pricing-grid {
    grid-template-columns: repeat(3, 1fr);
    max-width: none;
  }
  .pricing-card.popular { transform: scale(1.03); }

  /* Testimonials */
  .testimonial-slide { grid-template-columns: repeat(3, 1fr); }

  /* Newsletter */
  .newsletter-form { flex-direction: row; }

  /* Feature rows */
  .feature-row {
    grid-template-columns: 1fr 1fr;
    gap: 4rem;
  }
  .feature-row.reverse { direction: rtl; }
  .feature-row.reverse > * { direction: ltr; }

  /* Footer */
  .footer-inner { grid-template-columns: 2fr 1fr 1fr 1fr; }
  .footer-bottom {
    flex-direction: row;
    text-align: left;
  }
  .footer-bottom-links { justify-content: flex-start; }

  /* Mockup restore */
  .mockup-browser { transform: none; }
  .mockup-screen  { height: 340px; }
  .mockup-stat-cards { grid-template-columns: repeat(4, 1fr); }
  .mockup-sidebar { width: 160px; }

  /* CTA buttons */
  .cta-buttons { flex-direction: row; }
}

/* ── Desktop (1024px+) ──────────────────────────────────────── */
@media (min-width: 1024px) {
  /* Features grid — 3 columns */
  .features-grid { grid-template-columns: repeat(3, 1fr); }

  /* Container padding */
  .container { padding: 0 2rem; }

  /* Sections */
  .section { padding: 6rem 0; }

  /* Feature deep-dive gap */
  .feature-row { gap: 5rem; }

  /* Pricing — aligned tops */
  .pricing-grid { align-items: stretch; }
}

/* ── Wide Desktop (1440px+) ─────────────────────────────────── */
@media (min-width: 1440px) {
  .container { max-width: 1280px; }
  .hero-inner { gap: 5rem; }
  .features-grid { gap: 2rem; }
}

/* ── Touch / Hover Media Query ───────────────────────────────── */
@media (hover: none) {
  /* Remove hover effects on touch devices */
  .card:hover, .feature-card:hover, .pricing-card:hover, .btn-primary:hover, .btn-secondary:hover {
    transform: none;
  }
  /* Ensure tap targets are large enough */
  .nav-link, .mobile-nav-link, .footer-link, .faq-question {
    min-height: 44px;
    display: flex;
    align-items: center;
  }
}

/* ── Print ───────────────────────────────────────────────────── */
@media print {
  .nav, .hamburger, .mobile-nav, .scroll-progress,
  .toast-container, .hero-gradient-bg { display: none; }
  .hero { min-height: auto; padding-top: 1rem; }
  body { color: #000; }
  a[href]::after { content: " (" attr(href) ")"; font-size: 0.75em; }
}

/* ── Reduced Motion ──────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
  .gsap-fade-up, .gsap-fade-in, .gsap-scale-in,
  .gsap-slide-left, .gsap-slide-right {
    opacity: 1;
    transform: none;
  }
}

/* ── Focus Visible ──────────────────────────────────────────── */
:focus-visible {
  outline: 3px solid var(--color-primary);
  outline-offset: 3px;
  border-radius: 4px;
}
a:focus-visible, button:focus-visible { outline: 3px solid var(--color-primary); }
