* { box-sizing: border-box; }
html { scroll-padding-top: 66px; }
body { margin: 0; padding-top: 66px; color: #273238; background: #fff; font: 14px/1.6 "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", Meiryo, メイリオ, Osaka, "MS PGothic", Arial, Helvetica, sans-serif; }
a { color: inherit; }
a:focus-visible { outline: 3px solid #1667bc; outline-offset: 3px; }
.site-header { position: fixed; inset: 0 0 auto; z-index: 10; height: 66px; display: flex; align-items: center; justify-content: space-between; padding: 10px; background: #fff; border-bottom: 1px solid #eee; }
.brand { display: block; flex: 0 0 auto; }
.brand img { display: block; width: auto; height: 44px; }
.header-right { display: flex; align-items: center; }
.company { text-align: right; padding-right: 20px; }
.header-actions { display: flex; align-items: center; }
.header-actions a { display: block; text-align: center; padding: 11.2px 25.2px; line-height: 1.2; text-decoration: none; color: white; }
.home-link { background: #4258d8; }
.contact-link { background: #e58100; }
.image-section { position: relative; max-width: 960px; margin: 0 auto; padding: 20px 10px; }
.image-section img { display: block; width: 100%; height: auto; }
/* Preserve the original ranking, then replace its combined supervisor panel. */
.ranking-crop { aspect-ratio: 1533 / 2380; overflow: hidden; }
/* Omit the printed telephone line (source rows 8510–8599) from the company panel. */
.closing-main { aspect-ratio: 1539 / 8510; overflow: hidden; }
.closing-tail { position: relative; aspect-ratio: 1539 / 288; overflow: hidden; }
.closing-tail img { position: absolute; top: 0; left: 0; transform: translateY(-96.759676%); }
/* Reuse only the regional-exclusivity panel from the supplied hero artwork. */
.exclusivity-crop { position: relative; aspect-ratio: 980 / 417; overflow: hidden; }
.exclusivity-crop img { position: absolute; top: 0; left: 0; transform: translateY(-56.733167%); }
.image-section a { display: block; }
.image-section a:hover { opacity: .85; }
.anchor { position: absolute; top: 0; }
.spacer { height: 40px; }
.contact-section { max-width: 960px; margin: 0 auto; padding: 40px 10px; }
iframe { display: block; width: 100%; border: 0; }
footer { text-align: center; padding: 80px 10px; }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
@media (max-width: 767px) {
  html { scroll-padding-top: 62px; }
  body { padding-top: 62px; padding-bottom: 60px; }
  .site-header { height: 62px; padding: 9px 10px; }
  .company { display: none; }
  .header-actions { position: fixed; bottom: 0; left: 0; right: 0; background: #fff; height: 57px; }
  .header-actions a { display: flex; align-items: center; justify-content: center; padding: 0; height: 57px; flex: 1; }
  .image-section { max-width: none; padding: 0; }
  .image-section.cta { padding: 20px 10px; }
  .desktop-only { display: none; }
  .contact-section { padding: 40px 10px; }
  footer { font-size: 12px; }
}
