:root{--navy:#17384a;--red:#ce4b5b;--purple:#8647ae;--gold:#bd8a23;--cream:#f8f7f3;--line:#dedfd9}*{box-sizing:border-box}body{margin:0;color:var(--navy);background:var(--cream);font-family:Arial,Helvetica,sans-serif;font-size:16px}button,input,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #0a86b4;outline-offset:3px}header{max-width:1550px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:12px 36px;border-bottom:1px solid var(--line);gap:20px}header img{display:block;object-fit:contain;max-width:230px;height:77px}.header-tag{font-size:11px;letter-spacing:2px}.outline{border:1px solid #cbd2d3;background:#fff;color:var(--navy);border-radius:8px;padding:11px 16px;font-size:13px;font-weight:700;white-space:nowrap}.intro{max-width:1550px;margin:auto;padding:40px 36px 30px;display:flex;justify-content:space-between;align-items:end;gap:25px}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:800;margin:0 0 12px;color:#956622}h1{font-family:Georgia,serif;font-size:clamp(40px,4.5vw,66px);letter-spacing:-2px;font-weight:400;margin:0 0 15px}h2{font-family:Georgia,serif;font-size:36px;font-weight:400;margin:8px 0 15px}.lede{line-height:1.6;font-size:16px;color:#556772;margin:0}.intro-note{border-left:2px solid #dbb671;padding:10px 20px;display:flex;flex-direction:column;gap:10px;font-size:12px}.intro-note b{font-size:14px}.intro-note span{color:#647780}.intro-note a{font-weight:bold;text-underline-offset:4px}main{max-width:1550px;margin:auto;padding:0 36px}.view-tabs{border-bottom:1px solid var(--line);display:flex;gap:28px;margin-bottom:22px}.view-tabs button{background:none;border:0;color:#5a6d75;padding:17px 0;font-size:14px;font-weight:700;border-bottom:3px solid transparent}.view-tabs button.active{color:var(--navy);border-color:var(--navy)}.view{display:none}.view.active{display:block}.toolbar{display:flex;gap:14px;align-items:center;margin-bottom:18px;flex-wrap:wrap}.filters{display:flex;gap:4px;background:#eaece7;border-radius:10px;padding:4px}.filters button{border:0;border-radius:7px;background:transparent;padding:10px 14px;color:var(--navy);font-size:13px;font-weight:700}.filters button.active{background:white;box-shadow:0 2px 5px #17384a0c}.filters span{font-size:10px;background:#e9eeef;padding:3px 5px;margin-left:5px;border-radius:4px}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px}.visit{background:var(--red)}.shop{background:var(--purple)}.search{margin-left:auto;max-width:330px;flex:1;min-width:190px}.search input{width:100%;border:1px solid var(--line);background:white;border-radius:8px;padding:12px 14px;font-size:13px}.explorer{display:grid;grid-template-columns:1fr 350px;min-height:550px;height:min(66vh,700px);border:1px solid #d0d8d8;border-radius:14px;overflow:hidden;background:white}.map-wrap{position:relative;min-width:0;height:100%}#map{height:100%;width:100%;background:#e4ebe7;z-index:0}.map-brand{position:absolute;top:12px;left:55px;z-index:500;background:#ffffffee;border-radius:4px;padding:8px 10px;font-size:9px;letter-spacing:1px;font-weight:800;pointer-events:none}#reset-map{position:absolute;bottom:27px;left:12px;z-index:500;border:1px solid #d7dddd;background:white;border-radius:6px;padding:10px 13px;font-weight:bold;color:var(--navy);font-size:11px}.places-panel{overflow:auto;border-left:1px solid var(--line)}.list-head{padding:20px;display:flex;flex-direction:column;gap:6px;position:sticky;top:0;background:#fffef9;z-index:1;border-bottom:1px solid var(--line);font-size:14px}.list-head span{font-size:11px;color:#6b7c82}.place{display:grid;grid-template-columns:32px 1fr;gap:10px;padding:16px;border-bottom:1px solid #eef0ec;cursor:pointer}.place:hover,.place.selected{background:#f2f4f0}.place h3{font-size:14px;margin:0 0 5px}.place p{font-size:12px;color:#63757c;margin:0 0 10px;line-height:1.4}.place a{font-size:11px;font-weight:700;text-underline-offset:3px}.number{border-radius:50%;width:29px;height:29px;color:white;display:grid;place-items:center;font-weight:bold;font-size:12px;background:var(--red)}.number.shop{background:var(--purple)}.pin{border-radius:50%;width:32px;height:32px;border:2px solid white;color:white;display:grid;place-items:center;font-family:Arial,sans-serif;font-size:12px;font-weight:bold;box-shadow:0 1px 5px #17384a66;background:var(--red)}.pin.shop{background:var(--purple)}.pin.active{transform:scale(1.25);outline:3px solid #17384a}.pin.bus{background:var(--gold);width:42px;height:32px;border-radius:8px;font-size:10px}.leaflet-popup-content{line-height:1.6;color:var(--navy);min-width:180px}.leaflet-popup-content b{font-size:15px}.popup-link{display:block;background:var(--navy);color:white!important;text-align:center;text-decoration:none;border-radius:6px;font-weight:bold;padding:9px 12px;margin-top:12px}.status{font-size:12px;min-height:15px;margin:8px 0;color:#6a7475}.bus-banner{background:#f1eadb;border:1px solid #e5d7ba;border-radius:10px;display:flex;align-items:center;gap:16px;padding:20px;margin:0 0 30px}.bus-badge{background:var(--gold);color:white;font-size:11px;font-weight:bold;padding:12px 8px;border-radius:7px}.bus-banner b{font-size:14px}.bus-banner p{font-size:12px;line-height:1.5;margin:7px 0 0;max-width:800px}.bus-banner button{margin-left:auto}.section-heading{padding:20px 0;max-width:780px}.section-heading>p:last-child{line-height:1.7;color:#667780}.walk-grid,.practical-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:5px 0 30px}.walk-card,.practical-grid article,.info-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:26px}.walk-card .route-label{font-size:10px;font-weight:800;letter-spacing:2px;color:#976823}.walk-card h3{font-family:Georgia,serif;font-size:28px;font-weight:400;margin:14px 0}.walk-card>p,.practical-grid p,.info-card p{color:#5e7179;font-size:14px;line-height:1.7}.walk-card ol{padding-left:22px;line-height:1.8;font-size:14px;margin-bottom:26px}.walk-card li button{border:0;background:transparent;text-align:left;padding:3px 0;color:var(--navy);text-decoration:underline;text-underline-offset:3px}.primary{display:inline-block;border:0;border-radius:7px;padding:13px 17px;color:white;background:var(--navy);text-decoration:none;font-size:13px;font-weight:bold}.small-note{font-size:12px;line-height:1.6;color:#677982;margin-bottom:30px}.step{font-family:Georgia,serif;font-size:42px;color:#b18e58}.practical-grid h3{font-size:19px;line-height:1.4}.info-card{margin-bottom:30px}.small{font-size:10px;line-height:1.7;color:#677982}footer{max-width:1550px;margin:35px auto 0;border-top:1px solid var(--line);padding:30px 36px;display:flex;align-items:center;gap:30px}footer img{object-fit:contain;max-width:180px;height:60px}footer b{font-family:Georgia,serif;font-size:20px;font-weight:400}footer p{font-size:12px;color:#667880}footer>a{margin-left:auto;font-size:12px;white-space:nowrap}.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}.empty{padding:30px;color:#617580;font-size:14px}
@media(max-width:900px){header{padding:10px 20px}.header-tag{display:none}.intro{padding:26px 20px;align-items:start}.intro-note{max-width:240px;padding:8px 15px}main{padding:0 20px}.explorer{grid-template-columns:1fr 290px}.map-brand{font-size:8px}.walk-grid,.practical-grid{grid-template-columns:1fr}.walk-card{padding:23px}.walk-card ol{columns:2}.bus-banner{padding:16px}footer{padding:24px 20px;flex-wrap:wrap}footer>a{margin-left:0}}
@media(max-width:620px){header{gap:10px;padding:8px 16px}header img{width:190px;height:63px}header .outline{padding:10px;font-size:11px}.intro{padding:24px 16px 20px;display:block}h1{font-size:43px}.lede{font-size:14px}.lede br{display:none}.intro-note{display:none}main{padding:0 12px}.view-tabs{gap:18px;margin-bottom:17px;overflow:auto;white-space:nowrap}.view-tabs button{font-size:12px;padding:14px 0}.toolbar{gap:9px}.filters{flex:1}.filters button{padding:10px 9px;font-size:12px}.toolbar #locate{font-size:11px;padding:12px 10px}.search{order:3;flex-basis:100%;max-width:none}.explorer{display:flex;flex-direction:column;min-height:0;height:auto}.map-wrap{height:52svh;min-height:330px;max-height:520px;flex-shrink:0}.places-panel{border-left:0;border-top:1px solid var(--line);max-height:380px}.list-head{padding:14px 16px}.list-head span{display:none}.place{padding:14px 16px}.place h3{font-size:14px}.map-brand{font-size:7px;left:52px;top:14px;padding:7px}.bus-banner{align-items:start;flex-wrap:wrap;gap:12px}.bus-banner>div{flex:1}.bus-banner button{margin-left:47px}.section-heading{padding:15px 5px}h2{font-size:31px}.walk-grid,.practical-grid{gap:14px}.walk-card ol{columns:1}.info-card{padding:22px}footer{gap:18px;padding:25px 17px;margin-top:20px}footer img{width:160px}footer>div{width:100%}.leaflet-control-attribution{font-size:9px!important}}
