/* ==========================================================================
   Living Nest Guide — Responsive & Print Rules
   ========================================================================== */

@media (max-width: 1080px) {
  .footer__grid { grid-template-columns: 1fr 1fr; gap: 32px; }
  .hero__card { position: static; margin-top: 18px; left: 0; }
  .hero__media { display: flex; flex-direction: column; }
}

@media (max-width: 980px) {
  .nav-toggle { display: inline-flex; }

  .nav {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    flex-direction: column;
    align-items: stretch;
    gap: 4px;
    background: var(--cream);
    border-bottom: 1px solid var(--sage-line);
    box-shadow: 0 24px 40px -28px rgba(20, 40, 31, 0.55);
    padding: 14px var(--gutter) 22px;
    max-height: 0;
    overflow: hidden;
    visibility: hidden;
    transition: max-height 0.3s ease, visibility 0.3s ease, padding 0.3s ease;
  }
  .nav.is-open { max-height: 480px; visibility: visible; }
  .nav a { padding: 13px 12px; border-radius: 12px; font-size: 1rem; }
  .nav a.is-active::after { display: none; }
  .nav a.is-active { background: var(--sage); }

  .header-actions .btn { display: none; }

  .hero__grid,
  .split,
  .newsletter__grid,
  .post-featured { grid-template-columns: 1fr; }
  .split--reverse .split__media { order: 0; }
  .post-featured__media { min-height: 240px; }

  .grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  body { font-size: 16px; }
  .topbar .wrap { justify-content: center; text-align: center; }
  .grid--2, .grid--3, .grid--4 { grid-template-columns: 1fr; }
  .form-grid--2 { grid-template-columns: 1fr; }
  .footer__grid { grid-template-columns: 1fr; }
  .footer__bottom { justify-content: flex-start; }
  .service-detail__head { flex-direction: column; gap: 14px; }
  .hero__points { margin-top: 22px; }
  .btn { width: 100%; }
  .btn-row .btn { width: auto; flex: 1 1 200px; }
  .form-actions .btn { width: 100%; }
  .quote, .feature, .service-card, .post-card__body { padding-inline: 22px; }
}

@media (max-width: 420px) {
  :root { --gutter: 16px; }
  .brand__tag { display: none; }
  .badge { font-size: 0.8rem; padding: 8px 13px; }
}

/* --------------------------------- Print -------------------------------- */
@media print {
  .topbar, .site-header, .footer, .newsletter, .btn, .nav-toggle { display: none !important; }
  body { background: #fff; color: #000; font-size: 12pt; }
  .article__inner { max-width: none; }
  a { color: #000; text-decoration: underline; }
}
