/* Loaded only by the homepage and the three primary product pages. */
.hero-grid > *,
.sd-hero-grid > *,
.sd-detail-layout > *,
.price-grid > *,
.consult-grid > *,
.footer-grid > * {
  min-width: 0;
}

.button {
  max-width: 100%;
  overflow-wrap: anywhere;
}

.button > span { flex-shrink: 0; }
.consult-actions .button { min-width: 0; }
.sd-facts dt { flex-shrink: 0; }
.sd-facts dd { min-width: 0; overflow-wrap: anywhere; }
.sd-detail-section { overflow-wrap: anywhere; }
.sd-table-scroll { max-width: 100%; }
.sd-table-scroll:focus-visible { outline: 3px solid #e5823e; outline-offset: 4px; }
.sd-price table { min-width: 320px; }
.sd-price td { white-space: nowrap; }
.footer-bottom > div { flex-wrap: wrap; }

@media (max-width: 1000px) {
  .sd-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 920px) {
  .mobile-menu summary { width: 44px; min-height: 44px; }
  .mobile-menu nav {
    max-height: calc(100vh - 90px);
    max-height: calc(100dvh - 90px);
    overflow-y: auto;
    overscroll-behavior: contain;
  }
  .mobile-menu nav a { min-height: 44px; font-size: 14px; }
  .sd-jump { gap: 8px 20px; font-size: 14px; }
  .sd-jump a { min-height: 44px; display: inline-flex; align-items: center; }
  .category-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .category h3 { font-size: 18px; }
  .category-copy p { font-size: 14px; }
  .parts-grid, .price-grid, .consult-grid, .sd-hero-grid, .sd-faq-layout {
    grid-template-columns: minmax(0, 1fr);
  }
  .parts-picture { max-width: 680px; }
  .parts-picture img { aspect-ratio: 1.7; }
  .parts-copy > p:not(.eyebrow):not(.small),
  .about-list p,
  .consult-grid > div > p:not(.eyebrow) { font-size: 14px; }
  .sd-hero-grid { gap: 30px; }
  .sd-hero-photo { max-width: 760px; }
  .consult-paper { width: calc(100% - 16px); max-width: 440px; margin-inline: 8px; }
}

@media (max-width: 700px) {
  .sd-gallery { grid-template-columns: minmax(0, 1fr); }
  .sd-lead, .sd-detail-section p, .sd-page .check-list { font-size: 15px; }
  .sd-price p, .sd-detail-section .sd-detail-note { font-size: 14px !important; }
  .sd-facts dt { font-size: 12px; }
  .sd-facts dd { font-size: 14px; }
}

@media (max-width: 680px) {
  .header-actions .button-small { min-height: 44px; font-size: 12px; }
  .mobile-menu summary { width: 44px; }
  .mobile-menu nav {
    max-height: calc(100vh - 74px);
    max-height: calc(100dvh - 74px);
  }
  .hero-description, .section-heading > p,
  .quantity-grid p, .parts-copy > p:not(.eyebrow):not(.small),
  .about p, .about-list p, .steps p,
  .pricing .price-grid > div > p:not(.eyebrow):not(.price-panel-label),
  .faq-answer, .consult-grid > div > p:not(.eyebrow) { font-size: 15px; }
  .category h3 { font-size: 16px; }
  .category-copy p { font-size: 14px; }
  .category-filters button { font-size: 12px; flex: 1 1 auto; white-space: normal; }
  .hero-note, .category-caveat, .small,
  .reassurance p > span, .price-panel small { font-size: 12px; }
  .reassurance strong { font-size: 13px; }
  .steps h3, .faq-item summary, .price-panel strong { font-size: 16px; }
  .price-panel > a { flex-wrap: wrap; }
  .price-panel > p.small { font-size: 12px !important; }
  .consult-actions { align-items: stretch; }
  .consult-actions .button, .sd-hero .button { width: 100%; font-size: 15px; min-height: 52px; }
  .footer-grid nav a { font-size: 14px; min-height: 44px; display: inline-flex; align-items: center; }
  .footer-grid h2, .footer-grid address, .footer-bottom { font-size: 12px; }
  .footer-bottom { padding-bottom: calc(120px + env(safe-area-inset-bottom, 0px)); }
  .sticky-contact { padding: 10px; gap: 0; }
  .sticky-contact > div { display: none; }
  .sticky-contact .button { width: 100%; min-height: 48px; font-size: 15px; }
}

@media (max-width: 360px) {
  .category-grid { grid-template-columns: minmax(0, 1fr); }
  .category-image { aspect-ratio: 1.5; }
  .category h3 { font-size: 18px; }
  .header-actions .button-small { padding-inline: 8px; gap: 5px; }
  .sd-detail-section, .sd-help, .sd-start-card { padding: 20px; }
  .sd-price { padding: 16px; }
}
