/* Card layout supplied by the owner; keep these adjustments local. */
.cards{padding:0 10px 12px;background:#f3f8f6;scrollbar-gutter:auto}
.card,.card.selected,.card:first-child{min-height:0;margin:10px 0 0;padding:13px 15px;border:1px solid #d3e3dd;border-radius:18px;background:#fff;box-shadow:0 2px 0 #e2eeea;font-family:var(--round-font)}
.card.selected{border:1.5px solid var(--pink);padding:12.5px 14.5px;background:#fff}
.card:hover{background:#fff;border-color:var(--teal-dark)}.card.selected:hover{border-color:var(--pink)}
.card-head{display:flex;gap:14px;align-items:center;padding-right:22px}
.place-icon,.place-icon.foot{width:37px;height:42px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:none;transform:none}
.place-icon .ui-icon,.place-icon.foot .ui-icon{height:34px;width:34px}
.card .tag{font:700 12px/1.3 var(--round-font);background:none;border:0;padding:0;color:var(--teal-dark)}
.card-top{margin:0 0 3px}.card h3{font:700 19px/1.35 var(--round-font);letter-spacing:0;margin:0}
.card-area{display:block;font:500 14px/1.4 var(--round-font);margin-top:3px;color:#768e85}
.card-bottom{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:space-between;align-items:center;gap:9px;margin:9px 0 0;padding:9px 0 0;border-top:1px solid #eef4f1}
.price,.hours{font:700 20px/1.35 var(--round-font);display:flex;align-items:center;gap:5px;white-space:nowrap;color:var(--teal-dark);text-align:left}
.price small{font:500 12px/1.4 var(--round-font);color:#758c83}
.price>.ui-icon,.hours>.ui-icon{display:inline-block;width:21px;height:21px;flex-shrink:0;color:var(--teal-dark)}
.card .hours.hours-note{font:500 12px/1.5 var(--round-font);white-space:normal;max-width:56%}
.card .hours.hours-note .ui-icon{height:16px;width:16px}
.card-arrow{top:16px;right:13px;width:20px;height:20px;color:var(--teal-dark)}.card-arrow .ui-icon{width:14px;height:14px}
@media(max-width:700px){
.cards{padding:0 9px 12px}.card,.card.selected,.card:first-child{margin-top:9px;min-height:0;padding:12px 13px;border-radius:18px}
.card.selected{padding:11.5px 12.5px}.card-head{gap:12px}.card h3{font-size:19px}.card .tag{font-size:12px}.card-area{font-size:14px}
.price,.hours{font-size:clamp(16px,4.8vw,21px)}.price small{font-size:11px}
.price>.ui-icon,.hours>.ui-icon{height:20px;width:20px}
.explorer{display:flex;flex-direction:column;height:680px;overflow:hidden;isolation:isolate}
.list-panel{flex:1;min-height:0;height:auto}.map-panel{flex:1;min-height:0;height:auto}
.mobile-switch{order:3;position:relative;inset:auto;transform:none;flex:0 0 auto;align-self:center;display:flex;width:calc(100% - 22px);margin:11px 0 14px;padding:4px;border:1px solid var(--teal);border-radius:999px;background:#fff;box-shadow:0 3px 0 #9dcac1;z-index:5}
.mobile-switch button{flex:1;display:flex;align-items:center;justify-content:center;min-height:44px;padding:9px 12px;border-radius:999px;font:700 16px/1.4 var(--round-font);gap:10px}
.mobile-switch .ui-icon{width:19px;height:19px}.mobile-switch button.selected{background:var(--yellow)}
}
@media(max-width:360px){.card h3{font-size:17px}.card-head{gap:10px}.place-icon,.place-icon.foot{width:32px}.place-icon .ui-icon,.place-icon.foot .ui-icon{width:30px;height:30px}.price small{font-size:10px}.price,.hours{gap:4px}.price>.ui-icon,.hours>.ui-icon{width:18px;height:18px}}

@media(max-width:700px){.explorer .mobile-switch{top:auto;bottom:auto;left:auto;right:auto}.explorer.map-mode .list-panel{display:none}.explorer.map-mode .map-panel{display:block;flex:1;height:auto}.explorer .map-panel #map{height:100%}.explorer .map-legend{bottom:25px}}

/* Focused spacing and type corrections for the phone layout. */
@media(max-width:700px){
.intro{padding:30px 20px 28px}.intro-right{right:20px;top:78px}.intro .eyebrow{font-size:12px}.intro h1{font-size:26px;padding-right:85px}.intro-copy{font-size:14px;line-height:1.9}.intro .seal{width:94px;height:94px}.intro .seal-small{font-size:10px!important}.intro .seal b{font-size:21px}
.list-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-bottom:12px}.list-meta>p{margin:0;font-size:11px;line-height:1.5}.list-meta b{font-size:22px}.list-meta .today-hours{padding:0;margin:0;text-align:right;font-size:11px;line-height:1.5;background:none}
.price small{font-size:14px}.card-bottom{padding-right:0;gap:10px;align-items:center}.card .hours.hours-note{font:700 clamp(16px,4.8vw,18px)/1.35 var(--round-font);max-width:58%;white-space:normal;justify-content:flex-end}.card .hours.hours-note>.ui-icon{width:20px;height:20px}.hours>span{text-align:right}.card .hours.hours-note>span{min-width:0}.price{flex-shrink:0}
.goods-banner{padding:25px 20px;gap:14px}.goods-banner>div:first-child{width:calc(100% - 100px)}.goods-preview{width:85px;height:115px}.goods-banner h2{font-size:20px}
.data-note button{display:inline-flex;gap:5px;align-items:center}.data-note button .ui-icon{width:12px;height:12px}
}
@media(max-width:380px){.intro{padding-left:16px;padding-right:16px}.intro-right{right:16px}.intro h1{font-size:23px;padding-right:72px}.intro .seal{width:84px;height:84px}.intro .seal b{font-size:18px}.intro-copy{font-size:13px}.list-meta>p,.list-meta .today-hours{font-size:10px}.price small{font-size:13px}.card-bottom{gap:7px}.goods-banner{padding-left:18px;padding-right:18px}}

@media(max-width:700px){.intro .seal b,.intro .seal-small{white-space:nowrap}.intro .seal>.ui-icon{width:26px;height:26px;flex-shrink:0}.list-meta>p{white-space:nowrap}.list-meta .today-hours{white-space:nowrap}}
@media(max-width:380px){.count-tail{display:none}}
@media(max-width:380px){.card-bottom:has(.hours-note) .price small{display:block;max-width:70px;white-space:normal}.card .hours.hours-note{flex:1;min-width:0;max-width:none}.card .hours.hours-note>span{overflow-wrap:anywhere}}

/* Shorter result labels leave room for readable type. */
.list-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:14px}
.list-meta>.result-count{margin:0;font-size:15px;line-height:1.5;white-space:nowrap;font-weight:700}
.list-meta .result-count b{font-size:24px;margin:0 3px}
.list-meta .today-hours{margin:0;padding:0;background:none;font-size:14px;line-height:1.5;text-align:right;white-space:nowrap;color:var(--teal-dark)}
@media(max-width:700px){.list-meta{gap:8px}.list-meta>.result-count{font-size:14px}.list-meta .today-hours{font-size:14px}}

/* Facility details share the listing's icon colors and a compact heading. */
#detail .detail-heading{display:flex;align-items:center;gap:18px;padding-right:22px;margin:0 0 22px}
#detail .detail-icon{width:52px;height:58px;margin:0;flex-shrink:0;border:0;border-radius:0;background:none;transform:none;color:var(--pink)}
#detail .detail-icon.foot{color:var(--teal-dark)}
#detail .detail-icon .ui-icon{width:46px;height:46px}
#detail .detail-title{min-width:0}#detail .detail-title h2{margin:7px 0 0;font-size:26px;line-height:1.4}
#detail dl{margin:0 0 25px}
@media(max-width:700px){#detail .detail-heading{gap:14px;padding-right:16px}#detail .detail-title h2{font-size:22px}#detail .detail-icon{width:42px;height:50px}#detail .detail-icon .ui-icon{width:38px;height:38px}#detail dl>div{grid-template-columns:76px minmax(0,1fr);gap:8px}}

dialog dd{font-family:'Noto Sans JP','Hiragino Kaku Gothic ProN',Meiryo,sans-serif;font-weight:400;font-synthesis:none;line-height:1.85}

@media(max-width:700px){.intro h1{padding-right:0}}

/* Carry the approved phone refinements into the desktop composition. */
@media(min-width:701px){
.intro{padding-left:28px;padding-right:28px}.intro>div:first-child{width:50%;padding-right:28px;min-width:0}.intro h1{padding-right:0}
.goods-banner{padding:30px 32px;gap:24px}.goods-banner>div:first-child{min-width:0;flex:1}.goods-preview{margin-left:0}
.price small{font-size:14px}.card .hours.hours-note{font:700 18px/1.35 var(--round-font);white-space:normal;max-width:58%;justify-content:flex-end}.card .hours.hours-note>.ui-icon{width:20px;height:20px}.hours>span{text-align:right}.card .hours.hours-note>span{min-width:0}.price{flex-shrink:0}
.data-note button{display:inline-flex;gap:5px;align-items:center}.data-note button .ui-icon{width:12px;height:12px}
}

/* Keep the introduction brief so the map appears sooner. */
@media(min-width:701px){
header nav{flex:0 1 480px;width:min(60%,480px);max-width:60%;gap:10px}
header nav button{height:60px;min-height:60px}
.intro{min-height:0;margin-top:28px;margin-bottom:18px;padding:20px 28px 22px}
.intro>div:first-child>.eyebrow{margin-bottom:10px}
.intro h1{font-size:clamp(30px,3.1vw,40px);line-height:1.35}
.intro-copy{margin-top:12px;font-size:15px;line-height:1.7}
}
@media(max-width:700px){
.intro{min-height:0;margin-top:30px;margin-bottom:16px;padding:20px 20px}
.intro>div:first-child>.eyebrow{margin-bottom:8px}
.intro h1{line-height:1.35}
.intro-copy{margin-top:12px;line-height:1.75}
}
@media(max-width:380px){.intro{padding-left:16px;padding-right:16px}}

/* Rounder scallops sit in front of the scenic photograph. */
header{z-index:10;--scallop-width:180px;--scallop-depth:72px}
header::after{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27180%27%20height%3D%2772%27%20viewBox%3D%270%200%20180%2072%27%20preserveAspectRatio%3D%27none%27%3E%3Cpath%20d%3D%27M0%200C0%2092%20180%2092%20180%200V-3H0Z%27%20fill%3D%27%23ddf2ed%27%2F%3E%3Cpath%20d%3D%27M0%200C0%2092%20180%2092%20180%200%27%20fill%3D%27none%27%20stroke%3D%27%2372b6af%27%20stroke-width%3D%271.8%27%2F%3E%3C%2Fsvg%3E")}
.intro{overflow:visible}
@media(min-width:701px){.intro{margin-top:70px;padding-top:8px}.hero-photos,.intro::before{top:-52px}}
@media(max-width:700px){header{--scallop-width:105px;--scallop-depth:42px}.intro{margin-top:50px;padding-top:14px}.hero-photos,.intro::before{top:-40px}}

/* Trim the header body while preserving the rounded scallop silhouette. */
@media(min-width:701px){header{height:84px;min-height:0}header .brand{position:relative;top:10px}}
@media(max-width:700px){header{height:80px;min-height:0;padding-top:8px;padding-bottom:8px}}
header .brand,header nav{z-index:1}

/* Match product descriptions to the readable facility detail typeface. */
#info .shop-grid p{font-family:'Noto Sans JP','Hiragino Kaku Gothic ProN',Meiryo,sans-serif;font-weight:400;font-synthesis:none}


/* Phone-first map and thumb-friendly navigation; desktop stays in place. */
.mobile-dock{display:none}
@media(max-width:700px){
 .intro{padding:10px 18px 14px;margin-top:46px;margin-bottom:12px}
 .intro>div:first-child>.eyebrow{font-size:12px;margin-bottom:5px;padding:0;line-height:1.5}
 .intro h1{font-size:25px;line-height:1.28;letter-spacing:0}
 .intro h1>span{display:block;white-space:nowrap}
 .intro h1>span>svg{bottom:-5px}
 .intro-copy{margin-top:10px;font-size:13px;line-height:1.65;letter-spacing:0}
 .explorer{height:calc(100svh - 90px);min-height:640px;scroll-margin-top:12px}
 .explorer>.search-area{flex:0 0 auto;order:0;padding:16px 13px 0}
 .explorer .list-panel{order:1;flex:1;min-height:0;display:flex;flex-direction:column}
 .explorer .cards{flex:1;min-height:0;overflow-y:auto;overscroll-behavior-y:contain;padding-bottom:140px}
 .explorer.map-mode .list-panel{display:none}
 .explorer .map-panel,.explorer.map-mode .map-panel{order:1;min-height:0}
 .explorer>.data-note{order:2;flex:0 0 auto;padding:10px 13px;margin:0;background:#fff;line-height:1.6}
 .explorer>.mobile-switch{order:3}
 .explorer:has(+.goods-banner){margin-bottom:26px}
 .explorer .map-legend{bottom:25px}
 .explorer{isolation:auto}
 .mobile-dock:not([hidden]){display:flex;flex-direction:column;position:fixed;inset:auto 0 0;z-index:950;padding:8px 12px calc(8px + env(safe-area-inset-bottom));background:#f3faf7;border-top:1px solid #b7d8d0;border-radius:22px 22px 0 0;box-shadow:0 -3px 14px #345e5912}
 .mobile-dock nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;height:auto;width:100%;margin:0}
 .mobile-dock nav button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;height:60px;padding:5px 2px;min-width:0;border:1px solid #a4cbc2;border-radius:16px;background:#fff;box-shadow:0 3px 0 #aacdc3;font:700 13px/1.3 var(--round-font)}
 .mobile-dock nav button .ui-icon{width:21px;height:21px;color:var(--teal-dark)}
 .mobile-dock nav button span{display:inline;margin:0;color:inherit}
 .mobile-dock nav .nav-active{background:var(--yellow);box-shadow:inset 0 2px 3px #365c3826;transform:translateY(2px)}
 .mobile-dock nav .nav-active::after{display:none}
 .mobile-dock .mobile-switch{order:-1;position:static;display:flex;transform:none;align-self:center;width:100%;margin:0 0 9px;padding:3px;border:1px solid var(--teal);border-radius:999px;background:white;box-shadow:none}
 .mobile-dock .mobile-switch button{min-height:42px;font-size:15px;padding:7px 12px}
 .mobile-dock .mobile-switch button.selected{box-shadow:inset 0 2px 3px #365c3826}
 body{padding-bottom:80px}
 dialog{max-height:calc(100dvh - 32px)}
}
@media(max-width:380px){.intro{padding-left:16px;padding-right:16px}.intro h1{font-size:23px}.intro-copy{font-size:13px}.mobile-dock nav button{font-size:12px}}



.mobile-switch[hidden]{display:none!important}

/* Native sticky positioning follows mobile browser bars without scroll calculations. */
@media(max-width:700px){
 .explorer{padding-bottom:0;overflow:visible}
 .explorer>.search-area{border-radius:22px 22px 0 0}
 .explorer>.mobile-switch{position:sticky;top:auto;bottom:12px;left:auto;right:auto;flex:0 0 auto;width:calc(100% - 22px);margin:12px 0;transform:none;z-index:940;padding:3px;box-shadow:none}
 .mobile-nav-visible .explorer>.mobile-switch{bottom:calc(84px + env(safe-area-inset-bottom))}
 .explorer>.mobile-switch button{min-height:42px;font-size:15px;padding:7px 12px}
 .explorer>.mobile-switch button.selected{box-shadow:inset 0 2px 3px #365c3826}
 .mobile-nav-visible #nl-badge-frame{bottom:calc(138px + env(safe-area-inset-bottom))!important}
}

/* Keep the phone catchphrase on one line and bring the map closer. */
@media(max-width:700px){
 .intro{padding:8px 14px 12px}
 .intro h1{font-size:clamp(19px,5.5vw,25px);line-height:1.3;letter-spacing:-.02em;white-space:nowrap}
 .intro h1>span{display:inline;white-space:nowrap}
 .intro-copy{margin-top:8px}
}

/* Give the phone map its own generous height and move the legend off the map. */
@media(max-width:700px){
 .explorer.map-mode{height:auto;min-height:0}
 .explorer.map-mode .map-panel{flex:0 0 auto;height:560px;min-height:560px}
 .map-panel .map-heading{display:none}
 .explorer>.map-legend{position:static;order:2;flex:0 0 auto;display:flex;align-items:center;gap:6px 14px;flex-wrap:wrap;margin:0;padding:9px 13px 2px;border:0;border-radius:0;box-shadow:none;background:#fff;font-size:12px;line-height:1.5}
 .explorer>.map-legend small{display:block;flex-basis:100%;margin:0;font-size:11px;line-height:1.5}
 .explorer:not(.map-mode)>.map-legend{display:none}
 .explorer>.data-note{padding-top:7px;font-size:11px}
 .map-panel .reset-map{top:10px;right:10px;width:36px;height:36px;padding:8px;justify-content:center}
 .map-panel .reset-map>.ui-icon{width:16px;height:16px}
 .map-panel .leaflet-top .leaflet-control-zoom{margin-top:58px;margin-right:10px;border-radius:14px!important;box-shadow:none!important}
 .map-panel .leaflet-control-zoom a{width:32px!important;height:32px!important;line-height:32px!important;font-size:22px}
}

@media(max-width:700px){.explorer{height:auto;min-height:0}.explorer:not(.map-mode) .list-panel{flex:0 0 auto;height:560px;min-height:560px}}

/* Four menu labels share one layout; reset inherited nested-span margins. */
header nav{grid-template-columns:repeat(4,minmax(0,1fr))}
header nav button .nav-label,.mobile-dock nav button .nav-label{display:block;margin:0;padding:0;color:inherit;font:inherit;letter-spacing:0;text-align:center}
.nav-phone-break{display:none}
@media(min-width:701px){
 header nav{flex-basis:600px;width:min(60%,600px);max-width:60%;gap:10px}
 header nav button{flex-direction:row;gap:7px;padding:9px 6px;font-size:14px}
 header nav button .ui-icon{flex:0 0 21px}
 header nav button .nav-label{white-space:nowrap;word-break:normal;flex:0 0 auto}
}
@media(min-width:701px) and (max-width:1100px){
 header nav{gap:6px}
 header nav button{display:grid;grid-template-rows:20px 18px;justify-items:center;align-content:center;gap:4px;padding:6px 2px;font-size:11px}
 header nav button .ui-icon{width:20px;height:20px}
}
@media(max-width:700px){
 header nav{gap:4px}
 header nav button,header nav button:not(.nav-active){display:grid;grid-template-rows:20px 26px;justify-items:center;align-content:center;align-items:center;justify-content:center;height:64px;min-height:64px;padding:6px 1px;gap:3px;font-size:clamp(9px,2.55vw,11px);line-height:1.25}
 header nav button .nav-label{width:100%;white-space:nowrap;word-break:normal;line-height:1.25}
 header nav button .ui-icon{width:20px;height:20px;margin:0}
 header nav .nav-phone-break,.mobile-dock nav .nav-phone-break{display:block}
 .mobile-dock nav{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
 .mobile-dock nav button{display:grid;grid-template-rows:19px 27px;justify-items:center;align-content:center;gap:3px;height:60px;padding:4px 1px;font-size:12px;line-height:1.15}
 .mobile-dock nav button .ui-icon{width:19px;height:19px;margin:0}
 .mobile-dock nav button .nav-label{width:100%;line-height:1.15;white-space:nowrap}
}
@media(max-width:360px){.mobile-dock nav button{font-size:11px}}

/* Desktop keeps its menu within reach; the phone retains its bottom dock. */
@media(min-width:701px){
 header{position:sticky;top:0;z-index:980}
 header.is-stuck{border-bottom:1px solid #a4cbc2;box-shadow:0 3px 12px #345e591a}
 header.is-stuck::after{display:none}
 header.is-stuck .brand{top:0}
 header.is-stuck .brand>img{width:160px;max-height:64px;object-fit:contain}
 header.is-stuck nav button{height:48px;min-height:48px}
 #explorer,#events{scroll-margin-top:104px}
}

@media(min-width:701px) and (max-width:1100px){
 header.is-stuck nav button{grid-template-rows:20px 16px;gap:2px;padding:4px 2px}
}

/* A compact desktop goods introduction; the phone composition stays intact. */
.goods-showcase,.map-legend .legend-note-short{display:none}
@media(min-width:701px){
 .goods-banner{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,380px);grid-template-areas:'copy photos' 'button photos';column-gap:48px;row-gap:14px;width:90%;max-width:1120px;margin:38px auto 30px;padding:24px 32px;align-items:center}
 .goods-banner>div:first-child{grid-area:copy;width:auto;align-self:end;flex:none}
 .goods-banner h2{font-size:28px;margin:10px 0 14px;line-height:1.5}
 .goods-banner p{font-size:16px;line-height:1.9}
 .goods-banner>.goods-preview{display:none}
 .goods-banner>button{grid-area:button;justify-self:start;align-self:start;margin:0;min-width:260px;max-width:100%;padding:15px 22px;display:flex;justify-content:space-between;align-items:center;gap:24px;font-size:16px}
 .goods-showcase{grid-area:photos;display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:center;padding:4px 0}
 .goods-showcase figure{position:relative;isolation:isolate;margin:0;min-width:0;text-align:center}
 .goods-showcase figure::before{content:'';position:absolute;z-index:-1;width:100%;aspect-ratio:1;top:18px;left:0;border-radius:50%;background:#e2f2ec}
 .goods-showcase img{display:block;width:100%;height:175px;object-fit:contain}
 .goods-showcase .goods-holder-preview{transform:translateY(7px)}
 .goods-holder-preview img{width:86%;height:170px;margin:0 auto 10px;object-fit:cover;object-position:50% 40%;border-radius:24px;transform:rotate(4deg)}
 .goods-showcase figcaption{margin-top:9px;font-size:14px;font-weight:700;color:var(--teal-dark)}
}
@media(min-width:701px) and (max-width:1000px){
 .goods-banner{grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:22px;padding:22px 22px}
 .goods-showcase{gap:12px}.goods-showcase img{height:155px}.goods-holder-preview img{height:150px}
 .goods-banner h2{font-size:24px}.goods-banner p{font-size:14px}.goods-banner>button{min-width:0;width:100%;font-size:14px}.goods-showcase figcaption{font-size:12px}
}
@media(max-width:700px){
 .explorer>.map-legend{width:100%;max-width:none;flex-wrap:nowrap;gap:9px;padding:9px 13px 4px;font-size:12px;white-space:nowrap}
 .explorer>.map-legend>span{flex:0 0 auto;gap:5px}
 .explorer>.map-legend>small{flex:0 0 auto;width:auto;display:block;margin-left:auto;font-size:11px;white-space:nowrap}
 .map-legend .legend-note-full{display:none}.map-legend .legend-note-short{display:inline}
}
@media(max-width:360px){.explorer>.map-legend{gap:7px;padding-left:10px;padding-right:10px}.explorer>.map-legend>span{gap:4px}}

/* Keep map counts together without squeezing the hours date. */
.result-counts{display:flex;align-items:baseline;gap:14px;flex-shrink:0}
.result-counts>p{margin:0;font-size:15px;line-height:1.5;font-weight:700;white-space:nowrap}
.result-counts b{font-size:24px;margin:0 3px}
.result-counts .event-result{color:var(--teal-dark)}
.result-counts .event-result b{color:var(--teal-dark)}
.event-result[hidden]{display:none}
.list-meta{flex-wrap:wrap}
.list-meta .today-hours{margin-left:auto}
@media(max-width:700px){
 .explorer:not(.map-mode) .event-map-toggle,.explorer:not(.map-mode) .event-result{display:none}
 .result-counts{gap:8px}
 .result-counts>p{font-size:14px}
 .list-meta.has-event-count{gap:4px 6px}
 .list-meta.has-event-count .today-hours{flex-basis:auto}
}

/* Three goods stay small on desktop; phone details use compact photo/text rows. */
@media(min-width:701px){.goods-banner{grid-template-columns:minmax(0,1fr) minmax(0,440px)}.goods-showcase{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.goods-showcase img,.goods-showcase .goods-holder-preview img{height:150px}.goods-pouch-preview img{width:100%;border-radius:18px;object-fit:cover;object-position:center}.goods-showcase figcaption{font-size:12px}.goods-holder-preview img{width:100%;transform:rotate(2deg);border-radius:18px;margin-bottom:0}}
@media(min-width:701px) and (max-width:1000px){.goods-showcase{gap:10px}.goods-showcase img,.goods-showcase .goods-holder-preview img{height:125px}.goods-showcase figcaption{font-size:11px}}
#info .shop-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
#info .shop-grid h3{font-size:17px;line-height:1.6;margin:12px 0 8px}
#info .shop-grid p{font-size:14px;line-height:1.8;margin:12px 0 0}
#info .shop-grid .goods-color-note{font-size:12px;color:var(--teal-dark);margin-top:8px}
.holder-colors-photo img,.pouch-photo img{object-fit:cover;object-position:center}
.goods-use-example{display:flex;align-items:center;gap:7px;margin-top:8px;font-size:11px;color:var(--teal-dark);text-underline-offset:3px}
.goods-use-example img{width:38px;height:38px;object-fit:cover;border-radius:7px}.goods-use-example .ui-icon{width:10px;height:10px}
@media(max-width:700px){
 #info .shop-grid{grid-template-columns:1fr;gap:18px}
 .goods-item{display:grid;grid-template-columns:110px minmax(0,1fr);gap:14px;align-items:start}
 .goods-item+.goods-item{padding-top:18px;border-top:1px solid #d9e7e2}
 #info .shop-grid h3{font-size:17px;margin:0 0 8px;line-height:1.5}
 #info .shop-grid p{font-size:14px;margin-top:10px}
 .goods-item .product-photo{aspect-ratio:3/4;border-radius:12px}
 .goods-item .pill{font-size:11px;padding:5px 8px}
 .goods-use-example{gap:4px;font-size:10px;line-height:1.5}.goods-use-example img{width:29px;height:29px}
}
@media(max-width:360px){.goods-item{grid-template-columns:90px minmax(0,1fr);gap:10px}.goods-use-example img{display:none}}

/* Match every primary goods image to the same pale grid background. */
.shop-grid .product-photo,.goods-showcase img{background-color:#f3faf8;background-image:linear-gradient(#91bcb322 1px,transparent 1px),linear-gradient(90deg,#91bcb322 1px,transparent 1px);background-size:24px 24px}
.shop-grid .holder-colors-photo,.shop-grid .pouch-photo{padding:12px}
.shop-grid .holder-colors-photo img,.shop-grid .pouch-photo img{object-fit:contain;object-position:center}
@media(min-width:701px){.goods-showcase figure::before{display:none}.goods-showcase img,.goods-showcase .goods-holder-preview img{object-fit:contain;object-position:center;transform:none;border:1px solid #b7d8d0;border-radius:18px;padding:7px;margin:0}}
@media(max-width:700px){.shop-grid .holder-colors-photo,.shop-grid .pouch-photo{padding:7px}}

/* Two photos share one frame: usage first, colors second; native touch swipe. */
.goods-item-media,.goods-photo-gallery{min-width:0}
.goods-photo-strip{--photo-radius:20px;display:flex;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;border-radius:var(--photo-radius);clip-path:inset(0 round var(--photo-radius));overscroll-behavior-x:contain}
.goods-photo-strip::-webkit-scrollbar{display:none}
.goods-photo-strip>.product-photo{flex:0 0 100%;min-width:0;scroll-snap-align:start;scroll-snap-stop:always}
/* Clip the actual image too: mobile compositing can paint it over a rounded link. */
.shop-grid .product-photo{position:relative;isolation:isolate;clip-path:inset(0 round 20px)}
.shop-grid .product-photo img{border-radius:inherit}
@media(max-width:700px){.goods-photo-strip{--photo-radius:12px}.shop-grid .product-photo{clip-path:inset(0 round 12px)}}
.goods-photo-picker{display:flex;justify-content:center;gap:5px;margin-top:7px}
.goods-photo-picker button{flex:1;min-width:0;min-height:29px;padding:3px 6px;border:1px solid #b7d8d0;border-radius:99px;background:#fff;font:700 12px/1.5 var(--round-font);color:var(--teal-dark)}
.goods-photo-picker button[aria-pressed="true"]{background:var(--yellow);border-color:var(--teal-dark)}
@media(max-width:700px){.goods-photo-picker{gap:3px;margin-top:6px}.goods-photo-picker button{font-size:10px;padding:3px 2px;min-height:27px}}

/* Compact operator and shared contact links; keep credits alongside the footer. */
.operator-links{display:flex;flex-wrap:wrap;align-items:center;gap:6px 18px;font:400 12px/1.8 "Noto Sans JP",sans-serif;color:var(--teal-dark);margin:10px 0}.operator-links a{text-underline-offset:3px}.operator-links a:focus-visible{outline:2px solid var(--pink);outline-offset:3px}#info .operator-links{border-top:1px solid #d9e7e2;padding-top:12px;margin-top:14px;font-size:13px}
