/* =========================================================
   Responsive rules — Desktop first breakpoints
   ========================================================= */

@media (max-width: 1080px){
  .grid-4{ grid-template-columns:repeat(2,1fr); }
  .process-row{ grid-template-columns:repeat(3,1fr); }
  .stat-strip{ grid-template-columns:repeat(2,1fr); }
  .footer-top{ grid-template-columns:1fr 1fr; }
}

@media (max-width: 960px){
  .main-nav{ display:none; }
  .header-actions > .header-phone span{ display:none; }
  .nav-toggle{ display:flex; }

  .hero .container{ grid-template-columns:1fr; }
  .hero-visual{ order:-1; padding:0 0 24px; }
  .hero-badge-float{ position:static; margin:14px 10px 0 0; display:inline-flex; }
  .hero-badge-float.badge-b{ margin-left:0; }

  .split{ grid-template-columns:1fr; gap:36px; }
  .split.reverse .split-media{ order:0; }
  .info-chip{ position:static; margin-top:16px; display:inline-flex; }

  .grid-3{ grid-template-columns:repeat(2,1fr); }
  .contact-grid{ grid-template-columns:1fr; }
  .form-row{ grid-template-columns:1fr; }
  .cta-band{ flex-direction:column; text-align:center; padding:44px 28px; }
  .cta-band .cta-row{ justify-content:center; }
}

@media (max-width: 720px){
  .section{ padding:60px 0; }
  .grid-2, .grid-3, .grid-4{ grid-template-columns:1fr; }
  .process-row{ grid-template-columns:1fr; }
  .stat-strip{ grid-template-columns:1fr 1fr; }
  .footer-top{ grid-template-columns:1fr; gap:32px; }
  .footer-bottom{ flex-direction:column; align-items:flex-start; }
  .service-card .service-thumb{ margin:-20px -20px 20px; }
  .card, .form-card, .contact-info-card{ padding:26px; }
  .cta-band{ padding:36px 20px; }
  .site-header .container{ height:76px; }
  .brand img{ height:38px; }
}

@media (max-width: 480px){
  .container{ padding:0 18px; }
  .hero{ padding:44px 0 60px; }
  .hero-trust{ gap:10px; }
  .hero-trust li{ font-size:.8rem; padding:8px 14px 8px 8px; }
  .why-card{ flex-direction:column; }
  .header-actions .btn{ display:none; }
}

/* -------------------- Mobile nav drawer -------------------- */
.mobile-nav{
  position:fixed; inset:0; background:var(--navy-900); z-index:1200;
  transform:translateX(100%); transition:transform .32s ease;
  display:flex; flex-direction:column; padding:24px;
}
.mobile-nav.open{ transform:translateX(0); }
.mobile-nav-top{ display:flex; justify-content:space-between; align-items:center; margin-bottom:32px; }
.mobile-nav-top img{ height:38px; }
.mobile-nav-close{ background:rgba(255,255,255,0.08); border:none; width:42px; height:42px; border-radius:10px; display:flex; align-items:center; justify-content:center; }
.mobile-nav-close svg{ width:20px; height:20px; color:var(--white); }
.mobile-nav ul{ display:grid; gap:6px; }
.mobile-nav a{
  display:block; font-family:var(--font-heading); font-weight:700; font-size:1.15rem; color:var(--white);
  padding:14px 6px; border-bottom:1px solid rgba(255,255,255,0.08);
}
.mobile-nav a.active{ color:var(--amber-400); }
.mobile-nav-footer{ margin-top:auto; display:grid; gap:14px; }
.mobile-nav-footer .header-phone{ color:var(--white); }
body.nav-open{ overflow:hidden; }
