:root{--paper:#f6efe1;--paper-deep:#ede2c9;--paper-line:#e2d4b1;--ink:#1c1814;--ink-2:#3a322a;--ink-3:#6b5e4d;--ink-4:#9c8b73;--crimson:#a63a2a;--crimson-d:#862c1f;--crimson-l:#d3604f;--gold:#b8893f;--gold-d:#8b6628;--green:#4f6b3a;--bg:#faf6ec;--card:#fffaee;--card-line:#e8dcc0;--shadow-sm:0 1px 2px rgba(28,24,20,.06),0 0 0 1px rgba(28,24,20,.04);--shadow-md:0 4px 16px rgba(28,24,20,.08),0 0 0 1px rgba(28,24,20,.05);--shadow-lg:0 12px 40px rgba(28,24,20,.12),0 0 0 1px rgba(28,24,20,.05);--serif:"Shippori Mincho","Noto Serif JP",serif;--sans:"Noto Sans JP",system-ui,-apple-system,sans-serif;--mono:"JetBrains Mono",monospace;--container:1240px;--gutter:24px;--radius-sm:6px;--radius:10px;--radius-lg:14px}*{box-sizing:border-box}html,body{margin:0;padding:0}:focus-visible{outline:3px solid var(--crimson);outline-offset:2px;border-radius:4px}body{font-family:var(--sans);color:var(--ink);background:var(--bg);line-height:1.6;font-size:15px;-webkit-font-smoothing:antialiased;background-image:radial-gradient(circle at 12% 18%,rgba(184,137,63,.03) 0,transparent 40%),radial-gradient(circle at 88% 82%,rgba(166,58,42,.025) 0,transparent 45%)}img{max-width:100%;display:block}a{color:var(--ink);text-decoration:none}a:hover{color:var(--crimson)}button{font-family:inherit;cursor:pointer}.container{max-width:var(--container);margin:0 auto;padding:0 var(--gutter)}.util-bar{background:var(--ink);color:rgba(255,255,255,.78);font-size:12px;border-bottom:1px solid rgba(255,255,255,.06)}.util-bar .container{display:flex;align-items:center;gap:18px;height:32px}.util-bar a{color:inherit}.util-bar a:hover{color:#fff}.util-bar .lang{margin-right:auto;font-weight:500}.util-sep{opacity:.3}.site-header{background:var(--paper);border-bottom:1px solid var(--paper-line);position:sticky;top:0;z-index:50;backdrop-filter:blur(10px);background:rgba(246,239,225,.94)}.header-row{display:flex;align-items:center;gap:32px;height:52px}.logo{font-family:var(--serif);font-weight:700;font-size:22px;color:var(--ink);letter-spacing:.02em;display:flex;align-items:center;gap:4px;white-space:nowrap}.logo .mark{color:var(--crimson);font-size:18px;margin-right:2px}.logo .dot{color:var(--crimson);margin:0 -2px}.primary-nav{display:flex;align-items:center;gap:28px;font-size:14px;font-weight:500}.primary-nav a{color:var(--ink-2);position:relative;padding:6px 0}.primary-nav a.active{color:var(--crimson);font-weight:600}.primary-nav a.active::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;background:var(--crimson)}.primary-nav a.pill{background:var(--ink);color:var(--paper);padding:7px 14px;border-radius:99px;font-size:13px}.primary-nav a.pill:hover{background:var(--crimson)}.header-search{margin-left:auto;display:flex;align-items:center;background:var(--card);border:1px solid var(--card-line);border-radius:99px;padding:4px 4px 4px 14px;width:280px}.header-search input{flex:1;border:0;background:transparent;outline:none;font:inherit;font-size:13px;color:var(--ink);padding:6px 4px}.header-search input::placeholder{color:var(--ink-4)}.header-search:focus-within{border-color:var(--crimson);box-shadow:0 0 0 3px rgba(166,58,42,.15)}.header-search button{border:0;background:var(--ink);color:var(--paper);width:30px;height:30px;border-radius:99px;font-size:13px}.mobile-menu{display:none;border:0;background:transparent;font-size:28px;color:var(--ink);margin-left:auto}.breadcrumb{background:var(--paper-deep);border-bottom:1px solid var(--paper-line);font-size:12px;color:var(--ink-3)}.breadcrumb .container{display:flex;align-items:center;gap:8px;min-height:36px;height:auto;padding:6px 0;flex-wrap:wrap}.breadcrumb a{color:var(--ink-3)}.breadcrumb a:hover{color:var(--crimson)}.breadcrumb .sep{color:var(--ink-4)}.breadcrumb .current{color:var(--ink);font-weight:600}.hero{position:relative;background:var(--ink);color:#fff;overflow:hidden}.hero-img{position:absolute;inset:0}.hero-img img{width:100%;height:100%;object-fit:cover;opacity:.55;filter:grayscale(.35) contrast(1.05)}.hero-grad{position:absolute;inset:0;background:linear-gradient(180deg,rgba(28,24,20,.4) 0%,rgba(28,24,20,.85) 100%),radial-gradient(ellipse at left bottom,rgba(166,58,42,.35) 0%,transparent 60%)}.hero-body{position:relative;padding:68px var(--gutter) 56px}.hero-tags{display:flex;gap:8px;margin-bottom:18px;flex-wrap:wrap}.hero-tags .tag{font-size:11px;letter-spacing:.12em;font-weight:600;background:rgba(255,255,255,.12);color:#fff;padding:5px 11px;border-radius:4px;border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(6px)}.hero-tags .tag.dome{background:var(--crimson);border-color:var(--crimson-l)}.hero h1{font-family:var(--serif);font-weight:700;font-size:clamp(40px,7vw,76px);margin:0 0 14px;line-height:1.05;letter-spacing:.01em}.hero h1 small{display:inline-block;font-size:.42em;font-weight:500;margin-left:14px;color:rgba(255,255,255,.72);vertical-align:middle;letter-spacing:.04em}.hero .lead{font-size:17px;line-height:1.7;color:rgba(255,255,255,.85);max-width:640px;margin:0 0 36px}.hero .lead strong{color:#fff;font-weight:700}.hero-stats{display:flex;gap:36px;flex-wrap:wrap;border-top:1px solid rgba(255,255,255,.15);padding-top:24px;margin-top:24px}.hs .n{font-family:var(--serif);font-size:36px;font-weight:700;letter-spacing:-.01em;line-height:1}.hs .n small{font-size:.55em;font-weight:500;opacity:.8;margin-left:1px}.hs .l{font-size:11px;letter-spacing:.15em;color:rgba(255,255,255,.6);margin-top:8px;text-transform:uppercase}.quick-band{background:var(--paper);border-bottom:1px solid var(--paper-line);padding:18px 0;position:relative;z-index:5}.quick-band-inner{display:flex;flex-direction:column;gap:12px}.qb-form{display:grid;grid-template-columns:1fr 1fr 1fr 1fr auto;gap:1px;background:var(--card-line);border:1px solid var(--card-line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm)}.qb-field{background:var(--card);padding:10px 16px;cursor:pointer;transition:background .15s}.qb-field:hover{background:#fff}.qb-field label{font-size:11px;letter-spacing:.1em;color:var(--ink-4);font-weight:600;display:block;margin-bottom:2px}.qb-field .val{font-size:14px;font-weight:600;color:var(--ink)}.qb-form .btn{border-radius:0;padding:0 32px;font-size:14px}.qb-event-hint{display:flex;align-items:center;gap:8px;font-size:13px;background:#fff5d6;border:1px solid #e8d18a;border-radius:var(--radius);padding:10px 14px;color:var(--ink-2)}.qb-event-hint .bullet{color:var(--crimson);font-weight:700}.qb-event-hint a{color:var(--crimson);font-weight:600;margin-left:auto}.main-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:40px;padding:40px var(--gutter) 80px}.main-col{min-width:0}.side-col{min-width:0}.block{background:var(--card);border:1px solid var(--card-line);border-radius:var(--radius-lg);padding:28px 32px;margin-bottom:28px;box-shadow:var(--shadow-sm)}.block-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid var(--paper-line);flex-wrap:wrap}.block-head h2{font-family:var(--serif);font-size:26px;font-weight:700;margin:0 0 4px;letter-spacing:.01em;position:relative;padding-left:14px}.block-head h2::before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:4px;background:var(--crimson);border-radius:2px}.block-head .sub{font-size:13px;color:var(--ink-3);margin:0;padding-left:14px}.block-head .more{font-size:13px;color:var(--crimson);font-weight:600}.block-tools{display:flex;gap:8px;align-items:center}.block-tools select{font:inherit;font-size:13px;border:1px solid var(--card-line);background:var(--card);padding:7px 12px;border-radius:6px;color:var(--ink)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;font-family:inherit;font-weight:600;font-size:13px;border:1px solid transparent;border-radius:8px;padding:9px 16px;min-height:44px;cursor:pointer;transition:all .15s;text-decoration:none;white-space:nowrap}.btn.primary{background:var(--crimson);color:#fff}.btn.primary:hover{background:var(--crimson-d);color:#fff}.btn.ghost{background:var(--card);color:var(--ink-2);border-color:var(--card-line)}.btn.ghost:hover{background:var(--paper-deep);color:var(--ink)}.btn.lg{font-size:14px;padding:12px 22px}.btn.sm{font-size:12px;padding:7px 12px}.btn.full-w{width:100%}.map-wrap{margin-bottom:24px;border-radius:var(--radius);overflow:hidden;border:1px solid var(--card-line)}.map-canvas{position:relative;height:320px;background:#e6dfc8;overflow:hidden}.map-bg{position:absolute;inset:0;background-image:radial-gradient(circle at 35% 60%,rgba(127,150,90,.18) 0,transparent 25%),radial-gradient(circle at 70% 30%,rgba(127,150,90,.12) 0,transparent 28%),repeating-linear-gradient(45deg,transparent 0 18px,rgba(0,0,0,.02) 18px 19px),repeating-linear-gradient(-45deg,transparent 0 18px,rgba(0,0,0,.02) 18px 19px)}.road{position:absolute;background:rgba(255,255,255,.85);box-shadow:0 0 0 1px rgba(0,0,0,.06)}.road.h{left:0;right:0;height:4px}.road.v{top:0;bottom:0;width:4px}.map-label{position:absolute;top:10px;left:12px;font-size:10px;letter-spacing:.1em;color:var(--ink-3);background:rgba(255,255,255,.85);padding:4px 8px;border-radius:4px;font-weight:600}.map-pin{position:absolute;transform:translate(-50%,-50%);cursor:pointer;z-index:2}.map-pin .p{background:var(--ink);color:#fff;font-size:11px;font-weight:700;padding:4px 8px;border-radius:6px;white-space:nowrap;box-shadow:0 2px 6px rgba(0,0,0,.25);transition:transform .15s}.map-pin:hover .p{transform:scale(1.08);background:var(--crimson)}.map-pin.venue{z-index:3}.map-pin.venue .p{background:var(--crimson);color:#fff;font-family:var(--serif);font-size:16px;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;padding:0;border:3px solid #fff;box-shadow:0 4px 12px rgba(166,58,42,.45)}.map-pin.venue .lbl{position:absolute;top:100%;left:50%;transform:translateX(-50%);margin-top:6px;font-family:var(--serif);font-size:13px;font-weight:700;color:var(--ink);background:rgba(255,255,255,.92);padding:2px 8px;border-radius:4px;white-space:nowrap}.map-legend{position:absolute;bottom:10px;right:12px;display:flex;gap:12px;background:rgba(255,255,255,.92);padding:6px 12px;border-radius:6px;font-size:11px;color:var(--ink-2);font-weight:500}.map-legend i.d{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px;vertical-align:middle}.map-legend i.venue{background:var(--crimson)}.map-legend i.hotel{background:var(--ink)}.hotel-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:16px}.hotel-card{display:grid;grid-template-columns:220px 1fr 220px;gap:20px;background:#fff;border:1px solid var(--card-line);border-radius:var(--radius);overflow:hidden;position:relative;transition:transform .15s,box-shadow .15s}.hotel-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.hotel-card.recommended{border-color:var(--crimson);box-shadow:0 0 0 3px rgba(166,58,42,.08)}.hotel-card .ribbon{position:absolute;top:12px;left:-2px;background:var(--crimson);color:#fff;font-size:11px;font-weight:700;letter-spacing:.08em;padding:5px 12px 5px 10px;z-index:2;clip-path:polygon(0 0,100% 0,calc(100% - 8px) 50%,100% 100%,0 100%)}.hotel-card .img{position:relative;overflow:hidden;background:var(--paper-deep)}.hotel-card .img img{width:100%;height:100%;object-fit:cover}.hotel-card .img.placeholder{display:grid;place-items:center;min-height:100%;padding:20px;background:linear-gradient(160deg,rgba(28,24,20,.96),rgba(70,56,46,.92)),var(--paper-deep);color:#fff;text-align:center}.hotel-card .img.placeholder .ph-inner{display:grid;gap:8px;max-width:150px}.hotel-card .img.placeholder .ph-kicker{font-family:"JetBrains Mono",monospace;font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,232,214,.78)}.hotel-card .img.placeholder .ph-title{font-family:"Shippori Mincho",serif;font-size:22px;font-weight:700;line-height:1.3}.hotel-card .img.placeholder .ph-note{font-size:12px;line-height:1.6;color:rgba(255,244,234,.82)}.hotel-card .meta{padding:18px 0;min-width:0}.hotel-card .row1{display:flex;align-items:baseline;gap:14px;margin-bottom:10px;flex-wrap:wrap}.hotel-card h3{font-family:var(--serif);font-size:19px;font-weight:700;margin:0;color:var(--ink)}.rating{display:inline-flex;align-items:baseline;gap:4px;font-size:12px}.rating .stars{color:var(--gold);letter-spacing:1px}.rating .num{font-weight:700;color:var(--ink);font-size:13px}.rating .cnt{color:var(--ink-4)}.amen{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:8px}.amen .chip{font-size:11px;font-weight:500;padding:3px 8px;background:var(--paper-deep);color:var(--ink-2);border-radius:3px;border:1px solid var(--paper-line)}.hotel-card .dist{font-size:12px;color:var(--ink-3);margin-bottom:8px}.hotel-card .desc{font-size:13px;color:var(--ink-2);margin:0;line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.price-col{padding:18px 20px 18px 0;text-align:right;display:flex;flex-direction:column;align-items:stretch;justify-content:center;border-left:1px dashed var(--card-line);padding-left:20px}.price-rate{font-size:10px;letter-spacing:.1em;font-weight:600;color:var(--ink-4);text-transform:uppercase}.price{font-family:var(--serif);font-size:28px;font-weight:700;color:var(--crimson);line-height:1.05;margin-top:2px}.price small{font-size:.55em;font-weight:500}.price-l{font-size:11px;color:var(--ink-3);margin-bottom:12px}.price-cmp{font-size:11px;color:var(--ink-4);margin-top:8px}.price-cmp a{color:var(--ink-3)}.src-note{font-size:11px;color:var(--ink-4);margin:12px 0 0;text-align:center}.event-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.event-card{display:grid;grid-template-columns:80px 1fr auto;gap:20px;align-items:center;background:#fff;border:1px solid var(--card-line);border-radius:var(--radius);padding:16px 20px;transition:all .15s;position:relative;cursor:pointer}.event-card:hover{background:var(--paper-deep)}.event-card h3 a::after{content:'';position:absolute;inset:0}.event-card .btn{position:relative;z-index:1}.event-card.highlight{background:linear-gradient(135deg,#fff5d6 0%,#fffaee 100%);border-color:#e8d18a}.event-card .date{text-align:center;background:var(--ink);color:#fff;border-radius:8px;padding:10px 0}.event-card.highlight .date{background:var(--crimson)}.event-card .date .m{display:block;font-size:10px;letter-spacing:.15em;font-weight:700;opacity:.85}.event-card .date .d{display:block;font-family:var(--serif);font-size:28px;font-weight:700;line-height:1;margin:2px 0}.event-card .date .dow{display:block;font-size:10px;letter-spacing:.12em;font-weight:600;opacity:.85}.event-card .info h3{font-family:var(--serif);font-size:17px;font-weight:700;margin:0 0 4px}.event-card .meta-line{font-size:12px;color:var(--ink-3)}.event-card .hint{font-size:12px;color:var(--crimson);font-weight:600;margin-top:4px}.event-card .price-mini{text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:4px}.event-card .price-mini .l{font-size:10px;letter-spacing:.1em;color:var(--ink-4);font-weight:600;text-transform:uppercase}.event-card .price-mini .p{font-family:var(--serif);font-weight:700;font-size:18px;color:var(--ink)}.access-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.ac-card{background:#fff;border:1px solid var(--card-line);border-radius:var(--radius);padding:18px 20px}.ac-h{font-family:var(--serif);font-size:14px;font-weight:700;color:var(--crimson);margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid var(--paper-line)}.ac-row{font-size:13px;color:var(--ink-2);padding:6px 0;display:flex;align-items:center;gap:8px}.ac-row strong{margin-left:auto;font-family:var(--serif);font-size:15px;color:var(--ink)}.ac-row .ln{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;font-size:10px;font-weight:700;color:#fff}.ac-row .ln.jr{background:#00a040}.ac-row .ln.subway{background:#1d5fa6}.ac-note{font-size:11px;color:var(--ink-4);margin-top:10px;padding-top:10px;border-top:1px dashed var(--paper-line)}.prose-body h3{font-family:var(--serif);font-size:18px;font-weight:700;margin:24px 0 10px;position:relative;padding-left:20px}.prose-body h3::before{content:"◆";position:absolute;left:0;top:2px;color:var(--crimson);font-size:12px}.prose-body h3:first-child{margin-top:0}.prose-body p{margin:0 0 14px;font-size:14px;line-height:1.85;color:var(--ink-2)}.prose-body a{color:var(--crimson);text-decoration:underline;text-decoration-color:rgba(166,58,42,.35);text-underline-offset:3px}.faq details{border-bottom:1px solid var(--paper-line);padding:16px 0}.faq details:first-of-type{border-top:1px solid var(--paper-line)}.faq summary{font-family:var(--serif);font-size:16px;font-weight:600;color:var(--ink);cursor:pointer;list-style:none;display:flex;align-items:flex-start;gap:12px;position:relative;padding-right:32px}.faq summary::-webkit-details-marker{display:none}.faq summary::before{content:"Q.";font-family:var(--serif);color:var(--crimson);font-weight:700;flex-shrink:0}.faq summary::after{content:"+";position:absolute;right:0;top:-2px;font-size:22px;color:var(--ink-3);transition:transform .2s}.faq details[open] summary::after{transform:rotate(45deg)}.faq details p{margin:12px 0 0 28px;font-size:14px;line-height:1.8;color:var(--ink-2)}.faq details p strong{color:var(--ink)}.side-card{background:var(--card);border:1px solid var(--card-line);border-radius:var(--radius);padding:22px;margin-bottom:16px;box-shadow:var(--shadow-sm)}.side-card.sticky{position:sticky;top:88px}.sc-h{font-family:var(--serif);font-size:15px;font-weight:700;color:var(--ink);margin-bottom:14px;padding-bottom:10px;border-bottom:2px solid var(--crimson);display:inline-block}.sc-date{display:flex;align-items:baseline;justify-content:space-between;font-family:var(--serif);font-size:16px;font-weight:600;color:var(--ink);margin-bottom:14px;padding-bottom:14px;border-bottom:1px dashed var(--card-line)}.sc-date .ed{font-size:11px;color:var(--crimson);font-family:var(--sans);font-weight:600}.sc-price{margin-bottom:14px}.sc-price .l{font-size:11px;color:var(--ink-4);letter-spacing:.1em;font-weight:600}.sc-price .p{font-family:var(--serif);font-size:32px;font-weight:700;color:var(--crimson);line-height:1;margin-top:4px}.sc-price .p small{font-size:.42em;font-weight:500;color:var(--ink-3);margin-left:2px}.sc-note{font-size:11px;color:var(--ink-4);margin-top:10px;text-align:center}.rel-venues,.area-list{list-style:none;margin:0;padding:0}.rel-venues li{border-bottom:1px solid var(--paper-line)}.rel-venues li:last-child{border-bottom:0}.rel-venues a{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:10px 0;font-size:13px}.rel-venues .n{font-family:var(--serif);font-weight:600;color:var(--ink)}.rel-venues .m{font-size:11px;color:var(--ink-4)}.area-list li{padding:7px 0}.area-list a{font-size:13px;color:var(--ink-2);position:relative;padding-left:14px}.area-list a::before{content:"›";position:absolute;left:0;color:var(--crimson);font-weight:700}.area-list a:hover{color:var(--crimson)}.side-card.promo{background:linear-gradient(135deg,var(--ink) 0%,#2a2520 100%);color:#fff;border-color:var(--ink)}.side-card.promo .promo-tag{font-size:10px;letter-spacing:.15em;font-weight:700;color:var(--gold);margin-bottom:8px}.side-card.promo h3{font-family:var(--serif);font-size:20px;font-weight:700;margin:0 0 10px;color:#fff;line-height:1.4}.side-card.promo p{font-size:12px;color:rgba(255,255,255,.75);margin:0 0 14px;line-height:1.7}.side-card.promo .btn{background:var(--gold);color:var(--ink);width:100%}.side-card.promo .btn:hover{background:#cfa055}.mobile-cta{display:none;position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--card-line);padding:10px 14px;z-index:40;align-items:center;gap:12px;box-shadow:0 -4px 20px rgba(0,0,0,.08)}.mc-info .p{font-family:var(--serif);font-size:22px;font-weight:700;color:var(--crimson);line-height:1}.mc-info .m{font-size:11px;color:var(--ink-4);margin-top:2px}.mobile-cta .btn{margin-left:auto;padding:14px 22px}.photo-credit-note{margin-top:56px;padding:22px 24px;border:1px solid var(--paper-line);border-radius:14px;background:linear-gradient(180deg,rgba(255,251,246,.96),rgba(247,239,229,.94));box-shadow:var(--shadow-sm)}.photo-credit-note h2{margin:0 0 8px;font-family:var(--serif);font-size:22px;font-weight:700;color:var(--ink)}.photo-credit-note p{margin:0;font-size:13px;line-height:1.7;color:var(--ink-3)}.photo-credit-note .credit-list{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:10px}.photo-credit-note .credit-list li{font-size:13px;line-height:1.7;color:var(--ink-2)}.photo-credit-note .credit-list strong{color:var(--ink);font-weight:700}.photo-credit-note .credit-list a{color:var(--crimson);text-underline-offset:2px}.photo-credit-note .credit-list a:hover{color:#7e2819}.affiliate-note{margin-top:18px;padding:14px 16px;border:1px solid rgba(166,58,42,.18);border-radius:12px;background:rgba(166,58,42,.05)}.affiliate-note strong{display:inline-block;margin-bottom:6px;font-size:12px;color:var(--ink)}.affiliate-note p{margin:0;font-size:12px;line-height:1.7;color:var(--ink-3)}.site-footer{background:var(--ink);color:rgba(255,255,255,.78);padding:56px 0 0;margin-top:40px}.footer-grid{display:grid;grid-template-columns:1.4fr repeat(4,1fr);gap:40px;padding-bottom:40px}.ft-brand .logo{color:#fff;margin-bottom:14px}.ft-brand p{font-size:12px;line-height:1.8;color:rgba(255,255,255,.6);margin:0}.ft-col h4{font-family:var(--serif);font-size:13px;font-weight:600;color:#fff;margin:0 0 14px;letter-spacing:.05em}.ft-col a{display:block;font-size:12px;color:rgba(255,255,255,.62);padding:4px 0}.ft-col a:hover{color:#fff}.ft-bottom{border-top:1px solid rgba(255,255,255,.1);padding:18px 0}.ft-bottom small{color:rgba(255,255,255,.45);font-size:11px}.ft-prefectures{border-top:1px solid rgba(255,255,255,.08);padding:22px 0}.ft-prefectures h4{font-family:var(--serif);font-size:11px;font-weight:600;color:rgba(255,255,255,.4);margin:0 0 10px;letter-spacing:.1em;text-transform:uppercase}.ft-pref-links{display:flex;flex-wrap:wrap;gap:0}.ft-pref-links a{font-size:11px;color:rgba(255,255,255,.5);padding:3px 8px 3px 0;white-space:nowrap;line-height:1.8}.ft-pref-links a::after{content:'·';margin-left:8px;color:rgba(255,255,255,.2)}.ft-pref-links a:last-child::after{content:''}.ft-pref-links a:hover{color:#fff}@media (max-width:1024px){.main-grid{grid-template-columns:1fr}.side-col{display:grid;grid-template-columns:1fr 1fr;gap:16px}.side-card{margin-bottom:0}.side-card.sticky{position:static}.footer-grid{grid-template-columns:1.4fr 1fr 1fr}.footer-grid .ft-brand{grid-column:1 / -1}.header-search{display:none}}@media (max-width:768px){:root{--gutter:16px}.util-bar{display:none}.header-row{height:56px;gap:12px}.primary-nav{display:none}.mobile-menu{display:block}.hero-body{padding:36px var(--gutter) 32px}.hero-stats{gap:22px}.hs .n{font-size:26px}.qb-form{grid-template-columns:1fr 1fr}.qb-form .btn{grid-column:1 / -1;padding:14px}.qb-event-hint{font-size:12px;flex-wrap:wrap}.qb-event-hint a{margin-left:0}.main-grid{padding:24px var(--gutter) 100px;gap:24px}.block{padding:20px}.block-head h2{font-size:22px}.hotel-card{grid-template-columns:1fr;gap:0}.hotel-card .img{height:180px}.hotel-card .meta{padding:16px}.price-col{border-left:0;border-top:1px dashed var(--card-line);padding:14px 16px;text-align:left;flex-direction:row;align-items:center;flex-wrap:wrap}.price-col .price{font-size:24px;flex:1}.price-col .price-l{display:none}.price-col .price-rate{display:none}.price-col .btn{flex-shrink:0}.price-col .price-cmp{width:100%;margin-top:6px}.event-card{grid-template-columns:60px 1fr;gap:12px;padding:14px}.event-card .date .d{font-size:22px}.event-card .price-mini{grid-column:1 / -1;flex-direction:row;align-items:center;justify-content:space-between;padding-top:10px;border-top:1px dashed var(--card-line)}.access-grid{grid-template-columns:1fr}.side-col{grid-template-columns:1fr}.mobile-cta{display:flex}.footer-grid{grid-template-columns:1fr 1fr;gap:28px}.footer-grid .ft-brand{grid-column:1 / -1}}@media (max-width:480px){.hero h1 small{display:block;margin-left:0;margin-top:6px;font-size:.35em}.hero-stats{gap:16px}.hs{flex:1 1 calc(50% - 8px)}.map-canvas{height:240px}.footer-grid{grid-template-columns:1fr}}.d{display:inline}@media (max-width:600px){.d{display:none}}.mobile-menu{position:relative;z-index:110;width:44px;height:44px;display:none;align-items:center;justify-content:center;font-size:0}.mobile-menu .bars{position:relative;width:22px;height:14px;display:inline-block}.mobile-menu .bars::before,.mobile-menu .bars::after,.mobile-menu .bars span{content:"";position:absolute;left:0;right:0;height:2px;background:var(--ink);transition:transform .25s ease,top .25s ease,opacity .15s ease;border-radius:1px}.mobile-menu .bars::before{top:0}.mobile-menu .bars span{top:6px;left:0;right:0;display:block}.mobile-menu .bars::after{top:12px}.mobile-menu[aria-expanded="true"] .bars::before{top:6px;transform:rotate(45deg)}.mobile-menu[aria-expanded="true"] .bars::after{top:6px;transform:rotate(-45deg)}.mobile-menu[aria-expanded="true"] .bars span{opacity:0}@media (max-width:768px){.mobile-menu{display:inline-flex}.header-search{display:none}}.mnav-overlay{position:fixed;inset:0;background:rgba(28,24,20,0);z-index:99;pointer-events:none;transition:background .2s}.mnav-overlay.open{background:rgba(28,24,20,.55);pointer-events:auto}.mnav{position:fixed;top:0;right:0;bottom:0;width:min(86vw,360px);background:var(--bg);z-index:100;transform:translateX(100%);transition:transform .28s cubic-bezier(.32,.72,.34,.99);display:flex;flex-direction:column;box-shadow:-16px 0 40px rgba(28,24,20,.15);overflow-y:auto;-webkit-overflow-scrolling:touch}.mnav.open{transform:translateX(0)}.mnav-head{display:flex;align-items:center;justify-content:space-between;padding:18px 24px;border-bottom:1px solid var(--paper-line);background:var(--paper);position:sticky;top:0;z-index:2}.mnav-head .logo{font-family:var(--serif);font-size:20px;font-weight:700;letter-spacing:.04em;display:flex;align-items:center;gap:4px;color:var(--ink)}.mnav-head .logo .mark{color:var(--crimson);font-size:16px;margin-right:4px}.mnav-head .logo .dot{color:var(--crimson);margin:0 2px}.mnav-head .close{background:none;border:0;width:36px;height:36px;font-size:24px;color:var(--ink);cursor:pointer;line-height:1}.mnav-search{padding:16px 20px;border-bottom:1px solid var(--paper-line);background:var(--paper)}.mnav-search input{width:100%;padding:12px 14px;border:1px solid var(--paper-line);border-radius:8px;font-family:inherit;font-size:14px;background:var(--card);color:var(--ink)}.mnav-search input::placeholder{color:var(--ink-4)}.mnav-section{padding:16px 0;border-bottom:1px solid var(--paper-line)}.mnav-section h5{font-family:var(--mono);font-size:10px;letter-spacing:.22em;color:var(--ink-3);text-transform:uppercase;margin:0;padding:6px 24px 12px;font-weight:600}.mnav-section a,.mnav-section button.row{display:flex;align-items:center;justify-content:space-between;padding:12px 24px;font-size:15px;color:var(--ink);text-decoration:none;font-weight:500;border:0;background:none;width:100%;text-align:left;font-family:inherit;cursor:pointer}.mnav-section a .arr,.mnav-section button.row .arr{color:var(--ink-4);font-size:16px;font-family:var(--mono)}.mnav-section a:hover,.mnav-section a:active{background:var(--paper);color:var(--crimson)}.mnav-section a.pill{margin:8px 24px 4px;padding:12px 16px;background:var(--ink);color:var(--paper);border-radius:8px;justify-content:center;font-weight:600;font-size:14px;letter-spacing:.04em}.mnav-section a.pill:hover{background:var(--crimson);color:white}.mnav-foot{padding:20px 24px 28px;font-size:11px;color:var(--ink-3);font-family:var(--mono);letter-spacing:.04em;margin-top:auto;background:var(--paper);border-top:1px solid var(--paper-line)}.mnav-foot .lang-toggle{display:inline-flex;gap:6px;margin-bottom:12px}.mnav-foot .lang-toggle span{padding:4px 10px;border:1px solid var(--paper-line);border-radius:100px;background:var(--card)}.mnav-foot .lang-toggle .on{background:var(--ink);color:var(--paper);border-color:var(--ink)}.mnav-foot small{display:block;line-height:1.6}body.mnav-open{overflow:hidden}@media (min-width:769px){.mnav,.mnav-overlay{display:none}}.share-block .share-btns{display:flex;flex-wrap:wrap;gap:10px;padding:4px 0 8px}.share-btn{display:inline-flex;align-items:center;gap:7px;padding:10px 20px;border-radius:6px;font-size:14px;font-weight:600;line-height:1;text-decoration:none;cursor:pointer;border:none;transition:opacity .15s}.share-btn:hover{opacity:.82}.share-x{background:#000;color:#fff}.share-line{background:#06c755;color:#fff}.share-web{background:var(--paper-deep);color:var(--ink);border:1px solid var(--paper-line)}@media (max-width:480px){.share-btn{font-size:13px;padding:9px 16px}}.ft-social{display:flex;justify-content:center;padding:12px 0 8px;border-top:1px solid var(--paper-line)}.btn-line-follow{display:inline-flex;align-items:center;gap:8px;padding:10px 24px;border-radius:6px;font-size:14px;font-weight:600;line-height:1;text-decoration:none;background:#06c755;color:#fff;transition:opacity .15s}.btn-line-follow:hover{opacity:.82}@media (max-width:480px){.btn-line-follow{font-size:13px;padding:9px 18px}}.ugc-section{border-top:2px solid var(--paper-line)}.ugc-cta{background:var(--card);border:1px solid var(--card-line);border-radius:var(--radius);padding:24px;text-align:center}.ugc-cta-desc{color:var(--ink-2);font-size:14px;line-height:1.75;margin:0 0 20px}.ugc-post-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 22px;border-radius:var(--radius-sm);background:var(--ink);color:#fff;font-size:14px;font-weight:600;line-height:1;text-decoration:none;transition:background .15s}.ugc-post-btn:hover{background:var(--crimson);color:#fff}.ugc-cta-note{margin:14px 0 0;font-size:12px;color:var(--ink-4)}.ugc-giscus-wrap{padding:4px 0 8px}.ugc-giscus-wrap iframe{width:100%;border:none}@media (max-width:640px){.ugc-cta{padding:20px 16px}.ugc-post-btn{font-size:13px;padding:9px 18px}}.back-to-top{position:fixed;bottom:24px;right:24px;width:44px;height:44px;border-radius:99px;background:var(--ink);color:var(--paper);border:0;font-size:18px;display:flex;align-items:center;justify-content:center;z-index:40;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .2s,visibility .2s,transform .2s,background .15s;box-shadow:var(--shadow-md);cursor:pointer}.back-to-top.visible{opacity:1;visibility:visible;transform:translateY(0)}.back-to-top:hover{background:var(--crimson)}@media (max-width:768px){.back-to-top{bottom:72px;right:16px}}