/* IndogenMed Australia - Responsive CSS
   Breakpoints: 320, 480, 768, 1024, 1280, 1440, 2560px
   ================================================ */

/* ==========================================
   2560px - 4K / Ultra-wide
   ========================================== */
@media (min-width: 2560px) {
  :root { --container-max: 1600px; }
  body { font-size: 18px; }
  .hero h1 { font-size: 4rem; }
  .hero-trust { grid-template-columns: repeat(4, 1fr); }
  .features-grid { grid-template-columns: repeat(3, 1fr); gap: 2.5rem; }
  .services-grid { grid-template-columns: repeat(4, 1fr); gap: 2.5rem; }
  .doctors-grid { grid-template-columns: repeat(4, 1fr); gap: 2.5rem; }
}

/* ==========================================
   1440px - Large desktops
   ========================================== */
@media (min-width: 1440px) {
  :root { --container-max: 1320px; }
  .hero-inner { grid-template-columns: 1fr 460px; }
}

/* ==========================================
   1280px - Standard desktops
   ========================================== */
@media (max-width: 1280px) {
  :root { --container-max: 1100px; }
  .hero-inner { gap: 2rem; }
  .hero-lead-card { padding: 1.5rem; }
  .services-grid { grid-template-columns: repeat(3, 1fr); }
  .footer-links { grid-template-columns: repeat(3, 1fr); }
}

/* ==========================================
   1024px - Tablets landscape / small desktop
   ========================================== */
@media (max-width: 1024px) {
  :root { --header-height: 64px; }
  .container { padding: 0 1.5rem; }

  /* Header */
  .nav-links, .header-phone { display: none; }
  .hamburger { display: flex; }
  .header-actions .btn { display: none; }

  /* Hero */
  .hero-inner { grid-template-columns: 1fr; }
  .hero-lead-card { display: none; }
  .hero { min-height: 80vh; }
  .hero-trust { grid-template-columns: repeat(2, 1fr); gap: 1rem; }

  /* Sections */
  .features-grid { grid-template-columns: repeat(2, 1fr); }
  .services-grid { grid-template-columns: repeat(2, 1fr); }
  .steps-grid::before { display: none; }
  .doctors-grid { grid-template-columns: repeat(2, 1fr); }
  .lead-inner { grid-template-columns: 1fr; }
  .lead-content { display: none; }

  /* Footer */
  .footer-main { grid-template-columns: 1fr; gap: 2rem; }
  .footer-links { grid-template-columns: repeat(2, 1fr); }

  /* Contact & services */
  .contact-grid { grid-template-columns: 1fr; }
  .service-full-inner { grid-template-columns: 1fr; }
  .service-full-inner.reverse { direction: ltr; }
  .values-grid { grid-template-columns: repeat(2, 1fr); }
}

/* ==========================================
   768px - Tablets portrait
   ========================================== */
@media (max-width: 768px) {
  :root {
    --spacing-4xl: 3.5rem;
    --spacing-3xl: 2.5rem;
    --spacing-2xl: 2rem;
  }

  section { padding: 3rem 0; }
  .container { padding: 0 1.25rem; }

  /* Typography */
  h1 { font-size: 2rem; }
  h2 { font-size: 1.6rem; }

  /* Hero */
  .hero { padding: calc(var(--header-height) + 2rem) 0 2rem; }
  .hero-ctas { flex-direction: column; gap: 0.75rem; }
  .hero-ctas .btn { width: 100%; justify-content: center; }
  .hero-trust { grid-template-columns: repeat(2, 1fr); }

  /* Features */
  .features-grid { grid-template-columns: 1fr; gap: 1rem; }
  .feature-card { padding: 1.25rem; }

  /* Services */
  .services-grid { grid-template-columns: repeat(2, 1fr); gap: 1rem; }

  /* How it works */
  .steps-grid { grid-template-columns: 1fr; gap: 2rem; }

  /* Doctors */
  .doctors-grid { grid-template-columns: repeat(2, 1fr); gap: 1rem; }

  /* Testimonials */
  .testimonial-card { padding: 1.5rem; }
  .testimonial-text { font-size: 0.95rem; }

  /* Lead form */
  .form-row { grid-template-columns: 1fr; }
  .lead-form-wrapper { padding: 1.5rem; }

  /* FAQ */
  .faq-question { font-size: 0.95rem; }

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

  /* Contact */
  .contact-grid { grid-template-columns: 1fr; }

  /* Page hero */
  .page-hero { padding: calc(var(--header-height) + 2rem) 0 2rem; }

  /* Values */
  .values-grid { grid-template-columns: 1fr; }

  /* Cookie */
  .cookie-inner { flex-direction: column; gap: 1rem; align-items: flex-start; }
}

/* ==========================================
   480px - Large phones
   ========================================== */
@media (max-width: 480px) {
  :root {
    --spacing-4xl: 2.5rem;
    --spacing-3xl: 2rem;
    --spacing-2xl: 1.5rem;
    --spacing-xl: 1.25rem;
  }

  .container { padding: 0 1rem; }

  /* Header */
  .logo-name { font-size: 1.1rem; }
  .header-logo img { height: 32px; }

  /* Hero */
  .hero h1 { font-size: 1.6rem; }
  .hero-subtitle { font-size: 1rem; }
  .hero-badge { font-size: 0.78rem; }
  .trust-stat .number { font-size: 1.2rem; }

  /* Services */
  .services-grid { grid-template-columns: 1fr; }

  /* Doctors */
  .doctors-grid { grid-template-columns: 1fr; }

  /* Footer */
  .footer-links { grid-template-columns: 1fr; }
  .footer-main { gap: 1.5rem; }

  /* Steps */
  .step-number { width: 56px; height: 56px; font-size: 1.4rem; }

  /* Modal */
  .modal-box { padding: 1.25rem; }

  /* 404 */
  .notfound h1 { font-size: 5rem; }
  .notfound h2 { font-size: 1.5rem; }

  /* Buttons */
  .btn-lg { padding: 0.875rem 1.75rem; font-size: 1rem; }

  /* Carousel */
  .carousel-btn { width: 36px; height: 36px; }
}

/* ==========================================
   320px - Small phones
   ========================================== */
@media (max-width: 320px) {
  .container { padding: 0 0.75rem; }
  h1 { font-size: 1.4rem; }
  h2 { font-size: 1.3rem; }
  .hero h1 { font-size: 1.4rem; }
  .hero-trust { grid-template-columns: 1fr 1fr; gap: 0.75rem; }
  .trust-stat .number { font-size: 1rem; }
  .btn { padding: 0.625rem 1.25rem; font-size: 0.9rem; }
  .feature-card, .doctor-card, .step-card { padding: 1rem; }
  .section-header { margin-bottom: 1.5rem; }
  .footer-links { grid-template-columns: 1fr; }
  .radio-group { flex-direction: column; gap: 0.75rem; }
  .form-row { grid-template-columns: 1fr; }
}

/* ==========================================
   Utility: Hide/Show at breakpoints
   ========================================== */
@media (max-width: 768px) { .hide-mobile { display: none !important; } }
@media (min-width: 769px) { .hide-desktop { display: none !important; } }
@media (max-width: 1024px) { .hide-tablet { display: none !important; } }

/* ==========================================
   Focus styles for accessibility
   ========================================== */
:focus-visible {
  outline: 3px solid var(--color-secondary);
  outline-offset: 2px;
  border-radius: 2px;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
  .animate-on-scroll { opacity: 1 !important; transform: none !important; }
}
