
:root{
  --bg:#f6f1e8; --paper:#fffaf2; --ink:#1d2329; --muted:#667085;
  --brand:#8b1e2d; --brand2:#1f4d5a; --line:#e3d8c9; --accent:#d9b66f;
}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:var(--bg);color:var(--ink);line-height:1.55}
.hero{background:linear-gradient(135deg,var(--brand),#2d1f31);color:white;padding:28px 16px}
.hero-inner,.wrap{max-width:1120px;margin:0 auto}
.eyebrow{text-transform:uppercase;letter-spacing:.08em;font-size:.78rem;opacity:.85;margin:0 0 8px}
h1{font-size:clamp(2rem,4vw,4rem);line-height:1;margin:0}
.lead{font-size:1.08rem;max-width:760px;margin:16px 0 0;color:#f7eadf}
.wrap{padding:18px 12px 48px}
.controls{position:sticky;top:0;z-index:20;background:rgba(246,241,232,.96);backdrop-filter:blur(8px);padding:12px;border-bottom:1px solid var(--line);margin:0 -12px 18px}
.controls label{font-weight:800;display:block;margin-bottom:6px}
select{width:100%;font-size:18px;padding:14px 44px 14px 14px;border-radius:14px;border:2px solid var(--brand);background:#fff;color:var(--ink);min-height:54px;appearance:auto}
.quick-buttons{display:flex;gap:8px;overflow:auto;padding:10px 0 2px}
.quick-buttons button{border:1px solid var(--line);background:var(--paper);padding:10px 12px;border-radius:999px;white-space:nowrap;font-weight:700;cursor:pointer}
.quick-buttons button.active{background:var(--brand);color:white;border-color:var(--brand)}
.tour-card,.stop{background:var(--paper);border:1px solid var(--line);border-radius:20px;box-shadow:0 6px 20px rgba(43,30,20,.08);padding:18px;margin-bottom:14px}
.tour-meta{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0}
.badge{background:#efe2cc;border:1px solid #ddc8a9;border-radius:999px;padding:6px 10px;font-weight:700;color:#3c2b1f}
h2{font-size:clamp(1.55rem,3vw,2.4rem);margin:.1em 0}
h3{font-size:1.35rem;margin:0 0 8px}
.kicker{color:var(--brand);font-weight:900;text-transform:uppercase;letter-spacing:.05em;font-size:.76rem}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.info-box{background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px}
.info-box strong{color:var(--brand)}
.route-visual{background:#fff;border:1px solid var(--line);border-radius:20px;padding:14px;margin-bottom:14px;overflow:hidden}
.map-title{font-weight:900;margin:0 0 10px}
.route-flow{display:flex;gap:10px;align-items:center;overflow-x:auto;padding:8px 2px 14px}
.node{flex:0 0 auto;min-width:130px;max-width:180px;background:#fdf7ea;border:2px solid var(--accent);border-radius:16px;padding:10px;text-align:center;font-weight:800}
.arrow{flex:0 0 auto;color:var(--brand);font-size:24px;font-weight:900}
.svg-map{width:100%;height:auto;border-radius:16px;background:#f7fbff;border:1px solid #d7e7ef}
.stop-number{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:var(--brand);color:white;font-weight:900;margin-right:8px}
.place{color:var(--muted);margin:0 0 12px}
.talk{font-size:1.03rem;white-space:pre-line}
.pubs{margin-top:14px;padding:12px;border-radius:16px;background:#f0eadf;border:1px solid #ded1bd}
.pubs h4{margin:0 0 8px;color:var(--brand)}
.pub{padding:8px 0;border-top:1px dashed #cab89d}
.pub:first-of-type{border-top:0}
.pub-name{font-weight:900}
.footer{max-width:1120px;margin:0 auto;padding:20px 14px 40px;color:var(--muted)}
@media(max-width:720px){
  .hero{padding:24px 14px}
  .grid{grid-template-columns:1fr}
  .tour-card,.stop{border-radius:16px;padding:15px}
  .controls{padding:10px 12px}
  select{font-size:17px;min-height:56px}
  .quick-buttons button{padding:11px 13px}
}
