/* ============================================================
   Lake Norman Pet Grooming — ce-responsive.css
   ============================================================ */

/* ── Large Screens (≥1200px) ── */
@media (min-width: 1200px) {
  .ce-container { padding: 0 3rem; }
}

/* ── Tablets (≤991px) ── */
@media (max-width: 991px) {
  :root { --ce-nav-height: 64px; }

  .ce-nav-links, .ce-nav-cta { display: none; }
  .ce-hamburger { display: flex; }

  .ce-hero-headline { font-size: 2.8rem; }
  .ce-hero-sub { font-size: 1rem; }

  .ce-section { padding: 4rem 0; }

  .ce-gallery-grid { grid-template-columns: repeat(2, 1fr); }

  .ce-pet-care-timeline::before { left: 24px; }
  .ce-timeline-item { flex-direction: column !important; padding-left: 3.5rem; }
  .ce-timeline-dot { left: 24px; }
  .ce-timeline-content { width: 100%; }

  .ce-quiz-options { grid-template-columns: 1fr; }

  .ce-home-quiz-container { padding: 2rem; }

  .ce-testimonial-card { min-width: 280px; }
}

/* ── Mobile (≤767px) ── */
@media (max-width: 767px) {
  h1 { font-size: 2rem; }
  h2 { font-size: 1.6rem; }
  h3 { font-size: 1.25rem; }

  .ce-hero-showcase { min-height: auto; padding-bottom: 3rem; }
  .ce-hero-content { padding-top: calc(var(--ce-nav-height) + 2rem); }

  .ce-hero-actions { flex-direction: column; align-items: flex-start; }
  .ce-hero-stats { gap: 1.5rem; }
  .ce-hero-stat-num { font-size: 1.8rem; }

  .ce-section { padding: 3rem 0; }
  .ce-section-header { margin-bottom: 2.5rem; }

  .ce-gallery-grid { grid-template-columns: 1fr; }

  .ce-floating-btn span { display: none; }
  .ce-floating-btn {
    width: 56px; height: 56px;
    padding: 0;
    justify-content: center;
    border-radius: 50%;
    bottom: 1.5rem; right: 1.5rem;
  }

  .ce-cookie-banner {
    flex-direction: column;
    align-items: flex-start;
    padding: 1.25rem;
  }

  .ce-cookie-actions { width: 100%; justify-content: flex-end; }

  .ce-newsletter-form { flex-direction: column; }
  .ce-newsletter-input { min-width: unset; width: 100%; }

  .ce-footer-bottom {
    flex-direction: column;
    text-align: center;
  }
  .ce-footer-legal { justify-content: center; }

  .ce-compare-table { font-size: 0.82rem; }
  .ce-compare-table th, .ce-compare-table td { padding: 0.7rem; }

  .ce-coat-assessment { padding: 1.5rem; }
  .ce-knowledge-quiz { padding: 1.5rem; }
  .ce-home-quiz-container { padding: 1.5rem; }

  .ce-team-photo { height: 220px; }

  .ce-article-hero { height: 240px; }
  .ce-page-header { padding-top: calc(var(--ce-nav-height) + 3rem); padding-bottom: 4rem; }

  .ce-navbar-inner { padding: 0 1.25rem; }
  .ce-container { padding: 0 1.25rem; }
}

/* ── Small Mobile (≤480px) ── */
@media (max-width: 480px) {
  .ce-btn { padding: 0.75rem 1.5rem; font-size: 0.875rem; }
  .ce-hero-badge { font-size: 0.7rem; }
  .ce-brand-text { font-size: 0.95rem; }
  .ce-brand-text span { display: none; }
  .ce-testimonial-carousel { overflow: hidden; }
  .ce-stat-num { font-size: 2rem; }
}

/* ── Print ── */
@media print {
  .ce-navbar, .ce-floating-btn, .ce-cookie-banner, .ce-scroll-progress { display: none; }
  .ce-hero-showcase { min-height: auto; }
  body { font-size: 12pt; }
}

/* ── Reduced Motion ── */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
  .ce-floating-btn { animation: none; }
  html { scroll-behavior: auto; }
}

/* ── High contrast ── */
@media (forced-colors: active) {
  .ce-btn-primary, .ce-btn-accent {
    border: 2px solid ButtonText;
  }
}

/* ── Grid helpers ── */
.ce-grid-2 {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5rem;
}
.ce-grid-3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}
.ce-grid-4 {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
}
.ce-grid-5 {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 1.5rem;
}

@media (max-width: 1199px) {
  .ce-grid-4 { grid-template-columns: repeat(2, 1fr); }
  .ce-grid-5 { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 991px) {
  .ce-grid-3 { grid-template-columns: repeat(2, 1fr); }
  .ce-grid-5 { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 767px) {
  .ce-grid-2, .ce-grid-3, .ce-grid-4, .ce-grid-5 {
    grid-template-columns: 1fr;
  }
  .ce-grid-2-sm { grid-template-columns: repeat(2, 1fr) !important; }
}

/* ── Stats bar responsive ── */
@media (max-width: 767px) {
  .ce-stats-grid { grid-template-columns: repeat(2, 1fr); gap: 1rem; }
  .ce-stat-number { font-size: 2.2rem; }
}
@media (max-width: 480px) {
  .ce-stats-grid { grid-template-columns: repeat(2, 1fr); }
  .ce-hero-heading { font-size: 1.9rem; }
  .ce-hero-subheading { font-size: 0.95rem; }
  .ce-quiz-options { grid-template-columns: 1fr; }
}
