/* T126 stage 2 generator-side rules (not a design file). The open-now neighbourhood circles are placed by classes, not by style attributes (no inline style anywhere: CSP style-src 'self').
   Coordinates = design unique/spec.md 「동 배치」 (left / top in percent of the 10:8 diagram). */
.on-p-jamwon{--x:12%;top:20%}
.on-p-sinsa{--x:33%;top:18%}
.on-p-cheongdam{--x:72%;top:18%}
.on-p-nonhyeon{--x:36%;top:48%}
.on-p-samseong{--x:80%;top:50%}
.on-p-yeoksam{--x:52%;top:78%}
.on-p-daechi{--x:85%;top:84%}
.on-hw-42{--hw:42px}.on-hw-43{--hw:43px}.on-hw-44{--hw:44px}.on-hw-45{--hw:45px}.on-hw-46{--hw:46px}.on-hw-47{--hw:47px}.on-hw-48{--hw:48px}.on-hw-49{--hw:49px}.on-hw-50{--hw:50px}
.on-hw-51{--hw:51px}.on-hw-52{--hw:52px}.on-hw-53{--hw:53px}.on-hw-54{--hw:54px}.on-hw-55{--hw:55px}.on-hw-56{--hw:56px}.on-hw-57{--hw:57px}.on-hw-58{--hw:58px}.on-hw-59{--hw:59px}.on-hw-60{--hw:60px}
.on-hw-61{--hw:61px}.on-hw-62{--hw:62px}.on-hw-63{--hw:63px}.on-hw-64{--hw:64px}.on-hw-65{--hw:65px}.on-hw-66{--hw:66px}.on-hw-67{--hw:67px}.on-hw-68{--hw:68px}.on-hw-69{--hw:69px}.on-hw-70{--hw:70px}
.on-hw-71{--hw:71px}.on-hw-72{--hw:72px}.on-hw-73{--hw:73px}.on-hw-74{--hw:74px}.on-hw-75{--hw:75px}.on-hw-76{--hw:76px}.on-hw-77{--hw:77px}.on-hw-78{--hw:78px}.on-hw-79{--hw:79px}.on-hw-80{--hw:80px}

/* mail 773 (design common/route spec 4): map buttons 48px high, text wraps, 2 columns up to 599px; Apple Maps only on iOS / iPadOS WebKit (no JS) */
.map-cta--pair .map-btn{min-height:48px;min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere;text-align:center}
.map-apple{display:none !important}
@supports (-webkit-touch-callout:none){.map-apple{display:inline-flex !important}}
@media (max-width:599px){
  .map-cta--pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding-left:var(--s3);padding-right:var(--s3)}
  .map-cta--pair .map-btn{width:100%}
  @supports (-webkit-touch-callout:none){.map-apple{grid-column:1/-1}}
}
/* pv dialog: long link words wrap instead of widening the body (320px) */
.pv-dlg-body dd,.pv-dlg-body a{min-width:0;overflow-wrap:anywhere}

/* mail 768: the single 「view on a map」 link of home and category pages (44px button, wraps freely) */
.map-seeall{margin:var(--s4) 0 0}
.map-seeall .btn{min-height:44px;max-width:100%;white-space:normal;text-align:left}
.map-seeall .btn svg{width:18px;height:18px;flex:none}

/* 6f: real maps in the first html. .mapbox--live = the iframe box (home My Maps, store Google embed): fixed height (CLS 0), the iframe fills it, no border, same round token as .mapbox (--r-md). */
.mapbox.mapbox--live{display:block;aspect-ratio:auto;height:300px;background:var(--surface)}
.mapbox--live iframe{position:static;display:block;width:100%;height:100%;border:0;border-radius:var(--r-md)}
@media (min-width:1024px){.mapbox.mapbox--live{height:420px}}
.mapbox--store-live{margin-top:var(--s4)}
.map-block{margin-top:var(--s4)}
.map-block>.mapbox--store-live{margin-top:0}
/* 6f: the four map-app buttons as a grid under the map: 56px high, columns = --n (3 where Apple Maps is hidden, 4 on iOS: 2 x 2 on a phone); never two columns with an odd number of buttons */
.map-grid{--n:3;display:grid;grid-template-columns:repeat(var(--n,3),minmax(0,1fr));gap:8px;margin-top:var(--s3)}
.map-grid .map-btn{min-height:56px;height:56px;width:100%;min-width:0;max-width:100%;padding-inline:8px;justify-content:center;text-align:center;white-space:normal;overflow-wrap:anywhere;font-size:clamp(13px,3.6vw,15px);line-height:1.2}
@supports (-webkit-touch-callout:none){.map-grid{--n:4}}
@media (max-width:599px){@supports (-webkit-touch-callout:none){.map-grid{--n:2}.map-grid .map-apple{grid-column:auto}}}

