/* Reading order for the shared walk: prepare, find the trace, then read its story. */
.w-field {
    --w-geo: #146760;
    --w-look-bg: #fff3d8;
    --w-look-line: #be841e;
}
.w-field .w-nav { margin-bottom: clamp(18px, 3vw, 36px); }
.w-field .w-hero { gap: clamp(24px, 4vw, 54px); }
.w-field .w-hero-copy h1 { text-wrap: balance; margin-bottom: 14px; }
.w-field .w-lead { margin-bottom: 19px; }
.w-field .w-hero-photo { border-radius: 12px; }
.w-field .w-hero-photo img { height: clamp(330px, 42vw, 560px); }
.w-field .w-facts {
    display: grid;
    grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr) minmax(0, .65fr);
    gap: 12px;
    margin: 0;
    padding: 12px 0;
    font-size: 13px;
    line-height: 1.4;
}
.w-field .w-facts b { font-size: clamp(17px, 2vw, 22px); line-height: 1.25; }
.w-field .w-places {
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: 4px 12px;
    margin: 15px 0;
    font: inherit;
    font-size: 14px;
    line-height: 1.45;
}
.w-field .w-places dt { color: var(--w-geo); font-weight: 650; }
.w-field .w-places dd { color: var(--w-ink); margin: 0; }
.w-field .w-hero-copy > .w-notice {
    padding: 0 0 0 10px;
    border-left: 2px solid var(--w-look-line);
    border-radius: 0;
    background: transparent;
    color: var(--w-muted);
    line-height: 1.45;
    margin: 0 0 18px;
}
.w-field .w-save-note { margin-bottom: 0; }
.w-field .w-start-row .w-text-link { display: inline-flex; align-items: center; }
.w-field .w-overview-body { margin-top: 36px; padding-top: 28px; gap: 40px; }
.w-field .w-practical details { padding: 0; }
.w-field .w-practical summary,
.w-field .w-access-detail summary,
.w-field .w-route-card summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 48px;
    padding: 6px 0;
    line-height: 1.4;
}
.w-field .w-practical details[open] summary { margin-bottom: 6px; }
.w-field #w-preview { scroll-margin-top: calc(var(--w-header-h, 65px) + 14px); }
.w-field .w-stop-list { margin-top: 12px !important; }
.w-field .w-stop-list li > a { min-height: 52px; padding: 10px 0; }
.w-field .w-stop-list strong { font-size: 15px; }
.w-field .w-stop-list small { font-size: 12px; }
.w-field .w-stop-heading { margin-bottom: 16px; }
.w-field .w-stop-heading h1 { margin: 0 0 7px; text-wrap: balance; }
.w-field .w-stop-heading .w-address { margin: 0 !important; font-size: 15px; }
.w-field .w-stop-access { font-size: 13px; color: var(--w-muted); margin: 3px 0 0; }
.w-field .w-stop-access-limited { color: var(--w-red); }
.w-field .w-observe {
    background: var(--w-look-bg);
    border-left: 3px solid var(--w-look-line);
    border-radius: 6px;
    padding: 12px 15px;
    margin-top: 10px;
}
.w-field .w-observe h2 {
    font: 650 14px/1.4 Inter, system-ui, sans-serif;
    letter-spacing: normal;
    margin: 0 0 4px;
}
.w-field .w-observe > p:last-child { font-size: 16px; line-height: 1.5; margin: 0; }
.w-field .w-story { border: none; margin: 0 0 18px; }
.w-field .w-story > h2 { margin: 0 0 8px; }
.w-field .w-story-body { padding: 0; }
.w-field .w-story-body > p { margin-bottom: 5px; }
.w-field .w-story-body > .w-text-link { min-height: 44px; }
.w-field .w-access-detail { padding: 0; margin-top: 10px; }
.w-field .w-map-head { display: block; margin: 0 0 14px; }
.w-field .w-map-head .w-eyebrow { margin: 0 0 6px !important; color: var(--w-geo) !important; }
.w-field .w-map-head h1 { max-width: 32ch; font-size: clamp(27px, 3.2vw, 40px); }
.w-field .w-route-address { font-size: 14px; color: var(--w-muted); margin: 5px 0 0; }
.w-field .w-route-summary { display: flex; flex-wrap: wrap; gap: 1px 12px; margin: 6px 0 0; font-size: 14px; line-height: 1.45; }
.w-field .w-route-summary strong { color: var(--w-geo); }
.w-field .w-route-card .w-directions, .w-field .w-route-card .w-key { border-top: 1px solid var(--w-line); padding: 0; }
.w-field .w-route-card summary { font-size: 14px; font-weight: 600; }
.w-field .w-route-card summary::after { content: '+'; }
.w-field .w-route-card details[open] summary::after { content: '−'; }
.w-field .w-key p, .w-field .w-route-note { font-size: 14px; }
.w-field .w-route-card .w-text-link { min-height: 44px; }
.w-field .w-route-card .w-access:empty,
.w-field .w-route-address:empty,
.w-field .w-storage-note:empty { display: none; }
.w-field .w-walk-bottom .w-next b { white-space: normal; line-height: 1.3; }
.w-field .w-map-bottom .w-next small:only-child,
.w-field .w-map-bottom .w-next small:has(+ b[hidden]) { font-size: 13px; letter-spacing: 0; }
.w-field .w-route-note { border-left-color: var(--w-geo); background: var(--w-bg); }
.w-field .w-map-all { min-height: 44px; font-size: 13px !important; }
.w-field .w-map-canvas .leaflet-control-zoom a { width: 44px; height: 44px; line-height: 44px; }
.w-field .w-map-fullscreen { top: 112px; }
.w-field .w-map-locate { top: 166px; }

