/* Shared responsive corrections, loaded after the theme layers. */
:root { scroll-padding-top: 150px; }
button, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid #1677ff; outline-offset: 3px; }
.sectionHead.row { flex-wrap: wrap; gap: 16px; }
.siteModalCard, .contactModalCard, .orderCard, .legalMain { overflow-wrap: anywhere; }
.siteVisual .v152Showcase > .hero .heroInner { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); }
.siteVisual .v152CategoryList { max-height: 620px; }
.siteVisual .v152Showcase:has(.heroDealsEmpty) { align-items: start; }
.siteVisual .heroShowcasePanel:has(.heroDealsEmpty) { min-height: 0; }
.siteVisual .v152Showcase > .hero:has(.heroDealsEmpty) { min-height: 0; }
.siteVisual .hero:has(.heroDealsEmpty) .heroInner { min-height: 0; padding: 28px; }
.siteVisual .heroShowcaseShell:has(.heroDealsEmpty),
.siteVisual .heroShowcase:has(.heroDealsEmpty) { min-height: 0; height: auto; }
.siteVisual .heroDealsEmpty { padding: 32px 20px; min-height: 180px; }
html[data-theme="light"] .siteVisual .heroDealsEmpty { background: #f4f8ff; border-color: #cfdef0; color: #183653; }
html[data-theme="light"] .siteVisual .heroDealsEmpty h3 { color: #102b49; }
html[data-theme="light"] .siteVisual .heroDealsEmpty p { color: #52677f; }
html[data-theme="light"] .siteVisual .heroDealsEmpty > span { color: #1677ff; }
.heroDealsWrap:has(.heroDealsEmpty) .heroNavButtons,
.heroDealsWrap:has(.heroDealsEmpty) .v155HeroNote { display: none; }
.filterToggle { cursor: pointer; }
.filterToggle::after { content: '+'; float: right; font-size: 18px; line-height: 1; }
.filterToggle[aria-expanded="true"]::after { content: '−'; }
html[data-theme="dark"] .filterToggle { background: #102238; color: #e8f1fb; border-color: #29425d; }
.legalHeader, .simpleHeader { flex-wrap: wrap; height: auto; min-height: 72px; }
.legalHeader > a:last-child { text-align: right; }
@media (min-width: 1121px) {
  .siteVisual .v152Showcase:has(.heroDealsEmpty) .v152CategoryPanel { min-height: 0; height: 368px; }
}
@media (max-width: 1120px) {
  .siteVisual .v152CategoryList { max-height: none; }
}
@media (max-width: 860px) {
  .siteVisual .v152Showcase > .hero .heroInner { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 820px) {
  .v151NavRow #mainNav { top: 100% !important; width: auto !important; max-height: calc(100dvh - 160px); overflow-y: auto; }
}
@media (max-width: 560px) {
  :root { scroll-padding-top: 150px; }
  .siteVisual #nav.v151Header { padding: 0 !important; }
  .siteVisual .v151HeaderTop {
    height: auto; min-height: 112px; padding: 8px 12px !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    gap: 8px 4px !important;
  }
  .v151HeaderTop > .logo { grid-column: 1; grid-row: 1; }
  .siteVisual .v151HeaderTop .v151Actions { grid-column: 2; grid-row: 1; gap: 0 !important; }
  .v151HeaderTop .v151Contact { display: none !important; }
  .siteVisual .v151HeaderTop .v151Search {
    grid-column: 1 / -1; grid-row: 2; display: flex !important;
    width: 100% !important; min-width: 0 !important; height: 44px;
  }
  .siteVisual .v151HeaderTop .v151Search input {
    display: block !important; width: 100%; min-width: 0; font-size: 16px;
  }
  .v151Search > button { flex-shrink: 0; }
  .siteVisual .v151HeaderTop .logo { font-size: 16px !important; letter-spacing: -.7px; }
  .v151HeaderTop .logo small { display: none; }
  .headerSearchResults { max-height: min(420px, 60dvh); overflow-y: auto; }
  .siteVisual .hero:has(.heroDealsEmpty) .heroInner { padding: 14px; }
  .siteVisual .heroDealsEmpty { padding: 24px 16px; min-height: 150px; }
  .catalogFilters input, .catalogFilters select { min-width: 0; font-size: 16px; min-height: 44px; }
  .siteVisual .why.section, .siteVisual .about.section { padding-top: 40px; padding-bottom: 40px; }
  footer { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 20px; }
  footer > div:first-child, footer .copy { grid-column: 1 / -1; }
  footer > div { min-width: 0; overflow-wrap: anywhere; }
  footer a, footer .footerAction { padding-block: 7px; }
  .legalHeader, .simpleHeader { padding: 12px 16px; gap: 10px; }
  .legalHeader > a:last-child { flex: 1 1 100%; text-align: left; }
  .legalHeader .themeToggle { margin-left: auto; }
}