/* 8053: the word next to the home flag. Real text in a token colour on the purple hero (white, contrast far above 4.5), no gradient clip, no clipping of the line. */
.hero-flag .flag-text{display:inline-block;vertical-align:middle;margin-left:6px;color:#fff;-webkit-text-fill-color:#fff;background:none;-webkit-background-clip:border-box;background-clip:border-box;font-size:clamp(18px,5vw,24px);line-height:1.5;font-weight:600;white-space:nowrap;overflow:visible;opacity:1}
.hero-flag{overflow:visible;min-height:1.5em}

/* ---- mail 763 (design clip check) ----
   (1) origin timeline year never breaks (「202 / 2」): 4 characters, no wrap; on narrow cards the archive stamp shrinks and the reserved right padding with it */
.tl-y{white-space:nowrap}
@media (max-width:479px){
  .tl-stamp{width:60px;height:60px;right:10px;top:14px}
  .tl-item--key .tl-when{min-height:60px;padding-right:68px}
  .tl-item--key .tl-y{font-size:38px}
}
/* narrow screens (291 = 320 at 110% text): the timeline items may shrink; the evidence badge may wrap */
.tl>li,.tl-card,.tl-when{min-width:0}
@media (max-width:359px){.tl-badge{white-space:normal;max-width:100%}.tl-item--key .tl-y{font-size:34px}}
/* (5) the 「same as footer hash」 link: the arrow flows with the text and may wrap with it */
.tl-check--anchor{max-width:100%;overflow-wrap:anywhere}
.tl-check--anchor .tl-arr{display:inline}
/* (3) en: no automatic hyphenation in the category hero (「20 list-ed」); stat labels keep whole words */
.hero-card,.hero-card *{-webkit-hyphens:manual;hyphens:manual}
.stat span{overflow-wrap:normal;word-break:normal}
/* (4) taxi button never wider than its box */
.addr-actions{max-width:100%;flex-wrap:wrap}
.addr-actions .tx-btn{max-width:100%;min-width:0;white-space:normal;text-align:left}
/* (6b) ja / zh h1: a full-width opening bracket at a line start takes no blank half em */
h1:lang(ja),h1:lang(zh-Hans),:lang(ja) h1,:lang(zh-Hans) h1{text-spacing-trim:trim-start;font-feature-settings:"palt"}
/* (2b) narrow screens: the diagram gets a taller box and the circles move apart, so that no two 72px circles touch at 288..414px (checked 291..414) */
@media (max-width:479px){
  .on-map{aspect-ratio:10/11}
  .on-p-jamwon{--x:16%;top:20%}
  .on-p-sinsa{--x:46%;top:18%}
  .on-p-cheongdam{--x:80%;top:18%}
  .on-p-nonhyeon{--x:30%;top:48%}
  .on-p-samseong{--x:74%;top:50%}
  .on-p-yeoksam{--x:50%;top:78%}
  .on-p-daechi{--x:82%;top:86%}
}
/* (2c) circle labels stay INSIDE their circle: Latin labels wrap after the hyphen at 10px, centred (G13 at +8% glyph width) */
html:not(:lang(ko)) .on-dn{font-size:8.5px;letter-spacing:-.01em;line-height:1.15;white-space:normal;max-width:58px;text-align:center;overflow-wrap:normal}
@media (min-width:1024px){html:not(:lang(ko)) .on-dn{font-size:11px;max-width:76px}}
/* (2d) home top-store rows: at least 8px between the neighbourhood and the staff count (G13 at +8% glyph width) */
.toplinks .top-staff{margin-left:calc(var(--s2) - var(--s3))}
/* when name + neighbourhood + count do not fit one line, the count moves to the next line instead of the neighbourhood being cut under it (text boxes never overlap) */
.toplinks a.tl-row{flex-wrap:wrap}
.toplinks .dn:has(+ .top-staff){flex:none;overflow:visible;text-overflow:clip}
/* (2) open-now diagram: every circle keeps its whole label inside the card. left = clamp(--hw, --x, 100% - --hw); --hw = max(42px, half of the label width) comes from the class on-hw-N (lib/opennow.mjs, computed from the label text) */
.on-dong{left:clamp(var(--hw,42px),var(--x,50%),calc(100% - var(--hw,42px)))}

/* CLS 0 on desktop: the list is filled by the page script after the first paint. From 1024 (map and list side by side, inside the first screen) the list box has a FIXED height (= the diagram height, rows scroll inside),
   the bar keeps its height and the 「more」 button keeps its place while hidden, so filling the list moves nothing below it. Below 1024 the section is under the first screen (measured CLS 0). */
.on-bar{min-height:44px}
@media (min-width:1024px){
  .on-list{height:416px;overflow-y:auto;align-content:start}
  .on-more[hidden]{display:inline-flex;visibility:hidden}
}

.hrs-note{margin:0 0 var(--s2);font-size:13px;font-weight:600;color:var(--ink-2)}
/* today's hours row: emphasis by weight and colour only (no 「오늘」 word) */
.hrs-row.is-today .hrs-days{font-weight:800;color:var(--ink)}

/* origin timeline: folded earlier records (details/summary, no JS) and the 「proof pending」 text */
.tl-fold{list-style:none;position:relative}
.tl-prev>summary{display:flex;align-items:center;min-height:44px;padding:0 var(--s4);cursor:pointer;font-weight:700;color:var(--cat-fg)}
.tl-prev-list{margin:0;padding:0;list-style:none;display:grid;gap:var(--s4)}
.tl-pending{display:inline-flex;align-items:center;min-height:44px;font-size:14px;font-weight:600;color:var(--ink-2)}

/* CLS 0: the state chip (hero / summary / hours block) is judged by yj-add.js after the first paint. Until then it keeps its place, invisible (its text is the longer 「within business hours」 wording), instead of
   appearing later and pushing the hero card down. Without JS (html:not(.js)) it stays out of the layout as before. */
.hrs-state[hidden]{display:block;visibility:hidden}
html:not(.js) .hrs-state[hidden]{display:none}

/* sticky header: the 10px band above the pill (.nav-wrap padding-top) is transparent, so while scrolling the lower half of a label that passes under it showed through (user 21:36, live 1440 dark: 「수록 매장」「업종」).
   Once the page is scrolled (.is-scrolled, set by yj-add.js) that band is painted with the page background; at the very top it stays transparent (the hero art runs under the header there). */
.nav-wrap.is-scrolled{background:none}
.nav-wrap.is-scrolled::after{opacity:0} /* google-deploy 861 (user capture): no full-width band and no fade shadow under the header while scrolled; only the pill itself floats: */
.nav-wrap.is-scrolled>.nav{background:color-mix(in srgb,var(--surface) 94%,transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)} /* google-deploy 845: the page background up to the bottom of the floating header (the band above AND at both sides of the pill) while scrolled; the existing ::after fade softens its lower edge */

/* hero stats: the middle cell (live 「open now」 number) has the same form as its neighbours (big number + label below). Until the script has judged the clock it keeps its place, invisible (no layout shift); without JS it is out of the layout. */
.stat--now[hidden]{display:block;visibility:hidden}
html:not(.js) .stat--now[hidden]{display:none}

/* design 874 (2): the English circle label 「Cheongdam-dong」 at 110% text stays inside its circle: one step smaller than the other languages (8.5 -> 8px, 11 -> 10.5px on wide screens) */
html:lang(en) .on-dn{font-size:8px}
@media (min-width:1024px){html:lang(en) .on-dn{font-size:10.5px}}

/* design 828 (3): a hero stat cell may shrink below its content (the 3-column grid must not be pushed wider by an English label); 359px and below the English label is 12px */
.stat{min-width:0}
@media (max-width:359px){:lang(en) .stat span{font-size:12px}}

/* design 828 (4) ja map buttons: a button label is never split over two lines (カカオ|マップ, NAVERマッ|プ): keep-all + nowrap, the size follows the width; at 389px and below the buttons stack one per row */
:lang(ja) .map-cta--pair .map-btn{overflow-wrap:normal;word-break:keep-all;white-space:nowrap;font-size:clamp(13px,3.8vw,15px);padding-inline:10px}
/* 6e: the home map-app buttons sit UNDER the drawing (.map-links), so the box no longer has to grow around stacked buttons (design 874 (1) rule removed): only the load button is on the drawing, at its bottom edge. */
:lang(ja) .map-cta--pair .map-mymap{grid-column:1/-1} /* the long My Maps label takes a whole row in the 2-column layout (390px: 179px of text in a 163px cell) */
@media (max-width:389px){:lang(ja) .map-cta--pair{grid-template-columns:1fr}:lang(ja) .map-cta--pair .map-load{grid-column:auto}}

/* design 828 (5) ja map title: the second half stays whole */
.nb{white-space:nowrap}

/* design 828 (6) timeline badge never wider than its box */
.tl-badge{max-width:100%}

/* 6fc store detail layout: 1024+ = body column + a 360px sticky right column holding only 「한눈에 보기」 (max 1120px, 32px gap); below 1024 one column (the summary first, as before).
   An ended page has no summary: it keeps the single 880px column (.store-layout--solo). */
@media (min-width:1024px){
  .store-layout:not(.store-layout--solo){grid-template-columns:minmax(0,1fr) 360px;max-width:1120px;column-gap:var(--s8)}
  .store-layout:not(.store-layout--solo)>.store-main{grid-column:1;grid-row:1}
  .store-layout:not(.store-layout--solo)>.store-side{grid-column:2;grid-row:1;position:sticky;top:96px;align-self:start}
  .store-side .sum-grid{grid-template-columns:minmax(0,1fr)}
  .store-side .sum-grid>div{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s3)}
  .store-side .sum-grid dd{margin-top:0;text-align:right}
  .store-side .sum-grid dd a{justify-content:flex-end}
  .crumbs--store.crumbs--wide{max-width:1120px}
}

