@media(max-width:374px) {
  :root { --px: 16px; }
  .hero-title { font-size: 1.6rem; }
  .hero-subtitle { font-size: .88rem; }
  .hero-text-carousel { height: 280px; }
  .hero-badge { font-size: .65rem; padding: 6px 14px; }
  .hero-buttons { flex-direction: column; align-items: stretch; }
  .btn-primary, .btn-outline { justify-content: center; padding: 14px 20px; font-size: .8rem; }
  .hero-stats { gap: 20px; }
  .stat-number { font-size: 1.8rem; }
  .section-heading { font-size: 1.5rem; }
  .service-card { padding: 28px 20px; }
  .contact-form { padding: 28px 20px; }
  .faq-question { padding: 18px 20px; font-size: .85rem; }
}

@media(max-width:575px) {
  :root { --px: 20px; }
  section { padding: 72px 0; }
  .nav-container { padding: 0 20px; }
  .nav-links, .nav-cta { display: none; }
  .hamburger { display: flex; }
  .mobile-menu { display: flex; }
  .hero-content { padding: 110px var(--px) 48px; }
  .hero-text-carousel { height: 260px; }
  .hero-title { font-size: 1.8rem; line-height: 1.15; }
  .hero-subtitle { font-size: .9rem; }
  .hero-badge { margin-bottom: 28px; }
  .hero-buttons { flex-direction: column; align-items: stretch; }
  .btn-primary, .btn-outline { justify-content: center; }
  .hero-stats { flex-direction: column; gap: 20px; margin-top: 48px; align-items: center; }
  .hero-carousel-controls { margin-bottom: 28px; }
  .about-grid, .faq-grid, .location-grid, .contact-grid { grid-template-columns: 1fr; gap: 40px; }
  .about-visual { max-width: 320px; margin: 0 auto; }
  .about-floating-card { right: 8px; bottom: -16px; padding: 18px 22px; }
  .about-floating-card .number { font-size: 1.8rem; }
  .services-grid { grid-template-columns: 1fr; }
  .form-row { grid-template-columns: 1fr; }
  .contact-form { padding: 32px 24px; }
  .footer-content { flex-direction: column; gap: 20px; text-align: center; }
  .footer-bottom { flex-direction: column; gap: 8px; text-align: center; }
  .location-map { aspect-ratio: 4/3; }
  .marquee-item { font-size: 1rem; }
  .partners-header .section-heading { font-size: 1.5rem; }
  .cookie-banner-inner { flex-direction: column; text-align: center; gap: 16px; padding: 20px; }
  .cookie-banner-icon { margin: 0 auto; }
  .cookie-banner-actions { width: 100%; justify-content: center; }
  .cookie-pref-item { flex-direction: column; gap: 10px; align-items: flex-start; }
}

@media(min-width:576px) and (max-width:767px) {
  :root { --px: 28px; }
  section { padding: 80px 0; }
  .nav-links, .nav-cta { display: none; }
  .hamburger { display: flex; }
  .mobile-menu { display: flex; }
  .hero-text-carousel { height: 200px; }
  .hero-content { padding: 120px var(--px) 60px; }
  .hero-buttons { justify-content: center; }
  .about-grid, .faq-grid, .location-grid, .contact-grid { grid-template-columns: 1fr; gap: 48px; }
  .about-visual { max-width: 400px; margin: 0 auto; }
  .services-grid { grid-template-columns: 1fr 1fr; }
  .hero-stats { justify-content: center; gap: 40px; }
}

@media(min-width:768px) and (max-width:1023px) {
  :root { --px: 36px; }
  .hero-text-carousel { height: 200px; }
  .about-grid, .faq-grid, .location-grid, .contact-grid { grid-template-columns: 1fr; gap: 56px; }
  .about-visual { max-width: 480px; margin: 0 auto; }
  .services-grid { grid-template-columns: repeat(2, 1fr); }
}

@media(min-width:1024px) and (max-width:1279px) {
  .hero-text-carousel { height: 280px; }
  .about-grid { gap: 60px; }
  .faq-grid { gap: 60px; }
}

@media(min-width:1600px) {
  :root { --container: 1440px; }
  .hero-text-carousel { height: 330px; }
  .hero-title { font-size: 4.5rem; }
  .hero-subtitle { font-size: 1.2rem; max-width: 660px; }
  .section-heading { font-size: 3.2rem; }
  .services-grid { gap: 32px; }
  .about-grid { gap: 100px; }
}

@media(min-width:1920px) {
  :root { --container: 1560px; --px: 60px; }
  .hero-text-carousel { height: 380px; }
  .hero-title { font-size: 5rem; }
  .hero-subtitle { font-size: 1.3rem; max-width: 720px; }
  .hero-badge { font-size: .82rem; padding: 10px 28px; }
  .hero-stats { gap: 72px; }
  .stat-number { font-size: 3rem; }
  .section-heading { font-size: 3.5rem; max-width: 750px; }
  .service-card { padding: 48px 40px; }
  .service-card h3 { font-size: 1.25rem; }
  .service-card p { font-size: 1rem; }
  .about-grid { gap: 120px; }
  .contact-form { padding: 56px; }
}

@media(min-width:2560px) {
  :root { --container: 1800px; --px: 80px; }
  html { font-size: 18px; }
  .hero-text-carousel { height: 440px; }
  .hero-title { font-size: 5.5rem; }
}
