@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,500;0,600;1,500&family=DM+Sans:wght@400;500;600;700&display=swap');

.bust-wrap { font-family:'DM Sans',-apple-system,sans-serif; max-width:1180px; margin:0 auto; padding:0 24px 48px; box-sizing:border-box; color:#2A241E; }
.bust-wrap *, .bust-wrap *::before, .bust-wrap *::after { box-sizing:border-box; }

/* The theme styles every <button>; reset ours so they look the same everywhere. */
.bust-wrap button { font-family:inherit; text-transform:none; letter-spacing:normal; line-height:1.3; box-shadow:none; text-shadow:none; margin:0; }

.bust-hero { padding:36px 0 20px; }
.bust-headline { font-family:'Cormorant Garamond',serif; font-size:34px; font-weight:600; line-height:1.15; margin:0 0 8px; color:#2A241E; }
.bust-subhead { font-size:14px; color:#6E635A; line-height:1.65; margin:0; max-width:520px; }
.bust-label { font-size:11px; font-weight:500; letter-spacing:.1em; text-transform:uppercase; color:#6E635A; }

.bust-gate { background:#fff; border:1px solid #e8ddd5; border-radius:14px; padding:28px; text-align:center; font-size:15px; line-height:1.6; color:#2A241E; }
.bust-gate p { margin:0 0 14px; }
.bust-btn, a.bust-btn { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:0 22px; border:0; border-radius:50px; background:#2A241E; color:#fff; font-size:14px; font-weight:600; text-decoration:none; cursor:pointer; }
.bust-btn:hover, a.bust-btn:hover, .bust-btn:focus { background:#4a3e32; color:#fff; }
.bust-btn-ghost, .bust-wrap .bust-btn-ghost { background:transparent; color:#2A241E; border:1px solid #d9cfc3; }
.bust-btn-ghost:hover, .bust-wrap .bust-btn-ghost:hover { background:#f5f0ea; color:#2A241E; }

.bust-summary { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:baseline; gap:6px 16px; margin-bottom:12px; }
.bust-count { font-size:18px; }

/* ── Map ── */
.bust-swipe { display:none; margin:0 0 8px; }
.bust-mapscroll { width:100%; overflow-x:auto; border:1px solid #e8ddd5; border-radius:16px; -webkit-overflow-scrolling:touch; margin-bottom:22px; }
.bust-map { position:relative; width:100%; min-width:1100px; height:430px; overflow:hidden; background:#E3EDF1; }
.bust-map .bust-deco { position:absolute; pointer-events:none; }
.bust-map svg.bust-routes { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }
.bust-zone { position:absolute; bottom:16px; font-size:10px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:#5E554D; }

.bust-wrap .bust-stop { position:absolute; display:flex; flex-direction:column; align-items:center; gap:6px; padding:6px; min-width:44px; min-height:44px; background:transparent; border:0; border-radius:14px; cursor:pointer; color:#2A241E; transition:transform .2s ease, opacity .2s ease; }
.bust-wrap .bust-stop:hover { transform:translateY(-3px); background:transparent; }
.bust-wrap .bust-stop:disabled { opacity:.42; cursor:default; }
.bust-wrap .bust-stop:disabled:hover { transform:none; }
.bust-wrap .bust-stop.is-sel { background:rgba(255,255,255,.65); box-shadow:0 0 0 2px #2A241E; }
.bust-wrap .bust-stop:focus-visible, .bust-wrap .bust-row:focus-visible, .bust-wrap .bust-tab:focus-visible { outline:2px solid #2A241E; outline-offset:2px; }
.bust-chip { font-size:11px; font-weight:600; letter-spacing:.04em; text-transform:uppercase; background:#fff; color:#2A241E; border:1px solid #d9cfc3; border-radius:999px; padding:4px 10px; white-space:nowrap; }
.bust-stop.is-sel .bust-chip { background:#2A241E; color:#fff; border-color:#2A241E; }
.bust-badge { position:absolute; top:-6px; right:-2px; min-width:26px; height:26px; padding:0 6px; border-radius:999px; background:#A8505F; color:#fff; font-size:13px; font-weight:700; display:flex; align-items:center; justify-content:center; border:2px solid #FBF8F3; }

.bust-bob   { animation:bust-bob 3.2s ease-in-out infinite; }
.bust-drift { animation:bust-drift 5s ease-in-out infinite; }
.bust-roll  { animation:bust-roll 1.6s ease-in-out infinite; }
@keyframes bust-bob   { 0%,100%{transform:translateY(0) rotate(0)} 50%{transform:translateY(4px) rotate(-1.2deg)} }
@keyframes bust-drift { 0%,100%{transform:translate(0,0)} 50%{transform:translate(8px,-5px)} }
@keyframes bust-roll  { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-1.5px)} }
@media (prefers-reduced-motion:reduce) { .bust-bob,.bust-drift,.bust-roll { animation:none; } }

/* ── List + card ── */
.bust-layout { display:flex; flex-wrap:wrap; gap:22px; align-items:flex-start; }
.bust-side { flex:1 1 300px; max-width:370px; display:flex; flex-direction:column; gap:10px; min-width:0; }
.bust-list { display:flex; flex-direction:column; gap:8px; }
.bust-wrap .bust-row { display:flex; align-items:center; gap:12px; width:100%; min-height:54px; padding:8px 12px; border:1px solid #efe6db; border-radius:10px; background:#fff; color:#2A241E; font-size:14px; text-align:left; cursor:pointer; }
.bust-wrap .bust-row:hover { border-color:#c9b9a8; background:#fff; color:#2A241E; }
.bust-wrap .bust-row.is-sel { border-color:#2A241E; box-shadow:0 0 0 1px #2A241E; }
.bust-row-ic { flex:0 0 auto; width:38px; height:38px; border-radius:8px; display:flex; align-items:center; justify-content:center; font-size:11px; font-weight:700; }
.bust-row-main { flex:1 1 auto; display:flex; flex-direction:column; gap:2px; min-width:0; }
.bust-row-title { font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.bust-row-sub { font-size:12px; color:#6E635A; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.bust-row-eta { flex:0 0 auto; font-size:12px; color:#6E635A; text-align:right; max-width:110px; }
.bust-tag { display:inline-block; margin-left:6px; font-size:10px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; padding:2px 8px; border-radius:999px; background:#FBF4DA; border:1px solid #E6D9A8; color:#6B5E2E; vertical-align:1px; }
.bust-tag-done { background:#E4F1E2; border-color:#B9D6B3; color:#3F5A3A; }

.bust-card { flex:999 1 540px; min-width:0; background:#fff; border:1px solid #e8ddd5; border-radius:16px; padding:26px; display:flex; flex-direction:column; gap:20px; }
.bust-tabs { display:flex; flex-wrap:wrap; gap:8px; }
.bust-wrap .bust-tab { min-height:44px; padding:0 16px; border-radius:999px; border:1px solid #d9cfc3; background:#fff; color:#2A241E; font-size:14px; font-weight:600; cursor:pointer; }
.bust-wrap .bust-tab:hover { background:#f5f0ea; color:#2A241E; }
.bust-wrap .bust-tab.is-sel { background:#2A241E; color:#fff; border-color:#2A241E; }
.bust-head { display:flex; flex-wrap:wrap; justify-content:space-between; gap:16px; align-items:flex-start; }
.bust-title { font-family:'Cormorant Garamond',serif; font-size:30px; font-weight:600; margin:0; line-height:1.1; color:#2A241E; }
.bust-meta { font-size:14px; color:#6E635A; margin-top:4px; }
.bust-eta { background:#FBF4DA; border:1px solid #E6D9A8; border-radius:12px; padding:12px 20px; text-align:center; min-width:160px; }
.bust-eta-l { font-size:11px; letter-spacing:.14em; color:#6B5E2E; font-weight:600; }
.bust-eta-v { font-family:'Cormorant Garamond',serif; font-size:21px; font-weight:600; margin-top:4px; }
.bust-now { border:1px solid #efe6db; border-radius:12px; padding:16px 18px; background:#FDFBF7; display:flex; flex-direction:column; gap:6px; }
.bust-now-stage { font-size:18px; font-weight:600; }
.bust-now-desc { font-size:14px; line-height:1.6; color:#4d453e; }

.bust-steps { display:flex; gap:4px; align-items:flex-start; list-style:none; margin:0; padding:0; }
.bust-step { display:flex; flex-direction:column; align-items:center; gap:8px; flex:1 1 0; min-width:0; text-align:center; margin:0; }
.bust-dot { flex:0 0 auto; width:12px; height:12px; border-radius:50%; }
.bust-step-done .bust-dot { background:#2A241E; }
.bust-step-current .bust-dot { background:#C9707F; box-shadow:0 0 0 4px #F3D3DA; }
.bust-step-todo .bust-dot { background:#E4DBD0; }
.bust-step-l { font-size:11px; line-height:1.3; text-transform:uppercase; letter-spacing:.04em; color:#776D63; }
.bust-step-done .bust-step-l { color:#2A241E; }
.bust-step-current .bust-step-l { color:#A8505F; font-weight:700; }

.bust-books { display:flex; flex-direction:column; gap:8px; margin:8px 0 0; padding:0; list-style:none; }
.bust-book { display:flex; flex-wrap:wrap; justify-content:space-between; gap:4px 12px; padding:10px 12px; border-radius:8px; background:#F7EDEF; margin:0; }
.bust-book-t { font-family:'Cormorant Garamond',serif; font-size:17px; font-weight:600; }
.bust-book-s { font-size:12px; color:#6E635A; }
.bust-track { font-size:14px; line-height:1.6; }
.bust-track code { background:#f5f0ea; padding:2px 6px; border-radius:4px; }

.bust-confirm { border:1px solid #B9D6B3; background:#F1F8EF; border-radius:12px; padding:16px 18px; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; }
.bust-confirm p { margin:0; font-size:14px; line-height:1.55; flex:1 1 240px; }
.bust-wrap .bust-confirm .bust-btn { background:#3F6E4A; }
.bust-wrap .bust-confirm .bust-btn:hover { background:#2F5838; }
.bust-wrap .bust-btn[disabled] { opacity:.6; cursor:default; }
.bust-review { border:1px solid #E8A0B0; background:#FBF1F3; border-radius:12px; padding:16px 18px; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; }
.bust-review p { margin:0; font-size:14px; line-height:1.55; flex:1 1 240px; }
.bust-reviewed { font-size:14px; font-weight:600; color:#3F6E4A; }
.bust-msg { font-size:14px; padding:10px 14px; border-radius:8px; }
.bust-msg-ok { background:#E4F1E2; color:#2F5838; }
.bust-msg-err { background:#fff3f3; color:#9a2a2a; }

/* ── Which tracker? ── */
.bust-switch { display:flex; flex-wrap:wrap; gap:6px; padding:4px; background:#F2EDE3; border-radius:999px; width:fit-content; max-width:100%; margin-bottom:10px; }
.bust-switch-item, a.bust-switch-item { display:inline-flex; align-items:center; min-height:40px; padding:0 16px; border-radius:999px; font-size:14px; font-weight:600; color:#4d453e; text-decoration:none; white-space:nowrap; }
a.bust-switch-item:hover { background:#fff; color:#2A241E; }
.bust-switch-item.is-here { background:#2A241E; color:#fff; }
.bust-hero { display:flex; flex-direction:column; gap:14px; }
.bust-subhead a { color:#A8505F; text-decoration:underline; }
.bust-guide { background:#fff; border:1px solid #e8ddd5; border-radius:12px; padding:0; max-width:100%; }
.bust-guide summary { cursor:pointer; list-style:none; padding:12px 16px; min-height:44px; display:flex; align-items:center; font-size:14px; font-weight:600; color:#2A241E; }
.bust-guide summary::-webkit-details-marker { display:none; }
.bust-guide summary::after { content:'+'; margin-left:auto; font-size:18px; color:#6E635A; }
.bust-guide[open] summary::after { content:'–'; }
.bust-guide-grid { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:12px; padding:0 16px 16px; }
.bust-guide-card { border:1px solid #efe6db; border-radius:10px; padding:14px; background:#FDFBF7; display:flex; flex-direction:column; gap:6px; }
.bust-guide-card.is-here { border-color:#C9707F; background:#FBF1F3; }
.bust-guide-name { font-family:'Cormorant Garamond',serif; font-size:20px; font-weight:600; }
.bust-guide-here { font-family:'DM Sans',sans-serif; font-size:10px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; padding:2px 8px; border-radius:999px; background:#C9707F; color:#fff; vertical-align:3px; }
.bust-guide-ask { font-size:13px; color:#A8505F; font-weight:600; }
.bust-guide-card ul { margin:4px 0 0; padding-left:18px; font-size:13px; line-height:1.55; color:#4d453e; }
.bust-guide-card li { margin:0 0 2px; }
.bust-guide-link { margin-top:auto; padding-top:6px; font-size:13px; font-weight:600; color:#2A241E; text-decoration:underline; }
.bust-guide-only { padding:0; }

/* ── Phone ── */
@media (max-width:760px) {
    .bust-wrap { padding:0 14px 40px; }
    .bust-hero { padding:24px 0 14px; }
    .bust-headline { font-size:28px; }
    .bust-swipe { display:block; }
    .bust-map { height:390px; }
    .bust-layout { flex-direction:column; gap:14px; }
    .bust-side { max-width:none; width:100%; flex:0 0 auto; }
    .bust-list { flex-direction:row; overflow-x:auto; padding-bottom:6px; scroll-snap-type:x mandatory; }
    .bust-wrap .bust-row { flex:0 0 auto; width:auto; min-width:180px; max-width:240px; scroll-snap-align:start; }
    .bust-row-eta { display:none; }
    .bust-card { flex:0 0 auto; width:100%; padding:18px; }
    .bust-steps { flex-direction:column; gap:0; }
    .bust-step { flex-direction:row; text-align:left; gap:12px; padding:6px 0; }
    .bust-step-l { font-size:12px; }
    .bust-confirm .bust-btn { width:100%; }
    .bust-guide-grid { grid-template-columns:1fr; }
    .bust-switch { width:100%; display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:4px; border-radius:14px; }
    .bust-switch-item, a.bust-switch-item { justify-content:center; text-align:center; padding:4px 6px; font-size:12px; line-height:1.2; white-space:normal; border-radius:10px; min-height:44px; }
}
