.pf-route-map{padding:56px 0 80px;background:var(--cream,#f5f4ef)}.pf-route-map__head{max-width:var(--maxw,1180px);margin:0 auto 36px;padding:0 var(--pad,40px)}.pf-route-map__title{font-family:'LeonXIV','Jost',sans-serif;font-weight:800;text-transform:uppercase;letter-spacing:.01em;font-size:clamp(28px, 4vw, 46px);line-height:.98;margin:14px 0;color:var(--navy,#0F2D85)}.pf-route-map__intro{margin:0;color:var(--ink-soft,#47506f);font-size:16px;line-height:1.6;max-width:56ch}.pf-route-map__card{max-width:var(--maxw,1180px);margin:0 auto;padding:0 var(--pad,40px)}.pf-route-map__card>.pf-route-map__grid{background:var(--paper,#fff);border-radius:20px;overflow:hidden;box-shadow:0 40px 80px -40px rgb(15 45 133 / .35);border:1px solid var(--rule,rgb(15 45 133 / .14));display:grid;grid-template-columns:1fr 300px}.pf-route-map__map{width:100%;height:640px;background:var(--primary-tint,#eef1fb)}.pf-route-map__legend{background:var(--paper,#fff);border-left:1px solid var(--rule,rgb(15 45 133 / .14));padding:28px 24px;display:flex;flex-direction:column;gap:4px}.pf-route-map__legend-label{font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-mute,#7b83a0);margin-bottom:14px}.pf-route-map__stop{display:flex;align-items:flex-start;gap:12px;padding:14px 10px;border-radius:12px;cursor:pointer;border:1px solid #fff0;background:none;text-align:left;font-family:'Jost',sans-serif;transition:background .15s,border-color .15s;width:100%}.pf-route-map__stop:hover,.pf-route-map__stop.is-active{background:var(--primary-tint,#eef1fb);border-color:var(--rule,rgb(15 45 133 / .14))}.pf-route-map__stop-dot{flex:none;width:14px;height:14px;border-radius:999px;margin-top:5px;box-shadow:0 0 0 3px var(--paper,#fff),0 0 0 4px currentColor}.pf-route-map__stop--paris .pf-route-map__stop-dot{background:var(--navy,#0F2D85);color:var(--navy,#0F2D85)}.pf-route-map__stop--lourdes .pf-route-map__stop-dot{background:var(--cyan,#1ACCFF);color:var(--cyan,#1ACCFF)}.pf-route-map__stop--metz .pf-route-map__stop-dot{background:var(--green,#00B5B0);color:var(--green,#00B5B0)}.pf-route-map__stop-city{display:block;font-weight:800;text-transform:uppercase;letter-spacing:.01em;font-size:17px;color:var(--ink,#14224e);line-height:1.1}.pf-route-map__stop-date{display:block;font-size:12px;color:var(--ink-mute,#7b83a0);margin-top:3px;letter-spacing:.02em}.pf-route-map__legend-note{margin-top:auto;padding-top:18px;border-top:1px solid var(--rule,rgb(15 45 133 / .14));font-size:11.5px;color:var(--ink-mute,#7b83a0);line-height:1.5}.maplibregl-popup-content{font-family:'Jost',sans-serif;border-radius:12px;padding:18px 20px 16px;box-shadow:0 24px 50px -24px rgb(15 45 133 / .5);border:1px solid var(--rule,rgb(15 45 133 / .14))}.maplibregl-popup-tip{border-top-color:#fff!important}.pf-route-map__pop-kicker{font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--navy,#0F2D85);margin-bottom:6px}.pf-route-map__pop-title{font-family:'Jost',sans-serif;font-weight:800;text-transform:uppercase;font-size:19px;margin:0 0 6px;color:var(--ink,#14224e)}.pf-route-map__pop-text{font-size:13px;color:var(--ink-soft,#47506f);line-height:1.5;margin:0 0 10px}.pf-route-map__pop-go{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--navy,#0F2D85);text-decoration:none}.pf-route-map__pin{width:30px;height:30px;border-radius:999px;border:3px solid #fff;box-shadow:0 8px 18px -4px rgb(15 45 133 / .55);cursor:pointer;transition:transform .15s}.pf-route-map__pin:hover{transform:scale(1.12)}.pf-route-map__pin--paris{background:var(--navy,#0F2D85)}.pf-route-map__pin--lourdes{background:var(--cyan,#1ACCFF)}.pf-route-map__pin--metz{background:var(--green,#00B5B0)}.maplibregl-ctrl-attrib{font-family:'Jost',sans-serif!important;font-size:10.5px!important;color:var(--ink-mute,#7b83a0)!important}.maplibregl-ctrl-attrib a{color:var(--ink-mute,#7b83a0)!important}@media (max-width:860px){.pf-route-map__card>.pf-route-map__grid{grid-template-columns:1fr}.pf-route-map__map{height:420px}.pf-route-map__legend{border-left:none;border-top:1px solid var(--rule,rgb(15 45 133 / .14));flex-direction:row;overflow-x:auto}.pf-route-map__stop{flex:none;min-width:200px}}