.main-nav{position:relative;z-index:60;align-items:stretch}
.nav-item,.nav-item-top{display:flex;align-items:stretch}
.nav-toggle{display:grid;place-items:center;width:30px;min-height:44px;background:transparent;color:inherit;border:0;cursor:pointer;border-radius:6px}
.nav-toggle .icon{width:12px;transition:transform .18s ease}
.nav-toggle[aria-expanded=true] .icon{transform:rotate(180deg)}
.nav-toggle:hover,.nav-item.is-expanded>.nav-item-top{color:var(--accent)}
.main-nav :focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.mega-panel{position:absolute;top:100%;left:0;right:0;max-height:calc(100dvh - 185px);overflow-y:auto;background:#fff;border:1px solid var(--line);border-top:2px solid var(--accent);border-radius:0 0 16px 16px;box-shadow:0 18px 35px #27251d18;padding:28px 32px;display:grid;grid-template-columns:190px 1fr;gap:30px;overscroll-behavior:contain}
.mega-panel[hidden]{display:none}
.mega-intro{border-right:1px solid var(--line);padding-right:24px}
.mega-intro strong{display:block;font-size:18px;margin:4px 0 16px}
.main-nav .mega-panel a{height:auto;min-height:36px;padding:7px 0;font-size:13px;font-weight:400;line-height:1.6}
.main-nav .mega-intro a{color:var(--accent);font-weight:600}
.mega-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 28px}
.mega-groups-prefectures{grid-template-columns:repeat(5,minmax(0,1fr))}
.mega-groups-months{grid-template-columns:repeat(4,minmax(0,1fr))}
.mega-groups-categories,.mega-groups-features,.mega-groups-ranking,.mega-groups-about{grid-template-columns:1fr}
.mega-groups-categories ul,.mega-groups-features ul,.mega-groups-about ul{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 24px}
.mega-groups-features ul{grid-template-columns:repeat(2,minmax(0,1fr))}
.mega-group h2{font-size:12px;color:var(--muted);margin:0 0 8px;font-weight:600}
.mega-group ul{list-style:none;margin:0;padding:0}
.mega-prefecture-count{opacity:.65}
@media(max-width:600px){.mega-groups-categories .mega-prefecture-count{display:none}}
@media(prefers-reduced-motion:no-preference){.mega-panel:not([hidden]){animation:mega-appear .18s ease-out}@keyframes mega-appear{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}}
@media(min-width:601px) and (max-width:900px){.nav-toggle{width:20px}.mega-panel{grid-template-columns:145px 1fr;padding:22px;gap:20px}.mega-groups-prefectures{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:600px){.main-nav.is-open{display:flex;flex-direction:column}.nav-item{display:block}.nav-item-top{justify-content:space-between;border-bottom:1px solid var(--line)}.nav-item-top>a{flex:1}.main-nav .nav-item-top>a{border:0}.nav-toggle{width:44px}.mega-panel{position:static;max-height:none;box-shadow:none;border:0;border-radius:8px;background:var(--soft);padding:18px;display:block}.mega-intro{border:0;padding:0;margin-bottom:16px}.mega-intro strong{display:none}.mega-groups,.mega-groups-prefectures,.mega-groups-months{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 14px}.mega-groups-categories,.mega-groups-features,.mega-groups-ranking,.mega-groups-about{grid-template-columns:1fr}.mega-groups-categories ul,.mega-groups-about ul{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px}.mega-groups-features ul{grid-template-columns:1fr}.main-nav .mega-panel a{min-height:44px;border:0;font-size:13px}.mega-group h2{margin-top:0}}
/* Visual cues and latest feature cards */


.mega-group h2{display:flex;align-items:center;gap:7px}
.mega-group h2 .icon{width:15px;height:15px;color:var(--accent)}
.main-nav .mega-group li a{gap:9px;border-radius:7px;padding-inline:7px;margin-left:-7px}
.mega-group li a>.icon{flex-shrink:0;width:18px;height:18px;color:var(--accent)}
.main-nav .mega-group li a:hover{background:#fcf0e9}
.mega-groups-prefectures li a>.icon{width:11px;height:11px;color:#9b9b90}
@media(max-width:600px){
 .mega-groups-events{grid-template-columns:minmax(0,1fr)}
 .mega-groups-events .mega-group ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px}
 .mega-groups-events .mega-group,.mega-groups-events .mega-group li{min-width:0}
}
/* Match the region directory's compact, wrapping prefecture layout on mobile. */
@media(max-width:600px){
 .mega-groups-prefectures{grid-template-columns:minmax(0,1fr);gap:26px 22px}
 .mega-groups-prefectures .mega-group{min-width:0}
 .mega-groups-prefectures .mega-group ul{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px 8px}
 .mega-groups-prefectures .mega-group li{min-width:0}
 .main-nav .mega-groups-prefectures .mega-group li a{min-height:24px;padding:0;margin:0;font-size:12px;line-height:2;white-space:normal;overflow-wrap:anywhere}
 .mega-groups-prefectures li a>.icon{display:none}
}
.mega-feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 20px}
.main-nav .mega-feature-card{display:flex;flex-direction:column;align-items:stretch;gap:9px;padding:0;min-width:0}
.mega-feature-image{display:block;position:relative;overflow:hidden;border-radius:10px;aspect-ratio:16/10;background:var(--soft)}
.mega-feature-image img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .25s ease}
.mega-feature-image small{position:absolute;bottom:0;left:0;right:0;background:#242424bd;color:white;font-size:9px;line-height:1.5;padding:4px 7px}
.mega-feature-meta{display:flex;justify-content:space-between;flex-wrap:wrap;gap:4px 10px;color:var(--accent);font-size:10px}
.mega-feature-meta time{color:var(--muted);font-variant-numeric:tabular-nums}
.mega-feature-card strong{font-size:14px;line-height:1.7}
@media(prefers-reduced-motion:no-preference){.mega-feature-card:hover img{transform:scale(1.035)}}
@media(max-width:900px){.mega-feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.mega-intro{display:flex;align-items:center;gap:12px}.mega-feature-grid{grid-template-columns:1fr;gap:22px}.main-nav .mega-feature-card{padding:0}.mega-feature-image{aspect-ratio:16/9}.mega-feature-card strong{font-size:15px}}
/* Seasonal month navigation: shared lightweight photo sprite. */
.mega-season-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.mega-season-card{min-width:0;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}
.mega-season-photo{position:relative;display:grid;place-items:center;height:155px;margin:0;background-image:linear-gradient(#14212b26,#14212b77),url('../images/menu-seasons.webp');background-size:100% 100%,400% auto;color:#fff;font-size:38px;line-height:1.3;text-shadow:0 2px 12px #0008}
.mega-season-photo span{position:relative}
.mega-season-0{background-position:center,0% center}
.mega-season-1{background-position:center,33.333% center}
.mega-season-2{background-position:center,66.667% center}
.mega-season-3{background-position:center,100% center}
.mega-season-card ul{list-style:none;margin:0;padding:10px 14px}
.main-nav .mega-season-card li a{justify-content:center;min-height:48px;font-size:19px;font-weight:600;border-radius:7px;padding:8px;border:0}
.main-nav .mega-season-card li a:hover{background:#fcf0e9}
.mega-season-caption{margin:10px 0 0;color:var(--muted);font-size:10px;text-align:right}
@media(min-width:601px) and (max-width:900px){.mega-season-grid{gap:10px}.mega-season-photo{height:125px}.mega-season-card ul{padding:8px}.main-nav .mega-season-card li a{font-size:17px}}
@media(max-width:600px){.mega-season-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.mega-season-photo{height:85px;font-size:34px}.mega-season-card ul{padding:7px}.main-nav .mega-season-card li a{font-size:18px;min-height:46px}.mega-season-caption{text-align:left}}
/* Weekly top three use the same ordering as the ranking page. */
.mega-ranking-content{min-width:0}
.mega-ranking-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:18px;flex-wrap:wrap}
.mega-ranking-heading h2{display:flex;align-items:center;gap:8px;margin:0;font-size:16px}
.mega-ranking-heading h2 .icon{color:var(--accent)}
.main-nav .mega-ranking-heading>a{font-size:11px;color:var(--accent)}
.mega-ranking-grid{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.main-nav .mega-rank-card{display:flex;flex-direction:column;align-items:stretch;gap:8px;padding:0;height:auto}
.mega-rank-image{position:relative;display:block;aspect-ratio:16/10;border-radius:10px;overflow:hidden;background:var(--soft)}
.mega-rank-image>img{display:block;width:100%;height:100%;object-fit:cover}
.mega-rank-number{position:absolute;left:10px;top:10px;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:#fff;color:var(--accent);font:bold 18px Arial;box-shadow:0 2px 10px #0002}
.mega-ranking-grid>li:first-child .mega-rank-number{background:#a16b16;color:#fff}
.mega-rank-location{display:flex;align-items:center;gap:4px;color:var(--muted);font-size:11px}
.main-nav .mega-rank-location .icon{width:13px;height:13px}
.mega-rank-card strong{font-size:15px;line-height:1.6}
.mega-rank-copy{font-size:12px;line-height:1.7;color:var(--muted)}
.mega-ranking-links{display:flex;gap:12px;flex-wrap:wrap;border-top:1px solid var(--line);margin-top:20px;padding-top:12px}
.main-nav .mega-ranking-links a{border:1px solid var(--line);border-radius:30px;padding:7px 13px;min-height:40px;font-size:12px}
.main-nav .mega-ranking-links a:hover{background:var(--soft)}
.mega-ranking-note{font-size:10px;color:var(--muted);margin:10px 0 0}
@media(max-width:600px){.mega-ranking-grid{grid-template-columns:1fr;gap:20px}.main-nav .mega-rank-card{display:grid;grid-template-columns:104px minmax(0,1fr);gap:4px 12px;border:0}.mega-rank-image{grid-row:1/4;aspect-ratio:1}.mega-rank-number{width:27px;height:27px;left:6px;top:6px;font-size:14px}.mega-rank-card strong{font-size:14px}.mega-rank-copy{font-size:11px}.main-nav .mega-ranking-links a{min-height:44px}.mega-ranking-heading{gap:4px}}
/* Separate group markers from individual destination icons. */
.mega-group h2{color:var(--text,#333);font-weight:700;margin-bottom:12px;border-bottom:1px solid #dddcd3;padding-bottom:10px}
.mega-group h2>.icon{box-sizing:content-box;width:16px;height:16px;padding:6px;border-radius:8px;background:#fcf0e9;color:var(--accent);flex-shrink:0}
.mega-groups-about li a>.icon{width:20px;height:20px;color:var(--accent-dark);flex-shrink:0}
/* Muted watercolor accents sit behind the menu content, never intercepting input. */
.mega-panel{isolation:isolate;min-height:300px}
.mega-panel::before{content:"";position:absolute;left:12px;bottom:8px;width:200px;height:290px;background-image:var(--menu-art-image);background-size:contain;background-repeat:no-repeat;background-position:left bottom;opacity:.11;pointer-events:none;z-index:-1}
#mega-events{--menu-art-image:url('../images/menu-watercolor-events.webp?v=2')}
#mega-prefectures{--menu-art-image:url('../images/menu-watercolor-prefectures.webp')}
#mega-categories{--menu-art-image:url('../images/menu-watercolor-categories.webp')}
#mega-months{--menu-art-image:url('../images/menu-watercolor-months.webp')}
#mega-features{--menu-art-image:url('../images/menu-watercolor-features.webp')}
#mega-ranking{--menu-art-image:url('../images/menu-watercolor-ranking.webp')}
#mega-about{--menu-art-image:url('../images/menu-watercolor-about.webp')}
@media(max-width:600px){.mega-panel{position:relative}.mega-panel::before{width:200px;height:250px;left:0;bottom:0;opacity:.08}}

/* Keep the mobile header accessible while its menu scrolls independently. */
@media(max-width:600px){
 html{scroll-padding-top:86px}
 .site-header{position:sticky;top:0;z-index:100;box-shadow:0 2px 10px #0000000d}
 .site-header .main-nav{position:absolute;top:100%;left:0;right:0;width:100%;margin:0;padding-inline:18px;max-height:calc(100vh - 70px);max-height:calc(100dvh - 70px);overflow-y:auto;overscroll-behavior:contain;background:var(--paper);box-shadow:0 8px 18px #00000012}
 .site-header .main-nav>.nav-item{flex-shrink:0}
}

.mega-rank-date{display:flex;align-items:flex-start;gap:4px;font-size:11px;line-height:1.6;color:var(--muted)}
.mega-rank-date .icon{width:13px;height:13px;flex-shrink:0;margin-top:2px}

.mega-rank-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;width:100%}.mega-rank-meta>.mega-rank-date{margin-left:auto}.mega-rank-meta>span{white-space:nowrap}

/* Match the WordPress toolbar height while the mobile header follows scrolling. */
@media(max-width:782px){body.admin-bar .site-header{top:46px}}
@media(max-width:600px){body.admin-bar #wpadminbar{position:fixed}}

.mega-editorial-content{min-width:0}.mega-blog-list{display:flex;flex-direction:column;margin-top:24px;border-top:1px solid var(--line)}.main-nav .mega-blog-row{display:flex;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid var(--line)}.mega-blog-image{width:80px;flex-shrink:0}.mega-blog-image img{display:block;width:100%;aspect-ratio:1.4;object-fit:cover;border-radius:5px}.mega-blog-copy{min-width:0;flex:1}.mega-blog-copy time{display:block;font-size:10px;color:var(--muted);margin-bottom:3px}.mega-blog-copy strong{display:block;font-size:13px;line-height:1.7}.mega-blog-row>.icon{width:14px;flex-shrink:0;color:var(--accent)}@media(max-width:600px){.mega-blog-image{width:62px}.main-nav .mega-blog-row{gap:10px}}

/* Group the six about-menu destinations by purpose. */
.mega-groups-about{grid-template-columns:repeat(3,minmax(0,1fr))}
.mega-groups-about ul{grid-template-columns:1fr}
@media(max-width:900px){.mega-groups-about{grid-template-columns:1fr}.mega-groups-about ul{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){#mega-about .mega-intro{display:none}.mega-groups-about ul{grid-template-columns:minmax(0,1fr)}}

#mega-prefectures .mega-intro a{display:flex;align-items:center;gap:6px}
#mega-prefectures .mega-intro .mega-map-link{justify-content:center;width:100%;min-height:44px;padding:10px 14px;background:#fff;border:1px solid var(--line);border-radius:8px;color:var(--text,#333);font-weight:600}
.main-nav .mega-prefectures-footer{display:none}
@media(min-width:601px){
 #mega-prefectures .mega-intro{display:flex;flex-direction:column;align-items:stretch}
 #mega-prefectures .mega-intro .mega-directory-link{order:1;margin-top:8px}
}
@media(max-width:600px){
 #mega-prefectures .mega-intro{align-items:stretch;flex-direction:column;gap:0;margin-bottom:22px}
 #mega-prefectures .mega-intro .mega-directory-link{display:none}
 #mega-prefectures .mega-prefectures-footer{display:flex;align-items:center;justify-content:flex-end;gap:6px;margin-top:22px;color:var(--accent)}
}

/* Festival status at the top right of ranking thumbnails. */
.mega-rank-image>.mega-rank-timing{left:auto;right:0;top:0;max-width:calc(100% - 42px);box-sizing:border-box;border-radius:0 0 0 6px;font-size:10px;padding:4px 6px;overflow-wrap:anywhere}
@media(max-width:600px){.mega-rank-image>.mega-rank-timing{font-size:9px;padding:3px;max-width:calc(100% - 34px)}}
