/* 案1の比較用。現行の店内・遷移・地理データを使う。 */
:root { --ink:#103d59; --muted:#6a7885; --mint:#deefe7; --blue:#e7f0f4; --lavender:#edf2f3; --orange:#ef9658; --shadow:0 3px 16px #173d5114; color:var(--ink); }
.icon { display:inline-block;width:24px;height:24px;flex-shrink:0;background-color:currentColor;mask:var(--icon) center / contain no-repeat;-webkit-mask:var(--icon) center / contain no-repeat; }
.icon-sailboat { --icon:url('vendor/icons/sailboat.svg'); }
.icon-map { --icon:url('vendor/icons/map.svg'); }
.icon-locate { --icon:url('vendor/icons/current-location.svg'); }
.icon-store { --icon:url('vendor/icons/building-store.svg'); }
.icon-help { --icon:url('vendor/icons/help.svg'); }
.icon-plus { --icon:url('vendor/icons/plus.svg'); }
.icon-minus { --icon:url('vendor/icons/minus.svg'); }
.icon-close { --icon:url('vendor/icons/x.svg'); }
.icon-chevron { --icon:url('vendor/icons/chevron-right.svg'); }
.icon-pin { --icon:url('vendor/icons/map-pin-filled.svg'); }
.map-header { top:calc(17px + var(--safe-top));left:14px;right:auto;width:calc(49% - 14px);height:44px;padding:0;background:transparent;border:0;box-shadow:none;pointer-events:none; }
.brand { gap:6px; }
.brand-icon { width:29px;height:32px;background-color:#176593;border-radius:0;font-size:0; }
.brand h1 { font-size:clamp(14px,4.4vw,21px);letter-spacing:.035em;font-weight:750;white-space:nowrap;text-shadow:0 1px 1px #fff; }
.area-row { display:none; }
.quiet { position:fixed;right:14px;bottom:calc(234px + var(--safe-bottom));background:#fffffff5;box-shadow:var(--shadow);color:var(--ink);width:44px;height:44px;border-radius:50%;display:grid;place-items:center;pointer-events:auto; }
.quiet .icon { width:22px;height:22px; }
.purpose-bar { top:calc(17px + var(--safe-top));right:10px;left:auto;width:49%;display:block; }
.purpose-switch { padding:3px;border:1px solid #fff;border-radius:999px;box-shadow:var(--shadow);background:#fffffff8; }
.purpose-switch button { padding:4px 6px;min-height:44px;font-size:clamp(10px,2.8vw,13px);border-radius:999px; }
.purpose-switch button[aria-pressed=true] { background:var(--mint);color:#103d59; }
body[data-purpose=life] .purpose-switch button[aria-pressed=true] { background:var(--mint); }
.category-label { position:fixed;top:calc(79px + var(--safe-top));right:14px;width:112px; }
.category-label select { border:1px solid #fff;border-radius:999px;box-shadow:var(--shadow);font-size:12px;padding:8px 12px; }
.view-switch { top:calc(79px + var(--safe-top));left:72px;right:auto;padding:0;border:0;border-radius:999px; }
.view-switch button { display:flex;gap:7px;align-items:center;justify-content:center;min-height:44px;min-width:72px;padding:8px 13px;font-size:15px;font-weight:650;border-radius:999px; }
.view-switch button[aria-pressed=true] { display:none; }
.view-switch .icon { width:21px;height:21px;color:#677382; }
.map-tools { inset:0;display:block;pointer-events:none; }
.map-tools>button { position:absolute;pointer-events:auto;right:14px;width:44px;height:44px;padding:8px;border-radius:50%;color:var(--ink); }
.map-tools>button small { display:none; }
.map-tools span { width:24px;height:24px; }
#locate { left:14px;right:auto;top:calc(79px + var(--safe-top));background:white; }
#station { bottom:calc(182px + var(--safe-bottom)); }
#zoom-toggle { display:flex;bottom:calc(130px + var(--safe-bottom)); }
.map-tools .zoom-tools { display:none;pointer-events:auto; }
.map-tools.zoom-open .zoom-tools { position:absolute;display:flex;right:66px;left:auto;top:auto;bottom:calc(130px + var(--safe-bottom));border-radius:999px; }
.zoom-tools button { display:grid;place-items:center;min-width:44px;height:44px; }
.zoom-tools button+button { border:0;border-left:1px solid var(--line); }
.map-status { top:calc(136px + var(--safe-top));left:14px;right:14px;width:auto;max-width:360px; }
.toast { bottom:calc(186px + var(--safe-bottom));left:14px;right:70px;width:auto; }
.maplibregl-ctrl-bottom-left { bottom:calc(31px + var(--safe-bottom));left:6px; }
.maplibregl-ctrl-scale { font-size:9px!important; }
.maplibregl-ctrl-attrib { font-size:9px!important; }
.map-footnote { display:none; }
.demo-marker { min-width:70px;filter:drop-shadow(0 2px 5px #103d5930); }
.marker-house { width:43px;height:48px;border:0;border-radius:0;background:transparent; }
.marker-house .icon { width:43px;height:48px;color:#21516c;filter:drop-shadow(0 1px 1px white); }
.demo-marker.selected .marker-house { box-shadow:none; }
.demo-marker.selected .icon-pin { color:#ee955b; }
.marker-label { color:#103d59;border:2px solid white;background:#fffffff5;border-radius:6px;padding:5px 9px;margin-top:0;font-size:11px; }
.marker-label small { font-size:8px;color:#697784; }
.demo-marker.selected .marker-label { border-color:#f2b58f; }
.shop-sheet { left:8px;right:8px;width:calc(100% - 16px);bottom:calc(34px + var(--safe-bottom));padding:12px;border:1px solid #fff;border-radius:24px;background:#fffefa;box-shadow:0 8px 30px #193c5426;overflow:visible;max-height:calc(100dvh - 164px - var(--safe-top) - var(--safe-bottom)); }
.shop-overview { display:grid;grid-template-columns:clamp(70px,22vw,100px) minmax(0,1fr) clamp(94px,28vw,132px);gap:12px;padding:0;align-items:center; }
.shop-overview .asset { width:100%;height:66px;min-height:66px;border-radius:12px; }
.shop-overview .asset img { height:66px;object-fit:cover; }
.shop-overview h2 { font-size:clamp(16px,4.55vw,21px);line-height:1.4;margin:0 0 3px;overflow-wrap:anywhere; }
.shop-overview .card-status { font-size:11px;line-height:1.45;color:#7b8490; }
.shop-copy .listing-badge { font-size:9px;line-height:1.25;padding:1px 4px;margin-top:3px; }
.sheet-actions { display:block; }
.sheet-actions .primary { display:flex;align-items:center;justify-content:center;gap:6px;min-height:52px;width:100%;border-radius:999px;background:#103e5a;color:white;font-size:18px;padding:10px 8px;white-space:nowrap; }
.primary .icon { width:17px;height:20px;margin:0;float:none; }
.shop-sheet>.close { top:-43px;right:4px;width:44px;height:44px;padding:10px;display:grid;place-items:center;background:#fffffff5;border:1px solid white;border-radius:50%;color:#103d59;box-shadow:var(--shadow); }
.card-more { margin-top:6px; }
.card-more summary { display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:10px;line-height:1.4;color:#607889;cursor:pointer;min-height:24px;padding:2px 3px; }
.card-more summary:focus-visible { outline:3px solid #74659a;outline-offset:2px;border-radius:4px; }
.card-more summary>span:last-child { text-decoration:underline;text-underline-offset:3px; }
.card-more[open] { max-height:calc(100dvh - 296px);overflow:auto; }
.card-more .shop-intro { margin:9px 3px 12px;font-size:12px; }
.card-more .secondary { min-height:44px; }
.card-more .mini-note { margin:8px 3px 2px; }
.shop-sheet .asset-error { font-size:9px; }
.explore-hint { left:8px;right:8px;bottom:calc(34px + var(--safe-bottom));width:calc(100% - 16px);min-height:74px;padding:10px 14px;border-radius:24px;background:#fffefa; }
.demo-shortcut { font-size:16px;gap:12px; }
.demo-icon { width:36px;height:36px;border-radius:0;background-color:#d17c4a; }
.demo-shortcut small { font-size:10px; }
#browse-stores { border-radius:99px;background:#103e5a;color:white;padding:8px 18px; }
.pickup { left:14px;right:70px;bottom:calc(119px + var(--safe-bottom));width:auto;border-radius:16px;padding:8px 11px; }
.experience { background:#f6f5f0; }
.experience-header { color:#103d59; }
.experience-header button { background:#e7f0ed; }
.comic-controls { background:#f6f5f0f5; }
@media(min-width:700px) {
 .map-header { top:22px;left:26px;width:340px; }
 .brand { gap:11px; }
 .brand-icon { width:40px;height:40px; }
 .brand h1 { font-size:28px; }
 .purpose-bar { top:22px;right:26px;width:330px; }
 .purpose-switch button { min-height:42px;font-size:16px; }
 .category-label { top:88px;right:26px;width:140px; }
 #locate { top:94px;left:26px; }
 .view-switch { top:94px;left:84px; }
 .map-tools>button,.quiet { right:26px; }
 .shop-sheet { left:50%;right:auto;bottom:48px;translate:-50% 0;width:min(700px,calc(100% - 52px));padding:18px 22px;border-radius:28px; }
 .shop-overview { grid-template-columns:128px minmax(0,1fr) 180px;gap:24px; }
 .shop-overview .asset,.shop-overview .asset img { height:84px; }
 .shop-overview h2 { font-size:26px; }
 .shop-overview .card-status { font-size:14px; }
 .shop-copy .listing-badge { font-size:10px; }
 .sheet-actions .primary { min-height:64px;font-size:23px; }
 .primary .icon { width:22px;height:22px; }
 .card-more summary { font-size:12px; }
 .explore-hint { left:50%;right:auto;transform:translateX(-50%);width:500px;bottom:48px; }
 .pickup { left:26px;right:auto;width:290px;bottom:48px; }
 .map-status { top:155px;left:26px; }
 .toast { left:26px;bottom:180px; }
 .maplibregl-ctrl-bottom-left { left:16px;bottom:16px; }
 .experience { width:min(620px,100vw); }
}
@media(max-width:359px) {
 .map-header { left:9px; }
 .brand { gap:4px; }
 .brand-icon { width:23px;height:27px; }
 .purpose-bar { right:7px;width:49%; }
 .purpose-switch button { font-size:10px;padding:4px; }
 .shop-sheet { padding:10px; }
 .shop-overview { grid-template-columns:64px minmax(0,1fr) 88px;gap:8px; }
 .shop-overview h2 { font-size:16px; }
 .sheet-actions .primary { font-size:16px;gap:3px; }
 .category-label { width:105px; }
}
@media(max-height:500px) {
 .quiet { bottom:calc(184px + var(--safe-bottom)); }
 #station { bottom:calc(132px + var(--safe-bottom)); }
 #zoom-toggle { bottom:calc(80px + var(--safe-bottom)); }
 .shop-sheet { max-height:calc(100dvh - 110px); }
 .card-more[open] { max-height:calc(100dvh - 220px); }
}
/* Supplemental controls stay above the selected card, including expanded details. */
.quiet { top:calc(142px + var(--safe-top));bottom:auto; }
#station { top:calc(194px + var(--safe-top));bottom:auto; }
#zoom-toggle { top:calc(246px + var(--safe-top));bottom:auto; }
.map-tools.zoom-open .zoom-tools { top:calc(246px + var(--safe-top));bottom:auto; }
.fictional-suffix { position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap; }
.brand { background:#ffffffe8;border-radius:8px;box-shadow:0 0 9px 5px #ffffffe8; }
@media(min-width:700px) { .purpose-switch button { min-height:44px; } }
