body.shop-page{color:#fdf2f4;background:radial-gradient(ellipse at 8% 32%,#4b1734 0,transparent 32%),radial-gradient(ellipse at 100% 65%,#3a1532 0,transparent 36%),#1c0c1c;font-family:"Yu Gothic",Meiryo,sans-serif;font-size:15px;line-height:1.7}
.shop-page::before{content:"";position:absolute;right:0;top:62px;width:min(390px,36vw);height:290px;background:url('assets/tokyo-sheet.png') no-repeat -282px 0 / 1536px 1024px;opacity:.4;mask-image:linear-gradient(to right,transparent,#000 55%),linear-gradient(to bottom,#000 40%,transparent);mask-composite:intersect;pointer-events:none;z-index:-1}
.shop-page .header{background:#2b1027;border-bottom:1px solid #9b5771}.shop-page .header-inner{max-width:1340px;height:65px;padding:0 20px;margin:auto;gap:20px;justify-content:flex-start}.shop-page .header .brand{width:170px;height:58px}.header-tagline{border-left:1px solid #b3899b;padding-left:20px;font-size:13px;white-space:nowrap}.header-nav{margin-left:auto;display:flex;gap:26px;align-items:center;white-space:nowrap;font-size:14px}.header-nav a:hover{color:#f4c785}
.shop-page main{max-width:1340px;padding:0 20px;margin:0 auto}.shop-page .breadcrumbs{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:17px 0;color:#dfc4cf;font-size:13px}.breadcrumbs a:hover{text-decoration:underline}
.shop-page .shop-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.94fr);gap:32px;background:transparent;border:0;align-items:start}.shop-gallery{min-width:0;scroll-margin-top:20px}.gallery-frame{position:relative;aspect-ratio:16/9;background:#120910;border:1px solid #a25a79;border-radius:13px;overflow:hidden}.gallery-image{width:100%;height:100%;display:block;object-fit:contain}.gallery-empty{display:grid;place-items:center;background:linear-gradient(135deg,#3c1c32,#1d101d);color:#cbaebd}.gallery-arrow{position:absolute;top:50%;transform:translateY(-50%);border:1px solid #dfb5c0;background:#1c0d1ac9;color:#fff;border-radius:50%;width:40px;height:40px;font-size:28px;line-height:1;cursor:pointer}.gallery-arrow.prev{left:12px}.gallery-arrow.next{right:12px}.gallery-count{position:absolute;right:12px;bottom:10px;background:#1c0d1abe;padding:2px 10px;border-radius:4px;font-size:13px}.gallery-thumbs{display:flex;gap:9px;overflow-x:auto;margin-top:10px;padding-bottom:4px}.gallery-thumb{flex:0 0 calc((100% - 36px)/5);min-width:70px;aspect-ratio:1.6;border:1px solid #9c6675;border-radius:8px;padding:0;background:#170d16;overflow:hidden;cursor:pointer}.gallery-thumb.is-active{outline:2px solid #eac075;outline-offset:-2px}.gallery-thumb img,.photo-tile img{display:block;width:100%;height:100%;object-fit:cover}
.shop-page .intro{padding:5px 0;display:block;min-width:0}.shop-page .eyebrow{color:#e897b1;font:700 11px/1.4 Arial,sans-serif;letter-spacing:.17em}.shop-page .intro h1{font:normal clamp(30px,2.8vw,42px)/1.25 "Yu Mincho",serif;margin:9px 0 12px;overflow-wrap:anywhere}.intro-tags{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}.intro-tags span{border:1px solid #bd6b87;border-radius:30px;padding:2px 13px;background:#6d2747;font-size:13px}.intro-address{color:#ecdde2;font-size:15px;margin:0 0 13px;line-height:1.8}.shop-page .shop-features{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 10px}.quick-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px;border-top:1px solid #714451;padding:15px 0;margin-top:12px}.quick-item{display:flex;gap:9px;align-items:flex-start;min-width:0;line-height:1.5;overflow-wrap:anywhere}.quick-item small{display:block;color:#d5aeba;font-size:11px}.quick-icon{color:#f3c675;font-size:20px;line-height:1.2}.quick-icon svg{width:21px;height:21px}.heading-icon svg{width:29px;height:29px;display:block}.shop-page .actions{display:flex;flex-wrap:wrap;gap:9px;padding:0;margin:12px 0 0}.action{display:inline-flex;justify-content:center;align-items:center;gap:7px;min-height:45px;padding:9px 20px;border-radius:24px;font:inherit;font-size:14px;text-align:center;cursor:pointer}.action-primary{background:linear-gradient(135deg,#d84f80,#8e2455);border:1px solid #f0a0bc;color:white;box-shadow:0 0 14px #c2396860}.action-outline{border:1px solid #cc8c9f;color:#fff4f6;background:#25101d88}.action:hover{filter:brightness(1.15)}.favorite[aria-pressed=true]{color:#ffd091;border-color:#f1c77e}.external-links{display:flex;gap:14px;flex-wrap:wrap;margin-top:14px;font-size:13px;color:#f6c4d4}.external-links a{text-decoration:underline}
.shop-page .toc{display:grid;grid-template-columns:repeat(5,1fr);margin-top:24px;border:1px solid #87526b;border-radius:10px;background:linear-gradient(110deg,#52203b,#2a1528);overflow:hidden}.shop-page .toc a{display:flex;justify-content:center;align-items:center;gap:9px;text-align:center;padding:13px 8px;border-right:1px solid #704558;font-size:15px}.shop-page .toc a:last-child{border:0}.shop-page .toc a:hover{background:#71314e}.toc a span{color:#f5c878;font-size:21px}
.toc a svg{display:block;width:23px;height:23px}
.shop-page .layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:22px;margin:22px 0 65px;align-items:start}.shop-page .panel,.shop-page .side-card{background:linear-gradient(135deg,#402133ef,#2a1429f2);border:1px solid #86516a;border-radius:12px;box-shadow:0 8px 25px #1007113d}.shop-page .panel{padding:22px 26px;margin-bottom:14px;scroll-margin-top:18px}.panel-heading{display:flex;gap:14px;align-items:center;border-bottom:1px solid #83516a;padding-bottom:12px;margin-bottom:15px}.heading-icon{font:28px/1 serif;color:#f1c671}.shop-page .panel h2,.shop-page .side-card h2{font:normal 24px/1.2 "Yu Mincho",serif;margin:3px 0 0}.shop-page .info{margin:0}.shop-page .info-row{grid-template-columns:160px minmax(0,1fr);border-top:0;border-bottom:1px solid #764557;font-size:15px;line-height:1.65}.shop-page .info-row dt{background:#62314a;padding:9px 15px;color:#f4d6df}.shop-page .info-row dd{padding:9px 16px;overflow-wrap:anywhere}.shop-page .panel h3{color:#ffd599;border-color:#805164;margin:18px 0 0;font-size:15px}.shop-page .price-row{padding:8px 10px;font-size:15px;border-color:#754557}.shop-page .price-row strong{color:#ffb5d2}.shop-page .empty,.shop-page .note,.shop-page .price-note{color:#dec8d1;font-size:14px;line-height:1.7}.photo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.photo-tile{padding:0;aspect-ratio:1.6;overflow:hidden;background:#20101c;border:1px solid #b66e88;border-radius:8px;cursor:pointer}.photo-tile:hover img{transform:scale(1.04)}.photo-tile img{transition:transform .2s}
.access-layout{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:stretch}.shop-page .access-address{font-size:15px;line-height:1.8;margin:0}.shop-page .station-list{margin:12px 0 0}.shop-page .station-list li{padding:8px 0;gap:10px;border-color:#744558;font-size:14px}.map-card{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:5px;padding:18px 22px;border:1px solid #8f5b73;border-radius:10px;background:radial-gradient(circle at 80% 30%,#87436388,transparent 50%),linear-gradient(135deg,#50243e,#251125);font-size:13px}.map-card .map-pin{font-size:27px;color:#efc272;line-height:1}.map-card .action{min-height:40px;margin-top:8px;padding:7px 18px}.rating{color:#ffd17c;font-size:23px;margin:0}.rating span{font-size:15px;color:#f1dce3}
.shop-page .sidebar{position:sticky;top:16px;padding:0;background:none;border:0;box-shadow:none}.side-card{padding:20px;margin-bottom:14px}.side-card .panel-heading{margin-bottom:12px}.side-card .heading-icon{font-size:25px}.shop-page .side-card h2{font-size:21px}.shop-page .side-card p:not(.eyebrow){font-size:14px;margin:8px 0;line-height:1.8}.side-card .side-name{font-size:18px!important}.side-card .action{display:flex;margin-top:10px;width:100%}.side-guide{background:radial-gradient(circle at 90% 100%,#8c425a,#2b1429 60%)!important}.side-guide>a{display:flex;justify-content:space-between;padding:12px 0;border-top:1px solid #754959}.side-guide>a span{color:#f1c671;font-size:21px}.shop-page footer{background:#140a14;color:#dbc1cb;padding:28px max(20px,calc((100% - 1300px)/2));font-size:13px}.shop-page :focus-visible{outline:3px solid #f5ca83;outline-offset:3px}
@media(max-width:1100px){.header-tagline{display:none}.header-nav{gap:15px}.shop-page .layout{grid-template-columns:minmax(0,1fr) 250px}.shop-page .shop-hero{gap:22px}}
@media(max-width:740px){.shop-page::before{width:45vw;height:220px;opacity:.25}.shop-page .header-inner{height:58px;padding:0 16px;margin:0}.shop-page .header .brand{width:136px;height:46px}.header-nav{gap:0}.header-nav a{display:none}.header-nav a:first-child{display:block;font-size:13px}.shop-page main{padding:0 16px;margin:0}.shop-page .breadcrumbs{font-size:12px;gap:8px;padding:12px 0}.shop-page .shop-hero{display:flex;flex-direction:column;gap:14px}.shop-gallery{width:100%}.gallery-frame{aspect-ratio:16/10}.gallery-thumb{flex-basis:calc((100% - 27px)/4)}.shop-page .intro{width:100%;padding:0}.shop-page .intro h1{font-size:29px}.intro-address{font-size:15px}.quick-facts{gap:10px 12px}.quick-item{font-size:14px}.shop-page .actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.shop-page .actions .favorite{grid-column:1/-1}.shop-page .toc{grid-template-columns:repeat(6,1fr);margin-top:20px}.shop-page .toc a{grid-column:span 2;font-size:13px;padding:10px 4px;border-bottom:1px solid #704558;gap:4px}.shop-page .toc a:nth-child(4),.shop-page .toc a:nth-child(5){grid-column:span 3;border-bottom:0}.toc a span{font-size:17px}.shop-page .layout{display:block;margin:15px 0 36px}.shop-page .panel{padding:18px 16px;margin-bottom:12px}.shop-page .panel h2{font-size:22px}.shop-page .info-row{grid-template-columns:100px minmax(0,1fr);font-size:14px}.shop-page .info-row dt,.shop-page .info-row dd{padding:9px}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.access-layout{grid-template-columns:1fr;gap:15px}.shop-page .sidebar{position:static}.side-card{padding:18px}.shop-page footer{flex-direction:column}}
@media(max-width:740px){.shop-page .toc{grid-template-columns:repeat(2,minmax(0,1fr))}.shop-page .toc a,.shop-page .toc a:nth-child(4),.shop-page .toc a:nth-child(5){grid-column:auto;border-bottom:1px solid #704558;white-space:nowrap}.shop-page .toc a:nth-child(5){grid-column:1/-1;border-bottom:0}.shop-page .info-row{grid-template-columns:116px minmax(0,1fr)}.shop-page .info-row dt{white-space:nowrap}}
.review-intro{display:flex;align-items:center;justify-content:space-between;gap:20px}.review-summary{font-size:20px;color:#ffd38b;margin:0;font-weight:700}.review-caption,.review-form>p{color:#e9cdd8;margin:5px 0;font-size:14px}.review-write-link{border:1px solid #d9a1b5;border-radius:25px;padding:9px 18px;white-space:nowrap}.review-list{margin:20px 0}.review-empty{padding:22px;background:#241020;border-radius:8px;color:#e4c9d4;margin:0}.review-entry{padding:15px 0;border-bottom:1px solid #754a60}.review-entry-head{display:flex;gap:18px;align-items:center;flex-wrap:wrap}.review-stars{color:#ffc981;letter-spacing:.08em}.review-meta{font-size:13px;color:#d2b5c1;margin:4px 0}.review-body{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.8;margin:9px 0}.review-form{background:#271324;border:1px solid #80516a;border-radius:10px;padding:20px;scroll-margin-top:15px}.shop-page .review-form h3{font:normal 21px/1.4 "Yu Mincho",serif;border:0;color:#fff0f2;padding:0;margin:0 0 8px}.review-fields{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;margin:18px 0 12px}.review-form label{display:block;font-weight:700;font-size:14px;color:#f5e4ea}.review-form input,.review-form select,.review-form textarea{display:block;width:100%;margin-top:6px;border:1px solid #a8768c;border-radius:6px;padding:11px 12px;background:#fffafd;color:#28101d;font:16px/1.5 "Yu Gothic",Meiryo,sans-serif}.review-form textarea{resize:vertical}.review-form-note{font-size:13px!important;margin:10px 0 14px!important}.review-form .action:disabled{opacity:.6;cursor:wait}.review-form #review-message{margin:8px 0 0;color:#ffd599}.review-trap{position:absolute!important;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
@media(max-width:740px){.review-intro{align-items:flex-start;flex-direction:column;gap:12px}.review-fields{grid-template-columns:1fr;gap:12px}.review-form{padding:16px}.review-form .action{width:100%}}
.review-report{background:none;border:0;color:#e0b9c8;text-decoration:underline;font:inherit;font-size:13px;padding:5px 0;cursor:pointer}.review-report:disabled{cursor:default;text-decoration:none}
.shop-page .map-card{padding:0;display:flex;overflow:hidden;gap:0;border:1px solid #9d6379;background:#21111f;min-height:250px}.map-card iframe{display:block;width:100%;min-height:210px;flex:1;border:0;background:#e8e2de}.shop-page .map-card .action{align-self:flex-end;margin:10px;min-height:40px;padding:7px 16px}.shop-profile{position:relative;overflow:hidden}.shop-profile:after{content:"";position:absolute;right:-16px;bottom:-30px;width:110px;height:110px;background:url('assets/glass.png') center/contain no-repeat;opacity:.48;pointer-events:none}.profile-facts{position:relative;z-index:1;margin:0}.profile-facts div{padding:7px 0;border-bottom:1px solid #794d60}.profile-facts div:last-child{border:0}.profile-facts dt{color:#e3bba9;font-size:12px}.profile-facts dd{margin:2px 0 0;color:#fff3f5;font-size:14px;line-height:1.6;overflow-wrap:anywhere}.shop-page .related-guides{padding:18px 15px}.related-guides .panel-heading{margin:0 5px 14px}.side-banner{display:block;margin:0 0 10px;line-height:0}.side-banner:last-child{margin-bottom:0}.side-banner img{display:block;width:100%;height:auto;clip-path:inset(7.5% 0 8.5% 0 round 4%);margin:-2.5% 0}.side-banner:hover{filter:brightness(1.12)}.review-summary.review-unavailable{font-size:15px;color:#e9cdd8;font-weight:normal}
@media(max-width:740px){.shop-page .map-card{min-height:240px}.map-card iframe{min-height:200px}.shop-page .related-guides{max-width:440px}.profile-facts dd{font-size:15px}}
.gallery-thumbs{scrollbar-width:none;-ms-overflow-style:none;overscroll-behavior-inline:contain;scroll-snap-type:x proximity}.gallery-thumbs::-webkit-scrollbar{display:none}.gallery-thumb{scroll-snap-align:start}

/* 店舗の地図と徒歩ルートを並べて選べるようにする。 */
.shop-page .map-card .map-actions{display:flex;justify-content:flex-end;align-items:center;gap:9px;width:100%;padding:10px;box-sizing:border-box}
.shop-page .map-card .map-actions .action{align-self:auto;margin:0;min-height:42px;padding:7px 14px;white-space:nowrap;font-size:14px}
.shop-page .map-directions{background:linear-gradient(135deg,#ad3866,#7c2049);border-color:#d592a8;font-weight:700}
.shop-page .map-directions svg{width:18px;height:18px;flex:none;color:#f2c98e}
@media(max-width:740px){.shop-page .map-card .map-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.shop-page .map-card .map-actions .action{width:100%;padding:8px 5px;font-size:13px}}
