.mm-pilgrimage-detail { width: min(100% - 2rem, 50rem); margin: 0 auto; padding: clamp(2.25rem, 6vw, 4rem) 0 4.5rem; }

/* Hero: eyebrow + title + meta pills (structure unchanged). */
.mm-pilgrimage-eyebrow { margin: 0; color: var(--mm-burgundy-600, #7a243a); font-size: .78rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.mm-pilgrimage-detail h1 { margin: .5rem 0 0; font-size: clamp(1.9rem, 4.6vw, 2.6rem); letter-spacing: -0.04em; line-height: 1.18; }
.mm-pilgrimage-meta { margin: 0.8rem 0 0; color: #37475f; }
.mm-pilgrimage-detail-body { margin-top: 1.75rem; }

/* Route map: answers "what shape is this walk?" before the prose. */
.mm-pilgrimage-map-section { margin: 0 0 1.75rem; }
.mm-pilgrimage-map-section h2 { margin: 0 0 1rem; font-size: 1.3rem; letter-spacing: -0.02em; }
.mm-pilgrimage-map { position: relative; height: clamp(16rem, 42vw, 22rem); border: 1px solid var(--mm-line-200, #e5e0d3); border-radius: 14px; overflow: hidden; background: #eef1ea; }
.mm-pilgrimage-map-failed { background: repeating-linear-gradient(45deg, #f2f0e8, #f2f0e8 12px, #eae7dc 12px, #eae7dc 24px); }
.mm-pilgrimage-map-actions { display: flex; flex-wrap: wrap; gap: .6rem; margin: .8rem 0 0; }
.mm-plg-pin { display: grid; place-items: center; width: 30px; height: 30px; border: 2px solid #fff; border-radius: 50%; background: var(--mm-navy-800, #0b2d5b); color: #fff; font-size: .82rem; font-weight: 800; line-height: 1; text-decoration: none; box-shadow: 0 1px 4px rgba(16, 24, 40, .35); cursor: pointer; }
.mm-plg-pin:hover { background: var(--mm-burgundy-600, #7a243a); }

.mm-pilgrimage-description { border: 1px solid var(--mm-line-200, #e5e0d3); border-left: 3px solid #d9a11d; border-radius: 0 12px 12px 0; padding: 1.1rem 1.2rem; background: var(--mm-sky-100, #eaf6ff); line-height: 1.75; }

/* Stops: timeline flow (CSS counters only, links unchanged). */
.mm-pilgrimage-stops, .mm-pilgrimage-recommendations { margin-top: 2.25rem; }
.mm-pilgrimage-stops h2, .mm-pilgrimage-recommendations h2 { margin: 0 0 1rem; font-size: 1.3rem; letter-spacing: -0.02em; }
.mm-pilgrimage-stops ol { display: grid; gap: 0; padding: 0; list-style: none; counter-reset: stop; }
.mm-pilgrimage-stops li { position: relative; padding: 0 0 1.1rem 3rem; counter-increment: stop; }
/* Leg connector: distance/time from the previous stop, sitting on the timeline. */
.mm-pilgrimage-leg { margin: -.15rem 0 .5rem -.05rem; color: #6b7280; font-size: .82rem; font-weight: 700; letter-spacing: -.01em; }
.mm-pilgrimage-leg::before { content: ""; display: inline-block; width: .9rem; height: 1px; margin-right: .4rem; vertical-align: .28rem; background: var(--mm-line-300, #cfd6e0); }
/* Next mass at this stop: the reason a pilgrim can time the walk. */
.mm-pilgrimage-stop-mass { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem; margin: .45rem 0 0; font-size: .85rem; color: #46341d; }
.mm-pilgrimage-stop-mass b { font-size: .95rem; }
.mm-pilgrimage-stop-mass-label { color: #8a6d3b; font-weight: 700; }
.mm-pilgrimage-stop-mass-date, .mm-pilgrimage-stop-mass-lang { padding: .05rem .4rem; border-radius: 999px; background: #f3ecda; color: #6b5426; font-size: .75rem; }
.mm-pilgrimage-stops li::before { content: counter(stop); position: absolute; top: 0.15rem; left: 0; display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: 50%; background: var(--mm-navy-800, #0b2d5b); color: #fff; font-size: 0.85rem; font-weight: 800; }
.mm-pilgrimage-stops li::after { content: ""; position: absolute; top: 2.5rem; bottom: 0; left: 0.95rem; width: 2px; background: var(--mm-line-200, #e5e0d3); }
.mm-pilgrimage-stops li:last-child::after { display: none; }
.mm-pilgrimage-stops li > a { display: inline-block; padding: 0.75rem 0.9rem; border: 1px solid var(--mm-line-200, #e5e0d3); border-radius: 10px; background: #fff; font-weight: 700; text-decoration: none; transition: border-color 150ms, box-shadow 150ms; }
.mm-pilgrimage-stops li > a:hover { border-color: var(--mm-navy-700, #123e78); box-shadow: var(--mm-shadow-sm, 0 1px 2px rgba(16, 24, 40, 0.06)); }
.mm-pilgrimage-stop-address { margin-top: .35rem; margin-left: 0.15rem; color: #667085; font-size: .85rem; }

/* Recommendations: cards (structure unchanged). */
.mm-pilgrimage-recommendations ul { display: grid; gap: .8rem; margin: 0; padding: 0; list-style: none; }
.mm-pilgrimage-recommendations li { padding: .9rem 1rem; border: 1px solid var(--mm-line-200, #e5e0d3); border-radius: 12px; background: #fff; }
.mm-pilgrimage-recommendation-category { display: inline-block; margin-left: .35rem; padding: .1rem .5rem; border-radius: 999px; background: #f3ecda; color: #6b5426; font-size: .75rem; font-weight: 700; vertical-align: .05rem; }

/* Actions: save/report contracts unchanged (ids kept). */
.mm-pilgrimage-actions { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1.75rem; }
.mm-pilgrimage-actions button { display: inline-flex; align-items: center; justify-content: center; gap: .4rem; min-height: 48px; border-radius: 10px; padding: .65rem 1.2rem; font: inherit; font-weight: 700; cursor: pointer; }
#mm-plg-save { border: 1px solid var(--mm-burgundy-600, #7a243a); background: var(--mm-burgundy-600, #7a243a); color: #fff; }
#mm-plg-save:hover { background: var(--mm-burgundy-700, #5f1c2e); }
#mm-plg-report { border: 1px solid var(--mm-line-300, #cfd6e0); background: #fff; color: var(--mm-navy-900, #0b2d5b); }
#mm-plg-status { min-height: 1.5em; }
