@media (max-width: 1099px) {
  .header-contact { gap: 16px; }
  .header-phone > a { font-size: 24px; }
  .brand img { width: 280px; }
  .inquiry-link { padding: 11px 14px; font-size: 12px; }
  .main-nav a { font-size: 11px; }
  .content-layout { grid-template-columns: 195px minmax(0, 1fr); gap: 28px; }
  #videoList { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cat .q { font-size: 12px; }
  .cat button { gap: 9px; padding: 15px 10px; }
}
@media (max-width: 849px) {
  .header-inner, .nav-inner, .page, .footer-inner { width: calc(100% - 36px); }
  .header-phone { display: none; }
  .header-main { min-height: 98px; }
  .brand img { width: 270px; }
  .main-nav a { font-size: 10px; padding: 12px 5px; }
  .content-layout { display: block; margin-top: 26px; }
  .sidebar { display: none; }
  .page-intro h1 { font-size: 29px; }
  #videoList { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .footer-company { gap: 28px; }
}
@media (max-width: 599px) {
  body { padding-bottom: calc(66px + env(safe-area-inset-bottom)); }
  .header-inner, .nav-inner, .page, .footer-inner { width: calc(100% - 32px); }
  .site-tagline { font-size: 9px; line-height: 1.7; padding-top: 8px; letter-spacing: 0; }
  .header-main { min-height: 88px; gap: 12px; }
  .brand img { width: min(215px, 52vw); }
  .header-contact { flex: none; }
  .inquiry-link { font-size: 10px; padding: 10px 9px; max-width: 116px; line-height: 1.7; text-align: center; }
  .inquiry-link .inquiry-arrow { display: none; }
  .main-nav { border-bottom-width: 2px; }
  .nav-inner { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .main-nav a { font-size: 10px; padding: 10px 4px; border-bottom: 1px solid #605747; }
  .main-nav a:nth-child(4)::before { display: none; }
  .main-nav .current { box-shadow: inset 0 -2px var(--orange); color: #fff; }
  .brand-visual { margin: 14px -16px 0; }
  .brand-visual img { width: 100%; }
  .breadcrumb { padding: 12px 0; font-size: 10px; }
  .content-layout { margin-top: 24px; margin-bottom: 36px; }
  .page-intro { margin-bottom: 24px; }
  .section-label { font-size: 10px; margin-bottom: 8px; }
  .page-intro h1 { font-size: 25px; letter-spacing: .025em; line-height: 1.7; padding-bottom: 15px; }
  .mobile-break { display: initial; }
  .intro-lead { font-size: 12px; line-height: 1.9; }
  .library-facts { font-size: 10px; gap: 16px; }
  .library-facts span + span { padding-left: 16px; }
  .library-facts b { font-size: 19px; }
  .library-section { margin-top: 24px; }
  .band { padding: 10px 13px; font-size: 15px; }
  .band small { font-size: 8px; letter-spacing: .08em; }
  .band-body { padding-top: 18px; }
  .cat-note { font-size: 11px; margin-bottom: 15px; }
  .cat { grid-template-columns: 1fr; gap: 9px; }
  .cat-group { font-size: 12px; margin-top: 10px; }
  .cat button { min-height: 72px; gap: 13px; padding: 13px 14px; }
  .cat .q { font-size: 13px; }
  .cat .ico { font-size: 17px; }
  .cat .n { padding-left: 13px; }
  #videoList { grid-template-columns: 1fr; gap: 25px; }
  .vcard .ttl { font-size: 13px; }
  .contact-section { padding: 22px 17px; margin-top: 32px; }
  .contact-section h2 { font-size: 21px; }
  .contact-actions { grid-template-columns: 1fr; gap: 10px; margin: 18px 0; }
  .cta-tel, .cta-form { min-height: 72px; }
  .cta-form { font-size: 15px; }
  .contact-address { align-items: flex-start; flex-direction: column; gap: 10px; font-size: 10px; }
  .footer-company { flex-direction: column; align-items: flex-start; gap: 12px; }
  .footer-company img { width: 230px; }
  .footer-company > div { padding-left: 9px; font-size: 11px; }
  .footer-company strong { font-size: 13px; }
  .footer-links { justify-content: flex-start; font-size: 10px; gap: 10px 20px; padding-left: 9px; }
  .disc { text-align: left; font-size: 9px; padding-left: 9px; }
  .copyright { text-align: left; padding-left: 9px; }
  .bottom-bar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; display: flex; box-shadow: 0 -1px 5px rgba(70,40,15,.1); }
  .bottom-bar a { width: 50%; color: #fff; padding: 10px 4px calc(10px + env(safe-area-inset-bottom)); text-align: center; font-size: 12px; line-height: 1.7; font-weight: 700; }
  .bottom-bar small { display: block; font-size: 9px; font-weight: 400; }
  .b-tel { background: var(--orange); }
  .b-mail { background: var(--pink); }
  .modal { padding: 14px; }
  .cap { font-size: 12px; }
}
@media (max-width: 359px) {
  .inquiry-link { max-width: 104px; font-size: 9px; }
  .cat .q { font-size: 12px; }
  .band small { font-size: 7px; }
}
