:root {
  --paper: #F5F1EA;
  --paper-2: #EDE7DC;
  --surface: #FBF9F5;
  --ink: #1C1A17;
  --ink-2: #5B554C;
  --ink-3: #8C8579;
  --rule: #D9D1C3;
  --rule-strong: #1C1A17;
  --shu: #C8361E;
  --ai: #1F3A5F;
  --ok: #3C6E47;
  --warn: #9A5B0B;
  --font-serif: "Noto Serif TC", "Songti TC", serif;
  --font-sans: "Noto Sans TC", -apple-system, "PingFang TC", sans-serif;
  --font-mono: "IBM Plex Mono", ui-monospace, monospace;
  --radius: 2px;
  --gutter: clamp(16px, 4vw, 40px);
  color-scheme: light;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --paper:#15130F; --paper-2:#1E1B16; --surface:#221F19; --ink:#EDE7DC;
    --ink-2:#A8A092; --ink-3:#7A7366; --rule:#3A352D; --rule-strong:#EDE7DC;
    --shu:#E5553B; --ai:#8FB0D9; --ok:#7FB08A; --warn:#D9A055;
    color-scheme: dark;
  }
}
:root[data-theme="dark"] {
  --paper:#15130F; --paper-2:#1E1B16; --surface:#221F19; --ink:#EDE7DC;
  --ink-2:#A8A092; --ink-3:#7A7366; --rule:#3A352D; --rule-strong:#EDE7DC;
  --shu:#E5553B; --ai:#8FB0D9; --ok:#7FB08A; --warn:#D9A055;
  color-scheme: dark;
}
*, *::before, *::after { box-sizing: border-box; }
body { margin:0; background:var(--paper); color:var(--ink); font:14px/1.7 var(--font-sans); }
button, input, select, textarea { font:inherit; color:inherit; }
button, select, summary { cursor:pointer; }
button, input, select, textarea { border-radius:var(--radius); }
button { background:none; border:0; }
a { color:var(--ai); text-decoration:none; }
a:hover { text-decoration:underline; }
img { display:block; max-width:100%; }
h1,h2,h3,h4,p { margin:0; }
button, a, input, select, textarea, summary { -webkit-tap-highlight-color:transparent; }
:focus-visible { outline:2px solid var(--ai); outline-offset:2px; }
[hidden] { display:none !important; }
.i { display:inline-block; width:20px; height:20px; flex-shrink:0; vertical-align:middle; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link { position:absolute; top:-60px; left:16px; padding:8px; z-index:2000; background:var(--surface); }
.skip-link:focus { top:8px; }
.container { width:min(100% - var(--gutter)*2, 1320px); margin-inline:auto; }
.masthead { position:sticky; top:0; z-index:500; background:var(--paper); }
.masthead-inner { width:min(100% - var(--gutter)*2, 1320px); margin:auto; border-bottom:2px solid var(--rule-strong); padding:24px 0 14px; }
.masthead-title { display:flex; align-items:center; gap:24px; }
.brand { font:700 clamp(22px, 2.4vw, 32px)/1.2 Georgia, var(--font-serif); letter-spacing:.12em; color:var(--ink); white-space:nowrap; }
.tagline { color:var(--ink-2); font-size:14px; letter-spacing:.08em; }
.collection-toggle { margin-left:auto; white-space:nowrap; }
.edition { font:12px/1.5 var(--font-mono); color:var(--ink-3); margin-top:12px; }
.text-button { display:inline-flex; align-items:center; justify-content:center; gap:6px; padding:6px 0; color:var(--ink-2); }
.text-button:hover { color:var(--ink); text-decoration:underline; }
.text-button[aria-pressed="true"], .save-button[aria-pressed="true"] { color:var(--shu); }
.icon-button { display:inline-flex; padding:10px; align-items:center; justify-content:center; }
.button { display:inline-flex; align-items:center; gap:6px; padding:8px 14px; border:1px solid var(--ink); background:var(--ink); color:var(--paper); }
.itinerary { padding:24px 20px 12px; background:var(--paper-2); border-bottom:1px solid var(--rule); }
.trip-line { display:flex; align-items:center; gap:10px; flex-wrap:wrap; font-size:15px; }
.trip-line input[type="date"] { width:143px; max-width:100%; border:0; border-bottom:1px solid var(--ink-3); background:transparent; font:14px var(--font-mono); padding:8px 0; }
select { background:transparent; border:0; border-bottom:1px solid var(--ink-3); padding:7px 22px 7px 2px; max-width:100%; }
option { background:var(--surface); color:var(--ink); }
#ipFilter { max-width:180px; }
.search-field { display:flex; align-items:center; gap:8px; margin-left:auto; border-bottom:1px solid var(--rule); width:220px; }
.search-field input { border:0; padding:8px 0; width:100%; min-width:0; background:transparent; }
input::placeholder, textarea::placeholder { color:var(--ink-3); }
.location-line { display:flex; align-items:center; gap:16px; margin-top:16px; min-width:0; }
.tabs { display:flex; gap:22px; min-width:0; overflow-x:auto; scrollbar-width:none; }
.tabs::-webkit-scrollbar { display:none; }
.tabs button { flex-shrink:0; padding:8px 0; color:var(--ink-2); white-space:nowrap; border-bottom:2px solid transparent; }
.tabs button[aria-pressed="true"] { color:var(--ink); border-color:var(--shu); }
.segments { display:flex; flex-shrink:0; margin-left:auto; }
.segments button { padding:1px 12px; color:var(--ink-2); border-left:1px solid var(--rule); font-size:13px; }
.segments button:first-child { border-left:0; }
.segments button[aria-pressed="true"] { color:var(--shu); text-decoration:underline; text-underline-offset:5px; }
.area-tabs { margin:6px 0 0; padding-left:20px; border-left:1px solid var(--rule); font-size:13px; }
.clear-filters { font-size:12px; color:var(--ai); margin-top:8px; }
.split-layout { display:grid; grid-template-columns:7fr 5fr; align-items:start; }
.list-column { min-width:0; padding-right:28px; }
.list-toolbar { min-height:70px; display:flex; align-items:center; justify-content:space-between; gap:12px; }
#statsSummary { font-size:13px; }
.sort-label select { border:0; color:var(--ink-2); font-size:12px; }
.event-row { display:flex; position:relative; gap:22px; border-top:1px solid var(--rule); padding:24px 0; min-width:0; }
.event-row:last-child { border-bottom:1px solid var(--rule); }
.image-frame { display:flex; align-items:center; justify-content:center; position:relative; overflow:hidden; background:var(--paper-2); color:var(--ink-3); font-size:12px; text-align:center; }
.image-frame img { width:100%; height:100%; object-fit:cover; }
.image-frame.has-image .image-placeholder { display:none; }
.image-placeholder { padding:12px; }
.event-poster { width:132px; aspect-ratio:3/4; flex-shrink:0; align-self:flex-start; }
.event-copy { min-width:0; flex:1; padding-right:30px; }
.kicker { font-size:13px; line-height:1.6; color:var(--ink-2); margin:0 0 8px; }
.kicker strong { color:var(--shu); font-weight:700; letter-spacing:.04em; }
.event-title { font:700 20px/1.35 var(--font-serif); display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.event-title a { color:var(--ink); }
.event-title a::after { content:""; position:absolute; inset:0; }
.event-row:hover .event-title a { text-decoration:underline; text-underline-offset:4px; }
.event-row:hover .event-poster img { filter:saturate(1.05); }
.event-date { font:13px/1.6 var(--font-mono); margin-top:12px; }
.badges { display:flex; gap:6px; flex-wrap:wrap; margin-top:9px; }
.badge { padding:1px 6px; border:1px solid currentColor; color:var(--ink-2); font-size:12px; }
.badge-live { color:var(--shu); }
.badge-free { color:var(--ok); }
.badge-booking { color:var(--warn); }
.event-places { font-size:12px; color:var(--ink-2); margin-top:10px; }
.save-button { position:absolute; right:0; top:18px; z-index:1; padding:8px; color:var(--ink-2); }
.empty-state { padding:60px 12px; border-block:1px solid var(--rule); color:var(--ink-2); line-height:2; }
.empty-state .text-button { color:var(--ai); }
.notice { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; border-bottom:1px solid var(--rule-strong); padding:20px 0; }
.notice-actions { display:flex; flex-wrap:wrap; align-items:center; gap:16px; }
.collection-bar { display:flex; justify-content:space-between; align-items:center; padding-top:24px; gap:12px; }
.section-heading { font:600 19px/1.5 var(--font-serif); }
.featured-section { padding:28px 0 20px; border-bottom:1px solid var(--rule-strong); }
.featured-grid { display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:16px; margin-top:18px; }
.featured-entry { position:relative; min-width:0; }
.featured-entry .image-frame { aspect-ratio:3/4; }
.featured-entry .kicker { font-size:12px; margin-top:10px; }
.featured-entry h3 { font:600 15px/1.5 var(--font-serif); display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.featured-entry a { color:var(--ink); }
.featured-entry a::after { content:""; position:absolute; inset:0; }
.featured-entry .event-date { font-size:12px; }
.map-column { border-left:1px solid var(--rule); align-self:stretch; min-width:0; }
.map-sticky { position:sticky; top:112px; padding:24px 0 0 24px; }
#japanMap { height:calc(100dvh - 170px); min-height:380px; background:var(--paper-2); font-family:var(--font-sans); }
.map-caption { color:var(--ink-3); font:12px/1.5 var(--font-mono); margin-top:8px; }
#japanMap .leaflet-tile-pane { filter:grayscale(1) sepia(.12) contrast(.92) brightness(1.04); }
:root[data-theme="dark"] #japanMap .leaflet-tile-pane { filter:invert(1) hue-rotate(180deg) grayscale(.6) brightness(.85); }
@media (prefers-color-scheme:dark) { :root:not([data-theme="light"]) #japanMap .leaflet-tile-pane { filter:invert(1) hue-rotate(180deg) grayscale(.6) brightness(.85); } }
.pin-icon { background:none; border:0; }
.leaflet-popup-content-wrapper, .leaflet-popup-tip { background:var(--surface); color:var(--ink); border-radius:var(--radius); box-shadow:none; }
.leaflet-popup-content { margin:16px; max-width:240px; }
.leaflet-popup-content p { margin:8px 0; }
.popup-title { font:700 15px/1.5 var(--font-serif); }
.popup-venue { font-size:12px; color:var(--ink-2); }
.leaflet-container a { color:var(--ai); }
.leaflet-container .leaflet-control-attribution { background:var(--surface); color:var(--ink-2); font-size:10px; }
.leaflet-control-zoom { box-shadow:none !important; border:1px solid var(--rule) !important; border-radius:var(--radius) !important; }
.leaflet-control-zoom a { background:var(--surface); color:var(--ink); border-color:var(--rule); border-radius:var(--radius) !important; }
.leaflet-control-zoom a:hover { background:var(--paper-2); color:var(--ink); }
.map-toggle { display:none; }
.footer { border-top:2px solid var(--rule-strong); padding:28px 0 40px; margin-top:48px; }
.footer-info { display:flex; gap:28px; flex-wrap:wrap; color:var(--ink-2); font-size:12px; }
.footer-info details { max-width:360px; }
.footer-info p { padding:12px 0; }
.theme-switch { display:flex; gap:18px; font-size:12px; margin-top:20px; }
.theme-switch .i { width:16px; height:16px; }
.colophon { font:12px var(--font-mono); color:var(--ink-3); margin-top:24px; letter-spacing:.1em; }
dialog { padding:0; border:0; background:var(--surface); color:var(--ink); width:min(720px,100vw); max-width:100vw; height:100dvh; max-height:none; margin:0 0 0 auto; }
dialog:modal { overscroll-behavior:contain; }
dialog::backdrop { background:var(--ink); opacity:.4; overflow:hidden; overscroll-behavior:contain; }
dialog[open] { animation:drawer-in .22s ease-out; }
@keyframes drawer-in { from { transform:translateX(100%); } to { transform:translateX(0); } }
.drawer-toolbar { display:flex; align-items:center; justify-content:space-between; position:sticky; top:0; z-index:5; padding:12px 20px; background:var(--surface); border-bottom:1px solid var(--rule); }
.drawer-actions { display:flex; gap:20px; }
.drawer-cover { aspect-ratio:3/4; max-height:60vh; width:100%; }
.drawer-cover img { object-fit:contain; }
.detail-content { padding:32px 32px 48px; overflow-wrap:anywhere; }
#dialogEventTitle { font:700 26px/1.5 var(--font-serif); }
.title-ja { color:var(--ink-3); font-size:13px; margin-top:12px; }
.detail-section { margin-top:36px; }
.detail-section h3 { font:600 20px/1.5 var(--font-serif); margin-bottom:16px; padding-bottom:10px; border-bottom:1px solid var(--rule-strong); }
.overview-table { display:grid; grid-template-columns:80px minmax(0,1fr); margin:0; border-top:1px solid var(--rule); font-size:13px; }
.overview-table dt, .overview-table dd { margin:0; padding:14px 10px; border-bottom:1px solid var(--rule); }
.overview-table dt { background:var(--paper-2); font-weight:500; }
.overview-table dd { line-height:1.9; }
.summary-list { list-style:none; padding:0; margin:0; counter-reset:point; }
.summary-list li { display:flex; gap:16px; padding:12px 0; counter-increment:point; font-size:14px; }
.summary-list li::before { content:counter(point, decimal-leading-zero); font:13px/1.9 var(--font-mono); color:var(--shu); }
.venue-row { display:flex; align-items:center; gap:16px; padding:16px 0; border-bottom:1px solid var(--rule); }
.venue-info { flex:1; min-width:0; }
.venue-area { font-size:12px; color:var(--ink-3); }
.venue-name { font-weight:500; text-align:left; justify-content:start; color:var(--ink); }
.venue-station { display:flex; align-items:baseline; gap:6px; color:var(--ink-2); font-size:12px; }
.venue-station .i { width:15px; height:15px; align-self:center; }
.venue-nav { flex-shrink:0; font-size:13px; }
.item-group { margin-top:24px; }
.item-group h4, .gallery-title { font-size:14px; font-weight:500; }
.items-list { list-style:none; padding:0; margin:8px 0 0; }
.item-row { display:flex; gap:12px; align-items:center; border-bottom:1px solid var(--rule); padding:14px 0; }
.item-info { min-width:0; }
.item-thumb { width:56px; height:56px; object-fit:contain; flex-shrink:0; }
.item-name { font-size:14px; font-weight:500; margin:0; }
.item-ja { font-size:12px; color:var(--ink-3); margin-top:4px; overflow-wrap:anywhere; }
.item-price { font:13px/1.7 var(--font-mono); margin-top:6px; }
.item-price small { color:var(--ink-2); font-size:12px; }
.gallery-title { margin:32px 0 12px; }
.gallery-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.gallery-button { display:block; width:100%; min-width:0; padding:0; background:var(--paper-2); border:1px solid var(--rule); color:var(--ink-2); text-align:left; }
.gallery-button img { display:block; width:100%; aspect-ratio:1; object-fit:contain; }
.gallery-button span { display:block; padding:8px; font-size:11px; overflow-wrap:anywhere; }
.gallery-dialog { width:min(1000px,calc(100% - 32px)); max-height:90dvh; padding:16px; background:var(--paper); color:var(--ink); border:1px solid var(--rule-strong); border-radius:var(--radius); }
.gallery-full { display:block; width:100%; height:auto; margin:16px 0; }
.gallery-dialog p { font-size:13px; margin-top:12px; }
.gallery-close { display:block; margin-left:auto; }
.partner-subtitle { font-size:14px; font-weight:500; margin:24px 0 8px; }
.partner-link { display:grid; grid-template-columns:80px minmax(0,1fr) auto; gap:12px; align-items:baseline; padding:14px 0; border-bottom:1px solid var(--rule); color:var(--ink); }
.partner-provider { font:12px/1.7 var(--font-mono); color:var(--ink-2); }
.partner-title { font-size:13px; }
.partner-price { display:block; font:12px/1.8 var(--font-mono); color:var(--ink-2); }
.disclosure, .detail-credit { font-size:12px; color:var(--ink-3); margin-top:20px; }
.detail-credit { padding-top:24px; border-top:1px solid var(--rule); margin-top:36px; }
.daigou-tool { margin-top:36px; padding-block:18px; border-block:1px solid var(--rule); }
.daigou-tool summary { font-size:14px; }
.rate-field { display:flex; gap:12px; align-items:center; margin:20px 0 12px; }
.rate-field input { width:100px; background:var(--paper-2); border:1px solid var(--rule); padding:6px; font-family:var(--font-mono); }
#daigouTextarea { width:100%; min-height:280px; resize:vertical; padding:14px; background:var(--paper-2); border:1px solid var(--rule); font:13px/1.8 var(--font-sans); margin-bottom:12px; }
.toast { position:fixed; bottom:24px; left:50%; transform:translateX(-50%); z-index:3000; padding:12px 20px; max-width:calc(100vw - 32px); background:var(--ink); color:var(--paper); font-size:13px; }
.skeleton-row { display:flex; gap:22px; border-top:1px solid var(--rule); padding:24px 0; }
.skeleton-poster { width:132px; aspect-ratio:3/4; background:var(--paper-2); flex-shrink:0; }
.skeleton-copy { flex:1; padding-top:12px; }
.skeleton-copy span { display:block; background:var(--paper-2); height:16px; margin-bottom:22px; }
.skeleton-copy span:nth-child(2) { width:85%; height:40px; }
.skeleton-copy span:last-child { width:50%; }
@media (min-width:1024px) and (max-width:1200px) {
  .tagline { font-size:12px; }
  .masthead-title { gap:16px; }
  .location-line { flex-wrap:wrap; }
  .segments { margin-left:0; }
  .event-row { gap:16px; }
  .event-copy { padding-right:25px; }
}
@media (max-width:1023px) {
  .masthead-inner { padding-top:18px; }
  .tagline { display:none; }
  .split-layout { display:block; }
  .list-column { padding-right:0; }
  .map-column { display:none; }
  .map-visible .map-column { display:block; position:fixed; z-index:450; top:104px; bottom:0; left:0; right:0; border:0; background:var(--paper); }
  .map-visible .map-sticky { position:static; padding:0; height:100%; }
  .map-visible #japanMap { height:100%; min-height:0; }
  .map-visible .map-caption { position:absolute; top:12px; left:50px; background:var(--surface); padding:6px 10px; max-width:calc(100% - 64px); }
  .map-toggle { display:flex; position:fixed; z-index:600; bottom:24px; left:50%; transform:translateX(-50%); align-items:center; gap:10px; background:var(--ink); color:var(--paper); padding:12px 24px; border:1px solid var(--paper); }
  .footer { padding-bottom:100px; }
  .toast { bottom:85px; }
}
@media (max-width:767px) {
  .masthead-inner { padding:16px 0 12px; }
  .masthead-title { gap:8px; }
  .brand { font-size:21px; letter-spacing:.09em; }
  .collection-toggle { font-size:12px; gap:4px; }
  .edition { font-size:12px; margin-top:10px; }
  .itinerary { padding:18px 12px 12px; }
  .trip-line { gap:6px; font-size:13px; }
  .trip-line input[type="date"] { width:126px; font-size:12px; }
  .search-field { width:100%; margin:8px 0 0; }
  #ipFilter { max-width:170px; }
  .location-line { display:block; margin-top:12px; }
  .tabs { gap:20px; }
  .segments { margin:14px 0 0; }
  .segments button { padding-inline:16px; }
  .segments button:first-child { padding-left:0; }
  .area-tabs { padding-left:12px; margin-top:16px; }
  .list-toolbar { min-height:64px; gap:6px; }
  #statsSummary { font-size:12px; }
  .sort-label select { width:116px; padding-right:16px; }
  .event-row { gap:14px; padding:20px 0; }
  .event-poster { width:96px; }
  .event-copy { padding-right:22px; }
  .event-title { font-size:18px; }
  .kicker { font-size:12px; margin-bottom:6px; }
  .event-date { font-size:12px; margin-top:8px; }
  .save-button { right:-6px; top:13px; padding:6px; }
  .badge { font-size:12px; padding-inline:4px; }
  .event-places { line-height:1.7; }
  .featured-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px 14px; }
  .featured-entry:first-child { grid-column:1/-1; }
  .featured-entry:first-child .image-frame { aspect-ratio:4/3; }
  .footer-info { gap:16px; flex-direction:column; }
  .map-visible .map-column { top:95px; }
  .drawer-toolbar { padding:10px 12px; }
  .drawer-actions { gap:16px; }
  .detail-content { padding:24px 20px 40px; }
  #dialogEventTitle { font-size:26px; }
  .gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  .overview-table { grid-template-columns:64px minmax(0,1fr); }
  .overview-table dt, .overview-table dd { padding:12px 8px; }
  .partner-link { grid-template-columns:62px minmax(0,1fr) auto; gap:10px; }
  .skeleton-poster { width:96px; }
}
@media (prefers-reduced-motion:reduce) {
  *, *::before, *::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; }
}

/* T7 geographic levels and shop labels */
.region-label { display:flex; align-items:center; gap:8px; width:max-content; padding:5px 9px; transform:translate(-50%,-50%); border:1px solid var(--ink); border-radius:var(--radius); background:var(--surface); color:var(--ink); font:500 13px/1.4 var(--font-sans); white-space:nowrap; }
.region-label b { color:var(--shu); font:500 13px var(--font-mono); }
.pin-highlight .region-label { outline:2px solid var(--shu); outline-offset:2px; }
.map-dot { display:block; width:12px; height:12px; border-radius:50%; background:var(--c,var(--shu)); border:2px solid var(--surface); box-shadow:0 0 0 1px var(--ink); }
.store-label { position:absolute; left:17px; top:50%; transform:translateY(-50%); width:max-content; padding:3px 5px; border-radius:var(--radius); background:var(--surface); background:color-mix(in srgb,var(--surface) 92%,transparent); color:var(--ink); font:500 12px/1.4 var(--font-sans); white-space:nowrap; pointer-events:none; }
.label-hidden .store-label { visibility:hidden; }
.store-icon:focus .store-label, .store-icon:hover .store-label, .pin-active .store-label, .pin-highlight .store-label { visibility:visible; }
.pin-highlight .map-dot { transform:scale(1.5); }
.store-icon:focus, .pin-active, .pin-highlight { z-index:1000 !important; }
.unknown-locations { max-width:230px; padding:9px 12px; border:1px solid var(--rule-strong); border-radius:var(--radius); background:var(--surface); color:var(--ink-3); font:12px/1.6 var(--font-sans); }
.unknown-locations span, .unknown-locations button { display:block; }
.unknown-locations button { color:var(--ink); text-decoration:underline; font:inherit; margin-top:3px; }
.popup-store-name { margin:0 0 4px; font:500 15px/1.5 var(--font-serif); }
.popup-address, .venue-precision { color:var(--ink-3); font:12px/1.6 var(--font-sans); }
.popup-events { margin-top:10px; max-height:280px; overflow:auto; overscroll-behavior:contain; }
.popup-event { display:grid; grid-template-columns:40px minmax(0,1fr); gap:10px; padding:10px 0; border-top:1px solid var(--rule); color:var(--ink) !important; text-decoration:none; }
.popup-event > div { min-width:0; }
.popup-poster { width:40px; height:56px; }
.popup-event .kicker { margin:0; font-size:10px; }
.popup-event .popup-title { margin:2px 0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; font:500 12px/1.5 var(--font-sans); }
.popup-event .event-date { font-size:10px; margin:3px 0; }
.popup-event .badge { font-size:10px; }
@media(max-width:1023px) { .unknown-locations { margin-bottom:84px !important; max-width:210px; } }

/* Building identities share one square marker; shops remain round. */
.building-icon .map-dot { border-radius:0; }
.popup-shop { border-top:1px solid var(--rule); margin-top:12px; padding-top:10px; }
.popup-shop h4 { margin:0 0 8px; font-size:13px; }

.about-page { max-width: 820px; padding-block: 48px; }
.about-page h1, .about-page h2 { font-family: var(--font-serif); }
.about-page h1 { margin-bottom: 24px; }
.about-page section { padding-block: 28px; border-top: 1px solid var(--rule); scroll-margin-top: 24px; }
.about-page h2 { margin-bottom: 16px; font-size: 1.25rem; }
.about-page p { margin-block: 12px; line-height: 1.9; overflow-wrap: anywhere; }
.about-nav { display: flex; flex-wrap: wrap; gap: 12px 24px; margin-bottom: 32px; color: var(--ink-2); }
.ended-notice { margin: 16px; }
