/* ==========================================================================
   aarecom AG – Responsive v2 (Desktop-CSS in style.css)
   Breakpoints: 480 / 768 / 860 / 1024 / 1100
   ========================================================================== */

/* ---------- bis 1100px ---------- */
@media (max-width: 1100px) {
  .header-phone span { display: none; }
  .main-nav a { padding: 10px 10px; font-size: 14.5px; }
  .values-strip { grid-template-columns: repeat(4, 1fr); }
  .value-cell { min-height: 200px; }
}

/* ---------- bis 1024px: Tablet ---------- */
@media (max-width: 1024px) {
  .section { padding: var(--s-12) 0; }

  .hero-grid { grid-template-columns: minmax(0, 1fr); gap: var(--s-6); }
  .hero { padding-top: calc(var(--header-h) + 48px); }
  .hero-sub { max-width: 100%; }
  .sig-stage { max-width: 560px; margin: 0 auto; width: 100%; }
  .band-grid { grid-template-columns: 1fr; gap: var(--s-6); }
  .band-map { max-width: 620px; margin: 0 auto; }
  .hero-strands { height: 40%; opacity: .7; }

  .services-grid { grid-template-columns: repeat(2, 1fr); }
  .service-card-feature { grid-column: span 2; }

  .tech-grid, .about-grid, .contact-grid { grid-template-columns: 1fr; gap: var(--s-6); }
  .tech-media { max-width: 560px; }

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

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

  .footer-grid { grid-template-columns: 1fr 1fr; }
}

/* ---------- bis 860px: Mobile Navigation ---------- */
@media (max-width: 860px) {
  .nav-toggle { display: flex; }
  .btn-header { display: none; }

  .main-nav {
    position: fixed;
    top: var(--header-h);
    left: 0; right: 0;
    background: var(--surface);
    border-bottom: 1px solid var(--hairline);
    box-shadow: var(--shadow-m);
    transform: translateY(-12px);
    opacity: 0;
    visibility: hidden;
    transition: transform .25s ease, opacity .25s ease, visibility .25s;
  }
  .main-nav.open {
    transform: translateY(0);
    opacity: 1;
    visibility: visible;
  }
  .main-nav ul {
    flex-direction: column;
    gap: 0;
    padding: var(--s-2) var(--s-3) var(--s-3);
  }
  .main-nav a { padding: 14px 8px; font-size: 17px; border-bottom: 1px solid var(--hairline); }
  .main-nav a::after { display: none; }
  .nav-cta-mobile { display: block; margin-top: var(--s-2); }
  .nav-cta-mobile a.btn { border-bottom: none; text-align: center; }

  .sticky-cta { display: flex; }
  body { padding-bottom: 76px; }
  .site-footer { padding-bottom: var(--s-8); }
}

/* ---------- bis 768px ---------- */
@media (max-width: 768px) {
  .hero h1 { font-size: clamp(36px, 9.6vw, 48px); }

  .band-fact { gap: 8px; }
  .band-fact strong { font-size: 20px; }

  .services-grid { grid-template-columns: 1fr; }
  .service-card-feature { grid-column: span 1; }

  .values-strip { grid-template-columns: repeat(2, 1fr); }
  .value-cell { min-height: 0; padding: var(--s-3); }
  .value-cell h3 { padding-top: var(--s-2); }

  .team-collage { grid-template-columns: 1fr; }

  .form-row { grid-template-columns: 1fr; }

  .tech-media-badge { right: 0; bottom: -28px; }

  .faq-item summary { font-size: 16px; gap: 14px; padding: 22px 4px; }
  .faq-item p { padding-left: 44px; }

  .final-cta-box { padding: var(--s-8) var(--s-3); }

  .footer-grid { grid-template-columns: 1fr; gap: var(--s-4); }
  .footer-bottom { flex-direction: column; text-align: center; }
}

/* ---------- bis 480px ---------- */
@media (max-width: 480px) {
  .container { padding: 0 var(--s-2); }
  .header-logo img { width: 142px; }

  .hero-ctas .btn { width: 100%; }
  .hero-map-caption {
    position: static;
    transform: none;
    margin-top: var(--s-2);
    white-space: normal;
    text-align: center;
    display: flex;
    justify-content: center;
  }

  .partner-row { gap: var(--s-2) var(--s-3); }
  .partner-row img { height: 20px; }

  .process-grid { grid-template-columns: 1fr; }
  .values-strip { grid-template-columns: 1fr; }
  .value-cell { display: grid; grid-template-columns: 56px 1fr; column-gap: 14px; align-items: center; }
  .value-cell h3 { padding-top: 0; margin: 0; }
  .value-cell p { grid-column: 2; }

  .contact-form { padding: var(--s-3); }

  .consent-banner { inset: auto 8px 8px 8px; }
  .consent-actions { flex-direction: column; }
}
