/* Homepage follows the shared legacy portal layout. */
.home-area { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; padding: 14px 10px; margin: 15px 0; border: 4px solid white; border-radius: 15px; background: linear-gradient(#edf4ff, #ccdef9); box-shadow: 0 0 7px #aaa; color: #003394; text-shadow: 1px 1px white; }
.home-map { min-width: 0; }
.home-map h2 { line-height: 34px; font-size: 12px; white-space: nowrap; }
.home-map h2 button { padding: 0; border: 0; background: transparent; color: #003394; font: inherit; font-weight: bold; cursor: pointer; text-shadow: inherit; }
.home-map h2 strong { color: #006cff; font-size: 26px; font-weight: 900; }
.home-map h2 .icon-map { color: #006cff; font-size: 30px; }
.home-map h2 .icon-arrow { color: #003394; font-size: 12px; margin-left: 4px; }
.home-prefectures { margin: 0; font-size: 12px; line-height: 19.2px; font-weight: bold; color: #003394; }
.home-prefectures > div { display: grid; grid-template-columns: 60px 1fr; gap: 4px; padding: 0 0 5px; }
.home-prefectures dt { font-weight: bold; }
.home-prefectures dt button { padding: 0; background: transparent; border: 0; color: inherit; font: inherit; cursor: pointer; }
.home-prefectures dd { margin: 0; }
.home-prefectures dd a { display: inline-block; padding: 0 4px 0 3px; line-height: 12px; border-right: 1px solid #666; color: #006cff; white-space: nowrap; }
.home-prefectures dd a:last-child { border-right: 0; }
.home-prefectures dt .icon-arrow { font-size: 10px; margin-right: 3px; }
.home-station-regions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; padding: 10px 10px 0; border: 1px solid #666; border-top: 0; background: white; }
.home-page .home-stations > .landing-title, .home-page .home-kana > .landing-title { background: #3399ff; }
.home-crumb-button { display: inline-block; background: #006cff; border-radius: 3px; color: white; padding: 3px 5px; font-size: 12px; line-height: 12px; }
.home-page .crumb .home-crumb-button { color: white; }
.home-kana-columns { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 24px; padding: 12px 40px; border: 1px solid #666; border-top: 0; background: white; }
.home-kana-grid { display: grid; grid-template-columns: repeat(5, minmax(0,1fr)); border-top: 1px solid #999; border-left: 1px solid #999; }
.home-kana-grid > * { display: flex; align-items: center; justify-content: center; min-height: 32px; border-right: 1px solid #999; border-bottom: 1px solid #999; color: #006cff; font-size: 13px; font-weight: bold; }
.home-kana-grid > :nth-child(10n+6), .home-kana-grid > :nth-child(10n+7), .home-kana-grid > :nth-child(10n+8), .home-kana-grid > :nth-child(10n+9), .home-kana-grid > :nth-child(10n+10) { background: #f4f4f0; }
.home-kana-grid a:hover { background: #e0ecff; }
.home-premium, .home-mobile-footer-banners { display: none; }
.home-page .logo-sub { display: none; }
@media(min-width:768px) and (max-width:1020px) {
    .home-area { grid-template-columns: 1fr; }
    .home-area .home-prefectures { columns: 2; }
    .home-area .home-prefectures > div { break-inside: avoid; }
    .home-kana-columns { padding: 12px; gap: 14px; }
}
@media(max-width:767px) {
    .home-page .masthead .logo>span img:nth-child(2) { top: 7px; height: 28px; }
    .home-page .home-premium:not([hidden]) { display: block; width: calc(100% - 20px); margin: 10px; }
    .home-premium img { display: block; width: 100%; height: auto; }
    .home-mobile-footer-banners { display: block; }
    .home-mobile-search { background: linear-gradient(#e8f2ff, #cadbf8); }
    .home-mobile-search a { flex-direction: column; gap: 2px; min-height: 80px; }
    .home-mobile-search i { font-size: 40px; line-height: 42px; }
    .home-area { display: block; margin: 12px 10px; padding: 10px 6px; }
    .home-map h2 { text-align: center; }
    .home-area .home-prefectures { margin-top: 12px; padding-top: 8px; border-top: 1px solid #a8c7e4; }
    .home-prefectures > div { grid-template-columns: 74px 1fr; padding: 6px 0; }
    .home-prefectures dd a { padding: 5px; }
    .home-stations { margin: 10px; }
    .home-station-regions { grid-template-columns: 1fr; gap: 0; padding: 8px; }
    .home-kana { margin: 10px; }
    .home-kana-columns { padding: 10px 8px; gap: 12px; }
    .home-kana-grid > * { min-height: 32px; }
}
