/* Header controls use the header palette, including on the dark home page. */
.header .menu-toggle { width:44px; height:44px; padding:10px; border:0; border-radius:8px; background:transparent; color:#171717; flex-shrink:0; }
.header .menu-toggle span { width:24px; height:2px; margin:0; border:0; border-radius:1px; background:#171717; transition:transform .2s ease; }
.header .menu-toggle:focus-visible { outline:2px solid #171717; outline-offset:2px; }
.header .menu-toggle[aria-expanded=true] span:first-child { transform:translateY(4px) rotate(45deg); }
.header .menu-toggle[aria-expanded=true] span:last-child { transform:translateY(-4px) rotate(-45deg); }
.header .language-picker { color:#171717; }
.header .language-picker summary { min-width:44px; min-height:44px; justify-content:center; background:#fff; color:#171717; border:1px solid #d0d0d0; border-radius:8px; }
.header .language-picker nav { color:#171717; background:#fff; border:1px solid #d0d0d0; border-radius:10px; box-shadow:0 10px 25px #00000014; z-index:80; }
.header .language-picker a { color:#171717; }
.header .language-picker a:hover,.header .language-picker a[aria-current=page] { background:#eeeeee; color:#171717; }
@media(max-width:1100px) {
  :root { --mobile-header-height:72px; }
  .header { height:var(--mobile-header-height); gap:12px; }
  .header .menu-toggle { display:flex; flex-direction:column; justify-content:center; align-items:center; gap:6px; margin-left:0; }
  .mobile-nav { top:var(--mobile-header-height); left:0; right:0; max-height:calc(100dvh - var(--mobile-header-height)); padding-bottom:calc(28px + env(safe-area-inset-bottom)); background:#fff; color:#171717; border-bottom:1px solid #ddd; border-radius:0 0 14px 14px; }
  .mobile-nav a,.mobile-nav summary { color:#171717; min-height:44px; line-height:1.55; overflow-wrap:break-word; }
  .mobile-nav-group>div { padding-left:16px; }
  .mobile-nav-group a { display:block; padding:12px 0; color:#525252; }
  body:has(.menu-toggle[aria-expanded=true]) { overflow:hidden; }
}
@media(max-width:600px) {
  .header { padding-inline:20px; gap:8px; }
  .header .brand { flex:1; min-width:0; gap:8px; font-size:clamp(12px,3.8vw,15px); }
  .header .brand-symbol { width:32px; height:35px; }
  .header .brand-sub { font-size:6px; letter-spacing:1px; }
  .header .language-picker { margin-left:0; }
  .header .language-picker summary { padding:8px; font-size:12px; }
  .part-group-track { gap:16px; padding-bottom:12px; grid-auto-columns:82%; }
  .part-group-copy { padding:16px; }
  .part-group-copy h2 { font-size:18px; line-height:1.4; }
  .product-gallery-thumbs { gap:12px; margin-top:16px; }
  .product-detail-heading { gap:18px; margin-bottom:24px; }
  .product-detail-heading h1 { font-size:clamp(32px,9vw,44px); line-height:1.12; overflow-wrap:break-word; }
  .product-gallery-stage figcaption { padding:32px 16px 14px; font-size:13px; }
  .product-gallery-arrow { width:40px; height:40px; }
  .product-gallery-arrow--prev { left:10px; }
  .product-gallery-arrow--next { right:10px; }
  .product-gallery-count { right:16px; bottom:14px; }
  .detail-hero,.manufacturing-grid,.industry-grid,.sector-grid,.contact-page { min-width:0; }
  .detail-hero>*,.manufacturing-grid>*,.industry-grid>*,.sector-grid>*,.contact-page>* { min-width:0; }
  .detail-hero h1,.page-intro h1 { font-size:clamp(32px,9.5vw,44px); line-height:1.12; overflow-wrap:break-word; }
  .detail-hero-video { width:100%; max-width:100%; min-height:0; aspect-ratio:4 / 3; }
  .detail-hero-video video { width:100%; height:100%; object-fit:cover; }
  .process-band-image { height:auto; min-height:0; aspect-ratio:4 / 3; }
  .process-band-image img { display:block; width:100%; height:100%; object-fit:cover; }
  .quality-carousel-stage { max-width:100%; }
  .home-sector-grid { gap:20px; }
  .home-sector-card { min-height:300px; padding:24px; }
  .home-sector-card h3 { font-size:25px; line-height:1.2; }
  .brief-dialog { max-width:calc(100vw - 32px); padding:28px 22px; }
  .project-form input,.project-form select,.project-form textarea { width:100%; min-width:0; max-width:100%; font-size:16px; }
  .footer-links { grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
  .footer-links a { overflow-wrap:break-word; }
}
@media(max-width:360px) {
  .header { padding-inline:16px; gap:6px; }
  .header .brand { font-size:12px; gap:7px; }
  .header .brand-sub { font-size:5.5px; letter-spacing:.8px; }
  .header .brand-symbol { width:29px; height:32px; }
  .header .language-picker summary { min-width:40px; padding-inline:6px; }
  .footer-brand { font-size:20px; }
}
