/* ==========================================================================
   Responsive overrides
   Mobile-first refinements layered over style.css
   ========================================================================== */

/* ---------- Small tablets and below ---------- */
@media (max-width: 991.98px) {
  :root { --header-h: 68px; }

  .navbar-collapse {
    background: rgba(8, 18, 42, .98);
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: var(--radius);
    margin-top: .75rem;
    padding: .9rem 1rem 1.15rem;
  }
  .navbar-nav .nav-link { padding: .7rem .6rem; border-radius: 8px; }
  .navbar-nav .nav-link::after { display: none; }
  .navbar-nav .nav-link.active,
  .navbar-nav .nav-link:hover { background: rgba(255, 255, 255, .07); }
  .navbar .nav-cta { width: 100%; justify-content: center; margin-top: .6rem; }

  .hero { text-align: center; }
  .hero .hero-lead { margin-inline: auto; }
  .hero-cta { justify-content: center; }
  .hero-stats { justify-content: center; }
  .hero-visual { margin-top: 2.5rem; max-width: 440px; margin-inline: auto; }
  .hero-network { opacity: .35; }

  .process-track { grid-template-columns: 1fr; gap: 0; }
  .process-track::before {
    top: 0; bottom: 0; left: 29px; right: auto;
    width: 2px; height: auto;
    background: linear-gradient(180deg, rgba(37, 99, 235, .4), rgba(6, 182, 212, .4));
  }
  .process-step {
    display: grid;
    grid-template-columns: 60px 1fr;
    gap: 0 1.2rem;
    text-align: left;
    padding: 0 0 1.7rem;
  }
  .process-step:last-child { padding-bottom: 0; }
  .process-step .node { margin: 0; }
  .process-step .process-body { padding-top: .35rem; }
}

/* ---------- Phones ---------- */
@media (max-width: 575.98px) {
  :root { --section-pad: clamp(52px, 12vw, 72px); }

  body { font-size: .97rem; }
  .btn { width: auto; }
  .hero-cta { flex-direction: column; align-items: stretch; }
  .hero-cta .btn { width: 100%; justify-content: center; }
  .hero-stats { gap: 1.2rem 1.6rem; }
  .hero-portrait { aspect-ratio: 4 / 4.4; }

  .card-soft { padding: 1.5rem 1.35rem; }
  .contact-panel { padding: 1.35rem 1.15rem; }
  .cta-band { text-align: center; }
  .cta-band .btn { width: 100%; justify-content: center; }

  .footer-bottom { flex-direction: column; align-items: flex-start; text-align: left; }
  .footer-bottom .footer-legal a { margin-left: 0; margin-right: 1.1rem; }

  .back-to-top { right: 14px; bottom: 14px; }
}

/* ---------- Large desktops ---------- */
@media (min-width: 1400px) {
  .container { max-width: 1200px; }
}

/* ---------- Print ---------- */
@media print {
  .site-header, .back-to-top, .hero-network, .site-footer, .navbar-toggler { display: none !important; }
  body { color: #000; }
  a { color: #000; }
}
