/* Responsive refinements shared by the preview and the static hosting bundle. */
.mobile-contact { display: none; }
.hero > *, .contact-grid > *, .form-row > *, .file-row > * { min-width: 0; }
.machine-stage picture { display: block; }
.video-shell > picture { display: block; width: 100%; height: 100%; }
.video-shell > picture img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: brightness(.77);
}
.contact-links a, .email-result p, .file-row p { overflow-wrap: anywhere; }
#email-preview { font-size: 1rem; }
#email-result, #message { scroll-margin-top: 110px; }
select { max-width: 100%; }

@media (max-width: 900px) {
  nav {
    gap: 0;
    max-height: calc(100dvh - 80px);
    overflow-y: auto;
    overscroll-behavior: contain;
    padding-block: var(--space-3);
    box-shadow: 0 12px 20px #0000000d;
  }
  nav a { display: flex; align-items: center; min-height: 48px; }
  nav .mobile-contact { display: flex; color: var(--accent); }
  .hero h1 { font-size: clamp(3.75rem, 9.4vw, 5.5rem); }
  .hero-visual { min-height: 380px; }
  .visual-top { flex-wrap: wrap; gap: var(--space-2); }
  .request-type span { min-height: 48px; display: grid; place-items: center; }
}

@media (max-width: 650px) {
  html { scroll-padding-top: 90px; }
  .wrap { width: calc(100% - 40px); }
  .header-inner { min-height: 70px; }
  .brand { flex-shrink: 0; }
  .header-actions { flex-shrink: 0; }
  .theme { flex-shrink: 0; }
  nav { max-height: calc(100dvh - 70px); }
  .hero { padding-top: var(--space-8); gap: var(--space-8); }
  .hero h1 { font-size: clamp(3.75rem, 19vw, 6rem); }
  .hero-actions { display: grid; justify-items: start; gap: var(--space-2); }
  .hero-actions .button { width: 100%; }
  .hero-visual { min-height: 340px; }
  .form-card { padding: var(--space-5); }
  input, select, textarea { font-size: 1rem; }
  .result-actions { gap: var(--space-2) var(--space-5); }
  .result-actions button { font-size: var(--text-sm); min-height: 48px; }
  #email-result, #message { scroll-margin-top: 90px; }
  .strip-link, .footer-main > a:last-child { min-height: 44px; display: flex; align-items: center; }
}

@media (max-width: 360px) {
  .wrap { width: calc(100% - 32px); }
  .brand { font-size: 1.6rem; gap: var(--space-1); }
  .brand svg { width: 26px; height: 26px; }
  .header-inner { gap: var(--space-2); }
  .header-actions { gap: var(--space-1); }
  .form-card { padding: var(--space-4); }
  .button { padding-inline: var(--space-4); gap: var(--space-4); }
  .visual-top { font-size: .6875rem; }
  .spec-strip { gap: var(--space-4); }
}

@media (max-height: 500px) and (orientation: landscape) {
  .header { position: relative; }
  html { scroll-padding-top: 20px; }
}