.w-field.w-map-is-fullscreen #w-map-screen {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr) auto;
    background: var(--w-bg);
}
.w-field.w-map-is-fullscreen .w-map-head {
    display: block;
    padding: max(9px, env(safe-area-inset-top)) max(14px, env(safe-area-inset-right)) 8px max(14px, env(safe-area-inset-left));
    margin: 0;
    max-height: 33dvh;
    overflow-y: auto;
}
.w-field.w-map-is-fullscreen .w-map-head .w-eyebrow { margin-bottom: 2px !important; }
.w-field.w-map-is-fullscreen .w-map-head h1 { font-size: clamp(20px, 3.2vw, 28px); }
.w-field.w-map-is-fullscreen .w-route-address { font-size: 13px; line-height: 1.35; }
.w-field.w-map-is-fullscreen .w-route-summary { margin-top: 3px; }
.w-field.w-map-is-fullscreen .w-map-layout { min-height: 0; }
.w-field.w-map-is-fullscreen .w-map-bottom {
    position: static;
    transform: none;
    width: 100%;
    max-width: 540px;
    justify-self: center;
    padding: 7px max(10px, env(safe-area-inset-right)) max(7px, env(safe-area-inset-bottom)) max(10px, env(safe-area-inset-left));
}
.w-field.w-map-is-fullscreen .w-map-fullscreen { top: 10px; right: 10px; }
.w-field.w-map-is-fullscreen .leaflet-top.leaflet-right { top: 52px; right: 0; }
.w-field.w-map-is-fullscreen .w-map-locate { top: 164px; right: 10px; }

