/* ===========================
   Responsive breakpoints
=========================== */
@media (max-width: 1180px) {
  .feature-item { gap: 8px; padding: 0 8px; }
  .feature-item h3 { font-size: 0.8rem; }
  .feature-icon { width: 30px; height: 30px; }
  .feature-icon svg { width: 22px; height: 22px; }
}
@media (max-width: 1080px) {
  .services-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 960px) {
  .site-nav { display: none; }
  .nav-toggle { display: flex; }
  .header-cta { display: none; }
  .site-nav.is-open {
    display: block;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: var(--color-cream);
    padding: 20px 32px 28px;
    box-shadow: 0 18px 30px -20px rgba(0,0,0,0.2);
  }
  .site-nav.is-open .nav-list {
    flex-direction: column;
    align-items: flex-start;
    gap: 18px;
  }
  .hero-copy { max-width: 440px; padding-right: 18px; }
  .hero-actions { display: flex; }
  .hero { min-height: 550px; padding-bottom: 0; margin-bottom: 0; background-position: center right; background-size: 70%; }
  .hero-content { padding-bottom: 0; }
  .features-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 26px 16px;
    justify-content: initial;
  }
  .feature-item { white-space: normal; }
  .feature-item h3 { white-space: normal; }
  .feature-divider { display: none; }
  .services-grid { grid-template-columns: repeat(2, 1fr); }
  .cta-grid { grid-template-columns: 1fr; text-align: center; }
  .cta-icon { margin-left: auto; margin-right: auto; }
  .cta-actions { justify-content: center; }
  .cta-shape { display: none; }
  .cta-banner { background: var(--color-green); }
  .cta-copy .eyebrow,
  .cta-copy h2 { color: var(--color-white); }
  .cta-icon { background: rgba(255,255,255,0.12); }
  .footer-grid { grid-template-columns: repeat(2, 1fr); }
  .footer-brand { grid-column: 1 / -1; }
}
@media (max-width: 640px) {
  .container { padding: 0 20px; }
  .section-padding { padding: 64px 0; }
  h1 { font-size: 2.2rem; }
  h2 { font-size: 1.6rem; }
  .services-grid { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr; padding: 56px 20px 36px; }
  .feature-item { justify-content: flex-start; }
  .features-grid { display: grid; grid-template-columns: 1fr; gap: 20px; }
  .cta-grid { padding: 44px 24px; }
  .hero { min-height: 480px; background-position: right center; background-size: 70%; padding-bottom: 0; margin-bottom: 0; }
  .hero-copy { max-width: 100%; padding-right: 0; }
  .hero-content { padding-bottom: 0; }
  .hero-text { max-width: 100%; }
}