/* 6fc staff cards: one card = one staff member. Head (40px initial avatar, name 16px bold, chip only when there is one), a divider, then the contact line (padding-top 16px) with the channel buttons (icon 20px above, label 12px below, 52px high,
   gap 8px, only the channels that have a value) and one two-line homepage button per link. Card padding 16px top and bottom. One gap token (--staff-gap) between cards, before and after the fold. */
.staff-box{--staff-gap:var(--s3);display:grid;gap:var(--staff-gap);background:none;box-shadow:none;border-radius:0;padding:0}
.staff-sum{padding:0;margin:0 0 var(--s3);font-size:15px;font-weight:700;color:var(--ink-2)}
.staff-list{display:grid;grid-template-columns:minmax(0,1fr);align-items:start;gap:var(--staff-gap);list-style:none;margin:0;padding:0}
@media (min-width:1024px){.staff-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
.staff-row{display:flex;flex-direction:column;align-items:stretch;gap:0;min-height:0;min-width:0;padding:var(--s4);border-top:0;border-radius:var(--r-md);background:var(--surface);box-shadow:var(--shadow-1)}
.staff-head{display:flex;align-items:center;gap:var(--s3);min-width:0}
.staff-av{flex:none;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:color-mix(in srgb,var(--brand-purple) 14%,var(--surface));color:var(--cat-fg);font-size:16px;font-weight:700;line-height:1}
.staff-row-name{flex:0 1 auto;min-width:0;font-size:16px;line-height:1.3;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.staff-badge{flex:none;display:inline-flex;align-items:center;height:22px;padding:0 var(--s2);border-radius:11px;background:color-mix(in srgb,var(--brand-purple) 14%,var(--surface));font-size:12px;font-weight:600;line-height:1;color:var(--cat-fg);white-space:nowrap}
.staff-actions{display:grid;gap:var(--s2);margin-top:var(--s4);padding-top:var(--s4);border-top:1px solid var(--line)}
.staff-row-act{display:grid;gap:var(--s2);flex:none}
.staff-private{margin:0;font-size:13px;line-height:1.4;font-weight:600;color:var(--ink-2)}
.staff-row-act--1{grid-template-columns:repeat(1,minmax(0,1fr))}
.staff-row-act--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.staff-row-act--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.staff-ic-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:0;width:auto;height:52px;padding:0 var(--s1);border-radius:var(--r-sm);background:var(--seg-track);color:var(--ink);text-decoration:none}
.staff-ic-btn .staff-ic{width:20px;height:20px;flex:none}
.staff-ic-btn--telegram .staff-ic{color:var(--brand-purple)}
.staff-ic-l{max-width:100%;font-size:12px;line-height:1.2;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.staff-row-hp{display:grid;gap:var(--s2)}
.staff-hp-link{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:0;min-height:52px;padding:var(--s2) var(--s3);border-radius:var(--r-sm);background:var(--seg-track);color:var(--ink);text-decoration:none}
.staff-hp-l{font-size:13px;line-height:1.2;font-weight:700}
.staff-hp-u{max-width:100%;font-size:12px;line-height:1.2;font-weight:500;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.staff-ic-btn:hover,.staff-hp-link:hover{background:var(--seg-on)}
.staff-ic-btn:focus-visible,.staff-hp-link:focus-visible,.staff-more summary:focus-visible{outline:3px solid var(--brand-purple);outline-offset:2px}
html[data-theme="dark"] .staff-hp-link{color:var(--ink)}
.staff-more{display:grid;gap:var(--staff-gap)}
.staff-more summary{display:flex;align-items:center;justify-content:center;gap:var(--s2);min-height:48px;border:0;border-radius:var(--r-md);background:var(--surface);box-shadow:var(--shadow-1);font-size:15px;font-weight:700;color:var(--cat-fg);cursor:pointer;list-style:none}
.staff-more summary::after{content:"";width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .2s}
.staff-more[open] summary::after{transform:translateY(2px) rotate(-135deg)}
.staff-more .sm-close,.staff-more[open] .sm-open{display:none}
.staff-more[open] .sm-close{display:inline}
.staff-more[open]{display:grid}
/* 6fd: a summary card without the top badge row starts with its list directly (no empty margin + rule above the first row) */
.sum--notop .sum-grid{margin-top:0;border-top:0}
.sum--notop .sum-grid>div:first-child{padding-top:0}
.staff-more[open] summary{order:0}
.staff-more[open] .staff-list{order:1}

/* closed cards: one small grey line under the name (reason · confirmed date) */
.card-closed-info{display:block;margin-top:2px;font-size:13px;line-height:1.4;color:var(--ink-2);overflow-wrap:anywhere}

/* category cards: the 「within business hours」 badge (assets/now-count.js). While the clock is outside the hours (or before the script runs) it keeps its place invisible, so showing it never moves the card (CLS 0); no JS = out of the layout. */
.card-now{min-height:24px;font-size:12px;white-space:normal}
.card-now[hidden]{display:inline-flex;visibility:hidden}
html:not(.js) .card-now{display:none}

/* open-now section: one basis line under the footnote (N = stores with confirmed hours = the population of the map, the list and the counters) */
.on-basis{margin:var(--s2) 0 0;font-size:13px;line-height:1.5;color:var(--ink-2);overflow-wrap:anywhere}

/* home map: the user's Google My Maps (click to load, assets/mymap.js). The load button spans the whole row; after the embed has loaded the link row sits under the box. */
.map-cta--pair .map-load{grid-column:1/-1;flex:1 1 100%;min-height:48px}
.map-load[hidden]{display:none}
.map-cta--pair.map-cta--below{position:static;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--s2);padding:var(--s3) 0 0}
.map-cta--below .map-btn{width:100%}
/* 6e home map (390px): the link row is under the drawing; the long My Maps label takes its own row on narrow screens so it stays on one line */
@media (max-width:599px){.map-links .map-mymap{grid-column:1/-1}}

/* 6e 「한눈에 보기」 of a store with few values (category + neighbourhood, + room count from the facts): list form with a minimum height instead of two small cells in a wide empty card */
.sum--thin{min-height:150px}
.sum--thin .sum-grid{grid-template-columns:minmax(0,1fr)}
.sum--thin .sum-grid>div{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s3)}
.sum--thin .sum-grid dd{margin-top:0;text-align:right}
.sum--thin .sum-grid dd a{justify-content:flex-end}

/* 6fe sticky header: body text showed through the floating bar (logo / search / language / theme). The bar is now (almost) opaque with a strong blur, a hairline ring and a shadow, at the top of the page and while scrolled. */
html .nav-wrap>.nav.glass--light,html:not(.opaque) .nav-wrap>.nav.glass--light,html .nav-wrap.is-scrolled>.nav.glass--light{background:color-mix(in srgb,var(--surface) 98%,transparent);-webkit-backdrop-filter:blur(20px) saturate(1.15);backdrop-filter:blur(20px) saturate(1.15);box-shadow:0 0 0 1px color-mix(in srgb,var(--ink) 10%,transparent),0 8px 24px -8px rgba(21,17,31,.38)}

/* 6fe fact-source card rows + price tables (values only; mood / interior / menu are short chips) */
.closed-next-l--sub{margin:4px 0 0;padding-left:20px}
.bs-chips{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none}
.bs-chips li{display:inline-flex;align-items:center;padding:3px 10px;border-radius:var(--r-pill,999px);background:var(--cat-bg,var(--seg-track));color:var(--cat-fg,var(--ink));font-size:13px;font-weight:600;line-height:1.5}
.bs-chips.bs-menu li{font-weight:500}
.bs-mp{font-variant-numeric:tabular-nums;color:var(--ink-3);margin-left:4px}
.bs-former-link{font-weight:700}
.bs-row dd{overflow-wrap:anywhere}
.bs-src{margin-top:var(--s1)}
.bs-prices .prices th{font-size:14px;font-weight:700;color:var(--ink-2);width:46%}
.bs-prices .prices td{font-size:17px;font-weight:800;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.bs-ph{margin:0;padding:var(--s4) var(--s5) var(--s1);font-size:15px;font-weight:800;color:var(--ink)}
.bs-ph:not(:first-child){margin-top:var(--s2);border-top:1px solid var(--line,rgba(127,127,127,.25))}
.bs-pn{margin:var(--s2) 0 0;padding:0 var(--s5);list-style:none;display:grid;gap:4px;font-size:13px;line-height:1.55;color:var(--ink-3)}
.bs-pn:last-child{padding-bottom:var(--s4)}
.bs-prices .prices th{overflow-wrap:anywhere}

/* ---- 6fj11a: appended to assets/stage2.css while building (pin-hooks-6fj11a.mjs). = stage2-append-6fj7.css (rules 1-3, 6) + (A) address rows ---- */
/* 1) 「한눈에 보기」 card: the last row has no rule under it and the card ends with a 16px padding only */
.store-side .sum-grid>div:last-child{border-bottom:0;padding-bottom:0}
.store-side .sum{padding-bottom:16px}
/* 2) route buttons under the map: same face token as the staff contact buttons (.staff-ic-btn: background var(--seg-track), colour var(--ink), height 52), no shadow */
.map-grid .map-btn{background:var(--seg-track);color:var(--ink);box-shadow:none;min-height:52px;height:52px}
.map-grid .map-btn:hover{background:var(--seg-on);color:var(--ink)}
/* 3) former-name link inside the intro (bs-former-link): tap target >= 44px without changing the text size or the line box (same technique as .sum-grid dd a in fixes.css) */
.bs-former-link{display:inline-flex;align-items:center;min-height:44px;min-width:44px;margin-block:-13px}
/* 6) map embed fallback layer (design spec): sits under the iframe inside .mapbox (background = the existing .mapbox token); the iframe is above it (z-index 1, transparent). No JS; visible with noscript too. */
.mapbox--store-live iframe{position:relative;z-index:1;background:transparent}
.mapbox--store-live .map-fb{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:0 16px;color:var(--ink-2)}
.mapbox--store-live .map-fb svg{width:24px;height:24px;flex:none;color:var(--ink-2)}
.mapbox--store-live .map-fb-addr{margin:8px 0 0;font-size:14px;line-height:1.4;overflow-wrap:anywhere;color:var(--ink-2)}
.mapbox--store-live .map-fb-note{margin:4px 0 0;font-size:12px;line-height:1.4;color:var(--ink-2)}
/* A) address rows of the info card (design 1152): the value must wrap under the VALUE start, not under the label. The label stays an inline-block of fixed width, the line gets a hanging indent of label width + gap.
   Scoped to .info address .addr-line / .addr-k only (the hours block, the lot row without a label and every other info row are untouched). Width per language: the longest label (ko 도로명 3 chars, ja 道路名 3, zh 道路名地址 5, en "Lot address"). */
.info address{--addr-kw:3.2em}
:lang(zh) .info address{--addr-kw:5.2em}
:lang(en) .info address{--addr-kw:5.8em}
.info address .addr-line{padding-left:calc(var(--addr-kw) + var(--s2));text-indent:calc(-1 * (var(--addr-kw) + var(--s2)))}
.info address .addr-k{min-width:0;width:var(--addr-kw);text-indent:0}
