
:root{
 --bg:#fffaf4;--surface:#fff;--ink:#22252b;--muted:#687180;--line:#ece7df;
 --orange:#ff6b2c;--orange2:#ff8a3d;--yellow:#ffd347;--pink:#ff5e91;--blue:#2e6bf6;--green:#139b62;
 --shadow:0 16px 40px rgba(82,49,24,.10);--soft-shadow:0 8px 24px rgba(82,49,24,.07)
}
*{box-sizing:border-box} html{scroll-behavior:smooth}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Sans","Yu Gothic",Meiryo,sans-serif;color:var(--ink);background:var(--bg);line-height:1.7}
a{text-decoration:none;color:inherit}button,input,textarea{font:inherit}button{cursor:pointer}.container{width:min(1160px,calc(100% - 34px));margin:auto}
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.94);backdrop-filter:blur(14px);border-bottom:1px solid rgba(236,231,223,.9)}
.header-inner{height:70px;display:flex;align-items:center;justify-content:space-between;gap:22px}.brand{display:flex;gap:7px;align-items:center;font-weight:900;font-size:23px;letter-spacing:-.04em}.brand-icon{font-size:25px}.brand-accent{color:var(--orange)}.top-nav{display:flex;gap:24px;font-size:14px;font-weight:800;color:#4f5763}.top-nav a:hover{color:var(--orange)}
.home-hero{position:relative;min-height:620px;background-image:linear-gradient(90deg,rgba(34,24,17,.82),rgba(34,24,17,.48) 55%,rgba(34,24,17,.18)),var(--hero);background-size:cover;background-position:center 55%;color:#fff;overflow:hidden}.hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,107,44,.12),transparent 45%,rgba(0,0,0,.15))}.hero-content{position:relative;z-index:2;padding:86px 0 118px;max-width:1160px}.hero-content>*{max-width:780px}.hero-badge{display:inline-flex!important;width:auto;padding:8px 14px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.3);backdrop-filter:blur(8px);border-radius:999px;font-size:13px;font-weight:900}.hero-content h1{font-size:clamp(46px,7vw,78px);line-height:1.08;letter-spacing:-.055em;margin:16px 0 20px;text-shadow:0 4px 30px rgba(0,0,0,.28)}.hero-content h1 em{font-style:normal;color:#ffd96b}.hero-content p{font-size:19px;color:rgba(255,255,255,.9);font-weight:600}.hero-search{display:flex!important;max-width:800px!important;background:#fff;border-radius:18px;padding:8px;box-shadow:0 20px 60px rgba(0,0,0,.24);margin-top:30px;align-items:center}.search-icon{color:#8c93a0;font-size:28px;padding-left:8px}.hero-search input{flex:1;border:0;outline:0;padding:14px 12px;font-size:16px;min-width:0}.hero-search button{border:0;color:#fff;background:linear-gradient(135deg,var(--orange),var(--pink));border-radius:12px;padding:14px 24px;font-weight:900;box-shadow:0 8px 18px rgba(255,107,44,.25)}.hero-shortcuts{display:flex!important;gap:10px;margin-top:16px;flex-wrap:wrap}.hero-shortcuts button{border:1px solid rgba(255,255,255,.35);color:#fff;background:rgba(20,20,20,.26);backdrop-filter:blur(6px);padding:9px 14px;border-radius:999px;font-weight:800}.hero-trust{position:absolute;bottom:0;left:0;right:0;z-index:3;background:rgba(17,17,17,.55);backdrop-filter:blur(10px);border-top:1px solid rgba(255,255,255,.12)}.trust-inner{display:flex;gap:32px;flex-wrap:wrap;padding:16px 0;font-size:13px;font-weight:800}.confetti{position:absolute;width:12px;height:28px;border-radius:3px;opacity:.75;z-index:1}.c1{background:#ffd347;right:12%;top:15%;transform:rotate(22deg)}.c2{background:#ff5e91;right:7%;top:30%;transform:rotate(-28deg)}.c3{background:#44d7b6;right:18%;top:40%;transform:rotate(45deg)}.c4{background:#6b7cff;right:25%;top:12%;transform:rotate(-14deg)}
.section{padding:76px 0}.section-head{display:flex;justify-content:space-between;gap:22px;align-items:end;margin-bottom:26px}.section-head h2,.section-title-row h2{margin:2px 0 4px;line-height:1.2;letter-spacing:-.035em}.section-head h2{font-size:34px}.section-head p{margin:0;color:var(--muted)}.section-kicker{font-size:11px;letter-spacing:.16em;font-weight:900;color:var(--orange)}.more-link{font-weight:900;color:var(--orange)}
.event-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.event-card{background:#fff;border:1px solid var(--line);border-radius:23px;overflow:hidden;box-shadow:var(--soft-shadow);transition:.22s}.event-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}.event-image{height:220px;display:block;position:relative;overflow:hidden;background:#f3eee8}.event-image img{width:100%;height:100%;object-fit:cover;transition:.35s}.event-card:hover .event-image img{transform:scale(1.035)}.image-chip{position:absolute;left:14px;top:14px;background:rgba(255,255,255,.92);backdrop-filter:blur(7px);padding:6px 10px;border-radius:999px;font-weight:900;font-size:12px}.status-chip{position:absolute;right:14px;top:14px;color:#fff;padding:6px 10px;border-radius:999px;font-weight:900;font-size:11px}.scheduled-bg{background:#138a5a}.ongoing-bg{background:#2365dc}.checking-bg{background:#aa7400}.card-body{padding:19px}.card-topline{display:flex;justify-content:space-between;color:#7a8390;font-size:12px;font-weight:800}.card-body h3{font-size:20px;line-height:1.4;margin:9px 0 7px}.card-body p{font-size:14px;color:#56606e;margin:0 0 14px}.verified-row{display:flex;justify-content:space-between;align-items:center;padding-top:12px;border-top:1px dashed var(--line);font-size:11px}.verified-row span{color:var(--green);font-weight:900}.verified-row time{color:#89919c}.art{display:flex;align-items:center;justify-content:center}.art-food{background:linear-gradient(135deg,#ff9d42,#ff5a77)}.art-light{background:radial-gradient(circle at 30% 20%,#ffcb5e 0 3%,transparent 4%),radial-gradient(circle at 65% 35%,#57e8ff 0 3%,transparent 4%),linear-gradient(135deg,#313169,#732cc4)}.art-emoji{font-size:78px;filter:drop-shadow(0 8px 15px rgba(0,0,0,.18))}
.color-section{background:linear-gradient(180deg,#fff3e8,#fffaf4)}.category-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.category-grid button{border:1px solid #f0dfd0;background:#fff;border-radius:18px;padding:22px;text-align:left;box-shadow:0 4px 15px rgba(105,62,23,.04);transition:.2s}.category-grid button:hover{transform:translateY(-3px);border-color:#ffc6a6}.category-grid button>span{font-size:30px;display:block}.category-grid strong{font-size:16px;display:block;margin-top:8px}.category-grid small{color:#7d8590}.region-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.region-grid button{display:flex;justify-content:space-between;border:1px solid var(--line);background:#fff;border-radius:14px;padding:17px 18px;font-weight:900}.region-grid button span{color:var(--orange)}.latest-section{background:#fff}.latest-list{border:1px solid var(--line);border-radius:20px;overflow:hidden}.latest-list a{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;padding:17px 20px;border-bottom:1px solid var(--line)}.latest-list a:last-child{border-bottom:0}.latest-list div strong,.latest-list div small{display:block}.latest-list small,.latest-list time{color:#87909c;font-size:12px}.dot{width:11px;height:11px;border-radius:50%}.dot-green{background:#12a26a}.dot-blue{background:#3972e8}.dot-yellow{background:#e7a511}
.site-footer{background:#1d1b1a;color:#e9e3dd;padding:42px 0}.footer-grid{display:flex;justify-content:space-between;gap:30px;align-items:start}.footer-brand{font-size:21px;font-weight:900}.site-footer p{color:#aba39b;font-size:13px}.footer-links{display:flex;gap:18px;flex-wrap:wrap;font-size:12px}.demo-note{border-top:1px solid #35312f;padding-top:20px;margin-top:26px;color:#8f8781;font-size:11px}.empty-state{background:#fff;border:1px dashed #dfd6cc;border-radius:15px;padding:24px;text-align:center;color:#727a84}
.toast{position:fixed;left:50%;bottom:26px;z-index:99;transform:translate(-50%,18px);background:#222;color:#fff;padding:12px 18px;border-radius:12px;opacity:0;pointer-events:none;transition:.2s;box-shadow:var(--shadow)}.toast.show{opacity:1;transform:translate(-50%,0)}
.event-hero{position:relative;min-height:540px;background-image:var(--eventhero);background-size:cover;background-position:center 45%;color:#fff;display:flex;align-items:flex-end}.event-hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.12),rgba(0,0,0,.76) 82%)}.event-hero-inner{position:relative;z-index:2;padding:54px 0 48px}.breadcrumb{display:flex;gap:7px;flex-wrap:wrap;font-size:12px}.breadcrumb.light{color:rgba(255,255,255,.75)}.breadcrumb.light a{color:#fff}.hero-status-line{display:flex;gap:10px;flex-wrap:wrap;margin:22px 0 14px}.status-pill,.check-pill{padding:7px 11px;border-radius:999px;font-size:12px;font-weight:900;backdrop-filter:blur(6px)}.status-live{background:#10a56b}.check-pill{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.25)}.event-hero h1{font-size:clamp(38px,6vw,64px);line-height:1.12;margin:0 0 13px;letter-spacing:-.045em}.event-hero h1 small{font-size:.45em;color:rgba(255,255,255,.72)}.event-hero p{font-size:17px;max-width:760px;color:rgba(255,255,255,.88)}.detail-tags{display:flex;gap:7px;flex-wrap:wrap}.detail-tags span{background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.19);border-radius:999px;padding:6px 10px;font-size:12px;font-weight:800}.photo-credit{position:absolute;right:14px;bottom:8px;font-size:10px;color:rgba(255,255,255,.72);z-index:2}
.unapproved-preview-badge{position:absolute;z-index:3;top:16px;right:16px;background:#b42318;color:#fff;padding:8px 12px;border-radius:999px;font-size:12px;font-weight:900;box-shadow:0 4px 12px rgba(0,0,0,.22)}
.detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:26px;padding-top:26px;padding-bottom:80px}.mvp-alert{background:#fff4d8;border:1px solid #efd183;padding:14px 16px;border-radius:14px;font-size:13px}.content-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:28px;margin:18px 0;box-shadow:0 5px 18px rgba(66,43,24,.035)}.section-title-row{display:flex;align-items:start;justify-content:space-between;gap:14px;margin-bottom:18px}.section-title-row h2{font-size:27px}.updated-badge,.license-badge,.embed-badge,.demo-badge{font-size:11px;font-weight:900;border-radius:999px;padding:5px 9px;background:#f2f3f5;color:#687180}.license-badge{background:#eaf8f1;color:#178158}.embed-badge{background:#eef3ff;color:#335fd4}.demo-badge{background:#fff0f5;color:#c83d70}
.info-table{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);border-left:1px solid var(--line);margin:0}.info-table>div{display:grid;grid-template-columns:105px 1fr;min-height:57px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.info-table dt{background:#faf8f5;padding:15px;font-size:13px;font-weight:900}.info-table dd{margin:0;padding:15px;font-size:14px}.free-badge{background:#e8f8ef;color:#14744d;font-size:12px;font-weight:900;border-radius:999px;padding:4px 10px}.official-btn{display:inline-flex;margin-top:20px;background:linear-gradient(135deg,var(--orange),var(--pink));color:#fff;border-radius:12px;padding:13px 17px;font-weight:900;box-shadow:0 9px 22px rgba(255,107,44,.2)}
.highlight-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.highlight-grid>div{padding:18px;border-radius:17px;background:#fff8f1;border:1px solid #f5e3d2}.highlight-grid>div>span{font-size:27px}.highlight-grid h3{font-size:16px;margin:8px 0 4px}.highlight-grid p{font-size:13px;color:#667080;margin:0}.access-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.access-grid>div{border:1px solid var(--line);border-radius:15px;padding:17px}.access-grid>div>span{font-size:25px;display:block}.access-grid strong{display:block;margin-top:6px}.access-grid p{font-size:13px;color:#67717e;margin:4px 0}
.year-timeline{display:grid;grid-template-columns:1fr auto 1fr;gap:18px;align-items:center}.year-timeline>div:not(.timeline-line){padding:20px;border:1px solid var(--line);border-radius:16px}.year-timeline .current-year{background:#fff6ee;border-color:#ffc7a5!important}.year-label{display:block;color:var(--orange);font-weight:900;font-size:12px}.year-timeline strong{font-size:18px}.year-timeline p{font-size:13px;color:#67717e}.timeline-line{width:32px;height:2px;background:linear-gradient(90deg,#d4d4d4,var(--orange))}.change-box{margin-top:15px;border-left:4px solid var(--orange);background:#faf8f5;border-radius:0 12px 12px 0;padding:14px 17px}.change-box ul{margin:7px 0 0;padding-left:20px}
.real-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.real-gallery figure{margin:0;overflow:hidden;border-radius:15px;background:#f3f3f3}.real-gallery img{width:100%;height:185px;object-fit:cover;display:block}.real-gallery figcaption{padding:8px 10px;font-size:11px;color:#606a77}.license-note{font-size:10px;color:#89919c;margin:9px 0 0}.section-copy{font-size:13px;color:#67717e}.social-embed-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.embed-mock{position:relative;min-height:180px;border:1px solid #d9dde5;border-radius:17px;padding:18px;background:#fff}.embed-mock.instagram{background:linear-gradient(135deg,#fff,#fff5fb)}.embed-top{display:flex;align-items:center;gap:9px;border-bottom:1px solid #eee;padding-bottom:11px}.embed-logo{font-size:24px;font-weight:900}.embed-mock p{font-size:13px;color:#626c78}.mock-label{position:absolute;right:12px;bottom:12px;font-size:10px;background:#f2f2f3;color:#7b838d;padding:4px 7px;border-radius:99px}
.review-summary{display:grid;grid-template-columns:150px 1fr;gap:20px;background:#faf8f5;border-radius:16px;padding:18px;margin-bottom:14px}.review-score{text-align:center;border-right:1px solid #e8e2da}.review-score strong,.review-score span,.review-score small{display:block}.review-score strong{font-size:34px;line-height:1}.review-score span,.stars{color:#ee9e13}.review-score small{color:#8b929c}.review-bars{display:grid;gap:7px}.review-bars div{display:flex;justify-content:space-between}.review-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.review-grid blockquote{margin:0;border:1px solid var(--line);border-radius:15px;padding:17px}.review-grid p{font-size:13px}.review-grid footer{font-size:11px;color:#8a929c}.review-cta{width:100%;margin-top:12px;border:1px solid #f0b38f;background:#fff7f1;color:#d65f20;border-radius:12px;padding:11px;font-weight:900}
.share-card{display:grid;grid-template-columns:220px 1fr;gap:22px;align-items:center}.share-card h2{margin:2px 0}.share-card p{margin:0;color:#777f8a}.share-buttons{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.share{height:48px;border:0;border-radius:12px;color:#fff;font-weight:900;display:flex;align-items:center;justify-content:center;gap:6px}.share.x{background:#111}.share.fb{background:#1877f2}.share.line{background:#06c755}.share.copy{background:#606a78}
.affiliate-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.affiliate-grid button{border:1px solid #e8ded3;background:#fffaf5;border-radius:14px;padding:16px 10px}.affiliate-grid button>strong,.affiliate-grid button>small{display:block}.affiliate-grid button>strong{margin-top:5px}.affiliate-grid button>small{color:#8a929c}.detail-sidebar{padding-top:18px}.sidebar-card{position:sticky;top:88px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:19px;box-shadow:var(--soft-shadow)}.sidebar-card ul{list-style:none;padding:0;margin:12px 0}.sidebar-card li{padding:7px 0;border-bottom:1px solid #f0ece7;font-size:13px}.sidebar-card button{width:100%;border:0;background:#222;color:#fff;padding:10px;border-radius:10px;font-weight:900}.sidebar-card.mini{position:static;margin-top:12px}.sidebar-card.mini p{font-size:12px;color:#747d89}
.contact-page{padding:70px 0 90px}.contact-wrap{max-width:760px}.contact-intro h1{font-size:42px;margin:3px 0 8px;letter-spacing:-.04em}.contact-intro p{color:#6e7783}.contact-form{margin-top:28px;background:#fff;border:1px solid var(--line);border-radius:22px;padding:28px;box-shadow:var(--soft-shadow);display:grid;gap:20px}.contact-form label>span{display:block;font-weight:900;margin-bottom:7px}.contact-form b{font-size:10px;background:#ffede6;color:#c84e19;padding:3px 6px;border-radius:5px}.contact-form em{font-size:10px;font-style:normal;background:#f1f2f4;color:#707985;padding:3px 6px;border-radius:5px}.contact-form input,.contact-form textarea{width:100%;border:1px solid #dfe2e6;border-radius:12px;padding:12px 13px;outline:0;background:#fff}.contact-form input:focus,.contact-form textarea:focus{border-color:#ff9b6a;box-shadow:0 0 0 3px rgba(255,107,44,.09)}.contact-form small{display:block;color:#8b939d;margin-top:5px}.submit-btn{border:0;background:linear-gradient(135deg,var(--orange),var(--pink));color:#fff;border-radius:12px;padding:13px;font-weight:900}.form-note{font-size:11px;color:#8b939d;text-align:center;margin:0}
@media(max-width:920px){.top-nav{display:none}.event-grid{grid-template-columns:1fr 1fr}.category-grid{grid-template-columns:repeat(2,1fr)}.region-grid{grid-template-columns:repeat(2,1fr)}.detail-layout{grid-template-columns:1fr}.detail-sidebar{display:none}.highlight-grid{grid-template-columns:1fr}.share-card{grid-template-columns:1fr}.affiliate-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.container{width:min(100% - 22px,1160px)}.home-hero{min-height:650px}.hero-content{padding:64px 0 120px}.hero-content h1{font-size:46px}.hero-content p{font-size:15px}.hero-search{display:grid!important;grid-template-columns:auto 1fr;padding:7px}.hero-search button{grid-column:1/3;width:100%}.trust-inner{gap:10px;font-size:11px}.event-grid{grid-template-columns:1fr}.section{padding:54px 0}.section-head h2{font-size:29px}.section-head{align-items:start}.category-grid{grid-template-columns:1fr 1fr}.region-grid{grid-template-columns:1fr}.event-hero{min-height:500px}.event-hero-inner{padding-bottom:44px}.info-table{grid-template-columns:1fr}.year-timeline{grid-template-columns:1fr}.timeline-line{width:2px;height:20px;margin:auto;background:linear-gradient(#d4d4d4,var(--orange))}.real-gallery{grid-template-columns:1fr}.real-gallery img{height:230px}.social-embed-grid,.review-grid{grid-template-columns:1fr}.review-summary{grid-template-columns:1fr}.review-score{border-right:0;border-bottom:1px solid #e8e2da;padding-bottom:12px}.share-buttons{grid-template-columns:1fr 1fr}.share{width:100%}.affiliate-grid{grid-template-columns:1fr 1fr}.footer-grid{flex-direction:column}.contact-form{padding:20px}}


/* --- MVP v3 overrides --- */
.featured-slider{overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:10px;scrollbar-width:thin}
.featured-slider .event-card{scroll-snap-align:start}

.japan-map-wrap{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(250px,.7fr);gap:22px;align-items:stretch}
.japan-map-card,.map-side{background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:var(--soft-shadow)}
.japan-map-card{padding:18px}
.japan-map{width:100%;height:auto;display:block}
.map-region{cursor:pointer;transition:.2s}
.map-region path,.map-region circle{fill:#ffe4d4;stroke:#fff;stroke-width:5}
.map-region text{font-size:20px;font-weight:900;fill:#7b4b31;text-anchor:middle;pointer-events:none}
.map-region:hover path,.map-region:hover circle{fill:#ff9d66;transform:translateY(-2px);transform-origin:center}
.map-region:hover text{fill:#fff}
.map-side{padding:22px}
.map-side>strong{font-size:18px}
.region-list{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:14px}
.region-list button{border:1px solid #efded2;background:#fffaf6;border-radius:11px;padding:11px;font-weight:900;color:#57483f}
.region-list button:hover{border-color:#ff9c6c;color:#d55c24}
.map-side p{font-size:11px;color:#8d938f;margin:14px 0 0}

@media(max-width:920px){
  .japan-map-wrap{grid-template-columns:1fr}
}
@media(max-width:620px){
  .featured-slider{
    display:flex !important;
    gap:14px;
    margin-right:-11px;
    padding-right:11px;
  }
  .featured-slider .event-card{
    flex:0 0 84%;
    max-width:84%;
  }
  .japan-map-card{padding:8px}
  .map-region text{font-size:18px}
  .region-list{grid-template-columns:1fr 1fr}
  .share-buttons{grid-template-columns:1fr 1fr}
  .share{font-size:13px}
}


/* --- MVP v4 overrides --- */
.premium-map{position:relative;overflow:hidden;background:
  radial-gradient(circle at 78% 10%,rgba(255,215,164,.28),transparent 30%),
  linear-gradient(180deg,#fffefb 0%,#fff7ef 100%);
}
.map-caption{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:4px 8px 8px}
.map-caption strong{font-size:18px}
.map-caption span{font-size:11px;color:#8a8179}
.detailed-map{padding:4px 0 0}
.detailed-map .map-region path,.detailed-map .map-region ellipse{
  stroke:#fff;stroke-width:6;vector-effect:non-scaling-stroke;
  transition:.22s transform,.22s opacity,.22s filter;
}
.detailed-map .map-region text{
  font-size:18px;font-weight:900;fill:#5e493d;text-anchor:middle;dominant-baseline:middle;
  pointer-events:none;paint-order:stroke;stroke:#fff;stroke-width:4px;stroke-linejoin:round;
}
.detailed-map .map-region:hover path,.detailed-map .map-region:hover ellipse{
  transform:translateY(-4px);filter:brightness(1.03);
}
.detailed-map .map-region:hover text{fill:#2f2a27}
.detailed-map .hokkaido path{fill:#7cc9ff}
.detailed-map .tohoku path{fill:#8fd9c6}
.detailed-map .kanto path{fill:#ffd66e}
.detailed-map .chubu path{fill:#ffad7b}
.detailed-map .kansai path{fill:#ff8ea7}
.detailed-map .chugoku path{fill:#a7a1ff}
.detailed-map .shikoku path{fill:#c29aff}
.detailed-map .kyushu path{fill:#75d6a5}
.detailed-map .okinawa ellipse{fill:#64c7c7}
.island-dot{fill:#dbc9ba}
.map-legend{display:flex;flex-wrap:wrap;gap:8px 13px;padding:8px 10px 3px;border-top:1px solid #f0e5da;margin-top:4px}
.map-legend span{font-size:10px;color:#7a736e;display:flex;align-items:center;gap:5px}
.legend-dot{width:9px;height:9px;border-radius:50%;display:inline-block}
.legend-dot.hokkaido{background:#7cc9ff}.legend-dot.tohoku{background:#8fd9c6}.legend-dot.kanto{background:#ffd66e}
.legend-dot.chubu{background:#ffad7b}.legend-dot.kansai{background:#ff8ea7}.legend-dot.chugoku{background:#a7a1ff}
.legend-dot.shikoku{background:#c29aff}.legend-dot.kyushu{background:#75d6a5}.legend-dot.okinawa{background:#64c7c7}

.detailed-access{grid-template-columns:repeat(2,1fr)}
.detailed-access>div{min-height:180px}
.detailed-access p{font-size:14px;line-height:1.75}
.detailed-access small{display:block;color:#8a929c;font-size:11px;margin-top:8px}
.detailed-access b{color:#3b322c}

@media(max-width:620px){
  .home-hero .hero-content p{font-size:14px;line-height:1.65;max-width:330px}
  .map-caption{display:block}
  .map-caption span{display:block;margin-top:3px}
  .japan-map-wrap{gap:14px}
  .premium-map{border-radius:18px}
  .detailed-map .map-region text{font-size:17px}
  .map-legend{display:none}
  .detailed-access{grid-template-columns:1fr}
  .detailed-access>div{min-height:0}
}


/* --- MVP v5: accurate Japan map --- */
.accurate-map-layout{
  display:grid;
  grid-template-columns:minmax(0,1.75fr) minmax(245px,.55fr);
  gap:22px;
  align-items:stretch;
}
.accurate-map-card{
  background:
    radial-gradient(circle at 80% 15%,rgba(255,205,157,.22),transparent 27%),
    linear-gradient(180deg,#fffdf9 0%,#fff8f1 100%);
  border:1px solid #f0e2d4;
  border-radius:24px;
  padding:18px;
  box-shadow:var(--soft-shadow);
}
.accurate-map-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  padding:2px 6px 4px;
}
.accurate-map-head strong{display:block;font-size:18px}
.accurate-map-head span:not(.map-data-badge){display:block;font-size:11px;color:#8a8179;margin-top:2px}
.map-data-badge{
  font-size:10px;
  font-weight:800;
  color:#a35d38;
  background:#fff0e3;
  border:1px solid #ffd8bd;
  border-radius:999px;
  padding:5px 9px;
  white-space:nowrap;
}
.accurate-japan-map{
  width:100%;
  height:auto;
  display:block;
  margin-top:-4px;
}
.japan-land{
  fill:url(#landGradient);
  stroke:#fff;
  stroke-width:3.2;
  vector-effect:non-scaling-stroke;
}
.region-hotspot{cursor:pointer;outline:none}
.pin-line{stroke:#b36b49;stroke-width:1.5;stroke-dasharray:3 3}
.pin-ring{fill:#fff;stroke:#e36f3c;stroke-width:3}
.pin-core{fill:#e65e2c}
.region-pill{
  fill:rgba(255,255,255,.96);
  stroke:#f0c4ad;
  stroke-width:1.2;
  filter:drop-shadow(0 4px 8px rgba(76,48,34,.10));
}
.region-label{
  fill:#503d33;
  font-size:13px;
  font-weight:900;
  text-anchor:middle;
  dominant-baseline:middle;
  pointer-events:none;
}
.region-hotspot:hover .region-pill,
.region-hotspot:focus .region-pill{fill:#ff7540;stroke:#ff7540}
.region-hotspot:hover .region-label,
.region-hotspot:focus .region-label{fill:#fff}
.region-hotspot:hover .pin-ring,
.region-hotspot:focus .pin-ring{r:12;stroke:#ff7540}
.inset-frame{fill:#fff;stroke:#ead6c6;stroke-width:1.5}
.inset-title{fill:#503d33;font-size:15px;font-weight:900}
.okinawa-island{fill:#ff9d7a;stroke:#fff;stroke-width:1.5}
.inset-tap{fill:#95867b;font-size:9px;text-anchor:middle}
.okinawa-inset{cursor:pointer}
.okinawa-inset:hover .inset-frame{stroke:#ff8c5c;fill:#fff7f1}
.map-note{border-top:1px solid #f0e5da;padding:10px 6px 0;color:#978c84;font-size:10px}
.map-prefecture-panel{
  background:#fff;
  border:1px solid var(--line);
  border-radius:22px;
  padding:22px;
  box-shadow:var(--soft-shadow);
}
.panel-kicker{font-size:10px;letter-spacing:.15em;color:var(--orange);font-weight:900}
.map-prefecture-panel h3{font-size:24px;margin:2px 0 5px;letter-spacing:-.03em}
.map-prefecture-panel>p{font-size:12px;color:#818893;margin:0 0 14px}
.clean-region-list{display:grid;gap:7px}
.clean-region-list button{
  display:flex;
  justify-content:space-between;
  align-items:center;
  width:100%;
  background:#fffaf6;
  border:1px solid #eee0d5;
  border-radius:11px;
  padding:9px 11px;
  font-weight:900;
  color:#52463f;
}
.clean-region-list button:hover{
  border-color:#ff9b6a;
  color:#d75b23;
  background:#fff5ed;
}
.clean-region-list b{color:var(--orange)}
.map-prefecture-panel small{display:block;color:#9a918b;margin-top:12px;font-size:10px}

@media(max-width:920px){
  .accurate-map-layout{grid-template-columns:1fr}
  .map-prefecture-panel{display:none}
}
@media(max-width:620px){
  .accurate-map-card{padding:9px;border-radius:18px}
  .accurate-map-head{padding:7px 8px 1px}
  .map-data-badge{display:none}
  .accurate-japan-map{margin-top:2px}
  .region-pill{stroke-width:1}
  .region-label{font-size:12px}
  .map-note{padding:8px 9px 3px;line-height:1.5}
}


/* --- MVP v6 overrides --- */
.mood-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:14px;
}
.mood-card{
  position:relative;
  min-height:156px;
  border:0;
  border-radius:20px;
  overflow:hidden;
  background-image:var(--bg);
  background-size:cover;
  background-position:center;
  box-shadow:var(--soft-shadow);
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  align-items:flex-start;
  padding:16px;
  color:#fff;
  text-align:left;
  isolation:isolate;
}
.mood-card:hover{transform:translateY(-3px)}
.mood-overlay{
  position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,.12),rgba(0,0,0,.52) 65%,rgba(0,0,0,.72));
  z-index:-1;
}
.mood-icon{
  font-size:23px;
  line-height:1;
  margin-bottom:8px;
  filter:drop-shadow(0 2px 5px rgba(0,0,0,.35));
}
.mood-card strong{
  font-size:20px;
  font-weight:900;
  letter-spacing:-.02em;
  text-shadow:0 2px 8px rgba(0,0,0,.45);
}

.map-image-wrap{
  display:grid;
  grid-template-columns:minmax(0,1.55fr) minmax(245px,.6fr);
  gap:22px;
  align-items:stretch;
}
.map-image-card{
  position:relative;
  background:linear-gradient(180deg,#f9fff9,#eff8f0);
  border:1px solid #dceadf;
  border-radius:24px;
  padding:28px;
  min-height:420px;
  box-shadow:var(--soft-shadow);
  overflow:hidden;
}
.japan-illustration{
  display:block;
  width:100%;
  max-width:700px;
  margin:0 auto;
  height:auto;
  object-fit:contain;
}
.region-badge{
  position:absolute;
  border:0;
  padding:9px 14px;
  border-radius:999px;
  font-weight:900;
  font-size:13px;
  color:#fff;
  background:linear-gradient(180deg,#ff8648,#f05c26);
  box-shadow:0 8px 18px rgba(94,53,28,.18);
  white-space:nowrap;
}
.region-badge:hover{transform:translateY(-2px)}
.region-badge.hokkaido{top:56px; right:72px;}
.region-badge.tohoku{top:148px; right:112px;}
.region-badge.kanto{top:220px; right:160px;}
.region-badge.chubu{top:248px; right:288px;}
.region-badge.kansai{top:314px; right:292px;}
.region-badge.chugoku{top:274px; left:238px;}
.region-badge.shikoku{top:350px; left:322px;}
.region-badge.kyushu{top:290px; left:112px;}
.region-badge.okinawa{bottom:34px; left:32px;}

@media(max-width:920px){
  .mood-grid{grid-template-columns:repeat(2,1fr)}
  .map-image-wrap{grid-template-columns:1fr}
}
@media(max-width:620px){
  .mood-grid{grid-template-columns:1fr 1fr;gap:12px}
  .mood-card{min-height:132px;padding:14px}
  .mood-card strong{font-size:18px}
  .map-image-card{
    padding:16px 10px 56px;
    min-height:unset;
  }
  .japan-illustration{
    width:100%;
    max-width:none;
  }
  .region-badge{
    font-size:11px;
    padding:7px 10px;
  }
  .region-badge.hokkaido{top:24px; right:18px;}
  .region-badge.tohoku{top:86px; right:34px;}
  .region-badge.kanto{top:136px; right:58px;}
  .region-badge.chubu{top:162px; right:148px;}
  .region-badge.kansai{top:206px; right:146px;}
  .region-badge.chugoku{top:176px; left:86px;}
  .region-badge.shikoku{top:226px; left:112px;}
  .region-badge.kyushu{top:188px; left:18px;}
  .region-badge.okinawa{bottom:14px; left:10px;}
}


/* --- MVP v7 overrides --- */

/* mood cards: explicit background images to guarantee reflection */
.mood-matsuri{background-image:url('../images/cat-matsuri.png')}
.mood-fireworks{background-image:url('../images/cat-fireworks.png')}
.mood-autumn{background-image:url('../images/cat-autumn.png')}
.mood-illumination{background-image:url('../images/cat-illumination.png')}
.mood-gourmet{background-image:url('../images/cat-gourmet.png')}
.mood-halloween{background-image:url('../images/cat-halloween.png')}
.mood-christmas{background-image:url('../images/cat-christmas.png')}
.mood-other{background-image:url('../images/cat-other.png')}

.mood-card{
  background-size:cover !important;
  background-position:center !important;
  background-repeat:no-repeat !important;
}

/* WordPress production additions */
.screen-reader-text{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.hero-shortcuts a{border:1px solid rgba(255,255,255,.35);color:#fff;background:rgba(20,20,20,.26);backdrop-filter:blur(6px);padding:9px 14px;border-radius:999px;font-weight:800}
.event-image img.fallback-image{filter:saturate(.82)}
.content-empty{padding:26px;border:1px dashed var(--line);border-radius:18px;color:#737c88;background:#fff}
.contact-message{padding:13px 16px;border-radius:12px;font-weight:800;margin:18px 0}
.contact-message.success{background:#e9f9f1;color:#08744a}.contact-message.error{background:#fff0ec;color:#a63f24}
.hp-field{position:absolute!important;left:-9999px!important}
.field-error{color:#b13a21;font-size:12px}
.status-cancelled{background:#b52b2b}.status-postponed{background:#8b5a11}.status-finished{background:#58606b}.status-checking{background:#aa7400}
.event-card a{color:inherit}.event-card .event-image{color:inherit}
.official-btn[aria-disabled="true"]{opacity:.55;pointer-events:none}
.pagination{margin-top:28px}.nav-links{display:flex;gap:8px;justify-content:center}.page-numbers{padding:8px 12px;border:1px solid var(--line);border-radius:8px;background:#fff}
.source-note{font-size:11px;color:#7f8790;margin-top:8px}
.event-jsonld-note{font-size:11px;color:#737c88}
.region-list a{border:1px solid #efded2;background:#fffaf6;border-radius:11px;padding:11px;font-weight:900;color:#57483f;text-align:center}.region-list a:hover{border-color:#ff9c6c;color:#d55c24}
.home-hero-credit{position:absolute;right:14px;bottom:58px;z-index:4;font-size:10px;color:rgba(255,255,255,.78);text-shadow:0 1px 4px rgba(0,0,0,.6)}
.map-region:focus{outline:none}.map-region:focus path,.map-region:focus circle{fill:#ff9d66}.map-region:focus text{fill:#fff}
.social-embed-item{min-height:180px;border:1px solid #d9dde5;border-radius:17px;padding:12px;background:#fff;overflow:hidden}.social-embed-item .twitter-tweet,.social-embed-item .instagram-media{margin:0 auto!important;min-width:0!important;width:100%!important}
.review-empty{background:#faf8f5;border-radius:16px;padding:20px;text-align:center}.review-empty p{margin-top:0;color:#68717c}.review-cta{display:inline-flex;align-items:center;justify-content:center;width:auto;margin-top:4px;text-decoration:none}
.affiliate-grid a{border:1px solid #e8ded3;background:#fffaf5;border-radius:14px;padding:16px 10px;text-align:center;color:inherit}.affiliate-grid a>strong,.affiliate-grid a>small{display:block}.affiliate-grid a>strong{margin-top:5px}.affiliate-grid a>small{color:#8a929c}.affiliate-grid a:hover{border-color:#f0b38f;transform:translateY(-2px)}
@media(max-width:620px){.home-hero-credit{bottom:72px;right:11px;left:11px;text-align:right}.social-embed-item{min-height:120px}}
.mood-card::after{
  content:"";
  position:absolute;
  inset:0;
  border-radius:20px;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);
  pointer-events:none;
}

/* image map restyle */
.map-image-card{
  background:
    radial-gradient(circle at 85% 12%,rgba(220,255,226,.65),transparent 26%),
    linear-gradient(180deg,#fcfffc,#f3faf4);
  border-color:#d8e8da;
}
.region-marker{
  position:absolute;
  --w:68px;         /* line width */
  --rot:0deg;       /* line angle */
  --tx:0px;         /* dot x offset from marker box */
  --ty:0px;         /* dot y offset from marker box */
}
.region-marker::before{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:var(--w);
  height:2px;
  background:#7abb86;
  transform-origin:left center;
  transform:translate(0,-50%) rotate(var(--rot));
  border-radius:999px;
  opacity:.95;
}
.region-marker::after{
  content:"";
  position:absolute;
  left:calc(50% + var(--tx));
  top:calc(50% + var(--ty));
  width:12px;
  height:12px;
  background:#8ed39b;
  border:2px solid #ffffff;
  border-radius:50%;
  box-shadow:0 4px 10px rgba(39,95,53,.18);
}
.region-badge{
  position:relative;
  z-index:2;
  border:1px solid #cfe7d5;
  padding:9px 15px;
  border-radius:999px;
  font-weight:900;
  font-size:13px;
  color:#2f6f3d;
  background:linear-gradient(180deg,#effcf2,#dff5e5);
  box-shadow:0 8px 18px rgba(67,109,73,.14);
  white-space:nowrap;
}
.region-badge:hover{
  transform:translateY(-2px);
  background:linear-gradient(180deg,#f6fff7,#e8f9ec);
}

/* position markers */
.region-marker.hokkaido{top:58px; right:84px; --w:44px; --rot:145deg; --tx:-32px; --ty:26px;}
.region-marker.tohoku{top:144px; right:120px; --w:58px; --rot:150deg; --tx:-49px; --ty:30px;}
.region-marker.kanto{top:220px; right:164px; --w:68px; --rot:170deg; --tx:-67px; --ty:12px;}
.region-marker.chubu{top:250px; right:286px; --w:74px; --rot:175deg; --tx:-74px; --ty:6px;}
.region-marker.kansai{top:318px; right:278px; --w:52px; --rot:-165deg; --tx:-50px; --ty:-14px;}
.region-marker.chugoku{top:278px; left:236px; --w:66px; --rot:-15deg; --tx:65px; --ty:-16px;}
.region-marker.shikoku{top:352px; left:324px; --w:34px; --rot:-50deg; --tx:20px; --ty:-24px;}
.region-marker.kyushu{top:296px; left:114px; --w:56px; --rot:-18deg; --tx:56px; --ty:-17px;}
.region-marker.okinawa{bottom:34px; left:32px; --w:34px; --rot:-20deg; --tx:34px; --ty:-11px;}

@media(max-width:620px){
  .region-badge{
    font-size:11px;
    padding:7px 11px;
  }
  .region-marker::after{width:10px;height:10px}
  .region-marker.hokkaido{top:24px; right:22px; --w:30px; --rot:146deg; --tx:-22px; --ty:18px;}
  .region-marker.tohoku{top:86px; right:42px; --w:40px; --rot:150deg; --tx:-33px; --ty:22px;}
  .region-marker.kanto{top:136px; right:61px; --w:42px; --rot:170deg; --tx:-42px; --ty:8px;}
  .region-marker.chubu{top:162px; right:146px; --w:48px; --rot:175deg; --tx:-48px; --ty:4px;}
  .region-marker.kansai{top:206px; right:144px; --w:38px; --rot:-164deg; --tx:-36px; --ty:-10px;}
  .region-marker.chugoku{top:176px; left:88px; --w:42px; --rot:-14deg; --tx:42px; --ty:-11px;}
  .region-marker.shikoku{top:226px; left:113px; --w:24px; --rot:-48deg; --tx:14px; --ty:-18px;}
  .region-marker.kyushu{top:188px; left:18px; --w:36px; --rot:-16deg; --tx:36px; --ty:-10px;}
  .region-marker.okinawa{bottom:14px; left:10px; --w:20px; --rot:-18deg; --tx:20px; --ty:-6px;}
}
.venue-list{display:grid;gap:12px;margin:20px 0}.venue-list article,.route-card{border:1px solid #e5e7eb;border-radius:14px;background:#fff;padding:16px}.venue-list p,.venue-list small{display:block;margin:6px 0 0;color:#52606d}.structured-access{align-items:start}.route-card>strong{display:block;margin-bottom:12px;font-size:1.05rem}.route-option+ .route-option,.parking-item+ .parking-item{border-top:1px solid #edf0f2;margin-top:14px;padding-top:14px}.route-option small{font-weight:700;color:#607d3b}.route-option ol{list-style:none;margin:8px 0 0;padding:0}.route-option li{position:relative;padding:0 0 22px 24px;line-height:1.45}.route-option li:not(:last-child)::after{content:'↓';position:absolute;left:3px;bottom:2px;color:#809071}.parking-item p{margin:6px 0}.parking-item small{color:#52606d}@media(max-width:680px){.structured-access{grid-template-columns:1fr}.route-card{padding:15px}.venue-list article{padding:14px}}
.google-maps-link{display:inline-flex;align-items:center;margin-top:7px;color:#176b3a;font-weight:800;text-decoration:underline;text-underline-offset:3px}.google-maps-link:hover,.google-maps-link:focus-visible{color:#0b4d28;text-decoration-thickness:2px}
