/*
Theme Name: WALKTRAVEL 2026
Description: 걸어서 기록한 미국 장소 — 가벼운 자체 테마 (MyListing 대체). 지도는 OpenStreetMap/Leaflet.
Version: 1.0.0
Requires PHP: 8.1
Text Domain: walktravel
*/

/* 레이아웃: 지도가 첫 화면의 주인공인 장소 기록 — 흑백(mono) / 따뜻한(warm) 두 톤, body[data-tone] */
:root {
  --bg:#ffffff; --fg:#121212; --muted:#6c6c72; --line:#e5e5e8; --soft:#f3f3f4; --accent:#121212; --accent-fg:#ffffff;
  --state:#121212; --state-op:.14; --dot:#121212; --gray:1; --map-filter:grayscale(1) contrast(1.05) brightness(1.03);
  --display:"Bricolage Grotesque","Apple SD Gothic Neo","Malgun Gothic","Noto Sans KR",system-ui,sans-serif;
  --sans:-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Malgun Gothic","맑은 고딕","Noto Sans KR",system-ui,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;
  --wrap:1200px;
}
body[data-tone="warm"] { --fg:#1d1813; --muted:#776c63; --line:#ece6df; --soft:#f7f2ec; --accent:#d9472b; --accent-fg:#ffffff; --state:#d9472b; --state-op:.16; --dot:#d9472b; --gray:0; --map-filter:saturate(.75) brightness(1.02); }

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin:0; background:var(--bg); color:var(--fg); font-family:var(--sans); font-size:15.5px; line-height:1.7; word-break:keep-all; overflow-wrap:break-word; }
img { max-width:100%; height:auto; filter:grayscale(var(--gray)); transition:filter .35s ease; }
a:hover img, button:hover img, .hov:hover img, img:hover { filter:none; }
a { color:inherit; }
:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
.wrap { max-width:var(--wrap); margin:0 auto; padding-left:max(16px, env(safe-area-inset-left, 0px)); padding-right:max(16px, env(safe-area-inset-right, 0px)); }
.sr { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.skip { position:absolute; left:-9999px; } .skip:focus { left:16px; top:16px; z-index:100; background:var(--fg); color:var(--bg); padding:8px 12px; }

/* 헤더 */
.site-head .wrap { display:flex; align-items:center; justify-content:space-between; gap:16px; padding-block:20px; border-bottom:1px solid var(--line); }
.logo { font-family:var(--display); font-weight:700; font-size:24px; letter-spacing:-.4px; text-decoration:none; white-space:nowrap; }
.logo i { font-style:normal; color:var(--accent); }
.nav { display:flex; gap:20px; font-size:14.5px; flex-wrap:wrap; align-items:center; }
.nav a { text-decoration:none; color:var(--muted); }
.nav a:hover, .nav a[aria-current="page"] { color:var(--fg); }
.nav form { display:flex; }
.nav input[type=search] { font:inherit; font-size:13.5px; width:150px; padding:5px 9px; border:1px solid var(--line); background:var(--bg); color:var(--fg); }

/* 공통 섹션 */
.sec { padding-block:36px; }
.sh { display:flex; justify-content:space-between; align-items:baseline; gap:12px; border-bottom:2px solid var(--fg); padding-bottom:10px; margin-bottom:18px; }
.sh h2 { margin:0; font-family:var(--display); font-weight:500; font-size:22px; letter-spacing:-.3px; }
.sh a { color:var(--muted); font-size:13.5px; text-decoration:none; }
.sh a:hover { color:var(--fg); }
.tag { display:inline-block; border:1px solid currentColor; padding:0 6px; font-size:11.5px; letter-spacing:.3px; line-height:1.6; }
time, .mono { font-family:var(--mono); font-variant-numeric:tabular-nums; }

/* 홈 */
.hero { display:grid; grid-template-columns:minmax(0, 340px) minmax(0, 1fr); gap:32px; align-items:center; padding-block:36px 18px; }
.hero h1 { font-family:var(--display); font-weight:700; font-size:clamp(34px, 5vw, 56px); line-height:1.06; letter-spacing:-1.2px; margin:0 0 14px; text-wrap:balance; }
.hero h1 em { font-style:normal; color:var(--accent); }
.hero p { color:var(--muted); margin:0 0 22px; max-width:34ch; }
.stats { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:14px 20px; }
.stats div { border-top:1px solid var(--fg); padding-top:6px; }
.stats b { font-family:var(--display); font-size:30px; font-weight:500; letter-spacing:-.6px; display:block; line-height:1.1; font-variant-numeric:tabular-nums; }
.stats span { font-size:12.5px; color:var(--muted); }
.wtmap { width:100%; aspect-ratio:16/10; background:var(--soft); position:relative; z-index:0; }
.wtmap.mini { aspect-ratio:4/3; }
.wtmap .leaflet-tile-pane { filter:var(--map-filter); }
.wtmap path.wt-state { fill:var(--state); fill-opacity:var(--state-op); stroke:var(--state); stroke-opacity:.35; stroke-width:.8; }
.wtmap path.wt-dot { fill:var(--dot); fill-opacity:.8; stroke:#fff; stroke-width:1; }
.wtmap path.wt-dot.is-here { fill-opacity:1; }
.wt-pop { font-family:var(--sans); font-size:13px; line-height:1.5; }
.wt-pop img { width:100%; aspect-ratio:4/3; object-fit:cover; display:block; margin-bottom:6px; filter:none; }
.wt-pop b { display:block; font-size:14px; }
.wt-pop small { color:#666; }
.maplegend { display:flex; gap:16px; font-size:12px; color:var(--muted); margin-top:6px; flex-wrap:wrap; }
.maplegend i { display:inline-block; width:10px; height:10px; vertical-align:-1px; margin-right:5px; }

.tgrid { display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); grid-auto-flow:dense; gap:16px; }
.tc { display:flex; flex-direction:column; border:1px solid var(--line); text-decoration:none; min-width:0; background:var(--bg); }
.tc:hover { border-color:var(--fg); }
.tc.big { grid-column:span 2; grid-row:span 2; }
.ph { display:grid; gap:2px; }
.ph.n4 { grid-template-columns:1fr 1fr; }
.ph img { width:100%; aspect-ratio:4/3; object-fit:cover; display:block; }
.ph.n4 img { aspect-ratio:1; }
.cap { padding:12px 14px 14px; display:flex; flex-direction:column; gap:4px; }
.cap time { font-size:12px; color:var(--muted); }
.cap h3 { margin:0; font-size:16px; font-weight:500; line-height:1.4; }
.tc.big .cap h3 { font-size:22px; font-family:var(--display); letter-spacing:-.3px; }
.cap p { margin:0; font-size:13px; color:var(--muted); display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.cgrid { display:grid; grid-template-columns:repeat(6, minmax(0,1fr)); gap:12px; }
.ct { text-decoration:none; border:1px solid var(--line); padding:14px; display:flex; flex-direction:column; gap:2px; min-width:0; }
.ct:hover { border-color:var(--fg); }
.ct b { font-family:var(--display); font-size:28px; font-weight:500; letter-spacing:-.5px; color:var(--accent); line-height:1.1; }
.ct span { font-weight:500; }
.ct small { color:var(--muted); font-size:12px; }
.two { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); gap:40px; }
.regions { list-style:none; margin:0; padding:0; columns:2; column-gap:28px; }
.regions li { break-inside:avoid; }
.regions a { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:0 10px; text-decoration:none; border-bottom:1px solid var(--line); padding:9px 0; }
.regions a:hover b { text-decoration:underline; text-underline-offset:3px; }
.regions b { font-weight:500; }
.regions span { grid-column:1; color:var(--muted); font-size:12.5px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.regions em { grid-column:2; grid-row:1 / span 2; align-self:center; font-style:normal; font-family:var(--mono); font-size:12.5px; color:var(--muted); }
.posts { list-style:none; margin:0; padding:0; }
.posts li { border-bottom:1px solid var(--line); padding:12px 0; display:grid; grid-template-columns:72px minmax(0,1fr); gap:12px; align-items:center; }
.posts li.noimg { grid-template-columns:1fr; }
.posts img { width:72px; height:54px; object-fit:cover; display:block; }
.posts a { text-decoration:none; font-size:15px; line-height:1.45; }
.posts a:hover { text-decoration:underline; text-underline-offset:3px; }
.posts time { display:block; font-size:12px; color:var(--muted); }

/* 목록 */
.listv { display:grid; grid-template-columns:240px minmax(0,1fr); gap:32px; padding-block:28px 60px; }
.filters { display:flex; flex-direction:column; gap:20px; align-self:start; position:sticky; top:16px; }
.filters h2 { margin:0 0 8px; font-size:11.5px; letter-spacing:1.2px; text-transform:uppercase; color:var(--muted); font-weight:500; font-family:var(--sans); }
.filters input, .filters select { width:100%; font:inherit; font-size:14px; padding:8px 10px; border:1px solid var(--line); background:var(--bg); color:var(--fg); }
.chips { display:flex; flex-wrap:wrap; gap:6px; }
.chips button { font:inherit; border:1px solid var(--line); background:var(--bg); color:var(--fg); padding:4px 10px; font-size:13px; cursor:pointer; }
.chips button.on { background:var(--accent); color:var(--accent-fg); border-color:var(--accent); }
.lhead { display:flex; justify-content:space-between; align-items:baseline; gap:12px; flex-wrap:wrap; margin-bottom:6px; }
.lhead h1 { margin:0; font-family:var(--display); font-weight:500; font-size:30px; letter-spacing:-.5px; }
.lhead span { color:var(--muted); font-size:13px; }
.ldesc { color:var(--muted); margin:0 0 18px; max-width:70ch; font-size:14.5px; }
.ldesc p { margin:0 0 .6em; }
.pgrid { display:grid; grid-template-columns:repeat(auto-fill, minmax(190px, 1fr)); gap:18px 14px; }
.pc { text-decoration:none; display:flex; flex-direction:column; gap:6px; min-width:0; }
.pc[hidden] { display:none; }
.pc .im { aspect-ratio:1; background:var(--soft); overflow:hidden; display:grid; place-items:center; color:var(--muted); font-family:var(--display); font-size:30px; }
.pc .im img { width:100%; height:100%; object-fit:cover; display:block; }
.pc .k { display:flex; gap:8px; align-items:center; font-size:11.5px; color:var(--muted); flex-wrap:wrap; }
.pc b { font-weight:500; font-size:15px; line-height:1.35; }
.pc small { color:var(--muted); font-size:12.5px; }
.more { margin:26px auto 0; display:block; border:1px solid var(--fg); background:none; color:var(--fg); padding:9px 22px; cursor:pointer; font:inherit; }
.more[hidden] { display:none; }
.empty { color:var(--muted); padding:30px 0; }

/* 장소 페이지 */
.crumb { font-size:13px; color:var(--muted); padding-block:22px 6px; }
.crumb a { color:var(--muted); }
.crumb span + span::before, .crumb a + span::before, .crumb a + a::before, .crumb span + a::before { content:"›"; margin:0 6px; }
.ptitle { display:flex; flex-wrap:wrap; align-items:end; justify-content:space-between; gap:12px 24px; padding-bottom:18px; border-bottom:2px solid var(--fg); }
.ptitle h1 { margin:0; font-family:var(--display); font-weight:700; font-size:clamp(30px, 5vw, 50px); letter-spacing:-1px; line-height:1.08; text-wrap:balance; }
.ptitle .meta { display:flex; flex-wrap:wrap; gap:8px; align-items:center; font-size:13.5px; }
.badge { background:var(--accent); color:var(--accent-fg); padding:3px 10px; font-family:var(--mono); font-size:12.5px; white-space:nowrap; }
.pill { border:1px solid var(--line); padding:2px 9px; color:var(--muted); text-decoration:none; white-space:nowrap; }
a.pill:hover { border-color:var(--fg); color:var(--fg); }
.gal { display:grid; grid-template-columns:2fr 1fr 1fr; grid-template-rows:repeat(2, minmax(0,1fr)); gap:4px; margin-block:20px; }
.gal.n1 { grid-template-columns:1fr; grid-template-rows:auto; }
.gal.n2, .gal.n3, .gal.n4 { grid-template-columns:2fr 1fr; }
.g { padding:0; border:0; background:var(--soft); cursor:zoom-in; overflow:hidden; min-width:0; position:relative; }
.g img { width:100%; height:100%; object-fit:cover; display:block; aspect-ratio:4/3; }
.g.main { grid-row:span 2; }
.g.main img { aspect-ratio:auto; min-height:100%; }
.gal.n1 .g.main img { aspect-ratio:16/9; }
.g .all { position:absolute; inset:auto 8px 8px auto; background:var(--fg); color:var(--bg); font-size:12.5px; padding:4px 10px; }
.pbody { display:grid; grid-template-columns:minmax(0,1fr) 330px; gap:44px; padding-bottom:40px; }
.story { font-size:16px; }
.story p { margin:0 0 1.05em; max-width:66ch; }
.story img { display:block; margin:1em 0; }
.story h2, .story h3 { font-family:var(--display); font-weight:500; letter-spacing:-.3px; margin:1.6em 0 .5em; }
.info { display:flex; flex-direction:column; gap:16px; align-self:start; }
.box { border:1px solid var(--line); padding:16px; }
.box h2 { margin:0 0 10px; font-size:11.5px; letter-spacing:1.2px; text-transform:uppercase; color:var(--muted); font-weight:500; font-family:var(--sans); }
.box p { margin:0 0 6px; font-size:14px; }
.box a { overflow-wrap:anywhere; }
.hours { list-style:none; margin:0; padding:0; font-size:13.5px; }
.hours li { display:flex; justify-content:space-between; padding:3px 0; font-variant-numeric:tabular-nums; gap:10px; }
.hours li.today { font-weight:700; }
.visits { list-style:none; margin:0; padding:0; font-size:14px; }
.visits li { display:flex; justify-content:space-between; gap:10px; padding:4px 0; border-bottom:1px solid var(--line); }
.visits li:last-child { border:0; }
.visits small { color:var(--muted); }
.near { list-style:none; margin:0; padding:0; }
.near a { display:grid; grid-template-columns:56px minmax(0,1fr) auto; gap:10px; align-items:center; padding:7px 0; border-bottom:1px solid var(--line); text-decoration:none; }
.near img, .near .ni { width:56px; height:56px; object-fit:cover; display:block; background:var(--soft); }
.near b { font-weight:500; font-size:14px; display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.near small { color:var(--muted); font-size:12px; }
.near em { font-style:normal; font-family:var(--mono); font-size:12px; color:var(--muted); }
.tags { display:flex; flex-wrap:wrap; gap:6px; }
.lb { position:fixed; inset:0; z-index:1000; background:rgba(0,0,0,.9); display:grid; place-items:center; padding:env(safe-area-inset-top,0px) 16px env(safe-area-inset-bottom,0px); }
.lb[hidden] { display:none; }
.lb img { max-width:min(1100px, 100%); max-height:84vh; filter:none; }
.lb button { position:absolute; background:#fff; color:#111; border:0; width:40px; height:40px; cursor:pointer; font-size:18px; }
.lb .x { top:calc(env(safe-area-inset-top,0px) + 14px); right:max(16px, env(safe-area-inset-right,0px)); }
.lb .pv { left:max(16px, env(safe-area-inset-left,0px)); top:50%; } .lb .nx { right:max(16px, env(safe-area-inset-right,0px)); top:50%; }
.lb .ct2 { position:absolute; bottom:calc(env(safe-area-inset-bottom,0px) + 14px); color:#fff; font-family:var(--mono); font-size:13px; }

/* 블로그 · 페이지 */
.article { max-width:760px; margin:0 auto; padding-block:30px 60px; }
.article h1 { font-family:var(--display); font-weight:700; font-size:clamp(28px, 4.5vw, 44px); line-height:1.15; letter-spacing:-.8px; margin:0 0 10px; text-wrap:balance; }
.article .meta { color:var(--muted); font-size:13px; margin-bottom:22px; }
.article .cover { margin:0 0 26px; }
.article .cover img { width:100%; display:block; }
.entry { font-size:16.5px; line-height:1.85; }
.entry > * { max-width:100%; }
.entry h2 { font-family:var(--display); font-weight:500; font-size:26px; letter-spacing:-.4px; margin:2em 0 .6em; line-height:1.3; }
.entry h3 { font-size:20px; margin:1.6em 0 .5em; }
.entry img { display:block; margin:1.2em auto; }
.entry figure { margin:1.4em 0; }
.entry figcaption { font-size:13px; color:var(--muted); text-align:center; }
.entry blockquote { border-left:3px solid var(--accent); margin:1.2em 0; padding:2px 18px; color:var(--muted); }
.entry table { border-collapse:collapse; width:100%; font-size:14.5px; display:block; overflow-x:auto; }
.entry td, .entry th { border:1px solid var(--line); padding:6px 10px; }
.entry a { text-underline-offset:3px; }
.page-wide { max-width:var(--wrap); }
.bgrid { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:26px 18px; }
.bc { text-decoration:none; display:flex; flex-direction:column; gap:8px; }
.bc .im { aspect-ratio:16/10; background:var(--soft); overflow:hidden; }
.bc .im img { width:100%; height:100%; object-fit:cover; display:block; }
.bc b { font-size:17px; font-weight:500; line-height:1.4; }
.bc p { margin:0; color:var(--muted); font-size:13.5px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.pager { display:flex; gap:6px; justify-content:center; margin-top:34px; flex-wrap:wrap; }
.pager a, .pager span { border:1px solid var(--line); padding:6px 12px; text-decoration:none; font-size:14px; }
.pager .current { background:var(--fg); color:var(--bg); border-color:var(--fg); }

/* 모음 페이지 카드 ([wt_listings]) */
.wt-hub-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(200px, 1fr)); gap:18px 14px; margin:24px 0; }

/* 푸터 */
.site-foot { border-top:1px solid var(--line); margin-top:40px; color:var(--muted); font-size:13.5px; }
.site-foot .wrap { padding-block:30px; display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:24px; }
.site-foot h2 { font-size:11.5px; letter-spacing:1.2px; text-transform:uppercase; font-weight:500; margin:0 0 10px; color:var(--fg); font-family:var(--sans); }
.site-foot ul { list-style:none; margin:0; padding:0; }
.site-foot li { margin:3px 0; }
.site-foot a { text-decoration:none; }
.site-foot a:hover { color:var(--fg); }
.site-foot .copy { grid-column:1 / -1; border-top:1px solid var(--line); padding-top:16px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; }

@media (max-width: 980px) {
  .hero, .two, .pbody, .listv { grid-template-columns:1fr; }
  .cgrid { grid-template-columns:repeat(3, minmax(0,1fr)); }
  .tgrid { grid-template-columns:repeat(2, minmax(0,1fr)); }
  .filters { position:static; }
  .bgrid { grid-template-columns:repeat(2, minmax(0,1fr)); }
  .site-foot .wrap { grid-template-columns:repeat(2, minmax(0,1fr)); }
}
@media (max-width: 560px) {
  .tgrid, .bgrid { grid-template-columns:1fr; } .tc.big { grid-column:auto; grid-row:auto; }
  .cgrid { grid-template-columns:repeat(2, minmax(0,1fr)); }
  .regions { columns:1; }
  .gal, .gal.n2, .gal.n3, .gal.n4 { grid-template-columns:1fr 1fr; grid-template-rows:auto; } .g.main { grid-column:1 / -1; grid-row:auto; } .g.main img { aspect-ratio:4/3; }
  .nav { gap:12px; font-size:13.5px; } .nav input[type=search] { width:110px; }
  .site-head .wrap { flex-wrap:wrap; }
  .pgrid { grid-template-columns:repeat(2, minmax(0,1fr)); }
}
@media (prefers-reduced-motion: reduce) { img { transition:none; } }

/* ===== Atlas ===== */
.atlas-head { padding-block:28px 14px; }
.atlas-head h1 { font-family:var(--display); font-weight:700; font-size:clamp(34px,5vw,54px); letter-spacing:-1px; margin:0 0 6px; }
.atlas-head p { color:var(--muted); margin:0 0 16px; max-width:60ch; }
.atlas-stats { display:flex; flex-wrap:wrap; gap:10px 28px; }
.atlas-stats div { display:flex; align-items:baseline; gap:6px; }
.atlas-stats b { font-family:var(--display); font-size:28px; font-weight:500; letter-spacing:-.5px; font-variant-numeric:tabular-nums; }
.atlas-stats span { color:var(--muted); font-size:13px; }
.atlas-map { aspect-ratio:auto; height:min(72vh, 640px); position:relative; }
.atlas-play { position:absolute; left:50%; bottom:18px; transform:translateX(-50%); z-index:1000; display:flex; align-items:center; gap:6px; background:var(--bg); border:1px solid var(--fg); padding:6px 6px 6px 14px; font-size:13px; box-shadow:0 4px 16px rgba(0,0,0,.2); max-width:calc(100% - 32px); }
.atlas-play[hidden] { display:none; }
.atlas-play span { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-width:0; }
.atlas-play button { width:32px; height:32px; border:0; background:var(--fg); color:var(--bg); cursor:pointer; flex:none; font:inherit; }
.atlas-board { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); gap:32px; margin:28px 0 8px; }
.atlas-board h2 { font-size:12px; letter-spacing:1.2px; text-transform:uppercase; font-weight:500; color:var(--muted); margin:0 0 10px; font-family:var(--sans); }
.atlas-us h2 b { font-size:24px; color:var(--fg); letter-spacing:-.5px; font-family:var(--display); }
.atlas-tiles { display:grid; grid-template-columns:repeat(12, minmax(0,1fr)); gap:3px; max-width:520px; }
.atlas-tile { aspect-ratio:1; display:grid; place-items:center; font-size:10px; color:var(--muted); background:var(--soft); border:0; padding:0; font-family:var(--sans); }
.atlas-tile.is-on { background:var(--accent); color:var(--accent-fg); cursor:pointer; }
.atlas-rank { list-style:none; margin:0; padding:0; }
.atlas-rank li { display:flex; justify-content:space-between; gap:10px; padding:7px 0; border-bottom:1px solid var(--line); font-size:14px; }
.atlas-rank b { font-weight:500; } .atlas-rank span { color:var(--muted); font-size:12.5px; }
.atlas-tabs { display:flex; gap:4px; overflow-x:auto; padding:14px 0; border-bottom:1px solid var(--line); position:sticky; top:0; background:var(--bg); z-index:5; }
.atlas-tabs button { font:inherit; font-size:13px; background:none; border:1px solid transparent; color:var(--muted); padding:5px 12px; cursor:pointer; white-space:nowrap; }
.atlas-tabs button.is-on { border-color:var(--fg); color:var(--fg); }
.atlas-filter { margin-top:12px; padding:10px 14px; background:var(--soft); font-size:13px; }
.atlas-filter[hidden] { display:none; }
.atlas-filter button { font:inherit; font-size:12px; background:none; border:1px solid var(--fg); padding:2px 8px; cursor:pointer; margin-left:6px; }
.atlas-year { margin-top:30px; }
.atlas-year header { display:flex; align-items:baseline; gap:14px; flex-wrap:wrap; margin-bottom:6px; }
.atlas-year h2 { font-family:var(--display); font-size:34px; font-weight:500; margin:0; letter-spacing:-1px; }
.atlas-year header span { color:var(--muted); font-size:13px; }
.atlas-trip { border-top:1px solid var(--line); }
.atlas-th { width:100%; display:grid; grid-template-columns:104px minmax(0,1fr) auto; gap:14px; align-items:center; padding:14px 0 10px; background:none; border:0; text-align:left; cursor:pointer; font:inherit; color:inherit; }
.atlas-th time { font-family:var(--mono); font-size:12.5px; color:var(--muted); }
.atlas-tt { display:flex; flex-direction:column; min-width:0; }
.atlas-tt b { font-weight:500; font-size:16.5px; }
.atlas-tt small { color:var(--muted); font-size:12.5px; }
.atlas-n { font-family:var(--mono); font-size:12.5px; }
.atlas-strip { display:flex; gap:6px; flex-wrap:wrap; padding:0 0 16px 118px; align-items:center; }
.atlas-strip img { width:66px; height:66px; object-fit:cover; }
.atlas-strip span { width:66px; height:66px; display:grid; place-items:center; background:var(--soft); font-family:var(--mono); font-size:12.5px; }
.atlas-acts { margin:0 0 12px 118px; }
.atlas-acts button { font:inherit; font-size:13px; padding:6px 12px; border:1px solid var(--fg); background:var(--fg); color:var(--bg); cursor:pointer; }
.atlas-stops { list-style:none; margin:0 0 18px 118px; padding:0; display:grid; grid-template-columns:repeat(auto-fill, minmax(240px,1fr)); gap:8px 16px; counter-reset:stop; }
.atlas-stops a { display:grid; grid-template-columns:56px minmax(0,1fr); gap:10px; align-items:center; text-decoration:none; }
.atlas-stops img { width:56px; height:56px; object-fit:cover; }
.atlas-stops b { font-weight:500; font-size:14px; display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.atlas-stops small { color:var(--muted); font-size:12px; }
.atlas-outs { border-top:1px solid var(--line); padding:14px 0; }
.atlas-outs h3 { font-size:12px; letter-spacing:1.2px; font-weight:500; color:var(--muted); margin:0 0 8px; }
.atlas-outs ul { list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:6px 16px; font-size:13.5px; }
.atlas-outs a { text-decoration:none; } .atlas-outs a:hover { text-decoration:underline; }
.atlas-outs time { color:var(--muted); font-size:12px; }
@media (max-width: 760px) {
  .atlas-board { grid-template-columns:1fr; }
  .atlas-th { grid-template-columns:minmax(0,1fr) auto; } .atlas-th time { grid-column:1 / -1; }
  .atlas-strip, .atlas-acts, .atlas-stops { padding-left:0; margin-left:0; }
  .atlas-strip img, .atlas-strip span { width:54px; height:54px; }
}
.leaflet-popup-content a.wt-pop { color:#121212; text-decoration:none; display:block; }
.leaflet-popup-content a.wt-pop:hover b { text-decoration:underline; text-underline-offset:3px; }

/* 사람이 보는 사이트맵 */
.htmlmap { columns:3 260px; column-gap:32px; }
.htmlmap section { break-inside:avoid; margin-bottom:22px; }
.htmlmap h2 { font-size:13px; letter-spacing:1px; text-transform:uppercase; color:var(--muted); font-weight:500; margin:0 0 8px; font-family:var(--sans); }
.htmlmap ul { list-style:none; margin:0; padding:0; font-size:14px; line-height:1.6; }
.htmlmap a { text-decoration:none; } .htmlmap a:hover { text-decoration:underline; }

/* 메뉴 */
.menu { margin:30px 0; }
.menu h2 { font-family:var(--display); font-weight:500; font-size:22px; letter-spacing:-.3px; margin:0 0 10px; padding-bottom:8px; border-bottom:2px solid var(--fg); }
.menu ul { list-style:none; margin:0; padding:0; }
.menu li { display:flex; justify-content:space-between; gap:16px; padding:10px 0; border-bottom:1px dotted var(--line); font-size:15px; }
.menu .mn { display:flex; flex-direction:column; min-width:0; }
.menu .mn small { color:var(--muted); font-size:13px; }
.menu .mp { font-family:var(--mono); white-space:nowrap; color:var(--accent); }
.menu .note { font-size:12.5px; color:var(--muted); margin-top:8px; }
/* 메뉴판 사진은 자르지 않는다 (가로로 긴 메뉴판도 그대로 읽히게) */
.menu-photos { display:flex; flex-direction:column; gap:10px; margin-top:10px; }
.menu-photos a { display:block; border:1px solid var(--line); }
.menu-photos img { width:100%; height:auto; max-height:none; display:block; filter:none; }
