diff --git a/fes.css b/fes.css new file mode 100644 index 0000000..4a86b75 --- /dev/null +++ b/fes.css @@ -0,0 +1,211 @@ +/* Reset / base */ +* { box-sizing: border-box; } +html,body { height: 100%; } +body { + margin: 0; + font-family: "Hiragino Sans","Helvetica Neue",Arial,sans-serif; + background: linear-gradient(135deg,#a8edea,#fed6e3); /* 空色 → 桜色 */ + color: #222; + -webkit-font-smoothing: antialiased; + -webkit-tap-highlight-color: transparent; +} + +/* Header */ +.site-header { + padding: 12px 16px; + text-align: center; + background: linear-gradient(90deg,#6a85b6,#bac8e0); + color: #fff; + box-shadow: 0 2px 6px rgba(0,0,0,0.12); +} +.site-header h1 { margin: 0; font-size: 1.2rem; } +.site-header .sub { margin: 4px 0 0; font-size: 0.85rem; opacity: 0.95; } + +/* Tabs */ +.tabs { + display: flex; + gap: 8px; + padding: 10px; + justify-content: center; +} +.tab-button { + flex: 1; + max-width: 200px; + padding: 10px 14px; + border: none; + border-radius: 10px; + background: rgba(255,255,255,0.9); + font-size: 1rem; + cursor: pointer; + box-shadow: 0 2px 6px rgba(0,0,0,0.08); +} +.tab-button.active { + background: linear-gradient(90deg,#ff9a9e,#fad0c4); + color: #fff; + font-weight: 700; +} + +/* Main / Map */ +.main { padding: 12px; display: flex; justify-content: center; } +.map-wrapper { width: 100%; max-width: 640px; } +.map-container { + position: relative; + width: 100%; + border-radius: 14px; + overflow: hidden; + border: 3px solid rgba(255,255,255,0.9); + box-shadow: 0 8px 24px rgba(0,0,0,0.18); + background: #fff; +} +.map-container img { + width: 100%; + height: auto; + display: block; + user-select: none; + -webkit-user-drag: none; +} + +/* Pin */ +.pin { + position: absolute; + width: 44px; + height: 44px; + transform: translate(-50%,-100%); + touch-action: manipulation; + z-index: 6; + transition: transform .14s ease; +} +.pin:active, +.pin:focus { transform: translate(-50%,-100%) scale(0.98); } +.pin img { width: 100%; height: 100%; display:block; pointer-events: none; } + +/* Tooltip (カード風) */ +.tooltip { + position: absolute; + z-index: 8; + transform: translate(-50%,-120%); + display: none; + min-width: 200px; + max-width: 86vw; + border-radius: 12px; + box-shadow: 0 10px 28px rgba(0,0,0,0.20); + background: #fff; + overflow: hidden; + animation: tooltipFade .22s ease; +} +@keyframes tooltipFade { + from { opacity: 0; transform: translate(-50%,-125%) scale(.98); } + to { opacity: 1; transform: translate(-50%,-120%) scale(1); } +} +.tooltip-card { display: block; } + +/* Header inside tooltip */ +.tooltip-header { + background: linear-gradient(90deg,#ff9a9e,#fad0c4); + color: #fff; + padding: 10px 12px; + font-weight: 700; + font-size: 1rem; + text-align: left; +} + +/* Body */ +.tooltip-body { + padding: 10px 12px; + text-align: left; + font-size: 0.95rem; + color: #333; +} +.tooltip-body img { + width: 100%; + border-radius: 8px; + display: block; + margin: 6px 0; +} +.tooltip-body p { margin: 6px 0 0; line-height: 1.4; } + +/* Close button in tooltip */ +.tooltip .close-btn { + position: absolute; + right: 8px; + top: 8px; + background: rgba(255,255,255,0.85); + border: none; + width: 34px; + height: 34px; + border-radius: 50%; + font-size: 16px; + line-height: 1; + cursor: pointer; + z-index: 12; + box-shadow: 0 2px 6px rgba(0,0,0,0.12); +} + +/* 一覧ボタン(固定) */ +.list-toggle { + position: fixed; + right: 12px; + bottom: 12px; + z-index: 30; + background: linear-gradient(90deg,#6a85b6,#bac8e0); + color: #fff; + border: none; + padding: 12px 14px; + border-radius: 999px; + box-shadow: 0 8px 20px rgba(0,0,0,0.22); + font-weight: 700; + cursor: pointer; +} + +/* 一覧パネル(ボトムシート) */ +.list-panel { + position: fixed; + left: 0; + right: 0; + bottom: 0; + z-index: 40; + background: #fff; + border-top-left-radius: 14px; + border-top-right-radius: 14px; + box-shadow: 0 -8px 30px rgba(0,0,0,0.22); + transform: translateY(110%); + transition: transform .28s cubic-bezier(.2,.9,.2,1); + max-height: 70vh; + display: flex; + flex-direction: column; +} +.list-panel.open { transform: translateY(0); } +.list-panel-header { + display:flex; + align-items:center; + justify-content: space-between; + padding: 12px; + border-bottom: 1px solid #eee; +} +.list-content { + overflow: auto; + padding: 8px 12px 24px; +} +.shop-item { + display:flex; + gap: 10px; + padding: 10px; + border-radius: 10px; + align-items: center; + cursor: pointer; + transition: background .12s ease; +} +.shop-item:hover { background: rgba(220,235,255,0.6); } +.shop-thumb { width: 64px; height: 64px; border-radius: 8px; object-fit: cover; flex: 0 0 64px; } +.shop-meta { text-align: left; flex: 1; } +.shop-title { font-weight: 700; margin: 0; font-size: 0.98rem; } +.shop-desc { margin: 6px 0 0; font-size: 0.9rem; color:#555; } + +/* small screen tweaks */ +@media (min-width: 520px) { + .pin { width: 48px; height: 48px; } + .tooltip { min-width: 220px; } +} + +/* Utility */ +.hidden { display: none !important; } diff --git a/styles.css b/styles.css deleted file mode 100644 index 4a86b75..0000000 --- a/styles.css +++ /dev/null @@ -1,211 +0,0 @@ -/* Reset / base */ -* { box-sizing: border-box; } -html,body { height: 100%; } -body { - margin: 0; - font-family: "Hiragino Sans","Helvetica Neue",Arial,sans-serif; - background: linear-gradient(135deg,#a8edea,#fed6e3); /* 空色 → 桜色 */ - color: #222; - -webkit-font-smoothing: antialiased; - -webkit-tap-highlight-color: transparent; -} - -/* Header */ -.site-header { - padding: 12px 16px; - text-align: center; - background: linear-gradient(90deg,#6a85b6,#bac8e0); - color: #fff; - box-shadow: 0 2px 6px rgba(0,0,0,0.12); -} -.site-header h1 { margin: 0; font-size: 1.2rem; } -.site-header .sub { margin: 4px 0 0; font-size: 0.85rem; opacity: 0.95; } - -/* Tabs */ -.tabs { - display: flex; - gap: 8px; - padding: 10px; - justify-content: center; -} -.tab-button { - flex: 1; - max-width: 200px; - padding: 10px 14px; - border: none; - border-radius: 10px; - background: rgba(255,255,255,0.9); - font-size: 1rem; - cursor: pointer; - box-shadow: 0 2px 6px rgba(0,0,0,0.08); -} -.tab-button.active { - background: linear-gradient(90deg,#ff9a9e,#fad0c4); - color: #fff; - font-weight: 700; -} - -/* Main / Map */ -.main { padding: 12px; display: flex; justify-content: center; } -.map-wrapper { width: 100%; max-width: 640px; } -.map-container { - position: relative; - width: 100%; - border-radius: 14px; - overflow: hidden; - border: 3px solid rgba(255,255,255,0.9); - box-shadow: 0 8px 24px rgba(0,0,0,0.18); - background: #fff; -} -.map-container img { - width: 100%; - height: auto; - display: block; - user-select: none; - -webkit-user-drag: none; -} - -/* Pin */ -.pin { - position: absolute; - width: 44px; - height: 44px; - transform: translate(-50%,-100%); - touch-action: manipulation; - z-index: 6; - transition: transform .14s ease; -} -.pin:active, -.pin:focus { transform: translate(-50%,-100%) scale(0.98); } -.pin img { width: 100%; height: 100%; display:block; pointer-events: none; } - -/* Tooltip (カード風) */ -.tooltip { - position: absolute; - z-index: 8; - transform: translate(-50%,-120%); - display: none; - min-width: 200px; - max-width: 86vw; - border-radius: 12px; - box-shadow: 0 10px 28px rgba(0,0,0,0.20); - background: #fff; - overflow: hidden; - animation: tooltipFade .22s ease; -} -@keyframes tooltipFade { - from { opacity: 0; transform: translate(-50%,-125%) scale(.98); } - to { opacity: 1; transform: translate(-50%,-120%) scale(1); } -} -.tooltip-card { display: block; } - -/* Header inside tooltip */ -.tooltip-header { - background: linear-gradient(90deg,#ff9a9e,#fad0c4); - color: #fff; - padding: 10px 12px; - font-weight: 700; - font-size: 1rem; - text-align: left; -} - -/* Body */ -.tooltip-body { - padding: 10px 12px; - text-align: left; - font-size: 0.95rem; - color: #333; -} -.tooltip-body img { - width: 100%; - border-radius: 8px; - display: block; - margin: 6px 0; -} -.tooltip-body p { margin: 6px 0 0; line-height: 1.4; } - -/* Close button in tooltip */ -.tooltip .close-btn { - position: absolute; - right: 8px; - top: 8px; - background: rgba(255,255,255,0.85); - border: none; - width: 34px; - height: 34px; - border-radius: 50%; - font-size: 16px; - line-height: 1; - cursor: pointer; - z-index: 12; - box-shadow: 0 2px 6px rgba(0,0,0,0.12); -} - -/* 一覧ボタン(固定) */ -.list-toggle { - position: fixed; - right: 12px; - bottom: 12px; - z-index: 30; - background: linear-gradient(90deg,#6a85b6,#bac8e0); - color: #fff; - border: none; - padding: 12px 14px; - border-radius: 999px; - box-shadow: 0 8px 20px rgba(0,0,0,0.22); - font-weight: 700; - cursor: pointer; -} - -/* 一覧パネル(ボトムシート) */ -.list-panel { - position: fixed; - left: 0; - right: 0; - bottom: 0; - z-index: 40; - background: #fff; - border-top-left-radius: 14px; - border-top-right-radius: 14px; - box-shadow: 0 -8px 30px rgba(0,0,0,0.22); - transform: translateY(110%); - transition: transform .28s cubic-bezier(.2,.9,.2,1); - max-height: 70vh; - display: flex; - flex-direction: column; -} -.list-panel.open { transform: translateY(0); } -.list-panel-header { - display:flex; - align-items:center; - justify-content: space-between; - padding: 12px; - border-bottom: 1px solid #eee; -} -.list-content { - overflow: auto; - padding: 8px 12px 24px; -} -.shop-item { - display:flex; - gap: 10px; - padding: 10px; - border-radius: 10px; - align-items: center; - cursor: pointer; - transition: background .12s ease; -} -.shop-item:hover { background: rgba(220,235,255,0.6); } -.shop-thumb { width: 64px; height: 64px; border-radius: 8px; object-fit: cover; flex: 0 0 64px; } -.shop-meta { text-align: left; flex: 1; } -.shop-title { font-weight: 700; margin: 0; font-size: 0.98rem; } -.shop-desc { margin: 6px 0 0; font-size: 0.9rem; color:#555; } - -/* small screen tweaks */ -@media (min-width: 520px) { - .pin { width: 48px; height: 48px; } - .tooltip { min-width: 220px; } -} - -/* Utility */ -.hidden { display: none !important; }