/* Trip walking maps. Loads street tiles only when the visitor opens a map. */
.walk-card{margin:16px 0 20px;background:var(--surface);border:1px solid var(--line);border-radius:21px;box-shadow:0 8px 30px rgba(19,32,30,.045);padding:17px 18px;color:var(--ink)}
.walk-card[hidden],.walk-details[hidden]{display:none!important}
.walk-card-top{display:flex;align-items:center;gap:13px;min-width:0}
.walk-card-icon{width:48px;height:48px;flex:0 0 48px;display:flex;align-items:center;justify-content:center;border-radius:15px;background:#e7f0e8;font-size:1.6rem}
[data-theme="dark"] .walk-card-icon{background:#234235}
.walk-card-copy{flex:1;min-width:0}
.walk-eyebrow{font-size:.63rem;letter-spacing:.13em;font-weight:900;color:var(--green);margin:0 0 3px}
.walk-card-copy h3{font-family:'Playfair Display',Georgia,serif;font-size:1.19rem;line-height:1.14;margin:0 0 5px}
.walk-card-copy p:last-child{font-size:.79rem;line-height:1.4;color:var(--muted);margin:0}
.walk-card-mini{width:158px;max-width:28%;height:80px;border-radius:12px;border:1px solid var(--line);background:radial-gradient(circle at 10% 20%,rgba(79,137,102,.14),transparent 50%),repeating-linear-gradient(45deg,rgba(118,134,120,.085) 0,rgba(118,134,120,.085) 1px,transparent 1px,transparent 17px),#e6efe8;overflow:hidden;flex-shrink:0}
.walk-card-mini svg{display:block;width:100%;height:100%}
.walk-toggle{margin-top:14px;width:100%;min-height:43px;border:0;border-radius:12px;background:#275847;color:#fff;font-weight:850;font-size:.86rem;display:flex;align-items:center;justify-content:center;gap:8px}
.walk-toggle:hover{background:#1e4838}
.walk-toggle span{margin-left:3px}
.walk-toggle:focus-visible,.walk-collections button:focus-visible,.walk-actions a:focus-visible,.walk-stop-directions:focus-visible{outline:3px solid #e6b75b;outline-offset:3px}
.walk-details{margin-top:15px;border-top:1px solid var(--line);padding-top:15px}
.walk-collections{display:flex;gap:7px;overflow-x:auto;padding-bottom:11px;scrollbar-width:thin}
.walk-collections button{flex:0 0 auto;max-width:230px;min-height:39px;border-radius:10px;border:1px solid var(--line);background:var(--bg);color:var(--ink);font-weight:800;padding:9px 12px;font-size:.78rem;white-space:nowrap}
.walk-collections button.active{background:#275847;color:#fff;border-color:#275847}
.walk-map-frame{position:relative;width:100%;height:280px;border-radius:15px;background:#e2ebe4;border:1px solid #cddbd1;overflow:hidden;isolation:isolate}
.walk-map-stage{position:absolute;inset:0}
.walk-map-stage .walk-inline-preview{width:100%;height:100%;background:radial-gradient(circle at 30% 35%,#cbded0 0,transparent 32%),repeating-linear-gradient(28deg,transparent 0,transparent 20px,#bacbbd 21px,#bacbbd 22px,transparent 23px,transparent 47px),#e6eee5}
.walk-map-stage .walk-inline-preview svg{width:100%;height:100%;display:block}
.walk-preview-pin{fill:#fff;stroke:#204838;stroke-width:2}
.walk-map-status{position:absolute;top:13px;right:13px;max-width:calc(100% - 95px);pointer-events:none;z-index:750;font-size:.7rem;line-height:1.4;background:rgba(255,253,248,.95);color:#24493c;border:1px solid rgba(63,88,70,.18);border-radius:9px;padding:6px 9px;box-shadow:0 2px 8px rgba(0,0,0,.09)}
.walk-handoff{color:var(--muted);font-size:.76rem;margin:11px 0 10px;line-height:1.5}
.walk-actions{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:14px}
.walk-actions a{display:inline-flex;align-items:center;justify-content:center;min-height:39px;background:#315f4f;color:#fff;padding:9px 13px;border-radius:10px;text-decoration:none;font-size:.77rem;font-weight:850}
.walk-actions a:nth-child(even){background:#f4eadd;color:#674c25;border:1px solid #e2d3bd}
.walk-stops{list-style:none;display:grid;gap:7px;margin:0;padding:0}
.walk-stop{display:flex;align-items:center;gap:10px;padding:10px 10px;border:1px solid var(--line);border-radius:11px;background:var(--bg)}
.walk-stop-num{width:27px;height:27px;border-radius:50%;display:grid;place-items:center;font-size:.75rem;font-weight:900;background:#23533f;color:white;flex-shrink:0}
.walk-stop-info{flex:1;min-width:0}
.walk-stop-name{font-size:.87rem;font-weight:850;line-height:1.2}
.walk-stop-note{font-size:.75rem;color:var(--muted);margin-top:3px;line-height:1.4}
.walk-stop-directions{font-size:.72rem;color:var(--green);font-weight:850;text-decoration:none;white-space:nowrap;border:1px solid var(--line);border-radius:9px;padding:9px 8px}
.walk-footnote{font-size:.71rem;line-height:1.45;color:var(--muted);margin:13px 0 0}
/* Leaflet is optional and lazy-loaded. Marker styling stays legible on mobile. */
.trip-walk-marker{background:none;border:0}
.trip-walk-marker b{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#24533f;color:#fff;border:3px solid #fff;box-shadow:0 3px 12px rgba(0,0,0,.27);font:900 13px/1 'DM Sans',sans-serif}
.trip-walk-marker.is-final b{background:#b04455}
.walk-map-stage .leaflet-container{font-family:'DM Sans',sans-serif}
.walk-map-stage .leaflet-popup-content{font:600 .8rem/1.5 'DM Sans',sans-serif}
.walk-map-stage .leaflet-popup-content a{color:#205f49}
@media(max-width:680px){
 .walk-card{padding:12px 13px 13px;border-radius:17px;margin:12px 0}
 .walk-card-icon{width:40px;height:40px;flex-basis:40px;border-radius:12px;font-size:1.35rem}
 .walk-card-top{gap:9px}
 .walk-card-copy h3{font-size:1.05rem}
 .walk-card-copy p:last-child{font-size:.73rem;line-height:1.34}
 .walk-card-mini{width:74px;max-width:22%;height:67px;border-radius:9px}
 .walk-toggle{margin-top:12px;font-size:.79rem;min-height:41px}
 .walk-map-frame{height:255px}
 .walk-map-status{font-size:.63rem;max-width:calc(100% - 85px);top:9px;right:9px}
 .walk-collections button{font-size:.74rem;max-width:190px}
 .walk-stops{gap:6px}
 .walk-stop{padding:9px 8px;gap:7px}
 .walk-stop-name{font-size:.8rem}
 .walk-stop-note{font-size:.7rem}
 .walk-stop-directions{font-size:.69rem;padding:8px 7px}
}
@media(max-width:355px){.walk-card-mini{width:61px;height:56px}.walk-card-copy h3{font-size:.96rem}.walk-stop-note{font-size:.66rem}.walk-card-copy p:last-child{font-size:.69rem}}
@media print{.walk-details,.walk-toggle{display:none!important}.walk-card-mini{display:none}.walk-card{break-inside:avoid}}
