/* Constrain the actual content, without clipping the document or hiding text. */
@media (max-width: 980px) {
  /* Blog themes pin this link over the subtitle on desktop. Keep all three
     header elements in flow on small screens, including wrapped tenant copy. */
  body .blog-cards-block .banner-header {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    min-width: 0;
    padding: 0;
    margin-bottom: 28px;
    text-align: center;
  }
  body .blog-cards-block .banner-title {
    max-width: 100%;
    margin: 0;
    font-size: clamp(26px, 6.5vw, 32px);
    line-height: 1.35;
    overflow-wrap: anywhere;
  }
  body .blog-cards-block .banner-subtitle-wrapper {
    width: 100%;
    min-width: 0;
    margin: 0;
  }
  body .blog-cards-block .banner-subtitle {
    max-width: 100%;
    margin: 0;
    font-size: 15px;
    line-height: 1.65;
    overflow-wrap: anywhere;
  }
  body .blog-cards-block .blog-more-btn {
    position: static;
    inset: auto;
    align-self: center;
    flex: 0 0 auto;
    justify-content: center;
    box-sizing: border-box;
    max-width: 100%;
    min-height: 44px;
    margin: 0;
    padding: 10px 18px;
    line-height: 1.5;
    z-index: auto;
  }
  body .blog-cards-block .blog-more-btn svg { flex-shrink: 0; }

  /* Keep content in normal flow: absolute SNS controls overlapped the lower copy. */
  body .hero-search-block {
    height: auto;
    min-height: 600px;
    min-height: max(600px, 100svh);
    max-height: none;
    align-items: stretch;
  }
  body .hero-search-block .hero-search-content {
    height: auto;
    max-height: none;
    box-sizing: border-box;
    gap: 24px;
  }
  body .hero-search-block .hero-search-container { flex: 0 0 auto; }
  body .hero-search-block .hero-search-bottom-info { padding-top: 32px; }
  body .hero-search-block .hero-search-sidebar {
    position: static;
    inset: auto;
    width: 100%;
    max-width: 100%;
    margin: 0;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
  }
  body .hero-search-block .hero-search-social { flex-direction: row; flex-wrap: wrap; }
  body .footer .footer-grid.footer-grid-inner {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
  }
  body .footer .footer-brand.footer-brand-span { grid-column: 1 / -1; }
  body .footer .footer-grid > *,
  body .footer .footer-col-inner,
  body .footer .footer-col-inner > * {
    min-width: 0;
    overflow-wrap: anywhere;
  }
  body .footer .footer-col-inner { flex-wrap: wrap; }
  body .footer .footer-col-inner > * { flex: 1 1 120px; }
  body .footer .footer-contact-group,
  body .footer .footer-bank-group { min-width: 0; max-width: 100%; flex-wrap: wrap; }

  /* Static reviews only: the strip carousel keeps its own item sizing. */
  body .reviews-block .reviews-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
  }
  body .reviews-block .review-card { min-width: 0; max-width: 100%; box-sizing: border-box; }
  body .reviews-block .review-card-header { min-width: 0; flex-wrap: wrap; }
  body .reviews-block .review-card-header > * { min-width: 0; max-width: 100%; }
  body .reviews-block .review-card-headline,
  body .reviews-block .review-card-text,
  body .reviews-block .review-card-product,
  body .reviews-block .review-author-name,
  body .reviews-block .review-author-subtitle { overflow-wrap: anywhere; }
  body .reviews-block .review-card-thumbnails { flex-wrap: wrap; }
}

@media (max-width: 640px) {
  body .footer .footer-grid.footer-grid-inner,
  body .reviews-block .reviews-grid { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 480px) {
  body .hero-search-block .hero-search-sidebar { gap: 12px; }
  body .hero-search-block .hero-search-social,
  body .hero-search-block .hero-search-scroll { min-width: 0; max-width: 100%; }
  body .hero-search-block .hero-search-scroll { gap: 8px; }
  body .hero-search-block .hero-search-scroll-line { width: 24px; flex-shrink: 1; }
}
