/* Shared responsive refinements for public pages. Loaded after page styles. */
img, video { max-width: 100%; }
.site-brand, .site-brand strong, .site-nav, .product-card, .product-detail-copy,
.inquiry-form, .inquiry-aside, .site-contact-card { min-width: 0; }
.site-contact-card strong, .inquiry-aside strong, .product-card h3,
.site-footer-bottom a { overflow-wrap: anywhere; }
.site-nav a:focus-visible, .site-nav-products > button:focus-visible,
.site-button:focus-visible, .category-nav a:focus-visible,
.product-thumbnails button:focus-visible { outline: 3px solid var(--site-primary); outline-offset: 3px; }

@media (max-width: 900px) {
  .site-header { height: auto; }
  .site-header-inner { display: grid; grid-template-columns: minmax(0,1fr); gap: 0; padding: 10px 0 0; }
  .site-brand { width: fit-content; max-width: 100%; }
  .site-brand img { max-height: 48px; }
  .site-nav { display: flex; align-items: center; gap: 8px; width: 100%; min-height: 52px; overflow-x: auto; overflow-y: hidden; scrollbar-width: thin; -webkit-overflow-scrolling: touch; white-space: nowrap; }
  .site-nav a:not(.site-nav-portal) { display: inline-flex; }
  .site-nav > a, .site-nav-products > button { flex: 0 0 auto; min-height: 44px; align-items: center; padding: 8px 12px; border-radius: 9px; font-size: 14px; }
  .site-nav-portal { display: inline-flex; align-items: center; flex: 0 0 auto; min-height: 44px; }
  .site-nav-products { flex: 0 0 auto; }
  .site-nav-product-menu { position: fixed; top: 102px; left: 14px; right: 14px; width: auto; max-height: min(70vh,560px); overflow-y: auto; transform: none; }
  .site-nav-product-menu a { white-space: normal; min-height: 44px; }
  .site-footer-bottom div { flex-wrap: wrap; }
  .site-hero-grid, .site-about-grid, .site-contact-grid { gap: 34px; }
  .product-detail-grid { grid-template-columns: minmax(0,1fr); }
  .inquiry-layout { grid-template-columns: minmax(0,1fr); }
  .inquiry-aside { order: initial; }
}

.site-mobile-toggle { display: none; }
@media (max-width: 900px) {
  .site-header.has-mobile-menu .site-header-inner { grid-template-columns: minmax(0,1fr) auto; gap: 8px; padding-bottom: 9px; }
  .site-mobile-toggle { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 7px 13px; border: 1px solid var(--site-line); border-radius: 10px; background: #fff; color: var(--site-ink); font: inherit; font-size: 14px; font-weight: 750; cursor: pointer; }
  .site-mobile-toggle > span:first-child { font-size: 20px; line-height: 1; }
  .site-mobile-toggle:focus-visible { outline: 3px solid var(--site-primary); outline-offset: 2px; }
  .site-header.has-mobile-menu .site-nav { display: none; }
  .site-header.mobile-menu-open .site-nav { grid-column: 1/-1; display: flex; flex-direction: column; align-items: stretch; gap: 2px; width: 100%; max-height: calc(100vh - 100px); overflow-x: hidden; overflow-y: auto; padding: 5px 0 8px; white-space: normal; }
  .site-header.mobile-menu-open .site-nav > a, .site-header.mobile-menu-open .site-nav-products > button { width: 100%; min-height: 46px; justify-content: flex-start; }
  .site-header.mobile-menu-open .site-nav-products { display: block; }
  .site-header.mobile-menu-open .site-nav-product-menu { position: static; display: none; width: 100%; max-height: 320px; overflow-y: auto; padding: 4px 0 4px 10px; border: 0; box-shadow: none; transform: none; }
  .site-header.mobile-menu-open .site-nav-products.is-open .site-nav-product-menu { display: grid; }
  .site-header.mobile-menu-open .site-nav-product-menu:before { display: none; }
}

@media (max-width: 620px) {
  .site-shell { width: calc(100% - 32px); }
  .site-header-inner { padding-top: 8px; }
  .site-brand { font-size: 16px; }
  .site-brand img { max-width: min(210px,calc(100vw - 32px)); max-height: 42px; }
  .site-nav { min-height: 54px; }
  .site-nav-product-menu { top: 100px; }
  .site-hero { padding: 44px 0 54px; }
  .site-hero h1 { font-size: clamp(34px,10vw,48px); overflow-wrap: anywhere; }
  .site-hero-copy > p { font-size: 17px; }
  .site-hero-visual, .site-hero-visual img { min-height: 260px; }
  .site-actions { display: grid; grid-template-columns: minmax(0,1fr); }
  .site-actions .site-button { width: 100%; min-height: 48px; }
  .site-section { padding: 60px 0; }
  .site-section h2 { font-size: clamp(30px,9vw,42px); }
  .site-service-grid h3 { margin-top: 28px; }
  .site-contact-card { padding: 8px 18px; }
  .site-footer { padding-top: 48px; }
  .site-footer-bottom { margin-top: 36px; }
  .site-footer-bottom div { gap: 10px 18px; }
  .site-footer-bottom a { min-height: 42px; display: inline-flex; align-items: center; }
  .products-hero { padding: 46px 0 30px; }
  .products-hero h1 { font-size: clamp(32px,9vw,48px); overflow-wrap: anywhere; }
  .category-nav { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 8px; -webkit-overflow-scrolling: touch; }
  .category-nav a { flex: 0 0 auto; min-height: 44px; }
  .product-grid { grid-template-columns: minmax(0,1fr); }
  .product-card { min-height: 0; }
  .product-card-image { aspect-ratio: 16/11; }
  .product-detail-page { padding-bottom: 48px; }
  .product-breadcrumb { flex-wrap: wrap; }
  .product-detail-copy h1 { font-size: clamp(30px,9vw,44px); overflow-wrap: anywhere; }
  .product-configurator { padding: 18px 16px; }
  .configurator-radios { grid-template-columns: minmax(0,1fr); }
  .configurator-radios span { min-height: 48px; }
  .configurator-price strong { font-size: 1.45rem; }
  .product-thumbnails button { min-height: 44px; }
  .inquiry-intro { padding: 44px 0 114px; }
  .inquiry-intro h1 { font-size: clamp(32px,9vw,44px); overflow-wrap: anywhere; }
  .inquiry-intro p { font-size: 16px; }
  .inquiry-layout { margin-top: -76px; padding-bottom: 58px; }
  .inquiry-form, .inquiry-aside { padding: 20px 16px; }
  .inquiry-grid { grid-template-columns: minmax(0,1fr); }
  .inquiry-form .span-2 { grid-column: auto; }
  .inquiry-form input, .inquiry-form select, .inquiry-form textarea { min-width: 0; font-size: 16px; }
  .inquiry-submit { width: 100%; min-height: 48px; }
  .legal-header .site-shell { width: calc(100% - 32px); }
  .legal-nav a { min-height: 44px; display: inline-flex; align-items: center; }
  .legal-document { padding: 26px 20px; }
}