@media (max-width: 767px) {
    .w-field .w-nav { padding: 3px 0; margin-bottom: 13px; }
    .w-field .w-hero { display: block; }
    .w-field .w-hero-copy { display: block; }
    .w-field .w-hero-copy > .w-eyebrow { margin: 0 0 5px !important; }
    .w-field .w-hero-copy h1 { font-size: clamp(31px, 8.5vw, 40px); margin: 0 0 6px; }
    .w-field .w-hero-copy .w-lead { font-size: 15px; line-height: 1.45; margin: 0 0 12px !important; }
    .w-field .w-facts { font-size: 12px; gap: 8px; padding: 8px 0; }
    .w-field .w-facts b { font-size: 17px; }
    .w-field .w-places { margin: 12px 0; font-size: 14px; line-height: 1.4; }
    .w-field .w-hero-copy > .w-notice { margin: 0 0 13px !important; font-size: 13px; }
    .w-field .w-start-row { display: flex; flex-direction: row; flex-wrap: wrap; align-items: stretch; gap: 0 12px; }
    .w-field .w-start-row > .w-primary { width: auto; flex: 1 1 150px; padding: 10px 13px; }
    .w-field .w-save-note { text-align: left; margin: 3px 0 0 !important; }
    .w-field .w-hero-photo { margin-top: 15px; }
    .w-field .w-hero-photo img { height: clamp(112px, 22dvh, 190px); }
    .w-field .w-overview-body { gap: 22px; padding-top: 20px; margin-top: 24px; }
    .w-field .w-section-head { flex-wrap: wrap; }
    .w-field .w-section-head h2 { font-size: 25px; }
    .w-field .w-practical { padding-top: 7px; }
    .w-field .w-stop-heading { margin-bottom: 10px; }
    .w-field .w-stop-heading h1 { font-size: clamp(28px, 8vw, 36px); }
    .w-field .w-story-body { line-height: 1.6; }
    .w-field .w-walk-bottom { bottom: calc(6px + max(var(--bdh-mobile-nav-height, 0px), env(safe-area-inset-bottom, 0px))); }
    .w-field .w-walk-bottom .w-next { min-height: 44px; }
    .w-field .w-walk-bottom .w-next b { max-width: none; }
}
@media (prefers-color-scheme: dark) {
    .w-field { --w-geo: #96cfca; --w-look-bg: #362f23; --w-look-line: #d8a74a; }
}
.w-field #w-start-here { margin-top: 18px; }

/* The field guide has one navigation row and one reading order for each stop. */
.w-field .w-step-nav { display: none; }
.w-field[data-view="step"] {
    padding-top: var(--w-step-header-h, var(--w-header-h, 90px));
}
.w-field[data-view="step"] > .w-nav {
    gap: 12px;
    margin-bottom: 16px;
    padding-block: 4px;
}
.w-field[data-view="step"] > .w-nav .w-nav-title { display: none; }
.w-field[data-view="step"] .w-step-nav {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-width: 0;
    gap: 12px;
}
.w-field .w-step-nav .w-eyebrow {
    margin: 0 !important;
    letter-spacing: .07em;
    line-height: 1.3 !important;
}
.w-field .w-step-list-trigger {
    flex: 0 0 auto;
    min-height: 44px;
    padding: 7px 12px;
    gap: 7px;
}
.w-field .w-field-step {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(0, 1fr);
    grid-template-areas: "photo heading" "photo reading";
    grid-template-rows: auto 1fr;
    align-items: start;
    gap: 15px clamp(20px, 3.5vw, 46px);
}
.w-field .w-field-step-no-photo {
    grid-template-columns: minmax(0, 720px);
    grid-template-areas: "heading" "reading";
}
.w-field .w-field-step .w-stop-heading { grid-area: heading; min-width: 0; margin: 0; }
.w-field .w-field-step .w-stop-heading h1 {
    margin: 0 0 5px;
    font-size: clamp(30px, 3.2vw, 46px);
    line-height: 1.06;
}
.w-field .w-field-step .w-stop-heading .w-address,
.w-field .w-field-step .w-stop-access { line-height: 1.35; }
.w-field .w-field-step .w-stop-photo { grid-area: photo; width: 100%; }
.w-field .w-photo-open {
    position: relative;
    display: block;
    aspect-ratio: 3 / 2;
    cursor: zoom-in;
}
.w-field .w-photo-open:focus-visible { outline-offset: -4px; }
.w-field .w-stop-photo .w-photo-open img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.w-field .w-photo-expand {
    position: absolute;
    right: 8px;
    bottom: 8px;
    display: grid;
    place-items: center;
    width: 28px;
    height: 28px;
    border-radius: 6px;
    background: rgb(255 255 255 / 92%);
    color: #252822;
    pointer-events: none;
}
.w-field .w-field-reading { grid-area: reading; min-width: 0; }
.w-field .w-field-reading .w-observe { margin-top: 0; }
.w-field .w-field-reading .w-visit { margin: 12px 0 20px; }
.w-field .w-field-reading .w-seen {
    width: min(100%, 250px);
    min-width: 0;
    min-height: 49px;
    gap: 10px;
    line-height: 1.3;
}
.w-field .w-seen-icon { width: 23px; height: 23px; flex: 0 0 auto; }
.w-field .w-seen-on,
.w-field .w-seen[aria-pressed="true"] .w-seen-off { display: none; }
.w-field .w-seen[aria-pressed="true"] .w-seen-on { display: inline; }
.w-field .w-seen[aria-pressed="true"] {
    background: #416850;
    border-color: #416850;
    color: #fff;
}
@media (max-width: 767px) {
    .w-field[data-view="step"] > .w-nav { gap: 6px; padding-block: 2px; margin-bottom: 10px; }
    .w-field[data-view="step"] .w-step-nav { gap: 4px; }
    .w-field .w-step-list-long { display: none; }
    .w-field .w-step-list-trigger { padding-inline: 9px; gap: 4px; font-size: 13px !important; }
    .w-field .w-step-list-trigger > span::first-letter { text-transform: uppercase; }
    .w-field .w-field-step {
        grid-template-columns: minmax(0, 1fr);
        grid-template-areas: "heading" "photo" "reading";
        grid-template-rows: auto;
        row-gap: 10px;
    }
    .w-field .w-field-step-no-photo { grid-template-areas: "heading" "reading"; }
    .w-field .w-field-step .w-stop-heading h1 { font-size: clamp(27px, 7.8vw, 36px); }
    .w-field .w-photo-open { aspect-ratio: 16 / 10; }
    .w-field .w-field-reading .w-seen { width: 100%; }
}
@media (max-width: 359px) {
    .w-field[data-view="step"] .w-back {
        justify-content: center;
        min-width: 44px;
        min-height: 44px;
        font-size: 18px;
    }
    .w-field[data-view="step"] .w-back span {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip-path: inset(50%);
        white-space: nowrap;
    }
}

/* Step favourites are independent from the visit and the whole-walk favourite. */
.w-field .w-field-reading .w-visit { display:flex; align-items:center; gap:10px; }
.w-field .w-field-reading .w-step-favorite { flex:0 0 49px; width:49px; height:49px; min-height:49px; padding:11px; border:1px solid var(--w-line); background:var(--w-paper); color:var(--w-muted); }
.w-field .w-step-favorite[aria-pressed="true"] { color:var(--w-red); border-color:var(--w-red); }
.w-field .w-step-favorite[aria-pressed="true"] svg { fill:currentColor; }
@media(min-width:768px) {
 .w-field .w-field-step .w-stop-photo { position:sticky; top:calc(var(--w-header-h,90px) + 12px); align-self:start; }
 .w-field .w-field-step .w-photo-open { max-height:calc(100dvh - var(--w-header-h,90px) - 100px); }
}
@media(max-width:767px) {
 .w-field .w-field-reading .w-visit .w-seen { flex:1 1 0; width:auto; }
 .w-field .w-field-step .w-stop-photo { position:static; }
}

.w-photo-dialog { position:fixed; inset:0; width:fit-content; max-width:94vw; max-height:92dvh; padding:0; border:0; border-radius:10px; overflow:visible; background:var(--w-paper,#fff9f3); box-shadow:0 15px 60px #0006; }
.w-photo-dialog::backdrop { background:rgb(0 0 0 / 82%); }
.w-photo-dialog img { display:block; max-width:94vw; max-height:92dvh; width:auto; height:auto; border-radius:10px; object-fit:contain; }
.w-photo-close { position:absolute; right:8px; top:8px; width:44px; height:44px; border:1px solid #d8d3ca; border-radius:50%; background:#fff; color:#202124; font:32px/1 system-ui,sans-serif; z-index:1; cursor:pointer; }
html:has(.w-photo-dialog[open]) { overflow:hidden; }

/* Match the carnet controls displayed on the Vestige pages. */
.w-field .w-field-reading .w-visit { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); width:100%; max-width:360px; gap:9px; }
.w-field .w-field-reading .w-visit > .w-btn {
 display:flex; flex-direction:row; justify-content:center; align-items:center; box-sizing:border-box;
 width:100%; height:auto; min-width:0; min-height:54px; gap:10px; padding:8px 16px;
 border:1px solid #d8d1c9; border-radius:20px; background:#fffdfa; color:#132532;
 font:600 15px/1.25 Inter,Arial,sans-serif; box-shadow:none;
}
.w-field .w-field-reading .w-visit .w-seen[aria-pressed="true"] { background:#eff7f6; color:#086e75; border-color:#086e75; }
.w-field .w-field-reading .w-visit .w-step-favorite[aria-pressed="true"] { background:#fff2ee; color:#b7241d; border-color:#b7241d; }
.w-field .w-step-heart { font-size:24px; line-height:1; }
.w-field .w-seen-icon { width:24px; height:24px; }
.w-field .w-seen[aria-pressed="true"] .w-seen-off-check { display:none; }
.w-field .w-visit .w-btn:focus-visible { outline:3px solid #086e75; outline-offset:3px; }
@media(max-width:780px) {
 .w-field .w-field-reading .w-visit { max-width:none; }
 .w-field .w-field-reading .w-visit>.w-btn { flex-direction:column; gap:5px; min-height:65px; padding:9px 3px; font-size:12px; border-radius:13px; }
}
@media(prefers-color-scheme:dark) {
 .w-field .w-field-reading .w-visit>.w-btn { background:#24211e; color:#f4efe8; border-color:#514942; }
 .w-field .w-field-reading .w-visit .w-seen[aria-pressed="true"] { background:#203537; color:#b2e2db; border-color:#6caaa7; }
 .w-field .w-field-reading .w-visit .w-step-favorite[aria-pressed="true"] { background:#382622; color:#f2a69b; border-color:#bb655c; }
}
/* Use the same navigation row for the step and its map. */
.w-field[data-view="map"]:not(.w-map-is-fullscreen) { padding-top:var(--w-step-header-h,var(--w-header-h,90px)); }
.w-field[data-view="map"]>.w-nav { gap:12px; padding-block:4px; margin-bottom:16px; }
.w-field[data-view="map"]>.w-nav .w-nav-title { display:none; }
.w-field[data-view="map"] .w-step-nav { display:flex; flex:1; align-items:center; justify-content:space-between; min-width:0; gap:12px; }
.w-field[data-view="map"] .w-map-head>.w-eyebrow { display:none; }
.w-field[data-view="map"]:not(.w-map-is-fullscreen) .w-route-card { padding:0; border:0; background:transparent; }
@media(min-width:768px) {
 .w-field:not(.w-map-is-fullscreen) #w-map-screen { display:grid; grid-template-columns:minmax(0,1.08fr) minmax(0,1fr); grid-template-areas:"map head" "map route" "nav nav"; grid-template-rows:auto 1fr auto; gap:15px clamp(20px,3.5vw,46px); align-items:start; }
 .w-field:not(.w-map-is-fullscreen) .w-map-layout { display:contents; }
 .w-field:not(.w-map-is-fullscreen) .w-map-head { grid-area:head; margin:0; }
 .w-field:not(.w-map-is-fullscreen) .w-map-head h1 { font-size:clamp(30px,3.2vw,46px); line-height:1.06; }
 .w-field:not(.w-map-is-fullscreen) .w-map-canvas { grid-area:map; position:sticky; top:calc(var(--w-header-h,90px) + 12px); }
 .w-field:not(.w-map-is-fullscreen) #w-map { height:clamp(350px,58dvh,600px); }
 .w-field:not(.w-map-is-fullscreen) .w-route-card { grid-area:route; }
 .w-field:not(.w-map-is-fullscreen) .w-map-bottom { grid-area:nav; }
}
@media(max-width:767px) {
 .w-field[data-view="map"]>.w-nav { gap:6px; padding-block:2px; margin-bottom:10px; }
 .w-field[data-view="map"] .w-step-nav { gap:4px; }
 .w-field:not(.w-map-is-fullscreen) .w-map-head h1 { font-size:clamp(27px,7.8vw,36px); line-height:1.06; }
}
@media(max-width:359px) {
 .w-field[data-view="map"] .w-back { justify-content:center; min-width:44px; min-height:44px; font-size:18px; }
 .w-field[data-view="map"] .w-back span { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
}
.w-field .w-field-reading .w-visit>.w-btn { font-size:15px!important; line-height:1.25!important; }
@media(max-width:780px) {
 .w-field .w-field-reading .w-visit>.w-btn { font-size:12px!important; line-height:1.28!important; }
}
.w-field.w-map-is-fullscreen .w-map-head>.w-eyebrow { display:block; }

/* Compact actions spanning the complete reading column on every screen. */
.w-field .w-field-reading .w-visit { max-width:none; width:100%; }
.w-field .w-field-reading .w-visit>.w-btn {
 flex-direction:row; min-height:44px; height:44px; padding:6px 12px; gap:8px;
}
.w-field .w-visit .w-seen-icon { width:21px; height:21px; }
.w-field .w-visit .w-step-heart { font-size:22px; }
@media(max-width:780px) {
 .w-field .w-field-reading .w-visit>.w-btn { flex-direction:row; min-height:44px; padding:6px 8px; gap:7px; }
}

/* The line follows navigation; checkmarks reflect only explicit saved visits. */
.w-field .w-timeline { margin:0 0 13px; padding:3px 0; overflow-x:auto; overscroll-behavior-x:contain; scrollbar-width:thin; scrollbar-color:var(--w-line) transparent; }
.w-field .w-timeline-list { display:flex; min-width:max-content; width:100%; list-style:none; padding:0!important; margin:0!important; }
.w-field .w-timeline-step { position:relative; flex:1 0 44px; margin:0; padding:0; }
.w-field .w-timeline-step:not(:first-child)::before { content:""; position:absolute; height:2px; top:21px; left:-50%; width:100%; background:var(--w-line); pointer-events:none; }
.w-field .w-timeline-step.is-before:not(:first-child)::before { background:var(--w-red); }
.w-field .w-timeline-button { position:relative; display:flex; align-items:center; justify-content:center; width:100%; min-height:44px; padding:0; border:0; background:transparent; color:var(--w-ink); font:600 13px/1 Inter,Arial,sans-serif; cursor:pointer; }
.w-field .w-timeline-disc { display:grid; place-items:center; width:30px; height:30px; border:1px solid var(--w-line); border-radius:50%; background:var(--w-bg); }
.w-field .w-timeline-button.is-seen .w-timeline-disc { background:#eff7f6; color:#086e75; border-color:#086e75; }
.w-field .w-timeline-button[aria-current="step"] .w-timeline-disc { background:var(--w-red); border-color:var(--w-red); color:var(--w-bg); box-shadow:0 0 0 3px var(--w-bg),0 0 0 4px var(--w-red); }
.w-field .w-timeline-button:focus-visible { outline:2px solid var(--w-red); outline-offset:-2px; border-radius:8px; }
.w-field:is([data-view="step"],[data-view="map"])>.w-nav { margin-bottom:3px; }
.w-field.w-map-is-fullscreen>.w-timeline { display:none; }
@media(prefers-color-scheme:dark) {
 .w-field .w-timeline-button.is-seen .w-timeline-disc { background:#203537; color:#b2e2db; border-color:#6caaa7; }
}
.w-field .w-timeline-button { z-index:1; }

/* The desktop controls travel with the photograph, within the current step. */
.w-field .w-step-media { display:contents; }
@media(min-width:768px) {
 .w-field .w-step-media { display:block; grid-area:photo; min-width:0; align-self:start; position:sticky; top:calc(var(--w-header-h,90px) + 12px); }
 .w-field .w-step-media>.w-stop-photo { position:static; }
 .w-field .w-step-media .w-walk-bottom { position:static; width:100%; max-width:none; margin:12px 0 0; padding:8px; }
}
.w-field .w-walk-bottom .w-next b { margin-top:0; }

/* Short destination labels need proportionate, balanced navigation controls. */
.w-field .w-walk-bottom {
 display:grid; grid-template-columns:44px minmax(0,1fr) minmax(0,1.15fr);
 align-items:stretch; gap:8px; max-width:420px;
}
.w-field .w-walk-bottom>.w-icon { width:44px; height:44px; min-height:44px; padding:0; align-self:center; }
.w-field .w-walk-bottom>.w-outline,
.w-field .w-walk-bottom>.w-next { width:100%; min-width:0; min-height:44px; margin:0; justify-content:center; }
.w-field .w-walk-bottom>.w-next { gap:10px; }
.w-field .w-walk-bottom>.w-next>span:first-child { flex:0 1 auto; }
@media(min-width:768px) {
 .w-field .w-step-media .w-walk-bottom { width:min(100%,420px); margin:12px auto 0; }
}

/* The map shares the photograph's desktop control position and mobile dock. */
.w-field .w-map-media { display:contents; }
.w-field .w-map-navigation-slot:empty { display:none; }
@media(min-width:768px) {
 .w-field:not(.w-map-is-fullscreen) .w-map-media { display:block; grid-area:map; min-width:0; align-self:start; position:sticky; top:calc(var(--w-header-h,90px) + 12px); }
 .w-field:not(.w-map-is-fullscreen) .w-map-media>.w-map-canvas { position:relative; top:auto; }
 .w-field .w-map-media .w-walk-bottom { position:static; width:min(100%,420px); max-width:420px; margin:12px auto 0; padding:8px; }
}

/* Inline navigation icons inherit both light and dark button colours. */
.w-field .w-walk-bottom > .w-btn { gap:8px; padding-inline:10px; }
.w-field .w-walk-bottom .w-nav-caption { display:inline-flex; align-items:center; gap:7px; min-width:0; }
.w-field .w-walk-bottom .w-nav-icon { display:block; width:18px; height:18px; flex:0 0 18px; }

/* The outline distinguishes approximate railway locations while keeping step numbers legible. */
.w-approx-rail .bdh-map-body { stroke: #753620; stroke-width: 3; stroke-dasharray: 4 3; }
.w-pin.w-approx-rail span { outline: 2px dashed #944830; outline-offset: 2px; }

.w-field .w-stop-photo .w-image-credit { display:block; position:static; padding:7px 9px; color:var(--w-muted); background:var(--w-paper); font-size:12px; line-height:1.45; }
.w-image-credit span { display:block; color:var(--w-ink); }
.w-image-credit a { color:inherit; text-decoration:underline; text-underline-offset:2px; }

/* Optional display crop for legacy photo footers; originals stay intact. */
.w-field .w-photo-open[data-photo-crop-ratio] { aspect-ratio:var(--w-photo-crop-ratio); overflow:hidden; }
.w-field .w-stop-photo .w-photo-open[data-photo-crop-ratio] img { display:block; width:100%; height:auto; max-height:none; object-fit:initial; }
.w-photo-full-frame { display:contents; }
.w-photo-full-frame.w-photo-cropped { display:block; position:relative; width:min(94vw,calc(84dvh * var(--w-photo-crop-ratio))); aspect-ratio:var(--w-photo-crop-ratio); overflow:hidden; border-radius:10px; }
.w-photo-dialog .w-photo-cropped img { position:absolute; inset:0 auto auto 0; width:100%; height:auto; max-width:none; max-height:none; border-radius:0; object-fit:initial; }
.w-photo-full-credit { margin:0; padding:6px 12px; font-size:12px; text-align:center; color:var(--w-ink,#302b27); }
.w-photo-full-credit[hidden] { display:none; }
